| // 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 arguments binding and generic routine |
| /// @author sgrekhov@unipro.ru |
| |
| |
| class C<X> { |
| void instanceMethod(X val) {} |
| void instanceMethodPos(X val, [X? pos]) {} |
| void instanceMethodNam(X val, {X? nam}) {} |
| } |
| |
| void foo<X>(X x) {} |
| |
| void positional1<X>(X d1, [X? d2]) {} |
| void positional2<X>(dynamic x1, [X? d2]) {} |
| |
| void named1<X>(X d1, {X? d2}) {} |
| void named2<X>(dynamic x1, {X? d2}) {} |
| |
| main() { |
| C<double> c = C<double>(); |
| c.instanceMethod(42); |
| c.instanceMethod(0x42); |
| c.instanceMethod(1 > 0 ? 42 : 3.14); |
| c.instanceMethod(1 > 0 ? 0x42 : 3.14); |
| c.instanceMethod(null ?? 42); |
| c.instanceMethod(null ?? 0x42); |
| c.instanceMethodPos(42); |
| c.instanceMethodPos(0x42); |
| c.instanceMethodPos(1 > 0 ? 42 : 3.14); |
| c.instanceMethodPos(1 > 0 ? 0x42 : 3.14); |
| c.instanceMethodPos(null ?? 42); |
| c.instanceMethodPos(null ?? 0x42); |
| c.instanceMethodPos(42.0, 42); |
| c.instanceMethodPos(42.0, 0x42); |
| c.instanceMethodPos(42.0, 1 > 0 ? 42 : 3.14); |
| c.instanceMethodPos(42.0, 1 > 0 ? 0x42 : 3.14); |
| c.instanceMethodPos(42.0, null ?? 42); |
| c.instanceMethodPos(42.0, null ?? 0x42); |
| c.instanceMethodNam(42); |
| c.instanceMethodNam(0x42); |
| c.instanceMethodNam(1 > 0 ? 42 : 3.14); |
| c.instanceMethodNam(1 > 0 ? 0x42 : 3.14); |
| c.instanceMethodNam(null ?? 42); |
| c.instanceMethodNam(null ?? 0x42); |
| c.instanceMethodNam(42.0, nam: 42); |
| c.instanceMethodNam(42.0, nam: 0x42); |
| c.instanceMethodNam(42.0, nam: 1 > 0 ? 42 : 3.14); |
| c.instanceMethodNam(42.0, nam: 1 > 0 ? 0x42 : 3.14); |
| c.instanceMethodNam(42.0, nam: null ?? 42); |
| c.instanceMethodNam(42.0, nam: null ?? 0x42); |
| |
| foo<double>(42); |
| foo<double>(0x42); |
| foo<double>(1 > 0 ? 42 : 3.14); |
| foo<double>(1 > 0 ? 0x42 : 3.14); |
| foo<double>(null ?? 42); |
| foo<double>(null ?? 0x42); |
| |
| positional1<double>(42); |
| positional1<double>(1 > 0 ? 42 : 3.14); |
| positional1<double>(null ?? 42); |
| positional1<double>(42.0, 42); |
| positional2<double>(42, 42); |
| positional1<double>(42.0, 1 > 0 ? 42 : 3.14); |
| positional1<double>(null ?? 42); |
| positional2<double>(42.0, 1 > 0 ? 42 : 3.14); |
| positional2<double>(null ?? 42); |
| positional1<double>(0x42); |
| positional1<double>(1 > 0 ? 0x42 : 3.14); |
| positional1<double>(null ?? 42); |
| positional1<double>(42.0, 0x42); |
| positional2<double>(42, 0x42); |
| positional1<double>(42.0, 1 > 0 ? 0x42 : 3.14); |
| positional1<double>(null ?? 42); |
| positional2<double>(42.0, 1 > 0 ? 0x42 : 3.14); |
| positional2<double>(null ?? 42); |
| |
| named1<double>(42); |
| named1<double>(1 > 0 ? 42 : 3.14); |
| named1<double>(null ?? 42); |
| named1<double>(42.0, d2: 42); |
| named1<double>(42.0, d2: 1 > 0 ? 42 : 3.14); |
| named1<double>(42.0, d2: null ?? 42); |
| named2<double>(42, d2: 42); |
| named2<double>(42, d2: 1 > 0 ? 42 : 3.14); |
| named2<double>(42, d2: null ?? 42); |
| named1<double>(0x42); |
| named1<double>(1 > 0 ? 0x42 : 3.14); |
| named1<double>(null ?? 0x42); |
| named1<double>(42.0, d2: 0x42); |
| named1<double>(42.0, d2: 1 > 0 ? 0x42 : 3.14); |
| named1<double>(42.0, d2: null ?? 0x42); |
| named2<double>(42, d2: 0x42); |
| named2<double>(42, d2: 1 > 0 ? 0x42 : 3.14); |
| named2<double>(42, d2: null ?? 0x42); |
| |
| void bar<X>(X x) {} |
| void barPos<X>(X x, [X? d2]) {} |
| void barNam<X>(X x, {X? d2}) {} |
| |
| bar<double>(42); |
| bar<double>(1 > 0 ? 42 : 3.14); |
| bar<double>(null ?? 42); |
| bar<double>(0x42); |
| bar<double>(1 > 0 ? 0x42 : 3.14); |
| bar<double>(null ?? 0x42); |
| barPos<double>(42); |
| barPos<double>(1 > 0 ? 42 : 3.14); |
| barPos<double>(null ?? 42); |
| barPos<double>(0x42); |
| barPos<double>(1 > 0 ? 0x42 : 3.14); |
| barPos<double>(null ?? 0x42); |
| barPos<double>(42.0, 42); |
| barPos<double>(42.0, 1 > 0 ? 42 : 3.14); |
| barPos<double>(42.0, null ?? 42); |
| barPos<double>(42.0, 0x42); |
| barPos<double>(42.0, 1 > 0 ? 0x42 : 3.14); |
| barPos<double>(42.0, null ?? 0x42); |
| barNam<double>(42); |
| barNam<double>(1 > 0 ? 42 : 3.14); |
| barNam<double>(null ?? 42); |
| barNam<double>(0x42); |
| barNam<double>(1 > 0 ? 0x42 : 3.14); |
| barNam<double>(null ?? 0x42); |
| barNam<double>(42.0, d2: 42); |
| barNam<double>(42.0, d2: 1 > 0 ? 42 : 3.14); |
| barNam<double>(42.0, d2: null ?? 42); |
| barNam<double>(42.0, d2: 0x42); |
| barNam<double>(42.0, d2: 1 > 0 ? 0x42 : 3.14); |
| barNam<double>(42.0, d2: null ?? 0x42); |
| } |