about summary refs log tree commit diff
path: root/compiler/rustc_parse/src/parser
AgeCommit message (Collapse)AuthorLines
2022-01-05ast: Always keep a `NodeId` in `ast::Crate`Vadim Petrochenkov-1/+1
This makes it more uniform with other expanded nodes
2021-12-28Parse and suggest moving where clauses after equals for type aliasesJack Huey-0/+53
2021-12-19Auto merge of #91957 - nnethercote:rm-SymbolStr, r=oli-obkbors-4/+6
Remove `SymbolStr` This was originally proposed in https://github.com/rust-lang/rust/pull/74554#discussion_r466203544. As well as removing the icky `SymbolStr` type, it allows the removal of a lot of `&` and `*` occurrences. Best reviewed one commit at a time. r? `@oli-obk`
2021-12-18Rollup merge of #87901 - poliorcetics:pub-pub-pub, r=jackh726Matthias Krüger-30/+90
Fix suggestion of additional `pub` when using `pub pub fn ...` Fix #87694. Marked as draft to start with because I want to explore doing the same fix for `const const fn` and other repeated-but-valid keywords. `@rustbot` label A-diagnostics D-invalid-suggestion T-compiler
2021-12-15Auto merge of #91962 - matthiaskrgr:rollup-2g082jw, r=matthiaskrgrbors-1/+1
Rollup of 7 pull requests Successful merges: - #91880 (fix clippy::single_char_pattern perf findings) - #91885 (Remove `in_band_lifetimes` from `rustc_codegen_ssa`) - #91898 (Make `TyS::is_suggestable` check for non-suggestable types structually) - #91915 (Add another regression test for unnormalized fn args with Self) - #91916 (Fix a bunch of typos) - #91918 (Constify `bool::then{,_some}`) - #91920 (Use `tcx.def_path_hash` in `ExistentialPredicate.stable_cmp`) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2021-12-15Rollup merge of #91880 - matthiaskrgr:clippy_perf_dec, r=jyn514Matthias Krüger-1/+1
fix clippy::single_char_pattern perf findings
2021-12-15Remove unnecessary sigils around `Symbol::as_str()` calls.Nicholas Nethercote-2/+2
2021-12-14Stabilize `destructuring_assignment`Jacob Pratt-2/+0
2021-12-15Remove `SymbolStr`.Nicholas Nethercote-2/+4
By changing `as_str()` to take `&self` instead of `self`, we can just return `&str`. We're still lying about lifetimes, but it's a smaller lie than before, where `SymbolStr` contained a (fake) `&'static str`!
2021-12-14Rollup merge of #91597 - r00ster91:lessthangreaterthan, r=oli-obkMatthias Krüger-1/+33
Recover on invalid operators `<>` and `<=>` Thanks to #89871 for showing me how to do this. Next, I think it'd be nice to recover on `<=>` too, like #89871 intended, if this even works.
2021-12-14Recover on invalid operators <> and <=>r00ster91-1/+33
2021-12-14fix clippy::single_char_pattern perf findingsMatthias Krüger-1/+1
2021-12-13Use Inherited Visibility instead of None when no vis is presentAlexis Bourget-14/+20
2021-12-13Update test to new error messageAlexis Bourget-1/+1
2021-12-13Suggest remove on const async const instead of const const asyncAlexis Bourget-16/+45
2021-12-13Fix broken span and related testsAlexis Bourget-1/+1
2021-12-13Change error for pub in fn decl if already presentAlexis Bourget-14/+39
2021-12-12Auto merge of #90207 - BoxyUwU:stabilise_cg_defaults, r=lcnrbors-14/+3
Stabilise `feature(const_generics_defaults)` `feature(const_generics_defaults)` is complete implementation wise and has a pretty extensive test suite so I think is ready for stabilisation. needs stabilisation report and maybe an RFC :sweat_smile: r? `@lcnr` cc `@rust-lang/project-const-generics`
2021-12-10Rollup merge of #91625 - est31:remove_indexes, r=oli-obkMatthias Krüger-3/+3
Remove redundant [..]s
2021-12-10remove feature gate and cleanup codeEllen-14/+3
2021-12-09Rollup merge of #91634 - terrarier2111:fix-recover-from-variant-ice, r=nagisaMatthias Krüger-20/+27
Do not attempt to suggest help for overly malformed struct/function call This fixes: https://github.com/rust-lang/rust/issues/91461
2021-12-09Remove redundant [..]sest31-3/+3
2021-12-08Rollup merge of #91337 - FabianWolff:issue-91227-misspelled-macro, r=nagisaMatthias Krüger-4/+25
Add a suggestion if `macro_rules` is misspelled Fixes #91227.
2021-12-08Do not attempt to suggest help for overly malformed struct/function callthreadexception-20/+27
2021-12-08Rollup merge of #91531 - notriddle:notriddle/issue-87647-expected-semicolon, ↵Matthias Krüger-29/+113
r=estebank Do not add `;` to expected tokens list when it's wrong There's a few spots where semicolons are checked for to do error recovery, and should not be suggested (or checked for other stuff). Fixes #87647
2021-12-06Expect extern fn with no body when parsingMichael Howell-1/+1
Also add a test case for inserting a semicolon on extern fns. Without this fix, we got an error like this: error: expected one of `->`, `where`, or `{`, found `}` --> chk.rs:3:1 | 2 | fn foo() | --- - expected one of `->`, `where`, or `{` | | | while parsing this `fn` 3 | } | ^ unexpected token Since this is inside an extern block, you're required to write function prototypes with no body. This fixes a regression, and adds a test case for it.
2021-12-06Add better comments for FnParseModeMichael Howell-2/+49
2021-12-05Rollup merge of #90022 - hkmatsumoto:self-upper-as-generic-parameter, r=jackh726Matthias Krüger-0/+13
Explain why `Self` is invalid in generic parameters Close #89985. r? `@estebank`
2021-12-04Do not add `;` to expected tokens list when it's wrongMichael Howell-29/+66
There's a few spots where semicolons are checked for to do error recovery, and should not be suggested (or checked for other stuff). Fixes #87647
2021-12-02Rollup merge of #91435 - FabianWolff:issue-91421-if-then, r=lcnrMatthias Krüger-10/+41
Improve diagnostic for missing half of binary operator in `if` condition Fixes #91421. I've also changed it so that it doesn't consume the `else` token in the error case, because it will try to consume it again afterwards, leading to this incorrect error message (where the `else` reported as missing is actually there): ``` error: expected one of `.`, `;`, `?`, `else`, or an operator, found `{` --> src/main.rs:4:12 | 4 | } else { 4 }; | ^ expected one of `.`, `;`, `?`, `else`, or an operator ``` r? `@lcnr`
2021-12-01Improve diagnostic for missing half of binary operator in `if` conditionFabian Wolff-10/+41
2021-12-01Rollup merge of #91313 - petrochenkov:cratexp, r=Aaron1011Matthias Krüger-1/+1
expand: Turn `ast::Crate` into a first class expansion target And stop creating a fake `mod` item for the crate root when expanding a crate, thus addressing FIXMEs left in https://github.com/rust-lang/rust/pull/82238, and making a step towards a proper support for crate-level macro attributes (cc #54726). I haven't added token collection support for the whole crate in this PR, maybe later. r? `@Aaron1011`
2021-11-29review comments: clean upEsteban Kuber-173/+185
2021-11-28Add a suggestion if `macro_rules` is misspelledFabian Wolff-4/+25
2021-11-28expand: Turn `ast::Crate` into a first class expansion targetVadim Petrochenkov-1/+1
And stop creating a fake `mod` item for the crate root when expanding a crate.
2021-11-25When recovering from a `:` in a pattern, use adequate AST patternEsteban Küber-16/+87
2021-11-25Auto merge of #85346 - estebank:issue-84946, r=nagisa,varkorbors-54/+160
Account for incorrect `impl Foo<const N: ty> {}` syntax Fix #84946
2021-11-24Tweak span and add more testsEsteban Kuber-5/+2
2021-11-24Account for incorrect `impl Foo<const N: ty> {}` syntaxEsteban Küber-54/+163
Fix #84946
2021-11-23Auto merge of #91149 - notriddle:notriddle/rustdoc-doctest-semicolon, r=jyn514bors-1/+1
fix(doctest): detect extern crate items in statement doctests This partially reverts #91026, because rustdoc needs to detect the extern statements, even when they appear inside implicit `main()`. It does not entirely revert it, so the old bug is still fixed, by duplicating some of the logic from `parse_mod` instead of trying to use it directly. Fixes #91134
2021-11-22fix(doctest): detect extern crate items in statement doctestsMichael Howell-1/+1
This partially reverts #91026, because rustdoc needs to detect the extern statements, even when they appear inside implicit `main()`. It does not entirely revert it, so the old bug is still fixed, by duplicating some of the logic from `parse_mod` instead of trying to use it directly. Fixes #91134
2021-11-22Split inline const to two feature gatesGary Guo-5/+9
2021-11-20Rollup merge of #90994 - Badel2:issue-90993, r=estebankMatthias Krüger-1/+1
Fix ICE `#90993`: add missing call to cancel Fix #90993
2021-11-20Fix float ICEthreadexception-0/+2
Co-authored-by: Esteban Kuber <estebank@users.noreply.github.com>
2021-11-20Fix ICE `#90993`: add missing call to cancelBadel2-1/+1
2021-11-07ast: Fix naming conventions in AST structuresVadim Petrochenkov-14/+15
TraitKind -> Trait TyAliasKind -> TyAlias ImplKind -> Impl FnKind -> Fn All `*Kind`s in AST are supposed to be enums. Tuple structs are converted to braced structs for the types above, and fields are reordered in syntactic order. Also, mutable AST visitor now correctly visit spans in defaultness, unsafety, impl polarity and constness.
2021-10-22Rollup merge of #89257 - aDotInTheVoid:macro-error-2, r=estebankYuki Okushi-10/+40
Give better error for `macro_rules name` follow up to #89221 r? ``@estebank`` ``@rustbot`` modify labels: +A-diagnostics +A-parser
2021-10-19Explain why `Self` is invalid in generic parametersHirochika Matsumoto-0/+13
2021-10-18Rollup merge of #89990 - petrochenkov:idempty, r=wesleywiserMatthias Krüger-4/+4
rustc_span: `Ident::invalid` -> `Ident::empty` The equivalent for `Symbol`s was renamed some time ago (`kw::Invalid` -> `kw::Empty`), and it makes sense to do the same thing for `Ident`s as well.
2021-10-18Rollup merge of #89974 - est31:let_else_if_error, r=nagisaMatthias Krüger-5/+16
Nicer error message if the user attempts to do let...else if Gives a nice "conditional `else if` is not supported for `let...else`" error when encountering a `let...else if` pattern, as suggested in the [let...else tracking issue](https://github.com/rust-lang/rust/issues/87335#issuecomment-944846205).