Index: tests/language/argument_definition_test.dart |
=================================================================== |
--- tests/language/argument_definition_test.dart (revision 0) |
+++ tests/language/argument_definition_test.dart (revision 0) |
@@ -0,0 +1,57 @@ |
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+// Dart test program for testing argument definition test. |
+ |
+int test(int a, [int b, int c]) { |
+ int result = 0; |
+ ?b; |
+ ?result; /// 01: compile-time error |
+ if (?a) { |
+ result += 100; |
+ } |
+ if (?b) { |
+ result += 20; |
+ } |
+ if (?c) { |
+ var b; ?b; /// 02: compile-time error |
+ result += 3; |
+ } |
+ return result; |
+} |
+ |
+closure_test(int a, [int b, int c]) { |
+ var x = 0; |
+ return () { |
+ int result = 0; |
+ ?b; |
+ ?result; /// 03: compile-time error |
+ ?x; /// 04: compile-time error |
+ if (?a) { |
+ result += 100; |
+ } |
+ if (?b) { |
+ result += 20; |
+ } |
+ if (?c) { |
+ var b; ?b; /// 05: compile-time error |
+ result += 3; |
+ } |
+ return result; |
+ }; |
+} |
+ |
hausner
2012/08/31 00:34:55
Can add this nice test function:
WTF([a, b, c]) {
regis
2012/08/31 01:36:18
LOL
Does it work? Does it matter how you call WTF(
hausner
2012/08/31 05:56:26
We had some good laughs in the office today. I hav
|
+main() { |
+ // Use a loop to test optimized version as well. |
+ for (int i = 0; i < 1000; i++) { |
+ Expect.equals(100, test(1)); |
+ Expect.equals(120, test(1, 2)); |
+ Expect.equals(123, test(1, 2, 3)); |
+ Expect.equals(103, test(1, c:3)); |
+ |
+ Expect.equals(100, closure_test(1)()); |
+ Expect.equals(120, closure_test(1, 2)()); |
+ Expect.equals(123, closure_test(1, 2, 3)()); |
+ Expect.equals(103, closure_test(1, c:3)()); |
+ } |
+} |