From 3054493dd0b006a89dcd383e43552c02f9aa3237 Mon Sep 17 00:00:00 2001 From: Santiago Pastorino Date: Wed, 5 Jul 2023 19:01:11 -0300 Subject: [PATCH] Add Char ty to SMIR --- compiler/rustc_smir/src/rustc_smir/mod.rs | 2 +- compiler/rustc_smir/src/stable_mir/ty.rs | 1 + tests/ui-fulldeps/stable-mir/crate-info.rs | 8 ++++++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/compiler/rustc_smir/src/rustc_smir/mod.rs b/compiler/rustc_smir/src/rustc_smir/mod.rs index 76cb8386618..3a66eefdb79 100644 --- a/compiler/rustc_smir/src/rustc_smir/mod.rs +++ b/compiler/rustc_smir/src/rustc_smir/mod.rs @@ -71,7 +71,7 @@ impl<'tcx> Tables<'tcx> { fn rustc_ty_to_ty(&mut self, ty: Ty<'tcx>) -> TyKind { match ty.kind() { ty::Bool => TyKind::RigidTy(RigidTy::Bool), - ty::Char => todo!(), + ty::Char => TyKind::RigidTy(RigidTy::Char), ty::Int(_) => todo!(), ty::Uint(_) => todo!(), ty::Float(_) => todo!(), diff --git a/compiler/rustc_smir/src/stable_mir/ty.rs b/compiler/rustc_smir/src/stable_mir/ty.rs index 86c30370ff5..936fb0d3e4f 100644 --- a/compiler/rustc_smir/src/stable_mir/ty.rs +++ b/compiler/rustc_smir/src/stable_mir/ty.rs @@ -17,5 +17,6 @@ pub enum TyKind { #[derive(Clone, Debug)] pub enum RigidTy { Bool, + Char, Tuple(Vec), } diff --git a/tests/ui-fulldeps/stable-mir/crate-info.rs b/tests/ui-fulldeps/stable-mir/crate-info.rs index 7cbb7898f2c..e3b4f6e7df9 100644 --- a/tests/ui-fulldeps/stable-mir/crate-info.rs +++ b/tests/ui-fulldeps/stable-mir/crate-info.rs @@ -67,7 +67,7 @@ fn test_stable_mir(tcx: TyCtxt<'_>) { let types = get_item(tcx, &items, (DefKind::Fn, "types")).unwrap(); let body = types.body(); - assert_eq!(body.locals.len(), 2); + assert_eq!(body.locals.len(), 3); assert_matches!( body.locals[0].kind(), stable_mir::ty::TyKind::RigidTy(stable_mir::ty::RigidTy::Bool) @@ -76,6 +76,10 @@ fn test_stable_mir(tcx: TyCtxt<'_>) { body.locals[1].kind(), stable_mir::ty::TyKind::RigidTy(stable_mir::ty::RigidTy::Bool) ); + assert_matches!( + body.locals[2].kind(), + stable_mir::ty::TyKind::RigidTy(stable_mir::ty::RigidTy::Char) + ); let drop = get_item(tcx, &items, (DefKind::Fn, "drop")).unwrap(); let body = drop.body(); @@ -167,7 +171,7 @@ fn generate_input(path: &str) -> std::io::Result<()> { x_64.wrapping_add(y_64) }} - pub fn types(b: bool) -> bool {{ + pub fn types(b: bool, _: char) -> bool {{ b }}