Skip to content
This repository was archived by the owner on May 28, 2025. It is now read-only.

Commit 34a9129

Browse files
committed
fix: column!() and line!() built-in macros return u32
1 parent a0a7860 commit 34a9129

File tree

7 files changed

+26
-25
lines changed

7 files changed

+26
-25
lines changed

crates/hir-def/src/macro_expansion_tests/builtin_fn_macro.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ macro_rules! column {() => {}}
1313
1414
fn main() { column!(); }
1515
"#,
16-
expect![[r##"
16+
expect![[r#"
1717
#[rustc_builtin_macro]
1818
macro_rules! column {() => {}}
1919
20-
fn main() { 0; }
21-
"##]],
20+
fn main() { 0 as u32; }
21+
"#]],
2222
);
2323
}
2424

@@ -31,12 +31,12 @@ macro_rules! line {() => {}}
3131
3232
fn main() { line!() }
3333
"#,
34-
expect![[r##"
34+
expect![[r#"
3535
#[rustc_builtin_macro]
3636
macro_rules! line {() => {}}
3737
38-
fn main() { 0 }
39-
"##]],
38+
fn main() { 0 as u32 }
39+
"#]],
4040
);
4141
}
4242

crates/hir-def/src/macro_expansion_tests/mbe.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -922,7 +922,7 @@ macro_rules! m {
922922
923923
fn bar() -> &'a Baz<u8> {}
924924
925-
fn bar() -> extern "Rust"fn() -> Ret {}
925+
fn bar() -> extern "Rust" fn() -> Ret {}
926926
"#]],
927927
);
928928
}
@@ -1333,7 +1333,7 @@ macro_rules! matches {
13331333
}
13341334
fn main() {
13351335
match 0 {
1336-
0|1if true =>true , _=>false
1336+
0|1 if true =>true , _=>false
13371337
};
13381338
}
13391339
"#]],

crates/hir-def/src/macro_expansion_tests/mbe/matching.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ fn main() {
7373
macro_rules! asi { ($($stmt:stmt)*) => ($($stmt)*); }
7474
7575
fn main() {
76-
let a = 2let b = 5drop(b-a)println!("{}", a+b)
76+
let a = 2 let b = 5 drop(b-a)println!("{}", a+b)
7777
}
7878
"#]],
7979
)

crates/hir-def/src/macro_expansion_tests/mbe/regression.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -297,55 +297,55 @@ macro_rules! impl_fn_for_zst {
297297
298298
#[derive(Clone)] struct CharEscapeDebugContinue;
299299
impl Fn<(char, )> for CharEscapeDebugContinue {
300-
#[inline] extern "rust-call"fn call(&self , (c, ): (char, )) -> char::EscapeDebug { {
300+
#[inline] extern "rust-call" fn call(&self , (c, ): (char, )) -> char::EscapeDebug { {
301301
c.escape_debug_ext(false )
302302
}
303303
}
304304
}
305305
impl FnMut<(char, )> for CharEscapeDebugContinue {
306-
#[inline] extern "rust-call"fn call_mut(&mut self , (c, ): (char, )) -> char::EscapeDebug {
306+
#[inline] extern "rust-call" fn call_mut(&mut self , (c, ): (char, )) -> char::EscapeDebug {
307307
Fn::call(&*self , (c, ))
308308
}
309309
}
310310
impl FnOnce<(char, )> for CharEscapeDebugContinue {
311311
type Output = char::EscapeDebug;
312-
#[inline] extern "rust-call"fn call_once(self , (c, ): (char, )) -> char::EscapeDebug {
312+
#[inline] extern "rust-call" fn call_once(self , (c, ): (char, )) -> char::EscapeDebug {
313313
Fn::call(&self , (c, ))
314314
}
315315
}
316316
#[derive(Clone)] struct CharEscapeUnicode;
317317
impl Fn<(char, )> for CharEscapeUnicode {
318-
#[inline] extern "rust-call"fn call(&self , (c, ): (char, )) -> char::EscapeUnicode { {
318+
#[inline] extern "rust-call" fn call(&self , (c, ): (char, )) -> char::EscapeUnicode { {
319319
c.escape_unicode()
320320
}
321321
}
322322
}
323323
impl FnMut<(char, )> for CharEscapeUnicode {
324-
#[inline] extern "rust-call"fn call_mut(&mut self , (c, ): (char, )) -> char::EscapeUnicode {
324+
#[inline] extern "rust-call" fn call_mut(&mut self , (c, ): (char, )) -> char::EscapeUnicode {
325325
Fn::call(&*self , (c, ))
326326
}
327327
}
328328
impl FnOnce<(char, )> for CharEscapeUnicode {
329329
type Output = char::EscapeUnicode;
330-
#[inline] extern "rust-call"fn call_once(self , (c, ): (char, )) -> char::EscapeUnicode {
330+
#[inline] extern "rust-call" fn call_once(self , (c, ): (char, )) -> char::EscapeUnicode {
331331
Fn::call(&self , (c, ))
332332
}
333333
}
334334
#[derive(Clone)] struct CharEscapeDefault;
335335
impl Fn<(char, )> for CharEscapeDefault {
336-
#[inline] extern "rust-call"fn call(&self , (c, ): (char, )) -> char::EscapeDefault { {
336+
#[inline] extern "rust-call" fn call(&self , (c, ): (char, )) -> char::EscapeDefault { {
337337
c.escape_default()
338338
}
339339
}
340340
}
341341
impl FnMut<(char, )> for CharEscapeDefault {
342-
#[inline] extern "rust-call"fn call_mut(&mut self , (c, ): (char, )) -> char::EscapeDefault {
342+
#[inline] extern "rust-call" fn call_mut(&mut self , (c, ): (char, )) -> char::EscapeDefault {
343343
Fn::call(&*self , (c, ))
344344
}
345345
}
346346
impl FnOnce<(char, )> for CharEscapeDefault {
347347
type Output = char::EscapeDefault;
348-
#[inline] extern "rust-call"fn call_once(self , (c, ): (char, )) -> char::EscapeDefault {
348+
#[inline] extern "rust-call" fn call_once(self , (c, ): (char, )) -> char::EscapeDefault {
349349
Fn::call(&self , (c, ))
350350
}
351351
}
@@ -833,7 +833,7 @@ macro_rules! rgb_color {
833833
/* parse error: expected SEMICOLON */
834834
/* parse error: expected expression, item or let statement */
835835
pub fn new() {
836-
let _ = 0as u32<<(8+8);
836+
let _ = 0 as u32<<(8+8);
837837
}
838838
839839

crates/hir-def/src/macro_expansion_tests/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,7 @@ fn pretty_print_macro_expansion(expn: SyntaxNode, map: Option<&TokenMap>) -> Str
280280
let curr_kind = token.kind();
281281
let space = match (prev_kind, curr_kind) {
282282
_ if prev_kind.is_trivia() || curr_kind.is_trivia() => "",
283+
_ if prev_kind.is_literal() && !curr_kind.is_punct() => " ",
283284
(T!['{'], T!['}']) => "",
284285
(T![=], _) | (_, T![=]) => " ",
285286
(_, T!['{']) => " ",

crates/hir-expand/src/builtin_fn_macro.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,9 +135,8 @@ fn line_expand(
135135
_tt: &tt::Subtree,
136136
) -> ExpandResult<tt::Subtree> {
137137
// dummy implementation for type-checking purposes
138-
let line_num = 0;
139138
let expanded = quote! {
140-
#line_num
139+
0 as u32
141140
};
142141

143142
ExpandResult::ok(expanded)
@@ -179,9 +178,8 @@ fn column_expand(
179178
_tt: &tt::Subtree,
180179
) -> ExpandResult<tt::Subtree> {
181180
// dummy implementation for type-checking purposes
182-
let col_num = 0;
183181
let expanded = quote! {
184-
#col_num
182+
0 as u32
185183
};
186184

187185
ExpandResult::ok(expanded)

crates/hir-ty/src/tests/macros.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -661,8 +661,9 @@ fn infer_builtin_macros_line() {
661661
"#,
662662
expect![[r#"
663663
!0..1 '0': i32
664+
!0..6 '0asu32': u32
664665
63..87 '{ ...!(); }': ()
665-
73..74 'x': i32
666+
73..74 'x': u32
666667
"#]],
667668
);
668669
}
@@ -699,8 +700,9 @@ fn infer_builtin_macros_column() {
699700
"#,
700701
expect![[r#"
701702
!0..1 '0': i32
703+
!0..6 '0asu32': u32
702704
65..91 '{ ...!(); }': ()
703-
75..76 'x': i32
705+
75..76 'x': u32
704706
"#]],
705707
);
706708
}

0 commit comments

Comments
 (0)