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

Side by Side Diff: pkg/compiler/lib/src/resolution/tree_elements.dart

Issue 2581143003: implement LabeledStatement and Break in kernel (Closed)
Patch Set: fix some tests Created 4 years 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) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 dart2js.resolution.tree_elements; 5 library dart2js.resolution.tree_elements;
6 6
7 import '../common.dart'; 7 import '../common.dart';
8 import '../constants/expressions.dart'; 8 import '../constants/expressions.dart';
9 import '../dart_types.dart'; 9 import '../dart_types.dart';
10 import '../diagnostics/source_span.dart'; 10 import '../diagnostics/source_span.dart';
(...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after
354 return this[node]; 354 return this[node];
355 } 355 }
356 356
357 @override 357 @override
358 ConstructorElement getRedirectingTargetConstructor( 358 ConstructorElement getRedirectingTargetConstructor(
359 RedirectingFactoryBody node) { 359 RedirectingFactoryBody node) {
360 return this[node]; 360 return this[node];
361 } 361 }
362 362
363 void defineTarget(Node node, JumpTarget target) { 363 void defineTarget(Node node, JumpTarget target) {
364 if (_definedTargets == null) { 364 _definedTargets ??= new Maplet<Node, JumpTarget>();
365 _definedTargets = new Maplet<Node, JumpTarget>();
366 }
367 _definedTargets[node] = target; 365 _definedTargets[node] = target;
368 } 366 }
369 367
370 void undefineTarget(Node node) { 368 void undefineTarget(Node node) {
371 if (_definedTargets != null) { 369 if (_definedTargets != null) {
372 _definedTargets.remove(node); 370 _definedTargets.remove(node);
373 if (_definedTargets.isEmpty) { 371 if (_definedTargets.isEmpty) {
374 _definedTargets = null; 372 _definedTargets = null;
375 } 373 }
376 } 374 }
377 } 375 }
378 376
379 @override 377 @override
380 JumpTarget getTargetDefinition(Node node) { 378 JumpTarget getTargetDefinition(Node node) {
381 return _definedTargets != null ? _definedTargets[node] : null; 379 return _definedTargets != null ? _definedTargets[node] : null;
382 } 380 }
383 381
384 void registerTargetOf(GotoStatement node, JumpTarget target) { 382 void registerTargetOf(GotoStatement node, JumpTarget target) {
385 if (_usedTargets == null) { 383 _usedTargets ??= new Maplet<GotoStatement, JumpTarget>();
386 _usedTargets = new Maplet<GotoStatement, JumpTarget>();
387 }
388 _usedTargets[node] = target; 384 _usedTargets[node] = target;
389 } 385 }
390 386
391 @override 387 @override
392 JumpTarget getTargetOf(GotoStatement node) { 388 JumpTarget getTargetOf(GotoStatement node) {
393 return _usedTargets != null ? _usedTargets[node] : null; 389 return _usedTargets != null ? _usedTargets[node] : null;
394 } 390 }
395 391
396 void defineLabel(Label label, LabelDefinition target) { 392 void defineLabel(Label label, LabelDefinition target) {
397 if (_definedLabels == null) { 393 _definedLabels ??= new Maplet<Label, LabelDefinition>();
398 _definedLabels = new Maplet<Label, LabelDefinition>();
399 }
400 _definedLabels[label] = target; 394 _definedLabels[label] = target;
401 } 395 }
402 396
403 void undefineLabel(Label label) { 397 void undefineLabel(Label label) {
404 if (_definedLabels != null) { 398 if (_definedLabels != null) {
405 _definedLabels.remove(label); 399 _definedLabels.remove(label);
406 if (_definedLabels.isEmpty) { 400 if (_definedLabels.isEmpty) {
407 _definedLabels = null; 401 _definedLabels = null;
408 } 402 }
409 } 403 }
(...skipping 23 matching lines...) Expand all
433 _nativeData = <Node, dynamic>{}; 427 _nativeData = <Node, dynamic>{};
434 } 428 }
435 _nativeData[node] = nativeData; 429 _nativeData[node] = nativeData;
436 } 430 }
437 431
438 @override 432 @override
439 dynamic getNativeData(Node node) { 433 dynamic getNativeData(Node node) {
440 return _nativeData != null ? _nativeData[node] : null; 434 return _nativeData != null ? _nativeData[node] : null;
441 } 435 }
442 } 436 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698