Cleanup and fixes for boundscope

This commit is contained in:
2019-05-28 18:22:07 +02:00
parent 5d1c3ac9ba
commit 2c84c1e229
3 changed files with 80 additions and 65 deletions

View File

@@ -46,7 +46,10 @@ BoundStatement *Binder::BindExpressionStatement(ParsedStatement *statement) {
BoundStatement* Binder::BindAssignmentStatement(ParsedStatement *statement){
auto s = (ParsedAssignmentStatement*) statement;
auto boundExpression = this->BindExpression(s->GetExpression());
auto assignment = this->_scope->AssignVariable(s->GetIdentifier().GetHash(), boundExpression->GetType());
VariableAssignment assignment =
s->IsLocal() ?
this->_scope->CreateExplicitLocal(s->GetIdentifier().GetHash(), boundExpression->GetType())
: this->_scope->AssignVariable(s->GetIdentifier().GetHash(), boundExpression->GetType());
if (assignment.GetResult() == VariableAssignmentResult::Ok){
auto key = assignment.GetKey();
return new BoundAssignmentStatement(key, boundExpression);