Skip to content

Commit 20f0cda

Browse files
committed
Rewrite TyKind::fmt.
The handwritten versions more compact and easier to read than the derived version.
1 parent 5b54363 commit 20f0cda

File tree

2 files changed

+32
-131
lines changed

2 files changed

+32
-131
lines changed

compiler/rustc_type_ir/src/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#![feature(fmt_helpers_for_derive)]
12
#![feature(min_specialization)]
23
#![feature(rustc_attrs)]
34

compiler/rustc_type_ir/src/sty.rs

+31-131
Original file line numberDiff line numberDiff line change
@@ -554,137 +554,37 @@ impl<I: Interner> hash::Hash for TyKind<I> {
554554
// This is manually implemented because a derive would require `I: Debug`
555555
impl<I: Interner> fmt::Debug for TyKind<I> {
556556
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
557-
match (&*self,) {
558-
(&Bool,) => fmt::Formatter::write_str(f, "Bool"),
559-
(&Char,) => fmt::Formatter::write_str(f, "Char"),
560-
(&Int(ref __self_0),) => {
561-
let debug_trait_builder = &mut fmt::Formatter::debug_tuple(f, "Int");
562-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_0);
563-
fmt::DebugTuple::finish(debug_trait_builder)
564-
}
565-
(&Uint(ref __self_0),) => {
566-
let debug_trait_builder = &mut fmt::Formatter::debug_tuple(f, "Uint");
567-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_0);
568-
fmt::DebugTuple::finish(debug_trait_builder)
569-
}
570-
(&Float(ref __self_0),) => {
571-
let debug_trait_builder = &mut fmt::Formatter::debug_tuple(f, "Float");
572-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_0);
573-
fmt::DebugTuple::finish(debug_trait_builder)
574-
}
575-
(&Adt(ref __self_0, ref __self_1),) => {
576-
let debug_trait_builder = &mut fmt::Formatter::debug_tuple(f, "Adt");
577-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_0);
578-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_1);
579-
fmt::DebugTuple::finish(debug_trait_builder)
580-
}
581-
(&Foreign(ref __self_0),) => {
582-
let debug_trait_builder = &mut fmt::Formatter::debug_tuple(f, "Foreign");
583-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_0);
584-
fmt::DebugTuple::finish(debug_trait_builder)
585-
}
586-
(&Str,) => fmt::Formatter::write_str(f, "Str"),
587-
(&Array(ref __self_0, ref __self_1),) => {
588-
let debug_trait_builder = &mut fmt::Formatter::debug_tuple(f, "Array");
589-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_0);
590-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_1);
591-
fmt::DebugTuple::finish(debug_trait_builder)
592-
}
593-
(&Slice(ref __self_0),) => {
594-
let debug_trait_builder = &mut fmt::Formatter::debug_tuple(f, "Slice");
595-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_0);
596-
fmt::DebugTuple::finish(debug_trait_builder)
597-
}
598-
(&RawPtr(ref __self_0),) => {
599-
let debug_trait_builder = &mut fmt::Formatter::debug_tuple(f, "RawPtr");
600-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_0);
601-
fmt::DebugTuple::finish(debug_trait_builder)
602-
}
603-
(&Ref(ref __self_0, ref __self_1, ref __self_2),) => {
604-
let debug_trait_builder = &mut fmt::Formatter::debug_tuple(f, "Ref");
605-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_0);
606-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_1);
607-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_2);
608-
fmt::DebugTuple::finish(debug_trait_builder)
609-
}
610-
(&FnDef(ref __self_0, ref __self_1),) => {
611-
let debug_trait_builder = &mut fmt::Formatter::debug_tuple(f, "FnDef");
612-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_0);
613-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_1);
614-
fmt::DebugTuple::finish(debug_trait_builder)
615-
}
616-
(&FnPtr(ref __self_0),) => {
617-
let debug_trait_builder = &mut fmt::Formatter::debug_tuple(f, "FnPtr");
618-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_0);
619-
fmt::DebugTuple::finish(debug_trait_builder)
620-
}
621-
(&Dynamic(ref __self_0, ref __self_1),) => {
622-
let debug_trait_builder = &mut fmt::Formatter::debug_tuple(f, "Dynamic");
623-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_0);
624-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_1);
625-
fmt::DebugTuple::finish(debug_trait_builder)
626-
}
627-
(&Closure(ref __self_0, ref __self_1),) => {
628-
let debug_trait_builder = &mut fmt::Formatter::debug_tuple(f, "Closure");
629-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_0);
630-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_1);
631-
fmt::DebugTuple::finish(debug_trait_builder)
632-
}
633-
(&Generator(ref __self_0, ref __self_1, ref __self_2),) => {
634-
let debug_trait_builder = &mut fmt::Formatter::debug_tuple(f, "Generator");
635-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_0);
636-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_1);
637-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_2);
638-
fmt::DebugTuple::finish(debug_trait_builder)
639-
}
640-
(&GeneratorWitness(ref __self_0),) => {
641-
let debug_trait_builder = &mut fmt::Formatter::debug_tuple(f, "GeneratorWitness");
642-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_0);
643-
fmt::DebugTuple::finish(debug_trait_builder)
644-
}
645-
(&Never,) => fmt::Formatter::write_str(f, "Never"),
646-
(&Tuple(ref __self_0),) => {
647-
let debug_trait_builder = &mut fmt::Formatter::debug_tuple(f, "Tuple");
648-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_0);
649-
fmt::DebugTuple::finish(debug_trait_builder)
650-
}
651-
(&Projection(ref __self_0),) => {
652-
let debug_trait_builder = &mut fmt::Formatter::debug_tuple(f, "Projection");
653-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_0);
654-
fmt::DebugTuple::finish(debug_trait_builder)
655-
}
656-
(&Opaque(ref __self_0, ref __self_1),) => {
657-
let debug_trait_builder = &mut fmt::Formatter::debug_tuple(f, "Opaque");
658-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_0);
659-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_1);
660-
fmt::DebugTuple::finish(debug_trait_builder)
661-
}
662-
(&Param(ref __self_0),) => {
663-
let debug_trait_builder = &mut fmt::Formatter::debug_tuple(f, "Param");
664-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_0);
665-
fmt::DebugTuple::finish(debug_trait_builder)
666-
}
667-
(&Bound(ref __self_0, ref __self_1),) => {
668-
let debug_trait_builder = &mut fmt::Formatter::debug_tuple(f, "Bound");
669-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_0);
670-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_1);
671-
fmt::DebugTuple::finish(debug_trait_builder)
672-
}
673-
(&Placeholder(ref __self_0),) => {
674-
let debug_trait_builder = &mut fmt::Formatter::debug_tuple(f, "Placeholder");
675-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_0);
676-
fmt::DebugTuple::finish(debug_trait_builder)
677-
}
678-
(&Infer(ref __self_0),) => {
679-
let debug_trait_builder = &mut fmt::Formatter::debug_tuple(f, "Infer");
680-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_0);
681-
fmt::DebugTuple::finish(debug_trait_builder)
682-
}
683-
(&Error(ref __self_0),) => {
684-
let debug_trait_builder = &mut fmt::Formatter::debug_tuple(f, "Error");
685-
let _ = fmt::DebugTuple::field(debug_trait_builder, &__self_0);
686-
fmt::DebugTuple::finish(debug_trait_builder)
687-
}
557+
use std::fmt::*;
558+
match self {
559+
Bool => Formatter::write_str(f, "Bool"),
560+
Char => Formatter::write_str(f, "Char"),
561+
Int(f0) => Formatter::debug_tuple_field1_finish(f, "Int", f0),
562+
Uint(f0) => Formatter::debug_tuple_field1_finish(f, "Uint", f0),
563+
Float(f0) => Formatter::debug_tuple_field1_finish(f, "Float", f0),
564+
Adt(f0, f1) => Formatter::debug_tuple_field2_finish(f, "Adt", f0, f1),
565+
Foreign(f0) => Formatter::debug_tuple_field1_finish(f, "Foreign", f0),
566+
Str => Formatter::write_str(f, "Str"),
567+
Array(f0, f1) => Formatter::debug_tuple_field2_finish(f, "Array", f0, f1),
568+
Slice(f0) => Formatter::debug_tuple_field1_finish(f, "Slice", f0),
569+
RawPtr(f0) => Formatter::debug_tuple_field1_finish(f, "RawPtr", f0),
570+
Ref(f0, f1, f2) => Formatter::debug_tuple_field3_finish(f, "Ref", f0, f1, f2),
571+
FnDef(f0, f1) => Formatter::debug_tuple_field2_finish(f, "FnDef", f0, f1),
572+
FnPtr(f0) => Formatter::debug_tuple_field1_finish(f, "FnPtr", f0),
573+
Dynamic(f0, f1) => Formatter::debug_tuple_field2_finish(f, "Dynamic", f0, f1),
574+
Closure(f0, f1) => Formatter::debug_tuple_field2_finish(f, "Closure", f0, f1),
575+
Generator(f0, f1, f2) => {
576+
Formatter::debug_tuple_field3_finish(f, "Generator", f0, f1, f2)
577+
}
578+
GeneratorWitness(f0) => Formatter::debug_tuple_field1_finish(f, "GeneratorWitness", f0),
579+
Never => Formatter::write_str(f, "Never"),
580+
Tuple(f0) => Formatter::debug_tuple_field1_finish(f, "Tuple", f0),
581+
Projection(f0) => Formatter::debug_tuple_field1_finish(f, "Projection", f0),
582+
Opaque(f0, f1) => Formatter::debug_tuple_field2_finish(f, "Opaque", f0, f1),
583+
Param(f0) => Formatter::debug_tuple_field1_finish(f, "Param", f0),
584+
Bound(f0, f1) => Formatter::debug_tuple_field2_finish(f, "Bound", f0, f1),
585+
Placeholder(f0) => Formatter::debug_tuple_field1_finish(f, "Placeholder", f0),
586+
Infer(f0) => Formatter::debug_tuple_field1_finish(f, "Infer", f0),
587+
TyKind::Error(f0) => Formatter::debug_tuple_field1_finish(f, "Error", f0),
688588
}
689589
}
690590
}

0 commit comments

Comments
 (0)