Stabilize i128_type

This commit is contained in:
Mark Mansi 2018-03-16 19:51:49 -05:00
parent 5e4603f990
commit 7ce8191775
46 changed files with 37 additions and 147 deletions

View file

@ -10,7 +10,7 @@
#![deny(warnings)] #![deny(warnings)]
#![feature(i128_type)] #![cfg_attr(stage0, feature(i128_type))]
#![feature(rand)] #![feature(rand)]
#![feature(repr_simd)] #![feature(repr_simd)]
#![feature(test)] #![feature(test)]

View file

@ -97,7 +97,7 @@
#![feature(from_ref)] #![feature(from_ref)]
#![feature(fundamental)] #![feature(fundamental)]
#![feature(generic_param_attrs)] #![feature(generic_param_attrs)]
#![feature(i128_type)] #![cfg_attr(stage0, feature(i128_type))]
#![feature(iter_rfold)] #![feature(iter_rfold)]
#![feature(lang_items)] #![feature(lang_items)]
#![feature(needs_allocator)] #![feature(needs_allocator)]

View file

@ -78,7 +78,7 @@
#![feature(doc_spotlight)] #![feature(doc_spotlight)]
#![feature(fn_must_use)] #![feature(fn_must_use)]
#![feature(fundamental)] #![feature(fundamental)]
#![feature(i128_type)] #![cfg_attr(stage0, feature(i128_type))]
#![cfg_attr(stage0, feature(inclusive_range_syntax))] #![cfg_attr(stage0, feature(inclusive_range_syntax))]
#![feature(intrinsics)] #![feature(intrinsics)]
#![feature(iterator_flatten)] #![feature(iterator_flatten)]

View file

@ -1635,8 +1635,7 @@ impl i64 {
#[lang = "i128"] #[lang = "i128"]
impl i128 { impl i128 {
int_impl! { i128, i128, u128, 128, -170141183460469231731687303715884105728, int_impl! { i128, i128, u128, 128, -170141183460469231731687303715884105728,
170141183460469231731687303715884105727, "#![feature(i128_type)] 170141183460469231731687303715884105727, "#![feature(i128)]
#![feature(i128)]
# fn main() { # fn main() {
", " ", "
# }" } # }" }
@ -3493,8 +3492,7 @@ impl u64 {
#[lang = "u128"] #[lang = "u128"]
impl u128 { impl u128 {
uint_impl! { u128, u128, 128, 340282366920938463463374607431768211455, "#![feature(i128_type)] uint_impl! { u128, u128, 128, 340282366920938463463374607431768211455, "#![feature(i128)]
#![feature(i128)]
# fn main() { # fn main() {
", " ", "

View file

@ -23,7 +23,7 @@
#![feature(fmt_internals)] #![feature(fmt_internals)]
#![feature(hashmap_internals)] #![feature(hashmap_internals)]
#![feature(iterator_step_by)] #![feature(iterator_step_by)]
#![feature(i128_type)] #![cfg_attr(stage0, feature(i128_type))]
#![cfg_attr(stage0, feature(inclusive_range_syntax))] #![cfg_attr(stage0, feature(inclusive_range_syntax))]
#![feature(iterator_try_fold)] #![feature(iterator_try_fold)]
#![feature(iterator_flatten)] #![feature(iterator_flatten)]

View file

@ -34,7 +34,7 @@
test(no_crate_inject, attr(deny(warnings))), test(no_crate_inject, attr(deny(warnings))),
test(attr(allow(dead_code, deprecated, unused_variables, unused_mut))))] test(attr(allow(dead_code, deprecated, unused_variables, unused_mut))))]
#![feature(i128_type)] #![cfg_attr(stage0, feature(i128_type))]
#![feature(rustc_private)] #![feature(rustc_private)]
#![feature(staged_api)] #![feature(staged_api)]
#![feature(lang_items)] #![feature(lang_items)]

View file

@ -53,7 +53,7 @@
#![feature(from_ref)] #![feature(from_ref)]
#![feature(fs_read_write)] #![feature(fs_read_write)]
#![feature(i128)] #![feature(i128)]
#![feature(i128_type)] #![cfg_attr(stage0, feature(i128_type))]
#![cfg_attr(stage0, feature(inclusive_range_syntax))] #![cfg_attr(stage0, feature(inclusive_range_syntax))]
#![cfg_attr(windows, feature(libc))] #![cfg_attr(windows, feature(libc))]
#![feature(match_default_bindings)] #![feature(match_default_bindings)]

View file

@ -46,8 +46,8 @@
#![deny(warnings)] #![deny(warnings)]
#![forbid(unsafe_code)] #![forbid(unsafe_code)]
#![feature(i128_type)]
#![cfg_attr(stage0, feature(slice_patterns))] #![cfg_attr(stage0, feature(slice_patterns))]
#![cfg_attr(stage0, feature(i128_type))]
#![feature(try_from)] #![feature(try_from)]
// See librustc_cratesio_shim/Cargo.toml for a comment explaining this. // See librustc_cratesio_shim/Cargo.toml for a comment explaining this.

View file

@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
#![feature(i128_type)] #![cfg_attr(stage0, feature(i128_type))]
#[macro_use] #[macro_use]
extern crate rustc_apfloat; extern crate rustc_apfloat;

View file

@ -23,7 +23,7 @@
#![feature(box_patterns)] #![feature(box_patterns)]
#![feature(box_syntax)] #![feature(box_syntax)]
#![feature(macro_lifetime_matcher)] #![feature(macro_lifetime_matcher)]
#![feature(i128_type)] #![cfg_attr(stage0, feature(i128_type))]
#![feature(from_ref)] #![feature(from_ref)]
extern crate arena; extern crate arena;

View file

@ -20,7 +20,7 @@
#![deny(warnings)] #![deny(warnings)]
#![feature(i128)] #![feature(i128)]
#![feature(i128_type)] #![cfg_attr(stage0, feature(i128_type))]
extern crate rustc_apfloat; extern crate rustc_apfloat;

View file

@ -26,7 +26,7 @@
#![feature(unboxed_closures)] #![feature(unboxed_closures)]
#![feature(fn_traits)] #![feature(fn_traits)]
#![feature(unsize)] #![feature(unsize)]
#![feature(i128_type)] #![cfg_attr(stage0, feature(i128_type))]
#![feature(i128)] #![feature(i128)]
#![cfg_attr(stage0, feature(conservative_impl_trait))] #![cfg_attr(stage0, feature(conservative_impl_trait))]
#![feature(specialization)] #![feature(specialization)]

View file

@ -18,7 +18,7 @@
#![feature(range_contains)] #![feature(range_contains)]
#![cfg_attr(unix, feature(libc))] #![cfg_attr(unix, feature(libc))]
#![cfg_attr(stage0, feature(conservative_impl_trait))] #![cfg_attr(stage0, feature(conservative_impl_trait))]
#![feature(i128_type)] #![cfg_attr(stage0, feature(i128_type))]
#![feature(optin_builtin_traits)] #![feature(optin_builtin_traits)]
extern crate atty; extern crate atty;

View file

@ -17,7 +17,7 @@
#![cfg_attr(stage0, feature(conservative_impl_trait))] #![cfg_attr(stage0, feature(conservative_impl_trait))]
#![feature(fs_read_write)] #![feature(fs_read_write)]
#![feature(i128_type)] #![cfg_attr(stage0, feature(i128_type))]
#![cfg_attr(stage0, feature(inclusive_range_syntax))] #![cfg_attr(stage0, feature(inclusive_range_syntax))]
#![feature(specialization)] #![feature(specialization)]

View file

@ -27,7 +27,7 @@
#![cfg_attr(test, feature(test))] #![cfg_attr(test, feature(test))]
#![feature(box_patterns)] #![feature(box_patterns)]
#![feature(box_syntax)] #![feature(box_syntax)]
#![feature(i128_type)] #![cfg_attr(stage0, feature(i128_type))]
#![feature(macro_vis_matcher)] #![feature(macro_vis_matcher)]
#![feature(quote)] #![feature(quote)]
#![feature(rustc_diagnostic_macros)] #![feature(rustc_diagnostic_macros)]

View file

@ -16,7 +16,7 @@
#![feature(box_patterns)] #![feature(box_patterns)]
#![cfg_attr(stage0, feature(conservative_impl_trait))] #![cfg_attr(stage0, feature(conservative_impl_trait))]
#![feature(fs_read_write)] #![feature(fs_read_write)]
#![feature(i128_type)] #![cfg_attr(stage0, feature(i128_type))]
#![feature(libc)] #![feature(libc)]
#![feature(macro_lifetime_matcher)] #![feature(macro_lifetime_matcher)]
#![feature(proc_macro_internals)] #![feature(proc_macro_internals)]

View file

@ -27,7 +27,7 @@ Rust MIR: a lowered representation of Rust. Also: an experiment!
#![feature(decl_macro)] #![feature(decl_macro)]
#![feature(dyn_trait)] #![feature(dyn_trait)]
#![feature(fs_read_write)] #![feature(fs_read_write)]
#![feature(i128_type)] #![cfg_attr(stage0, feature(i128_type))]
#![cfg_attr(stage0, feature(inclusive_range_syntax))] #![cfg_attr(stage0, feature(inclusive_range_syntax))]
#![feature(macro_vis_matcher)] #![feature(macro_vis_matcher)]
#![feature(match_default_bindings)] #![feature(match_default_bindings)]

View file

@ -3117,17 +3117,6 @@ impl<'a> Resolver<'a> {
self.primitive_type_table.primitive_types self.primitive_type_table.primitive_types
.contains_key(&path[0].node.name) => { .contains_key(&path[0].node.name) => {
let prim = self.primitive_type_table.primitive_types[&path[0].node.name]; let prim = self.primitive_type_table.primitive_types[&path[0].node.name];
match prim {
TyUint(UintTy::U128) | TyInt(IntTy::I128) => {
if !self.session.features_untracked().i128_type {
emit_feature_err(&self.session.parse_sess,
"i128_type", span, GateIssue::Language,
"128-bit type is unstable");
}
}
_ => {}
}
PathResolution::with_unresolved_segments(Def::PrimTy(prim), path.len() - 1) PathResolution::with_unresolved_segments(Def::PrimTy(prim), path.len() - 1)
} }
PathResult::Module(module) => PathResolution::new(module.def().unwrap()), PathResult::Module(module) => PathResolution::new(module.def().unwrap()),

View file

@ -24,7 +24,7 @@
#![feature(custom_attribute)] #![feature(custom_attribute)]
#![feature(fs_read_write)] #![feature(fs_read_write)]
#![allow(unused_attributes)] #![allow(unused_attributes)]
#![feature(i128_type)] #![cfg_attr(stage0, feature(i128_type))]
#![feature(i128)] #![feature(i128)]
#![cfg_attr(stage0, feature(inclusive_range_syntax))] #![cfg_attr(stage0, feature(inclusive_range_syntax))]
#![feature(libc)] #![feature(libc)]

View file

@ -21,7 +21,7 @@
#![feature(box_syntax)] #![feature(box_syntax)]
#![feature(custom_attribute)] #![feature(custom_attribute)]
#![allow(unused_attributes)] #![allow(unused_attributes)]
#![feature(i128_type)] #![cfg_attr(stage0, feature(i128_type))]
#![feature(quote)] #![feature(quote)]
#![feature(rustc_diagnostic_macros)] #![feature(rustc_diagnostic_macros)]
#![cfg_attr(stage0, feature(conservative_impl_trait))] #![cfg_attr(stage0, feature(conservative_impl_trait))]

View file

@ -86,7 +86,7 @@ This API is completely unstable and subject to change.
#![feature(refcell_replace_swap)] #![feature(refcell_replace_swap)]
#![feature(rustc_diagnostic_macros)] #![feature(rustc_diagnostic_macros)]
#![feature(slice_patterns)] #![feature(slice_patterns)]
#![feature(i128_type)] #![cfg_attr(stage0, feature(i128_type))]
#![cfg_attr(stage0, feature(never_type))] #![cfg_attr(stage0, feature(never_type))]
#[macro_use] extern crate log; #[macro_use] extern crate log;

View file

@ -23,7 +23,7 @@ Core encoding and decoding interfaces.
#![feature(box_syntax)] #![feature(box_syntax)]
#![feature(core_intrinsics)] #![feature(core_intrinsics)]
#![feature(i128_type)] #![cfg_attr(stage0, feature(i128_type))]
#![feature(specialization)] #![feature(specialization)]
#![cfg_attr(test, feature(test))] #![cfg_attr(test, feature(test))]

View file

@ -270,7 +270,7 @@
#![feature(hashmap_internals)] #![feature(hashmap_internals)]
#![feature(heap_api)] #![feature(heap_api)]
#![feature(i128)] #![feature(i128)]
#![feature(i128_type)] #![cfg_attr(stage0, feature(i128_type))]
#![feature(int_error_internals)] #![feature(int_error_internals)]
#![feature(integer_atomics)] #![feature(integer_atomics)]
#![feature(into_cow)] #![feature(into_cow)]

View file

@ -303,9 +303,6 @@ declare_features! (
// `extern "ptx-*" fn()` // `extern "ptx-*" fn()`
(active, abi_ptx, "1.15.0", None, None), (active, abi_ptx, "1.15.0", None, None),
// The `i128` type
(active, i128_type, "1.16.0", Some(35118), None),
// The `repr(i128)` annotation for enums // The `repr(i128)` annotation for enums
(active, repr128, "1.16.0", Some(35118), None), (active, repr128, "1.16.0", Some(35118), None),
@ -564,6 +561,8 @@ declare_features! (
(accepted, universal_impl_trait, "1.26.0", Some(34511), None), (accepted, universal_impl_trait, "1.26.0", Some(34511), None),
// Allows `impl Trait` in function return types. // Allows `impl Trait` in function return types.
(accepted, conservative_impl_trait, "1.26.0", Some(34511), None), (accepted, conservative_impl_trait, "1.26.0", Some(34511), None),
// The `i128` type
(accepted, i128_type, "1.26.0", Some(35118), None),
); );
// If you change this, please modify src/doc/unstable-book as well. You must // If you change this, please modify src/doc/unstable-book as well. You must
@ -1641,18 +1640,6 @@ impl<'a> Visitor<'a> for PostExpansionVisitor<'a> {
e.span, e.span,
"yield syntax is experimental"); "yield syntax is experimental");
} }
ast::ExprKind::Lit(ref lit) => {
if let ast::LitKind::Int(_, ref ty) = lit.node {
match *ty {
ast::LitIntType::Signed(ast::IntTy::I128) |
ast::LitIntType::Unsigned(ast::UintTy::U128) => {
gate_feature_post!(&self, i128_type, e.span,
"128-bit integers are not stable");
}
_ => {}
}
}
}
ast::ExprKind::Catch(_) => { ast::ExprKind::Catch(_) => {
gate_feature_post!(&self, catch_expr, e.span, "`catch` expression is experimental"); gate_feature_post!(&self, catch_expr, e.span, "`catch` expression is experimental");
} }

View file

@ -24,7 +24,7 @@
#![feature(rustc_diagnostic_macros)] #![feature(rustc_diagnostic_macros)]
#![feature(match_default_bindings)] #![feature(match_default_bindings)]
#![feature(non_exhaustive)] #![feature(non_exhaustive)]
#![feature(i128_type)] #![cfg_attr(stage0, feature(i128_type))]
#![feature(const_atomic_usize_new)] #![feature(const_atomic_usize_new)]
#![feature(rustc_attrs)] #![feature(rustc_attrs)]

View file

@ -21,7 +21,7 @@
#![feature(const_fn)] #![feature(const_fn)]
#![feature(custom_attribute)] #![feature(custom_attribute)]
#![feature(i128_type)] #![cfg_attr(stage0, feature(i128_type))]
#![feature(optin_builtin_traits)] #![feature(optin_builtin_traits)]
#![allow(unused_attributes)] #![allow(unused_attributes)]
#![feature(specialization)] #![feature(specialization)]

View file

@ -14,7 +14,6 @@
// -Z saturating-float-casts is not enabled. // -Z saturating-float-casts is not enabled.
#![crate_type = "lib"] #![crate_type = "lib"]
#![feature(i128_type)]
// CHECK-LABEL: @f32_to_u32 // CHECK-LABEL: @f32_to_u32
#[no_mangle] #[no_mangle]

View file

@ -15,7 +15,6 @@
// compile-flags: -Z lower_128bit_ops=yes -C debug_assertions=yes // compile-flags: -Z lower_128bit_ops=yes -C debug_assertions=yes
#![feature(i128_type)]
#![feature(const_fn)] #![feature(const_fn)]
static TEST_SIGNED: i128 = const_signed(-222); static TEST_SIGNED: i128 = const_signed(-222);

View file

@ -15,7 +15,6 @@
// compile-flags: -Z lower_128bit_ops=yes -C debug_assertions=no // compile-flags: -Z lower_128bit_ops=yes -C debug_assertions=no
#![feature(i128_type)]
#![feature(const_fn)] #![feature(const_fn)]
static TEST_SIGNED: i128 = const_signed(-222); static TEST_SIGNED: i128 = const_signed(-222);

View file

@ -10,7 +10,6 @@
// ignore-emscripten no i128 support // ignore-emscripten no i128 support
#![feature(i128_type)]
#![deny(const_err)] #![deny(const_err)]
use std::{f32, f64}; use std::{f32, f64};

View file

@ -15,8 +15,6 @@
// ignore-windows // ignore-windows
// ignore-32bit // ignore-32bit
#![feature(i128_type)]
#[link(name = "rust_test_helpers", kind = "static")] #[link(name = "rust_test_helpers", kind = "static")]
extern "C" { extern "C" {
fn identity(f: u128) -> u128; fn identity(f: u128) -> u128;

View file

@ -12,7 +12,7 @@
// compile-flags: -Z borrowck=compare // compile-flags: -Z borrowck=compare
#![feature(i128_type, test)] #![feature(test)]
extern crate test; extern crate test;
use test::black_box as b; use test::black_box as b;

View file

@ -10,7 +10,7 @@
// ignore-emscripten no i128 support // ignore-emscripten no i128 support
#![feature(intrinsics, i128_type)] #![feature(intrinsics)]
mod rusti { mod rusti {
extern "rust-intrinsic" { extern "rust-intrinsic" {

View file

@ -10,8 +10,6 @@
// ignore-emscripten // ignore-emscripten
#![feature(i128_type)]
#[repr(C)] #[repr(C)]
pub struct Foo(i128); pub struct Foo(i128);

View file

@ -7,7 +7,6 @@
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
#![feature(i128_type)]
fn main() { fn main() {
let _ = -0x8000_0000_0000_0000_0000_0000_0000_0000i128; let _ = -0x8000_0000_0000_0000_0000_0000_0000_0000i128;

View file

@ -12,8 +12,6 @@
// ignore-wasm32-bare compiled with panic=abort by default // ignore-wasm32-bare compiled with panic=abort by default
// ignore-emscripten dies with an LLVM error // ignore-emscripten dies with an LLVM error
#![feature(i128_type)]
use std::panic; use std::panic;
fn main() { fn main() {

View file

@ -11,8 +11,6 @@
// compile-flags: -C debug_assertions=no // compile-flags: -C debug_assertions=no
// ignore-emscripten dies with an LLVM error // ignore-emscripten dies with an LLVM error
#![feature(i128_type)]
fn main() { fn main() {
for i in 129..256 { for i in 129..256 {
assert_eq!((i as u8).next_power_of_two(), 0); assert_eq!((i as u8).next_power_of_two(), 0);

View file

@ -11,7 +11,7 @@
// Tests saturating float->int casts. See u128-as-f32.rs for the opposite direction. // Tests saturating float->int casts. See u128-as-f32.rs for the opposite direction.
// compile-flags: -Z saturating-float-casts // compile-flags: -Z saturating-float-casts
#![feature(test, i128, i128_type, stmt_expr_attributes)] #![feature(test, i128, stmt_expr_attributes)]
#![deny(overflowing_literals)] #![deny(overflowing_literals)]
extern crate test; extern crate test;

View file

@ -10,7 +10,7 @@
// ignore-emscripten u128 not supported // ignore-emscripten u128 not supported
#![feature(test, i128, i128_type)] #![feature(test, i128)]
#![deny(overflowing_literals)] #![deny(overflowing_literals)]
extern crate test; extern crate test;

View file

@ -12,7 +12,7 @@
// compile-flags: -Z borrowck=compare // compile-flags: -Z borrowck=compare
#![feature(i128_type, test)] #![feature(test)]
extern crate test; extern crate test;
use test::black_box as b; use test::black_box as b;

View file

@ -1,18 +0,0 @@
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
fn test2() {
0i128; //~ ERROR 128-bit integers are not stable
}
fn test2_2() {
0u128; //~ ERROR 128-bit integers are not stable
}

View file

@ -1,19 +0,0 @@
error[E0658]: 128-bit integers are not stable (see issue #35118)
--> $DIR/feature-gate-i128_type.rs:12:5
|
LL | 0i128; //~ ERROR 128-bit integers are not stable
| ^^^^^
|
= help: add #![feature(i128_type)] to the crate attributes to enable
error[E0658]: 128-bit integers are not stable (see issue #35118)
--> $DIR/feature-gate-i128_type.rs:16:5
|
LL | 0u128; //~ ERROR 128-bit integers are not stable
| ^^^^^
|
= help: add #![feature(i128_type)] to the crate attributes to enable
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0658`.

View file

@ -10,20 +10,20 @@
// gate-test-i128_type // gate-test-i128_type
fn test1() -> i128 { //~ ERROR 128-bit type is unstable fn test1() -> i128 {
0 0
} }
fn test1_2() -> u128 { //~ ERROR 128-bit type is unstable fn test1_2() -> u128 {
0 0
} }
fn test3() { fn test3() {
let x: i128 = 0; //~ ERROR 128-bit type is unstable let x: i128 = 0;
} }
fn test3_2() { fn test3_2() {
let x: u128 = 0; //~ ERROR 128-bit type is unstable let x: u128 = 0;
} }
#[repr(u128)] #[repr(u128)]

View file

@ -1,35 +1,3 @@
error[E0658]: 128-bit type is unstable (see issue #35118)
--> $DIR/feature-gate-i128_type2.rs:13:15
|
LL | fn test1() -> i128 { //~ ERROR 128-bit type is unstable
| ^^^^
|
= help: add #![feature(i128_type)] to the crate attributes to enable
error[E0658]: 128-bit type is unstable (see issue #35118)
--> $DIR/feature-gate-i128_type2.rs:17:17
|
LL | fn test1_2() -> u128 { //~ ERROR 128-bit type is unstable
| ^^^^
|
= help: add #![feature(i128_type)] to the crate attributes to enable
error[E0658]: 128-bit type is unstable (see issue #35118)
--> $DIR/feature-gate-i128_type2.rs:22:12
|
LL | let x: i128 = 0; //~ ERROR 128-bit type is unstable
| ^^^^
|
= help: add #![feature(i128_type)] to the crate attributes to enable
error[E0658]: 128-bit type is unstable (see issue #35118)
--> $DIR/feature-gate-i128_type2.rs:26:12
|
LL | let x: u128 = 0; //~ ERROR 128-bit type is unstable
| ^^^^
|
= help: add #![feature(i128_type)] to the crate attributes to enable
error[E0658]: repr with 128-bit type is unstable (see issue #35118) error[E0658]: repr with 128-bit type is unstable (see issue #35118)
--> $DIR/feature-gate-i128_type2.rs:30:1 --> $DIR/feature-gate-i128_type2.rs:30:1
| |

View file

@ -9,7 +9,7 @@
// except according to those terms. // except according to those terms.
#![deny(improper_ctypes)] #![deny(improper_ctypes)]
#![feature(libc, i128_type, repr_transparent)] #![feature(libc, repr_transparent)]
extern crate libc; extern crate libc;

View file

@ -10,8 +10,6 @@
// must-compile-successfully // must-compile-successfully
#![feature(i128_type)]
fn main() { fn main() {
let error = 255i8; //~WARNING literal out of range for i8 let error = 255i8; //~WARNING literal out of range for i8