From 7682e87c6d29520dfdea6a2a772c31150dbfa7d4 Mon Sep 17 00:00:00 2001 From: Fabian Wolff Date: Sat, 26 Jun 2021 16:05:53 +0200 Subject: Fix ICE with `-Zunpretty=hir,typed` when an expression occurs in a function signature --- src/test/ui/unpretty-expr-fn-arg.rs | 13 +++++++++++++ src/test/ui/unpretty-expr-fn-arg.stdout | 17 +++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 src/test/ui/unpretty-expr-fn-arg.rs create mode 100644 src/test/ui/unpretty-expr-fn-arg.stdout (limited to 'src/test') diff --git a/src/test/ui/unpretty-expr-fn-arg.rs b/src/test/ui/unpretty-expr-fn-arg.rs new file mode 100644 index 00000000000..fd8eee44a9f --- /dev/null +++ b/src/test/ui/unpretty-expr-fn-arg.rs @@ -0,0 +1,13 @@ +// Regression test for the ICE described in #82328. The pretty-printer for +// compile-flags: -Zunpretty=hir,typed +// would previously retrieve type-checking results when entering a body, +// which means that type information was not available for expressions +// occurring in function signatures, as in the `foo` example below, leading +// to an ICE. + +// check-pass +#![allow(dead_code)] + +fn main() {} + +fn foo(-128..=127: i8) {} diff --git a/src/test/ui/unpretty-expr-fn-arg.stdout b/src/test/ui/unpretty-expr-fn-arg.stdout new file mode 100644 index 00000000000..aa6ea4a8f97 --- /dev/null +++ b/src/test/ui/unpretty-expr-fn-arg.stdout @@ -0,0 +1,17 @@ +// Regression test for the ICE described in #82328. The pretty-printer for +// compile-flags: -Zunpretty=hir,typed +// would previously retrieve type-checking results when entering a body, +// which means that type information was not available for expressions +// occurring in function signatures, as in the `foo` example below, leading +// to an ICE. + +// check-pass +#![allow(dead_code)] +#[prelude_import] +use ::std::prelude::rust_2015::*; +#[macro_use] +extern crate std; + +fn main() ({ } as ()) + +fn foo((-(128 as i8) as i8) ...(127 as i8): i8) ({ } as ()) -- cgit 1.4.1-3-g733a5