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

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

Issue 12217036: Check arguments counts. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Analyze additional arguments. Created 7 years, 10 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 | « sdk/lib/_internal/compiler/implementation/warnings.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/compiler/dart2js/type_checker_test.dart
diff --git a/tests/compiler/dart2js/type_checker_test.dart b/tests/compiler/dart2js/type_checker_test.dart
index e51a50f1424d8e7d1b7add5b079f72745bd10526..f69acf966010f0486fed8a0d99f61faa4cd0d970 100644
--- a/tests/compiler/dart2js/type_checker_test.dart
+++ b/tests/compiler/dart2js/type_checker_test.dart
@@ -195,6 +195,73 @@ void testMethodInvocationArgumentCount() {
analyze("${header}c.intTwoArgumentMethod(1, 2, 3); }",
MessageKind.ADDITIONAL_ARGUMENT);
// analyze("${header}c.untypedField(); }");
+
+ analyze("${header}c.intOneArgumentOneOptionalMethod(); }",
+ [MessageKind.MISSING_ARGUMENT]);
+ analyze("${header}c.intOneArgumentOneOptionalMethod(0); }");
+ analyze("${header}c.intOneArgumentOneOptionalMethod(0, 1); }");
+ analyze("${header}c.intOneArgumentOneOptionalMethod(0, 1, 2); }",
+ [MessageKind.ADDITIONAL_ARGUMENT]);
+ analyze("${header}c.intOneArgumentOneOptionalMethod(0, 1, c: 2); }",
+ [MessageKind.NAMED_ARGUMENT_NOT_FOUND]);
+ analyze("${header}c.intOneArgumentOneOptionalMethod(0, b: 1); }",
+ [MessageKind.NAMED_ARGUMENT_NOT_FOUND]);
+ analyze("${header}c.intOneArgumentOneOptionalMethod(a: 0, b: 1); }",
+ [MessageKind.NAMED_ARGUMENT_NOT_FOUND,
+ MessageKind.NAMED_ARGUMENT_NOT_FOUND,
+ MessageKind.MISSING_ARGUMENT]);
+
+ analyze("${header}c.intTwoOptionalMethod(); }");
+ analyze("${header}c.intTwoOptionalMethod(0); }");
+ analyze("${header}c.intTwoOptionalMethod(0, 1); }");
+ analyze("${header}c.intTwoOptionalMethod(0, 1, 2); }",
+ [MessageKind.ADDITIONAL_ARGUMENT]);
+ analyze("${header}c.intTwoOptionalMethod(a: 0); }",
+ [MessageKind.NAMED_ARGUMENT_NOT_FOUND]);
+ analyze("${header}c.intTwoOptionalMethod(0, b: 1); }",
+ [MessageKind.NAMED_ARGUMENT_NOT_FOUND]);
+
+ analyze("${header}c.intOneArgumentOneNamedMethod(); }",
+ [MessageKind.MISSING_ARGUMENT]);
+ analyze("${header}c.intOneArgumentOneNamedMethod(0); }");
+ analyze("${header}c.intOneArgumentOneNamedMethod(0, b: 1); }");
+ analyze("${header}c.intOneArgumentOneNamedMethod(b: 1); }",
+ [MessageKind.MISSING_ARGUMENT]);
+ analyze("${header}c.intOneArgumentOneNamedMethod(0, b: 1, c: 2); }",
+ [MessageKind.NAMED_ARGUMENT_NOT_FOUND]);
+ analyze("${header}c.intOneArgumentOneNamedMethod(0, 1); }",
+ [MessageKind.ADDITIONAL_ARGUMENT]);
+ analyze("${header}c.intOneArgumentOneNamedMethod(0, 1, c: 2); }",
+ [MessageKind.ADDITIONAL_ARGUMENT,
+ MessageKind.NAMED_ARGUMENT_NOT_FOUND]);
+ analyze("${header}c.intOneArgumentOneNamedMethod(a: 1, b: 1); }",
+ [MessageKind.NAMED_ARGUMENT_NOT_FOUND,
+ MessageKind.MISSING_ARGUMENT]);
+
+ analyze("${header}c.intTwoNamedMethod(); }");
+ analyze("${header}c.intTwoNamedMethod(a: 0); }");
+ analyze("${header}c.intTwoNamedMethod(b: 1); }");
+ analyze("${header}c.intTwoNamedMethod(a: 0, b: 1); }");
+ analyze("${header}c.intTwoNamedMethod(b: 1, a: 0); }");
+ analyze("${header}c.intTwoNamedMethod(0); }",
+ [MessageKind.ADDITIONAL_ARGUMENT]);
+ analyze("${header}c.intTwoNamedMethod(c: 2); }",
+ [MessageKind.NAMED_ARGUMENT_NOT_FOUND]);
+ analyze("${header}c.intTwoNamedMethod(a: 0, c: 2); }",
+ [MessageKind.NAMED_ARGUMENT_NOT_FOUND]);
+ analyze("${header}c.intTwoNamedMethod(a: 0, b: 1, c: 2); }",
+ [MessageKind.NAMED_ARGUMENT_NOT_FOUND]);
+ analyze("${header}c.intTwoNamedMethod(c: 2, b: 1, a: 0); }",
+ [MessageKind.NAMED_ARGUMENT_NOT_FOUND]);
+ analyze("${header}c.intTwoNamedMethod(0, b: 1); }",
+ [MessageKind.ADDITIONAL_ARGUMENT]);
+ analyze("${header}c.intTwoNamedMethod(0, 1); }",
+ [MessageKind.ADDITIONAL_ARGUMENT,
+ MessageKind.ADDITIONAL_ARGUMENT]);
+ analyze("${header}c.intTwoNamedMethod(0, c: 2); }",
+ [MessageKind.ADDITIONAL_ARGUMENT,
+ MessageKind.NAMED_ARGUMENT_NOT_FOUND]);
+
}
void testMethodInvocations() {
@@ -514,6 +581,11 @@ class ClassWithMethods {
int intOneArgumentMethod(int argument) {}
int intTwoArgumentMethod(int argument1, int argument2) {}
+ void intOneArgumentOneOptionalMethod(int a, [int b]) {}
+ void intTwoOptionalMethod([int a, int b]) {}
+ void intOneArgumentOneNamedMethod(int a, {int b}) {}
+ void intTwoNamedMethod({int a, int b}) {}
+
Function functionField;
var untypedField;
int intField;
« no previous file with comments | « sdk/lib/_internal/compiler/implementation/warnings.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698