Index: runtime/vm/parser.cc |
=================================================================== |
--- runtime/vm/parser.cc (revision 36320) |
+++ runtime/vm/parser.cc (working copy) |
@@ -5387,6 +5387,13 @@ |
ASSERT((params != NULL) && (params->parameters != NULL)); |
ASSERT(scope != NULL); |
const int num_parameters = params->parameters->length(); |
+ // Formal parameters should always be the first variables of the scope. |
+ if (scope->num_variables() > 0) { |
+ // Any local variables already present in the scope were entered as a side |
+ // effect of parsing formal parameter default values. They are aliases of |
+ // variables in outer scopes. |
+ scope->Clear(); |
+ } |
for (int i = 0; i < num_parameters; i++) { |
ParamDesc& param_desc = (*params->parameters)[i]; |
ASSERT(!is_top_level_ || param_desc.type->IsResolved()); |