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

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

Issue 677663002: Support constructor invocation in analyzer2dart. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Add comment. Created 6 years, 2 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
« no previous file with comments | « pkg/analyzer2dart/lib/src/element_converter.dart ('k') | pkg/analyzer2dart/lib/src/tree_shaker.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer2dart/lib/src/modely.dart
diff --git a/pkg/analyzer2dart/lib/src/modely.dart b/pkg/analyzer2dart/lib/src/modely.dart
index ea65b249cc374fc7a5bf175e0d1cc20dbe09d6fb..8bf8fae38944763c60911bdb6e58a60a1c47b8f5 100644
--- a/pkg/analyzer2dart/lib/src/modely.dart
+++ b/pkg/analyzer2dart/lib/src/modely.dart
@@ -345,21 +345,8 @@ abstract class TopLevelElementMixin implements ElementY {
bool get isAbstract => false;
}
-class TopLevelFunctionElementY extends ElementY
- with AnalyzableElementY, AstElementY, TopLevelElementMixin
- implements dart2js.FunctionElement {
- analyzer.FunctionElement get element => super.element;
-
- @override
- dart2js.ElementKind get kind => dart2js.ElementKind.FUNCTION;
-
- @override
- dart2js.FunctionType get type => converter.convertType(element.type);
-
- TopLevelFunctionElementY(ElementConverter converter,
- analyzer.FunctionElement element)
- : super(converter, element);
-
+abstract class FunctionElementMixin
+ implements ElementY, dart2js.FunctionElement {
@override
get abstractField => unsupported('abstractField');
@@ -376,6 +363,25 @@ class TopLevelFunctionElementY extends ElementY
bool get hasFunctionSignature => unsupported('hasFunctionSignature');
}
+class TopLevelFunctionElementY extends ElementY
+ with AnalyzableElementY,
+ AstElementY,
+ TopLevelElementMixin,
+ FunctionElementMixin
+ implements dart2js.FunctionElement {
+ analyzer.FunctionElement get element => super.element;
+
+ @override
+ dart2js.ElementKind get kind => dart2js.ElementKind.FUNCTION;
+
+ @override
+ dart2js.FunctionType get type => converter.convertType(element.type);
+
+ TopLevelFunctionElementY(ElementConverter converter,
+ analyzer.FunctionElement element)
+ : super(converter, element);
+}
+
class ParameterElementY extends ElementY
with AnalyzableElementY, AstElementY
implements dart2js.ParameterElement {
@@ -688,4 +694,47 @@ class LocalVariableElementY extends ElementY
@override
dart2js.DartType get type => unsupported('type');
+}
+
+class ConstructorElementY extends ElementY
+ with AnalyzableElementY,
+ AstElementY,
+ FunctionElementMixin
+ implements dart2js.ConstructorElement {
+
+ analyzer.ConstructorElement get element => super.element;
+
+ @override
+ dart2js.ClassElement get enclosingClass {
+ return converter.convertElement(element.enclosingElement);
+ }
+
+ // TODO(johnniwinther): Support redirecting/factory constructors.
+ @override
+ dart2js.ElementKind get kind => dart2js.ElementKind.GENERATIVE_CONSTRUCTOR;
+
+ ConstructorElementY(ElementConverter converter,
+ analyzer.ConstructorElement element)
+ : super(converter, element);
+
+ @override
+ computeEffectiveTargetType(_) => unsupported('computeEffectiveTargetType');
+
+ @override
+ get definingConstructor => unsupported('definingConstructor');
+
+ @override
+ get effectiveTarget => unsupported('effectiveTarget');
+
+ @override
+ get immediateRedirectionTarget => unsupported('immediateRedirectionTarget');
+
+ @override
+ bool get isRedirectingFactory => unsupported('isRedirectingFactory');
+
+ @override
+ get nestedClosures => unsupported('nestedClosures');
+
+ @override
+ get type => unsupported('type');
}
« no previous file with comments | « pkg/analyzer2dart/lib/src/element_converter.dart ('k') | pkg/analyzer2dart/lib/src/tree_shaker.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698