| // Copyright (c) 2011, 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 = 2.9 |
| |
| import "package:expect/expect.dart"; |
| |
| main() { |
| // Integer literals. |
| Expect.isTrue(2 is int); |
| // ^^^ |
| // [analyzer] COMPILE_TIME_ERROR.REFERENCED_BEFORE_DECLARATION |
| // [analyzer] COMPILE_TIME_ERROR.TYPE_TEST_WITH_NON_TYPE |
| Expect.equals(2, 2 as int); |
| // ^^^ |
| // [analyzer] COMPILE_TIME_ERROR.CAST_TO_NON_TYPE |
| // [analyzer] COMPILE_TIME_ERROR.REFERENCED_BEFORE_DECLARATION |
| Expect.isTrue(-2 is int); |
| // ^^^ |
| // [analyzer] COMPILE_TIME_ERROR.REFERENCED_BEFORE_DECLARATION |
| // [analyzer] COMPILE_TIME_ERROR.TYPE_TEST_WITH_NON_TYPE |
| Expect.equals(-2, -2 as int); |
| // ^^^ |
| // [analyzer] COMPILE_TIME_ERROR.CAST_TO_NON_TYPE |
| // [analyzer] COMPILE_TIME_ERROR.REFERENCED_BEFORE_DECLARATION |
| Expect.isTrue(0x10 is int); |
| // ^^^ |
| // [analyzer] COMPILE_TIME_ERROR.REFERENCED_BEFORE_DECLARATION |
| // [analyzer] COMPILE_TIME_ERROR.TYPE_TEST_WITH_NON_TYPE |
| Expect.isTrue(-0x10 is int); |
| // ^^^ |
| // [analyzer] COMPILE_TIME_ERROR.REFERENCED_BEFORE_DECLARATION |
| // [analyzer] COMPILE_TIME_ERROR.TYPE_TEST_WITH_NON_TYPE |
| |
| // "a" will be part of hex literal, the following "s" is an error. |
| 0x10as int; |
| //^^^^^ |
| // [analyzer] SYNTACTIC_ERROR.EXPECTED_TOKEN |
| // [cfe] Expected ';' after this. |
| // ^ |
| // [analyzer] COMPILE_TIME_ERROR.UNDEFINED_CLASS |
| // [cfe] 's' isn't a type. |
| // ^ |
| // [cfe] Can't declare 'int' because it was already used in this scope. |
| 0x; |
| //^ |
| // [cfe] A hex digit (0-9 or A-F) must follow '0x'. |
| // ^ |
| // [analyzer] SYNTACTIC_ERROR.MISSING_HEX_DIGIT |
| |
| // Double literals. |
| Expect.isTrue(2.0 is double); |
| Expect.equals(2.0, 2.0 as double); |
| Expect.isTrue(-2.0 is double); |
| Expect.equals(-2.0, -2.0 as double); |
| Expect.isTrue(.2 is double); |
| Expect.equals(0.2, .2 as double); |
| Expect.isTrue(1e2 is double); |
| Expect.equals(1e2, 1e2 as double); |
| Expect.isTrue(1e-2 is double); |
| Expect.equals(1e-2, 1e-2 as double); |
| Expect.isTrue(1e+2 is double); |
| Expect.equals(1e+2, 1e+2 as double); |
| Expect.throwsNoSuchMethodError(() => 1.e+2); |
| // ^ |
| // [analyzer] COMPILE_TIME_ERROR.UNDEFINED_GETTER |
| // [cfe] The getter 'e' isn't defined for the class 'int'. |
| 1d; |
| //^ |
| // [analyzer] SYNTACTIC_ERROR.EXPECTED_TOKEN |
| // [cfe] Expected ';' after this. |
| // ^ |
| // [analyzer] COMPILE_TIME_ERROR.UNDEFINED_IDENTIFIER |
| // [cfe] Undefined name 'd'. |
| 1D; |
| //^ |
| // [analyzer] SYNTACTIC_ERROR.EXPECTED_TOKEN |
| // [cfe] Expected ';' after this. |
| // ^ |
| // [analyzer] COMPILE_TIME_ERROR.UNDEFINED_IDENTIFIER |
| // [cfe] Undefined name 'D'. |
| Expect.throwsNoSuchMethodError(() => 1.d+2); |
| // ^ |
| // [analyzer] COMPILE_TIME_ERROR.UNDEFINED_GETTER |
| // [cfe] The getter 'd' isn't defined for the class 'int'. |
| Expect.throwsNoSuchMethodError(() => 1.D+2); |
| // ^ |
| // [analyzer] COMPILE_TIME_ERROR.UNDEFINED_GETTER |
| // [cfe] The getter 'D' isn't defined for the class 'int'. |
| 1.1d; |
| //^^^ |
| // [analyzer] SYNTACTIC_ERROR.EXPECTED_TOKEN |
| // [cfe] Expected ';' after this. |
| // ^ |
| // [analyzer] COMPILE_TIME_ERROR.UNDEFINED_IDENTIFIER |
| // [cfe] Undefined name 'd'. |
| 1.1D; |
| //^^^ |
| // [analyzer] SYNTACTIC_ERROR.EXPECTED_TOKEN |
| // [cfe] Expected ';' after this. |
| // ^ |
| // [analyzer] COMPILE_TIME_ERROR.UNDEFINED_IDENTIFIER |
| // [cfe] Undefined name 'D'. |
| 1e; |
| //^ |
| // [cfe] Numbers in exponential notation should always contain an exponent (an integer number with an optional sign). |
| // ^ |
| // [analyzer] SYNTACTIC_ERROR.MISSING_DIGIT |
| 1x; |
| //^ |
| // [analyzer] SYNTACTIC_ERROR.EXPECTED_TOKEN |
| // [cfe] Expected ';' after this. |
| // ^ |
| // [analyzer] COMPILE_TIME_ERROR.UNDEFINED_IDENTIFIER |
| // [cfe] Undefined name 'x'. |
| } |