4afce46231
This gives us more confidence that the ICE was indeed fixed.
229 lines
10 KiB
Plaintext
229 lines
10 KiB
Plaintext
error[E0403]: the name `N` is already used for a generic parameter in this item's generic parameters
|
|
--> $DIR/ice-hir-wf-check-anon-const-issue-122199.rs:13:18
|
|
|
|
|
LL | trait Trait<const N: Trait = bar> {
|
|
| - first use of `N`
|
|
...
|
|
LL | fn fnc<const N: Trait = u32>(&self) -> Trait {
|
|
| ^ already used
|
|
|
|
error[E0425]: cannot find value `bar` in this scope
|
|
--> $DIR/ice-hir-wf-check-anon-const-issue-122199.rs:1:30
|
|
|
|
|
LL | trait Trait<const N: Trait = bar> {
|
|
| ^^^ not found in this scope
|
|
|
|
error[E0423]: expected value, found builtin type `u32`
|
|
--> $DIR/ice-hir-wf-check-anon-const-issue-122199.rs:13:29
|
|
|
|
|
LL | fn fnc<const N: Trait = u32>(&self) -> Trait {
|
|
| ^^^ not a value
|
|
|
|
error[E0425]: cannot find value `bar` in this scope
|
|
--> $DIR/ice-hir-wf-check-anon-const-issue-122199.rs:26:9
|
|
|
|
|
LL | bar
|
|
| ^^^ not found in this scope
|
|
|
|
warning: trait objects without an explicit `dyn` are deprecated
|
|
--> $DIR/ice-hir-wf-check-anon-const-issue-122199.rs:1:22
|
|
|
|
|
LL | trait Trait<const N: Trait = bar> {
|
|
| ^^^^^
|
|
|
|
|
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
|
|
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
|
= note: `#[warn(bare_trait_objects)]` on by default
|
|
help: if this is an object-safe trait, use `dyn`
|
|
|
|
|
LL | trait Trait<const N: dyn Trait = bar> {
|
|
| +++
|
|
|
|
error[E0391]: cycle detected when computing type of `Trait::N`
|
|
--> $DIR/ice-hir-wf-check-anon-const-issue-122199.rs:1:22
|
|
|
|
|
LL | trait Trait<const N: Trait = bar> {
|
|
| ^^^^^
|
|
|
|
|
= note: ...which immediately requires computing type of `Trait::N` again
|
|
note: cycle used when computing explicit predicates of trait `Trait`
|
|
--> $DIR/ice-hir-wf-check-anon-const-issue-122199.rs:1:1
|
|
|
|
|
LL | trait Trait<const N: Trait = bar> {
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
= note: see https://rustc-dev-guide.rust-lang.org/overview.html#queries and https://rustc-dev-guide.rust-lang.org/query.html for more information
|
|
|
|
error[E0391]: cycle detected when computing type of `Trait::N`
|
|
--> $DIR/ice-hir-wf-check-anon-const-issue-122199.rs:1:13
|
|
|
|
|
LL | trait Trait<const N: Trait = bar> {
|
|
| ^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
= note: ...which immediately requires computing type of `Trait::N` again
|
|
note: cycle used when computing explicit predicates of trait `Trait`
|
|
--> $DIR/ice-hir-wf-check-anon-const-issue-122199.rs:1:1
|
|
|
|
|
LL | trait Trait<const N: Trait = bar> {
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
= note: see https://rustc-dev-guide.rust-lang.org/overview.html#queries and https://rustc-dev-guide.rust-lang.org/query.html for more information
|
|
|
|
error: defaults for const parameters are only allowed in `struct`, `enum`, `type`, or `trait` definitions
|
|
--> $DIR/ice-hir-wf-check-anon-const-issue-122199.rs:13:12
|
|
|
|
|
LL | fn fnc<const N: Trait = u32>(&self) -> Trait {
|
|
| ^^^^^^^^^^^^^^^^^^^^
|
|
|
|
warning: trait objects without an explicit `dyn` are deprecated
|
|
--> $DIR/ice-hir-wf-check-anon-const-issue-122199.rs:13:21
|
|
|
|
|
LL | fn fnc<const N: Trait = u32>(&self) -> Trait {
|
|
| ^^^^^
|
|
|
|
|
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
|
|
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
|
help: if this is an object-safe trait, use `dyn`
|
|
|
|
|
LL | fn fnc<const N: dyn Trait = u32>(&self) -> Trait {
|
|
| +++
|
|
|
|
warning: trait objects without an explicit `dyn` are deprecated
|
|
--> $DIR/ice-hir-wf-check-anon-const-issue-122199.rs:13:44
|
|
|
|
|
LL | fn fnc<const N: Trait = u32>(&self) -> Trait {
|
|
| ^^^^^
|
|
|
|
|
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
|
|
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
|
help: if this is an object-safe trait, use `dyn`
|
|
|
|
|
LL | fn fnc<const N: Trait = u32>(&self) -> dyn Trait {
|
|
| +++
|
|
|
|
warning: trait objects without an explicit `dyn` are deprecated
|
|
--> $DIR/ice-hir-wf-check-anon-const-issue-122199.rs:1:22
|
|
|
|
|
LL | trait Trait<const N: Trait = bar> {
|
|
| ^^^^^
|
|
|
|
|
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
|
|
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
|
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
|
help: if this is an object-safe trait, use `dyn`
|
|
|
|
|
LL | trait Trait<const N: dyn Trait = bar> {
|
|
| +++
|
|
|
|
error[E0038]: the trait `Trait` cannot be made into an object
|
|
--> $DIR/ice-hir-wf-check-anon-const-issue-122199.rs:1:22
|
|
|
|
|
LL | trait Trait<const N: Trait = bar> {
|
|
| ^^^^^ `Trait` cannot be made into an object
|
|
|
|
|
note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
|
|
--> $DIR/ice-hir-wf-check-anon-const-issue-122199.rs:13:8
|
|
|
|
|
LL | trait Trait<const N: Trait = bar> {
|
|
| ----- this trait cannot be made into an object...
|
|
...
|
|
LL | fn fnc<const N: Trait = u32>(&self) -> Trait {
|
|
| ^^^ ...because method `fnc` has generic type parameters
|
|
= help: consider moving `fnc` to another trait
|
|
|
|
error[E0038]: the trait `Trait` cannot be made into an object
|
|
--> $DIR/ice-hir-wf-check-anon-const-issue-122199.rs:1:13
|
|
|
|
|
LL | trait Trait<const N: Trait = bar> {
|
|
| ^^^^^^^^^^^^^^^^^^^^ `Trait` cannot be made into an object
|
|
|
|
|
note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
|
|
--> $DIR/ice-hir-wf-check-anon-const-issue-122199.rs:13:8
|
|
|
|
|
LL | trait Trait<const N: Trait = bar> {
|
|
| ----- this trait cannot be made into an object...
|
|
...
|
|
LL | fn fnc<const N: Trait = u32>(&self) -> Trait {
|
|
| ^^^ ...because method `fnc` has generic type parameters
|
|
= help: consider moving `fnc` to another trait
|
|
|
|
error: `(dyn Trait<{const error}> + 'static)` is forbidden as the type of a const generic parameter
|
|
--> $DIR/ice-hir-wf-check-anon-const-issue-122199.rs:1:22
|
|
|
|
|
LL | trait Trait<const N: Trait = bar> {
|
|
| ^^^^^
|
|
|
|
|
= note: the only supported types are integers, `bool` and `char`
|
|
|
|
error: associated item referring to unboxed trait object for its own trait
|
|
--> $DIR/ice-hir-wf-check-anon-const-issue-122199.rs:13:44
|
|
|
|
|
LL | trait Trait<const N: Trait = bar> {
|
|
| ----- in this trait
|
|
...
|
|
LL | fn fnc<const N: Trait = u32>(&self) -> Trait {
|
|
| ^^^^^
|
|
|
|
|
help: you might have meant to use `Self` to refer to the implementing type
|
|
|
|
|
LL | fn fnc<const N: Trait = u32>(&self) -> Self {
|
|
| ~~~~
|
|
|
|
warning: trait objects without an explicit `dyn` are deprecated
|
|
--> $DIR/ice-hir-wf-check-anon-const-issue-122199.rs:13:21
|
|
|
|
|
LL | fn fnc<const N: Trait = u32>(&self) -> Trait {
|
|
| ^^^^^
|
|
|
|
|
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
|
|
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
|
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
|
help: if this is an object-safe trait, use `dyn`
|
|
|
|
|
LL | fn fnc<const N: dyn Trait = u32>(&self) -> Trait {
|
|
| +++
|
|
|
|
error[E0038]: the trait `Trait` cannot be made into an object
|
|
--> $DIR/ice-hir-wf-check-anon-const-issue-122199.rs:13:21
|
|
|
|
|
LL | fn fnc<const N: Trait = u32>(&self) -> Trait {
|
|
| ^^^^^ `Trait` cannot be made into an object
|
|
|
|
|
note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
|
|
--> $DIR/ice-hir-wf-check-anon-const-issue-122199.rs:13:8
|
|
|
|
|
LL | trait Trait<const N: Trait = bar> {
|
|
| ----- this trait cannot be made into an object...
|
|
...
|
|
LL | fn fnc<const N: Trait = u32>(&self) -> Trait {
|
|
| ^^^ ...because method `fnc` has generic type parameters
|
|
= help: consider moving `fnc` to another trait
|
|
|
|
error[E0038]: the trait `Trait` cannot be made into an object
|
|
--> $DIR/ice-hir-wf-check-anon-const-issue-122199.rs:1:13
|
|
|
|
|
LL | trait Trait<const N: Trait = bar> {
|
|
| ^^^^^^^^^^^^^^^^^^^^ `Trait` cannot be made into an object
|
|
|
|
|
note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
|
|
--> $DIR/ice-hir-wf-check-anon-const-issue-122199.rs:13:8
|
|
|
|
|
LL | trait Trait<const N: Trait = bar> {
|
|
| ----- this trait cannot be made into an object...
|
|
...
|
|
LL | fn fnc<const N: Trait = u32>(&self) -> Trait {
|
|
| ^^^ ...because method `fnc` has generic type parameters
|
|
= help: consider moving `fnc` to another trait
|
|
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
|
|
|
error: `(dyn Trait<{const error}> + 'static)` is forbidden as the type of a const generic parameter
|
|
--> $DIR/ice-hir-wf-check-anon-const-issue-122199.rs:13:21
|
|
|
|
|
LL | fn fnc<const N: Trait = u32>(&self) -> Trait {
|
|
| ^^^^^
|
|
|
|
|
= note: the only supported types are integers, `bool` and `char`
|
|
|
|
error: aborting due to 14 previous errors; 5 warnings emitted
|
|
|
|
Some errors have detailed explanations: E0038, E0391, E0403, E0423, E0425.
|
|
For more information about an error, try `rustc --explain E0038`.
|