OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 dart2js.type_system; | 5 library dart2js.type_system; |
6 | 6 |
7 import 'dart_types.dart'; | 7 import 'dart_types.dart'; |
8 import 'elements/elements.dart' show ClassElement; | 8 import 'elements/elements.dart' show ClassElement; |
9 | 9 |
10 /// The core types in Dart. | 10 /// The core types in Dart. |
11 abstract class CoreTypes { | 11 abstract class CoreTypes { |
12 /// The `Object` type defined in 'dart:core'. | 12 /// The `Object` type defined in 'dart:core'. |
13 InterfaceType get objectType; | 13 InterfaceType get objectType; |
14 | 14 |
15 /// The `bool` type defined in 'dart:core'. | 15 /// The `bool` type defined in 'dart:core'. |
16 InterfaceType get boolType; | 16 InterfaceType get boolType; |
17 | 17 |
18 /// The `bool` type defined in 'dart:core'. | 18 /// The `bool` type defined in 'dart:core'. |
19 InterfaceType get numType; | 19 InterfaceType get numType; |
20 | 20 |
21 /// The `int` type defined in 'dart:core'. | 21 /// The `int` type defined in 'dart:core'. |
22 InterfaceType get intType; | 22 InterfaceType get intType; |
23 | 23 |
24 /// The `double` type defined in 'dart:core'. | 24 /// The `double` type defined in 'dart:core'. |
25 InterfaceType get doubleType; | 25 InterfaceType get doubleType; |
26 | 26 |
27 /// The `String` type defined in 'dart:core'. | 27 /// The `String` type defined in 'dart:core'. |
28 InterfaceType get stringType; | 28 InterfaceType get stringType; |
29 | 29 |
| 30 /// The `Symbol` type defined in 'dart:core'. |
| 31 InterfaceType get symbolType; |
| 32 |
30 /// The `Function` type defined in 'dart:core'. | 33 /// The `Function` type defined in 'dart:core'. |
31 InterfaceType get functionType; | 34 InterfaceType get functionType; |
32 | 35 |
33 /// The `Null` type defined in 'dart:core'. | 36 /// The `Null` type defined in 'dart:core'. |
34 InterfaceType get nullType; | 37 InterfaceType get nullType; |
35 | 38 |
36 /// The `Type` type defined in 'dart:core'. | 39 /// The `Type` type defined in 'dart:core'. |
37 InterfaceType get typeType; | 40 InterfaceType get typeType; |
38 | 41 |
39 /// Returns an instance of the `List` type defined in 'dart:core' with | 42 /// Returns an instance of the `List` type defined in 'dart:core' with |
40 /// [elementType] as its type argument. | 43 /// [elementType] as its type argument. |
41 InterfaceType listType([DartType elementType = const DynamicType()]); | 44 /// |
| 45 /// If no type argument is provided, the canonical raw type is returned. |
| 46 InterfaceType listType([DartType elementType]); |
42 | 47 |
43 /// Returns an instance of the `Map` type defined in 'dart:core' with | 48 /// Returns an instance of the `Map` type defined in 'dart:core' with |
44 /// [keyType] and [valueType] as its type arguments. | 49 /// [keyType] and [valueType] as its type arguments. |
45 InterfaceType mapType([DartType keyType = const DynamicType(), | 50 /// |
46 DartType valueType = const DynamicType()]); | 51 /// If no type arguments are provided, the canonical raw type is returned. |
| 52 InterfaceType mapType([DartType keyType, DartType valueType]); |
47 | 53 |
48 /// Returns an instance of the `Iterable` type defined in 'dart:core' with | 54 /// Returns an instance of the `Iterable` type defined in 'dart:core' with |
49 /// [elementType] as its type argument. | 55 /// [elementType] as its type argument. |
50 InterfaceType iterableType([DartType elementType = const DynamicType()]); | 56 /// |
| 57 /// If no type argument is provided, the canonical raw type is returned. |
| 58 InterfaceType iterableType([DartType elementType]); |
51 | 59 |
52 /// The `Future` class declaration. | 60 /// The `Future` class declaration. |
53 ClassElement get futureClass; | 61 ClassElement get futureClass; |
54 | 62 |
55 /// Returns an instance of the `Future` type defined in 'dart:async' with | 63 /// Returns an instance of the `Future` type defined in 'dart:async' with |
56 /// [elementType] as its type argument. | 64 /// [elementType] as its type argument. |
57 InterfaceType futureType([DartType elementType = const DynamicType()]); | 65 /// |
| 66 /// If no type argument is provided, the canonical raw type is returned. |
| 67 InterfaceType futureType([DartType elementType]); |
58 | 68 |
59 /// Returns an instance of the `Stream` type defined in 'dart:async' with | 69 /// Returns an instance of the `Stream` type defined in 'dart:async' with |
60 /// [elementType] as its type argument. | 70 /// [elementType] as its type argument. |
61 InterfaceType streamType([DartType elementType = const DynamicType()]); | 71 /// |
| 72 /// If no type argument is provided, the canonical raw type is returned. |
| 73 InterfaceType streamType([DartType elementType]); |
62 } | 74 } |
OLD | NEW |