| // Copyright (c) 2018, 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. |
| |
| /// @assertion The static type of a double valued integer literal is [double] |
| /// @description Checks that the static type of a double valued integer literal |
| /// is [double]. Test local variable assignment |
| /// @author sgrekhov@unipro.ru |
| |
| |
| class C { |
| |
| static void staticMethod() { |
| double? s1 = 42; |
| double s2 = (1 > 0 ? 42 : 3.14); |
| double s3 = (null ?? 42); |
| const double s4 = -42; |
| final double s5 = 23; |
| |
| s1 = -42; |
| s1 = null; |
| s1 ??= 42; |
| s1 ??= -42; |
| // ^^^ |
| // [analyzer] STATIC_WARNING.DEAD_NULL_AWARE_EXPRESSION |
| // ^ |
| // [cfe] Operand of null-aware operation '??=' has type 'double' which excludes null. |
| } |
| |
| void instanceMethod() { |
| double? m1 = 42; |
| double m2 = (1 > 0 ? 42 : 3.14); |
| double m3 = (null ?? 42); |
| const double m4 = -42; |
| final double m5 = 23; |
| |
| m1 = -42; |
| m1 = null; |
| m1 ??= 42; |
| m1 ??= -42; |
| // ^^^ |
| // [analyzer] STATIC_WARNING.DEAD_NULL_AWARE_EXPRESSION |
| // ^ |
| // [cfe] Operand of null-aware operation '??=' has type 'double' which excludes null. |
| } |
| } |
| |
| void foo() { |
| double? l1 = 42; |
| double l2 = (1 > 0 ? 42 : 3.14); |
| double l3 = (null ?? 42); |
| const double l4 = -42; |
| final double l5 = 23; |
| |
| l1 = -42; |
| l1 = null; |
| l1 ??= 42; |
| l1 ??= -42; |
| // ^^^ |
| // [analyzer] STATIC_WARNING.DEAD_NULL_AWARE_EXPRESSION |
| //^ |
| // [cfe] Operand of null-aware operation '??=' has type 'double' which excludes null. |
| } |
| |
| main() { |
| double? d1 = 42; |
| double d2 = (1 > 0 ? 42 : 3.14); |
| double d3 = (null ?? 42); |
| const double d4 = -42; |
| final double d5 = 23; |
| |
| d1 = -42; |
| d1 = null; |
| d1 ??= 42; |
| d1 ??= -42; |
| // ^^^ |
| // [analyzer] STATIC_WARNING.DEAD_NULL_AWARE_EXPRESSION |
| //^ |
| // [cfe] Operand of null-aware operation '??=' has type 'double' which excludes null. |
| |
| foo(); |
| C.staticMethod(); |
| new C().instanceMethod(); |
| |
| void bar() { |
| double? b1 = 42; |
| double b2 = (1 > 0 ? 42 : 3.14); |
| double b3 = (null ?? 42); |
| const double b4 = -42; |
| final double b5 = 23; |
| |
| b1 = -42; |
| b1 = null; |
| b1 ??= 42; |
| b1 ??= -42; |
| // ^^^ |
| // [analyzer] STATIC_WARNING.DEAD_NULL_AWARE_EXPRESSION |
| // ^ |
| // [cfe] Operand of null-aware operation '??=' has type 'double' which excludes null. |
| } |
| bar(); |
| } |