Skip to content

Commit c05961c

Browse files
committed
Implement confusable_idents lint.
1 parent 53d3bc0 commit c05961c

File tree

9 files changed

+192
-48
lines changed

9 files changed

+192
-48
lines changed

Cargo.lock

+41-40
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ name = "arena"
7474
version = "0.0.0"
7575
dependencies = [
7676
"rustc_data_structures",
77-
"smallvec 1.0.0",
77+
"smallvec 1.4.0",
7878
]
7979

8080
[[package]]
@@ -492,7 +492,7 @@ dependencies = [
492492
"regex-syntax",
493493
"semver",
494494
"serde",
495-
"smallvec 1.0.0",
495+
"smallvec 1.4.0",
496496
"toml",
497497
"unicode-normalization",
498498
"url 2.1.0",
@@ -2428,7 +2428,7 @@ dependencies = [
24282428
"cloudabi",
24292429
"libc",
24302430
"redox_syscall",
2431-
"smallvec 1.0.0",
2431+
"smallvec 1.4.0",
24322432
"winapi 0.3.8",
24332433
]
24342434

@@ -3151,7 +3151,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
31513151
checksum = "81dfcfbb0ddfd533abf8c076e3b49d1e5042d1962526a12ce2c66d514b24cca3"
31523152
dependencies = [
31533153
"rustc-ap-rustc_data_structures",
3154-
"smallvec 1.0.0",
3154+
"smallvec 1.4.0",
31553155
]
31563156

31573157
[[package]]
@@ -3174,7 +3174,7 @@ dependencies = [
31743174
"rustc-ap-rustc_span",
31753175
"rustc-ap-serialize",
31763176
"scoped-tls",
3177-
"smallvec 1.0.0",
3177+
"smallvec 1.4.0",
31783178
]
31793179

31803180
[[package]]
@@ -3223,7 +3223,7 @@ dependencies = [
32233223
"rustc-ap-rustc_session",
32243224
"rustc-ap-rustc_span",
32253225
"rustc-ap-serialize",
3226-
"smallvec 1.0.0",
3226+
"smallvec 1.4.0",
32273227
]
32283228

32293229
[[package]]
@@ -3249,7 +3249,7 @@ dependencies = [
32493249
"rustc-hash",
32503250
"rustc-rayon",
32513251
"rustc-rayon-core",
3252-
"smallvec 1.0.0",
3252+
"smallvec 1.4.0",
32533253
"stable_deref_trait",
32543254
"winapi 0.3.8",
32553255
]
@@ -3291,7 +3291,7 @@ dependencies = [
32913291
"rustc-ap-rustc_session",
32923292
"rustc-ap-rustc_span",
32933293
"rustc-ap-serialize",
3294-
"smallvec 1.0.0",
3294+
"smallvec 1.4.0",
32953295
]
32963296

32973297
[[package]]
@@ -3318,7 +3318,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
33183318
checksum = "32220c3e6cdf226f38e4474b747dca15f3106bb680c74f10b299af3f6cdb1663"
33193319
dependencies = [
33203320
"rustc-ap-serialize",
3321-
"smallvec 1.0.0",
3321+
"smallvec 1.4.0",
33223322
]
33233323

33243324
[[package]]
@@ -3358,7 +3358,7 @@ dependencies = [
33583358
"rustc-ap-rustc_lexer",
33593359
"rustc-ap-rustc_session",
33603360
"rustc-ap-rustc_span",
3361-
"smallvec 1.0.0",
3361+
"smallvec 1.4.0",
33623362
"unicode-normalization",
33633363
]
33643364

@@ -3423,7 +3423,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
34233423
checksum = "756e8f526ec7906e132188bf25e3c10a6ee42ab77294ecb3b3602647f0508eef"
34243424
dependencies = [
34253425
"indexmap",
3426-
"smallvec 1.0.0",
3426+
"smallvec 1.4.0",
34273427
]
34283428

34293429
[[package]]
@@ -3507,7 +3507,7 @@ dependencies = [
35073507
"serde",
35083508
"serde_json",
35093509
"smallvec 0.6.10",
3510-
"smallvec 1.0.0",
3510+
"smallvec 1.4.0",
35113511
"syn 0.15.35",
35123512
"url 2.1.0",
35133513
"winapi 0.3.8",
@@ -3518,7 +3518,7 @@ name = "rustc_apfloat"
35183518
version = "0.0.0"
35193519
dependencies = [
35203520
"bitflags",
3521-
"smallvec 1.0.0",
3521+
"smallvec 1.4.0",
35223522
]
35233523

35243524
[[package]]
@@ -3533,7 +3533,7 @@ dependencies = [
35333533
"rustc_span",
35343534
"scoped-tls",
35353535
"serialize",
3536-
"smallvec 1.0.0",
3536+
"smallvec 1.4.0",
35373537
]
35383538

35393539
[[package]]
@@ -3551,7 +3551,7 @@ dependencies = [
35513551
"rustc_session",
35523552
"rustc_span",
35533553
"rustc_target",
3554-
"smallvec 1.0.0",
3554+
"smallvec 1.4.0",
35553555
]
35563556

35573557
[[package]]
@@ -3612,7 +3612,7 @@ dependencies = [
36123612
"rustc_session",
36133613
"rustc_span",
36143614
"rustc_target",
3615-
"smallvec 1.0.0",
3615+
"smallvec 1.4.0",
36163616
]
36173617

36183618
[[package]]
@@ -3641,7 +3641,7 @@ dependencies = [
36413641
"rustc_span",
36423642
"rustc_target",
36433643
"serialize",
3644-
"smallvec 1.0.0",
3644+
"smallvec 1.4.0",
36453645
]
36463646

36473647
[[package]]
@@ -3694,7 +3694,7 @@ dependencies = [
36943694
"rustc-rayon-core",
36953695
"rustc_index",
36963696
"serialize",
3697-
"smallvec 1.0.0",
3697+
"smallvec 1.4.0",
36983698
"stable_deref_trait",
36993699
"winapi 0.3.8",
37003700
]
@@ -3768,7 +3768,7 @@ dependencies = [
37683768
"rustc_session",
37693769
"rustc_span",
37703770
"serialize",
3771-
"smallvec 1.0.0",
3771+
"smallvec 1.4.0",
37723772
]
37733773

37743774
[[package]]
@@ -3797,7 +3797,7 @@ dependencies = [
37973797
"rustc_span",
37983798
"rustc_target",
37993799
"serialize",
3800-
"smallvec 1.0.0",
3800+
"smallvec 1.4.0",
38013801
]
38023802

38033803
[[package]]
@@ -3833,7 +3833,7 @@ name = "rustc_index"
38333833
version = "0.0.0"
38343834
dependencies = [
38353835
"serialize",
3836-
"smallvec 1.0.0",
3836+
"smallvec 1.4.0",
38373837
]
38383838

38393839
[[package]]
@@ -3853,7 +3853,7 @@ dependencies = [
38533853
"rustc_span",
38543854
"rustc_target",
38553855
"serialize",
3856-
"smallvec 1.0.0",
3856+
"smallvec 1.4.0",
38573857
]
38583858

38593859
[[package]]
@@ -3895,7 +3895,7 @@ dependencies = [
38953895
"rustc_ty",
38963896
"rustc_typeck",
38973897
"serialize",
3898-
"smallvec 1.0.0",
3898+
"smallvec 1.4.0",
38993899
"tempfile",
39003900
"winapi 0.3.8",
39013901
]
@@ -3968,7 +3968,7 @@ dependencies = [
39683968
"rustc_span",
39693969
"rustc_target",
39703970
"serialize",
3971-
"smallvec 1.0.0",
3971+
"smallvec 1.4.0",
39723972
"stable_deref_trait",
39733973
"winapi 0.3.8",
39743974
]
@@ -4000,7 +4000,7 @@ dependencies = [
40004000
"rustc_target",
40014001
"scoped-tls",
40024002
"serialize",
4003-
"smallvec 1.0.0",
4003+
"smallvec 1.4.0",
40044004
]
40054005

40064006
[[package]]
@@ -4029,7 +4029,7 @@ dependencies = [
40294029
"rustc_target",
40304030
"rustc_trait_selection",
40314031
"serialize",
4032-
"smallvec 1.0.0",
4032+
"smallvec 1.4.0",
40334033
]
40344034

40354035
[[package]]
@@ -4053,7 +4053,7 @@ dependencies = [
40534053
"rustc_target",
40544054
"rustc_trait_selection",
40554055
"serialize",
4056-
"smallvec 1.0.0",
4056+
"smallvec 1.4.0",
40574057
]
40584058

40594059
[[package]]
@@ -4134,7 +4134,7 @@ dependencies = [
41344134
"rustc_index",
41354135
"rustc_span",
41364136
"serialize",
4137-
"smallvec 1.0.0",
4137+
"smallvec 1.4.0",
41384138
]
41394139

41404140
[[package]]
@@ -4157,7 +4157,7 @@ dependencies = [
41574157
"rustc_middle",
41584158
"rustc_session",
41594159
"rustc_span",
4160-
"smallvec 1.0.0",
4160+
"smallvec 1.4.0",
41614161
]
41624162

41634163
[[package]]
@@ -4272,7 +4272,7 @@ dependencies = [
42724272
"rustc_session",
42734273
"rustc_span",
42744274
"rustc_target",
4275-
"smallvec 1.0.0",
4275+
"smallvec 1.4.0",
42764276
]
42774277

42784278
[[package]]
@@ -4287,7 +4287,7 @@ dependencies = [
42874287
"rustc_middle",
42884288
"rustc_span",
42894289
"rustc_trait_selection",
4290-
"smallvec 1.0.0",
4290+
"smallvec 1.4.0",
42914291
]
42924292

42934293
[[package]]
@@ -4324,7 +4324,7 @@ dependencies = [
43244324
"rustc_span",
43254325
"rustc_target",
43264326
"rustc_trait_selection",
4327-
"smallvec 1.0.0",
4327+
"smallvec 1.4.0",
43284328
]
43294329

43304330
[[package]]
@@ -4568,7 +4568,7 @@ name = "serialize"
45684568
version = "0.0.0"
45694569
dependencies = [
45704570
"indexmap",
4571-
"smallvec 1.0.0",
4571+
"smallvec 1.4.0",
45724572
]
45734573

45744574
[[package]]
@@ -4635,9 +4635,9 @@ checksum = "ab606a9c5e214920bb66c458cd7be8ef094f813f20fe77a54cc7dbfff220d4b7"
46354635

46364636
[[package]]
46374637
name = "smallvec"
4638-
version = "1.0.0"
4638+
version = "1.4.0"
46394639
source = "registry+https://github.com/rust-lang/crates.io-index"
4640-
checksum = "4ecf3b85f68e8abaa7555aa5abdb1153079387e60b718283d732f03897fcfc86"
4640+
checksum = "c7cb5678e1615754284ec264d9bb5b4c27d2018577fd90ac0ceb578591ed5ee4"
46414641

46424642
[[package]]
46434643
name = "socket2"
@@ -5359,11 +5359,11 @@ dependencies = [
53595359

53605360
[[package]]
53615361
name = "unicode-normalization"
5362-
version = "0.1.11"
5362+
version = "0.1.12"
53635363
source = "registry+https://github.com/rust-lang/crates.io-index"
5364-
checksum = "b561e267b2326bb4cebfc0ef9e68355c7abe6c6f522aeac2f5bf95d56c59bdcf"
5364+
checksum = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4"
53655365
dependencies = [
5366-
"smallvec 1.0.0",
5366+
"smallvec 1.4.0",
53675367
]
53685368

53695369
[[package]]
@@ -5374,10 +5374,11 @@ checksum = "5b2c5c29e805da6817f5af6a627d65adb045cebf05cccd5a3493d6109454391c"
53745374

53755375
[[package]]
53765376
name = "unicode-security"
5377-
version = "0.0.2"
5377+
version = "0.0.3"
53785378
source = "registry+https://github.com/rust-lang/crates.io-index"
5379-
checksum = "c49d35967fa037b881acc34ef717c38c4b5560eba10e3685271b3f530bb19634"
5379+
checksum = "a5f9011bbed9c13372bc8df618b55a38138445199caf3b61d432c6859c36dee0"
53805380
dependencies = [
5381+
"unicode-normalization",
53815382
"unicode-script",
53825383
]
53835384

src/librustc_expand/proc_macro_server.rs

+5-4
Original file line numberDiff line numberDiff line change
@@ -141,10 +141,10 @@ impl FromInternal<(TreeAndJoint, &'_ ParseSess, &'_ mut Vec<Self>)>
141141
SingleQuote => op!('\''),
142142

143143
Ident(name, false) if name == kw::DollarCrate => tt!(Ident::dollar_crate()),
144-
Ident(name, is_raw) => tt!(Ident::new(name, is_raw)),
144+
Ident(name, is_raw) => tt!(Ident::new(sess, name, is_raw)),
145145
Lifetime(name) => {
146146
let ident = ast::Ident::new(name, span).without_first_quote();
147-
stack.push(tt!(Ident::new(ident.name, false)));
147+
stack.push(tt!(Ident::new(sess, ident.name, false)));
148148
tt!(Punct::new('\'', true))
149149
}
150150
Literal(lit) => tt!(Literal { lit }),
@@ -322,7 +322,7 @@ impl Ident {
322322
false
323323
}
324324
}
325-
fn new(sym: Symbol, is_raw: bool, span: Span) -> Ident {
325+
fn new(sess: &ParseSess, sym: Symbol, is_raw: bool, span: Span) -> Ident {
326326
let sym = nfc_normalize(&sym.as_str());
327327
let string = sym.as_str();
328328
if !Self::is_valid(&string) {
@@ -331,6 +331,7 @@ impl Ident {
331331
if is_raw && !sym.can_be_raw() {
332332
panic!("`{}` cannot be a raw identifier", string);
333333
}
334+
sess.symbol_gallery.insert(sym, span);
334335
Ident { sym, is_raw, span }
335336
}
336337
fn dollar_crate(span: Span) -> Ident {
@@ -495,7 +496,7 @@ impl server::Punct for Rustc<'_> {
495496

496497
impl server::Ident for Rustc<'_> {
497498
fn new(&mut self, string: &str, span: Self::Span, is_raw: bool) -> Self::Ident {
498-
Ident::new(Symbol::intern(string), is_raw, span)
499+
Ident::new(self.sess, Symbol::intern(string), is_raw, span)
499500
}
500501
fn span(&mut self, ident: Self::Ident) -> Self::Span {
501502
ident.span

src/librustc_lint/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ path = "lib.rs"
1010

1111
[dependencies]
1212
log = "0.4"
13-
unicode-security = "0.0.2"
13+
unicode-security = "0.0.3"
1414
rustc_middle = { path = "../librustc_middle" }
1515
rustc_ast_pretty = { path = "../librustc_ast_pretty" }
1616
rustc_attr = { path = "../librustc_attr" }

0 commit comments

Comments
 (0)