Skip to content

Commit 24e101c

Browse files
authored
Rollup merge of #71542 - crlf0710:confusable_idents, r=petrochenkov
Implement `confusable_idents` lint. This collects all identifier symbols into `ParseSession` and examines them within the non-ascii-idents lint. The skeleton generation part needs to be added to `unicode-security` crate. Will update this PR when the crate is updated. r? @petrochenkov EDIT: also included the `concat_idents` part.
2 parents ffe0a1c + f3ec00a commit 24e101c

File tree

9 files changed

+237
-48
lines changed

9 files changed

+237
-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]]
@@ -3613,7 +3613,7 @@ dependencies = [
36133613
"rustc_session",
36143614
"rustc_span",
36153615
"rustc_target",
3616-
"smallvec 1.0.0",
3616+
"smallvec 1.4.0",
36173617
]
36183618

36193619
[[package]]
@@ -3642,7 +3642,7 @@ dependencies = [
36423642
"rustc_span",
36433643
"rustc_target",
36443644
"serialize",
3645-
"smallvec 1.0.0",
3645+
"smallvec 1.4.0",
36463646
]
36473647

36483648
[[package]]
@@ -3695,7 +3695,7 @@ dependencies = [
36953695
"rustc-rayon-core",
36963696
"rustc_index",
36973697
"serialize",
3698-
"smallvec 1.0.0",
3698+
"smallvec 1.4.0",
36993699
"stable_deref_trait",
37003700
"winapi 0.3.8",
37013701
]
@@ -3769,7 +3769,7 @@ dependencies = [
37693769
"rustc_session",
37703770
"rustc_span",
37713771
"serialize",
3772-
"smallvec 1.0.0",
3772+
"smallvec 1.4.0",
37733773
]
37743774

37753775
[[package]]
@@ -3798,7 +3798,7 @@ dependencies = [
37983798
"rustc_span",
37993799
"rustc_target",
38003800
"serialize",
3801-
"smallvec 1.0.0",
3801+
"smallvec 1.4.0",
38023802
]
38033803

38043804
[[package]]
@@ -3834,7 +3834,7 @@ name = "rustc_index"
38343834
version = "0.0.0"
38353835
dependencies = [
38363836
"serialize",
3837-
"smallvec 1.0.0",
3837+
"smallvec 1.4.0",
38383838
]
38393839

38403840
[[package]]
@@ -3854,7 +3854,7 @@ dependencies = [
38543854
"rustc_span",
38553855
"rustc_target",
38563856
"serialize",
3857-
"smallvec 1.0.0",
3857+
"smallvec 1.4.0",
38583858
]
38593859

38603860
[[package]]
@@ -3896,7 +3896,7 @@ dependencies = [
38963896
"rustc_ty",
38973897
"rustc_typeck",
38983898
"serialize",
3899-
"smallvec 1.0.0",
3899+
"smallvec 1.4.0",
39003900
"tempfile",
39013901
"winapi 0.3.8",
39023902
]
@@ -3969,7 +3969,7 @@ dependencies = [
39693969
"rustc_span",
39703970
"rustc_target",
39713971
"serialize",
3972-
"smallvec 1.0.0",
3972+
"smallvec 1.4.0",
39733973
"stable_deref_trait",
39743974
"winapi 0.3.8",
39753975
]
@@ -4001,7 +4001,7 @@ dependencies = [
40014001
"rustc_target",
40024002
"scoped-tls",
40034003
"serialize",
4004-
"smallvec 1.0.0",
4004+
"smallvec 1.4.0",
40054005
]
40064006

40074007
[[package]]
@@ -4030,7 +4030,7 @@ dependencies = [
40304030
"rustc_target",
40314031
"rustc_trait_selection",
40324032
"serialize",
4033-
"smallvec 1.0.0",
4033+
"smallvec 1.4.0",
40344034
]
40354035

40364036
[[package]]
@@ -4054,7 +4054,7 @@ dependencies = [
40544054
"rustc_target",
40554055
"rustc_trait_selection",
40564056
"serialize",
4057-
"smallvec 1.0.0",
4057+
"smallvec 1.4.0",
40584058
]
40594059

40604060
[[package]]
@@ -4135,7 +4135,7 @@ dependencies = [
41354135
"rustc_index",
41364136
"rustc_span",
41374137
"serialize",
4138-
"smallvec 1.0.0",
4138+
"smallvec 1.4.0",
41394139
]
41404140

41414141
[[package]]
@@ -4158,7 +4158,7 @@ dependencies = [
41584158
"rustc_middle",
41594159
"rustc_session",
41604160
"rustc_span",
4161-
"smallvec 1.0.0",
4161+
"smallvec 1.4.0",
41624162
]
41634163

41644164
[[package]]
@@ -4273,7 +4273,7 @@ dependencies = [
42734273
"rustc_session",
42744274
"rustc_span",
42754275
"rustc_target",
4276-
"smallvec 1.0.0",
4276+
"smallvec 1.4.0",
42774277
]
42784278

42794279
[[package]]
@@ -4288,7 +4288,7 @@ dependencies = [
42884288
"rustc_middle",
42894289
"rustc_span",
42904290
"rustc_trait_selection",
4291-
"smallvec 1.0.0",
4291+
"smallvec 1.4.0",
42924292
]
42934293

42944294
[[package]]
@@ -4325,7 +4325,7 @@ dependencies = [
43254325
"rustc_span",
43264326
"rustc_target",
43274327
"rustc_trait_selection",
4328-
"smallvec 1.0.0",
4328+
"smallvec 1.4.0",
43294329
]
43304330

43314331
[[package]]
@@ -4569,7 +4569,7 @@ name = "serialize"
45694569
version = "0.0.0"
45704570
dependencies = [
45714571
"indexmap",
4572-
"smallvec 1.0.0",
4572+
"smallvec 1.4.0",
45734573
]
45744574

45754575
[[package]]
@@ -4636,9 +4636,9 @@ checksum = "ab606a9c5e214920bb66c458cd7be8ef094f813f20fe77a54cc7dbfff220d4b7"
46364636

46374637
[[package]]
46384638
name = "smallvec"
4639-
version = "1.0.0"
4639+
version = "1.4.0"
46404640
source = "registry+https://github.com/rust-lang/crates.io-index"
4641-
checksum = "4ecf3b85f68e8abaa7555aa5abdb1153079387e60b718283d732f03897fcfc86"
4641+
checksum = "c7cb5678e1615754284ec264d9bb5b4c27d2018577fd90ac0ceb578591ed5ee4"
46424642

46434643
[[package]]
46444644
name = "socket2"
@@ -5360,11 +5360,11 @@ dependencies = [
53605360

53615361
[[package]]
53625362
name = "unicode-normalization"
5363-
version = "0.1.11"
5363+
version = "0.1.12"
53645364
source = "registry+https://github.com/rust-lang/crates.io-index"
5365-
checksum = "b561e267b2326bb4cebfc0ef9e68355c7abe6c6f522aeac2f5bf95d56c59bdcf"
5365+
checksum = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4"
53665366
dependencies = [
5367-
"smallvec 1.0.0",
5367+
"smallvec 1.4.0",
53685368
]
53695369

53705370
[[package]]
@@ -5375,10 +5375,11 @@ checksum = "5b2c5c29e805da6817f5af6a627d65adb045cebf05cccd5a3493d6109454391c"
53755375

53765376
[[package]]
53775377
name = "unicode-security"
5378-
version = "0.0.2"
5378+
version = "0.0.3"
53795379
source = "registry+https://github.com/rust-lang/crates.io-index"
5380-
checksum = "c49d35967fa037b881acc34ef717c38c4b5560eba10e3685271b3f530bb19634"
5380+
checksum = "a5f9011bbed9c13372bc8df618b55a38138445199caf3b61d432c6859c36dee0"
53815381
dependencies = [
5382+
"unicode-normalization",
53825383
"unicode-script",
53835384
]
53845385

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)