Skip to content

Commit 9ebd8b6

Browse files
committed
add FRTs to rustc_public
1 parent 74acd08 commit 9ebd8b6

File tree

4 files changed

+12
-0
lines changed

4 files changed

+12
-0
lines changed

compiler/rustc_public/src/ty.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -551,6 +551,7 @@ pub enum RigidTy {
551551
Uint(UintTy),
552552
Float(FloatTy),
553553
Adt(AdtDef, GenericArgs),
554+
Field(Ty, FieldPath),
554555
Foreign(ForeignDef),
555556
Str,
556557
Array(Ty, TyConst),

compiler/rustc_public/src/unstable/convert/internal.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,9 @@ impl RustcInternal for RigidTy {
171171
RigidTy::Adt(def, args) => {
172172
rustc_ty::TyKind::Adt(def.internal(tables, tcx), args.internal(tables, tcx))
173173
}
174+
RigidTy::Field(ty, field_path) => {
175+
rustc_ty::TyKind::Field(ty.internal(tables, tcx), field_path.internal(tables, tcx))
176+
}
174177
RigidTy::Str => rustc_ty::TyKind::Str,
175178
RigidTy::Slice(ty) => rustc_ty::TyKind::Slice(ty.internal(tables, tcx)),
176179
RigidTy::RawPtr(ty, mutability) => {

compiler/rustc_public/src/unstable/convert/stable/ty.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,10 @@ impl<'tcx> Stable<'tcx> for ty::TyKind<'tcx> {
413413
tables.adt_def(adt_def.did()),
414414
generic_args.stable(tables, cx),
415415
)),
416+
ty::Field(ty, field_path) => TyKind::RigidTy(RigidTy::Field(
417+
ty.stable(tables, cx),
418+
field_path.stable(tables, cx),
419+
)),
416420
ty::Foreign(def_id) => TyKind::RigidTy(RigidTy::Foreign(tables.foreign_def(*def_id))),
417421
ty::Str => TyKind::RigidTy(RigidTy::Str),
418422
ty::Array(ty, constant) => {

compiler/rustc_public/src/visitor.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,10 @@ impl Visitable for RigidTy {
164164
reg.visit(visitor)?;
165165
ty.visit(visitor)
166166
}
167+
RigidTy::Field(ty, _field_path) => {
168+
ty.visit(visitor)
169+
// FIXME(field_projections): also visit _field_path?
170+
}
167171
RigidTy::Adt(_, args)
168172
| RigidTy::Closure(_, args)
169173
| RigidTy::Coroutine(_, args)

0 commit comments

Comments
 (0)