OLD | NEW |
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 elements.modelx; | 5 library elements.modelx; |
6 | 6 |
7 import '../common.dart'; | 7 import '../common.dart'; |
| 8 import '../common/names.dart' show Identifiers; |
8 import '../common/resolution.dart' show Resolution, ParsingContext; | 9 import '../common/resolution.dart' show Resolution, ParsingContext; |
9 import '../compiler.dart' show Compiler; | 10 import '../compiler.dart' show Compiler; |
10 import '../constants/constant_constructors.dart'; | 11 import '../constants/constant_constructors.dart'; |
11 import '../constants/constructors.dart'; | 12 import '../constants/constructors.dart'; |
12 import '../constants/expressions.dart'; | 13 import '../constants/expressions.dart'; |
13 import '../dart_types.dart'; | 14 import '../dart_types.dart'; |
14 import '../diagnostics/messages.dart' show MessageTemplate; | 15 import '../diagnostics/messages.dart' show MessageTemplate; |
15 import '../ordered_typeset.dart' show OrderedTypeSet; | 16 import '../ordered_typeset.dart' show OrderedTypeSet; |
16 import '../resolution/class_members.dart' show ClassMemberMixin; | 17 import '../resolution/class_members.dart' show ClassMemberMixin; |
17 import '../resolution/scope.dart' | 18 import '../resolution/scope.dart' |
(...skipping 1234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1252 | 1253 |
1253 void addImport( | 1254 void addImport( |
1254 Element element, ImportElement import, DiagnosticReporter reporter) { | 1255 Element element, ImportElement import, DiagnosticReporter reporter) { |
1255 importScope.addImport(this, element, import, reporter); | 1256 importScope.addImport(this, element, import, reporter); |
1256 } | 1257 } |
1257 | 1258 |
1258 accept(ElementVisitor visitor, arg) { | 1259 accept(ElementVisitor visitor, arg) { |
1259 return visitor.visitPrefixElement(this, arg); | 1260 return visitor.visitPrefixElement(this, arg); |
1260 } | 1261 } |
1261 | 1262 |
| 1263 @override |
| 1264 GetterElement get loadLibrary { |
| 1265 return isDeferred ? lookupLocalMember(Identifiers.loadLibrary) : null; |
| 1266 } |
| 1267 |
1262 String toString() => '$kind($name)'; | 1268 String toString() => '$kind($name)'; |
1263 } | 1269 } |
1264 | 1270 |
1265 class TypedefElementX extends ElementX | 1271 class TypedefElementX extends ElementX |
1266 with | 1272 with |
1267 AstElementMixin, | 1273 AstElementMixin, |
1268 AnalyzableElementX, | 1274 AnalyzableElementX, |
1269 TypeDeclarationElementX<TypedefType> | 1275 TypeDeclarationElementX<TypedefType> |
1270 implements TypedefElement { | 1276 implements TypedefElement { |
1271 Typedef cachedNode; | 1277 Typedef cachedNode; |
(...skipping 975 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2247 | 2253 |
2248 ClassElement get enclosingClass => enclosingElement; | 2254 ClassElement get enclosingClass => enclosingElement; |
2249 } | 2255 } |
2250 | 2256 |
2251 class DeferredLoaderGetterElementX extends GetterElementX | 2257 class DeferredLoaderGetterElementX extends GetterElementX |
2252 implements GetterElement { | 2258 implements GetterElement { |
2253 final PrefixElement prefix; | 2259 final PrefixElement prefix; |
2254 | 2260 |
2255 DeferredLoaderGetterElementX(PrefixElement prefix) | 2261 DeferredLoaderGetterElementX(PrefixElement prefix) |
2256 : this.prefix = prefix, | 2262 : this.prefix = prefix, |
2257 super("loadLibrary", Modifiers.EMPTY, prefix, false) { | 2263 super(Identifiers.loadLibrary, Modifiers.EMPTY, prefix, false) { |
2258 functionSignature = new FunctionSignatureX(type: new FunctionType(this)); | 2264 functionSignature = new FunctionSignatureX(type: new FunctionType(this)); |
2259 } | 2265 } |
2260 | 2266 |
2261 bool get isClassMember => false; | 2267 bool get isClassMember => false; |
2262 | 2268 |
2263 bool get isSynthesized => true; | 2269 bool get isSynthesized => true; |
2264 | 2270 |
2265 bool get isDeferredLoaderGetter => true; | 2271 bool get isDeferredLoaderGetter => true; |
2266 | 2272 |
2267 bool get isTopLevel => true; | 2273 bool get isTopLevel => true; |
| 2274 |
2268 // By having position null, the enclosing elements location is printed in | 2275 // By having position null, the enclosing elements location is printed in |
2269 // error messages. | 2276 // error messages. |
2270 Token get position => null; | 2277 Token get position => null; |
2271 | 2278 |
2272 FunctionExpression parseNode(ParsingContext parsing) => null; | 2279 FunctionExpression parseNode(ParsingContext parsing) => null; |
2273 | 2280 |
2274 bool get hasNode => false; | 2281 bool get hasNode => false; |
2275 | 2282 |
2276 FunctionExpression get node => null; | 2283 FunctionExpression get node => null; |
2277 | 2284 |
| 2285 bool get hasResolvedAst => true; |
| 2286 |
| 2287 ResolvedAst get resolvedAst { |
| 2288 return new SynthesizedResolvedAst( |
| 2289 this, ResolvedAstKind.DEFERRED_LOAD_LIBRARY); |
| 2290 } |
| 2291 |
2278 @override | 2292 @override |
2279 SetterElement get setter => null; | 2293 SetterElement get setter => null; |
2280 } | 2294 } |
2281 | 2295 |
2282 class ConstructorBodyElementX extends BaseFunctionElementX | 2296 class ConstructorBodyElementX extends BaseFunctionElementX |
2283 implements ConstructorBodyElement { | 2297 implements ConstructorBodyElement { |
2284 final ResolvedAst _resolvedAst; | 2298 final ResolvedAst _resolvedAst; |
2285 final ConstructorElement constructor; | 2299 final ConstructorElement constructor; |
2286 | 2300 |
2287 ConstructorBodyElementX( | 2301 ConstructorBodyElementX( |
(...skipping 1005 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3293 body = node.asFunctionExpression().body; | 3307 body = node.asFunctionExpression().body; |
3294 } | 3308 } |
3295 return new ParsedResolvedAst( | 3309 return new ParsedResolvedAst( |
3296 declaration, | 3310 declaration, |
3297 node, | 3311 node, |
3298 body, | 3312 body, |
3299 definingElement.treeElements, | 3313 definingElement.treeElements, |
3300 definingElement.compilationUnit.script.resourceUri); | 3314 definingElement.compilationUnit.script.resourceUri); |
3301 } | 3315 } |
3302 } | 3316 } |
OLD | NEW |