OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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; | 5 library dart2js.resolution; |
6 | 6 |
7 import 'dart:collection' show Queue; | 7 import 'dart:collection' show Queue; |
8 | 8 |
9 import '../common.dart'; | 9 import '../common.dart'; |
10 import '../common/names.dart' show | 10 import '../common/names.dart' show |
(...skipping 28 matching lines...) Expand all Loading... |
39 ParameterMetadataAnnotation, | 39 ParameterMetadataAnnotation, |
40 SetterElementX, | 40 SetterElementX, |
41 TypedefElementX; | 41 TypedefElementX; |
42 import '../tokens/token.dart' show | 42 import '../tokens/token.dart' show |
43 isBinaryOperator, | 43 isBinaryOperator, |
44 isMinusOperator, | 44 isMinusOperator, |
45 isTernaryOperator, | 45 isTernaryOperator, |
46 isUnaryOperator, | 46 isUnaryOperator, |
47 isUserDefinableOperator; | 47 isUserDefinableOperator; |
48 import '../tree/tree.dart'; | 48 import '../tree/tree.dart'; |
| 49 import '../universe/call_structure.dart' show |
| 50 CallStructure; |
| 51 import '../universe/use.dart' show |
| 52 StaticUse; |
49 import '../universe/world_impact.dart' show | 53 import '../universe/world_impact.dart' show |
50 WorldImpact; | 54 WorldImpact; |
51 import '../util/util.dart' show | 55 import '../util/util.dart' show |
52 Link, | 56 Link, |
53 LinkBuilder, | 57 LinkBuilder, |
54 Setlet; | 58 Setlet; |
55 | 59 |
56 import 'class_hierarchy.dart'; | 60 import 'class_hierarchy.dart'; |
57 import 'class_members.dart' show MembersCreator; | 61 import 'class_members.dart' show MembersCreator; |
58 import 'constructors.dart'; | 62 import 'constructors.dart'; |
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
298 if (element.isGenerativeConstructor) { | 302 if (element.isGenerativeConstructor) { |
299 ResolutionRegistry registry = | 303 ResolutionRegistry registry = |
300 new ResolutionRegistry(compiler, _ensureTreeElements(element)); | 304 new ResolutionRegistry(compiler, _ensureTreeElements(element)); |
301 ConstructorElement constructor = element.asFunctionElement(); | 305 ConstructorElement constructor = element.asFunctionElement(); |
302 ConstructorElement target = constructor.definingConstructor; | 306 ConstructorElement target = constructor.definingConstructor; |
303 // Ensure the signature of the synthesized element is | 307 // Ensure the signature of the synthesized element is |
304 // resolved. This is the only place where the resolver is | 308 // resolved. This is the only place where the resolver is |
305 // seeing this element. | 309 // seeing this element. |
306 element.computeType(resolution); | 310 element.computeType(resolution); |
307 if (!target.isMalformed) { | 311 if (!target.isMalformed) { |
308 registry.registerImplicitSuperCall(target); | 312 registry.registerStaticUse( |
| 313 new StaticUse.superConstructorInvoke( |
| 314 target, CallStructure.NO_ARGS)); |
309 } | 315 } |
310 return registry.worldImpact; | 316 return registry.worldImpact; |
311 } else { | 317 } else { |
312 assert(element.isDeferredLoaderGetter || element.isMalformed); | 318 assert(element.isDeferredLoaderGetter || element.isMalformed); |
313 _ensureTreeElements(element); | 319 _ensureTreeElements(element); |
314 return const ResolutionImpact(); | 320 return const ResolutionImpact(); |
315 } | 321 } |
316 } else { | 322 } else { |
317 element.parseNode(resolution.parsing); | 323 element.parseNode(resolution.parsing); |
318 element.computeType(resolution); | 324 element.computeType(resolution); |
(...skipping 764 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1083 TreeElements get treeElements { | 1089 TreeElements get treeElements { |
1084 assert(invariant(this, _treeElements !=null, | 1090 assert(invariant(this, _treeElements !=null, |
1085 message: "TreeElements have not been computed for $this.")); | 1091 message: "TreeElements have not been computed for $this.")); |
1086 return _treeElements; | 1092 return _treeElements; |
1087 } | 1093 } |
1088 | 1094 |
1089 void reuseElement() { | 1095 void reuseElement() { |
1090 _treeElements = null; | 1096 _treeElements = null; |
1091 } | 1097 } |
1092 } | 1098 } |
OLD | NEW |