forked from rust-lang/rust
-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rollup merge of rust-lang#129678 - compiler-errors:type-ir-inherent, r=fmease Deny imports of `rustc_type_ir::inherent` outside of type ir + new trait solver We shouldn't encourage using `rustc_type_ir::inherent` outside of the new solver[^1], though this can happen by accident due to rust-analyzer, for example. See rust-lang#127537 (comment) for an example in practice. r? fmease [^1]: Unless we go the fully radical approach of always using these inherent methods everywhere in favor of inherent methods, which would be a major overhaul of the compiler, IMO. I don't really want to consider that possibility right now, tho.
- Loading branch information
Showing
7 changed files
with
87 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
18 changes: 18 additions & 0 deletions
18
tests/ui-fulldeps/internal-lints/import-of-type-ir-inherent.rs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
//@ compile-flags: -Z unstable-options | ||
|
||
// #[cfg(bootstrap)]: We can stop ignoring next beta bump; afterward this ALWAYS should run. | ||
//@ ignore-stage1 | ||
|
||
#![feature(rustc_private)] | ||
#![deny(rustc::usage_of_type_ir_inherent)] | ||
|
||
extern crate rustc_type_ir; | ||
|
||
use rustc_type_ir::inherent::*; | ||
//~^ ERROR do not use `rustc_type_ir::inherent` unless you're inside of the trait solver | ||
use rustc_type_ir::inherent; | ||
//~^ ERROR do not use `rustc_type_ir::inherent` unless you're inside of the trait solver | ||
use rustc_type_ir::inherent::Predicate; | ||
//~^ ERROR do not use `rustc_type_ir::inherent` unless you're inside of the trait solver | ||
|
||
fn main() {} |
31 changes: 31 additions & 0 deletions
31
tests/ui-fulldeps/internal-lints/import-of-type-ir-inherent.stderr
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
error: do not use `rustc_type_ir::inherent` unless you're inside of the trait solver | ||
--> $DIR/import-of-type-ir-inherent.rs:11:20 | ||
| | ||
LL | use rustc_type_ir::inherent::*; | ||
| ^^^^^^^^ | ||
| | ||
= note: the method or struct you're looking for is likely defined somewhere else downstream in the compiler | ||
note: the lint level is defined here | ||
--> $DIR/import-of-type-ir-inherent.rs:7:9 | ||
| | ||
LL | #![deny(rustc::usage_of_type_ir_inherent)] | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
|
||
error: do not use `rustc_type_ir::inherent` unless you're inside of the trait solver | ||
--> $DIR/import-of-type-ir-inherent.rs:13:20 | ||
| | ||
LL | use rustc_type_ir::inherent; | ||
| ^^^^^^^^ | ||
| | ||
= note: the method or struct you're looking for is likely defined somewhere else downstream in the compiler | ||
|
||
error: do not use `rustc_type_ir::inherent` unless you're inside of the trait solver | ||
--> $DIR/import-of-type-ir-inherent.rs:15:20 | ||
| | ||
LL | use rustc_type_ir::inherent::Predicate; | ||
| ^^^^^^^^ | ||
| | ||
= note: the method or struct you're looking for is likely defined somewhere else downstream in the compiler | ||
|
||
error: aborting due to 3 previous errors | ||
|