Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Side by Side Diff: pkg/compiler/lib/src/inferrer/locals_handler.dart

Issue 2965223002: Change inference element invariants (Closed)
Patch Set: More entities Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library locals_handler; 5 library locals_handler;
6 6
7 import 'dart:collection' show IterableMixin; 7 import 'dart:collection' show IterableMixin;
8 8
9 import '../options.dart' show CompilerOptions; 9 import '../options.dart' show CompilerOptions;
10 import '../elements/elements.dart'; 10 import '../elements/elements.dart';
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 : locals = new VariableScope.topLevelCopyOf(other.locals), 292 : locals = new VariableScope.topLevelCopyOf(other.locals),
293 fieldScope = new FieldInitializationScope.from(other.fieldScope), 293 fieldScope = new FieldInitializationScope.from(other.fieldScope),
294 captured = other.captured, 294 captured = other.captured,
295 capturedAndBoxed = other.capturedAndBoxed, 295 capturedAndBoxed = other.capturedAndBoxed,
296 tryBlock = other.tryBlock, 296 tryBlock = other.tryBlock,
297 types = other.types, 297 types = other.types,
298 inferrer = other.inferrer, 298 inferrer = other.inferrer,
299 options = other.options; 299 options = other.options;
300 300
301 TypeInformation use(Local local) { 301 TypeInformation use(Local local) {
302 assert(!(local is LocalElement && !local.isImplementation));
302 if (capturedAndBoxed.containsKey(local)) { 303 if (capturedAndBoxed.containsKey(local)) {
303 FieldElement field = capturedAndBoxed[local]; 304 FieldElement field = capturedAndBoxed[local];
304 return inferrer.typeOfMember(field); 305 return inferrer.typeOfMember(field);
305 } else { 306 } else {
306 if (captured.containsKey(local)) { 307 if (captured.containsKey(local)) {
307 inferrer.recordCapturedLocalRead(local); 308 inferrer.recordCapturedLocalRead(local);
308 } 309 }
309 return locals[local]; 310 return locals[local];
310 } 311 }
311 } 312 }
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
545 if (newType != type) { 546 if (newType != type) {
546 locals[variable] = newType; 547 locals[variable] = newType;
547 } 548 }
548 }); 549 });
549 } 550 }
550 551
551 void updateField(Element element, TypeInformation type) { 552 void updateField(Element element, TypeInformation type) {
552 fieldScope.updateField(element, type); 553 fieldScope.updateField(element, type);
553 } 554 }
554 } 555 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698