blob: 84c14841978d1bd0ff1203e73c1d58698457b4f7 [file] [log] [blame]
// 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 class member assignment and hexadecimal values
/// @author sgrekhov@unipro.ru
/// @static-warning
class C {
double m1 = 0x42;
double m2 = (1 > 0 ? 0x42 : 3.14);
double m3 = (null ?? 0x42);
static const double m4 = -0x42;
final double m5 = 0x23;
static double s = -0x42;
void set instanceSetter(double val) {
m1 = val;
}
static void set staticSetter(double val) {
s = val;
}
}
main() {
C.s = 0x42;
C?.s = -0x42;
C.s ??= 0x42;
C?.s ??= -0x42;
C.staticSetter = -0x42;
C?.staticSetter = 0x42;
C? c = null;
c?.m1 = 0x42;
c?.instanceSetter = -0x42;
c?.m1 ??= 0x42;
c = new C();
c.m1 = -0x42;
c.instanceSetter = 0x42;
c?.m1 = 0x42;
c?.instanceSetter = -0x42;
c.m1 ??= -0x42;
c?.m1 ??= 0x42;
}