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

Side by Side Diff: tests/language/src/NamedParametersTypeTest.dart

Issue 9664029: Fix type check to perform a subtype test at top level instead of an (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 9 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « tests/co19/co19-runtime.status ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 // VMOptions=--enable_type_checks 4 // VMOptions=--enable_type_checks
5 // 5 //
6 // Dart test program for testing named parameters in type tests. 6 // Dart test program for testing named parameters in type tests.
7 7
8 class NamedParametersTypeTest { 8 class NamedParametersTypeTest {
9 static int testMain() { 9 static int testMain() {
10 int result = 0; 10 int result = 0;
11 Function anyFunction; 11 Function anyFunction;
12 void acceptFunNumOptBool(void funNumOptBool(num num, [bool b])) { }; 12 void acceptFunNumOptBool(void funNumOptBool(num num, [bool b])) { };
13 void funNum(num num) { }; 13 void funNum(num num) { };
14 void funNumBool(num num, bool b) { }; 14 void funNumBool(num num, bool b) { };
15 void funNumOptBool(num num, [bool b = true]) { }; 15 void funNumOptBool(num num, [bool b = true]) { };
16 void funNumOptBoolX(num num, [bool x = true]) { }; 16 void funNumOptBoolX(num num, [bool x = true]) { };
17 anyFunction = funNum; // No error. 17 anyFunction = funNum; // No error.
18 anyFunction = funNumBool; // No error. 18 anyFunction = funNumBool; // No error.
19 anyFunction = funNumOptBool; // No error. 19 anyFunction = funNumOptBool; // No error.
20 anyFunction = funNumOptBoolX; // No error. 20 anyFunction = funNumOptBoolX; // No error.
21 acceptFunNumOptBool(funNum); // No error.
22 acceptFunNumOptBool(funNumOptBool); // No error. 21 acceptFunNumOptBool(funNumOptBool); // No error.
23 try { 22 try {
23 acceptFunNumOptBool(funNum); // No static type warning.
24 } catch (TypeError error) {
25 result += 1;
26 Expect.stringEquals("(num, [b: bool]) => void", error.dstType);
27 Expect.stringEquals("(num) => void", error.srcType);
28 }
29 try {
24 acceptFunNumOptBool(funNumBool); /// static type warning 30 acceptFunNumOptBool(funNumBool); /// static type warning
25 } catch (TypeError error) { 31 } catch (TypeError error) {
26 result += 1; 32 result += 10;
27 Expect.stringEquals("(num, [b: bool]) => void", error.dstType); 33 Expect.stringEquals("(num, [b: bool]) => void", error.dstType);
28 Expect.stringEquals("(num, bool) => void", error.srcType); 34 Expect.stringEquals("(num, bool) => void", error.srcType);
29 } 35 }
30 try { 36 try {
31 acceptFunNumOptBool(funNumOptBoolX); /// static type warning 37 acceptFunNumOptBool(funNumOptBoolX); /// static type warning
32 } catch (TypeError error) { 38 } catch (TypeError error) {
33 result += 10; 39 result += 100;
34 Expect.stringEquals("(num, [b: bool]) => void", error.dstType); 40 Expect.stringEquals("(num, [b: bool]) => void", error.dstType);
35 Expect.stringEquals("(num, [x: bool]) => void", error.srcType); 41 Expect.stringEquals("(num, [x: bool]) => void", error.srcType);
36 } 42 }
37 return result; 43 return result;
38 } 44 }
39 } 45 }
40 46
41 main() { 47 main() {
42 Expect.equals(11, NamedParametersTypeTest.testMain()); 48 Expect.equals(111, NamedParametersTypeTest.testMain());
43 } 49 }
OLDNEW
« no previous file with comments | « tests/co19/co19-runtime.status ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698