|
5 | 5 |
|
6 | 6 | use std::fmt;
|
7 | 7 |
|
8 |
| -use hir_expand::name::{name, Name}; |
| 8 | +use hir_expand::name::{name, AsName, Name}; |
9 | 9 |
|
10 | 10 | #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
|
11 | 11 | pub enum Signedness {
|
@@ -75,33 +75,39 @@ impl BuiltinType {
|
75 | 75 | ];
|
76 | 76 | }
|
77 | 77 |
|
78 |
| -impl fmt::Display for BuiltinType { |
79 |
| - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { |
80 |
| - let type_name = match self { |
81 |
| - BuiltinType::Char => "char", |
82 |
| - BuiltinType::Bool => "bool", |
83 |
| - BuiltinType::Str => "str", |
| 78 | +impl AsName for BuiltinType { |
| 79 | + fn as_name(&self) -> Name { |
| 80 | + match self { |
| 81 | + BuiltinType::Char => name![char], |
| 82 | + BuiltinType::Bool => name![bool], |
| 83 | + BuiltinType::Str => name![str], |
84 | 84 | BuiltinType::Int(BuiltinInt { signedness, bitness }) => match (signedness, bitness) {
|
85 |
| - (Signedness::Signed, IntBitness::Xsize) => "isize", |
86 |
| - (Signedness::Signed, IntBitness::X8) => "i8", |
87 |
| - (Signedness::Signed, IntBitness::X16) => "i16", |
88 |
| - (Signedness::Signed, IntBitness::X32) => "i32", |
89 |
| - (Signedness::Signed, IntBitness::X64) => "i64", |
90 |
| - (Signedness::Signed, IntBitness::X128) => "i128", |
91 |
| - |
92 |
| - (Signedness::Unsigned, IntBitness::Xsize) => "usize", |
93 |
| - (Signedness::Unsigned, IntBitness::X8) => "u8", |
94 |
| - (Signedness::Unsigned, IntBitness::X16) => "u16", |
95 |
| - (Signedness::Unsigned, IntBitness::X32) => "u32", |
96 |
| - (Signedness::Unsigned, IntBitness::X64) => "u64", |
97 |
| - (Signedness::Unsigned, IntBitness::X128) => "u128", |
| 85 | + (Signedness::Signed, IntBitness::Xsize) => name![isize], |
| 86 | + (Signedness::Signed, IntBitness::X8) => name![i8], |
| 87 | + (Signedness::Signed, IntBitness::X16) => name![i16], |
| 88 | + (Signedness::Signed, IntBitness::X32) => name![i32], |
| 89 | + (Signedness::Signed, IntBitness::X64) => name![i64], |
| 90 | + (Signedness::Signed, IntBitness::X128) => name![i128], |
| 91 | + |
| 92 | + (Signedness::Unsigned, IntBitness::Xsize) => name![usize], |
| 93 | + (Signedness::Unsigned, IntBitness::X8) => name![u8], |
| 94 | + (Signedness::Unsigned, IntBitness::X16) => name![u16], |
| 95 | + (Signedness::Unsigned, IntBitness::X32) => name![u32], |
| 96 | + (Signedness::Unsigned, IntBitness::X64) => name![u64], |
| 97 | + (Signedness::Unsigned, IntBitness::X128) => name![u128], |
98 | 98 | },
|
99 | 99 | BuiltinType::Float(BuiltinFloat { bitness }) => match bitness {
|
100 |
| - FloatBitness::X32 => "f32", |
101 |
| - FloatBitness::X64 => "f64", |
| 100 | + FloatBitness::X32 => name![f32], |
| 101 | + FloatBitness::X64 => name![f64], |
102 | 102 | },
|
103 |
| - }; |
104 |
| - f.write_str(type_name) |
| 103 | + } |
| 104 | + } |
| 105 | +} |
| 106 | + |
| 107 | +impl fmt::Display for BuiltinType { |
| 108 | + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { |
| 109 | + let type_name = self.as_name(); |
| 110 | + type_name.fmt(f) |
105 | 111 | }
|
106 | 112 | }
|
107 | 113 |
|
|
0 commit comments