Auto merge of #50069 - alexcrichton:fix-proc-macro, r=nrc

proc_macro: Stay on the "use the cache" path more

Discovered in #50061 we're falling off the "happy path" of using a stringified
token stream more often than we should. This was due to the fact that a
user-written token like `0xf` is equality-different from the stringified token
of `15` (despite being semantically equivalent).

This patch updates the call to `eq_unspanned` with an even more awful solution,
`probably_equal_for_proc_macro`, which ignores the value of each token and
basically only compares the structure of the token stream, assuming that the AST
doesn't change just one token at a time.

While this is a step towards fixing #50061 there is still one regression
from #49154 which needs to be fixed.
This commit is contained in:
bors 2018-04-20 05:34:17 +00:00
commit 257d43d0d5
3 changed files with 127 additions and 9 deletions

View file

@ -21,6 +21,8 @@ use attribute_with_error::foo;
fn test1() {
let a: i32 = "foo";
//~^ ERROR: mismatched types
let b: i32 = "f'oo";
//~^ ERROR: mismatched types
}
fn test2() {