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

Unified Diff: pkg/analyzer2dart/lib/src/modely.dart

Issue 609783002: Support static field access in analyzer2dart. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Updated cf. comments. Created 6 years, 3 months 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 side-by-side diff with in-line comments
Download patch
Index: pkg/analyzer2dart/lib/src/modely.dart
diff --git a/pkg/analyzer2dart/lib/src/modely.dart b/pkg/analyzer2dart/lib/src/modely.dart
index 33e8df11c82b1c6441bde6df6f424e9963b99664..8c7e4a9bc8951b3eee3650607059d41128b8a875 100644
--- a/pkg/analyzer2dart/lib/src/modely.dart
+++ b/pkg/analyzer2dart/lib/src/modely.dart
@@ -318,8 +318,35 @@ class LibraryElementY extends ElementY with AnalyzableElementY
get tags => unsupported('tags');
}
+abstract class TopLevelElementMixin implements ElementY {
+ @override
+ bool get isClassMember => false;
+
+ @override
+ bool get isInstanceMember => false;
+
+ @override
+ bool get isTopLevel => true;
+
+ // TODO(johnniwinther): Ensure the correct semantics of this.
+ @override
+ bool get isFactoryConstructor => false;
+
+ @override
+ bool get isStatic {
+ // Semantic difference: Analyzer considers top-level and static class
+ // members to be static, dart2js only considers static class members to be
+ // static.
+ return false;
+ }
+
+ // TODO(johnniwinther): Ensure the correct semantics of this.
+ @override
+ bool get isAbstract => false;
+}
+
class TopLevelFunctionElementY extends ElementY
- with AnalyzableElementY, AstElementY
+ with AnalyzableElementY, AstElementY, TopLevelElementMixin
implements dart2js.FunctionElement {
analyzer.FunctionElement get element => super.element;
@@ -355,35 +382,9 @@ class TopLevelFunctionElementY extends ElementY
return _functionSignature;
}
-
- // TODO(johnniwinther): Ensure the correct semantics of this.
- @override
- bool get isFactoryConstructor => false;
-
- @override
- bool get isStatic {
- // Semantic difference: Analyzer considers top-level and static class
- // members to be static, dart2js only considers static class members to be
- // static.
- return false;
- }
-
- // TODO(johnniwinther): Ensure the correct semantics of this.
- @override
- bool get isAbstract => false;
-
@override
dart2js.ElementKind get kind => dart2js.ElementKind.FUNCTION;
- @override
- bool get isClassMember => false;
-
- @override
- bool get isInstanceMember => false;
-
- @override
- bool get isTopLevel => true;
-
TopLevelFunctionElementY(ElementConverter converter,
analyzer.FunctionElement element)
: super(converter, element);
@@ -655,4 +656,29 @@ class TypedefElementY extends TypeDeclarationElementY
@override
get functionSignature => unsupported('functionSignature');
+}
+
+class TopLevelVariableElementY extends ElementY
+ with AnalyzableElementY, AstElementY, TopLevelElementMixin
+ implements dart2js.FieldElement {
+
+ analyzer.TopLevelVariableElement get element => super.element;
+
+ dart2js.ElementKind get kind => dart2js.ElementKind.FIELD;
+
+ @override
+ dart2js.DartType get type => converter.convertType(element.type);
+
+ TopLevelVariableElementY(ElementConverter converter,
+ analyzer.TopLevelVariableElement element)
+ : super(converter, element);
+
+ @override
+ get initializer => unsupported('initializer');
+
+ @override
+ get memberContext => unsupported('memberContext');
+
+ @override
+ get nestedClosures => unsupported('nestedClosures');
}
« no previous file with comments | « pkg/analyzer2dart/lib/src/identifier_semantics.dart ('k') | pkg/analyzer2dart/lib/src/semantic_visitor.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698