This commit is contained in:
Hackerpilot 2013-11-05 14:38:37 +00:00
parent 4c78e06ded
commit 55e8577067
1 changed files with 37 additions and 3 deletions

View File

@ -180,6 +180,37 @@ final class FirstPass : ASTVisitor
} }
} }
override void visit(AliasDeclaration aliasDeclaration)
{
if (aliasDeclaration.initializers.length == 0)
{
SemanticSymbol* symbol = new SemanticSymbol(
aliasDeclaration.name.value.dup,
CompletionKind.aliasName,
symbolFile,
aliasDeclaration.name.startIndex);
symbol.type = aliasDeclaration.type;
symbol.protection = protection;
symbol.parent = currentSymbol;
currentSymbol.addChild(symbol);
}
else
{
foreach (initializer; aliasDeclaration.initializers)
{
SemanticSymbol* symbol = new SemanticSymbol(
initializer.name.value.dup,
CompletionKind.aliasName,
symbolFile,
initializer.name.startIndex);
symbol.type = initializer.type;
symbol.protection = protection;
symbol.parent = currentSymbol;
currentSymbol.addChild(symbol);
}
}
}
override void visit(AliasThisDeclaration dec) override void visit(AliasThisDeclaration dec)
{ {
// Log.trace(__FUNCTION__, " ", typeof(dec).stringof); // Log.trace(__FUNCTION__, " ", typeof(dec).stringof);
@ -545,6 +576,7 @@ private:
* $(LI base classes) * $(LI base classes)
* $(LI mixin templates) * $(LI mixin templates)
* $(LI alias this) * $(LI alias this)
* $(LI alias declarations)
* ) * )
*/ */
struct ThirdPass struct ThirdPass
@ -584,6 +616,9 @@ private:
currentSymbol.acSymbol.type = resolveType(currentSymbol.type, currentSymbol.acSymbol.type = resolveType(currentSymbol.type,
currentSymbol.acSymbol.location); currentSymbol.acSymbol.location);
break; break;
case aliasName:
// TODO
break;
case enumName: case enumName:
case keyword: case keyword:
case enumMember: case enumMember:
@ -592,7 +627,6 @@ private:
case dummy: case dummy:
case array: case array:
case assocArray: case assocArray:
case aliasName:
case templateName: case templateName:
case mixinTemplateName: case mixinTemplateName:
break; break;