Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(210)

Unified Diff: tests/compiler/dart2js/semantic_visitor_test.dart

Issue 1126173002: Refactor handling of compounds. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Update status. Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tests/compiler/dart2js/analyze_unused_dart2js_test.dart ('k') | tests/language/language_dart2js.status » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.
}
« no previous file with comments | « tests/compiler/dart2js/analyze_unused_dart2js_test.dart ('k') | tests/language/language_dart2js.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698