Chromium Code Reviews| 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 25678e952d952848c5385271e58c1586d75f2dd7..b0f8ebcc9ba1e8f88e9394d41b2e9d23600f3023 100644 |
| --- a/pkg/compiler/lib/src/resolution/semantic_visitor_mixins.dart |
| +++ b/pkg/compiler/lib/src/resolution/semantic_visitor_mixins.dart |
| @@ -86,6 +86,16 @@ abstract class PrefixBulkMixin<R, A> |
| return bulkHandlePrefix(node, arg); |
| } |
| + R visitIfNotNullDynamicPropertyPrefix( |
| + Send node, |
| + Node receiver, |
| + IncDecOperator operator, |
| + Selector getterSelector, |
| + Selector setterSelector, |
| + A arg) { |
| + return bulkHandlePrefix(node, arg); |
| + } |
| + |
| @override |
| R visitIndexPrefix( |
| Send node, |
| @@ -504,6 +514,16 @@ abstract class PostfixBulkMixin<R, A> |
| } |
| @override |
| + R visitIfNotNullDynamicPropertyPostfix( |
| + Send node, |
| + Node receiver, |
| + IncDecOperator operator, |
| + Selector getterSelector, |
| + Selector setterSelector, |
| + A arg) { |
| + return bulkHandlePostfix(node, arg); |
| + } |
| + |
| R visitIndexPostfix( |
| Send node, |
| Node receiver, |
| @@ -930,6 +950,18 @@ abstract class CompoundBulkMixin<R, A> |
| } |
| @override |
| + R visitIfNotNullDynamicPropertyCompound( |
| + Send node, |
| + Node receiver, |
| + AssignmentOperator operator, |
| + Node rhs, |
| + Selector getterSelector, |
| + Selector setterSelector, |
| + A arg) { |
| + return bulkHandleCompound(node, arg); |
| + } |
| + |
| + @override |
| R visitLocalVariableCompound( |
| Send node, |
| LocalVariableElement variable, |
| @@ -1337,6 +1369,16 @@ abstract class InvokeBulkMixin<R, A> |
| } |
| @override |
| + R visitIfNotNullDynamicPropertyInvoke( |
| + Send node, |
| + Node receiver, |
| + NodeList arguments, |
| + Selector selector, |
| + A arg) { |
| + return bulkHandleInvoke(node, arg); |
| + } |
| + |
| + @override |
| R visitDynamicTypeLiteralInvoke( |
| Send node, |
| ConstantExpression constant, |
| @@ -1635,6 +1677,15 @@ abstract class GetBulkMixin<R, A> |
| } |
| @override |
| + R visitIfNotNullDynamicPropertyGet( |
| + Send node, |
| + Node receiver, |
| + Selector selector, |
| + A arg) { |
| + return bulkHandleGet(node, arg); |
| + } |
| + |
| + @override |
| R visitDynamicTypeLiteralGet( |
| Send node, |
| ConstantExpression constant, |
| @@ -1839,6 +1890,16 @@ abstract class SetBulkMixin<R, A> |
| } |
| @override |
| + R visitIfNotNullDynamicPropertySet( |
| + SendSet node, |
| + Node receiver, |
| + Selector selector, |
| + Node rhs, |
| + A arg) { |
| + return bulkHandleSet(node, arg); |
| + } |
| + |
| + @override |
| R visitLocalVariableSet( |
| SendSet node, |
| LocalVariableElement variable, |
| @@ -2382,6 +2443,15 @@ abstract class BaseBulkMixin<R, A> |
| } |
| @override |
| + R visitIfNull( |
| + Send node, |
| + Node left, |
| + Node right, |
| + A arg) { |
| + return bulkHandleNode(node, 'If-null (Lazy ?? `#`) unhandled.', arg); |
| + } |
| + |
| + @override |
| R visitLogicalAnd( |
| Send node, |
| Node left, |
| @@ -3840,6 +3910,20 @@ class TraversalSendMixin<R, A> implements SemanticSendVisitor<R, A> { |
| } |
| @override |
| + R visitIfNotNullDynamicPropertyCompound( |
| + Send node, |
| + Node receiver, |
| + AssignmentOperator operator, |
| + Node rhs, |
| + Selector getterSelector, |
| + Selector setterSelector, |
| + A arg) { |
| + apply(receiver, arg); |
| + apply(rhs, arg); |
| + return null; |
| + } |
| + |
| + @override |
| R visitDynamicPropertyGet( |
| Send node, |
| Node receiver, |
| @@ -3850,6 +3934,16 @@ class TraversalSendMixin<R, A> implements SemanticSendVisitor<R, A> { |
| } |
| @override |
| + R visitIfNotNullDynamicPropertyGet( |
| + Send node, |
| + Node receiver, |
| + Selector selector, |
| + A arg) { |
| + apply(receiver, arg); |
| + return null; |
| + } |
| + |
| + @override |
| R visitDynamicPropertyInvoke( |
| Send node, |
| Node receiver, |
| @@ -3862,6 +3956,18 @@ class TraversalSendMixin<R, A> implements SemanticSendVisitor<R, A> { |
| } |
| @override |
| + R visitIfNotNullDynamicPropertyInvoke( |
| + Send node, |
| + Node receiver, |
| + NodeList arguments, |
| + Selector selector, |
| + A arg) { |
| + apply(receiver, arg); |
| + apply(arguments, arg); |
| + return null; |
| + } |
| + |
| + @override |
| R visitDynamicPropertyPostfix( |
| Send node, |
| Node receiver, |
| @@ -3874,6 +3980,18 @@ class TraversalSendMixin<R, A> implements SemanticSendVisitor<R, A> { |
| } |
| @override |
| + R visitIfNotNullDynamicPropertyPostfix( |
| + Send node, |
| + Node receiver, |
| + IncDecOperator operator, |
| + Selector getterSelector, |
| + Selector setterSelector, |
| + A arg) { |
| + apply(receiver, arg); |
| + return null; |
| + } |
| + |
| + @override |
| R visitDynamicPropertyPrefix( |
| Send node, |
| Node receiver, |
| @@ -3886,6 +4004,18 @@ class TraversalSendMixin<R, A> implements SemanticSendVisitor<R, A> { |
| } |
| @override |
| + R visitIfNotNullDynamicPropertyPrefix( |
| + Send node, |
| + Node receiver, |
| + IncDecOperator operator, |
| + Selector getterSelector, |
| + Selector setterSelector, |
| + A arg) { |
| + apply(receiver, arg); |
| + return null; |
| + } |
| + |
| + @override |
| R visitDynamicPropertySet( |
| SendSet node, |
| Node receiver, |
| @@ -3897,6 +4027,17 @@ class TraversalSendMixin<R, A> implements SemanticSendVisitor<R, A> { |
| } |
| @override |
| + R visitIfNotNullDynamicPropertySet( |
| + SendSet node, |
| + Node receiver, |
| + Selector selector, |
| + Node rhs, |
| + A arg) { |
| + apply(rhs, arg); |
| + return null; |
| + } |
| + |
| + @override |
| R visitDynamicTypeLiteralCompound( |
| Send node, |
| ConstantExpression constant, |
| @@ -4089,6 +4230,17 @@ class TraversalSendMixin<R, A> implements SemanticSendVisitor<R, A> { |
| } |
| @override |
| + R visitIfNull( |
| + Send node, |
| + Node left, |
| + Node right, |
| + A arg) { |
| + apply(left, arg); |
| + apply(right, arg); |
| + return null; |
| + } |
| + |
| + @override |
| R visitLogicalAnd( |
| Send node, |
| Node left, |
| @@ -7497,6 +7649,15 @@ abstract class BaseImplementationOfDynamicsMixin<R, A> |
| } |
| @override |
| + R visitIfNotNullDynamicPropertyGet( |
| + Send node, |
| + Node receiver, |
| + Selector selector, |
| + A arg) { |
| + return handleDynamicGet(node, receiver, selector, arg); |
|
Johnni Winther
2015/05/22 12:39:49
Add a TODO for me questioning whether these should
Siggi Cherem (dart-lang)
2015/05/22 19:49:54
Done.
|
| + } |
| + |
| + @override |
| R visitDynamicPropertyInvoke( |
| Send node, |
| Node receiver, |
| @@ -7507,6 +7668,16 @@ abstract class BaseImplementationOfDynamicsMixin<R, A> |
| } |
| @override |
| + R visitIfNotNullDynamicPropertyInvoke( |
| + Send node, |
| + Node receiver, |
| + NodeList arguments, |
| + Selector selector, |
| + A arg) { |
| + return handleDynamicInvoke(node, receiver, arguments, selector, arg); |
| + } |
| + |
| + @override |
| R visitDynamicPropertySet( |
| SendSet node, |
| Node receiver, |
| @@ -7517,6 +7688,16 @@ abstract class BaseImplementationOfDynamicsMixin<R, A> |
| } |
| @override |
| + R visitIfNotNullDynamicPropertySet( |
| + SendSet node, |
| + Node receiver, |
| + Selector selector, |
| + Node rhs, |
| + A arg) { |
| + return handleDynamicSet(node, receiver, selector, rhs, arg); |
| + } |
| + |
| + @override |
| R visitThisPropertyGet( |
| Send node, |
| Selector selector, |
| @@ -7591,6 +7772,19 @@ abstract class BaseImplementationOfDynamicCompoundsMixin<R, A> |
| } |
| @override |
| + R visitIfNotNullDynamicPropertyCompound( |
| + Send node, |
| + Node receiver, |
| + AssignmentOperator operator, |
| + Node rhs, |
| + Selector getterSelector, |
| + Selector setterSelector, |
| + A arg) { |
| + return handleDynamicCompound( |
| + node, receiver, operator, rhs, getterSelector, setterSelector, arg); |
| + } |
| + |
| + @override |
| R visitDynamicPropertyPostfix( |
| Send node, |
| Node receiver, |
| @@ -7604,6 +7798,19 @@ abstract class BaseImplementationOfDynamicCompoundsMixin<R, A> |
| } |
| @override |
| + R visitIfNotNullDynamicPropertyPostfix( |
| + Send node, |
| + Node receiver, |
| + IncDecOperator operator, |
| + Selector getterSelector, |
| + Selector setterSelector, |
| + A arg) { |
| + return handleDynamicPostfixPrefix( |
| + node, receiver, operator, |
| + getterSelector, setterSelector, arg, isPrefix: false); |
| + } |
| + |
| + @override |
| R visitDynamicPropertyPrefix( |
| Send node, |
| Node receiver, |
| @@ -7617,6 +7824,19 @@ abstract class BaseImplementationOfDynamicCompoundsMixin<R, A> |
| } |
| @override |
| + R visitIfNotNullDynamicPropertyPrefix( |
| + Send node, |
| + Node receiver, |
| + IncDecOperator operator, |
| + Selector getterSelector, |
| + Selector setterSelector, |
| + A arg) { |
| + return handleDynamicPostfixPrefix( |
| + node, receiver, operator, |
| + getterSelector, setterSelector, arg, isPrefix: true); |
| + } |
| + |
| + @override |
| R visitThisPropertyCompound( |
| Send node, |
| AssignmentOperator operator, |
| @@ -7828,6 +8048,23 @@ abstract class BaseImplementationOfCompoundsMixin<R, A> |
| arg); |
| } |
| + R visitIfNotNullDynamicPropertyCompound( |
| + Send node, |
| + Node receiver, |
| + AssignmentOperator operator, |
| + Node rhs, |
| + Selector getterSelector, |
| + Selector setterSelector, |
| + A arg) { |
| + return handleDynamicCompounds( |
| + node, |
| + receiver, |
| + new AssignmentCompound(operator, rhs), |
| + getterSelector, |
| + setterSelector, |
| + arg); |
| + } |
| + |
| @override |
| R visitThisPropertyCompound( |
| Send node, |
| @@ -8211,6 +8448,22 @@ abstract class BaseImplementationOfCompoundsMixin<R, A> |
| arg); |
| } |
| + R visitIfNotNullDynamicPropertyPrefix( |
| + Send node, |
| + Node receiver, |
| + IncDecOperator operator, |
| + Selector getterSelector, |
| + Selector setterSelector, |
| + A arg) { |
| + return handleDynamicCompounds( |
| + node, |
| + receiver, |
| + new IncDecCompound(CompoundKind.PREFIX, operator), |
| + getterSelector, |
| + setterSelector, |
| + arg); |
| + } |
| + |
| @override |
| R visitParameterPrefix( |
| Send node, |
| @@ -8516,6 +8769,23 @@ abstract class BaseImplementationOfCompoundsMixin<R, A> |
| } |
| @override |
| + R visitIfNotNullDynamicPropertyPostfix( |
| + Send node, |
| + Node receiver, |
| + IncDecOperator operator, |
| + Selector getterSelector, |
| + Selector setterSelector, |
| + A arg) { |
| + return handleDynamicCompounds( |
| + node, |
| + receiver, |
| + new IncDecCompound(CompoundKind.POSTFIX, operator), |
| + getterSelector, |
| + setterSelector, |
| + arg); |
| + } |
| + |
| + @override |
| R visitParameterPostfix( |
| Send node, |
| ParameterElement parameter, |