| Index: tests/compiler/dart2js/semantic_visitor_test_send_visitor.dart
|
| diff --git a/tests/compiler/dart2js/semantic_visitor_test_send_visitor.dart b/tests/compiler/dart2js/semantic_visitor_test_send_visitor.dart
|
| index 9ddd15de25b6558ab21a6439f7dd1466783b8f8a..3aa941e21cf8af66b1dd55e145d944e96d840d8b 100644
|
| --- a/tests/compiler/dart2js/semantic_visitor_test_send_visitor.dart
|
| +++ b/tests/compiler/dart2js/semantic_visitor_test_send_visitor.dart
|
| @@ -105,6 +105,17 @@ class SemanticSendTestVisitor extends SemanticTestVisitor {
|
| }
|
|
|
| @override
|
| + errorInvalidSetIfNull(
|
| + Send node,
|
| + ErroneousElement error,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.ERROR_INVALID_SET_IF_NULL,
|
| + error: error.messageKind, rhs: rhs));
|
| + super.errorInvalidSetIfNull(node, error, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| errorInvalidUnary(
|
| Send node,
|
| UnaryOperator operator,
|
| @@ -3105,4 +3116,446 @@ class SemanticSendTestVisitor extends SemanticTestVisitor {
|
| arg) {
|
| visits.add(new Visit(VisitKind.PREVISIT_DEFERRED_ACCESS, element: prefix));
|
| }
|
| +
|
| + @override
|
| + visitClassTypeLiteralSetIfNull(
|
| + Send node,
|
| + ConstantExpression constant,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_CLASS_TYPE_LITERAL_SET_IF_NULL,
|
| + constant: constant.getText(), rhs: rhs));
|
| + super.visitClassTypeLiteralSetIfNull(node, constant, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitDynamicPropertySetIfNull(
|
| + Send node,
|
| + Node receiver,
|
| + Name name,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_DYNAMIC_PROPERTY_SET_IF_NULL,
|
| + receiver: receiver, name: name, rhs: rhs));
|
| + super.visitDynamicPropertySetIfNull(node, receiver, name, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitDynamicTypeLiteralSetIfNull(
|
| + Send node,
|
| + ConstantExpression constant,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_DYNAMIC_TYPE_LITERAL_SET_IF_NULL,
|
| + constant: constant.getText(), rhs: rhs));
|
| + super.visitDynamicTypeLiteralSetIfNull(node, constant, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitFinalLocalVariableSetIfNull(
|
| + Send node,
|
| + LocalVariableElement variable,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_FINAL_LOCAL_VARIABLE_SET_IF_NULL,
|
| + element: variable, rhs: rhs));
|
| + super.visitFinalLocalVariableSetIfNull(node, variable, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitFinalParameterSetIfNull(
|
| + Send node,
|
| + ParameterElement parameter,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_FINAL_PARAMETER_SET_IF_NULL,
|
| + element: parameter, rhs: rhs));
|
| + super.visitFinalParameterSetIfNull(node, parameter, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitFinalStaticFieldSetIfNull(
|
| + Send node,
|
| + FieldElement field,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_STATIC_FINAL_FIELD_SET_IF_NULL,
|
| + element: field, rhs: rhs));
|
| + super.visitFinalStaticFieldSetIfNull(node, field, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitFinalSuperFieldSetIfNull(
|
| + Send node,
|
| + FieldElement field,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_SUPER_FINAL_FIELD_SET_IF_NULL,
|
| + element: field, rhs: rhs));
|
| + super.visitFinalSuperFieldSetIfNull(node, field, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitFinalTopLevelFieldSetIfNull(
|
| + Send node,
|
| + FieldElement field,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_TOP_LEVEL_FINAL_FIELD_SET_IF_NULL,
|
| + element: field, rhs: rhs));
|
| + super.visitFinalTopLevelFieldSetIfNull(node, field, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitIfNotNullDynamicPropertySetIfNull(
|
| + Send node,
|
| + Node receiver,
|
| + Name name,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(
|
| + VisitKind.VISIT_IF_NOT_NULL_DYNAMIC_PROPERTY_SET_IF_NULL,
|
| + receiver: receiver, name: name, rhs: rhs));
|
| + super.visitIfNotNullDynamicPropertySetIfNull(
|
| + node, receiver, name, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitLocalFunctionSetIfNull(
|
| + Send node,
|
| + LocalFunctionElement function,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_LOCAL_FUNCTION_SET_IF_NULL,
|
| + element: function, rhs: rhs));
|
| + super.visitLocalFunctionSetIfNull(node, function, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitLocalVariableSetIfNull(
|
| + Send node,
|
| + LocalVariableElement variable,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_LOCAL_VARIABLE_SET_IF_NULL,
|
| + element: variable, rhs: rhs));
|
| + super.visitLocalVariableSetIfNull(node, variable, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitParameterSetIfNull(
|
| + Send node,
|
| + ParameterElement parameter,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_PARAMETER_SET_IF_NULL,
|
| + element: parameter, rhs: rhs));
|
| + super.visitParameterSetIfNull(node, parameter, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitStaticFieldSetIfNull(
|
| + Send node,
|
| + FieldElement field,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_STATIC_FIELD_SET_IF_NULL,
|
| + element: field, rhs: rhs));
|
| + super.visitStaticFieldSetIfNull(node, field, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitStaticGetterSetterSetIfNull(
|
| + Send node,
|
| + FunctionElement getter,
|
| + FunctionElement setter,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_STATIC_GETTER_SETTER_SET_IF_NULL,
|
| + getter: getter, setter: setter, rhs: rhs));
|
| + super.visitStaticGetterSetterSetIfNull(node, getter, setter, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitStaticMethodSetIfNull(
|
| + Send node,
|
| + FunctionElement method,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_STATIC_METHOD_SET_IF_NULL,
|
| + element: method, rhs: rhs));
|
| + super.visitStaticMethodSetIfNull(node, method, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitStaticMethodSetterSetIfNull(
|
| + Send node,
|
| + MethodElement method,
|
| + MethodElement setter,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_STATIC_METHOD_SETTER_SET_IF_NULL,
|
| + getter: method, setter: setter, rhs: rhs));
|
| + super.visitStaticMethodSetterSetIfNull(node, method, setter, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitSuperFieldFieldSetIfNull(
|
| + Send node,
|
| + FieldElement readField,
|
| + FieldElement writtenField,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_SUPER_FIELD_FIELD_SET_IF_NULL,
|
| + getter: readField, setter: writtenField, rhs: rhs));
|
| + super.visitSuperFieldFieldSetIfNull(
|
| + node, readField, writtenField, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitSuperFieldSetIfNull(
|
| + Send node,
|
| + FieldElement field,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_SUPER_FIELD_SET_IF_NULL,
|
| + element: field, rhs: rhs));
|
| + super.visitSuperFieldSetIfNull(node, field, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitSuperFieldSetterSetIfNull(
|
| + Send node,
|
| + FieldElement field,
|
| + FunctionElement setter,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_SUPER_FIELD_SETTER_SET_IF_NULL,
|
| + getter: field, setter: setter, rhs: rhs));
|
| + super.visitSuperFieldSetterSetIfNull(node, field, setter, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitSuperGetterFieldSetIfNull(
|
| + Send node,
|
| + FunctionElement getter,
|
| + FieldElement field,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_SUPER_GETTER_FIELD_SET_IF_NULL,
|
| + getter: getter, setter: field, rhs: rhs));
|
| + super.visitSuperGetterFieldSetIfNull(node, getter, field, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitSuperGetterSetterSetIfNull(
|
| + Send node,
|
| + FunctionElement getter,
|
| + FunctionElement setter,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_SUPER_GETTER_SETTER_SET_IF_NULL,
|
| + getter: getter, setter: setter, rhs: rhs));
|
| + super.visitSuperGetterSetterSetIfNull(node, getter, setter, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitSuperMethodSetIfNull(
|
| + Send node,
|
| + FunctionElement method,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_SUPER_METHOD_SET_IF_NULL,
|
| + element: method, rhs: rhs));
|
| + super.visitSuperMethodSetIfNull(node, method, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitSuperMethodSetterSetIfNull(
|
| + Send node,
|
| + FunctionElement method,
|
| + FunctionElement setter,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_SUPER_METHOD_SETTER_SET_IF_NULL,
|
| + getter: method, setter: setter, rhs: rhs));
|
| + super.visitSuperMethodSetterSetIfNull(node, method, setter, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitThisPropertySetIfNull(
|
| + Send node,
|
| + Name name,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_THIS_PROPERTY_SET_IF_NULL,
|
| + name: name, rhs: rhs));
|
| + super.visitThisPropertySetIfNull(node, name, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitTopLevelFieldSetIfNull(
|
| + Send node,
|
| + FieldElement field,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_TOP_LEVEL_FIELD_SET_IF_NULL,
|
| + element: field, rhs: rhs));
|
| + super.visitTopLevelFieldSetIfNull(node, field, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitTopLevelGetterSetterSetIfNull(
|
| + Send node,
|
| + FunctionElement getter,
|
| + FunctionElement setter,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_TOP_LEVEL_GETTER_SETTER_SET_IF_NULL,
|
| + getter: getter, setter: setter, rhs: rhs));
|
| + super.visitTopLevelGetterSetterSetIfNull(node, getter, setter, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitTopLevelMethodSetIfNull(
|
| + Send node,
|
| + FunctionElement method,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_TOP_LEVEL_METHOD_SET_IF_NULL,
|
| + element: method, rhs: rhs));
|
| + super.visitTopLevelMethodSetIfNull(node, method, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitTopLevelMethodSetterSetIfNull(
|
| + Send node,
|
| + FunctionElement method,
|
| + FunctionElement setter,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_TOP_LEVEL_METHOD_SETTER_SET_IF_NULL,
|
| + getter: method, setter: setter, rhs: rhs));
|
| + super.visitTopLevelMethodSetterSetIfNull(node, method, setter, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitTypeVariableTypeLiteralSetIfNull(
|
| + Send node,
|
| + TypeVariableElement element,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_TYPE_VARIABLE_TYPE_LITERAL_SET_IF_NULL,
|
| + element: element, rhs: rhs));
|
| + super.visitTypeVariableTypeLiteralSetIfNull(node, element, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitTypedefTypeLiteralSetIfNull(
|
| + Send node,
|
| + ConstantExpression constant,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_TYPEDEF_TYPE_LITERAL_SET_IF_NULL,
|
| + constant: constant.getText(), rhs: rhs));
|
| + super.visitTypedefTypeLiteralSetIfNull(node, constant, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitUnresolvedSetIfNull(
|
| + Send node,
|
| + Element element,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_SET_IF_NULL,
|
| + name: element.name, rhs: rhs));
|
| + super.visitUnresolvedSetIfNull(node, element, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitUnresolvedStaticGetterSetIfNull(
|
| + Send node,
|
| + Element element,
|
| + MethodElement setter,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_STATIC_GETTER_SET_IF_NULL,
|
| + setter: setter, rhs: rhs));
|
| + super.visitUnresolvedStaticGetterSetIfNull(node, element, setter, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitUnresolvedStaticSetterSetIfNull(
|
| + Send node,
|
| + MethodElement getter,
|
| + Element element,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_STATIC_SETTER_SET_IF_NULL,
|
| + getter: getter, rhs: rhs));
|
| + super.visitUnresolvedStaticSetterSetIfNull(node, getter, element, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitUnresolvedSuperGetterSetIfNull(
|
| + Send node,
|
| + Element element,
|
| + MethodElement setter,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_SUPER_GETTER_SET_IF_NULL,
|
| + setter: setter, rhs: rhs));
|
| + super.visitUnresolvedSuperGetterSetIfNull(node, element, setter, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitUnresolvedSuperSetIfNull(
|
| + Send node,
|
| + Element element,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_SUPER_SET_IF_NULL,
|
| + name: element.name, rhs: rhs));
|
| + super.visitUnresolvedSuperSetIfNull(node, element, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitUnresolvedSuperSetterSetIfNull(
|
| + Send node,
|
| + MethodElement getter,
|
| + Element element,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_SUPER_SETTER_SET_IF_NULL,
|
| + getter: getter, rhs: rhs));
|
| + super.visitUnresolvedSuperSetterSetIfNull(node, getter, element, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitUnresolvedTopLevelGetterSetIfNull(
|
| + Send node,
|
| + Element element,
|
| + MethodElement setter,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(
|
| + VisitKind.VISIT_UNRESOLVED_TOP_LEVEL_GETTER_SET_IF_NULL,
|
| + setter: setter, rhs: rhs));
|
| + super.visitUnresolvedTopLevelGetterSetIfNull(
|
| + node, element, setter, rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitUnresolvedTopLevelSetterSetIfNull(
|
| + Send node,
|
| + MethodElement getter,
|
| + Element element,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(
|
| + VisitKind.VISIT_UNRESOLVED_TOP_LEVEL_SETTER_SET_IF_NULL,
|
| + getter: getter, rhs: rhs));
|
| + super.visitUnresolvedTopLevelSetterSetIfNull(
|
| + node, getter, element, rhs, arg);
|
| + }
|
| }
|
|
|