| Age | Commit message (Collapse) | Author | Lines |
|
Conflicts:
src/test/compile-fail/associated-types-overridden-default.rs
src/test/compile-fail/issue-23595-1.rs
src/test/compile-fail/issue-23595-2.rs
|
|
There are multiple issues with them as designed and implemented.
cc #27364
Conflicts:
src/libsyntax/feature_gate.rs
src/test/auxiliary/xcrate_associated_type_defaults.rs
|
|
|
|
|
|
|
|
bound that is likely to change. In that case, it will change to 'static,
so then scan down the graph to see whether there are any hard
constraints that would prevent 'static from being a valid value
here. Report a warning.
|
|
satisfied
|
|
|
|
This makes them compliant with the new version of RFC 401 (i.e.
RFC 1052).
Fixes #26391. I *hope* the tests I have are enough.
This is a [breaking-change]
r? @nrc
|
|
Previously it also tried to find out the best way to translate the
expression, which could ICE during type-checking.
Fixes #23173
Fixes #24322
Fixes #25757
|
|
Fixes #18058.
|
|
r? @eddyb
|
|
Fixes #18058.
|
|
moved tests to new file and updated tests
|
|
to new file and updated tests
|
|
|
|
|
|
|
|
Fixes #25700
r? @nikomatsakis
|
|
|
|
This commit shards the all-encompassing `core`, `std_misc`, `collections`, and `alloc` features into finer-grained components that are much more easily opted into and tracked. This reflects the effort to push forward current unstable APIs to either stabilization or removal. Keeping track of unstable features on a much more fine-grained basis will enable the library subteam to quickly analyze a feature and help prioritize internally about what APIs should be stabilized.
A few assorted APIs were deprecated along the way, but otherwise this change is just changing the feature name associated with each API. Soon we will have a dashboard for keeping track of all the unstable APIs in the standard library, and I'll also start making issues for each unstable API after performing a first-pass for stabilization.
|
|
associated types are involved.
|
|
Currently in the E0252 message, traits and modules are all called types (as in "a type named `Foo` has already been imported", even when `Foo` was a trait or module). This commit changes that to additionally detect when the import in question is a trait or module and report it accordingly.
Fixes #25396.
|
|
This makes them compliant with the new version of RFC 401 (i.e.
RFC 1052).
Fixes #26391. I *hope* the tests I have are enough.
This is a [breaking-change]
|
|
Previously, it said "import `Foo` conflicts with existing submodule" even
when it was a type alias, enum, or trait. The message now says the conflict
is with "type in this module" in the case of the first two, and "trait in
this module" for the last one.
Fixes #24081.
|
|
Unlike coercing from reference to unsafe pointer, coercing between two
unsafe pointers doesn't need an AutoDerefRef, because there is no region
that regionck would need to know about.
In unoptimized libcore, this reduces the number of "auto_deref" allocas
from 174 to 4.
|
|
Currently in the E0252 message, traits and modules are all called types
(as in "a type named `Foo` has already been imported", even when `Foo` was
a trait or module). This commit changes that to additionally detect when
the import in question is a trait or module and report it accordingly.
Fixes #25396.
|
|
r=pcwalton
When we successfully resolve a trait reference with no type/lifetime parameters, like `i32: Foo` or `Box<u32>: Sized`, this is in fact globally true. This patch adds a simple global to the tcx to cache such cases. The main advantage of this is really about caching things like `Box<Vec<Foo>>: Sized`. It also points to the need to revamp our caching infrastructure -- the current caches make selection cost cheaper, but we still wind up paying a high cost in the confirmation process, and in particular unrolling out dependent obligations. Moreover, we should probably do caching more uniformly and with a key that takes the where-clauses into account. But that's for later.
For me, this shows up as a reasonably nice win (20%) on Servo's script crate (when built in dev mode). This is not as big as my initial measurements suggested, I think because I was building my rustc with more debugging enabled at the time. I've not yet done follow-up profiling and so forth to see where the new hot spots are. Bootstrap times seem to be largely unaffected.
cc @pcwalton
This is technically a [breaking-change] in that functions with unsatisfiable where-clauses may now yield errors where before they may have been accepted. Even before, these functions could never have been *called* by actual code. In the future, such functions will probably become illegal altogether, but in this commit they are still accepted, so long as they do not rely on the unsatisfiable where-clauses. As before, the functions still cannot be called in any case.
|
|
|
|
Rebase of #21468.
Fix #25960.
|
|
Previously, it said "import `Foo` conflicts with existing submodule" even
when it was a type alias, enum, or trait. The message now says the conflict
is with "type in this module" in the case of the first two, and "trait in
this module" for the last one.
Fixes #24081.
|
|
Unlike coercing from reference to unsafe pointer, coercing between two
unsafe pointers doesn't need an AutoDerefRef, because there is no region
that regionck would need to know about.
In unoptimized libcore, this reduces the number of "auto_deref" allocas
from 174 to 4.
|
|
different parts of the crate, so modify the test cases that were relying
on that to test distinct types etc.
|
|
again, do it once and then just remember the expanded form. At the same
time, filter globally nameable predicates out of the environment, since
they can cause cache errors (and they are not necessary in any case).
|
|
Fixes #26262
Because this rejects code that previously compiled, this is a [breaking-change]
r? @nikomatsakis
|
|
Fixes #26262
|
|
|
|
Two commits here: one which removes a bunch of tests, and re-enables a few that work.
Second updates the syntax of one of the failing tests. It still doesn't pass, but at least it compiles.
|
|
This stdlib function went away, so update it to use current syntax.
|
|
Most of these are old, but some specific messages for specific tests:
* trait-contravariant-self.rs: failed due to a soundess hole:
https://github.com/rust-lang/rust/commit/05e3248a7974f55b64f75a2483b37ff8c001a4ff
* process-detatch: https://github.com/rust-lang/rust/commit/15966c3c1f99810ac81053769651776a67181dae
says "this test is being ignored until signals are implemented" That's
not happening for a long time, and when it is, we'll write tests for
it.
* deep-vector{,2}.rs: "too big for our poor macro infrastructure", and has
been ignored over a year.
* borrowck-nested-calls.rs's FIXME #6268 was closed in favor of
rust-lang/rfcs#811
* issue-15167.rs works properly now
* issue-9737.rs works properly now
* match-var-hygiene.rs works properly now
Addresses a chunk of #3965
|
|
|
|
|
|
This can't be made to work with the current setup.
Fixes #26194.
|
|
Also improves the wording of the E0133 description.
cc #24407
|
|
Using two terms for one thing is confusing, these are called 'raw pointers' today.
|
|
Also updates the reference on this point.
|
|
Using two terms for one thing is confusing, these are called 'raw pointers' today.
|
|
Still some references left to this old term, I've updated them to say boxes.
Related to #25851
|
|
Issue: #26083
Re-submitting https://github.com/rust-lang/rust/pull/26084
r? @nrc
|
|
|