From d2bd07c24699b758771688ccf266ccf443822520 Mon Sep 17 00:00:00 2001 From: Nick Fitzgerald Date: Thu, 30 Sep 2021 09:51:09 -0700 Subject: [PATCH] Check that integer literals are primitive types in patterns --- cranelift/isle/isle/src/sema.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/cranelift/isle/isle/src/sema.rs b/cranelift/isle/isle/src/sema.rs index 9a6641fb61..b3d0a6f543 100644 --- a/cranelift/isle/isle/src/sema.rs +++ b/cranelift/isle/isle/src/sema.rs @@ -1034,6 +1034,16 @@ impl TermEnv { return None; } }; + if !tyenv.types[ty.index()].is_prim() { + tyenv.report_error( + pos, + format!( + "expected non-primitive type {}, but found integer literal '{}'", + tyenv.types[ty.index()].name(tyenv), + val, + ), + ); + } Some((Pattern::ConstInt(ty, val), ty)) } &ast::Pattern::ConstPrim { ref val, pos } => {