| Age | Commit message (Collapse) | Author | Lines |
|
failure.
Rather than try to work out what was happening, I just removed the flag because
I see no reason for it to be on this test.
|
|
|
|
|
|
|
|
- we need to figure out hygiene first
- change the test to check that the prohibition works with a good error
msg
- leaves some comments and debugging code
- leaves some of our supposed fixes
|
|
|
|
|
|
|
|
r=nikomatsakis
Diagnostic suggest drop in reverse
Closes #51195
|
|
|
|
Update the error message for a missing global allocator
Don’t mention `#[default_lib_allocator]` (which is an implementation detail irrelevant to most users) and instead suggest using `#[global_allocator]`, which is often the correct fix.
|
|
Don’t mention `#[default_lib_allocator]` (which is an implementation detail
irrelevant to most users) and instead suggest using `#[global_allocator]`,
which is often the correct fix.
|
|
|
|
(since I made this mistake at first but the tests didn't catch it):
we should not suggest adding `mut` to a reassigned `ref` or `ref mut` binding.
(The Rust language, since at least 1.0, does not have `mut ref mut` or
`ref mut mut` etc.)
|
|
|
|
|
|
Declare DebruijnIndex via newtype_index macro
Part of #49887
Declare `DebruijnIndex` via the `newtype_index` macro.
|
|
Improve memoization and refactor NLL type check
I have a big branch that is refactoring NLL type check with the goal of introducing canonicalization-based memoization for all of the operations it does. This PR contains an initial prefix of that branch which, I believe, stands alone. It does introduce a few smaller optimizations of its own:
- Skip operations that are trivially a no-op
- Cache the results of the dropck-outlives computations done by liveness
- Skip resetting unifications if nothing changed
r? @pnkfelix
|
|
Add existential type definitions
Note: this does not allow creating named existential types, it just desugars `impl Trait` to a less (but still very) hacky version of actual `existential type` items.
r? @nikomatsakis
|
|
|
|
Stabilize #[repr(transparent)]
Tracking issue FCP: https://github.com/rust-lang/rust/issues/43036#issuecomment-394094318
Reference PR: https://github.com/rust-lang-nursery/reference/pull/353
|
|
|
|
|
|
|
|
|
|
Tracking issue FCP: https://github.com/rust-lang/rust/issues/43036#issuecomment-394094318
Reference PR: https://github.com/rust-lang-nursery/reference/pull/353
|
|
Fixes https://github.com/rust-lang/rust/issues/27389
|
|
Fix error codes
|
|
|
|
|
|
|
|
|
|
Re-enable trivial bounds
cc #50825
Remove implementations from global bounds in winnowing when there is ambiguity.
This results in the reverse of #24066 happening sometimes. I'm not sure if anything can be done about that though.
cc #48214
r? @nikomatsakis
|
|
Rollup of 13 pull requests
Successful merges:
- #50143 (Add deprecation lint for duplicated `macro_export`s)
- #51099 (Fix Issue 38777)
- #51276 (Dedup auto traits in trait objects.)
- #51298 (Stabilize unit tests with non-`()` return type)
- #51360 (Suggest parentheses when a struct literal needs them)
- #51391 (Use spans pointing at the inside of a rustdoc attribute)
- #51394 (Use scope tree depths to speed up `nearest_common_ancestor`.)
- #51396 (Make the size of Option<NonZero*> a documented guarantee.)
- #51401 (Warn on `repr` without hints)
- #51412 (Avoid useless Vec clones in pending_obligations().)
- #51427 (compiletest: autoremove duplicate .nll.* files (#51204))
- #51436 (Do not require stage 2 compiler for rustdoc)
- #51437 (rustbuild: generate full list of dependencies for metadata)
Failed merges:
|
|
Warn on `repr` without hints
Fix #51376.
|
|
Suggest parentheses when a struct literal needs them
When writing a struct literal in an expression that expects a block to
be started afterwards (like an `if` statement), do not suggest using the
same struct literal:
```
did you mean `S { /* fields * /}`?
```
Instead, suggest surrounding the expression with parentheses:
```
did you mean `(S { /* fields * /})`?
```
Fix #47360, #50090. Leaving #42982 open to come back to this problem with a better solution.
|
|
Stabilize unit tests with non-`()` return type
References #48854
|
|
Dedup auto traits in trait objects.
Fixes #47010
Note that the test file `run-pass/trait-object-auto-dedup.rs` passes before and after this change. It's the `ui` test that changed from compiling to not compiling. Which does make this a breaking change, but I cannot imagine anybody actually being broken by it.
|
|
Fix Issue 38777
When looking through for a closing bracket in the loop condition, adds them to expecteds.
https://github.com/rust-lang/rust/issues/38777
|
|
Add deprecation lint for duplicated `macro_export`s
cc https://github.com/rust-lang/rust/issues/35896#issuecomment-381370556
|
|
|
|
pnkfelix:issue-51190-report-type-moved-from-behind-borrow, r=nikomatsakis
NLL: report type moved from behind borrow of array/slice
When NLL has illegal move due to borrowed content in an array or slice, provide feedback about why the move wasn't a copy.
Drive by: While comparing the resulting `.nll.stderr` files to their old borrowck variants, I noticed that the test for borrowck-vec-pattern-nesting.rs was not signaling some errors under NLL due to the test assuming lexical lifetimes. So I fixed that too.
Fix #51190
|
|
|
|
|
|
|
|
|
|
Removes extra global bounds at the winnowing stage rather than when
normalizing the param_env. This avoids breaking inference when there is
a global bound.
|
|
Revert #49719
This also needs to be backported into beta.
Fixes #51416.
r? @nikomatsakis
|
|
kennytm:fix-51279-preempt-the-warning-song-and-dance, r=nikomatsakis
Deny #[cfg] and #[cfg_attr] on generic parameters.
Fix #51279.
Attributes on generic parameters are not expanded, meaning `#[cfg]`, `#[cfg_attr]` and attribute proc macros are entirely ignored on them.
This PR makes using the first two attributes an error, because if they are correctly expanded will affect the AST and change code behavior.
I'm beta-nominating this, because generic parameter attributes are stabilizing in 1.27, and if we did not reserve their usage, we may never be able to repurpose the meaning of these attributes in the Rust 2015 edition.
|
|
|