about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSantiago Pastorino <spastorino@gmail.com>2023-07-05 19:01:11 -0300
committerSantiago Pastorino <spastorino@gmail.com>2023-07-07 13:46:40 -0300
commit73e816e37ce028274d603ab33d8717d35dc9e914 (patch)
treee63fa0d5f9f42837b3775c251f259b107fa253f1
parent61adcaf87b605f1b2d73f62cda813329cb448807 (diff)
downloadrust-73e816e37ce028274d603ab33d8717d35dc9e914.tar.gz
rust-73e816e37ce028274d603ab33d8717d35dc9e914.zip
Add Char ty to SMIR
-rw-r--r--compiler/rustc_smir/src/rustc_smir/mod.rs2
-rw-r--r--compiler/rustc_smir/src/stable_mir/ty.rs1
-rw-r--r--tests/ui-fulldeps/stable-mir/crate-info.rs8
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<Ty>),
 }
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
     }}