Add tests for int literal as double value.

Change-Id: Ic4f76280f50f8aa82228cf9e694881eff3edcaef
Reviewed-on: https://dart-review.googlesource.com/61520
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Erik Ernst <eernst@google.com>
diff --git a/tests/language_2/double_literals/double_literal_coercion_error_test.dart b/tests/language_2/double_literals/double_literal_coercion_error_test.dart
new file mode 100644
index 0000000..89d873f
--- /dev/null
+++ b/tests/language_2/double_literals/double_literal_coercion_error_test.dart
@@ -0,0 +1,295 @@
+// 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.
+
+// Introduces a context with double as type.
+void notDouble([double value]) {
+  if (value != null) throw "unreachable";
+}
+
+main() {
+  notDouble(
+    // Large decimal numbers which are not representable as doubles.
+    9007199254740993, //     2^53+2^0      //# 001: compile-time error
+    18014398509481983, //    2^54-2^0      //# 002: compile-time error
+    18014398509481985, //    2^54+2^0      //# 003: compile-time error
+    18014398509481986, //    2^54+2^1      //# 004: compile-time error
+    4611686018427387903, //  2^62-2^0      //# 005: compile-time error
+    4611686018427387902, //  2^62-2^1      //# 006: compile-time error
+    4611686018427387900, //  2^62-2^2      //# 007: compile-time error
+    4611686018427387896, //  2^62-2^3      //# 008: compile-time error
+    4611686018427387888, //  2^62-2^4      //# 009: compile-time error
+    4611686018427387872, //  2^62-2^5      //# 010: compile-time error
+    4611686018427387840, //  2^62-2^6      //# 011: compile-time error
+    4611686018427387776, //  2^62-2^7      //# 012: compile-time error
+    4611686018427387648, //  2^62-2^8      //# 013: compile-time error
+    4611686018427387905, //  2^62+2^0      //# 014: compile-time error
+    4611686018427387906, //  2^62+2^1      //# 015: compile-time error
+    4611686018427387908, //  2^62+2^2      //# 016: compile-time error
+    4611686018427387912, //  2^62+2^3      //# 017: compile-time error
+    4611686018427387920, //  2^62+2^4      //# 018: compile-time error
+    4611686018427387936, //  2^62+2^5      //# 019: compile-time error
+    4611686018427387968, //  2^62+2^6      //# 020: compile-time error
+    4611686018427388032, //  2^62+2^7      //# 021: compile-time error
+    4611686018427388160, //  2^62+2^8      //# 022: compile-time error
+    4611686018427388416, //  2^62+2^9      //# 023: compile-time error
+    9223372036854775807, //  2^63-2^0      //# 024: compile-time error
+    9223372036854775806, //  2^63-2^1      //# 025: compile-time error
+    9223372036854775804, //  2^63-2^2      //# 026: compile-time error
+    9223372036854775800, //  2^63-2^3      //# 027: compile-time error
+    9223372036854775792, //  2^63-2^4      //# 028: compile-time error
+    9223372036854775776, //  2^63-2^5      //# 029: compile-time error
+    9223372036854775744, //  2^63-2^6      //# 030: compile-time error
+    9223372036854775680, //  2^63-2^7      //# 031: compile-time error
+    9223372036854775552, //  2^63-2^8      //# 032: compile-time error
+    9223372036854775296, //  2^63-2^9      //# 033: compile-time error
+    9223372036854775809, //  2^63+2^0      //# 034: compile-time error
+    9223372036854775810, //  2^63+2^1      //# 035: compile-time error
+    9223372036854775812, //  2^63+2^2      //# 036: compile-time error
+    9223372036854775816, //  2^63+2^3      //# 037: compile-time error
+    9223372036854775824, //  2^63+2^4      //# 038: compile-time error
+    9223372036854775840, //  2^63+2^5      //# 039: compile-time error
+    9223372036854775872, //  2^63+2^6      //# 040: compile-time error
+    9223372036854775936, //  2^63+2^7      //# 041: compile-time error
+    9223372036854776064, //  2^63+2^8      //# 042: compile-time error
+    9223372036854776320, //  2^63+2^9      //# 043: compile-time error
+    9223372036854776832, //  2^63+2^10     //# 044: compile-time error
+    18446744073709551615, // 2^64-2^0      //# 045: compile-time error
+    18446744073709551614, // 2^64-2^1      //# 046: compile-time error
+    18446744073709551612, // 2^64-2^2      //# 047: compile-time error
+    18446744073709551608, // 2^64-2^3      //# 048: compile-time error
+    18446744073709551600, // 2^64-2^4      //# 049: compile-time error
+    18446744073709551584, // 2^64-2^5      //# 050: compile-time error
+    18446744073709551552, // 2^64-2^6      //# 051: compile-time error
+    18446744073709551488, // 2^64-2^7      //# 052: compile-time error
+    18446744073709551360, // 2^64-2^8      //# 053: compile-time error
+    18446744073709551104, // 2^64-2^9      //# 054: compile-time error
+    18446744073709550592, // 2^64-2^10     //# 055: compile-time error
+    18446744073709551617, // 2^64+2^0      //# 056: compile-time error
+    18446744073709551618, // 2^64+2^1      //# 057: compile-time error
+    18446744073709551620, // 2^64+2^2      //# 058: compile-time error
+    18446744073709551624, // 2^64+2^3      //# 059: compile-time error
+    18446744073709551632, // 2^64+2^4      //# 060: compile-time error
+    18446744073709551648, // 2^64+2^5      //# 061: compile-time error
+    18446744073709551680, // 2^64+2^6      //# 062: compile-time error
+    18446744073709551744, // 2^64+2^7      //# 063: compile-time error
+    18446744073709551872, // 2^64+2^8      //# 064: compile-time error
+    18446744073709552128, // 2^64+2^9      //# 065: compile-time error
+    18446744073709552640, // 2^64+2^10     //# 066: compile-time error
+    18446744073709553664, // 2^64+2^11     //# 067: compile-time error
+    179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858367, // maxValue - 1 //# 068 : compile-time error
+    179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858369, // maxValue + 1 //# 069 : compile-time error
+
+    // Negative numbers too.
+    -9007199254740993, //     -(2^53+2^0)  //# 070: compile-time error
+    -18014398509481983, //    -(2^54-2^0)  //# 071: compile-time error
+    -18014398509481985, //    -(2^54+2^0)  //# 072: compile-time error
+    -18014398509481986, //    -(2^54+2^1)  //# 073: compile-time error
+    -4611686018427387903, //  -(2^62-2^0)  //# 074: compile-time error
+    -4611686018427387902, //  -(2^62-2^1)  //# 075: compile-time error
+    -4611686018427387900, //  -(2^62-2^2)  //# 076: compile-time error
+    -4611686018427387896, //  -(2^62-2^3)  //# 077: compile-time error
+    -4611686018427387888, //  -(2^62-2^4)  //# 078: compile-time error
+    -4611686018427387872, //  -(2^62-2^5)  //# 079: compile-time error
+    -4611686018427387840, //  -(2^62-2^6)  //# 080: compile-time error
+    -4611686018427387776, //  -(2^62-2^7)  //# 081: compile-time error
+    -4611686018427387648, //  -(2^62-2^8)  //# 082: compile-time error
+    -4611686018427387905, //  -(2^62+2^0)  //# 083: compile-time error
+    -4611686018427387906, //  -(2^62+2^1)  //# 084: compile-time error
+    -4611686018427387908, //  -(2^62+2^2)  //# 085: compile-time error
+    -4611686018427387912, //  -(2^62+2^3)  //# 086: compile-time error
+    -4611686018427387920, //  -(2^62+2^4)  //# 087: compile-time error
+    -4611686018427387936, //  -(2^62+2^5)  //# 088: compile-time error
+    -4611686018427387968, //  -(2^62+2^6)  //# 089: compile-time error
+    -4611686018427388032, //  -(2^62+2^7)  //# 090: compile-time error
+    -4611686018427388160, //  -(2^62+2^8)  //# 091: compile-time error
+    -4611686018427388416, //  -(2^62+2^9)  //# 092: compile-time error
+    -9223372036854775807, //  -(2^63-2^0)  //# 093: compile-time error
+    -9223372036854775806, //  -(2^63-2^1)  //# 094: compile-time error
+    -9223372036854775804, //  -(2^63-2^2)  //# 095: compile-time error
+    -9223372036854775800, //  -(2^63-2^3)  //# 096: compile-time error
+    -9223372036854775792, //  -(2^63-2^4)  //# 097: compile-time error
+    -9223372036854775776, //  -(2^63-2^5)  //# 098: compile-time error
+    -9223372036854775744, //  -(2^63-2^6)  //# 099: compile-time error
+    -9223372036854775680, //  -(2^63-2^7)  //# 100: compile-time error
+    -9223372036854775552, //  -(2^63-2^8)  //# 101: compile-time error
+    -9223372036854775296, //  -(2^63-2^9)  //# 102: compile-time error
+    -9223372036854775809, //  -(2^63+2^0)  //# 103: compile-time error
+    -9223372036854775810, //  -(2^63+2^1)  //# 104: compile-time error
+    -9223372036854775812, //  -(2^63+2^2)  //# 105: compile-time error
+    -9223372036854775816, //  -(2^63+2^3)  //# 106: compile-time error
+    -9223372036854775824, //  -(2^63+2^4)  //# 107: compile-time error
+    -9223372036854775840, //  -(2^63+2^5)  //# 108: compile-time error
+    -9223372036854775872, //  -(2^63+2^6)  //# 109: compile-time error
+    -9223372036854775936, //  -(2^63+2^7)  //# 110: compile-time error
+    -9223372036854776064, //  -(2^63+2^8)  //# 111: compile-time error
+    -9223372036854776320, //  -(2^63+2^9)  //# 112: compile-time error
+    -9223372036854776832, //  -(2^63+2^10) //# 113: compile-time error
+    -18446744073709551615, // -(2^64-2^0)  //# 114: compile-time error
+    -18446744073709551614, // -(2^64-2^1)  //# 115: compile-time error
+    -18446744073709551612, // -(2^64-2^2)  //# 116: compile-time error
+    -18446744073709551608, // -(2^64-2^3)  //# 117: compile-time error
+    -18446744073709551600, // -(2^64-2^4)  //# 118: compile-time error
+    -18446744073709551584, // -(2^64-2^5)  //# 119: compile-time error
+    -18446744073709551552, // -(2^64-2^6)  //# 120: compile-time error
+    -18446744073709551488, // -(2^64-2^7)  //# 121: compile-time error
+    -18446744073709551360, // -(2^64-2^8)  //# 122: compile-time error
+    -18446744073709551104, // -(2^64-2^9)  //# 123: compile-time error
+    -18446744073709550592, // -(2^64-2^10) //# 124: compile-time error
+    -18446744073709551617, // -(2^64+2^0)  //# 125: compile-time error
+    -18446744073709551618, // -(2^64+2^1)  //# 126: compile-time error
+    -18446744073709551620, // -(2^64+2^2)  //# 127: compile-time error
+    -18446744073709551624, // -(2^64+2^3)  //# 128: compile-time error
+    -18446744073709551632, // -(2^64+2^4)  //# 129: compile-time error
+    -18446744073709551648, // -(2^64+2^5)  //# 130: compile-time error
+    -18446744073709551680, // -(2^64+2^6)  //# 131: compile-time error
+    -18446744073709551744, // -(2^64+2^7)  //# 132: compile-time error
+    -18446744073709551872, // -(2^64+2^8)  //# 133: compile-time error
+    -18446744073709552128, // -(2^64+2^9)  //# 134: compile-time error
+    -18446744073709552640, // -(2^64+2^10) //# 135: compile-time error
+    -18446744073709553664, // -(2^64+2^11) //# 136: compile-time error
+    -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858367, // -(maxValue - 1) //# 137 : compile-time error
+    -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858369, // -(maxValue + 1) //# 138 : compile-time error
+
+    // Same numbers as hexadecimal literals.
+    0x20000000000001, //    2^53+2^0      //# 139: compile-time error
+    0x3fffffffffffff, //    2^54-2^0      //# 140: compile-time error
+    0x40000000000001, //    2^54+2^0      //# 141: compile-time error
+    0x40000000000002, //    2^54+2^1      //# 142: compile-time error
+    0x3fffffffffffffff, //  2^62-2^0      //# 143: compile-time error
+    0x3ffffffffffffffe, //  2^62-2^1      //# 144: compile-time error
+    0x3ffffffffffffffc, //  2^62-2^2      //# 145: compile-time error
+    0x3ffffffffffffff8, //  2^62-2^3      //# 146: compile-time error
+    0x3ffffffffffffff0, //  2^62-2^4      //# 147: compile-time error
+    0x3fffffffffffffe0, //  2^62-2^5      //# 148: compile-time error
+    0x3fffffffffffffc0, //  2^62-2^6      //# 149: compile-time error
+    0x3fffffffffffff80, //  2^62-2^7      //# 150: compile-time error
+    0x3fffffffffffff00, //  2^62-2^8      //# 151: compile-time error
+    0x4000000000000001, //  2^62+2^0      //# 152: compile-time error
+    0x4000000000000002, //  2^62+2^1      //# 153: compile-time error
+    0x4000000000000004, //  2^62+2^2      //# 154: compile-time error
+    0x4000000000000008, //  2^62+2^3      //# 155: compile-time error
+    0x4000000000000010, //  2^62+2^4      //# 156: compile-time error
+    0x4000000000000020, //  2^62+2^5      //# 157: compile-time error
+    0x4000000000000040, //  2^62+2^6      //# 158: compile-time error
+    0x4000000000000080, //  2^62+2^7      //# 159: compile-time error
+    0x4000000000000100, //  2^62+2^8      //# 160: compile-time error
+    0x4000000000000200, //  2^62+2^9      //# 161: compile-time error
+    0x7fffffffffffffff, //  2^63-2^0      //# 162: compile-time error
+    0x7ffffffffffffffe, //  2^63-2^1      //# 163: compile-time error
+    0x7ffffffffffffffc, //  2^63-2^2      //# 164: compile-time error
+    0x7ffffffffffffff8, //  2^63-2^3      //# 165: compile-time error
+    0x7ffffffffffffff0, //  2^63-2^4      //# 166: compile-time error
+    0x7fffffffffffffe0, //  2^63-2^5      //# 167: compile-time error
+    0x7fffffffffffffc0, //  2^63-2^6      //# 168: compile-time error
+    0x7fffffffffffff80, //  2^63-2^7      //# 169: compile-time error
+    0x7fffffffffffff00, //  2^63-2^8      //# 170: compile-time error
+    0x7ffffffffffffe00, //  2^63-2^9      //# 171: compile-time error
+    0x8000000000000001, //  2^63+2^0      //# 172: compile-time error
+    0x8000000000000002, //  2^63+2^1      //# 173: compile-time error
+    0x8000000000000004, //  2^63+2^2      //# 174: compile-time error
+    0x8000000000000008, //  2^63+2^3      //# 175: compile-time error
+    0x8000000000000010, //  2^63+2^4      //# 176: compile-time error
+    0x8000000000000020, //  2^63+2^5      //# 177: compile-time error
+    0x8000000000000040, //  2^63+2^6      //# 178: compile-time error
+    0x8000000000000080, //  2^63+2^7      //# 179: compile-time error
+    0x8000000000000100, //  2^63+2^8      //# 180: compile-time error
+    0x8000000000000200, //  2^63+2^9      //# 181: compile-time error
+    0x8000000000000400, //  2^63+2^10     //# 182: compile-time error
+    0xffffffffffffffff, //  2^64-2^0      //# 183: compile-time error
+    0xfffffffffffffffe, //  2^64-2^1      //# 184: compile-time error
+    0xfffffffffffffffc, //  2^64-2^2      //# 185: compile-time error
+    0xfffffffffffffff8, //  2^64-2^3      //# 186: compile-time error
+    0xfffffffffffffff0, //  2^64-2^4      //# 187: compile-time error
+    0xffffffffffffffe0, //  2^64-2^5      //# 188: compile-time error
+    0xffffffffffffffc0, //  2^64-2^6      //# 189: compile-time error
+    0xffffffffffffff80, //  2^64-2^7      //# 190: compile-time error
+    0xffffffffffffff00, //  2^64-2^8      //# 191: compile-time error
+    0xfffffffffffffe00, //  2^64-2^9      //# 192: compile-time error
+    0xfffffffffffffc00, //  2^64-2^10     //# 193: compile-time error
+    0x10000000000000001, // 2^64+2^0      //# 194: compile-time error
+    0x10000000000000002, // 2^64+2^1      //# 195: compile-time error
+    0x10000000000000004, // 2^64+2^2      //# 196: compile-time error
+    0x10000000000000008, // 2^64+2^3      //# 197: compile-time error
+    0x10000000000000010, // 2^64+2^4      //# 198: compile-time error
+    0x10000000000000020, // 2^64+2^5      //# 199: compile-time error
+    0x10000000000000040, // 2^64+2^6      //# 200: compile-time error
+    0x10000000000000080, // 2^64+2^7      //# 201: compile-time error
+    0x10000000000000100, // 2^64+2^8      //# 202: compile-time error
+    0x10000000000000200, // 2^64+2^9      //# 203: compile-time error
+    0x10000000000000400, // 2^64+2^10     //# 204: compile-time error
+    0x10000000000000800, // 2^64+2^11     //# 205: compile-time error
+    0xfffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, // maxValue - 1 //# 206 : compile-time error
+    0xfffffffffffff800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001, // maxValue + 1 //# 207 : compile-time error
+
+    -0x20000000000001, //    -(2^53+2^0)      //# 208: compile-time error
+    -0x3fffffffffffff, //    -(2^54-2^0)      //# 209: compile-time error
+    -0x40000000000001, //    -(2^54+2^0)      //# 210: compile-time error
+    -0x40000000000002, //    -(2^54+2^1)      //# 211: compile-time error
+    -0x3fffffffffffffff, //  -(2^62-2^0)      //# 212: compile-time error
+    -0x3ffffffffffffffe, //  -(2^62-2^1)      //# 213: compile-time error
+    -0x3ffffffffffffffc, //  -(2^62-2^2)      //# 214: compile-time error
+    -0x3ffffffffffffff8, //  -(2^62-2^3)      //# 215: compile-time error
+    -0x3ffffffffffffff0, //  -(2^62-2^4)      //# 216: compile-time error
+    -0x3fffffffffffffe0, //  -(2^62-2^5)      //# 217: compile-time error
+    -0x3fffffffffffffc0, //  -(2^62-2^6)      //# 218: compile-time error
+    -0x3fffffffffffff80, //  -(2^62-2^7)      //# 219: compile-time error
+    -0x3fffffffffffff00, //  -(2^62-2^8)      //# 220: compile-time error
+    -0x4000000000000001, //  -(2^62+2^0)      //# 221: compile-time error
+    -0x4000000000000002, //  -(2^62+2^1)      //# 222: compile-time error
+    -0x4000000000000004, //  -(2^62+2^2)      //# 223: compile-time error
+    -0x4000000000000008, //  -(2^62+2^3)      //# 224: compile-time error
+    -0x4000000000000010, //  -(2^62+2^4)      //# 225: compile-time error
+    -0x4000000000000020, //  -(2^62+2^5)      //# 226: compile-time error
+    -0x4000000000000040, //  -(2^62+2^6)      //# 227: compile-time error
+    -0x4000000000000080, //  -(2^62+2^7)      //# 228: compile-time error
+    -0x4000000000000100, //  -(2^62+2^8)      //# 229: compile-time error
+    -0x4000000000000200, //  -(2^62+2^9)      //# 230: compile-time error
+    -0x7fffffffffffffff, //  -(2^63-2^0)      //# 231: compile-time error
+    -0x7ffffffffffffffe, //  -(2^63-2^1)      //# 232: compile-time error
+    -0x7ffffffffffffffc, //  -(2^63-2^2)      //# 233: compile-time error
+    -0x7ffffffffffffff8, //  -(2^63-2^3)      //# 234: compile-time error
+    -0x7ffffffffffffff0, //  -(2^63-2^4)      //# 235: compile-time error
+    -0x7fffffffffffffe0, //  -(2^63-2^5)      //# 236: compile-time error
+    -0x7fffffffffffffc0, //  -(2^63-2^6)      //# 237: compile-time error
+    -0x7fffffffffffff80, //  -(2^63-2^7)      //# 238: compile-time error
+    -0x7fffffffffffff00, //  -(2^63-2^8)      //# 239: compile-time error
+    -0x7ffffffffffffe00, //  -(2^63-2^9)      //# 240: compile-time error
+    -0x8000000000000001, //  -(2^63+2^0)      //# 241: compile-time error
+    -0x8000000000000002, //  -(2^63+2^1)      //# 242: compile-time error
+    -0x8000000000000004, //  -(2^63+2^2)      //# 243: compile-time error
+    -0x8000000000000008, //  -(2^63+2^3)      //# 244: compile-time error
+    -0x8000000000000010, //  -(2^63+2^4)      //# 245: compile-time error
+    -0x8000000000000020, //  -(2^63+2^5)      //# 246: compile-time error
+    -0x8000000000000040, //  -(2^63+2^6)      //# 247: compile-time error
+    -0x8000000000000080, //  -(2^63+2^7)      //# 248: compile-time error
+    -0x8000000000000100, //  -(2^63+2^8)      //# 249: compile-time error
+    -0x8000000000000200, //  -(2^63+2^9)      //# 250: compile-time error
+    -0x8000000000000400, //  -(2^63+2^10)     //# 251: compile-time error
+    -0xffffffffffffffff, //  -(2^64-2^0)      //# 252: compile-time error
+    -0xfffffffffffffffe, //  -(2^64-2^1)      //# 253: compile-time error
+    -0xfffffffffffffffc, //  -(2^64-2^2)      //# 254: compile-time error
+    -0xfffffffffffffff8, //  -(2^64-2^3)      //# 255: compile-time error
+    -0xfffffffffffffff0, //  -(2^64-2^4)      //# 256: compile-time error
+    -0xffffffffffffffe0, //  -(2^64-2^5)      //# 257: compile-time error
+    -0xffffffffffffffc0, //  -(2^64-2^6)      //# 258: compile-time error
+    -0xffffffffffffff80, //  -(2^64-2^7)      //# 259: compile-time error
+    -0xffffffffffffff00, //  -(2^64-2^8)      //# 260: compile-time error
+    -0xfffffffffffffe00, //  -(2^64-2^9)      //# 261: compile-time error
+    -0xfffffffffffffc00, //  -(2^64-2^10)     //# 262: compile-time error
+    -0x10000000000000001, // -(2^64+2^0)      //# 263: compile-time error
+    -0x10000000000000002, // -(2^64+2^1)      //# 264: compile-time error
+    -0x10000000000000004, // -(2^64+2^2)      //# 265: compile-time error
+    -0x10000000000000008, // -(2^64+2^3)      //# 266: compile-time error
+    -0x10000000000000010, // -(2^64+2^4)      //# 267: compile-time error
+    -0x10000000000000020, // -(2^64+2^5)      //# 268: compile-time error
+    -0x10000000000000040, // -(2^64+2^6)      //# 269: compile-time error
+    -0x10000000000000080, // -(2^64+2^7)      //# 270: compile-time error
+    -0x10000000000000100, // -(2^64+2^8)      //# 271: compile-time error
+    -0x10000000000000200, // -(2^64+2^9)      //# 272: compile-time error
+    -0x10000000000000400, // -(2^64+2^10)     //# 273: compile-time error
+    -0x10000000000000800, // -(2^64+2^11)     //# 274: compile-time error
+    -0xfffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, // -(maxValue - 1) //# 275 : compile-time error
+    -0xfffffffffffff800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001, // -(maxValue + 1) //# 276 : compile-time error
+  );
+}
diff --git a/tests/language_2/double_literals/double_literal_coercion_test.dart b/tests/language_2/double_literals/double_literal_coercion_test.dart
new file mode 100644
index 0000000..9c2cc91
--- /dev/null
+++ b/tests/language_2/double_literals/double_literal_coercion_test.dart
@@ -0,0 +1,142 @@
+// 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.
+
+import "package:expect/expect.dart";
+
+// Pass expected value and then decimal literal value in a double context.
+void expectDouble(double expectedValue, double actualValue) {
+  if (expectedValue == null) return;
+  Expect.identical(expectedValue, actualValue);
+}
+
+// Some exact powers of two as double values.
+double p2_8 = 256.0;
+double p2_30 = 1073741824.0;
+double p2_31 = 2147483648.0;
+double p2_32 = 4294967296.0;
+double p2_52 = 4503599627370496.0;
+double p2_53 = 9007199254740992.0;
+double p2_54 = 18014398509481984.0;
+double p2_62 = 4611686018427387904.0;
+double p2_63 = 9223372036854775808.0;
+double p2_64 = 18446744073709551616.0;
+double maxValue = 1.7976931348623157e+308;
+
+main() {
+  expectDouble(0.0, 0);
+  expectDouble(1.0, 1);
+  expectDouble(p2_8 - 1, 255);
+  expectDouble(p2_8, 256);
+  expectDouble(p2_8 + 1, 257);
+  expectDouble(p2_30 - 1, 1073741823);
+  expectDouble(p2_30, 1073741824);
+  expectDouble(p2_30 + 1, 1073741825);
+  expectDouble(p2_31 - 1, 2147483647);
+  expectDouble(p2_31, 2147483648);
+  expectDouble(p2_31 + 1, 2147483649);
+  expectDouble(p2_32 - 1, 4294967295);
+  expectDouble(p2_32, 4294967296);
+  expectDouble(p2_32 + 1, 4294967297);
+  expectDouble(p2_52 - 1, 4503599627370495);
+  expectDouble(p2_52, 4503599627370496);
+  expectDouble(p2_52 + 1, 4503599627370497);
+  expectDouble(p2_53 - 1, 9007199254740991);
+  expectDouble(p2_53, 9007199254740992);
+  expectDouble(p2_53 + 2, 9007199254740994);
+  expectDouble(p2_54 - 2, 18014398509481982);
+  expectDouble(p2_54, 18014398509481984);
+  expectDouble(p2_54 + 4, 18014398509481988);
+  expectDouble(p2_62, 4611686018427387904);
+  expectDouble(p2_63, 9223372036854775808);
+  expectDouble(p2_64, 18446744073709551616);
+  expectDouble(maxValue,
+      179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368);
+
+  expectDouble(-0.0, -0);
+  expectDouble(-1.0, -1);
+  expectDouble(-(p2_8 - 1), -255);
+  expectDouble(-(p2_8), -256);
+  expectDouble(-(p2_8 + 1), -257);
+  expectDouble(-(p2_30 - 1), -1073741823);
+  expectDouble(-(p2_30), -1073741824);
+  expectDouble(-(p2_30 + 1), -1073741825);
+  expectDouble(-(p2_31 - 1), -2147483647);
+  expectDouble(-(p2_31), -2147483648);
+  expectDouble(-(p2_31 + 1), -2147483649);
+  expectDouble(-(p2_32 - 1), -4294967295);
+  expectDouble(-(p2_32), -4294967296);
+  expectDouble(-(p2_32 + 1), -4294967297);
+  expectDouble(-(p2_52 - 1), -4503599627370495);
+  expectDouble(-(p2_52), -4503599627370496);
+  expectDouble(-(p2_52 + 1), -4503599627370497);
+  expectDouble(-(p2_53 - 1), -9007199254740991);
+  expectDouble(-(p2_53), -9007199254740992);
+  expectDouble(-(p2_53 + 2), -9007199254740994);
+  expectDouble(-(p2_54 - 2), -18014398509481982);
+  expectDouble(-(p2_54), -18014398509481984);
+  expectDouble(-(p2_54 + 4), -18014398509481988);
+  expectDouble(-(p2_62), -4611686018427387904);
+  expectDouble(-(p2_63), -9223372036854775808);
+  expectDouble(-(p2_64), -18446744073709551616);
+  expectDouble(-maxValue,
+      -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368);
+
+  expectDouble(0.0, 0x0);
+  expectDouble(1.0, 0x1);
+  expectDouble(p2_8 - 1, 0xff);
+  expectDouble(p2_8, 0x100);
+  expectDouble(p2_8 + 1, 0x101);
+  expectDouble(p2_30 - 1, 0x3fffffff);
+  expectDouble(p2_30, 0x40000000);
+  expectDouble(p2_30 + 1, 0x40000001);
+  expectDouble(p2_31 - 1, 0x7fffffff);
+  expectDouble(p2_31, 0x80000000);
+  expectDouble(p2_31 + 1, 0x80000001);
+  expectDouble(p2_32 - 1, 0xffffffff);
+  expectDouble(p2_32, 0x100000000);
+  expectDouble(p2_32 + 1, 0x100000001);
+  expectDouble(p2_52 - 1, 0xfffffffffffff);
+  expectDouble(p2_52, 0x10000000000000);
+  expectDouble(p2_52 + 1, 0x10000000000001);
+  expectDouble(p2_53 - 1, 0x1fffffffffffff);
+  expectDouble(p2_53, 0x20000000000000);
+  expectDouble(p2_53 + 2, 0x20000000000002);
+  expectDouble(p2_54 - 2, 0x3ffffffffffffe);
+  expectDouble(p2_54, 0x40000000000000);
+  expectDouble(p2_54 + 4, 0x40000000000004);
+  expectDouble(p2_62, 0x4000000000000000);
+  expectDouble(p2_63, 0x8000000000000000);
+  expectDouble(p2_64, 0x10000000000000000);
+  expectDouble(maxValue,
+      0xfffffffffffff80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000);
+
+  expectDouble(-0.0, -0x0);
+  expectDouble(-1.0, -0x1);
+  expectDouble(-(p2_8 - 1), -0xff);
+  expectDouble(-(p2_8), -0x100);
+  expectDouble(-(p2_8 + 1), -0x101);
+  expectDouble(-(p2_30 - 1), -0x3fffffff);
+  expectDouble(-(p2_30), -0x40000000);
+  expectDouble(-(p2_30 + 1), -0x40000001);
+  expectDouble(-(p2_31 - 1), -0x7fffffff);
+  expectDouble(-(p2_31), -0x80000000);
+  expectDouble(-(p2_31 + 1), -0x80000001);
+  expectDouble(-(p2_32 - 1), -0xffffffff);
+  expectDouble(-(p2_32), -0x100000000);
+  expectDouble(-(p2_32 + 1), -0x100000001);
+  expectDouble(-(p2_52 - 1), -0xfffffffffffff);
+  expectDouble(-(p2_52), -0x10000000000000);
+  expectDouble(-(p2_52 + 1), -0x10000000000001);
+  expectDouble(-(p2_53 - 1), -0x1fffffffffffff);
+  expectDouble(-(p2_53), -0x20000000000000);
+  expectDouble(-(p2_53 + 2), -0x20000000000002);
+  expectDouble(-(p2_54 - 2), -0x3ffffffffffffe);
+  expectDouble(-(p2_54), -0x40000000000000);
+  expectDouble(-(p2_54 + 4), -0x40000000000004);
+  expectDouble(-(p2_62), -0x4000000000000000);
+  expectDouble(-(p2_63), -0x8000000000000000);
+  expectDouble(-(p2_64), -0x10000000000000000);
+  expectDouble(-maxValue,
+      -0xfffffffffffff80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000);
+}
diff --git a/tests/language_2/language_2.status b/tests/language_2/language_2.status
index 6a491e4..f4293613 100644
--- a/tests/language_2/language_2.status
+++ b/tests/language_2/language_2.status
@@ -11,14 +11,22 @@
 [ $compiler == app_jit ]
 deferred_inheritance_constraints_test/redirecting_constructor: Crash
 
+[ $compiler == dart2analyzer ]
+double_literals/*: Skip # https://github.com/dart-lang/sdk/issues/34360
+
 [ $compiler != dart2analyzer ]
 switch_case_warn_test: Skip # Analyzer only, see language_analyzer2.status
 
 [ $compiler == dart2js ]
+double_literals/*: Skip # https://github.com/dart-lang/sdk/issues/34356
 invalid_returns/*: Skip # https://github.com/dart-lang/sdk/issues/34011
 void/*: Skip # https://github.com/dart-lang/sdk/issues/34011
 
+[ $compiler == fasta ]
+double_literals/*: Skip # https://github.com/dart-lang/sdk/issues/34357
+
 [ $compiler == spec_parser ]
+double_literals/*: Skip # https://github.com/dart-lang/sdk/issues/34355
 invalid_returns/*: Skip # https://github.com/dart-lang/sdk/issues/34015
 void/*: Skip # https://github.com/dart-lang/sdk/issues/34015
 
@@ -207,11 +215,17 @@
 [ $checked && !$strong ]
 type_parameter_test/05: Pass
 
+[ $compiler == app_jit || $compiler == app_jitk || $compiler == dartk || $compiler == dartkb || $compiler == dartkp || $compiler == none || $compiler == precompiler ]
+double_literals/*: Skip # https://github.com/dart-lang/sdk/issues/34358
+
 [ $compiler == app_jit || $compiler == none ]
 invalid_returns/*: Skip # https://github.com/dart-lang/sdk/issues/34013
 library_env_test/has_no_mirror_support: RuntimeError, OK
 void/*: Skip # https://github.com/dart-lang/sdk/issues/34013
 
+[ $compiler == dartdevc || $compiler == dartdevk ]
+double_literals/*: Skip # https://github.com/dart-lang/sdk/issues/34359
+
 [ $hot_reload || $hot_reload_rollback ]
 cha_deopt1_test: Crash # Requires deferred libraries
 cha_deopt2_test: Crash # Requires deferred libraries