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

Unified Diff: pkg/compiler/lib/src/resolution/semantic_visitor_mixins.dart

Issue 1160153002: Support implicit super constructor invocation in SemanticDeclarationVisitor. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 5 years, 7 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/compiler/lib/src/resolution/semantic_visitor_mixins.dart
diff --git a/pkg/compiler/lib/src/resolution/semantic_visitor_mixins.dart b/pkg/compiler/lib/src/resolution/semantic_visitor_mixins.dart
index 69665d7547c8f514159056c053cef01854170132..af43415ddd30647fc7eeb7ebd8a290d4f2623779 100644
--- a/pkg/compiler/lib/src/resolution/semantic_visitor_mixins.dart
+++ b/pkg/compiler/lib/src/resolution/semantic_visitor_mixins.dart
@@ -3117,7 +3117,7 @@ abstract class ConstructorBulkMixin<R, A>
abstract class InitializerBulkMixin<R, A>
implements SemanticDeclarationVisitor<R, A>, BulkHandle<R, A> {
- R bulkHandleInitializer(Send node, A arg) {
+ R bulkHandleInitializer(Node node, A arg) {
return bulkHandleNode(
node, "Initializer `#` unhandled.", arg);
}
@@ -3166,7 +3166,16 @@ abstract class InitializerBulkMixin<R, A>
ConstructorElement superConstructor,
InterfaceType type,
NodeList arguments,
- Selector selector,
+ CallStructure callStructure,
+ A arg) {
+ return bulkHandleInitializer(node, arg);
+ }
+
+ @override
+ R visitImplicitSuperConstructorInvoke(
+ FunctionExpression node,
+ ConstructorElement superConstructor,
+ InterfaceType type,
A arg) {
return bulkHandleInitializer(node, arg);
}
@@ -3176,7 +3185,7 @@ abstract class InitializerBulkMixin<R, A>
Send node,
ConstructorElement thisConstructor,
NodeList arguments,
- Selector selector,
+ CallStructure callStructure,
A arg) {
return bulkHandleInitializer(node, arg);
}
@@ -3435,7 +3444,7 @@ class BulkDeclarationVisitor<R, A> extends SemanticDeclarationVisitor<R, A>
}
@override
- applyInitializers(NodeList initializers, A arg) {
+ applyInitializers(FunctionExpression constructor, A arg) {
throw new UnimplementedError(
"BulkDeclVisitor.applyInitializers unimplemented");
}
@@ -6041,7 +6050,7 @@ class TraversalDeclarationMixin<R, A>
}
@override
- applyInitializers(NodeList initializers, A arg) {
+ applyInitializers(FunctionExpression constructor, A arg) {
throw new UnimplementedError(
"TraversalMixin.applyInitializers unimplemented");
}
@@ -6105,7 +6114,7 @@ class TraversalDeclarationMixin<R, A>
Node body,
A arg) {
applyParameters(parameters, arg);
- applyInitializers(initializers, arg);
+ applyInitializers(node, arg);
apply(body, arg);
return null;
}
@@ -6154,7 +6163,7 @@ class TraversalDeclarationMixin<R, A>
NodeList initializers,
A arg) {
applyParameters(parameters, arg);
- applyInitializers(initializers, arg);
+ applyInitializers(node, arg);
return null;
}
@@ -6176,18 +6185,27 @@ class TraversalDeclarationMixin<R, A>
ConstructorElement superConstructor,
InterfaceType type,
NodeList arguments,
- Selector selector,
+ CallStructure callStructure,
A arg) {
apply(arguments, arg);
return null;
}
@override
+ R visitImplicitSuperConstructorInvoke(
+ FunctionExpression node,
+ ConstructorElement superConstructor,
+ InterfaceType type,
+ A arg) {
+ return null;
+ }
+
+ @override
R visitThisConstructorInvoke(
Send node,
ConstructorElement thisConstructor,
NodeList arguments,
- Selector selector,
+ CallStructure callStructure,
A arg) {
apply(arguments, arg);
return null;
@@ -6483,8 +6501,8 @@ class TraversalVisitor<R, A> extends SemanticVisitor<R, A>
}
@override
- applyInitializers(NodeList initializers, A arg) {
- visitInitializers(initializers, arg);
+ applyInitializers(FunctionExpression constructor, A arg) {
+ visitInitializers(constructor, arg);
}
@override
« no previous file with comments | « pkg/compiler/lib/src/resolution/semantic_visitor.dart ('k') | pkg/compiler/lib/src/resolution/send_resolver.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698