This commit is contained in:
Hackerpilot 2014-07-09 17:06:56 -07:00
parent 692b6bc261
commit 74f93610c2
2 changed files with 25 additions and 8 deletions

@ -1 +1 @@
Subproject commit 2a72525f649850f452f21e7f362f70440f487a61 Subproject commit 74b394404947f8c1ea9c6e769fdb413db049d27d

View File

@ -69,11 +69,6 @@ private:
case className: case className:
case interfaceName: case interfaceName:
resolveInheritance(currentSymbol); resolveInheritance(currentSymbol);
goto case structName;
case structName:
case unionName:
resolveAliasThis(currentSymbol);
resolveMixinTemplates(currentSymbol);
break; break;
case variableName: case variableName:
case memberVariableName: case memberVariableName:
@ -85,6 +80,8 @@ private:
t = t.type; t = t.type;
currentSymbol.acSymbol.type = t; currentSymbol.acSymbol.type = t;
break; break;
case structName:
case unionName:
case enumName: case enumName:
case keyword: case keyword:
case enumMember: case enumMember:
@ -97,10 +94,24 @@ private:
case mixinTemplateName: case mixinTemplateName:
break; break;
} }
foreach (child; currentSymbol.children) foreach (child; currentSymbol.children)
{ {
thirdPass(child); thirdPass(child);
} }
with (CompletionKind) switch (currentSymbol.acSymbol.kind)
{
case className:
case interfaceName:
case structName:
case unionName:
resolveAliasThis(currentSymbol);
resolveMixinTemplates(currentSymbol);
break;
default:
break;
}
} }
void resolveInheritance(SemanticSymbol* currentSymbol) void resolveInheritance(SemanticSymbol* currentSymbol)
@ -129,10 +140,16 @@ private:
void resolveAliasThis(SemanticSymbol* currentSymbol) void resolveAliasThis(SemanticSymbol* currentSymbol)
{ {
// TODO: foreach (aliasThis; currentSymbol.aliasThis)
{
auto parts = currentSymbol.acSymbol.getPartsByName(aliasThis);
if (parts.length == 0 || parts[0].type is null)
continue;
currentSymbol.acSymbol.parts.insert(parts[0].type.parts[]);
}
} }
void resolveMixinTemplates(SemanticSymbol* currentSymbol) void resolveMixinTemplates(SemanticSymbol*)
{ {
// TODO: // TODO:
} }