Skip to content

Commit 2183cda

Browse files
committed
Auto merge of #2996 - rust-lang:rustup-2023-07-30, r=oli-obk
Automatic sync from rustc
2 parents 70757fb + a4bfcbe commit 2183cda

File tree

653 files changed

+9104
-8053
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

653 files changed

+9104
-8053
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ jobs:
5555
- name: mingw-check-tidy
5656
os: ubuntu-20.04-16core-64gb
5757
env: {}
58-
- name: x86_64-gnu-llvm-14
58+
- name: x86_64-gnu-llvm-15
5959
os: ubuntu-20.04-16core-64gb
6060
env: {}
6161
- name: x86_64-gnu-tools
@@ -293,10 +293,6 @@ jobs:
293293
env:
294294
RUST_BACKTRACE: 1
295295
os: ubuntu-20.04-8core-32gb
296-
- name: x86_64-gnu-llvm-14
297-
env:
298-
RUST_BACKTRACE: 1
299-
os: ubuntu-20.04-8core-32gb
300296
- name: x86_64-gnu-nopt
301297
os: ubuntu-20.04-4core-16gb
302298
env: {}

Cargo.lock

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ dependencies = [
220220
"proc-macro2",
221221
"quote",
222222
"serde",
223-
"syn 2.0.8",
223+
"syn 2.0.27",
224224
]
225225

226226
[[package]]
@@ -502,7 +502,7 @@ dependencies = [
502502
"heck",
503503
"proc-macro2",
504504
"quote",
505-
"syn 2.0.8",
505+
"syn 2.0.27",
506506
]
507507

508508
[[package]]
@@ -527,7 +527,7 @@ dependencies = [
527527
"regex",
528528
"rustc_tools_util",
529529
"serde",
530-
"syn 2.0.8",
530+
"syn 2.0.27",
531531
"tempfile",
532532
"termize",
533533
"tester",
@@ -842,7 +842,7 @@ version = "0.1.73"
842842
dependencies = [
843843
"itertools",
844844
"quote",
845-
"syn 2.0.8",
845+
"syn 2.0.27",
846846
]
847847

848848
[[package]]
@@ -943,7 +943,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
943943
dependencies = [
944944
"proc-macro2",
945945
"quote",
946-
"syn 2.0.8",
946+
"syn 2.0.27",
947947
]
948948

949949
[[package]]
@@ -1309,7 +1309,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
13091309
dependencies = [
13101310
"proc-macro2",
13111311
"quote",
1312-
"syn 2.0.8",
1312+
"syn 2.0.27",
13131313
]
13141314

13151315
[[package]]
@@ -2456,7 +2456,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
24562456
dependencies = [
24572457
"proc-macro2",
24582458
"quote",
2459-
"syn 2.0.8",
2459+
"syn 2.0.27",
24602460
]
24612461

24622462
[[package]]
@@ -2643,7 +2643,7 @@ dependencies = [
26432643
"pest_meta",
26442644
"proc-macro2",
26452645
"quote",
2646-
"syn 2.0.8",
2646+
"syn 2.0.27",
26472647
]
26482648

26492649
[[package]]
@@ -3586,7 +3586,7 @@ dependencies = [
35863586
"fluent-syntax",
35873587
"proc-macro2",
35883588
"quote",
3589-
"syn 2.0.8",
3589+
"syn 2.0.27",
35903590
"unic-langid",
35913591
]
35923592

@@ -3734,7 +3734,6 @@ dependencies = [
37343734
name = "rustc_interface"
37353735
version = "0.0.0"
37363736
dependencies = [
3737-
"atty",
37383737
"libloading",
37393738
"rustc-rayon",
37403739
"rustc-rayon-core",
@@ -3856,7 +3855,7 @@ version = "0.1.0"
38563855
dependencies = [
38573856
"proc-macro2",
38583857
"quote",
3859-
"syn 2.0.8",
3858+
"syn 2.0.27",
38603859
"synstructure 0.13.0",
38613860
]
38623861

@@ -4198,7 +4197,6 @@ dependencies = [
41984197
name = "rustc_session"
41994198
version = "0.0.0"
42004199
dependencies = [
4201-
"atty",
42024200
"bitflags 1.3.2",
42034201
"getopts",
42044202
"libc",
@@ -4464,7 +4462,7 @@ dependencies = [
44644462
"proc-macro2",
44654463
"quote",
44664464
"serde",
4467-
"syn 2.0.8",
4465+
"syn 2.0.27",
44684466
]
44694467

44704468
[[package]]
@@ -4631,7 +4629,7 @@ checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68"
46314629
dependencies = [
46324630
"proc-macro2",
46334631
"quote",
4634-
"syn 2.0.8",
4632+
"syn 2.0.27",
46354633
]
46364634

46374635
[[package]]
@@ -4912,9 +4910,9 @@ dependencies = [
49124910

49134911
[[package]]
49144912
name = "syn"
4915-
version = "2.0.8"
4913+
version = "2.0.27"
49164914
source = "registry+https://github.com/rust-lang/crates.io-index"
4917-
checksum = "bcc02725fd69ab9f26eab07fad303e2497fad6fb9eba4f96c4d1687bdf704ad9"
4915+
checksum = "b60f673f44a8255b9c8c657daf66a596d435f2da81a555b06dc644d080ba45e0"
49184916
dependencies = [
49194917
"proc-macro2",
49204918
"quote",
@@ -4941,7 +4939,7 @@ checksum = "285ba80e733fac80aa4270fbcdf83772a79b80aa35c97075320abfee4a915b06"
49414939
dependencies = [
49424940
"proc-macro2",
49434941
"quote",
4944-
"syn 2.0.8",
4942+
"syn 2.0.27",
49454943
"unicode-xid",
49464944
]
49474945

@@ -5091,7 +5089,7 @@ checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
50915089
dependencies = [
50925090
"proc-macro2",
50935091
"quote",
5094-
"syn 2.0.8",
5092+
"syn 2.0.27",
50955093
]
50965094

50975095
[[package]]
@@ -5312,7 +5310,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
53125310
dependencies = [
53135311
"proc-macro2",
53145312
"quote",
5315-
"syn 2.0.8",
5313+
"syn 2.0.27",
53165314
]
53175315

53185316
[[package]]
@@ -5742,7 +5740,7 @@ dependencies = [
57425740
"once_cell",
57435741
"proc-macro2",
57445742
"quote",
5745-
"syn 2.0.8",
5743+
"syn 2.0.27",
57465744
"wasm-bindgen-shared",
57475745
]
57485746

@@ -5776,7 +5774,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
57765774
dependencies = [
57775775
"proc-macro2",
57785776
"quote",
5779-
"syn 2.0.8",
5777+
"syn 2.0.27",
57805778
"wasm-bindgen-backend",
57815779
"wasm-bindgen-shared",
57825780
]

compiler/rustc_ast/src/ast.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2947,6 +2947,7 @@ pub struct StaticItem {
29472947
#[derive(Clone, Encodable, Decodable, Debug)]
29482948
pub struct ConstItem {
29492949
pub defaultness: Defaultness,
2950+
pub generics: Generics,
29502951
pub ty: P<Ty>,
29512952
pub expr: Option<P<Expr>>,
29522953
}
@@ -3058,6 +3059,7 @@ impl ItemKind {
30583059
match self {
30593060
Self::Fn(box Fn { generics, .. })
30603061
| Self::TyAlias(box TyAlias { generics, .. })
3062+
| Self::Const(box ConstItem { generics, .. })
30613063
| Self::Enum(_, generics)
30623064
| Self::Struct(_, generics)
30633065
| Self::Union(_, generics)

compiler/rustc_ast/src/attr/mod.rs

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -285,17 +285,17 @@ impl MetaItem {
285285
self.kind.value_str()
286286
}
287287

288-
fn from_tokens<I>(tokens: &mut iter::Peekable<I>) -> Option<MetaItem>
288+
fn from_tokens<'a, I>(tokens: &mut iter::Peekable<I>) -> Option<MetaItem>
289289
where
290-
I: Iterator<Item = TokenTree>,
290+
I: Iterator<Item = &'a TokenTree>,
291291
{
292292
// FIXME: Share code with `parse_path`.
293-
let path = match tokens.next().map(TokenTree::uninterpolate) {
294-
Some(TokenTree::Token(
295-
Token { kind: kind @ (token::Ident(..) | token::ModSep), span },
293+
let path = match tokens.next().map(|tt| TokenTree::uninterpolate(tt)).as_deref() {
294+
Some(&TokenTree::Token(
295+
Token { kind: ref kind @ (token::Ident(..) | token::ModSep), span },
296296
_,
297297
)) => 'arm: {
298-
let mut segments = if let token::Ident(name, _) = kind {
298+
let mut segments = if let &token::Ident(name, _) = kind {
299299
if let Some(TokenTree::Token(Token { kind: token::ModSep, .. }, _)) =
300300
tokens.peek()
301301
{
@@ -308,8 +308,8 @@ impl MetaItem {
308308
thin_vec![PathSegment::path_root(span)]
309309
};
310310
loop {
311-
if let Some(TokenTree::Token(Token { kind: token::Ident(name, _), span }, _)) =
312-
tokens.next().map(TokenTree::uninterpolate)
311+
if let Some(&TokenTree::Token(Token { kind: token::Ident(name, _), span }, _)) =
312+
tokens.next().map(|tt| TokenTree::uninterpolate(tt)).as_deref()
313313
{
314314
segments.push(PathSegment::from_ident(Ident::new(name, span)));
315315
} else {
@@ -326,7 +326,7 @@ impl MetaItem {
326326
let span = span.with_hi(segments.last().unwrap().ident.span.hi());
327327
Path { span, segments, tokens: None }
328328
}
329-
Some(TokenTree::Token(Token { kind: token::Interpolated(nt), .. }, _)) => match &*nt {
329+
Some(TokenTree::Token(Token { kind: token::Interpolated(nt), .. }, _)) => match &**nt {
330330
token::Nonterminal::NtMeta(item) => return item.meta(item.path.span),
331331
token::Nonterminal::NtPath(path) => (**path).clone(),
332332
_ => return None,
@@ -354,7 +354,7 @@ impl MetaItemKind {
354354
}
355355

356356
fn list_from_tokens(tokens: TokenStream) -> Option<ThinVec<NestedMetaItem>> {
357-
let mut tokens = tokens.into_trees().peekable();
357+
let mut tokens = tokens.trees().peekable();
358358
let mut result = ThinVec::new();
359359
while tokens.peek().is_some() {
360360
let item = NestedMetaItem::from_tokens(&mut tokens)?;
@@ -367,12 +367,12 @@ impl MetaItemKind {
367367
Some(result)
368368
}
369369

370-
fn name_value_from_tokens(
371-
tokens: &mut impl Iterator<Item = TokenTree>,
370+
fn name_value_from_tokens<'a>(
371+
tokens: &mut impl Iterator<Item = &'a TokenTree>,
372372
) -> Option<MetaItemKind> {
373373
match tokens.next() {
374374
Some(TokenTree::Delimited(_, Delimiter::Invisible, inner_tokens)) => {
375-
MetaItemKind::name_value_from_tokens(&mut inner_tokens.into_trees())
375+
MetaItemKind::name_value_from_tokens(&mut inner_tokens.trees())
376376
}
377377
Some(TokenTree::Token(token, _)) => {
378378
MetaItemLit::from_token(&token).map(MetaItemKind::NameValue)
@@ -381,8 +381,8 @@ impl MetaItemKind {
381381
}
382382
}
383383

384-
fn from_tokens(
385-
tokens: &mut iter::Peekable<impl Iterator<Item = TokenTree>>,
384+
fn from_tokens<'a>(
385+
tokens: &mut iter::Peekable<impl Iterator<Item = &'a TokenTree>>,
386386
) -> Option<MetaItemKind> {
387387
match tokens.peek() {
388388
Some(TokenTree::Delimited(_, Delimiter::Parenthesis, inner_tokens)) => {
@@ -501,9 +501,9 @@ impl NestedMetaItem {
501501
self.meta_item().is_some()
502502
}
503503

504-
fn from_tokens<I>(tokens: &mut iter::Peekable<I>) -> Option<NestedMetaItem>
504+
fn from_tokens<'a, I>(tokens: &mut iter::Peekable<I>) -> Option<NestedMetaItem>
505505
where
506-
I: Iterator<Item = TokenTree>,
506+
I: Iterator<Item = &'a TokenTree>,
507507
{
508508
match tokens.peek() {
509509
Some(TokenTree::Token(token, _))
@@ -513,9 +513,8 @@ impl NestedMetaItem {
513513
return Some(NestedMetaItem::Lit(lit));
514514
}
515515
Some(TokenTree::Delimited(_, Delimiter::Invisible, inner_tokens)) => {
516-
let inner_tokens = inner_tokens.clone();
517516
tokens.next();
518-
return NestedMetaItem::from_tokens(&mut inner_tokens.into_trees().peekable());
517+
return NestedMetaItem::from_tokens(&mut inner_tokens.trees().peekable());
519518
}
520519
_ => {}
521520
}

compiler/rustc_ast/src/mut_visit.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1149,10 +1149,11 @@ pub fn noop_flat_map_assoc_item<T: MutVisitor>(
11491149
}
11501150

11511151
fn visit_const_item<T: MutVisitor>(
1152-
ConstItem { defaultness, ty, expr }: &mut ConstItem,
1152+
ConstItem { defaultness, generics, ty, expr }: &mut ConstItem,
11531153
visitor: &mut T,
11541154
) {
11551155
visit_defaultness(defaultness, visitor);
1156+
visitor.visit_generics(generics);
11561157
visitor.visit_ty(ty);
11571158
visit_opt(expr, |expr| visitor.visit_expr(expr));
11581159
}

compiler/rustc_ast/src/token.rs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,9 @@ fn ident_can_begin_type(name: Symbol, span: Span, is_raw: bool) -> bool {
226226
.contains(&name)
227227
}
228228

229-
#[derive(Clone, PartialEq, Encodable, Decodable, Debug, HashStable_Generic)]
229+
// SAFETY: due to the `Clone` impl below, all fields of all variants other than
230+
// `Interpolated` must impl `Copy`.
231+
#[derive(PartialEq, Encodable, Decodable, Debug, HashStable_Generic)]
230232
pub enum TokenKind {
231233
/* Expression-operator symbols. */
232234
Eq,
@@ -299,6 +301,19 @@ pub enum TokenKind {
299301
Eof,
300302
}
301303

304+
impl Clone for TokenKind {
305+
fn clone(&self) -> Self {
306+
// `TokenKind` would impl `Copy` if it weren't for `Interpolated`. So
307+
// for all other variants, this implementation of `clone` is just like
308+
// a copy. This is faster than the `derive(Clone)` version which has a
309+
// separate path for every variant.
310+
match self {
311+
Interpolated(nt) => Interpolated(nt.clone()),
312+
_ => unsafe { std::ptr::read(self) },
313+
}
314+
}
315+
}
316+
302317
#[derive(Clone, PartialEq, Encodable, Decodable, Debug, HashStable_Generic)]
303318
pub struct Token {
304319
pub kind: TokenKind,

0 commit comments

Comments
 (0)