This commit is contained in:
parent
4c78e06ded
commit
55e8577067
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue