diff --git a/tests/ui/README.md b/tests/ui/README.md index 6cec5a27d21ce..11003bbef9928 100644 --- a/tests/ui/README.md +++ b/tests/ui/README.md @@ -891,12 +891,6 @@ Exercise *Link-Time Optimization* (LTO), involving the flags `-C lto` or `-Z thi Tests on changes to inference variable lattice LUB/GLB, see . -## `tests/ui/macro_backtrace/`: `-Zmacro-backtrace` - -Contains a single test, checking the unstable command-line flag to enable detailed macro backtraces. - -**FIXME**: This could be merged with `ui/macros`, which already contains other macro backtrace tests. - ## `tests/ui/macros/` Broad category of tests on macros. @@ -945,12 +939,6 @@ Something is missing which could be added to fix (e.g. suggestions). **FIXME**: this is way too vague, tests should be rehomed. -## `tests/ui/missing_non_modrs_mod/` - -This directory is a small tree of `mod` dependencies, but the root, `foo.rs`, is looking for a file which does not exist. The test checks that the error is reported at the top-level module. - -**FIXME**: Merge with `tests/ui/modules/`. - ## `tests/ui/missing-trait-bounds/` Tests for checking missing trait bounds, and their diagnostics. @@ -963,10 +951,6 @@ Tests on the module system. **FIXME**: `tests/ui/imports/` should probably be merged with this. -## `tests/ui/modules_and_files_visibility/` - -**FIXME**: Merge with `tests/ui/modules/`. - ## `tests/ui/moves` Tests on moves (destructive moves). @@ -1135,12 +1119,6 @@ A large category about function and type public/private visibility, and its impa **FIXME**: merge with `tests/ui/privacy/`. -## `tests/ui/qualified/` - -Contains few tests on qualified paths where a type parameter is provided at the end: `type A = ::A::f;`. The tests check if this fails during type checking, not parsing. - -**FIXME**: Should be rehomed to `ui/typeck`. - ## `tests/ui/query-system/` Tests on Rust methods and functions which use the query system, such as `std::mem::size_of`. These compute information about the current runtime and return it. See [Query system | rustc-dev-guide](https://rustc-dev-guide.rust-lang.org/query.html). @@ -1583,12 +1561,6 @@ Tests on various well-formedness checks, e.g. [Type-checking normal functions](h Tests on `where` clauses. See [Where clauses | Reference](https://doc.rust-lang.org/reference/items/generics.html#where-clauses). -## `tests/ui/while/` - -Tests on the `while` keyword and the `while` construct. - -**FIXME**: merge with `ui/for-loop-while`. - ## `tests/ui/windows-subsystem/`: `#![windows_subsystem = ""]` See [the `windows_subsystem` attribute](https://doc.rust-lang.org/reference/runtime.html#the-windows_subsystem-attribute). diff --git a/tests/ui/while/while-else-err.rs b/tests/ui/for-loop-while/while-else-err.rs similarity index 100% rename from tests/ui/while/while-else-err.rs rename to tests/ui/for-loop-while/while-else-err.rs diff --git a/tests/ui/while/while-else-err.stderr b/tests/ui/for-loop-while/while-else-err.stderr similarity index 100% rename from tests/ui/while/while-else-err.stderr rename to tests/ui/for-loop-while/while-else-err.stderr diff --git a/tests/ui/while/while-else-let-else-err.rs b/tests/ui/for-loop-while/while-else-let-else-err.rs similarity index 100% rename from tests/ui/while/while-else-let-else-err.rs rename to tests/ui/for-loop-while/while-else-let-else-err.rs diff --git a/tests/ui/while/while-else-let-else-err.stderr b/tests/ui/for-loop-while/while-else-let-else-err.stderr similarity index 100% rename from tests/ui/while/while-else-let-else-err.stderr rename to tests/ui/for-loop-while/while-else-let-else-err.stderr diff --git a/tests/ui/while/while-let-scope-issue-40235.rs b/tests/ui/for-loop-while/while-let-scope.rs similarity index 80% rename from tests/ui/while/while-let-scope-issue-40235.rs rename to tests/ui/for-loop-while/while-let-scope.rs index 7d5dfc64a9059..e72cc5bf0c357 100644 --- a/tests/ui/while/while-let-scope-issue-40235.rs +++ b/tests/ui/for-loop-while/while-let-scope.rs @@ -1,4 +1,5 @@ //@ check-pass +// regression test for #40235 #![allow(unused_variables)] fn foo() {} diff --git a/tests/ui/macro_backtrace/auxiliary/ping.rs b/tests/ui/macros/auxiliary/ping.rs similarity index 71% rename from tests/ui/macro_backtrace/auxiliary/ping.rs rename to tests/ui/macros/auxiliary/ping.rs index 25b9efbc93ac9..d009acb02adb1 100644 --- a/tests/ui/macro_backtrace/auxiliary/ping.rs +++ b/tests/ui/macros/auxiliary/ping.rs @@ -1,30 +1,30 @@ -// Test that the macro backtrace facility works (supporting file) +// Test that the macro backtrace facility works (supporting macro-backtrace-complex.rs) // a non-local macro #[macro_export] macro_rules! ping { () => { pong!(); - } + }; } #[macro_export] macro_rules! deep { () => { foo!(); - } + }; } #[macro_export] macro_rules! foo { () => { bar!(); - } + }; } #[macro_export] macro_rules! bar { () => { ping!(); - } + }; } diff --git a/tests/ui/macro_backtrace/main.-Zmacro-backtrace.stderr b/tests/ui/macros/macro-backtrace-complex.-Zmacro-backtrace.stderr similarity index 94% rename from tests/ui/macro_backtrace/main.-Zmacro-backtrace.stderr rename to tests/ui/macros/macro-backtrace-complex.-Zmacro-backtrace.stderr index bf85a2d75db23..18df7f4a67849 100644 --- a/tests/ui/macro_backtrace/main.-Zmacro-backtrace.stderr +++ b/tests/ui/macros/macro-backtrace-complex.-Zmacro-backtrace.stderr @@ -1,5 +1,5 @@ error: expected one of `!`, `.`, `::`, `;`, `?`, `{`, `}`, or an operator, found `error` - --> $DIR/main.rs:10:20 + --> $DIR/macro-backtrace-complex.rs:12:20 | LL | / macro_rules! pong { LL | | () => { syntax error }; @@ -11,7 +11,7 @@ LL | pong!(); | ------- in this macro invocation error: expected one of `!`, `.`, `::`, `;`, `?`, `{`, `}`, or an operator, found `error` - --> $DIR/main.rs:10:20 + --> $DIR/macro-backtrace-complex.rs:12:20 | LL | / macro_rules! pong { LL | | () => { syntax error }; @@ -31,7 +31,7 @@ LL | pong!(); | ------- in this macro invocation (#2) error: expected one of `!`, `.`, `::`, `;`, `?`, `{`, `}`, or an operator, found `error` - --> $DIR/main.rs:10:20 + --> $DIR/macro-backtrace-complex.rs:12:20 | LL | / macro_rules! pong { LL | | () => { syntax error }; diff --git a/tests/ui/macro_backtrace/main.default.stderr b/tests/ui/macros/macro-backtrace-complex.default.stderr similarity index 90% rename from tests/ui/macro_backtrace/main.default.stderr rename to tests/ui/macros/macro-backtrace-complex.default.stderr index 9ed4b3525e1d0..6aae85c1501ad 100644 --- a/tests/ui/macro_backtrace/main.default.stderr +++ b/tests/ui/macros/macro-backtrace-complex.default.stderr @@ -1,5 +1,5 @@ error: expected one of `!`, `.`, `::`, `;`, `?`, `{`, `}`, or an operator, found `error` - --> $DIR/main.rs:10:20 + --> $DIR/macro-backtrace-complex.rs:12:20 | LL | () => { syntax error }; | ^^^^^ expected one of 8 possible tokens @@ -10,7 +10,7 @@ LL | pong!(); = note: this error originates in the macro `pong` (in Nightly builds, run with -Z macro-backtrace for more info) error: expected one of `!`, `.`, `::`, `;`, `?`, `{`, `}`, or an operator, found `error` - --> $DIR/main.rs:10:20 + --> $DIR/macro-backtrace-complex.rs:12:20 | LL | () => { syntax error }; | ^^^^^ expected one of 8 possible tokens @@ -21,7 +21,7 @@ LL | ping!(); = note: this error originates in the macro `pong` which comes from the expansion of the macro `ping` (in Nightly builds, run with -Z macro-backtrace for more info) error: expected one of `!`, `.`, `::`, `;`, `?`, `{`, `}`, or an operator, found `error` - --> $DIR/main.rs:10:20 + --> $DIR/macro-backtrace-complex.rs:12:20 | LL | () => { syntax error }; | ^^^^^ expected one of 8 possible tokens diff --git a/tests/ui/macro_backtrace/main.rs b/tests/ui/macros/macro-backtrace-complex.rs similarity index 68% rename from tests/ui/macro_backtrace/main.rs rename to tests/ui/macros/macro-backtrace-complex.rs index e39cecb5938b4..3ab586f546531 100644 --- a/tests/ui/macro_backtrace/main.rs +++ b/tests/ui/macros/macro-backtrace-complex.rs @@ -1,9 +1,11 @@ -// Test that the macro backtrace facility works +// Test the unstable command-line flag (-Z macro-backtrace) to enable detailed macro backtraces +// across nested local and external macros. //@ aux-build:ping.rs //@ revisions: default -Zmacro-backtrace //@[-Zmacro-backtrace] compile-flags: -Z macro-backtrace -#[macro_use] extern crate ping; +#[macro_use] +extern crate ping; // a local macro macro_rules! pong { diff --git a/tests/ui/missing_non_modrs_mod/missing_non_modrs_mod.rs b/tests/ui/missing_non_modrs_mod/missing_non_modrs_mod.rs deleted file mode 100644 index b1ac0756688fe..0000000000000 --- a/tests/ui/missing_non_modrs_mod/missing_non_modrs_mod.rs +++ /dev/null @@ -1,4 +0,0 @@ -mod foo; -fn main() {} - -//~? ERROR file not found for module `missing` diff --git a/tests/ui/missing_non_modrs_mod/missing_non_modrs_mod_inline.rs b/tests/ui/missing_non_modrs_mod/missing_non_modrs_mod_inline.rs deleted file mode 100644 index 987fe1166d74a..0000000000000 --- a/tests/ui/missing_non_modrs_mod/missing_non_modrs_mod_inline.rs +++ /dev/null @@ -1,4 +0,0 @@ -mod foo_inline; -fn main() {} - -//~? ERROR file not found for module `missing` diff --git a/tests/ui/missing_non_modrs_mod/foo.rs b/tests/ui/modules/missing_mod.rs similarity index 62% rename from tests/ui/missing_non_modrs_mod/foo.rs rename to tests/ui/modules/missing_mod.rs index afdc5e39b84d2..5fc98998aca08 100644 --- a/tests/ui/missing_non_modrs_mod/foo.rs +++ b/tests/ui/modules/missing_mod.rs @@ -1,3 +1,3 @@ //@ ignore-auxiliary (used by `./missing_non_modrs_mod.rs`) - +// looking for a file which does not exist. mod missing; diff --git a/tests/ui/missing_non_modrs_mod/foo_inline.rs b/tests/ui/modules/missing_mod_inline.rs similarity index 69% rename from tests/ui/missing_non_modrs_mod/foo_inline.rs rename to tests/ui/modules/missing_mod_inline.rs index ed6d3a49101da..a6adcf9427164 100644 --- a/tests/ui/missing_non_modrs_mod/foo_inline.rs +++ b/tests/ui/modules/missing_mod_inline.rs @@ -1,5 +1,5 @@ //@ ignore-auxiliary (used by `./missing_non_modrs_mod_inline.rs`) - +// looking for a file which does not exist. mod inline { mod missing; } diff --git a/tests/ui/modules/missing_non_modrs_mod.rs b/tests/ui/modules/missing_non_modrs_mod.rs new file mode 100644 index 0000000000000..1ed3318ed5c91 --- /dev/null +++ b/tests/ui/modules/missing_non_modrs_mod.rs @@ -0,0 +1,5 @@ +//! Tests the error reporting when a declared module file is missing. +mod missing_mod; +fn main() {} + +//~? ERROR file not found for module `missing` diff --git a/tests/ui/missing_non_modrs_mod/missing_non_modrs_mod.stderr b/tests/ui/modules/missing_non_modrs_mod.stderr similarity index 67% rename from tests/ui/missing_non_modrs_mod/missing_non_modrs_mod.stderr rename to tests/ui/modules/missing_non_modrs_mod.stderr index c084fbf00c26f..4717e35fdea1a 100644 --- a/tests/ui/missing_non_modrs_mod/missing_non_modrs_mod.stderr +++ b/tests/ui/modules/missing_non_modrs_mod.stderr @@ -1,10 +1,10 @@ error[E0583]: file not found for module `missing` - --> $DIR/foo.rs:3:1 + --> $DIR/missing_mod.rs:3:1 | LL | mod missing; | ^^^^^^^^^^^^ | - = help: to create the module `missing`, create file "$DIR/foo/missing.rs" or "$DIR/foo/missing/mod.rs" + = help: to create the module `missing`, create file "$DIR/missing_mod/missing.rs" or "$DIR/missing_mod/missing/mod.rs" = note: if there is a `mod missing` elsewhere in the crate already, import it with `use crate::...` instead error: aborting due to 1 previous error diff --git a/tests/ui/modules/missing_non_modrs_mod_inline.rs b/tests/ui/modules/missing_non_modrs_mod_inline.rs new file mode 100644 index 0000000000000..f652519c76589 --- /dev/null +++ b/tests/ui/modules/missing_non_modrs_mod_inline.rs @@ -0,0 +1,5 @@ +//! Tests the error reporting when a declared module file is missing. +mod missing_mod_inline; +fn main() {} + +//~? ERROR file not found for module `missing` diff --git a/tests/ui/missing_non_modrs_mod/missing_non_modrs_mod_inline.stderr b/tests/ui/modules/missing_non_modrs_mod_inline.stderr similarity index 63% rename from tests/ui/missing_non_modrs_mod/missing_non_modrs_mod_inline.stderr rename to tests/ui/modules/missing_non_modrs_mod_inline.stderr index 86193dd26e041..dfbba6bce8ef3 100644 --- a/tests/ui/missing_non_modrs_mod/missing_non_modrs_mod_inline.stderr +++ b/tests/ui/modules/missing_non_modrs_mod_inline.stderr @@ -1,10 +1,10 @@ error[E0583]: file not found for module `missing` - --> $DIR/foo_inline.rs:4:5 + --> $DIR/missing_mod_inline.rs:4:5 | LL | mod missing; | ^^^^^^^^^^^^ | - = help: to create the module `missing`, create file "$DIR/foo_inline/inline/missing.rs" or "$DIR/foo_inline/inline/missing/mod.rs" + = help: to create the module `missing`, create file "$DIR/missing_mod_inline/inline/missing.rs" or "$DIR/missing_mod_inline/inline/missing/mod.rs" = note: if there is a `mod missing` elsewhere in the crate already, import it with `use crate::...` instead error: aborting due to 1 previous error diff --git a/tests/ui/modules/mod_file_aux.rs b/tests/ui/modules/mod_file_aux.rs index eec38d189b4a8..9e2ec534eb169 100644 --- a/tests/ui/modules/mod_file_aux.rs +++ b/tests/ui/modules/mod_file_aux.rs @@ -1,3 +1,4 @@ -//@ ignore-auxiliary (used by `./mod_file_with_path_attr.rs` and `mod_file.rs`) +//@ ignore-auxiliary (used by `./mod_file_with_path_attr.rs` and `mod_file.rs` and `mod_file_correct_spans.rs`) +// ignore-tidy-linelength pub fn foo() -> isize { 10 } diff --git a/tests/ui/modules_and_files_visibility/mod_file_correct_spans.rs b/tests/ui/modules/mod_file_correct_spans.rs similarity index 100% rename from tests/ui/modules_and_files_visibility/mod_file_correct_spans.rs rename to tests/ui/modules/mod_file_correct_spans.rs diff --git a/tests/ui/modules_and_files_visibility/mod_file_correct_spans.stderr b/tests/ui/modules/mod_file_correct_spans.stderr similarity index 100% rename from tests/ui/modules_and_files_visibility/mod_file_correct_spans.stderr rename to tests/ui/modules/mod_file_correct_spans.stderr diff --git a/tests/ui/modules/mod_file_disambig.rs b/tests/ui/modules/mod_file_disambig.rs new file mode 100644 index 0000000000000..e87babf03ba7f --- /dev/null +++ b/tests/ui/modules/mod_file_disambig.rs @@ -0,0 +1,5 @@ +//! related issue + +mod mod_file_disambig_aux; //~ ERROR file for module `mod_file_disambig_aux` found at both + +fn main() {} diff --git a/tests/ui/modules/mod_file_disambig.stderr b/tests/ui/modules/mod_file_disambig.stderr new file mode 100644 index 0000000000000..60b5b468f4975 --- /dev/null +++ b/tests/ui/modules/mod_file_disambig.stderr @@ -0,0 +1,11 @@ +error[E0761]: file for module `mod_file_disambig_aux` found at both "$DIR/mod_file_disambig_aux.rs" and "$DIR/mod_file_disambig_aux/mod.rs" + --> $DIR/mod_file_disambig.rs:3:1 + | +LL | mod mod_file_disambig_aux; + | ^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = help: delete or rename one of them to remove the ambiguity + +error: aborting due to 1 previous error + +For more information about this error, try `rustc --explain E0761`. diff --git a/tests/ui/modules_and_files_visibility/mod_file_disambig_aux.rs b/tests/ui/modules/mod_file_disambig_aux.rs similarity index 100% rename from tests/ui/modules_and_files_visibility/mod_file_disambig_aux.rs rename to tests/ui/modules/mod_file_disambig_aux.rs diff --git a/tests/ui/modules_and_files_visibility/mod_file_disambig_aux/compiletest-ignore-dir b/tests/ui/modules/mod_file_disambig_aux/compiletest-ignore-dir similarity index 100% rename from tests/ui/modules_and_files_visibility/mod_file_disambig_aux/compiletest-ignore-dir rename to tests/ui/modules/mod_file_disambig_aux/compiletest-ignore-dir diff --git a/tests/ui/modules_and_files_visibility/mod_file_disambig_aux/mod.rs b/tests/ui/modules/mod_file_disambig_aux/mod.rs similarity index 100% rename from tests/ui/modules_and_files_visibility/mod_file_disambig_aux/mod.rs rename to tests/ui/modules/mod_file_disambig_aux/mod.rs diff --git a/tests/ui/modules_and_files_visibility/mod_file_aux.rs b/tests/ui/modules_and_files_visibility/mod_file_aux.rs deleted file mode 100644 index 6fac8dae3d766..0000000000000 --- a/tests/ui/modules_and_files_visibility/mod_file_aux.rs +++ /dev/null @@ -1,3 +0,0 @@ -//@ ignore-auxiliary (used by `./mod_file_correct_spans.rs`) - -pub fn foo() -> isize { 10 } diff --git a/tests/ui/modules_and_files_visibility/mod_file_disambig.rs b/tests/ui/modules_and_files_visibility/mod_file_disambig.rs deleted file mode 100644 index 1483e3e4630c2..0000000000000 --- a/tests/ui/modules_and_files_visibility/mod_file_disambig.rs +++ /dev/null @@ -1,6 +0,0 @@ -mod mod_file_disambig_aux; //~ ERROR file for module `mod_file_disambig_aux` found at both - -fn main() { - assert_eq!(mod_file_aux::bar(), 10); - //~^ ERROR failed to resolve: use of unresolved module or unlinked crate `mod_file_aux` -} diff --git a/tests/ui/modules_and_files_visibility/mod_file_disambig.stderr b/tests/ui/modules_and_files_visibility/mod_file_disambig.stderr deleted file mode 100644 index e71a6de2fb9bc..0000000000000 --- a/tests/ui/modules_and_files_visibility/mod_file_disambig.stderr +++ /dev/null @@ -1,23 +0,0 @@ -error[E0761]: file for module `mod_file_disambig_aux` found at both "$DIR/mod_file_disambig_aux.rs" and "$DIR/mod_file_disambig_aux/mod.rs" - --> $DIR/mod_file_disambig.rs:1:1 - | -LL | mod mod_file_disambig_aux; - | ^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = help: delete or rename one of them to remove the ambiguity - -error[E0433]: failed to resolve: use of unresolved module or unlinked crate `mod_file_aux` - --> $DIR/mod_file_disambig.rs:4:16 - | -LL | assert_eq!(mod_file_aux::bar(), 10); - | ^^^^^^^^^^^^ use of unresolved module or unlinked crate `mod_file_aux` - | -help: to make use of source file $DIR/mod_file_aux.rs, use `mod mod_file_aux` in this file to declare the module - | -LL + mod mod_file_aux; - | - -error: aborting due to 2 previous errors - -Some errors have detailed explanations: E0433, E0761. -For more information about an error, try `rustc --explain E0433`. diff --git a/tests/ui/qualified/qualified-path-params-2.rs b/tests/ui/qualified/qualified-path-params-2.rs deleted file mode 100644 index d0cc1fa3d5172..0000000000000 --- a/tests/ui/qualified/qualified-path-params-2.rs +++ /dev/null @@ -1,21 +0,0 @@ -// Check that qualified paths with type parameters -// fail during type checking and not during parsing - -struct S; - -trait Tr { - type A; -} - -impl Tr for S { - type A = S; -} - -impl S { - fn f() {} -} - -type A = ::A::f; -//~^ ERROR ambiguous associated type - -fn main() {} diff --git a/tests/ui/qualified/qualified-path-params-2.stderr b/tests/ui/qualified/qualified-path-params-2.stderr deleted file mode 100644 index e70cdbdc3f49e..0000000000000 --- a/tests/ui/qualified/qualified-path-params-2.stderr +++ /dev/null @@ -1,15 +0,0 @@ -error[E0223]: ambiguous associated type - --> $DIR/qualified-path-params-2.rs:18:10 - | -LL | type A = ::A::f; - | ^^^^^^^^^^^^^^^^^^^ - | -help: if there were a trait named `Example` with associated type `f` implemented for `::A`, you could use the fully-qualified path - | -LL - type A = ::A::f; -LL + type A = <::A as Example>::f; - | - -error: aborting due to 1 previous error - -For more information about this error, try `rustc --explain E0223`. diff --git a/tests/ui/qualified/qualified-path-params.stderr b/tests/ui/qualified/qualified-path-params.stderr deleted file mode 100644 index a49ed6c8f607a..0000000000000 --- a/tests/ui/qualified/qualified-path-params.stderr +++ /dev/null @@ -1,18 +0,0 @@ -error[E0533]: expected unit struct, unit variant or constant, found associated function `<::A>::f` - --> $DIR/qualified-path-params.rs:20:9 - | -LL | ::A::f:: => {} - | ^^^^^^^^^^^^^^^^^^^^^ not a unit struct, unit variant or constant - -error[E0029]: only `char` and numeric types are allowed in range patterns - --> $DIR/qualified-path-params.rs:22:15 - | -LL | 0 ..= ::A::f:: => {} - | - ^^^^^^^^^^^^^^^^^^^^^ this is of type `fn() {S::f::}` but it should be `char` or numeric - | | - | this is of type `{integer}` - -error: aborting due to 2 previous errors - -Some errors have detailed explanations: E0029, E0533. -For more information about an error, try `rustc --explain E0029`. diff --git a/tests/ui/qualified/qualified-path-params.rs b/tests/ui/typeck/qualified-path-params.rs similarity index 80% rename from tests/ui/qualified/qualified-path-params.rs rename to tests/ui/typeck/qualified-path-params.rs index e8a95a46010af..95bfc5d8fb80d 100644 --- a/tests/ui/qualified/qualified-path-params.rs +++ b/tests/ui/typeck/qualified-path-params.rs @@ -15,11 +15,14 @@ impl S { fn f() {} } +type A = ::A::f; +//~^ ERROR ambiguous associated type + fn main() { match 10 { ::A::f:: => {} //~^ ERROR expected unit struct, unit variant or constant, found associated function - 0 ..= ::A::f:: => {} + 0..=::A::f:: => {} //~^ ERROR only `char` and numeric types are allowed in range } } diff --git a/tests/ui/typeck/qualified-path-params.stderr b/tests/ui/typeck/qualified-path-params.stderr new file mode 100644 index 0000000000000..b79d883394db7 --- /dev/null +++ b/tests/ui/typeck/qualified-path-params.stderr @@ -0,0 +1,30 @@ +error[E0223]: ambiguous associated type + --> $DIR/qualified-path-params.rs:18:10 + | +LL | type A = ::A::f; + | ^^^^^^^^^^^^^^^^^^^ + | +help: if there were a trait named `Example` with associated type `f` implemented for `::A`, you could use the fully-qualified path + | +LL - type A = ::A::f; +LL + type A = <::A as Example>::f; + | + +error[E0533]: expected unit struct, unit variant or constant, found associated function `<::A>::f` + --> $DIR/qualified-path-params.rs:23:9 + | +LL | ::A::f:: => {} + | ^^^^^^^^^^^^^^^^^^^^^ not a unit struct, unit variant or constant + +error[E0029]: only `char` and numeric types are allowed in range patterns + --> $DIR/qualified-path-params.rs:25:13 + | +LL | 0..=::A::f:: => {} + | - ^^^^^^^^^^^^^^^^^^^^^ this is of type `fn() {S::f::}` but it should be `char` or numeric + | | + | this is of type `{integer}` + +error: aborting due to 3 previous errors + +Some errors have detailed explanations: E0029, E0223, E0533. +For more information about an error, try `rustc --explain E0029`.