| Index: tests/compiler/dart2js/semantic_visitor_test.dart
|
| diff --git a/tests/compiler/dart2js/semantic_visitor_test.dart b/tests/compiler/dart2js/semantic_visitor_test.dart
|
| index 7fe4ec344c66ae4f17343dee0e9c3e269e0b24cb..ea813148aa653d3e0da8612f5b1804a2f45f67bc 100644
|
| --- a/tests/compiler/dart2js/semantic_visitor_test.dart
|
| +++ b/tests/compiler/dart2js/semantic_visitor_test.dart
|
| @@ -5,6 +5,7 @@
|
| library dart2js.semantics_visitor_test;
|
|
|
| import 'dart:async';
|
| +import 'dart:mirrors';
|
| import 'package:async_helper/async_helper.dart';
|
| import 'package:expect/expect.dart';
|
| import 'package:compiler/src/constants/expressions.dart';
|
| @@ -965,6 +966,38 @@ const Map<String, List<Test>> SEND_TESTS = const {
|
| const Visit(VisitKind.VISIT_CLASS_TYPE_LITERAL_INVOKE,
|
| constant: 'C',
|
| arguments: '(null,42)')),
|
| + const Test(
|
| + '''
|
| + class C {}
|
| + m() => C += 42;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_CLASS_TYPE_LITERAL_COMPOUND,
|
| + constant: 'C',
|
| + operator: '+=',
|
| + rhs: '42')),
|
| + const Test(
|
| + '''
|
| + class C {}
|
| + m() => ++C;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_CLASS_TYPE_LITERAL_PREFIX,
|
| + constant: 'C',
|
| + operator: '++')),
|
| + const Test(
|
| + '''
|
| + class C {}
|
| + m() => C--;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_CLASS_TYPE_LITERAL_POSTFIX,
|
| + constant: 'C',
|
| + operator: '--')),
|
| + const Test(
|
| + '''
|
| + class C {}
|
| + m() => C;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_CLASS_TYPE_LITERAL_GET,
|
| + constant: 'C')),
|
| ],
|
| 'Typedef type literals': const [
|
| // Typedef type literals
|
| @@ -983,6 +1016,31 @@ const Map<String, List<Test>> SEND_TESTS = const {
|
| const Visit(VisitKind.VISIT_TYPEDEF_TYPE_LITERAL_INVOKE,
|
| constant: 'F',
|
| arguments: '(null,42)')),
|
| + const Test(
|
| + '''
|
| + typedef F();
|
| + m() => F += 42;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_TYPEDEF_TYPE_LITERAL_COMPOUND,
|
| + constant: 'F',
|
| + operator: '+=',
|
| + rhs: '42')),
|
| + const Test(
|
| + '''
|
| + typedef F();
|
| + m() => ++F;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_TYPEDEF_TYPE_LITERAL_PREFIX,
|
| + constant: 'F',
|
| + operator: '++')),
|
| + const Test(
|
| + '''
|
| + typedef F();
|
| + m() => F--;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_TYPEDEF_TYPE_LITERAL_POSTFIX,
|
| + constant: 'F',
|
| + operator: '--')),
|
| ],
|
| 'Type variable type literals': const [
|
| // Type variable type literals
|
| @@ -1003,6 +1061,34 @@ const Map<String, List<Test>> SEND_TESTS = const {
|
| const Visit(VisitKind.VISIT_TYPE_VARIABLE_TYPE_LITERAL_INVOKE,
|
| element: 'type_variable(C#T)',
|
| arguments: '(null,42)')),
|
| + const Test.clazz(
|
| + '''
|
| + class C<T> {
|
| + m() => T += 42;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_TYPE_VARIABLE_TYPE_LITERAL_COMPOUND,
|
| + element: 'type_variable(C#T)',
|
| + operator: '+=',
|
| + rhs: '42')),
|
| + const Test.clazz(
|
| + '''
|
| + class C<T> {
|
| + m() => ++T;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_TYPE_VARIABLE_TYPE_LITERAL_PREFIX,
|
| + element: 'type_variable(C#T)',
|
| + operator: '++')),
|
| + const Test.clazz(
|
| + '''
|
| + class C<T> {
|
| + m() => T--;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_TYPE_VARIABLE_TYPE_LITERAL_POSTFIX,
|
| + element: 'type_variable(C#T)',
|
| + operator: '--')),
|
|
|
| ],
|
| 'Dynamic type literals': const [
|
| @@ -1013,15 +1099,38 @@ const Map<String, List<Test>> SEND_TESTS = const {
|
| ''',
|
| const Visit(VisitKind.VISIT_DYNAMIC_TYPE_LITERAL_GET,
|
| constant: 'dynamic')),
|
| - // TODO(johnniwinther): Enable this when we pass the right constant.
|
| - // Currently we generated the constant for `Type` instead of `dynamic`.
|
| - /*const Test(
|
| + // TODO(johnniwinther): Update these to expect the constant to be `dynamic`
|
| + // instead of `Type`. Currently the compile time constant evaluator cannot
|
| + // detect `dynamic` as a constant subexpression.
|
| + const Test(
|
| '''
|
| m() { dynamic(null, 42); }
|
| ''',
|
| const Visit(VisitKind.VISIT_DYNAMIC_TYPE_LITERAL_INVOKE,
|
| - constant: 'dynamic',
|
| - arguments: '(null,42)')),*/
|
| + constant: 'Type',
|
| + arguments: '(null,42)')),
|
| + const Test(
|
| + '''
|
| + m() => dynamic += 42;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_DYNAMIC_TYPE_LITERAL_COMPOUND,
|
| + constant: 'Type',
|
| + operator: '+=',
|
| + rhs: '42')),
|
| + const Test(
|
| + '''
|
| + m() => ++dynamic;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_DYNAMIC_TYPE_LITERAL_PREFIX,
|
| + constant: 'Type',
|
| + operator: '++')),
|
| + const Test(
|
| + '''
|
| + m() => dynamic--;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_DYNAMIC_TYPE_LITERAL_POSTFIX,
|
| + constant: 'Type',
|
| + operator: '--')),
|
| ],
|
| 'Assert': const [
|
| // Assert
|
| @@ -1257,6 +1366,7 @@ const Map<String, List<Test>> SEND_TESTS = const {
|
| }
|
| ''',
|
| const Visit(VisitKind.VISIT_UNRESOLVED_SUPER_GETTER_INDEX_PREFIX,
|
| + setter: 'function(B#[]=)',
|
| index: '42',
|
| operator: '++')),
|
| const Test.clazz(
|
| @@ -1267,7 +1377,7 @@ const Map<String, List<Test>> SEND_TESTS = const {
|
| m() => ++super[42];
|
| }
|
| ''',
|
| - const Visit(VisitKind.VISIT_UNRESOLVED_SUPER_GETTER_INDEX_PREFIX,
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_SUPER_INDEX_PREFIX,
|
| index: '42',
|
| operator: '++')),
|
| const Test.clazz(
|
| @@ -1308,6 +1418,7 @@ const Map<String, List<Test>> SEND_TESTS = const {
|
| }
|
| ''',
|
| const Visit(VisitKind.VISIT_UNRESOLVED_SUPER_GETTER_INDEX_POSTFIX,
|
| + setter: 'function(B#[]=)',
|
| index: '42',
|
| operator: '--')),
|
| const Test.clazz(
|
| @@ -1318,7 +1429,7 @@ const Map<String, List<Test>> SEND_TESTS = const {
|
| m() => super[42]--;
|
| }
|
| ''',
|
| - const Visit(VisitKind.VISIT_UNRESOLVED_SUPER_GETTER_INDEX_POSTFIX,
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_SUPER_INDEX_POSTFIX,
|
| index: '42',
|
| operator: '--')),
|
| const Test.clazz(
|
| @@ -1474,52 +1585,45 @@ const Map<String, List<Test>> SEND_TESTS = const {
|
| const Visit(VisitKind.VISIT_PARAMETER_GET,
|
| element: 'parameter(m#a)')
|
| ]),
|
| - // TODO(johnniwinther): Enable this when type literals are recognized in
|
| - // SendSet.
|
| - /*const Test(
|
| - '''
|
| - class C {}
|
| - m(a) => C += 42;
|
| - ''',
|
| - const Visit(VisitKind.VISIT_CLASS_TYPE_LITERAL_COMPOUND,
|
| - constant: 'C', operator: '+=', rhs: '42')),
|
| const Test(
|
| '''
|
| - typedef F();
|
| - m(a) => F += 42;
|
| + m(a) => a += 42;
|
| ''',
|
| - const Visit(VisitKind.VISIT_TYPEDEF_TYPE_LITERAL_COMPOUND,
|
| - constant: 'F', operator: '+=', rhs: '42')),
|
| - const Test.clazz(
|
| + const Visit(VisitKind.VISIT_PARAMETER_COMPOUND,
|
| + element: 'parameter(m#a)', operator: '+=', rhs: '42')),
|
| + const Test(
|
| '''
|
| - class C<T> {
|
| - m(a) => T += 42;
|
| - }
|
| + m(final a) => a += 42;
|
| ''',
|
| - const Visit(VisitKind.VISIT_TYPE_VARIABLE_TYPE_LITERAL_COMPOUND,
|
| - element: 'type_variable(C#T)', operator: '+=', rhs: '42')),
|
| + const Visit(VisitKind.VISIT_FINAL_PARAMETER_COMPOUND,
|
| + element: 'parameter(m#a)', operator: '+=', rhs: '42')),
|
| const Test(
|
| '''
|
| - m(a) => dynamic += 42;
|
| + m() {
|
| + var a;
|
| + a += 42;
|
| + }
|
| ''',
|
| - const Visit(VisitKind.VISIT_DYNAMIC_TYPE_LITERAL_COMPOUND,
|
| - constant: 'dynamic',
|
| - operator: '+=', rhs: '42')),*/
|
| + const Visit(VisitKind.VISIT_LOCAL_VARIABLE_COMPOUND,
|
| + element: 'variable(m#a)', operator: '+=', rhs: '42')),
|
| const Test(
|
| '''
|
| - m(a) => a += 42;
|
| + m() {
|
| + final a;
|
| + a += 42;
|
| + }
|
| ''',
|
| - const Visit(VisitKind.VISIT_PARAMETER_COMPOUND,
|
| - element: 'parameter(m#a)', operator: '+=', rhs: '42')),
|
| + const Visit(VisitKind.VISIT_FINAL_LOCAL_VARIABLE_COMPOUND,
|
| + element: 'variable(m#a)', operator: '+=', rhs: '42')),
|
| const Test(
|
| '''
|
| m() {
|
| - var a;
|
| + a() {}
|
| a += 42;
|
| }
|
| ''',
|
| - const Visit(VisitKind.VISIT_LOCAL_VARIABLE_COMPOUND,
|
| - element: 'variable(m#a)', operator: '+=', rhs: '42')),
|
| + const Visit(VisitKind.VISIT_LOCAL_FUNCTION_COMPOUND,
|
| + element: 'function(m#a)', operator: '+=', rhs: '42')),
|
| const Test(
|
| '''
|
| var a;
|
| @@ -1704,6 +1808,17 @@ const Map<String, List<Test>> SEND_TESTS = const {
|
| const Test.clazz(
|
| '''
|
| class B {
|
| + final a = 0;
|
| + }
|
| + class C extends B {
|
| + m() => super.a += 42;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_SUPER_FINAL_FIELD_COMPOUND,
|
| + element: 'field(B#a)', operator: '+=', rhs: '42')),
|
| + const Test.clazz(
|
| + '''
|
| + class B {
|
| get a => 0;
|
| set a (_) {}
|
| }
|
| @@ -1778,6 +1893,129 @@ const Map<String, List<Test>> SEND_TESTS = const {
|
| const Visit(VisitKind.VISIT_SUPER_FIELD_FIELD_COMPOUND,
|
| getter: 'field(B#a)', setter: 'field(A#a)',
|
| operator: '+=', rhs: '42')),*/
|
| + const Test.clazz(
|
| + '''
|
| + class B {
|
| + a() {}
|
| + }
|
| + class C extends B {
|
| + m() => super.a += 42;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_SUPER_METHOD_COMPOUND,
|
| + element: 'function(B#a)',
|
| + operator: '+=', rhs: '42')),
|
| + const Test.clazz(
|
| + '''
|
| + class B {
|
| + }
|
| + class C extends B {
|
| + m() => super.a += 42;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_SUPER_COMPOUND,
|
| + operator: '+=', rhs: '42')),
|
| + const Test.clazz(
|
| + '''
|
| + class B {
|
| + set a(_) {}
|
| + }
|
| + class C extends B {
|
| + m() => super.a += 42;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_SUPER_GETTER_COMPOUND,
|
| + setter: 'setter(B#a)', operator: '+=', rhs: '42')),
|
| + const Test.clazz(
|
| + '''
|
| + class B {
|
| + get a => 42;
|
| + }
|
| + class C extends B {
|
| + m() => super.a += 42;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_SUPER_SETTER_COMPOUND,
|
| + getter: 'getter(B#a)', operator: '+=', rhs: '42')),
|
| +
|
| + const Test.clazz(
|
| + '''
|
| + class C {
|
| + static set a(var value) { }
|
| + m() => a += 42;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_STATIC_GETTER_COMPOUND,
|
| + setter: 'setter(C#a)', operator: '+=', rhs: '42')),
|
| +
|
| + const Test.clazz(
|
| + '''
|
| + class C {
|
| + static get a => 42;
|
| + m() => C.a += 42;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_STATIC_SETTER_COMPOUND,
|
| + getter: 'getter(C#a)', operator: '+=', rhs: '42')),
|
| +
|
| + const Test.clazz(
|
| + '''
|
| + class C {
|
| + static final a = 42;
|
| + m() => C.a += 42;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_STATIC_FINAL_FIELD_COMPOUND,
|
| + element: 'field(C#a)', operator: '+=', rhs: '42')),
|
| +
|
| + const Test(
|
| + '''
|
| + class C {
|
| + static a(var value) { }
|
| + }
|
| + m() => C.a += 42;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_STATIC_METHOD_COMPOUND,
|
| + element: 'function(C#a)', operator: '+=', rhs: '42')),
|
| +
|
| + const Test(
|
| + '''
|
| + set a(var value) { }
|
| + m() => a += 42;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_TOP_LEVEL_GETTER_COMPOUND,
|
| + setter: 'setter(a)', operator: '+=', rhs: '42')),
|
| +
|
| + const Test(
|
| + '''
|
| + get a => 42;
|
| + m() => a += 42;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_TOP_LEVEL_SETTER_COMPOUND,
|
| + getter: 'getter(a)', operator: '+=', rhs: '42')),
|
| +
|
| + const Test(
|
| + '''
|
| + a(var value) { }
|
| + m() => a += 42;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_TOP_LEVEL_METHOD_COMPOUND,
|
| + element: 'function(a)', operator: '+=', rhs: '42')),
|
| +
|
| + const Test(
|
| + '''
|
| + final a = 42;
|
| + m() => a += 42;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_TOP_LEVEL_FINAL_FIELD_COMPOUND,
|
| + element: 'field(a)', operator: '+=', rhs: '42')),
|
| +
|
| + const Test(
|
| + '''
|
| + m() => unresolved += 42;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_COMPOUND,
|
| + operator: '+=', rhs: '42')),
|
| ],
|
| 'Compound index assignment': const [
|
| // Compound index assignment
|
| @@ -1810,6 +2048,7 @@ const Map<String, List<Test>> SEND_TESTS = const {
|
| }
|
| ''',
|
| const Visit(VisitKind.VISIT_UNRESOLVED_SUPER_GETTER_COMPOUND_INDEX_SET,
|
| + setter: 'function(B#[]=)',
|
| index: '1', operator: '+=', rhs: '42')),
|
| const Test.clazz(
|
| '''
|
| @@ -1819,7 +2058,7 @@ const Map<String, List<Test>> SEND_TESTS = const {
|
| m() => super[1] += 42;
|
| }
|
| ''',
|
| - const Visit(VisitKind.VISIT_UNRESOLVED_SUPER_GETTER_COMPOUND_INDEX_SET,
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_SUPER_COMPOUND_INDEX_SET,
|
| index: '1', operator: '+=', rhs: '42')),
|
| const Test.clazz(
|
| '''
|
| @@ -1856,6 +2095,12 @@ const Map<String, List<Test>> SEND_TESTS = const {
|
| element: 'parameter(m#a)', operator: '++')),
|
| const Test(
|
| '''
|
| + m(final a) => ++a;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_FINAL_PARAMETER_PREFIX,
|
| + element: 'parameter(m#a)', operator: '++')),
|
| + const Test(
|
| + '''
|
| m() {
|
| var a;
|
| --a;
|
| @@ -1865,6 +2110,24 @@ const Map<String, List<Test>> SEND_TESTS = const {
|
| element: 'variable(m#a)', operator: '--')),
|
| const Test(
|
| '''
|
| + m() {
|
| + final a = 42;
|
| + --a;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_FINAL_LOCAL_VARIABLE_PREFIX,
|
| + element: 'variable(m#a)', operator: '--')),
|
| + const Test(
|
| + '''
|
| + m() {
|
| + a() {}
|
| + --a;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_LOCAL_FUNCTION_PREFIX,
|
| + element: 'function(m#a)', operator: '--')),
|
| + const Test(
|
| + '''
|
| var a;
|
| m() => ++a;
|
| ''',
|
| @@ -1999,6 +2262,17 @@ const Map<String, List<Test>> SEND_TESTS = const {
|
| const Test.clazz(
|
| '''
|
| class B {
|
| + final a = 0;
|
| + }
|
| + class C extends B {
|
| + m() => --super.a;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_SUPER_FINAL_FIELD_PREFIX,
|
| + element: 'field(B#a)', operator: '--')),
|
| + const Test.clazz(
|
| + '''
|
| + class B {
|
| get a => 0;
|
| set a (_) {}
|
| }
|
| @@ -2056,6 +2330,129 @@ const Map<String, List<Test>> SEND_TESTS = const {
|
| const Visit(VisitKind.VISIT_SUPER_FIELD_SETTER_PREFIX,
|
| getter: 'field(A#a)', setter: 'setter(B#a)',
|
| operator: '++')),
|
| + const Test.clazz(
|
| + '''
|
| + class B {
|
| + a() {}
|
| + }
|
| + class C extends B {
|
| + m() => ++super.a;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_SUPER_METHOD_PREFIX,
|
| + element: 'function(B#a)',
|
| + operator: '++')),
|
| + const Test.clazz(
|
| + '''
|
| + class B {
|
| + }
|
| + class C extends B {
|
| + m() => ++super.a;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_SUPER_PREFIX,
|
| + operator: '++')),
|
| + const Test.clazz(
|
| + '''
|
| + class B {
|
| + set a(_) {}
|
| + }
|
| + class C extends B {
|
| + m() => ++super.a;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_SUPER_GETTER_PREFIX,
|
| + setter: 'setter(B#a)', operator: '++')),
|
| + const Test.clazz(
|
| + '''
|
| + class B {
|
| + get a => 42;
|
| + }
|
| + class C extends B {
|
| + m() => ++super.a;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_SUPER_SETTER_PREFIX,
|
| + getter: 'getter(B#a)', operator: '++')),
|
| +
|
| + const Test.clazz(
|
| + '''
|
| + class C {
|
| + static set a(var value) { }
|
| + m() => ++a;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_STATIC_GETTER_PREFIX,
|
| + setter: 'setter(C#a)', operator: '++')),
|
| +
|
| + const Test.clazz(
|
| + '''
|
| + class C {
|
| + static get a => 42;
|
| + m() => ++C.a;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_STATIC_SETTER_PREFIX,
|
| + getter: 'getter(C#a)', operator: '++')),
|
| +
|
| + const Test.clazz(
|
| + '''
|
| + class C {
|
| + static final a = 42;
|
| + m() => ++C.a;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_STATIC_FINAL_FIELD_PREFIX,
|
| + element: 'field(C#a)', operator: '++')),
|
| +
|
| + const Test(
|
| + '''
|
| + class C {
|
| + static a(var value) { }
|
| + }
|
| + m() => ++C.a;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_STATIC_METHOD_PREFIX,
|
| + element: 'function(C#a)', operator: '++')),
|
| +
|
| + const Test(
|
| + '''
|
| + set a(var value) { }
|
| + m() => ++a;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_TOP_LEVEL_GETTER_PREFIX,
|
| + setter: 'setter(a)', operator: '++')),
|
| +
|
| + const Test(
|
| + '''
|
| + get a => 42;
|
| + m() => ++a;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_TOP_LEVEL_SETTER_PREFIX,
|
| + getter: 'getter(a)', operator: '++')),
|
| +
|
| + const Test(
|
| + '''
|
| + a(var value) { }
|
| + m() => ++a;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_TOP_LEVEL_METHOD_PREFIX,
|
| + element: 'function(a)', operator: '++')),
|
| +
|
| + const Test(
|
| + '''
|
| + final a = 42;
|
| + m() => ++a;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_TOP_LEVEL_FINAL_FIELD_PREFIX,
|
| + element: 'field(a)', operator: '++')),
|
| +
|
| + const Test(
|
| + '''
|
| + m() => ++unresolved;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_PREFIX,
|
| + operator: '++')),
|
| ],
|
| 'Postfix expression': const [
|
| // Postfix expression
|
| @@ -2079,6 +2476,12 @@ const Map<String, List<Test>> SEND_TESTS = const {
|
| element: 'parameter(m#a)', operator: '++')),
|
| const Test(
|
| '''
|
| + m(final a) => a++;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_FINAL_PARAMETER_POSTFIX,
|
| + element: 'parameter(m#a)', operator: '++')),
|
| + const Test(
|
| + '''
|
| m() {
|
| var a;
|
| a--;
|
| @@ -2088,6 +2491,24 @@ const Map<String, List<Test>> SEND_TESTS = const {
|
| element: 'variable(m#a)', operator: '--')),
|
| const Test(
|
| '''
|
| + m() {
|
| + final a = 42;
|
| + a--;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_FINAL_LOCAL_VARIABLE_POSTFIX,
|
| + element: 'variable(m#a)', operator: '--')),
|
| + const Test(
|
| + '''
|
| + m() {
|
| + a() {}
|
| + a--;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_LOCAL_FUNCTION_POSTFIX,
|
| + element: 'function(m#a)', operator: '--')),
|
| + const Test(
|
| + '''
|
| var a;
|
| m() => a++;
|
| ''',
|
| @@ -2222,6 +2643,17 @@ const Map<String, List<Test>> SEND_TESTS = const {
|
| const Test.clazz(
|
| '''
|
| class B {
|
| + final a = 0;
|
| + }
|
| + class C extends B {
|
| + m() => super.a--;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_SUPER_FINAL_FIELD_POSTFIX,
|
| + element: 'field(B#a)', operator: '--')),
|
| + const Test.clazz(
|
| + '''
|
| + class B {
|
| get a => 0;
|
| set a (_) {}
|
| }
|
| @@ -2279,13 +2711,128 @@ const Map<String, List<Test>> SEND_TESTS = const {
|
| const Visit(VisitKind.VISIT_SUPER_FIELD_SETTER_POSTFIX,
|
| getter: 'field(A#a)', setter: 'setter(B#a)',
|
| operator: '++')),
|
| + const Test.clazz(
|
| + '''
|
| + class B {
|
| + a() {}
|
| + }
|
| + class C extends B {
|
| + m() => super.a++;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_SUPER_METHOD_POSTFIX,
|
| + element: 'function(B#a)',
|
| + operator: '++')),
|
| + const Test.clazz(
|
| + '''
|
| + class B {
|
| + }
|
| + class C extends B {
|
| + m() => super.a++;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_SUPER_POSTFIX,
|
| + operator: '++')),
|
| + const Test.clazz(
|
| + '''
|
| + class B {
|
| + set a(_) {}
|
| + }
|
| + class C extends B {
|
| + m() => super.a++;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_SUPER_GETTER_POSTFIX,
|
| + setter: 'setter(B#a)', operator: '++')),
|
| + const Test.clazz(
|
| + '''
|
| + class B {
|
| + get a => 42;
|
| + }
|
| + class C extends B {
|
| + m() => super.a++;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_SUPER_SETTER_POSTFIX,
|
| + getter: 'getter(B#a)', operator: '++')),
|
| +
|
| + const Test.clazz(
|
| + '''
|
| + class C {
|
| + static set a(var value) { }
|
| + m() => a++;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_STATIC_GETTER_POSTFIX,
|
| + setter: 'setter(C#a)', operator: '++')),
|
| +
|
| + const Test.clazz(
|
| + '''
|
| + class C {
|
| + static get a => 42;
|
| + m() => C.a++;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_STATIC_SETTER_POSTFIX,
|
| + getter: 'getter(C#a)', operator: '++')),
|
| +
|
| + const Test.clazz(
|
| + '''
|
| + class C {
|
| + static final a = 42;
|
| + m() => C.a++;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_STATIC_FINAL_FIELD_POSTFIX,
|
| + element: 'field(C#a)', operator: '++')),
|
| +
|
| + const Test(
|
| + '''
|
| + class C {
|
| + static a(var value) { }
|
| + }
|
| + m() => C.a++;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_STATIC_METHOD_POSTFIX,
|
| + element: 'function(C#a)', operator: '++')),
|
| +
|
| + const Test(
|
| + '''
|
| + set a(var value) { }
|
| + m() => a++;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_TOP_LEVEL_GETTER_POSTFIX,
|
| + setter: 'setter(a)', operator: '++')),
|
| +
|
| + const Test(
|
| + '''
|
| + get a => 42;
|
| + m() => a++;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_TOP_LEVEL_SETTER_POSTFIX,
|
| + getter: 'getter(a)', operator: '++')),
|
|
|
| const Test(
|
| '''
|
| - set topLevel(var value) { }
|
| - m() => topLevel++;
|
| + a(var value) { }
|
| + m() => a++;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_TOP_LEVEL_METHOD_POSTFIX,
|
| + element: 'function(a)', operator: '++')),
|
| +
|
| + const Test(
|
| + '''
|
| + final a = 42;
|
| + m() => a++;
|
| ''',
|
| - const Visit(VisitKind.ERROR_UNRESOLVED_POSTFIX,
|
| + const Visit(VisitKind.VISIT_TOP_LEVEL_FINAL_FIELD_POSTFIX,
|
| + element: 'field(a)', operator: '++')),
|
| +
|
| + const Test(
|
| + '''
|
| + m() => unresolved++;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_POSTFIX,
|
| operator: '++')),
|
| ],
|
| 'Constructor invocations': const [
|
| @@ -2458,57 +3005,6 @@ const Map<String, List<Test>> SEND_TESTS = const {
|
| arguments: '(true,42)',
|
| type: 'Class',
|
| selector: 'CallStructure(arity=2)')),
|
| - const Test(
|
| - '''
|
| - class Class {}
|
| - m() => const Class();
|
| - ''',
|
| - const Visit(VisitKind.ERROR_NON_CONSTANT_CONSTRUCTOR_INVOKE,
|
| - arguments: '()',
|
| - type: 'Class',
|
| - selector: 'CallStructure(arity=0)')),
|
| - const Test(
|
| - '''
|
| - class Class {
|
| - const Class() // Delibrate syntax error.
|
| - }
|
| - m() => const Class();
|
| - ''',
|
| - const Visit(VisitKind.ERROR_NON_CONSTANT_CONSTRUCTOR_INVOKE,
|
| - arguments: '()',
|
| - type: 'dynamic',
|
| - selector: 'CallStructure(arity=0)')),
|
| - const Test(
|
| - '''
|
| - class Target {}
|
| - class Class {
|
| - const factory Class() = Target;
|
| - }
|
| - m() => const Class();
|
| - ''',
|
| - const Visit(VisitKind.ERROR_NON_CONSTANT_CONSTRUCTOR_INVOKE,
|
| - arguments: '()',
|
| - type: 'Class',
|
| - selector: 'CallStructure(arity=0)')),
|
| - /* Enable this when constness is handled consistently.
|
| - const Test(
|
| - '''
|
| - class Target {
|
| - const Target();
|
| - }
|
| - class Redirection {
|
| - factory Redirection() = Target;
|
| - }
|
| - class Class {
|
| - const factory Class() = Redirection;
|
| - }
|
| - m() => const Class();
|
| - ''',
|
| - const Visit(VisitKind.ERROR_NON_CONSTANT_CONSTRUCTOR_INVOKE,
|
| - arguments: '()',
|
| - type: 'Class',
|
| - selector: 'CallStructure(arity=0)')),
|
| - */
|
| ],
|
| };
|
|
|
| @@ -3332,24 +3828,76 @@ const Map<String, List<Test>> DECL_TESTS = const {
|
| ],
|
| };
|
|
|
| +const List<VisitKind> UNTESTABLE_KINDS = const <VisitKind>[
|
| + VisitKind.VISIT_STATIC_METHOD_SETTER_COMPOUND,
|
| + VisitKind.VISIT_STATIC_METHOD_SETTER_PREFIX,
|
| + VisitKind.VISIT_STATIC_METHOD_SETTER_POSTFIX,
|
| + VisitKind.VISIT_TOP_LEVEL_METHOD_SETTER_COMPOUND,
|
| + VisitKind.VISIT_TOP_LEVEL_METHOD_SETTER_PREFIX,
|
| + VisitKind.VISIT_TOP_LEVEL_METHOD_SETTER_POSTFIX,
|
| + VisitKind.VISIT_SUPER_FIELD_FIELD_COMPOUND,
|
| + VisitKind.VISIT_SUPER_FIELD_FIELD_PREFIX,
|
| + VisitKind.VISIT_SUPER_FIELD_FIELD_POSTFIX,
|
| + VisitKind.VISIT_SUPER_METHOD_SETTER_COMPOUND,
|
| + VisitKind.VISIT_SUPER_METHOD_SETTER_PREFIX,
|
| + VisitKind.VISIT_SUPER_METHOD_SETTER_POSTFIX,
|
| + VisitKind.VISIT_SUPER_NOT_EQUALS,
|
| + VisitKind.VISIT_CLASS_TYPE_LITERAL_SET,
|
| + VisitKind.VISIT_TYPEDEF_TYPE_LITERAL_SET,
|
| + VisitKind.VISIT_TYPE_VARIABLE_TYPE_LITERAL_SET,
|
| + VisitKind.VISIT_DYNAMIC_TYPE_LITERAL_SET,
|
| +];
|
| +
|
| main(List<String> arguments) {
|
| + Set<VisitKind> kinds = new Set<VisitKind>.from(VisitKind.values);
|
| asyncTest(() => Future.forEach([
|
| () {
|
| return test(
|
| + kinds,
|
| arguments,
|
| SEND_TESTS,
|
| (elements) => new SemanticSendTestVisitor(elements));
|
| },
|
| () {
|
| return test(
|
| + kinds,
|
| arguments,
|
| DECL_TESTS,
|
| (elements) => new SemanticDeclarationTestVisitor(elements));
|
| },
|
| + () {
|
| + Set<VisitKind> unvisitedKindSet =
|
| + kinds.toSet()..removeAll(UNTESTABLE_KINDS);
|
| + List<VisitKind> unvisitedKindList = unvisitedKindSet.toList();
|
| + unvisitedKindList..sort((a, b) => a.index.compareTo(b.index));
|
| +
|
| + Expect.isTrue(unvisitedKindList.isEmpty,
|
| + "Untested visit kinds:\n ${unvisitedKindList.join(',\n ')},\n");
|
| +
|
| + Set<VisitKind> testedUntestableKinds =
|
| + UNTESTABLE_KINDS.toSet()..removeAll(kinds);
|
| + Expect.isTrue(testedUntestableKinds.isEmpty,
|
| + "Tested untestable visit kinds (remove from UNTESTABLE_KINDS):\n "
|
| + "${testedUntestableKinds.join(',\n ')},\n");
|
| + },
|
| + () {
|
| + ClassMirror mirror1 = reflectType(SemanticSendTestVisitor);
|
| + Set<Symbol> symbols1 = mirror1.declarations.keys.toSet();
|
| + ClassMirror mirror2 = reflectType(SemanticSendVisitor);
|
| + Set<Symbol> symbols2 =
|
| + mirror2.declarations.values
|
| + .where((m) => m is MethodMirror &&
|
| + !m.isConstructor &&
|
| + m.simpleName != #apply)
|
| + .map((m) => m.simpleName).toSet();
|
| + symbols2.removeAll(symbols1);
|
| + print("Untested visit methods:\n ${symbols2.join(',\n ')},\n");
|
| + }
|
| ], (f) => f()));
|
| }
|
|
|
| -Future test(List<String> arguments,
|
| +Future test(Set<VisitKind> unvisitedKinds,
|
| + List<String> arguments,
|
| Map<String, List<Test>> TESTS,
|
| SemanticTestVisitor createVisitor(TreeElements elements)) {
|
| Map<String, String> sourceFiles = {};
|
| @@ -3375,7 +3923,6 @@ Future test(List<String> arguments,
|
| index++;
|
| });
|
| });
|
| -
|
| mainSource.writeln("main() {}");
|
| sourceFiles['main.dart'] = mainSource.toString();
|
|
|
| @@ -3419,6 +3966,7 @@ Future test(List<String> arguments,
|
| Expect.listEquals(expectedVisits, visitor.visits,
|
| "In test:\n"
|
| "${library.compilationUnit.script.text}");
|
| + unvisitedKinds.removeAll(visitor.visits.map((visit) => visit.method));
|
| }
|
| if (element.isAbstractField) {
|
| AbstractFieldElement abstractFieldElement = element;
|
| @@ -3471,14 +4019,6 @@ class SemanticSendTestVisitor extends SemanticTestVisitor {
|
| }
|
|
|
| @override
|
| - errorInvalidAssert(
|
| - Send node,
|
| - NodeList arguments,
|
| - arg) {
|
| - // TODO: implement errorAssert
|
| - }
|
| -
|
| - @override
|
| visitBinary(
|
| Send node,
|
| Node left,
|
| @@ -3903,7 +4443,6 @@ class SemanticSendTestVisitor extends SemanticTestVisitor {
|
| apply(argument, arg);
|
| }
|
|
|
| -
|
| @override
|
| visitSuperIndex(
|
| Send node,
|
| @@ -4347,241 +4886,171 @@ class SemanticSendTestVisitor extends SemanticTestVisitor {
|
| }
|
|
|
| @override
|
| - errorFinalLocalVariableSet(
|
| - SendSet node,
|
| - LocalVariableElement variable,
|
| - Node rhs,
|
| - arg) {
|
| - // TODO: implement errorFinalLocalVariableSet
|
| - }
|
| -
|
| - @override
|
| - errorFinalParameterSet(
|
| - SendSet node,
|
| - ParameterElement parameter,
|
| - Node rhs,
|
| - arg) {
|
| - // TODO: implement errorFinalParameterSet
|
| - }
|
| -
|
| - @override
|
| - errorFinalStaticFieldSet(
|
| - SendSet node,
|
| - FieldElement field,
|
| - Node rhs,
|
| - arg) {
|
| - // TODO: implement errorFinalStaticFieldSet
|
| - }
|
| -
|
| - @override
|
| - errorFinalSuperFieldSet(
|
| - SendSet node,
|
| - FieldElement field,
|
| - Node rhs,
|
| - arg) {
|
| - // TODO: implement errorFinalSuperFieldSet
|
| - }
|
| -
|
| - @override
|
| - errorFinalTopLevelFieldSet(
|
| - SendSet node,
|
| - FieldElement field,
|
| - Node rhs,
|
| - arg) {
|
| - // TODO: implement errorFinalTopLevelFieldSet
|
| - }
|
| -
|
| - @override
|
| - errorLocalFunctionSet(
|
| - SendSet node,
|
| - LocalFunctionElement function,
|
| - Node rhs,
|
| - arg) {
|
| - // TODO: implement errorLocalFunctionSet
|
| - }
|
| -
|
| - @override
|
| - errorStaticFunctionSet(
|
| + visitDynamicPropertyCompound(
|
| Send node,
|
| - MethodElement function,
|
| + Node receiver,
|
| + AssignmentOperator operator,
|
| Node rhs,
|
| + Selector getterSelector,
|
| + Selector setterSelector,
|
| arg) {
|
| - // TODO: implement errorStaticFunctionSet
|
| + visits.add(new Visit(VisitKind.VISIT_DYNAMIC_PROPERTY_COMPOUND,
|
| + receiver: receiver, operator: operator, rhs: rhs,
|
| + getter: getterSelector, setter: setterSelector));
|
| + apply(receiver, arg);
|
| + apply(rhs, arg);
|
| }
|
|
|
| @override
|
| - errorStaticGetterSet(
|
| - SendSet node,
|
| - FunctionElement getter,
|
| + visitFinalLocalVariableCompound(
|
| + Send node,
|
| + LocalVariableElement variable,
|
| + AssignmentOperator operator,
|
| Node rhs,
|
| arg) {
|
| - // TODO: implement errorStaticGetterSet
|
| + visits.add(new Visit(VisitKind.VISIT_FINAL_LOCAL_VARIABLE_COMPOUND,
|
| + element: variable, operator: operator, rhs: rhs));
|
| + apply(rhs, arg);
|
| }
|
|
|
| @override
|
| - errorStaticSetterGet(
|
| + visitFinalLocalVariablePrefix(
|
| Send node,
|
| - FunctionElement setter,
|
| + LocalVariableElement variable,
|
| + IncDecOperator operator,
|
| arg) {
|
| - // TODO: implement errorStaticSetterGet
|
| + visits.add(new Visit(VisitKind.VISIT_FINAL_LOCAL_VARIABLE_PREFIX,
|
| + element: variable, operator: operator));
|
| }
|
|
|
| @override
|
| - errorStaticSetterInvoke(
|
| + visitFinalLocalVariablePostfix(
|
| Send node,
|
| - FunctionElement setter,
|
| - NodeList arguments,
|
| - CallStructure callStructure,
|
| - arg) {
|
| - // TODO: implement errorStaticSetterInvoke
|
| - }
|
| -
|
| - @override
|
| - errorSuperGetterSet(
|
| - SendSet node,
|
| - FunctionElement getter,
|
| - Node rhs,
|
| + LocalVariableElement variable,
|
| + IncDecOperator operator,
|
| arg) {
|
| - // TODO: implement errorSuperGetterSet
|
| + visits.add(new Visit(VisitKind.VISIT_FINAL_LOCAL_VARIABLE_POSTFIX,
|
| + element: variable, operator: operator));
|
| }
|
|
|
| @override
|
| - errorSuperMethodSet(
|
| + visitFinalParameterCompound(
|
| Send node,
|
| - MethodElement method,
|
| + ParameterElement parameter,
|
| + AssignmentOperator operator,
|
| Node rhs,
|
| arg) {
|
| - // TODO: implement errorSuperMethodSet
|
| + visits.add(new Visit(VisitKind.VISIT_FINAL_PARAMETER_COMPOUND,
|
| + element: parameter, operator: operator, rhs: rhs));
|
| + apply(rhs, arg);
|
| }
|
|
|
| @override
|
| - errorSuperSetterGet(
|
| + visitFinalParameterPrefix(
|
| Send node,
|
| - FunctionElement setter,
|
| + ParameterElement parameter,
|
| + IncDecOperator operator,
|
| arg) {
|
| - // TODO: implement errorSuperSetterGet
|
| + visits.add(new Visit(VisitKind.VISIT_FINAL_PARAMETER_PREFIX,
|
| + element: parameter, operator: operator));
|
| }
|
|
|
| @override
|
| - errorSuperSetterInvoke(
|
| + visitFinalParameterPostfix(
|
| Send node,
|
| - FunctionElement setter,
|
| - NodeList arguments,
|
| - CallStructure callStructure,
|
| + ParameterElement parameter,
|
| + IncDecOperator operator,
|
| arg) {
|
| - // TODO: implement errorSuperSetterInvoke
|
| + visits.add(new Visit(VisitKind.VISIT_FINAL_PARAMETER_POSTFIX,
|
| + element: parameter, operator: operator));
|
| }
|
|
|
| @override
|
| - errorTopLevelFunctionSet(
|
| + visitFinalStaticFieldCompound(
|
| Send node,
|
| - MethodElement function,
|
| - Node rhs,
|
| - arg) {
|
| - // TODO: implement errorTopLevelFunctionSet
|
| - }
|
| -
|
| - @override
|
| - errorTopLevelGetterSet(
|
| - SendSet node,
|
| - FunctionElement getter,
|
| + FieldElement field,
|
| + AssignmentOperator operator,
|
| Node rhs,
|
| arg) {
|
| - // TODO: implement errorTopLevelGetterSet
|
| + visits.add(new Visit(VisitKind.VISIT_STATIC_FINAL_FIELD_COMPOUND,
|
| + element: field, operator: operator, rhs: rhs));
|
| + apply(rhs, arg);
|
| }
|
|
|
| @override
|
| - errorTopLevelSetterGet(
|
| + visitFinalStaticFieldPostfix(
|
| Send node,
|
| - FunctionElement setter,
|
| + FieldElement field,
|
| + IncDecOperator operator,
|
| arg) {
|
| - // TODO: implement errorTopLevelSetterGet
|
| + visits.add(new Visit(VisitKind.VISIT_STATIC_FINAL_FIELD_POSTFIX,
|
| + element: field, operator: operator));
|
| }
|
|
|
| @override
|
| - errorTopLevelSetterInvoke(
|
| + visitFinalStaticFieldPrefix(
|
| Send node,
|
| - FunctionElement setter,
|
| - NodeList arguments,
|
| - CallStructure callStructure,
|
| + FieldElement field,
|
| + IncDecOperator operator,
|
| arg) {
|
| - // TODO: implement errorTopLevelSetterInvoke
|
| + visits.add(new Visit(VisitKind.VISIT_STATIC_FINAL_FIELD_PREFIX,
|
| + element: field, operator: operator));
|
| }
|
|
|
| @override
|
| - visitDynamicPropertyCompound(
|
| + visitFinalSuperFieldCompound(
|
| Send node,
|
| - Node receiver,
|
| + FieldElement field,
|
| AssignmentOperator operator,
|
| Node rhs,
|
| - Selector getterSelector,
|
| - Selector setterSelector,
|
| arg) {
|
| - visits.add(new Visit(VisitKind.VISIT_DYNAMIC_PROPERTY_COMPOUND,
|
| - receiver: receiver, operator: operator, rhs: rhs,
|
| - getter: getterSelector, setter: setterSelector));
|
| - apply(receiver, arg);
|
| + visits.add(new Visit(VisitKind.VISIT_SUPER_FINAL_FIELD_COMPOUND,
|
| + element: field, operator: operator, rhs: rhs));
|
| apply(rhs, arg);
|
| }
|
|
|
| @override
|
| - errorFinalLocalVariableCompound(
|
| - Send node,
|
| - LocalVariableElement variable,
|
| - AssignmentOperator operator,
|
| - Node rhs,
|
| - arg) {
|
| - // TODO: implement errorFinalLocalVariableCompound
|
| - }
|
| -
|
| - @override
|
| - errorFinalParameterCompound(
|
| - Send node,
|
| - ParameterElement parameter,
|
| - AssignmentOperator operator,
|
| - Node rhs,
|
| - arg) {
|
| - // TODO: implement errorFinalParameterCompound
|
| - }
|
| -
|
| - @override
|
| - errorFinalStaticFieldCompound(
|
| + visitFinalTopLevelFieldCompound(
|
| Send node,
|
| FieldElement field,
|
| AssignmentOperator operator,
|
| Node rhs,
|
| arg) {
|
| - // TODO: implement errorFinalStaticFieldCompound
|
| + visits.add(new Visit(VisitKind.VISIT_TOP_LEVEL_FINAL_FIELD_COMPOUND,
|
| + element: field, operator: operator, rhs: rhs));
|
| + apply(rhs, arg);
|
| }
|
|
|
| @override
|
| - errorFinalSuperFieldCompound(
|
| + visitFinalTopLevelFieldPostfix(
|
| Send node,
|
| FieldElement field,
|
| - AssignmentOperator operator,
|
| - Node rhs,
|
| + IncDecOperator operator,
|
| arg) {
|
| - // TODO: implement errorFinalSuperFieldCompound
|
| + visits.add(new Visit(VisitKind.VISIT_TOP_LEVEL_FINAL_FIELD_POSTFIX,
|
| + element: field, operator: operator));
|
| }
|
|
|
| @override
|
| - errorFinalTopLevelFieldCompound(
|
| + visitFinalTopLevelFieldPrefix(
|
| Send node,
|
| FieldElement field,
|
| - AssignmentOperator operator,
|
| - Node rhs,
|
| + IncDecOperator operator,
|
| arg) {
|
| - // TODO: implement errorFinalTopLevelFieldCompound
|
| + visits.add(new Visit(VisitKind.VISIT_TOP_LEVEL_FINAL_FIELD_PREFIX,
|
| + element: field, operator: operator));
|
| }
|
|
|
| @override
|
| - errorLocalFunctionCompound(
|
| + visitLocalFunctionCompound(
|
| Send node,
|
| LocalFunctionElement function,
|
| AssignmentOperator operator,
|
| Node rhs,
|
| arg) {
|
| - // TODO: implement errorLocalFunctionCompound
|
| + visits.add(new Visit(VisitKind.VISIT_LOCAL_FUNCTION_COMPOUND,
|
| + element: function, operator: operator, rhs: rhs));
|
| + apply(rhs, arg);
|
| }
|
|
|
| @override
|
| @@ -4750,7 +5219,73 @@ class SemanticSendTestVisitor extends SemanticTestVisitor {
|
| AssignmentOperator operator,
|
| Node rhs,
|
| arg) {
|
| - // TODO: implement visitSuperMethodSetterCompound
|
| + visits.add(new Visit(VisitKind.VISIT_SUPER_METHOD_SETTER_COMPOUND,
|
| + getter: method, setter: setter, operator: operator, rhs: rhs));
|
| + apply(rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitSuperMethodCompound(
|
| + Send node,
|
| + FunctionElement method,
|
| + AssignmentOperator operator,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_SUPER_METHOD_COMPOUND,
|
| + element: method, operator: operator, rhs: rhs));
|
| + apply(rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitSuperMethodPrefix(
|
| + Send node,
|
| + FunctionElement method,
|
| + IncDecOperator operator,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_SUPER_METHOD_PREFIX,
|
| + element: method, operator: operator));
|
| + }
|
| +
|
| + @override
|
| + visitSuperMethodPostfix(
|
| + Send node,
|
| + FunctionElement method,
|
| + IncDecOperator operator,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_SUPER_METHOD_POSTFIX,
|
| + element: method, operator: operator));
|
| + }
|
| +
|
| + @override
|
| + visitUnresolvedSuperCompound(
|
| + Send node,
|
| + Element element,
|
| + AssignmentOperator operator,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_SUPER_COMPOUND,
|
| + operator: operator, rhs: rhs));
|
| + apply(rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitUnresolvedSuperPrefix(
|
| + Send node,
|
| + Element element,
|
| + IncDecOperator operator,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_SUPER_PREFIX,
|
| + operator: operator));
|
| + }
|
| +
|
| + @override
|
| + visitUnresolvedSuperPostfix(
|
| + Send node,
|
| + Element element,
|
| + IncDecOperator operator,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_SUPER_POSTFIX,
|
| + operator: operator));
|
| }
|
|
|
| @override
|
| @@ -4761,7 +5296,9 @@ class SemanticSendTestVisitor extends SemanticTestVisitor {
|
| AssignmentOperator operator,
|
| Node rhs,
|
| arg) {
|
| - // TODO: implement visitTopLevelMethodSetterCompound
|
| + visits.add(new Visit(VisitKind.VISIT_TOP_LEVEL_METHOD_SETTER_COMPOUND,
|
| + getter: method, setter: setter, operator: operator, rhs: rhs));
|
| + apply(rhs, arg);
|
| }
|
|
|
| @override
|
| @@ -4796,79 +5333,80 @@ class SemanticSendTestVisitor extends SemanticTestVisitor {
|
| }
|
|
|
| @override
|
| - errorClassTypeLiteralCompound(
|
| + visitClassTypeLiteralCompound(
|
| Send node,
|
| ConstantExpression constant,
|
| AssignmentOperator operator,
|
| Node rhs,
|
| arg) {
|
| - visits.add(new Visit(VisitKind.ERROR_CLASS_TYPE_LITERAL_COMPOUND,
|
| + visits.add(new Visit(VisitKind.VISIT_CLASS_TYPE_LITERAL_COMPOUND,
|
| constant: constant.getText(), operator: operator, rhs: rhs));
|
| apply(rhs, arg);
|
| }
|
|
|
| @override
|
| - errorDynamicTypeLiteralCompound(
|
| + visitDynamicTypeLiteralCompound(
|
| Send node,
|
| ConstantExpression constant,
|
| AssignmentOperator operator,
|
| Node rhs,
|
| arg) {
|
| - visits.add(new Visit(VisitKind.ERROR_DYNAMIC_TYPE_LITERAL_COMPOUND,
|
| + visits.add(new Visit(VisitKind.VISIT_DYNAMIC_TYPE_LITERAL_COMPOUND,
|
| constant: constant.getText(), operator: operator, rhs: rhs));
|
| apply(rhs, arg);
|
| }
|
|
|
| @override
|
| - errorTypeVariableTypeLiteralCompound(
|
| + visitTypeVariableTypeLiteralCompound(
|
| Send node,
|
| TypeVariableElement element,
|
| AssignmentOperator operator,
|
| Node rhs,
|
| arg) {
|
| - visits.add(new Visit(VisitKind.ERROR_TYPE_VARIABLE_TYPE_LITERAL_COMPOUND,
|
| + visits.add(new Visit(VisitKind.VISIT_TYPE_VARIABLE_TYPE_LITERAL_COMPOUND,
|
| element: element, operator: operator, rhs: rhs));
|
| apply(rhs, arg);
|
| }
|
|
|
| @override
|
| - errorTypedefTypeLiteralCompound(
|
| + visitTypedefTypeLiteralCompound(
|
| Send node,
|
| ConstantExpression constant,
|
| AssignmentOperator operator,
|
| Node rhs,
|
| arg) {
|
| - visits.add(new Visit(VisitKind.ERROR_TYPEDEF_TYPE_LITERAL_COMPOUND,
|
| + visits.add(new Visit(VisitKind.VISIT_TYPEDEF_TYPE_LITERAL_COMPOUND,
|
| constant: constant.getText(), operator: operator, rhs: rhs));
|
| apply(rhs, arg);
|
| }
|
|
|
| @override
|
| - errorLocalFunctionPrefix(
|
| + visitLocalFunctionPrefix(
|
| Send node,
|
| LocalFunctionElement function,
|
| IncDecOperator operator,
|
| arg) {
|
| - // TODO: implement errorLocalFunctionPrefix
|
| + visits.add(new Visit(VisitKind.VISIT_LOCAL_FUNCTION_PREFIX,
|
| + element: function, operator: operator));
|
| }
|
|
|
| @override
|
| - errorClassTypeLiteralPrefix(
|
| + visitClassTypeLiteralPrefix(
|
| Send node,
|
| ConstantExpression constant,
|
| IncDecOperator operator,
|
| arg) {
|
| - visits.add(new Visit(VisitKind.ERROR_CLASS_TYPE_LITERAL_PREFIX,
|
| + visits.add(new Visit(VisitKind.VISIT_CLASS_TYPE_LITERAL_PREFIX,
|
| constant: constant.getText(), operator: operator));
|
| }
|
|
|
| @override
|
| - errorDynamicTypeLiteralPrefix(
|
| + visitDynamicTypeLiteralPrefix(
|
| Send node,
|
| ConstantExpression constant,
|
| IncDecOperator operator,
|
| arg) {
|
| - visits.add(new Visit(VisitKind.ERROR_DYNAMIC_TYPE_LITERAL_PREFIX,
|
| + visits.add(new Visit(VisitKind.VISIT_DYNAMIC_TYPE_LITERAL_PREFIX,
|
| constant: constant.getText(), operator: operator));
|
| }
|
|
|
| @@ -4920,7 +5458,21 @@ class SemanticSendTestVisitor extends SemanticTestVisitor {
|
| FunctionElement setter,
|
| IncDecOperator operator,
|
| arg) {
|
| - // TODO: implement visitStaticMethodSetterPrefix
|
| + visits.add(new Visit(VisitKind.VISIT_STATIC_METHOD_SETTER_PREFIX,
|
| + getter: getter, setter: setter, operator: operator));
|
| + }
|
| +
|
| + @override
|
| + visitSuperFieldFieldCompound(
|
| + Send node,
|
| + FieldElement readField,
|
| + FieldElement writtenField,
|
| + AssignmentOperator operator,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_SUPER_FIELD_FIELD_COMPOUND,
|
| + getter: readField, setter: writtenField, operator: operator, rhs: rhs));
|
| + apply(rhs, arg);
|
| }
|
|
|
| @override
|
| @@ -4930,7 +5482,8 @@ class SemanticSendTestVisitor extends SemanticTestVisitor {
|
| FieldElement writtenField,
|
| IncDecOperator operator,
|
| arg) {
|
| - // TODO: implement visitSuperFieldFieldPrefix
|
| + visits.add(new Visit(VisitKind.VISIT_SUPER_FIELD_FIELD_PREFIX,
|
| + getter: readField, setter: writtenField, operator: operator));
|
| }
|
|
|
| @override
|
| @@ -4944,6 +5497,16 @@ class SemanticSendTestVisitor extends SemanticTestVisitor {
|
| }
|
|
|
| @override
|
| + visitFinalSuperFieldPrefix(
|
| + Send node,
|
| + FieldElement field,
|
| + IncDecOperator operator,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_SUPER_FINAL_FIELD_PREFIX,
|
| + element: field, operator: operator));
|
| + }
|
| +
|
| + @override
|
| visitSuperFieldSetterPrefix(
|
| Send node,
|
| FieldElement field,
|
| @@ -4983,7 +5546,8 @@ class SemanticSendTestVisitor extends SemanticTestVisitor {
|
| FunctionElement setter,
|
| IncDecOperator operator,
|
| arg) {
|
| - // TODO: implement visitSuperMethodSetterPrefix
|
| + visits.add(new Visit(VisitKind.VISIT_SUPER_METHOD_SETTER_PREFIX,
|
| + getter: method, setter: setter, operator: operator));
|
| }
|
|
|
| @override
|
| @@ -5026,55 +5590,57 @@ class SemanticSendTestVisitor extends SemanticTestVisitor {
|
| FunctionElement setter,
|
| IncDecOperator operator,
|
| arg) {
|
| - // TODO: implement visitTopLevelMethodSetterPrefix
|
| + visits.add(new Visit(VisitKind.VISIT_TOP_LEVEL_METHOD_SETTER_PREFIX,
|
| + getter: method, setter: setter, operator: operator));
|
| }
|
|
|
| @override
|
| - errorTypeVariableTypeLiteralPrefix(
|
| + visitTypeVariableTypeLiteralPrefix(
|
| Send node,
|
| TypeVariableElement element,
|
| IncDecOperator operator,
|
| arg) {
|
| - visits.add(new Visit(VisitKind.ERROR_TYPE_VARIABLE_TYPE_LITERAL_PREFIX,
|
| + visits.add(new Visit(VisitKind.VISIT_TYPE_VARIABLE_TYPE_LITERAL_PREFIX,
|
| element: element, operator: operator));
|
| }
|
|
|
| @override
|
| - errorTypedefTypeLiteralPrefix(
|
| + visitTypedefTypeLiteralPrefix(
|
| Send node,
|
| ConstantExpression constant,
|
| IncDecOperator operator,
|
| arg) {
|
| - visits.add(new Visit(VisitKind.ERROR_TYPEDEF_TYPE_LITERAL_PREFIX,
|
| + visits.add(new Visit(VisitKind.VISIT_TYPEDEF_TYPE_LITERAL_PREFIX,
|
| constant: constant.getText(), operator: operator));
|
| }
|
|
|
| @override
|
| - errorLocalFunctionPostfix(
|
| + visitLocalFunctionPostfix(
|
| Send node,
|
| LocalFunctionElement function,
|
| IncDecOperator operator,
|
| arg) {
|
| - // TODO: implement errorLocalFunctionPostfix
|
| + visits.add(new Visit(VisitKind.VISIT_LOCAL_FUNCTION_POSTFIX,
|
| + element: function, operator: operator));
|
| }
|
|
|
| @override
|
| - errorClassTypeLiteralPostfix(
|
| + visitClassTypeLiteralPostfix(
|
| Send node,
|
| ConstantExpression constant,
|
| IncDecOperator operator,
|
| arg) {
|
| - visits.add(new Visit(VisitKind.ERROR_CLASS_TYPE_LITERAL_POSTFIX,
|
| + visits.add(new Visit(VisitKind.VISIT_CLASS_TYPE_LITERAL_POSTFIX,
|
| constant: constant.getText(), operator: operator));
|
| }
|
|
|
| @override
|
| - errorDynamicTypeLiteralPostfix(
|
| + visitDynamicTypeLiteralPostfix(
|
| Send node,
|
| ConstantExpression constant,
|
| IncDecOperator operator,
|
| arg) {
|
| - visits.add(new Visit(VisitKind.ERROR_DYNAMIC_TYPE_LITERAL_POSTFIX,
|
| + visits.add(new Visit(VisitKind.VISIT_DYNAMIC_TYPE_LITERAL_POSTFIX,
|
| constant: constant.getText(), operator: operator));
|
| }
|
|
|
| @@ -5126,7 +5692,8 @@ class SemanticSendTestVisitor extends SemanticTestVisitor {
|
| FunctionElement setter,
|
| IncDecOperator operator,
|
| arg) {
|
| - // TODO: implement visitStaticMethodSetterPostfix
|
| + visits.add(new Visit(VisitKind.VISIT_STATIC_METHOD_SETTER_POSTFIX,
|
| + getter: getter, setter: setter, operator: operator));
|
| }
|
|
|
| @override
|
| @@ -5136,7 +5703,8 @@ class SemanticSendTestVisitor extends SemanticTestVisitor {
|
| FieldElement writtenField,
|
| IncDecOperator operator,
|
| arg) {
|
| - // TODO: implement visitSuperFieldFieldPostfix
|
| + visits.add(new Visit(VisitKind.VISIT_SUPER_FIELD_FIELD_POSTFIX,
|
| + getter: readField, setter: writtenField, operator: operator));
|
| }
|
|
|
| @override
|
| @@ -5150,6 +5718,16 @@ class SemanticSendTestVisitor extends SemanticTestVisitor {
|
| }
|
|
|
| @override
|
| + visitFinalSuperFieldPostfix(
|
| + Send node,
|
| + FieldElement field,
|
| + IncDecOperator operator,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_SUPER_FINAL_FIELD_POSTFIX,
|
| + element: field, operator: operator));
|
| + }
|
| +
|
| + @override
|
| visitSuperFieldSetterPostfix(
|
| Send node,
|
| FieldElement field,
|
| @@ -5189,7 +5767,8 @@ class SemanticSendTestVisitor extends SemanticTestVisitor {
|
| FunctionElement setter,
|
| IncDecOperator operator,
|
| arg) {
|
| - // TODO: implement visitSuperMethodSetterPostfix
|
| + visits.add(new Visit(VisitKind.VISIT_SUPER_METHOD_SETTER_POSTFIX,
|
| + getter: method, setter: setter, operator: operator));
|
| }
|
|
|
| @override
|
| @@ -5232,55 +5811,40 @@ class SemanticSendTestVisitor extends SemanticTestVisitor {
|
| FunctionElement setter,
|
| IncDecOperator operator,
|
| arg) {
|
| - // TODO: implement visitTopLevelMethodSetterPostfix
|
| + visits.add(new Visit(VisitKind.VISIT_TOP_LEVEL_METHOD_SETTER_POSTFIX,
|
| + getter: method, setter: setter, operator: operator));
|
| }
|
|
|
| @override
|
| - errorTypeVariableTypeLiteralPostfix(
|
| + visitTypeVariableTypeLiteralPostfix(
|
| Send node,
|
| TypeVariableElement element,
|
| IncDecOperator operator,
|
| arg) {
|
| - visits.add(new Visit(VisitKind.ERROR_TYPE_VARIABLE_TYPE_LITERAL_POSTFIX,
|
| + visits.add(new Visit(VisitKind.VISIT_TYPE_VARIABLE_TYPE_LITERAL_POSTFIX,
|
| element: element, operator: operator));
|
| }
|
|
|
| @override
|
| - errorTypedefTypeLiteralPostfix(
|
| - Send node,
|
| - ConstantExpression constant,
|
| - IncDecOperator operator,
|
| - arg) {
|
| - visits.add(new Visit(VisitKind.ERROR_TYPEDEF_TYPE_LITERAL_POSTFIX,
|
| - constant: constant.getText(), operator: operator));
|
| - }
|
| -
|
| - @override
|
| - visitConstantGet(
|
| - Send node,
|
| - ConstantExpression constant,
|
| - arg) {
|
| - // TODO: implement visitConstantGet
|
| - }
|
| -
|
| - @override
|
| - visitConstantInvoke(
|
| + visitTypedefTypeLiteralPostfix(
|
| Send node,
|
| ConstantExpression constant,
|
| - NodeList arguments,
|
| - CallStructure callStructure,
|
| + IncDecOperator operator,
|
| arg) {
|
| - // TODO: implement visitConstantInvoke
|
| + visits.add(new Visit(VisitKind.VISIT_TYPEDEF_TYPE_LITERAL_POSTFIX,
|
| + constant: constant.getText(), operator: operator));
|
| }
|
|
|
| @override
|
| - errorUnresolvedCompound(
|
| + visitUnresolvedCompound(
|
| Send node,
|
| ErroneousElement element,
|
| AssignmentOperator operator,
|
| Node rhs,
|
| arg) {
|
| - // TODO: implement errorUnresolvedCompound
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_COMPOUND,
|
| + operator: operator, rhs: rhs));
|
| + apply(rhs, arg);
|
| }
|
|
|
| @override
|
| @@ -5303,63 +5867,52 @@ class SemanticSendTestVisitor extends SemanticTestVisitor {
|
| }
|
|
|
| @override
|
| - errorUnresolvedPostfix(
|
| + visitUnresolvedPostfix(
|
| Send node,
|
| ErroneousElement element,
|
| IncDecOperator operator,
|
| arg) {
|
| visits.add(new Visit(
|
| - VisitKind.ERROR_UNRESOLVED_POSTFIX, operator: operator));
|
| + VisitKind.VISIT_UNRESOLVED_POSTFIX, operator: operator));
|
| }
|
|
|
| @override
|
| - errorUnresolvedPrefix(
|
| + visitUnresolvedPrefix(
|
| Send node,
|
| ErroneousElement element,
|
| IncDecOperator operator,
|
| arg) {
|
| - // TODO: implement errorUnresolvedPrefix
|
| + visits.add(new Visit(
|
| + VisitKind.VISIT_UNRESOLVED_PREFIX, operator: operator));
|
| }
|
|
|
| @override
|
| - errorUnresolvedSet(
|
| + visitUnresolvedSuperCompoundIndexSet(
|
| Send node,
|
| - ErroneousElement element,
|
| + Element element,
|
| + Node index,
|
| + AssignmentOperator operator,
|
| Node rhs,
|
| arg) {
|
| - // TODO: implement errorUnresolvedSet
|
| - }
|
| -
|
| - @override
|
| - errorUndefinedBinaryExpression(
|
| - Send node,
|
| - Node left,
|
| - Operator operator,
|
| - Node right,
|
| - arg) {
|
| - // TODO: implement errorUndefinedBinaryExpression
|
| - }
|
| -
|
| - @override
|
| - errorUndefinedUnaryExpression(
|
| - Send node,
|
| - Operator operator,
|
| - Node expression,
|
| - arg) {
|
| - // TODO: implement errorUndefinedUnaryExpression
|
| + visits.add(new Visit(
|
| + VisitKind.VISIT_UNRESOLVED_SUPER_COMPOUND_INDEX_SET,
|
| + index: index, operator: operator, rhs: rhs));
|
| + apply(index, arg);
|
| + apply(rhs, arg);
|
| }
|
|
|
| @override
|
| visitUnresolvedSuperGetterCompoundIndexSet(
|
| Send node,
|
| Element element,
|
| + MethodElement setter,
|
| Node index,
|
| AssignmentOperator operator,
|
| Node rhs,
|
| arg) {
|
| visits.add(new Visit(
|
| VisitKind.VISIT_UNRESOLVED_SUPER_GETTER_COMPOUND_INDEX_SET,
|
| - index: index, operator: operator, rhs: rhs));
|
| + setter: setter, index: index, operator: operator, rhs: rhs));
|
| apply(index, arg);
|
| apply(rhs, arg);
|
| }
|
| @@ -5394,14 +5947,27 @@ class SemanticSendTestVisitor extends SemanticTestVisitor {
|
| }
|
|
|
| @override
|
| + visitUnresolvedSuperIndexPostfix(
|
| + Send node,
|
| + Element element,
|
| + Node index,
|
| + IncDecOperator operator,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_SUPER_INDEX_POSTFIX,
|
| + index: index, operator: operator));
|
| + apply(index, arg);
|
| + }
|
| +
|
| + @override
|
| visitUnresolvedSuperGetterIndexPostfix(
|
| Send node,
|
| Element element,
|
| + MethodElement setter,
|
| Node index,
|
| IncDecOperator operator,
|
| arg) {
|
| visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_SUPER_GETTER_INDEX_POSTFIX,
|
| - index: index, operator: operator));
|
| + setter: setter, index: index, operator: operator));
|
| apply(index, arg);
|
| }
|
|
|
| @@ -5419,14 +5985,27 @@ class SemanticSendTestVisitor extends SemanticTestVisitor {
|
| }
|
|
|
| @override
|
| + visitUnresolvedSuperIndexPrefix(
|
| + Send node,
|
| + Element element,
|
| + Node index,
|
| + IncDecOperator operator,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_SUPER_INDEX_PREFIX,
|
| + index: index, operator: operator));
|
| + apply(index, arg);
|
| + }
|
| +
|
| + @override
|
| visitUnresolvedSuperGetterIndexPrefix(
|
| Send node,
|
| Element element,
|
| + MethodElement setter,
|
| Node index,
|
| IncDecOperator operator,
|
| arg) {
|
| visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_SUPER_GETTER_INDEX_PREFIX,
|
| - index: index, operator: operator));
|
| + setter: setter, index: index, operator: operator));
|
| apply(index, arg);
|
| }
|
|
|
| @@ -5643,19 +6222,275 @@ class SemanticSendTestVisitor extends SemanticTestVisitor {
|
| }
|
|
|
| @override
|
| - errorNonConstantConstructorInvoke(
|
| - NewExpression node,
|
| + visitUnresolvedStaticGetterCompound(
|
| + Send node,
|
| Element element,
|
| - DartType type,
|
| - NodeList arguments,
|
| - CallStructure callStructure,
|
| + MethodElement setter,
|
| + AssignmentOperator operator,
|
| + Node rhs,
|
| arg) {
|
| - visits.add(new Visit(
|
| - VisitKind.ERROR_NON_CONSTANT_CONSTRUCTOR_INVOKE,
|
| - type: type,
|
| - arguments: arguments,
|
| - selector: callStructure));
|
| - apply(arguments, arg);
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_STATIC_GETTER_COMPOUND,
|
| + setter: setter, operator: operator, rhs: rhs));
|
| + apply(rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitUnresolvedTopLevelGetterCompound(
|
| + Send node,
|
| + Element element,
|
| + MethodElement setter,
|
| + AssignmentOperator operator,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_TOP_LEVEL_GETTER_COMPOUND,
|
| + setter: setter, operator: operator, rhs: rhs));
|
| + apply(rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitUnresolvedStaticSetterCompound(
|
| + Send node,
|
| + MethodElement getter,
|
| + Element element,
|
| + AssignmentOperator operator,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_STATIC_SETTER_COMPOUND,
|
| + getter: getter, operator: operator, rhs: rhs));
|
| + apply(rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitUnresolvedTopLevelSetterCompound(
|
| + Send node,
|
| + MethodElement getter,
|
| + Element element,
|
| + AssignmentOperator operator,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_TOP_LEVEL_SETTER_COMPOUND,
|
| + getter: getter, operator: operator, rhs: rhs));
|
| + apply(rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitStaticMethodCompound(
|
| + Send node,
|
| + MethodElement method,
|
| + AssignmentOperator operator,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_STATIC_METHOD_COMPOUND,
|
| + element: method, operator: operator, rhs: rhs));
|
| + apply(rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitTopLevelMethodCompound(
|
| + Send node,
|
| + MethodElement method,
|
| + AssignmentOperator operator,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_TOP_LEVEL_METHOD_COMPOUND,
|
| + element: method, operator: operator, rhs: rhs));
|
| + apply(rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitUnresolvedStaticGetterPrefix(
|
| + Send node,
|
| + Element element,
|
| + MethodElement setter,
|
| + IncDecOperator operator,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_STATIC_GETTER_PREFIX,
|
| + setter: setter, operator: operator));
|
| + }
|
| +
|
| + @override
|
| + visitUnresolvedTopLevelGetterPrefix(
|
| + Send node,
|
| + Element element,
|
| + MethodElement setter,
|
| + IncDecOperator operator,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_TOP_LEVEL_GETTER_PREFIX,
|
| + setter: setter, operator: operator));
|
| + }
|
| +
|
| + @override
|
| + visitUnresolvedStaticSetterPrefix(
|
| + Send node,
|
| + MethodElement getter,
|
| + Element element,
|
| + IncDecOperator operator,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_STATIC_SETTER_PREFIX,
|
| + getter: getter, operator: operator));
|
| + }
|
| +
|
| + @override
|
| + visitUnresolvedTopLevelSetterPrefix(
|
| + Send node,
|
| + MethodElement getter,
|
| + Element element,
|
| + IncDecOperator operator,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_TOP_LEVEL_SETTER_PREFIX,
|
| + getter: getter, operator: operator));
|
| + }
|
| +
|
| + @override
|
| + visitStaticMethodPrefix(
|
| + Send node,
|
| + MethodElement method,
|
| + IncDecOperator operator,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_STATIC_METHOD_PREFIX,
|
| + element: method, operator: operator));
|
| + }
|
| +
|
| + @override
|
| + visitTopLevelMethodPrefix(
|
| + Send node,
|
| + MethodElement method,
|
| + IncDecOperator operator,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_TOP_LEVEL_METHOD_PREFIX,
|
| + element: method, operator: operator));
|
| + }
|
| +
|
| + @override
|
| + visitUnresolvedStaticGetterPostfix(
|
| + Send node,
|
| + Element element,
|
| + MethodElement setter,
|
| + IncDecOperator operator,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_STATIC_GETTER_POSTFIX,
|
| + setter: setter, operator: operator));
|
| + }
|
| +
|
| + @override
|
| + visitUnresolvedTopLevelGetterPostfix(
|
| + Send node,
|
| + Element element,
|
| + MethodElement setter,
|
| + IncDecOperator operator,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_TOP_LEVEL_GETTER_POSTFIX,
|
| + setter: setter, operator: operator));
|
| + }
|
| +
|
| + @override
|
| + visitUnresolvedStaticSetterPostfix(
|
| + Send node,
|
| + MethodElement getter,
|
| + Element element,
|
| + IncDecOperator operator,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_STATIC_SETTER_POSTFIX,
|
| + getter: getter, operator: operator));
|
| + }
|
| +
|
| + @override
|
| + visitUnresolvedTopLevelSetterPostfix(
|
| + Send node,
|
| + MethodElement getter,
|
| + Element element,
|
| + IncDecOperator operator,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_TOP_LEVEL_SETTER_POSTFIX,
|
| + getter: getter, operator: operator));
|
| + }
|
| +
|
| + @override
|
| + visitStaticMethodPostfix(
|
| + Send node,
|
| + MethodElement method,
|
| + IncDecOperator operator,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_STATIC_METHOD_POSTFIX,
|
| + element: method, operator: operator));
|
| + }
|
| +
|
| + @override
|
| + visitTopLevelMethodPostfix(
|
| + Send node,
|
| + MethodElement method,
|
| + IncDecOperator operator,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_TOP_LEVEL_METHOD_POSTFIX,
|
| + element: method, operator: operator));
|
| + }
|
| +
|
| + @override
|
| + visitUnresolvedSuperGetterCompound(
|
| + Send node, Element element,
|
| + MethodElement setter,
|
| + AssignmentOperator operator,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_SUPER_GETTER_COMPOUND,
|
| + setter: setter, operator: operator, rhs: rhs));
|
| + apply(rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitUnresolvedSuperGetterPostfix(
|
| + Send node,
|
| + Element element,
|
| + MethodElement setter,
|
| + IncDecOperator operator,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_SUPER_GETTER_POSTFIX,
|
| + setter: setter, operator: operator));
|
| + }
|
| +
|
| + @override
|
| + visitUnresolvedSuperGetterPrefix(
|
| + Send node,
|
| + Element element,
|
| + MethodElement setter,
|
| + IncDecOperator operator,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_SUPER_GETTER_PREFIX,
|
| + setter: setter, operator: operator));
|
| + }
|
| +
|
| + @override
|
| + visitUnresolvedSuperSetterCompound(
|
| + Send node, MethodElement getter,
|
| + Element element,
|
| + AssignmentOperator operator,
|
| + Node rhs,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_SUPER_SETTER_COMPOUND,
|
| + getter: getter, operator: operator, rhs: rhs));
|
| + apply(rhs, arg);
|
| + }
|
| +
|
| + @override
|
| + visitUnresolvedSuperSetterPostfix(
|
| + Send node,
|
| + MethodElement getter,
|
| + Element element,
|
| + IncDecOperator operator,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_SUPER_SETTER_POSTFIX,
|
| + getter: getter, operator: operator));
|
| + }
|
| +
|
| + @override
|
| + visitUnresolvedSuperSetterPrefix(
|
| + Send node,
|
| + MethodElement getter,
|
| + Element element,
|
| + IncDecOperator operator,
|
| + arg) {
|
| + visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_SUPER_SETTER_PREFIX,
|
| + getter: getter, operator: operator));
|
| }
|
| }
|
|
|
| @@ -5914,7 +6749,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| if (initializer != null) {
|
| apply(initializer, arg);
|
| }
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -5926,7 +6760,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| arg) {
|
| visits.add(new Visit(VisitKind.VISIT_LOCAL_CONSTANT_DECL,
|
| element: variable, constant: constant.getText()));
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -5979,7 +6812,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| if (initializer != null) {
|
| apply(initializer, arg);
|
| }
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -5991,7 +6823,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| arg) {
|
| visits.add(new Visit(VisitKind.VISIT_STATIC_CONSTANT_DECL,
|
| element: field, constant: constant.getText()));
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -6006,7 +6837,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| if (initializer != null) {
|
| apply(initializer, arg);
|
| }
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -6018,7 +6848,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| arg) {
|
| visits.add(new Visit(VisitKind.VISIT_TOP_LEVEL_CONSTANT_DECL,
|
| element: field, constant: constant.getText()));
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -6033,7 +6862,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| if (initializer != null) {
|
| apply(initializer, arg);
|
| }
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -6043,7 +6871,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| arg) {
|
| visits.add(new Visit(VisitKind.VISIT_ABSTRACT_GETTER_DECL,
|
| element: getter));
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -6055,7 +6882,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| visits.add(new Visit(VisitKind.VISIT_ABSTRACT_SETTER_DECL,
|
| element: setter, parameters: parameters));
|
| applyParameters(parameters, arg);
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -6067,7 +6893,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| visits.add(new Visit(VisitKind.VISIT_INSTANCE_GETTER_DECL,
|
| element: getter, body: body));
|
| apply(body, arg);
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -6081,7 +6906,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| element: setter, parameters: parameters, body: body));
|
| applyParameters(parameters, arg);
|
| apply(body, arg);
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -6093,7 +6917,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| visits.add(new Visit(VisitKind.VISIT_TOP_LEVEL_GETTER_DECL,
|
| element: getter, body: body));
|
| apply(body, arg);
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -6107,7 +6930,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| element: setter, parameters: parameters, body: body));
|
| applyParameters(parameters, arg);
|
| apply(body, arg);
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -6119,7 +6941,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| visits.add(new Visit(VisitKind.VISIT_STATIC_GETTER_DECL,
|
| element: getter, body: body));
|
| apply(body, arg);
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -6133,7 +6954,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| element: setter, parameters: parameters, body: body));
|
| applyParameters(parameters, arg);
|
| apply(body, arg);
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -6289,6 +7109,9 @@ enum VisitKind {
|
| VISIT_PARAMETER_COMPOUND,
|
| VISIT_PARAMETER_PREFIX,
|
| VISIT_PARAMETER_POSTFIX,
|
| + VISIT_FINAL_PARAMETER_COMPOUND,
|
| + VISIT_FINAL_PARAMETER_PREFIX,
|
| + VISIT_FINAL_PARAMETER_POSTFIX,
|
|
|
| VISIT_LOCAL_VARIABLE_GET,
|
| VISIT_LOCAL_VARIABLE_SET,
|
| @@ -6298,11 +7121,17 @@ enum VisitKind {
|
| VISIT_LOCAL_VARIABLE_POSTFIX,
|
| VISIT_LOCAL_VARIABLE_DECL,
|
| VISIT_LOCAL_CONSTANT_DECL,
|
| + VISIT_FINAL_LOCAL_VARIABLE_COMPOUND,
|
| + VISIT_FINAL_LOCAL_VARIABLE_PREFIX,
|
| + VISIT_FINAL_LOCAL_VARIABLE_POSTFIX,
|
|
|
| VISIT_LOCAL_FUNCTION_GET,
|
| VISIT_LOCAL_FUNCTION_INVOKE,
|
| VISIT_LOCAL_FUNCTION_DECL,
|
| VISIT_CLOSURE_DECL,
|
| + VISIT_LOCAL_FUNCTION_COMPOUND,
|
| + VISIT_LOCAL_FUNCTION_PREFIX,
|
| + VISIT_LOCAL_FUNCTION_POSTFIX,
|
|
|
| VISIT_STATIC_FIELD_GET,
|
| VISIT_STATIC_FIELD_SET,
|
| @@ -6322,11 +7151,26 @@ enum VisitKind {
|
| VISIT_STATIC_GETTER_SETTER_POSTFIX,
|
| VISIT_STATIC_GETTER_DECL,
|
| VISIT_STATIC_SETTER_DECL,
|
| + VISIT_STATIC_FINAL_FIELD_COMPOUND,
|
| + VISIT_STATIC_FINAL_FIELD_POSTFIX,
|
| + VISIT_STATIC_FINAL_FIELD_PREFIX,
|
|
|
| VISIT_STATIC_FUNCTION_GET,
|
| VISIT_STATIC_FUNCTION_INVOKE,
|
| VISIT_STATIC_FUNCTION_INCOMPATIBLE_INVOKE,
|
| VISIT_STATIC_FUNCTION_DECL,
|
| + VISIT_STATIC_METHOD_SETTER_PREFIX,
|
| + VISIT_STATIC_METHOD_SETTER_POSTFIX,
|
| +
|
| + VISIT_UNRESOLVED_STATIC_GETTER_COMPOUND,
|
| + VISIT_UNRESOLVED_STATIC_SETTER_COMPOUND,
|
| + VISIT_STATIC_METHOD_COMPOUND,
|
| + VISIT_UNRESOLVED_STATIC_GETTER_PREFIX,
|
| + VISIT_UNRESOLVED_STATIC_SETTER_PREFIX,
|
| + VISIT_STATIC_METHOD_PREFIX,
|
| + VISIT_UNRESOLVED_STATIC_GETTER_POSTFIX,
|
| + VISIT_UNRESOLVED_STATIC_SETTER_POSTFIX,
|
| + VISIT_STATIC_METHOD_POSTFIX,
|
|
|
| VISIT_TOP_LEVEL_FIELD_GET,
|
| VISIT_TOP_LEVEL_FIELD_SET,
|
| @@ -6336,6 +7180,9 @@ enum VisitKind {
|
| VISIT_TOP_LEVEL_FIELD_POSTFIX,
|
| VISIT_TOP_LEVEL_FIELD_DECL,
|
| VISIT_TOP_LEVEL_CONSTANT_DECL,
|
| + VISIT_TOP_LEVEL_FINAL_FIELD_COMPOUND,
|
| + VISIT_TOP_LEVEL_FINAL_FIELD_POSTFIX,
|
| + VISIT_TOP_LEVEL_FINAL_FIELD_PREFIX,
|
|
|
| VISIT_TOP_LEVEL_GETTER_GET,
|
| VISIT_TOP_LEVEL_SETTER_SET,
|
| @@ -6350,6 +7197,19 @@ enum VisitKind {
|
| VISIT_TOP_LEVEL_FUNCTION_INVOKE,
|
| VISIT_TOP_LEVEL_FUNCTION_INCOMPATIBLE_INVOKE,
|
| VISIT_TOP_LEVEL_FUNCTION_DECL,
|
| + VISIT_TOP_LEVEL_METHOD_SETTER_COMPOUND,
|
| + VISIT_TOP_LEVEL_METHOD_SETTER_PREFIX,
|
| + VISIT_TOP_LEVEL_METHOD_SETTER_POSTFIX,
|
| +
|
| + VISIT_UNRESOLVED_TOP_LEVEL_GETTER_COMPOUND,
|
| + VISIT_UNRESOLVED_TOP_LEVEL_SETTER_COMPOUND,
|
| + VISIT_TOP_LEVEL_METHOD_COMPOUND,
|
| + VISIT_UNRESOLVED_TOP_LEVEL_GETTER_PREFIX,
|
| + VISIT_UNRESOLVED_TOP_LEVEL_SETTER_PREFIX,
|
| + VISIT_TOP_LEVEL_METHOD_PREFIX,
|
| + VISIT_UNRESOLVED_TOP_LEVEL_GETTER_POSTFIX,
|
| + VISIT_UNRESOLVED_TOP_LEVEL_SETTER_POSTFIX,
|
| + VISIT_TOP_LEVEL_METHOD_POSTFIX,
|
|
|
| VISIT_DYNAMIC_PROPERTY_GET,
|
| VISIT_DYNAMIC_PROPERTY_SET,
|
| @@ -6374,6 +7234,12 @@ enum VisitKind {
|
| VISIT_SUPER_FIELD_COMPOUND,
|
| VISIT_SUPER_FIELD_PREFIX,
|
| VISIT_SUPER_FIELD_POSTFIX,
|
| + VISIT_SUPER_FINAL_FIELD_COMPOUND,
|
| + VISIT_SUPER_FINAL_FIELD_PREFIX,
|
| + VISIT_SUPER_FINAL_FIELD_POSTFIX,
|
| + VISIT_SUPER_FIELD_FIELD_COMPOUND,
|
| + VISIT_SUPER_FIELD_FIELD_PREFIX,
|
| + VISIT_SUPER_FIELD_FIELD_POSTFIX,
|
|
|
| VISIT_SUPER_GETTER_GET,
|
| VISIT_SUPER_SETTER_SET,
|
| @@ -6391,6 +7257,12 @@ enum VisitKind {
|
| VISIT_SUPER_METHOD_GET,
|
| VISIT_SUPER_METHOD_INVOKE,
|
| VISIT_SUPER_METHOD_INCOMPATIBLE_INVOKE,
|
| + VISIT_SUPER_METHOD_SETTER_COMPOUND,
|
| + VISIT_SUPER_METHOD_SETTER_PREFIX,
|
| + VISIT_SUPER_METHOD_SETTER_POSTFIX,
|
| + VISIT_SUPER_METHOD_COMPOUND,
|
| + VISIT_SUPER_METHOD_PREFIX,
|
| + VISIT_SUPER_METHOD_POSTFIX,
|
|
|
| VISIT_UNRESOLVED_GET,
|
| VISIT_UNRESOLVED_INVOKE,
|
| @@ -6411,12 +7283,24 @@ enum VisitKind {
|
| VISIT_SUPER_EQUALS,
|
| VISIT_SUPER_NOT_EQUALS,
|
| VISIT_SUPER_INDEX_PREFIX,
|
| + VISIT_UNRESOLVED_SUPER_GETTER_COMPOUND,
|
| + VISIT_UNRESOLVED_SUPER_SETTER_COMPOUND,
|
| + VISIT_UNRESOLVED_SUPER_GETTER_PREFIX,
|
| + VISIT_UNRESOLVED_SUPER_SETTER_PREFIX,
|
| + VISIT_UNRESOLVED_SUPER_INDEX_PREFIX,
|
| VISIT_UNRESOLVED_SUPER_GETTER_INDEX_PREFIX,
|
| VISIT_UNRESOLVED_SUPER_SETTER_INDEX_PREFIX,
|
| VISIT_SUPER_INDEX_POSTFIX,
|
| + VISIT_UNRESOLVED_SUPER_GETTER_POSTFIX,
|
| + VISIT_UNRESOLVED_SUPER_SETTER_POSTFIX,
|
| + VISIT_UNRESOLVED_SUPER_INDEX_POSTFIX,
|
| VISIT_UNRESOLVED_SUPER_GETTER_INDEX_POSTFIX,
|
| VISIT_UNRESOLVED_SUPER_SETTER_INDEX_POSTFIX,
|
|
|
| + VISIT_UNRESOLVED_SUPER_COMPOUND,
|
| + VISIT_UNRESOLVED_SUPER_PREFIX,
|
| + VISIT_UNRESOLVED_SUPER_POSTFIX,
|
| +
|
| VISIT_UNARY,
|
| VISIT_SUPER_UNARY,
|
| VISIT_UNRESOLVED_SUPER_UNARY,
|
| @@ -6427,40 +7311,37 @@ enum VisitKind {
|
| VISIT_CLASS_TYPE_LITERAL_GET,
|
| VISIT_CLASS_TYPE_LITERAL_SET,
|
| VISIT_CLASS_TYPE_LITERAL_INVOKE,
|
| - VISIT_CLASS_TYPE_LITERAL_BINARY,
|
| - ERROR_CLASS_TYPE_LITERAL_COMPOUND,
|
| - ERROR_CLASS_TYPE_LITERAL_PREFIX,
|
| - ERROR_CLASS_TYPE_LITERAL_POSTFIX,
|
| + VISIT_CLASS_TYPE_LITERAL_COMPOUND,
|
| + VISIT_CLASS_TYPE_LITERAL_PREFIX,
|
| + VISIT_CLASS_TYPE_LITERAL_POSTFIX,
|
|
|
| VISIT_TYPEDEF_TYPE_LITERAL_GET,
|
| VISIT_TYPEDEF_TYPE_LITERAL_SET,
|
| VISIT_TYPEDEF_TYPE_LITERAL_INVOKE,
|
| - VISIT_TYPEDEF_TYPE_LITERAL_BINARY,
|
| - ERROR_TYPEDEF_TYPE_LITERAL_COMPOUND,
|
| - ERROR_TYPEDEF_TYPE_LITERAL_PREFIX,
|
| - ERROR_TYPEDEF_TYPE_LITERAL_POSTFIX,
|
| + VISIT_TYPEDEF_TYPE_LITERAL_COMPOUND,
|
| + VISIT_TYPEDEF_TYPE_LITERAL_PREFIX,
|
| + VISIT_TYPEDEF_TYPE_LITERAL_POSTFIX,
|
|
|
| VISIT_TYPE_VARIABLE_TYPE_LITERAL_GET,
|
| VISIT_TYPE_VARIABLE_TYPE_LITERAL_SET,
|
| VISIT_TYPE_VARIABLE_TYPE_LITERAL_INVOKE,
|
| - VISIT_TYPE_VARIABLE_TYPE_LITERAL_BINARY,
|
| - ERROR_TYPE_VARIABLE_TYPE_LITERAL_COMPOUND,
|
| - ERROR_TYPE_VARIABLE_TYPE_LITERAL_PREFIX,
|
| - ERROR_TYPE_VARIABLE_TYPE_LITERAL_POSTFIX,
|
| + VISIT_TYPE_VARIABLE_TYPE_LITERAL_COMPOUND,
|
| + VISIT_TYPE_VARIABLE_TYPE_LITERAL_PREFIX,
|
| + VISIT_TYPE_VARIABLE_TYPE_LITERAL_POSTFIX,
|
|
|
| VISIT_DYNAMIC_TYPE_LITERAL_GET,
|
| VISIT_DYNAMIC_TYPE_LITERAL_SET,
|
| VISIT_DYNAMIC_TYPE_LITERAL_INVOKE,
|
| - VISIT_DYNAMIC_TYPE_LITERAL_BINARY,
|
| - ERROR_DYNAMIC_TYPE_LITERAL_COMPOUND,
|
| - ERROR_DYNAMIC_TYPE_LITERAL_PREFIX,
|
| - ERROR_DYNAMIC_TYPE_LITERAL_POSTFIX,
|
| + VISIT_DYNAMIC_TYPE_LITERAL_COMPOUND,
|
| + VISIT_DYNAMIC_TYPE_LITERAL_PREFIX,
|
| + VISIT_DYNAMIC_TYPE_LITERAL_POSTFIX,
|
|
|
| VISIT_INDEX_SET,
|
| VISIT_COMPOUND_INDEX_SET,
|
| VISIT_SUPER_INDEX_SET,
|
| VISIT_UNRESOLVED_SUPER_INDEX_SET,
|
| VISIT_SUPER_COMPOUND_INDEX_SET,
|
| + VISIT_UNRESOLVED_SUPER_COMPOUND_INDEX_SET,
|
| VISIT_UNRESOLVED_SUPER_GETTER_COMPOUND_INDEX_SET,
|
| VISIT_UNRESOLVED_SUPER_SETTER_COMPOUND_INDEX_SET,
|
|
|
| @@ -6485,7 +7366,6 @@ enum VisitKind {
|
| VISIT_UNRESOLVED_CONSTRUCTOR_INVOKE,
|
| VISIT_ABSTRACT_CLASS_CONSTRUCTOR_INVOKE,
|
| VISIT_UNRESOLVED_REDIRECTING_FACTORY_CONSTRUCTOR_INVOKE,
|
| - ERROR_NON_CONSTANT_CONSTRUCTOR_INVOKE,
|
|
|
| VISIT_INSTANCE_GETTER_DECL,
|
| VISIT_INSTANCE_SETTER_DECL,
|
| @@ -6507,7 +7387,9 @@ enum VisitKind {
|
| VISIT_OPTIONAL_INITIALIZING_FORMAL_DECL,
|
| VISIT_NAMED_INITIALIZING_FORMAL_DECL,
|
|
|
| - ERROR_UNRESOLVED_POSTFIX,
|
| + VISIT_UNRESOLVED_COMPOUND,
|
| + VISIT_UNRESOLVED_PREFIX,
|
| + VISIT_UNRESOLVED_POSTFIX,
|
|
|
| // TODO(johnniwinther): Add tests for more error cases.
|
| }
|
|
|