OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 part of dart2js; | 5 part of dart2js; |
6 | 6 |
7 /** | 7 /** |
8 * If true, print a warning for each method that was resolved, but not | 8 * If true, print a warning for each method that was resolved, but not |
9 * compiled. | 9 * compiled. |
10 */ | 10 */ |
(...skipping 2402 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2413 @override | 2413 @override |
2414 InterfaceType get objectType => objectClass.computeType(compiler); | 2414 InterfaceType get objectType => objectClass.computeType(compiler); |
2415 | 2415 |
2416 @override | 2416 @override |
2417 InterfaceType get boolType => boolClass.computeType(compiler); | 2417 InterfaceType get boolType => boolClass.computeType(compiler); |
2418 | 2418 |
2419 @override | 2419 @override |
2420 InterfaceType get doubleType => doubleClass.computeType(compiler); | 2420 InterfaceType get doubleType => doubleClass.computeType(compiler); |
2421 | 2421 |
2422 @override | 2422 @override |
2423 InterfaceType get functionType => functionClass.computeType(compiler); | 2423 InterfaceType get functionType => functionClass.computeType(compiler); |
2424 | 2424 |
2425 @override | 2425 @override |
2426 InterfaceType get intType => intClass.computeType(compiler); | 2426 InterfaceType get intType => intClass.computeType(compiler); |
2427 | 2427 |
2428 @override | 2428 @override |
2429 InterfaceType listType([DartType elementType = const DynamicType()]) { | 2429 InterfaceType listType([DartType elementType]) { |
2430 return listClass.computeType(compiler).createInstantiation([elementType]); | 2430 InterfaceType type = listClass.computeType(compiler); |
| 2431 if (elementType == null) { |
| 2432 return listClass.rawType; |
| 2433 } |
| 2434 return type.createInstantiation([elementType]); |
2431 } | 2435 } |
2432 | 2436 |
2433 @override | 2437 @override |
2434 InterfaceType mapType([DartType keyType = const DynamicType(), | 2438 InterfaceType mapType([DartType keyType, |
2435 DartType valueType = const DynamicType()]) { | 2439 DartType valueType]) { |
2436 return mapClass.computeType(compiler) | 2440 InterfaceType type = mapClass.computeType(compiler); |
2437 .createInstantiation([keyType, valueType]); | 2441 if (keyType == null && valueType == null) { |
| 2442 return mapClass.rawType; |
| 2443 } else if (keyType == null) { |
| 2444 keyType = const DynamicType(); |
| 2445 } else if (valueType == null) { |
| 2446 valueType = const DynamicType(); |
| 2447 } |
| 2448 return type.createInstantiation([keyType, valueType]); |
2438 } | 2449 } |
2439 | 2450 |
2440 @override | 2451 @override |
2441 InterfaceType get nullType => nullClass.computeType(compiler); | 2452 InterfaceType get nullType => nullClass.computeType(compiler); |
2442 | 2453 |
2443 @override | 2454 @override |
2444 InterfaceType get numType => numClass.computeType(compiler); | 2455 InterfaceType get numType => numClass.computeType(compiler); |
2445 | 2456 |
2446 @override | 2457 @override |
2447 InterfaceType get stringType => stringClass.computeType(compiler); | 2458 InterfaceType get stringType => stringClass.computeType(compiler); |
2448 | 2459 |
2449 @override | 2460 @override |
| 2461 InterfaceType get symbolType => symbolClass.computeType(compiler); |
| 2462 |
| 2463 @override |
2450 InterfaceType get typeType => typeClass.computeType(compiler); | 2464 InterfaceType get typeType => typeClass.computeType(compiler); |
2451 | 2465 |
2452 @override | 2466 @override |
2453 InterfaceType iterableType([DartType elementType = const DynamicType()]) { | 2467 InterfaceType iterableType([DartType elementType]) { |
2454 return iterableClass.computeType(compiler) | 2468 InterfaceType type = iterableClass.computeType(compiler); |
2455 .createInstantiation([elementType]); | 2469 if (elementType == null) { |
| 2470 return iterableClass.rawType; |
| 2471 } |
| 2472 return type.createInstantiation([elementType]); |
2456 } | 2473 } |
2457 | 2474 |
2458 @override | 2475 @override |
2459 InterfaceType futureType([DartType elementType = const DynamicType()]) { | 2476 InterfaceType futureType([DartType elementType]) { |
2460 return futureClass.computeType(compiler).createInstantiation([elementType]); | 2477 InterfaceType type = futureClass.computeType(compiler); |
| 2478 if (elementType == null) { |
| 2479 return futureClass.rawType; |
| 2480 } |
| 2481 return type.createInstantiation([elementType]); |
2461 } | 2482 } |
2462 | 2483 |
2463 @override | 2484 @override |
2464 InterfaceType streamType([DartType elementType = const DynamicType()]) { | 2485 InterfaceType streamType([DartType elementType]) { |
2465 return streamClass.computeType(compiler).createInstantiation([elementType]); | 2486 InterfaceType type = streamClass.computeType(compiler); |
| 2487 if (elementType == null) { |
| 2488 return streamClass.rawType; |
| 2489 } |
| 2490 return type.createInstantiation([elementType]); |
2466 } | 2491 } |
2467 } | 2492 } |
2468 | 2493 |
2469 typedef void InternalErrorFunction(Spannable location, String message); | 2494 typedef void InternalErrorFunction(Spannable location, String message); |
OLD | NEW |