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

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

Issue 1161823004: Handle .fromEnvironment and incompatible constructor invocations (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: 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
Index: tests/compiler/dart2js/semantic_visitor_test_send_data.dart
diff --git a/tests/compiler/dart2js/semantic_visitor_test_send_data.dart b/tests/compiler/dart2js/semantic_visitor_test_send_data.dart
index 87eecc3ee5170630d1cbd5f901d9e663a5dd1182..9f1676c9d11b8171a9fcfc569efb33467bba9b19 100644
--- a/tests/compiler/dart2js/semantic_visitor_test_send_data.dart
+++ b/tests/compiler/dart2js/semantic_visitor_test_send_data.dart
@@ -3089,6 +3089,43 @@ const Map<String, List<Test>> SEND_TESTS = const {
constant: 'const Class(true, 42)')),
const Test(
'''
+ m() => const bool.fromEnvironment('foo');
+ ''',
+ const Visit(VisitKind.VISIT_BOOL_FROM_ENVIRONMENT_CONSTRUCTOR_INVOKE,
+ constant: 'const bool.fromEnvironment("foo", defaultValue: false)')),
karlklose 2015/06/01 11:47:26 Long line.
Johnni Winther 2015/06/01 13:13:43 Done.
+ const Test(
+ '''
+ m() => const bool.fromEnvironment('foo', defaultValue: true);
+ ''',
+ const Visit(VisitKind.VISIT_BOOL_FROM_ENVIRONMENT_CONSTRUCTOR_INVOKE,
+ constant: 'const bool.fromEnvironment("foo", defaultValue: true)')),
+ const Test(
+ '''
+ m() => const int.fromEnvironment('foo');
+ ''',
+ const Visit(VisitKind.VISIT_INT_FROM_ENVIRONMENT_CONSTRUCTOR_INVOKE,
+ constant: 'const int.fromEnvironment("foo", defaultValue: null)')),
+ const Test(
+ '''
+ m() => const String.fromEnvironment('foo');
+ ''',
+ const Visit(VisitKind.VISIT_STRING_FROM_ENVIRONMENT_CONSTRUCTOR_INVOKE,
+ constant:
+ 'const String.fromEnvironment("foo", defaultValue: null)')),
+ const Test(
+ '''
+ class Class {
+ Class(a, b);
+ }
+ m() => const Class(true, 42);
+ ''',
+ const Visit(VisitKind.ERROR_NON_CONSTANT_CONSTRUCTOR_INVOKE,
+ element: 'generative_constructor(Class#)',
+ arguments: '(true,42)',
karlklose 2015/06/01 11:47:26 Space after ','? (also below)
Johnni Winther 2015/06/01 13:13:43 No. It's checked against unparser output.
+ type: 'Class',
+ selector: 'CallStructure(arity=2)')),
+ const Test(
+ '''
class Class {}
m() => new Class();
''',
@@ -3123,6 +3160,16 @@ const Map<String, List<Test>> SEND_TESTS = const {
selector: 'CallStructure(arity=2)')),
const Test(
'''
+ class Class {}
+ m() => new Class(true, 42);
+ ''',
+ const Visit(VisitKind.VISIT_CONSTRUCTOR_INCOMPATIBLE_INVOKE,
+ element: 'generative_constructor(Class#)',
+ arguments: '(true,42)',
+ type: 'Class',
+ selector: 'CallStructure(arity=2)')),
+ const Test(
+ '''
class Class {
Class(a, b) : this._(a, b);
Class._(a, b);
@@ -3137,6 +3184,19 @@ const Map<String, List<Test>> SEND_TESTS = const {
const Test(
'''
class Class {
+ Class() : this._(true, 42);
+ Class._(a, b);
+ }
+ m() => new Class(true, 42);
+ ''',
+ const Visit(VisitKind.VISIT_CONSTRUCTOR_INCOMPATIBLE_INVOKE,
+ element: 'generative_constructor(Class#)',
+ arguments: '(true,42)',
+ type: 'Class',
+ selector: 'CallStructure(arity=2)')),
+ const Test(
+ '''
+ class Class {
factory Class(a, b) => new Class._(a, b);
Class._(a, b);
}
@@ -3149,6 +3209,19 @@ const Map<String, List<Test>> SEND_TESTS = const {
selector: 'CallStructure(arity=2)')),
const Test(
'''
+ class Class {
+ factory Class() => new Class._(true, 42);
+ Class._(a, b);
+ }
+ m() => new Class(true, 42);
+ ''',
+ const Visit(VisitKind.VISIT_CONSTRUCTOR_INCOMPATIBLE_INVOKE,
+ element: 'function(Class#)',
+ arguments: '(true,42)',
+ type: 'Class',
+ selector: 'CallStructure(arity=2)')),
+ const Test(
+ '''
class Class<T> {
factory Class(a, b) = Class<int>.a;
factory Class.a(a, b) = Class<Class<T>>.b;
@@ -3166,6 +3239,19 @@ const Map<String, List<Test>> SEND_TESTS = const {
const Test(
'''
class Class {
+ factory Class() = Class._;
+ Class._();
+ }
+ m() => new Class(true, 42);
+ ''',
+ const Visit(VisitKind.VISIT_CONSTRUCTOR_INCOMPATIBLE_INVOKE,
+ element: 'function(Class#)',
+ arguments: '(true,42)',
+ type: 'Class',
+ selector: 'CallStructure(arity=2)')),
+ const Test(
+ '''
+ class Class {
Class(a, b);
}
m() => new Class.unresolved(true, 42);

Powered by Google App Engine
This is Rietveld 408576698