@@ -74,9 +74,9 @@ HIR is built, some basic type inference and type checking is done. During the ty
74
74
figure out what the ` ty::Ty ` of everything is and we also check if the type of something is
75
75
ambiguous. The ` ty::Ty ` is then used for type checking while making sure everything has the
76
76
expected type. The [ ` astconv ` module] [ astconv ] is where the code responsible for converting a
77
- ` rustc_hir::Ty ` into a ` ty::Ty ` is located. This occurs during the type-checking phase,
78
- but also in other parts of the compiler that want to ask questions like "what argument types does
79
- this function expect?"
77
+ ` rustc_hir::Ty ` into a ` ty::Ty ` is located. The main routine used is ` ast_ty_to_ty ` . This occurs
78
+ during the type-checking phase, but also in other parts of the compiler that want to ask
79
+ questions like "what argument types does this function expect?"
80
80
81
81
[ astconv ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_hir_analysis/astconv/index.html
82
82
@@ -137,11 +137,13 @@ benefits of interning.
137
137
138
138
## Allocating and working with types
139
139
140
- To allocate a new type, you can use the various ` mk_ ` methods defined on the ` tcx ` . These have names
140
+ To allocate a new type, you can use the various ` new_* ` methods defined on
141
+ [ ` Ty ` ] ( https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/ty/struct.Ty.html ) .
142
+ These have names
141
143
that correspond mostly to the various kinds of types. For example:
142
144
143
145
``` rust,ignore
144
- let array_ty = tcx.mk_array(elem_ty, len * 2 );
146
+ let array_ty = Ty::new_array_with_const_len(tcx, ty, count );
145
147
```
146
148
147
149
These methods all return a ` Ty<'tcx> ` – note that the lifetime you get back is the lifetime of the
0 commit comments