| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 | 4 |
| 5 library dev_compiler.test.closure_type_test; | 5 library dev_compiler.test.closure_type_test; |
| 6 | 6 |
| 7 import 'package:test/test.dart'; | 7 import 'package:test/test.dart'; |
| 8 | 8 |
| 9 import 'package:dev_compiler/src/closure/closure_type.dart'; | 9 import 'package:dev_compiler/src/closure/closure_type.dart'; |
| 10 | 10 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 34 | 34 |
| 35 test('supports array types', () { | 35 test('supports array types', () { |
| 36 expectToString(new ClosureType.array(), "Array<*>", | 36 expectToString(new ClosureType.array(), "Array<*>", |
| 37 nullable: "Array<*>", nonNullable: "!Array<*>"); | 37 nullable: "Array<*>", nonNullable: "!Array<*>"); |
| 38 expectToString( | 38 expectToString( |
| 39 new ClosureType.array(new ClosureType.type("Foo")), "Array<Foo>", | 39 new ClosureType.array(new ClosureType.type("Foo")), "Array<Foo>", |
| 40 nullable: "Array<Foo>", nonNullable: "!Array<Foo>"); | 40 nullable: "Array<Foo>", nonNullable: "!Array<Foo>"); |
| 41 }); | 41 }); |
| 42 | 42 |
| 43 test('supports map types', () { | 43 test('supports map types', () { |
| 44 expectToString(new ClosureType.map( | 44 expectToString( |
| 45 new ClosureType.map( |
| 45 new ClosureType.type("Foo"), new ClosureType.type("Bar")), | 46 new ClosureType.type("Foo"), new ClosureType.type("Bar")), |
| 46 "Object<Foo, Bar>", | 47 "Object<Foo, Bar>", |
| 47 nullable: "Object<Foo, Bar>", nonNullable: "!Object<Foo, Bar>"); | 48 nullable: "Object<Foo, Bar>", |
| 49 nonNullable: "!Object<Foo, Bar>"); |
| 48 expectToString(new ClosureType.map(), "Object<*, *>", | 50 expectToString(new ClosureType.map(), "Object<*, *>", |
| 49 nullable: "Object<*, *>", nonNullable: "!Object<*, *>"); | 51 nullable: "Object<*, *>", nonNullable: "!Object<*, *>"); |
| 50 }); | 52 }); |
| 51 | 53 |
| 52 test('supports function types', () { | 54 test('supports function types', () { |
| 53 expectToString(new ClosureType.function(), "Function", | 55 expectToString(new ClosureType.function(), "Function", |
| 54 nullable: "Function", nonNullable: "!Function"); | 56 nullable: "Function", nonNullable: "!Function"); |
| 55 expectToString(new ClosureType.function([new ClosureType.number()]), | 57 expectToString(new ClosureType.function([new ClosureType.number()]), |
| 56 "function(number)"); | 58 "function(number)"); |
| 57 expectToString(new ClosureType.function(null, new ClosureType.number()), | 59 expectToString(new ClosureType.function(null, new ClosureType.number()), |
| 58 "function(...*):number"); | 60 "function(...*):number"); |
| 59 expectToString(new ClosureType.function([ | 61 expectToString( |
| 60 new ClosureType.number(), | 62 new ClosureType.function( |
| 61 new ClosureType.string() | 63 [new ClosureType.number(), new ClosureType.string()], |
| 62 ], new ClosureType.boolean()), "function(number, string):boolean"); | 64 new ClosureType.boolean()), |
| 65 "function(number, string):boolean"); |
| 63 }); | 66 }); |
| 64 | 67 |
| 65 test('supports union types', () { | 68 test('supports union types', () { |
| 66 expectToString(new ClosureType.number().or(new ClosureType.boolean()), | 69 expectToString(new ClosureType.number().or(new ClosureType.boolean()), |
| 67 "(number|boolean)"); | 70 "(number|boolean)"); |
| 68 expectToString( | 71 expectToString( |
| 69 new ClosureType.number().orUndefined(), "(number|undefined)"); | 72 new ClosureType.number().orUndefined(), "(number|undefined)"); |
| 70 }); | 73 }); |
| 71 | 74 |
| 72 test('supports record types', () { | 75 test('supports record types', () { |
| 73 expectToString(new ClosureType.record( | 76 expectToString( |
| 77 new ClosureType.record( |
| 74 {'x': new ClosureType.number(), 'y': new ClosureType.boolean()}), | 78 {'x': new ClosureType.number(), 'y': new ClosureType.boolean()}), |
| 75 "{x: number, y: boolean}"); | 79 "{x: number, y: boolean}"); |
| 76 }); | 80 }); |
| 77 | 81 |
| 78 test('supports optional pseudo-types', () { | 82 test('supports optional pseudo-types', () { |
| 79 expectToString(new ClosureType.number().toOptional(), "number="); | 83 expectToString(new ClosureType.number().toOptional(), "number="); |
| 80 }); | 84 }); |
| 81 }); | 85 }); |
| 82 } | 86 } |
| OLD | NEW |