| 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 3d9372449961a0fd6b18f57b28f60aa6e7ceaf7d..1683aa6c1c688cb549fec5fc6d9aa414ed8d43e0 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';
|
| @@ -1513,6 +1514,12 @@ const Map<String, List<Test>> SEND_TESTS = const {
|
| element: 'parameter(m#a)', operator: '+=', rhs: '42')),
|
| const Test(
|
| '''
|
| + m(final a) => a += 42;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_FINAL_PARAMETER_COMPOUND,
|
| + element: 'parameter(m#a)', operator: '+=', rhs: '42')),
|
| + const Test(
|
| + '''
|
| m() {
|
| var a;
|
| a += 42;
|
| @@ -1522,6 +1529,24 @@ const Map<String, List<Test>> SEND_TESTS = const {
|
| element: 'variable(m#a)', operator: '+=', rhs: '42')),
|
| const Test(
|
| '''
|
| + m() {
|
| + final a;
|
| + a += 42;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_FINAL_LOCAL_VARIABLE_COMPOUND,
|
| + element: 'variable(m#a)', operator: '+=', rhs: '42')),
|
| + const Test(
|
| + '''
|
| + m() {
|
| + a() {}
|
| + a += 42;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_LOCAL_FUNCTION_COMPOUND,
|
| + element: 'function(m#a)', operator: '+=', rhs: '42')),
|
| + const Test(
|
| + '''
|
| var a;
|
| m() => a += 42;
|
| ''',
|
| @@ -1704,6 +1729,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 +1814,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
|
| @@ -1856,6 +2015,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 +2030,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 +2182,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 +2250,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 +2396,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 +2411,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 +2563,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 (_) {}
|
| }
|
| @@ -2256,36 +2608,151 @@ const Map<String, List<Test>> SEND_TESTS = const {
|
| get a => 0;
|
| }
|
|
|
| - class C extends B {
|
| - m() => super.a--;
|
| - }
|
| + class C extends B {
|
| + m() => super.a--;
|
| + }
|
| + ''',
|
| + const Visit(VisitKind.VISIT_SUPER_GETTER_FIELD_POSTFIX,
|
| + getter: 'getter(B#a)', setter: 'field(A#a)',
|
| + operator: '--')),
|
| + const Test.clazz(
|
| + '''
|
| + class A {
|
| + var a;
|
| + }
|
| + class B extends A {
|
| + set a(_) {}
|
| + }
|
| +
|
| + class C extends B {
|
| + m() => super.a++;
|
| + }
|
| + ''',
|
| + 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_SUPER_GETTER_FIELD_POSTFIX,
|
| - getter: 'getter(B#a)', setter: 'field(A#a)',
|
| - operator: '--')),
|
| - const Test.clazz(
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_TOP_LEVEL_SETTER_POSTFIX,
|
| + getter: 'getter(a)', operator: '++')),
|
| +
|
| + const Test(
|
| '''
|
| - class A {
|
| - var a;
|
| - }
|
| - class B extends A {
|
| - set a(_) {}
|
| - }
|
| + a(var value) { }
|
| + m() => a++;
|
| + ''',
|
| + const Visit(VisitKind.VISIT_TOP_LEVEL_METHOD_POSTFIX,
|
| + element: 'function(a)', operator: '++')),
|
|
|
| - class C extends B {
|
| - m() => super.a++;
|
| - }
|
| + const Test(
|
| + '''
|
| + final a = 42;
|
| + m() => a++;
|
| ''',
|
| - const Visit(VisitKind.VISIT_SUPER_FIELD_SETTER_POSTFIX,
|
| - getter: 'field(A#a)', setter: 'setter(B#a)',
|
| - operator: '++')),
|
| + const Visit(VisitKind.VISIT_TOP_LEVEL_FINAL_FIELD_POSTFIX,
|
| + element: 'field(a)', operator: '++')),
|
|
|
| const Test(
|
| '''
|
| - set topLevel(var value) { }
|
| - m() => topLevel++;
|
| + m() => unresolved++;
|
| ''',
|
| - const Visit(VisitKind.ERROR_UNRESOLVED_POSTFIX,
|
| + const Visit(VisitKind.VISIT_UNRESOLVED_POSTFIX,
|
| operator: '++')),
|
| ],
|
| 'Constructor invocations': const [
|
| @@ -3281,24 +3748,89 @@ 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_CLASS_TYPE_LITERAL_COMPOUND,
|
| + VisitKind.VISIT_CLASS_TYPE_LITERAL_PREFIX,
|
| + VisitKind.VISIT_CLASS_TYPE_LITERAL_POSTFIX,
|
| + VisitKind.VISIT_TYPEDEF_TYPE_LITERAL_SET,
|
| + VisitKind.VISIT_TYPEDEF_TYPE_LITERAL_COMPOUND,
|
| + VisitKind.VISIT_TYPEDEF_TYPE_LITERAL_PREFIX,
|
| + VisitKind.VISIT_TYPEDEF_TYPE_LITERAL_POSTFIX,
|
| + VisitKind.VISIT_TYPE_VARIABLE_TYPE_LITERAL_SET,
|
| + VisitKind.VISIT_TYPE_VARIABLE_TYPE_LITERAL_COMPOUND,
|
| + VisitKind.VISIT_TYPE_VARIABLE_TYPE_LITERAL_PREFIX,
|
| + VisitKind.VISIT_TYPE_VARIABLE_TYPE_LITERAL_POSTFIX,
|
| + VisitKind.VISIT_DYNAMIC_TYPE_LITERAL_SET,
|
| + VisitKind.VISIT_DYNAMIC_TYPE_LITERAL_INVOKE,
|
| + VisitKind.VISIT_DYNAMIC_TYPE_LITERAL_COMPOUND,
|
| + VisitKind.VISIT_DYNAMIC_TYPE_LITERAL_PREFIX,
|
| + VisitKind.VISIT_DYNAMIC_TYPE_LITERAL_POSTFIX,
|
| +];
|
| +
|
| 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 = {};
|
| @@ -3367,6 +3899,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;
|
| @@ -3419,14 +3952,6 @@ class SemanticSendTestVisitor extends SemanticTestVisitor {
|
| }
|
|
|
| @override
|
| - errorInvalidAssert(
|
| - Send node,
|
| - NodeList arguments,
|
| - arg) {
|
| - // TODO: implement errorAssert
|
| - }
|
| -
|
| - @override
|
| visitBinary(
|
| Send node,
|
| Node left,
|
| @@ -3851,7 +4376,6 @@ class SemanticSendTestVisitor extends SemanticTestVisitor {
|
| apply(argument, arg);
|
| }
|
|
|
| -
|
| @override
|
| visitSuperIndex(
|
| Send node,
|
| @@ -4295,241 +4819,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(
|
| + visitStaticFinalFieldCompound(
|
| 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(
|
| + visitStaticFinalFieldPostfix(
|
| 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(
|
| + visitStaticFinalFieldPrefix(
|
| 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(
|
| + visitSuperFinalFieldCompound(
|
| 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(
|
| + visitTopLevelFinalFieldCompound(
|
| 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(
|
| + visitTopLevelFinalFieldPostfix(
|
| 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(
|
| + visitTopLevelFinalFieldPrefix(
|
| 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
|
| @@ -4698,7 +5152,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
|
| @@ -4709,7 +5229,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
|
| @@ -4744,79 +5266,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));
|
| }
|
|
|
| @@ -4868,7 +5391,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
|
| @@ -4878,7 +5415,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
|
| @@ -4892,6 +5430,16 @@ class SemanticSendTestVisitor extends SemanticTestVisitor {
|
| }
|
|
|
| @override
|
| + visitSuperFinalFieldPrefix(
|
| + 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,
|
| @@ -4931,7 +5479,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
|
| @@ -4974,55 +5523,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));
|
| }
|
|
|
| @@ -5074,7 +5625,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
|
| @@ -5084,7 +5636,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
|
| @@ -5098,6 +5651,16 @@ class SemanticSendTestVisitor extends SemanticTestVisitor {
|
| }
|
|
|
| @override
|
| + visitSuperFinalFieldPostfix(
|
| + 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,
|
| @@ -5137,7 +5700,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
|
| @@ -5180,55 +5744,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(
|
| + visitTypedefTypeLiteralPostfix(
|
| Send node,
|
| ConstantExpression constant,
|
| IncDecOperator operator,
|
| arg) {
|
| - visits.add(new Visit(VisitKind.ERROR_TYPEDEF_TYPE_LITERAL_POSTFIX,
|
| + visits.add(new Visit(VisitKind.VISIT_TYPEDEF_TYPE_LITERAL_POSTFIX,
|
| constant: constant.getText(), operator: operator));
|
| }
|
|
|
| @override
|
| - visitConstantGet(
|
| - Send node,
|
| - ConstantExpression constant,
|
| - arg) {
|
| - // TODO: implement visitConstantGet
|
| - }
|
| -
|
| - @override
|
| - visitConstantInvoke(
|
| - Send node,
|
| - ConstantExpression constant,
|
| - NodeList arguments,
|
| - CallStructure callStructure,
|
| - arg) {
|
| - // TODO: implement visitConstantInvoke
|
| - }
|
| -
|
| - @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
|
| @@ -5236,6 +5785,7 @@ class SemanticSendTestVisitor extends SemanticTestVisitor {
|
| Send node,
|
| Element element,
|
| arg) {
|
| + print('visitUnresolvedGet:$node:$element');
|
| visits.add(new Visit(VisitKind.VISIT_UNRESOLVED_GET, name: element.name));
|
| }
|
|
|
| @@ -5251,50 +5801,23 @@ 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
|
| - }
|
| -
|
| - @override
|
| - errorUnresolvedSet(
|
| - Send node,
|
| - ErroneousElement element,
|
| - 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_PREFIX, operator: operator));
|
| }
|
|
|
| @override
|
| @@ -5589,6 +6112,278 @@ class SemanticSendTestVisitor extends SemanticTestVisitor {
|
| selector: callStructure));
|
| apply(arguments, arg);
|
| }
|
| +
|
| + @override
|
| + visitUnresolvedStaticGetterCompound(
|
| + Send node,
|
| + Element element,
|
| + MethodElement setter,
|
| + AssignmentOperator operator,
|
| + Node rhs,
|
| + 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));
|
| + }
|
| }
|
|
|
| class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| @@ -5846,7 +6641,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| if (initializer != null) {
|
| apply(initializer, arg);
|
| }
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -5858,7 +6652,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| arg) {
|
| visits.add(new Visit(VisitKind.VISIT_LOCAL_CONSTANT_DECL,
|
| element: variable, constant: constant.getText()));
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -5911,7 +6704,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| if (initializer != null) {
|
| apply(initializer, arg);
|
| }
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -5923,7 +6715,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| arg) {
|
| visits.add(new Visit(VisitKind.VISIT_STATIC_CONSTANT_DECL,
|
| element: field, constant: constant.getText()));
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -5938,7 +6729,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| if (initializer != null) {
|
| apply(initializer, arg);
|
| }
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -5950,7 +6740,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| arg) {
|
| visits.add(new Visit(VisitKind.VISIT_TOP_LEVEL_CONSTANT_DECL,
|
| element: field, constant: constant.getText()));
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -5965,7 +6754,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| if (initializer != null) {
|
| apply(initializer, arg);
|
| }
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -5975,7 +6763,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| arg) {
|
| visits.add(new Visit(VisitKind.VISIT_ABSTRACT_GETTER_DECL,
|
| element: getter));
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -5987,7 +6774,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| visits.add(new Visit(VisitKind.VISIT_ABSTRACT_SETTER_DECL,
|
| element: setter, parameters: parameters));
|
| applyParameters(parameters, arg);
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -5999,7 +6785,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| visits.add(new Visit(VisitKind.VISIT_INSTANCE_GETTER_DECL,
|
| element: getter, body: body));
|
| apply(body, arg);
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -6013,7 +6798,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| element: setter, parameters: parameters, body: body));
|
| applyParameters(parameters, arg);
|
| apply(body, arg);
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -6025,7 +6809,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
|
| @@ -6039,7 +6822,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| element: setter, parameters: parameters, body: body));
|
| applyParameters(parameters, arg);
|
| apply(body, arg);
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -6051,7 +6833,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| visits.add(new Visit(VisitKind.VISIT_STATIC_GETTER_DECL,
|
| element: getter, body: body));
|
| apply(body, arg);
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -6065,7 +6846,6 @@ class SemanticDeclarationTestVisitor extends SemanticTestVisitor {
|
| element: setter, parameters: parameters, body: body));
|
| applyParameters(parameters, arg);
|
| apply(body, arg);
|
| - return null;
|
| }
|
|
|
| @override
|
| @@ -6221,6 +7001,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,
|
| @@ -6230,11 +7013,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,
|
| @@ -6254,11 +7043,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,
|
| @@ -6268,6 +7072,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,
|
| @@ -6282,6 +7089,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,
|
| @@ -6306,6 +7126,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,
|
| @@ -6323,6 +7149,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,
|
| @@ -6343,12 +7175,22 @@ 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_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_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,
|
| @@ -6359,34 +7201,30 @@ 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,
|
| @@ -6438,7 +7276,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.
|
| }
|
|
|