@@ -25,6 +25,144 @@ use stable_mir::{
2525
2626use crate :: { rustc_smir, stable_mir} ;
2727
28+ pub struct BridgeTys ;
29+
30+ impl Bridge for BridgeTys {
31+ type DefId = stable_mir:: DefId ;
32+ type AllocId = stable_mir:: mir:: alloc:: AllocId ;
33+ type Span = stable_mir:: ty:: Span ;
34+ type Ty = stable_mir:: ty:: Ty ;
35+ type InstanceDef = stable_mir:: mir:: mono:: InstanceDef ;
36+ type TyConstId = stable_mir:: ty:: TyConstId ;
37+ type MirConstId = stable_mir:: ty:: MirConstId ;
38+ type Layout = stable_mir:: abi:: Layout ;
39+ type Error = stable_mir:: Error ;
40+ }
41+
42+ impl < ' tcx > Tables < ' tcx , BridgeTys > {
43+ pub ( crate ) fn crate_item ( & mut self , did : rustc_span:: def_id:: DefId ) -> stable_mir:: CrateItem {
44+ stable_mir:: CrateItem ( self . create_def_id ( did) )
45+ }
46+
47+ pub ( crate ) fn adt_def ( & mut self , did : rustc_span:: def_id:: DefId ) -> stable_mir:: ty:: AdtDef {
48+ stable_mir:: ty:: AdtDef ( self . create_def_id ( did) )
49+ }
50+
51+ pub ( crate ) fn foreign_module_def (
52+ & mut self ,
53+ did : rustc_span:: def_id:: DefId ,
54+ ) -> stable_mir:: ty:: ForeignModuleDef {
55+ stable_mir:: ty:: ForeignModuleDef ( self . create_def_id ( did) )
56+ }
57+
58+ pub ( crate ) fn foreign_def (
59+ & mut self ,
60+ did : rustc_span:: def_id:: DefId ,
61+ ) -> stable_mir:: ty:: ForeignDef {
62+ stable_mir:: ty:: ForeignDef ( self . create_def_id ( did) )
63+ }
64+
65+ pub ( crate ) fn fn_def ( & mut self , did : rustc_span:: def_id:: DefId ) -> stable_mir:: ty:: FnDef {
66+ stable_mir:: ty:: FnDef ( self . create_def_id ( did) )
67+ }
68+
69+ pub ( crate ) fn closure_def (
70+ & mut self ,
71+ did : rustc_span:: def_id:: DefId ,
72+ ) -> stable_mir:: ty:: ClosureDef {
73+ stable_mir:: ty:: ClosureDef ( self . create_def_id ( did) )
74+ }
75+
76+ pub ( crate ) fn coroutine_def (
77+ & mut self ,
78+ did : rustc_span:: def_id:: DefId ,
79+ ) -> stable_mir:: ty:: CoroutineDef {
80+ stable_mir:: ty:: CoroutineDef ( self . create_def_id ( did) )
81+ }
82+
83+ pub ( crate ) fn coroutine_closure_def (
84+ & mut self ,
85+ did : rustc_span:: def_id:: DefId ,
86+ ) -> stable_mir:: ty:: CoroutineClosureDef {
87+ stable_mir:: ty:: CoroutineClosureDef ( self . create_def_id ( did) )
88+ }
89+
90+ pub ( crate ) fn alias_def ( & mut self , did : rustc_span:: def_id:: DefId ) -> stable_mir:: ty:: AliasDef {
91+ stable_mir:: ty:: AliasDef ( self . create_def_id ( did) )
92+ }
93+
94+ pub ( crate ) fn param_def ( & mut self , did : rustc_span:: def_id:: DefId ) -> stable_mir:: ty:: ParamDef {
95+ stable_mir:: ty:: ParamDef ( self . create_def_id ( did) )
96+ }
97+
98+ pub ( crate ) fn br_named_def (
99+ & mut self ,
100+ did : rustc_span:: def_id:: DefId ,
101+ ) -> stable_mir:: ty:: BrNamedDef {
102+ stable_mir:: ty:: BrNamedDef ( self . create_def_id ( did) )
103+ }
104+
105+ pub ( crate ) fn trait_def ( & mut self , did : rustc_span:: def_id:: DefId ) -> stable_mir:: ty:: TraitDef {
106+ stable_mir:: ty:: TraitDef ( self . create_def_id ( did) )
107+ }
108+
109+ pub ( crate ) fn generic_def (
110+ & mut self ,
111+ did : rustc_span:: def_id:: DefId ,
112+ ) -> stable_mir:: ty:: GenericDef {
113+ stable_mir:: ty:: GenericDef ( self . create_def_id ( did) )
114+ }
115+
116+ pub ( crate ) fn const_def ( & mut self , did : rustc_span:: def_id:: DefId ) -> stable_mir:: ty:: ConstDef {
117+ stable_mir:: ty:: ConstDef ( self . create_def_id ( did) )
118+ }
119+
120+ pub ( crate ) fn impl_def ( & mut self , did : rustc_span:: def_id:: DefId ) -> stable_mir:: ty:: ImplDef {
121+ stable_mir:: ty:: ImplDef ( self . create_def_id ( did) )
122+ }
123+
124+ /*
125+ pub(crate) fn region_def(
126+ &mut self,
127+ did: rustc_span::def_id::DefId,
128+ ) -> stable_mir::ty::RegionDef {
129+ stable_mir::ty::RegionDef(self.create_def_id(did))
130+ }
131+ */
132+
133+ pub ( crate ) fn coroutine_witness_def (
134+ & mut self ,
135+ did : rustc_span:: def_id:: DefId ,
136+ ) -> stable_mir:: ty:: CoroutineWitnessDef {
137+ stable_mir:: ty:: CoroutineWitnessDef ( self . create_def_id ( did) )
138+ }
139+
140+ pub ( crate ) fn assoc_def ( & mut self , did : rustc_span:: def_id:: DefId ) -> stable_mir:: ty:: AssocDef {
141+ stable_mir:: ty:: AssocDef ( self . create_def_id ( did) )
142+ }
143+
144+ pub ( crate ) fn opaque_def (
145+ & mut self ,
146+ did : rustc_span:: def_id:: DefId ,
147+ ) -> stable_mir:: ty:: OpaqueDef {
148+ stable_mir:: ty:: OpaqueDef ( self . create_def_id ( did) )
149+ }
150+
151+ pub ( crate ) fn prov (
152+ & mut self ,
153+ aid : rustc_middle:: mir:: interpret:: AllocId ,
154+ ) -> stable_mir:: ty:: Prov {
155+ stable_mir:: ty:: Prov ( self . create_alloc_id ( aid) )
156+ }
157+
158+ pub ( crate ) fn static_def (
159+ & mut self ,
160+ did : rustc_span:: def_id:: DefId ,
161+ ) -> stable_mir:: mir:: mono:: StaticDef {
162+ stable_mir:: mir:: mono:: StaticDef ( self . create_def_id ( did) )
163+ }
164+ }
165+
28166/// Stable public API for querying compiler information.
29167///
30168/// All queries are delegated to an internal [`SmirCtxt`] that provides
0 commit comments