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 dce195b1b07de12a64b856ce9cdbb060245224bc..834bc31bb67c7fef8a1d9821370afa01c6d2d7e9 100644 |
--- a/pkg/compiler/lib/src/resolution/semantic_visitor_mixins.dart |
+++ b/pkg/compiler/lib/src/resolution/semantic_visitor_mixins.dart |
@@ -33,17 +33,6 @@ abstract class ErrorBulkMixin<R, A> |
} |
@override |
- R errorAbstractClassConstructorInvoke( |
- NewExpression node, |
- ConstructorElement element, |
- InterfaceType type, |
- NodeList arguments, |
- CallStructure callStructure, |
- A arg) { |
- return bulkHandleError(node, arg); |
- } |
- |
- @override |
R errorClassTypeLiteralCompound( |
Send node, |
ConstantExpression constant, |
@@ -251,6 +240,17 @@ abstract class ErrorBulkMixin<R, A> |
} |
@override |
+ R errorNonConstantConstructorInvoke( |
+ NewExpression node, |
+ Element element, |
+ InterfaceType type, |
+ NodeList arguments, |
+ CallStructure callStructure, |
+ A arg) { |
+ return bulkHandleError(node, arg); |
+ } |
+ |
+ @override |
R errorStaticFunctionSet( |
Send node, |
MethodElement function, |
@@ -443,28 +443,6 @@ abstract class ErrorBulkMixin<R, A> |
} |
@override |
- R errorUnresolvedClassConstructorInvoke( |
- NewExpression node, |
- Element element, |
- MalformedType type, |
- NodeList arguments, |
- Selector selector, |
- A arg) { |
- return bulkHandleError(node, arg); |
- } |
- |
- @override |
- R errorUnresolvedConstructorInvoke( |
- NewExpression node, |
- Element constructor, |
- DartType type, |
- NodeList arguments, |
- Selector selector, |
- A arg) { |
- return bulkHandleError(node, arg); |
- } |
- |
- @override |
R errorUnresolvedPostfix( |
Send node, |
Element element, |
@@ -483,17 +461,6 @@ abstract class ErrorBulkMixin<R, A> |
} |
@override |
- R errorUnresolvedRedirectingFactoryConstructorInvoke( |
- NewExpression node, |
- ConstructorElement constructor, |
- InterfaceType type, |
- NodeList arguments, |
- Selector selector, |
- A arg) { |
- return bulkHandleError(node, arg); |
- } |
- |
- @override |
R errorUnresolvedSet( |
Send node, |
Element element, |
@@ -2342,6 +2309,17 @@ abstract class NewBulkMixin<R, A> |
} |
@override |
+ R visitAbstractClassConstructorInvoke( |
+ NewExpression node, |
+ ConstructorElement element, |
+ InterfaceType type, |
+ NodeList arguments, |
+ CallStructure callStructure, |
+ A arg) { |
+ return bulkHandleNew(node, arg); |
+ } |
+ |
+ @override |
R visitConstConstructorInvoke( |
NewExpression node, |
ConstructedConstantExpression constant, |
@@ -2390,6 +2368,39 @@ abstract class NewBulkMixin<R, A> |
A arg) { |
return bulkHandleNew(node, arg); |
} |
+ |
+ @override |
+ R visitUnresolvedClassConstructorInvoke( |
+ NewExpression node, |
+ Element element, |
+ DartType type, |
+ NodeList arguments, |
+ Selector selector, |
+ A arg) { |
+ return bulkHandleNew(node, arg); |
+ } |
+ |
+ @override |
+ R visitUnresolvedConstructorInvoke( |
+ NewExpression node, |
+ Element constructor, |
+ DartType type, |
+ NodeList arguments, |
+ Selector selector, |
+ A arg) { |
+ return bulkHandleNew(node, arg); |
+ } |
+ |
+ @override |
+ R visitUnresolvedRedirectingFactoryConstructorInvoke( |
+ NewExpression node, |
+ ConstructorElement constructor, |
+ InterfaceType type, |
+ NodeList arguments, |
+ CallStructure callStructure, |
+ A arg) { |
+ return bulkHandleNew(node, arg); |
+ } |
} |
/// Visitor that implements [SemanticSendVisitor] by the use of `BulkX` mixins. |
@@ -4798,10 +4809,10 @@ class TraversalSendMixin<R, A> implements SemanticSendVisitor<R, A> { |
} |
@override |
- R errorUnresolvedClassConstructorInvoke( |
+ R visitUnresolvedClassConstructorInvoke( |
NewExpression node, |
Element constructor, |
- MalformedType type, |
+ DartType type, |
NodeList arguments, |
Selector selector, |
A arg) { |
@@ -4810,7 +4821,7 @@ class TraversalSendMixin<R, A> implements SemanticSendVisitor<R, A> { |
} |
@override |
- R errorUnresolvedConstructorInvoke( |
+ R visitUnresolvedConstructorInvoke( |
NewExpression node, |
Element constructor, |
DartType type, |
@@ -4872,7 +4883,7 @@ class TraversalSendMixin<R, A> implements SemanticSendVisitor<R, A> { |
} |
@override |
- R errorAbstractClassConstructorInvoke( |
+ R visitAbstractClassConstructorInvoke( |
NewExpression node, |
ConstructorElement element, |
InterfaceType type, |
@@ -4884,12 +4895,24 @@ class TraversalSendMixin<R, A> implements SemanticSendVisitor<R, A> { |
} |
@override |
- R errorUnresolvedRedirectingFactoryConstructorInvoke( |
+ R visitUnresolvedRedirectingFactoryConstructorInvoke( |
NewExpression node, |
ConstructorElement constructor, |
InterfaceType type, |
NodeList arguments, |
- Selector selector, |
+ CallStructure callStructure, |
+ A arg) { |
+ apply(arguments, arg); |
+ return null; |
+ } |
+ |
+ @override |
+ R errorNonConstantConstructorInvoke( |
+ NewExpression node, |
+ Element element, |
+ InterfaceType type, |
+ NodeList arguments, |
+ CallStructure callStructure, |
A arg) { |
apply(arguments, arg); |
return null; |
@@ -6596,4 +6619,47 @@ abstract class BaseImplementationOfNewMixin<R, A> |
return handleConstructorInvoke( |
node, constructor, type, arguments, callStructure, arg); |
} |
+ |
+ R visitUnresolvedConstructorInvoke( |
+ NewExpression node, |
+ Element constructor, |
+ DartType type, |
+ NodeList arguments, |
+ Selector selector, |
+ A arg) { |
+ return handleConstructorInvoke( |
+ node, constructor, type, arguments, selector.callStructure, arg); |
+ } |
+ |
+ R visitUnresolvedClassConstructorInvoke( |
+ NewExpression node, |
+ Element element, |
+ DartType type, |
+ NodeList arguments, |
+ Selector selector, |
+ A arg) { |
+ return handleConstructorInvoke( |
+ node, element, type, arguments, selector.callStructure, arg); |
+ } |
+ |
+ R visitAbstractClassConstructorInvoke( |
+ NewExpression node, |
+ ConstructorElement constructor, |
+ InterfaceType type, |
+ NodeList arguments, |
+ CallStructure callStructure, |
+ A arg) { |
+ return handleConstructorInvoke( |
+ node, constructor, type, arguments, callStructure, arg); |
+ } |
+ R visitUnresolvedRedirectingFactoryConstructorInvoke( |
+ NewExpression node, |
+ ConstructorElement constructor, |
+ InterfaceType type, |
+ NodeList arguments, |
+ CallStructure callStructure, |
+ A arg) { |
+ return handleConstructorInvoke( |
+ node, constructor, type, arguments, callStructure, arg); |
+ } |
} |