Fix segfault with 'with' statements

This commit is contained in:
Hackerpilot 2015-01-18 03:44:36 -08:00
parent a460bd1637
commit 9ec503ac71
1 changed files with 7 additions and 4 deletions

View File

@ -481,14 +481,17 @@ final class FirstPass : ASTVisitor
Scope* s = allocate!Scope(semanticAllocator,
withStatement.statementNoCaseNoDefault.startLocation,
withStatement.statementNoCaseNoDefault.endLocation);
SemanticSymbol* symbol = allocateSemanticSymbol(WITH_SYMBOL_NAME,
CompletionKind.withSymbol, symbolFile, s.startLocation, null);
s.parent = currentScope;
currentScope.children.insert(s);
populateInitializer(symbol, withStatement.expression, false);
currentScope = s;
SemanticSymbol* symbol = allocateSemanticSymbol(WITH_SYMBOL_NAME,
CompletionKind.withSymbol, symbolFile, s.startLocation, null);
symbol.parent = currentSymbol;
currentSymbol.addChild(symbol);
currentSymbol = symbol;
populateInitializer(symbol, withStatement.expression, false);
withStatement.accept(this);
currentSymbol = currentSymbol.parent;
currentSymbol.addChild(symbol);
currentScope = currentScope.parent;
}
else