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/resolution.dart' show Resolution, ParsingContext; | 8 import '../common/resolution.dart' show Resolution, ParsingContext; |
9 import '../compiler.dart' show Compiler; | 9 import '../compiler.dart' show Compiler; |
10 import '../constants/constant_constructors.dart'; | 10 import '../constants/constant_constructors.dart'; |
(...skipping 2970 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2981 Link<ConstructorElement> constructors = new Link<ConstructorElement>(); | 2981 Link<ConstructorElement> constructors = new Link<ConstructorElement>(); |
2982 | 2982 |
2983 InterfaceType mixinType; | 2983 InterfaceType mixinType; |
2984 | 2984 |
2985 MixinApplicationElementX(String name, Element enclosing, int id) | 2985 MixinApplicationElementX(String name, Element enclosing, int id) |
2986 : super(name, enclosing, id, STATE_NOT_STARTED); | 2986 : super(name, enclosing, id, STATE_NOT_STARTED); |
2987 | 2987 |
2988 ClassElement get mixin => mixinType != null ? mixinType.element : null; | 2988 ClassElement get mixin => mixinType != null ? mixinType.element : null; |
2989 | 2989 |
2990 bool get isMixinApplication => true; | 2990 bool get isMixinApplication => true; |
2991 bool get isUnnamedMixinApplication => node is! NamedMixinApplication; | |
2992 bool get hasConstructor => !constructors.isEmpty; | 2991 bool get hasConstructor => !constructors.isEmpty; |
2993 bool get hasLocalScopeMembers => !constructors.isEmpty; | 2992 bool get hasLocalScopeMembers => !constructors.isEmpty; |
2994 | 2993 |
2995 get patch => null; | 2994 get patch => null; |
2996 get origin => null; | 2995 get origin => null; |
2997 | 2996 |
2998 bool get hasNode => true; | 2997 bool get hasNode => true; |
2999 | 2998 |
3000 Token get position => node.getBeginToken(); | 2999 Token get position => node.getBeginToken(); |
3001 | 3000 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3039 implements DeclarationSite { | 3038 implements DeclarationSite { |
3040 final NamedMixinApplication node; | 3039 final NamedMixinApplication node; |
3041 | 3040 |
3042 NamedMixinApplicationElementX( | 3041 NamedMixinApplicationElementX( |
3043 String name, CompilationUnitElement enclosing, int id, this.node) | 3042 String name, CompilationUnitElement enclosing, int id, this.node) |
3044 : super(name, enclosing, id); | 3043 : super(name, enclosing, id); |
3045 | 3044 |
3046 Modifiers get modifiers => node.modifiers; | 3045 Modifiers get modifiers => node.modifiers; |
3047 | 3046 |
3048 DeclarationSite get declarationSite => this; | 3047 DeclarationSite get declarationSite => this; |
| 3048 |
| 3049 ClassElement get subclass => null; |
3049 } | 3050 } |
3050 | 3051 |
3051 class UnnamedMixinApplicationElementX extends MixinApplicationElementX { | 3052 class UnnamedMixinApplicationElementX extends MixinApplicationElementX { |
3052 final Node node; | 3053 final Node node; |
| 3054 final ClassElement subclass; |
3053 | 3055 |
3054 UnnamedMixinApplicationElementX( | 3056 UnnamedMixinApplicationElementX( |
3055 String name, CompilationUnitElement enclosing, int id, this.node) | 3057 String name, ClassElement subclass, int id, this.node) |
3056 : super(name, enclosing, id); | 3058 : this.subclass = subclass, |
| 3059 super(name, subclass.compilationUnit, id); |
| 3060 |
| 3061 bool get isUnnamedMixinApplication => true; |
3057 | 3062 |
3058 bool get isAbstract => true; | 3063 bool get isAbstract => true; |
3059 } | 3064 } |
3060 | 3065 |
3061 class LabelDefinitionX implements LabelDefinition { | 3066 class LabelDefinitionX implements LabelDefinition { |
3062 final Label label; | 3067 final Label label; |
3063 final String labelName; | 3068 final String labelName; |
3064 final JumpTarget target; | 3069 final JumpTarget target; |
3065 bool isBreakTarget = false; | 3070 bool isBreakTarget = false; |
3066 bool isContinueTarget = false; | 3071 bool isContinueTarget = false; |
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3286 body = node.asFunctionExpression().body; | 3291 body = node.asFunctionExpression().body; |
3287 } | 3292 } |
3288 return new ParsedResolvedAst( | 3293 return new ParsedResolvedAst( |
3289 declaration, | 3294 declaration, |
3290 node, | 3295 node, |
3291 body, | 3296 body, |
3292 definingElement.treeElements, | 3297 definingElement.treeElements, |
3293 definingElement.compilationUnit.script.resourceUri); | 3298 definingElement.compilationUnit.script.resourceUri); |
3294 } | 3299 } |
3295 } | 3300 } |
OLD | NEW |