| Age | Commit message (Collapse) | Author | Lines |
|
TypeVisitor: use `std::ops::ControlFlow` instead of `bool`
Implements MCP rust-lang/compiler-team#374.
Blocked on FCP in rust-lang/compiler-team#374.
r? `@lcnr` cc `@jonas-schievink`
|
|
|
|
|
|
|
|
(From the PR feedback.)
Co-authored-by: Esteban Küber <esteban@kuber.com.ar>
|
|
Prefer new associated numeric consts in float error messages
Fix https://github.com/rust-lang/rust/issues/78382
|
|
Dogfood {exclusive,half-open} ranges in compiler (nfc)
In particular, this allows us to write more explicit matches that
avoid the pitfalls of using a fully general fall-through case, yet
remain fairly ergonomic. Less logic is in guard cases, more is in
the actual exhaustive case analysis.
No functional changes.
|
|
In particular, this allows us to write more explicit matches that
avoid the pitfalls of using a fully general fall-through case, yet
remain fairly ergonomic. Less logic is in guard cases, more is in
the actual exhaustive case analysis.
No functional changes.
|
|
Co-authored-by: bjorn3 <bjorn3@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
When the 'early' and 'late' visitors visit an attribute target, they
activate any lint attributes (e.g. `#[allow]`) that apply to it.
This can affect warnings emitted on sibiling attributes. For example,
the following code does not produce an `unused_attributes` for
`#[inline]`, since the sibiling `#[allow(unused_attributes)]` suppressed
the warning.
```rust
trait Foo {
#[allow(unused_attributes)] #[inline] fn first();
#[inline] #[allow(unused_attributes)] fn second();
}
```
However, we do not do this for statements - instead, the lint attributes
only become active when we visit the struct nested inside `StmtKind`
(e.g. `Item`).
Currently, this is difficult to observe due to another issue - the
`HasAttrs` impl for `StmtKind` ignores attributes for `StmtKind::Item`.
As a result, the `unused_doc_comments` lint will never see attributes on
item statements.
This commit makes two interrelated fixes to the handling of inert
(non-proc-macro) attributes on statements:
* The `HasAttr` impl for `StmtKind` now returns attributes for
`StmtKind::Item`, treating it just like every other `StmtKind`
variant. The only place relying on the old behavior was macro
which has been updated to explicitly ignore attributes on item
statements. This allows the `unused_doc_comments` lint to fire for
item statements.
* The `early` and `late` lint visitors now activate lint attributes when
invoking the callback for `Stmt`. This ensures that a lint
attribute (e.g. `#[allow(unused_doc_comments)]`) can be applied to
sibiling attributes on an item statement.
For now, the `unused_doc_comments` lint is explicitly disabled on item
statements, which preserves the current behavior. The exact locatiosn
where this lint should fire are being discussed in PR #78306
|
|
Fix two small issues in compiler/rustc_lint/src/types.rs
Two small improvements of `compiler/rustc_lint/src/types.rs`
|
|
|
|
|
|
.into() guarantees safety of the conversion.
Furthermore, the minimum value of all uints is known to be 0.
|
|
In this instance, we can just pass a &str slice
and save an allocation.
|
|
Fix false positive for `unused_parens` lint
Fixes #60336
|
|
(From the PR feedback.)
Co-authored-by: Esteban Küber <esteban@kuber.com.ar>
|
|
|
|
|
|
|
|
|
|
|
|
It now only reacts to expansion of those macros, and suggests
inserting `"{}", ` in the right place.
|
|
|
|
Introduce `TypeVisitor::BreakTy`
Implements MCP rust-lang/compiler-team#383.
r? `@ghost`
cc `@lcnr` `@oli-obk`
~~Blocked on FCP in rust-lang/compiler-team#383.~~
|
|
|
|
|
|
|
|
|
|
|
|
Clean up small, surprising bits of code
This PR clean up a small number of unrelated, small things I found while browsing the code base.
|
|
|
|
Implement const expressions and patterns (RFC 2920)
cc `@ecstatic-morse` `@lcnr` `@oli-obk` `@petrochenkov`
|
|
|
|
|
|
|
|
Preparation for a subsequent change that replaces
rustc_target::config::Config with its wrapped Target.
On its own, this commit breaks the build. I don't like making
build-breaking commits, but in this instance I believe that it
makes review easier, as the "real" changes of this PR can be
seen much more easily.
Result of running:
find compiler/ -type f -exec sed -i -e 's/target\.target\([)\.,; ]\)/target\1/g' {} \;
find compiler/ -type f -exec sed -i -e 's/target\.target$/target/g' {} \;
find compiler/ -type f -exec sed -i -e 's/target.ptr_width/target.pointer_width/g' {} \;
./x.py fmt
|
|
|
|
|
|
|
|
Unclosed html tag lint
Part of #67799.
I think `@ollie27` will be interested (`@Manishearth` too since they opened the issue ;) ).
r? `@jyn514`
|
|
|