Add with_{def_site,call_site,legacy}_ctxt, methods to Span
Use these to create call-site spans for AST passes when needed.
This commit is contained in:
parent
0b86782058
commit
c8cf9f5a02
10 changed files with 138 additions and 117 deletions
|
|
@ -2,40 +2,40 @@ PRINT-BANG INPUT (DISPLAY): struct M ($crate :: S) ;
|
|||
PRINT-BANG INPUT (DEBUG): TokenStream [
|
||||
Ident {
|
||||
ident: "struct",
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Ident {
|
||||
ident: "M",
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Group {
|
||||
delimiter: Parenthesis,
|
||||
stream: TokenStream [
|
||||
Ident {
|
||||
ident: "$crate",
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ':',
|
||||
spacing: Joint,
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ':',
|
||||
spacing: Alone,
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Ident {
|
||||
ident: "S",
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
],
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ';',
|
||||
spacing: Alone,
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
]
|
||||
PRINT-ATTR INPUT (DISPLAY): struct A(crate::S);
|
||||
|
|
@ -43,39 +43,39 @@ PRINT-ATTR RE-COLLECTED (DISPLAY): struct A ($crate :: S) ;
|
|||
PRINT-ATTR INPUT (DEBUG): TokenStream [
|
||||
Ident {
|
||||
ident: "struct",
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Ident {
|
||||
ident: "A",
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Group {
|
||||
delimiter: Parenthesis,
|
||||
stream: TokenStream [
|
||||
Ident {
|
||||
ident: "$crate",
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ':',
|
||||
spacing: Joint,
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ':',
|
||||
spacing: Alone,
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Ident {
|
||||
ident: "S",
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
],
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ';',
|
||||
spacing: Alone,
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
]
|
||||
|
|
|
|||
|
|
@ -3,55 +3,55 @@ PRINT-ATTR RE-COLLECTED (DISPLAY): struct A (identity ! ($crate :: S)) ;
|
|||
PRINT-ATTR INPUT (DEBUG): TokenStream [
|
||||
Ident {
|
||||
ident: "struct",
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Ident {
|
||||
ident: "A",
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Group {
|
||||
delimiter: Parenthesis,
|
||||
stream: TokenStream [
|
||||
Ident {
|
||||
ident: "identity",
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: '!',
|
||||
spacing: Alone,
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Group {
|
||||
delimiter: Parenthesis,
|
||||
stream: TokenStream [
|
||||
Ident {
|
||||
ident: "$crate",
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ':',
|
||||
spacing: Joint,
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ':',
|
||||
spacing: Alone,
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Ident {
|
||||
ident: "S",
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
],
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
],
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ';',
|
||||
spacing: Alone,
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
]
|
||||
PRINT-ATTR INPUT (DISPLAY): struct B(identity!(::dollar_crate_external :: S));
|
||||
|
|
@ -59,54 +59,54 @@ PRINT-ATTR RE-COLLECTED (DISPLAY): struct B (identity ! ($crate :: S)) ;
|
|||
PRINT-ATTR INPUT (DEBUG): TokenStream [
|
||||
Ident {
|
||||
ident: "struct",
|
||||
span: #7 bytes(LO..HI),
|
||||
span: #8 bytes(LO..HI),
|
||||
},
|
||||
Ident {
|
||||
ident: "B",
|
||||
span: #7 bytes(LO..HI),
|
||||
span: #8 bytes(LO..HI),
|
||||
},
|
||||
Group {
|
||||
delimiter: Parenthesis,
|
||||
stream: TokenStream [
|
||||
Ident {
|
||||
ident: "identity",
|
||||
span: #7 bytes(LO..HI),
|
||||
span: #8 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: '!',
|
||||
spacing: Alone,
|
||||
span: #7 bytes(LO..HI),
|
||||
span: #8 bytes(LO..HI),
|
||||
},
|
||||
Group {
|
||||
delimiter: Parenthesis,
|
||||
stream: TokenStream [
|
||||
Ident {
|
||||
ident: "$crate",
|
||||
span: #7 bytes(LO..HI),
|
||||
span: #8 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ':',
|
||||
spacing: Joint,
|
||||
span: #7 bytes(LO..HI),
|
||||
span: #8 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ':',
|
||||
spacing: Alone,
|
||||
span: #7 bytes(LO..HI),
|
||||
span: #8 bytes(LO..HI),
|
||||
},
|
||||
Ident {
|
||||
ident: "S",
|
||||
span: #7 bytes(LO..HI),
|
||||
span: #8 bytes(LO..HI),
|
||||
},
|
||||
],
|
||||
span: #7 bytes(LO..HI),
|
||||
span: #8 bytes(LO..HI),
|
||||
},
|
||||
],
|
||||
span: #7 bytes(LO..HI),
|
||||
span: #8 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ';',
|
||||
spacing: Alone,
|
||||
span: #7 bytes(LO..HI),
|
||||
span: #8 bytes(LO..HI),
|
||||
},
|
||||
]
|
||||
|
|
|
|||
|
|
@ -2,40 +2,40 @@ PRINT-BANG INPUT (DISPLAY): struct M ($crate :: S) ;
|
|||
PRINT-BANG INPUT (DEBUG): TokenStream [
|
||||
Ident {
|
||||
ident: "struct",
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Ident {
|
||||
ident: "M",
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Group {
|
||||
delimiter: Parenthesis,
|
||||
stream: TokenStream [
|
||||
Ident {
|
||||
ident: "$crate",
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ':',
|
||||
spacing: Joint,
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ':',
|
||||
spacing: Alone,
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Ident {
|
||||
ident: "S",
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
],
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ';',
|
||||
spacing: Alone,
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
]
|
||||
PRINT-ATTR INPUT (DISPLAY): struct A(crate::S);
|
||||
|
|
@ -43,40 +43,40 @@ PRINT-ATTR RE-COLLECTED (DISPLAY): struct A ($crate :: S) ;
|
|||
PRINT-ATTR INPUT (DEBUG): TokenStream [
|
||||
Ident {
|
||||
ident: "struct",
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Ident {
|
||||
ident: "A",
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Group {
|
||||
delimiter: Parenthesis,
|
||||
stream: TokenStream [
|
||||
Ident {
|
||||
ident: "$crate",
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ':',
|
||||
spacing: Joint,
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ':',
|
||||
spacing: Alone,
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Ident {
|
||||
ident: "S",
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
],
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ';',
|
||||
spacing: Alone,
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
]
|
||||
PRINT-DERIVE INPUT (DISPLAY): struct D(crate::S);
|
||||
|
|
@ -84,80 +84,80 @@ PRINT-DERIVE RE-COLLECTED (DISPLAY): struct D ($crate :: S) ;
|
|||
PRINT-DERIVE INPUT (DEBUG): TokenStream [
|
||||
Ident {
|
||||
ident: "struct",
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Ident {
|
||||
ident: "D",
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Group {
|
||||
delimiter: Parenthesis,
|
||||
stream: TokenStream [
|
||||
Ident {
|
||||
ident: "$crate",
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ':',
|
||||
spacing: Joint,
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ':',
|
||||
spacing: Alone,
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Ident {
|
||||
ident: "S",
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
],
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ';',
|
||||
spacing: Alone,
|
||||
span: #2 bytes(LO..HI),
|
||||
span: #3 bytes(LO..HI),
|
||||
},
|
||||
]
|
||||
PRINT-BANG INPUT (DISPLAY): struct M ($crate :: S) ;
|
||||
PRINT-BANG INPUT (DEBUG): TokenStream [
|
||||
Ident {
|
||||
ident: "struct",
|
||||
span: #9 bytes(LO..HI),
|
||||
span: #10 bytes(LO..HI),
|
||||
},
|
||||
Ident {
|
||||
ident: "M",
|
||||
span: #9 bytes(LO..HI),
|
||||
span: #10 bytes(LO..HI),
|
||||
},
|
||||
Group {
|
||||
delimiter: Parenthesis,
|
||||
stream: TokenStream [
|
||||
Ident {
|
||||
ident: "$crate",
|
||||
span: #9 bytes(LO..HI),
|
||||
span: #10 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ':',
|
||||
spacing: Joint,
|
||||
span: #9 bytes(LO..HI),
|
||||
span: #10 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ':',
|
||||
spacing: Alone,
|
||||
span: #9 bytes(LO..HI),
|
||||
span: #10 bytes(LO..HI),
|
||||
},
|
||||
Ident {
|
||||
ident: "S",
|
||||
span: #9 bytes(LO..HI),
|
||||
span: #10 bytes(LO..HI),
|
||||
},
|
||||
],
|
||||
span: #9 bytes(LO..HI),
|
||||
span: #10 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ';',
|
||||
spacing: Alone,
|
||||
span: #9 bytes(LO..HI),
|
||||
span: #10 bytes(LO..HI),
|
||||
},
|
||||
]
|
||||
PRINT-ATTR INPUT (DISPLAY): struct A(::dollar_crate_external::S);
|
||||
|
|
@ -165,40 +165,40 @@ PRINT-ATTR RE-COLLECTED (DISPLAY): struct A ($crate :: S) ;
|
|||
PRINT-ATTR INPUT (DEBUG): TokenStream [
|
||||
Ident {
|
||||
ident: "struct",
|
||||
span: #9 bytes(LO..HI),
|
||||
span: #10 bytes(LO..HI),
|
||||
},
|
||||
Ident {
|
||||
ident: "A",
|
||||
span: #9 bytes(LO..HI),
|
||||
span: #10 bytes(LO..HI),
|
||||
},
|
||||
Group {
|
||||
delimiter: Parenthesis,
|
||||
stream: TokenStream [
|
||||
Ident {
|
||||
ident: "$crate",
|
||||
span: #9 bytes(LO..HI),
|
||||
span: #10 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ':',
|
||||
spacing: Joint,
|
||||
span: #9 bytes(LO..HI),
|
||||
span: #10 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ':',
|
||||
spacing: Alone,
|
||||
span: #9 bytes(LO..HI),
|
||||
span: #10 bytes(LO..HI),
|
||||
},
|
||||
Ident {
|
||||
ident: "S",
|
||||
span: #9 bytes(LO..HI),
|
||||
span: #10 bytes(LO..HI),
|
||||
},
|
||||
],
|
||||
span: #9 bytes(LO..HI),
|
||||
span: #10 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ';',
|
||||
spacing: Alone,
|
||||
span: #9 bytes(LO..HI),
|
||||
span: #10 bytes(LO..HI),
|
||||
},
|
||||
]
|
||||
PRINT-DERIVE INPUT (DISPLAY): struct D(::dollar_crate_external::S);
|
||||
|
|
@ -206,39 +206,39 @@ PRINT-DERIVE RE-COLLECTED (DISPLAY): struct D ($crate :: S) ;
|
|||
PRINT-DERIVE INPUT (DEBUG): TokenStream [
|
||||
Ident {
|
||||
ident: "struct",
|
||||
span: #9 bytes(LO..HI),
|
||||
span: #10 bytes(LO..HI),
|
||||
},
|
||||
Ident {
|
||||
ident: "D",
|
||||
span: #9 bytes(LO..HI),
|
||||
span: #10 bytes(LO..HI),
|
||||
},
|
||||
Group {
|
||||
delimiter: Parenthesis,
|
||||
stream: TokenStream [
|
||||
Ident {
|
||||
ident: "$crate",
|
||||
span: #9 bytes(LO..HI),
|
||||
span: #10 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ':',
|
||||
spacing: Joint,
|
||||
span: #9 bytes(LO..HI),
|
||||
span: #10 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ':',
|
||||
spacing: Alone,
|
||||
span: #9 bytes(LO..HI),
|
||||
span: #10 bytes(LO..HI),
|
||||
},
|
||||
Ident {
|
||||
ident: "S",
|
||||
span: #9 bytes(LO..HI),
|
||||
span: #10 bytes(LO..HI),
|
||||
},
|
||||
],
|
||||
span: #9 bytes(LO..HI),
|
||||
span: #10 bytes(LO..HI),
|
||||
},
|
||||
Punct {
|
||||
ch: ';',
|
||||
spacing: Alone,
|
||||
span: #9 bytes(LO..HI),
|
||||
span: #10 bytes(LO..HI),
|
||||
},
|
||||
]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue