オーバーフロー

デバッグモードでコンパイルされていれば整数演算子はオーバーフロー時にパニックする。-C debug-assertions-C overflow-checks コンパイラフラグはこれをより直接的に制御するのに使用できる。以下の事象はオーバーフローとみなされる:

ⓘ 参考

単項演算子 - の背後にあるリテラル式の例外は -128_i8let j:i8 = -(128) のような書式は決してパニックせず期待通りの値 -128 となる事を意味する。

これらの場合、リテラル式はすでにその型の最負値をすでに持っている (例えば、128_i8 は -128 を持つ) なぜなら整数リテラルは整数リテラル式の説明の通りそれらの型へと切り詰められる。

2の補数方式のオーバーフロー規則のためこれらの最負値を否定しても値は変化のないままである。

rustc では、これらの最負値の式は overflowing_literals リントにより無視される。