Allow variables be assigned to other types if they are implicitly castable
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2019-09-14 11:14:50 +02:00
parent 9520b98f2e
commit 54778adf82

View File

@@ -101,9 +101,13 @@ namespace Porygon::Binder {
} else {
// Assigning
auto var = this->GetVariable(exists, identifier);
if (var->GetType()->operator!=(type)) {
auto t= var->GetType();
if (t->operator!=(type)) {
auto castResult = type->CastableTo(t, false);
if (castResult == CastResult::InvalidCast){
return VariableAssignment(VariableAssignmentResult::VariableDefinedWithDifferentType, nullptr);
}
}
return VariableAssignment(VariableAssignmentResult::Ok, new BoundVariableKey(identifier, exists, false, type));
}
}