|
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