Commit graph

250 commits

Author SHA1 Message Date
Esteban Küber 7190bc3097 Account for incorrect impl Foo<const N: ty> {} syntax
Fix #84946
2021-11-24 20:02:09 +00:00
bors 220ed09b26 Auto merge of #89316 - asquared31415:multiple-clobber-abi, r=Amanieu
Add support for specifying multiple clobber_abi in `asm!`

r? `@Amanieu`
cc #72016
`@rustbot` label: +A-inline-assembly +F-asm
2021-11-12 16:29:25 +00:00
Matthias Krüger 0a9c1be100
Rollup merge of #90742 - est31:add_assign, r=davidtwco
Use AddAssign impl
2021-11-10 18:52:29 +01:00
asquared31415 b233d3b5da Add support for specifying multiple clobber_abi in asm!
Allow multiple clobber_abi in asm

Update docs
Fix aarch64 test
Combine abis
Emit duplicate ABI error, empty ABI list error
multiple clobber_abi
2021-11-10 01:06:03 -05:00
est31 9afb241af5 Use AddAssign impl 2021-11-09 23:47:36 +01:00
Guillaume Gomez d9fc7d1041
Rollup merge of #90657 - GuillaumeGomez:one-char-last-line-removed, r=jyn514
Fix bug with `#[doc]` string single-character last lines

Fixes #90618.

This is because `.iter().all(|c| c == '*')` returns `true` if there is no character checked. And in case the last line has only one character, it simply returns `true`, making the last line behind removed.
2021-11-08 15:15:24 +01:00
Vadim Petrochenkov 2834f57c45 ast: Fix naming conventions in AST structures
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-11-07 21:38:17 +08:00
Matthias Krüger 5f0e6ca6a3
Rollup merge of #90642 - matthiaskrgr:clippy_matches, r=cjgillot
use matches!() macro in more places
2021-11-06 23:12:05 +01:00
Guillaume Gomez e8f1d57d80 Fix last doc code comment being removed if it only had one character 2021-11-06 20:21:29 +01:00
bors 5ec7d1dad6 Auto merge of #90559 - rusticstuff:optimize-bidi-detection, r=davidtwco
Optimize bidi character detection.

Should fix most of the performance regression of the bidi character detection (#90514), to be confirmed with a perf run.
2021-11-06 16:25:00 +00:00
Matthias Krüger 0a5640b55f use matches!() macro in more places 2021-11-06 16:13:14 +01:00
Hans Kratz 39110beab0 Use one match instead of a staggered match. 2021-11-05 00:39:34 +01:00
Hans Kratz 7885233df0 Optimize literal, doc comment lint as well, extract function. 2021-11-04 23:31:42 +01:00
Caleb Cartwright 9e31fab58c docs(rustc_ast): update crate descriptions 2021-11-02 21:11:17 -05:00
EliseZeroTwo 7402eb001b
fix: inner attribute followed by outer attribute causing ICE 2021-10-25 17:31:27 +02:00
Yuki Okushi cbebdd8e67
Rollup merge of #89991 - petrochenkov:visitok2, r=jackh726
rustc_ast: Turn `MutVisitor::token_visiting_enabled` into a constant

It's a visitor property rather than something that needs to be determined at runtime
2021-10-22 19:42:48 +09:00
Matthias Krüger 2fd765c1d9
Rollup merge of #89990 - petrochenkov:idempty, r=wesleywiser
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-18 08:13:30 +02:00
Vadim Petrochenkov d2470e74e1 rustc_ast: Turn MutVisitor::token_visiting_enabled into a constant
It's a visitor property rather than something that needs to be determined at runtime
2021-10-18 00:23:24 +03:00
Vadim Petrochenkov a6808335d4 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.
2021-10-17 23:20:30 +03:00
r00ster91 3c1d55422a Some "parenthesis" and "parentheses" fixes 2021-10-17 12:04:01 +02:00
klensy 77fce75ba1 remove unwrap_or! macro 2021-10-08 19:32:16 +03:00
Jubilee 90e96f9fc3
Rollup merge of #89487 - FabianWolff:issue-89396, r=petrochenkov
Try to recover from a `=>` -> `=` or `->` typo in a match arm

Fixes #89396.
2021-10-04 21:12:42 -07:00
Fabian Wolff 079c075f24 Use TokenKind::similar_tokens() 2021-10-04 22:13:00 +02:00
Fabian Wolff d92c683933 Improve error message for missing angle brackets in [_]::method 2021-10-01 23:03:28 +02:00
Mark Rousskov c746be2219 Migrate to 2021 2021-09-20 22:21:42 -04:00
Manish Goregaokar fb2d7dff80
Rollup merge of #88775 - pnkfelix:revert-anon-union-parsing, r=davidtwco
Revert anon union parsing

Revert PR #84571 and #85515, which implemented anonymous union parsing in a manner that broke the context-sensitivity for the `union` keyword and thus broke stable Rust code.

Fix #88583.
2021-09-15 14:56:58 -07:00
Camille GILLOT 00485e0c0e Keep a parent LocalDefId in SpanData. 2021-09-10 20:17:33 +02:00
Felix S. Klock II 91feb76d13 Revert "Implement Anonymous{Struct, Union} in the AST"
This reverts commit 059b68dd67.

Note that this was manually adjusted to retain some of the refactoring
introduced by commit 059b68dd67, so that it could
likewise retain the correction introduced in commit
5b4bc05fa5
2021-09-09 09:14:17 -04:00
Mark Rousskov b4e7649d6d Bump stage0 compiler to 1.56 2021-09-08 20:51:05 -04:00
Jack Huey 77ac329a08
Rollup merge of #88553 - theo-lw:issue-88276, r=estebank
Improve diagnostics for unary plus operators (#88276)

This pull request improves the diagnostics emitted on parsing a unary plus operator. See #88276.

Before:

```
error: expected expression, found `+`
 --> src/main.rs:2:13
  |
2 |     let x = +1;
  |             ^ expected expression
```

After:

```
error: leading `+` is not supported
 --> main.rs:2:13
  |
2 |     let x = +1;
  |             ^
  |             |
  |             unexpected `+`
  |             help: try removing the `+`
```
2021-09-08 12:24:16 -04:00
Theodore Luo Wang 20eba43283 Fix formatting 2021-09-04 22:38:39 -04:00
Theodore Luo Wang 65eb7e516c Use verbose suggestions and only match if the + is seen before a numeric literal 2021-09-04 22:35:59 -04:00
bors b4e8596e3e Auto merge of #88598 - estebank:type-ascription-can-die-in-a-fire, r=wesleywiser
Detect bare blocks with type ascription that were meant to be a `struct` literal

Address part of #34255.

Potential improvement: silence the other knock down errors in `issue-34255-1.rs`.
2021-09-04 01:40:36 +00:00
bors 577a76f003 Auto merge of #88597 - cjgillot:lower-global, r=petrochenkov
Move global analyses from lowering to resolution

Split off https://github.com/rust-lang/rust/pull/87234

r? `@petrochenkov`
2021-09-03 14:47:13 +00:00
Esteban Kuber 12ce6e9c60 Detect bare blocks with type ascription that were meant to be a struct literal
Address part of #34255.

Potential improvement: silence the other knock down errors in
`issue-34255-1.rs`.
2021-09-03 14:43:04 +00:00
Vadim Petrochenkov 9940758416 expand: Treat more macro calls as statement macro calls 2021-09-02 14:14:38 +03:00
Camille GILLOT f8efe5d822 Compute proc_macros in resolutions. 2021-09-01 20:13:16 +02:00
Cameron Steffen 29bc94ff0d Handle let-else initializer edge case errors 2021-08-30 20:18:42 -05:00
Cameron Steffen 89d2600d01 Add let-else to AST 2021-08-30 20:17:45 -05:00
lcnr 4747cbb3bb allow unordered const/ty params if any cg feature is active 2021-08-30 11:00:21 +02:00
lcnr 0c28e028b6 feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
Deadbeef 8660832086
Introduce ~const
- [x] Removed `?const` and change uses of `?const`
 - [x] Added `~const` to the AST. It is gated behind const_trait_impl.
 - [x] Validate `~const` in ast_validation.
 - [ ] Add enum `BoundConstness` to the HIR. (With variants `NotConst` and
 `ConstIfConst` allowing future extensions)
 - [ ] Adjust trait selection and pre-existing code to use `BoundConstness`.
 - [ ] Optional steps (*for this PR, obviously*)
      - [ ] Fix #88155
      - [ ] Do something with constness bounds in chalk
2021-08-27 05:07:37 +00:00
bors 76e755cf4a Auto merge of #88066 - LeSeulArtichaut:patterns-cleanups, r=nagisa
Use if-let guards in the codebase and various other pattern cleanups

Dogfooding if-let guards as experimentation for the feature.

Tracking issue #51114. Conflicts with #87937.
2021-08-26 05:23:35 +00:00
Léo Lanteri Thauvin 2b0c8fff8a Various pattern cleanups 2021-08-25 20:24:39 +02:00
Léo Lanteri Thauvin fde1b76b4b Use if-let guards in the codebase 2021-08-25 20:24:35 +02:00
asquared31415 0b81c2eb82 Move named_asm_labels to a HIR lint 2021-08-24 08:23:58 -04:00
Frank Steffahn bf88b113ea Fix typos “a”→“an” 2021-08-22 15:35:11 +02:00
est31 1cd1cd034b Remove box syntax from rustc_ast 2021-08-18 09:25:26 +02:00
Caio 6aa9937a76 Introduce hir::ExprKind::Let - Take 2 2021-08-15 16:18:26 -03:00
Amanieu d'Antras 3fd463a5ca Add support for clobber_abi to asm! 2021-08-12 12:43:11 +01:00