OLD | NEW |
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 import 'dart:collection' show HashSet, HashMap, SplayTreeSet; | 5 import 'dart:collection' show HashSet, HashMap, SplayTreeSet; |
6 | 6 |
7 import 'package:analyzer/analyzer.dart' hide ConstantEvaluator; | 7 import 'package:analyzer/analyzer.dart' hide ConstantEvaluator; |
8 import 'package:analyzer/dart/ast/token.dart'; | 8 import 'package:analyzer/dart/ast/token.dart'; |
9 import 'package:analyzer/src/generated/ast.dart' hide ConstantEvaluator; | 9 import 'package:analyzer/src/generated/ast.dart' hide ConstantEvaluator; |
10 import 'package:analyzer/src/generated/constant.dart'; | 10 import 'package:analyzer/src/generated/constant.dart'; |
(...skipping 3481 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3492 | 3492 |
3493 _visit(AstNode node) { | 3493 _visit(AstNode node) { |
3494 if (node == null) return null; | 3494 if (node == null) return null; |
3495 var result = node.accept(this); | 3495 var result = node.accept(this); |
3496 if (result is JS.Node) result = annotate(result, node); | 3496 if (result is JS.Node) result = annotate(result, node); |
3497 return result; | 3497 return result; |
3498 } | 3498 } |
3499 | 3499 |
3500 // TODO(jmesserly): this will need to be a generic method, if we ever want to | 3500 // TODO(jmesserly): this will need to be a generic method, if we ever want to |
3501 // self-host strong mode. | 3501 // self-host strong mode. |
3502 List /*<T>*/ _visitList /*<T>*/ (Iterable<AstNode> nodes) { | 3502 List/*<T>*/ _visitList/*<T>*/(Iterable<AstNode> nodes) { |
3503 if (nodes == null) return null; | 3503 if (nodes == null) return null; |
3504 var result = /*<T>*/ []; | 3504 var result = /*<T>*/ []; |
3505 for (var node in nodes) result.add(_visit(node)); | 3505 for (var node in nodes) result.add(_visit(node)); |
3506 return result; | 3506 return result; |
3507 } | 3507 } |
3508 | 3508 |
3509 /// Visits a list of expressions, creating a comma expression if needed in JS. | 3509 /// Visits a list of expressions, creating a comma expression if needed in JS. |
3510 JS.Expression _visitListToBinary(List<Expression> nodes, String operator) { | 3510 JS.Expression _visitListToBinary(List<Expression> nodes, String operator) { |
3511 if (nodes == null || nodes.isEmpty) return null; | 3511 if (nodes == null || nodes.isEmpty) return null; |
3512 return new JS.Expression.binary( | 3512 return new JS.Expression.binary( |
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3843 | 3843 |
3844 /// A special kind of element created by the compiler, signifying a temporary | 3844 /// A special kind of element created by the compiler, signifying a temporary |
3845 /// variable. These objects use instance equality, and should be shared | 3845 /// variable. These objects use instance equality, and should be shared |
3846 /// everywhere in the tree where they are treated as the same variable. | 3846 /// everywhere in the tree where they are treated as the same variable. |
3847 class TemporaryVariableElement extends LocalVariableElementImpl { | 3847 class TemporaryVariableElement extends LocalVariableElementImpl { |
3848 TemporaryVariableElement.forNode(Identifier name) : super.forNode(name); | 3848 TemporaryVariableElement.forNode(Identifier name) : super.forNode(name); |
3849 | 3849 |
3850 int get hashCode => identityHashCode(this); | 3850 int get hashCode => identityHashCode(this); |
3851 bool operator ==(Object other) => identical(this, other); | 3851 bool operator ==(Object other) => identical(this, other); |
3852 } | 3852 } |
OLD | NEW |