Commit Graph

305 Commits

Author SHA1 Message Date
Camille GILLOT 44ac8dcc71 Remove GeneratorWitness and rename GeneratorWitnessMIR. 2023-09-23 13:47:30 +00:00
Matthias Krüger e7a347baf8
Rollup merge of #115727 - fee1-dead-contrib:effect-fallback, r=oli-obk
Implement fallback for effect param

r? `@oli-obk` or `@lcnr`

tracking issue for this ongoing work: https://github.com/rust-lang/rust/issues/110395
2023-09-11 17:03:31 +02:00
Deadbeef 9654d5ceaf add `is_host_effect` to `GenericParamDefKind::Const` and address review 2023-09-11 13:18:36 +00:00
Michael Goulet 14e59bb317 Lint node for PRIVATE_BOUNDS is the item which has the bounds 2023-09-07 06:48:24 +00:00
bors 1accf068d8 Auto merge of #113126 - Bryanskiy:delete_old, r=petrochenkov
Replace old private-in-public diagnostic with type privacy lints

Next part of RFC https://github.com/rust-lang/rust/issues/48054.

r? `@petrochenkov`
2023-09-01 12:40:01 +00:00
Nilstrieb c75fc573aa Use `{Local}ModDefId` in many queries 2023-08-14 07:22:48 +00:00
Nilstrieb 40de40e094 Add typed `{Local}DefId` for modules
This allows for better type safety in the compiler and also improves the
documentation for many things, making it clear that they expect modules.
2023-08-13 05:54:50 +00:00
León Orell Valerian Liehr 5468336d6b
Store the laziness of type aliases in the DefKind 2023-08-07 15:54:31 +02:00
Deadbeef 4fec845c3f Remove constness from `TraitPredicate` 2023-08-02 15:38:00 +00:00
Bryanskiy e26614e6a7 Replace old private-in-public diagnostic with type privacy lints 2023-08-02 13:40:28 +03:00
Bryanskiy 8203d1ddf6 Weaken unnameable_types lint 2023-07-30 14:02:21 +03:00
Mahdi Dibaiee e55583c4b8 refactor(rustc_middle): Substs -> GenericArg 2023-07-14 13:27:35 +01:00
Santiago Pastorino 20429af7a3
Replace RPITIT current impl with new strategy that lowers as a GAT 2023-07-08 18:21:34 -03:00
Michael Goulet 0c73b41cd6 remove TypeWellFormedFromEnv 2023-07-03 21:40:04 +00:00
Bryanskiy f9a4db7312 Fix associated items effective visibility calculation for type privacy lints 2023-06-30 15:00:24 +03:00
Bryanskiy 35c6a1d0f3 Fix type privacy lints error message 2023-06-29 16:24:07 +03:00
Matthias Krüger 42a495da7e
Rollup merge of #112670 - petrochenkov:typriv, r=eholk
privacy: Type privacy lints fixes and cleanups

See individual commits.
Follow up to https://github.com/rust-lang/rust/pull/111801.
2023-06-29 05:48:39 +02:00
Michael Goulet 374173cd99 TypeWellFormedInEnv 2023-06-26 23:12:04 +00:00
Michael Goulet fbdef58414 Migrate predicates_of and caller_bounds to Clause 2023-06-26 23:12:03 +00:00
Michael Goulet 46a650f4e0 Migrate item_bounds to ty::Clause 2023-06-22 18:34:23 +00:00
Michael Goulet 21226eefb2 Fully fledged Clause type 2023-06-19 15:46:08 +00:00
Michael Goulet fca56a8d2c s/Clause/ClauseKind 2023-06-19 14:57:42 +00:00
Matthias Krüger 3436069c34
Rollup merge of #112734 - dswij:bounds-predicates-clause, r=compiler-errors
Make `Bound::predicates`  use `Clause`

Part of #107250

`Bound::predicates` returns an iterator over `Binder<_, Clause>` instead of `Predicate`.

I tried updating `explicit_predicates_of` as well, but it seems that it needs a lot more change than I thought. Will do it in a separate PR instead.
2023-06-18 08:06:43 +02:00
Michael Goulet 6594c75449 Move ConstEvaluatable to Clause 2023-06-17 21:27:13 +00:00
Michael Goulet 52d3fc93f2 Move WF goal to clause 2023-06-17 21:20:20 +00:00
dswij f874345784 `Bound::predicates` to return `Clause` 2023-06-17 17:16:30 +08:00
Oli Scherer f3b7dd6388 Add `AliasKind::Weak` for type aliases.
Only use it when the type alias contains an opaque type.

Also does wf-checking on such type aliases.
2023-06-16 19:39:48 +00:00
Vadim Petrochenkov 98a86ffc9f privacy: Rename some variables for clarity 2023-06-15 21:25:47 +03:00
Vadim Petrochenkov 95a24c6ed4 privacy: Do not mark items reachable farther than their nominal visibility
This commit reverts a change made in #111425.
It was believed that this change was necessary for implementing type privacy lints, but #111801 showed that it was not necessary.
Quite opposite, the revert fixes some issues.
2023-06-15 21:25:47 +03:00
Vadim Petrochenkov 17edd1a779 privacy: Remove `(Non)ShallowEffectiveVis`
Use a boolean constant parameter instead.

Also turn some methods on `DefIdVisitor` into associated constants.
2023-06-15 21:25:47 +03:00
Bryanskiy 6d46382f6f Private-in-public lints implementation 2023-06-12 01:02:19 +03:00
Bryanskiy 5e917a6039 increase the accuracy of effective visibilities calculation 2023-06-08 19:22:30 +03:00
Deadbeef 21bc5cded4 Rename `impl_defaultness` to `defaultness` 2023-06-01 06:14:06 +00:00
clubby789 f97fddab91 Ensure Fluent messages are in alphabetical order 2023-05-25 23:49:35 +00:00
Vadim Petrochenkov edf95b5d8c rustc_privacy: Reach underlying types of `impl Trait`s in a separate pass
outside of fixed point iteration.
2023-05-22 19:59:38 +03:00
Vadim Petrochenkov e41c422dff rustc_privacy: Merge three matches on `ItemKind` into one
and remove some more `Option`s as a result
2023-05-22 19:59:35 +03:00
Vadim Petrochenkov d831141638 rustc_privacy: Remove some `Option`s
in cases where they are guaranteed to be `Some`
2023-05-22 19:58:28 +03:00
Vadim Petrochenkov e3b830d4da rustc_privacy: Migrate `EmbargoVisitor` to `visit_all_item_likes_in_crate`
Previously it had some logic requiring tree visiting, but it was moved to resolve last year.
2023-05-22 19:58:28 +03:00
John Kåre Alsaker fff20a703d Move expansion of query macros in rustc_middle to rustc_middle::query 2023-05-15 08:49:13 +02:00
Bryanskiy 670f5b134e Populate effective visibilities in rustc_privacy 2023-05-11 14:51:01 +03:00
bors 3a37c2f052 Auto merge of #111371 - compiler-errors:revert-110907, r=petrochenkov
Revert "Populate effective visibilities in `rustc_privacy`"

This reverts commit cff85f22f5, cc #110907. It needs to be fixed, but there are too many issues being reported that I wanted to put up a revert until a proper fix can be committed.

Fixes a ton of issues where private but still reachable impls were missing during codegen:
Fixes #111320
Fixes #111321
Fixes #111334
Fixes #111357
Fixes #111368
Fixes #111373
Fixes #111377
Fixes #111386
Fixes #111387

`@bors` p=1

r? `@petrochenkov`
2023-05-09 15:16:17 +00:00
Michael Goulet 5fcf2e6edc Revert "Populate effective visibilities in `rustc_privacy`"
This reverts commit cff85f22f5.
2023-05-08 21:47:44 +00:00
Michael Goulet 29ac429c9b
Rollup merge of #109410 - fmease:iat-alias-kind-inherent, r=compiler-errors
Introduce `AliasKind::Inherent` for inherent associated types

Allows us to check (possibly generic) inherent associated types for well-formedness.
Type inference now also works properly.

Follow-up to #105961. Supersedes #108430.
Fixes #106722.
Fixes #108957.
Fixes #109768.
Fixes #109789.
Fixes #109790.

~Not to be merged before #108860 (`AliasKind::Weak`).~

CC `@jackh726`
r? `@compiler-errors`

`@rustbot` label T-types F-inherent_associated_types
2023-05-08 09:30:21 -07:00
Bryanskiy cff85f22f5 Populate effective visibilities in `rustc_privacy` 2023-05-05 17:33:10 +03:00
León Orell Valerian Liehr e8139dfd5a
IAT: Introduce AliasKind::Inherent 2023-05-04 16:59:10 +02:00
bors 6f8c0557e0 Auto merge of #110806 - WaffleLapkin:unmkI, r=lcnr
Replace `tcx.mk_trait_ref` with `TraitRef::new`

First step in implementing https://github.com/rust-lang/compiler-team/issues/616
r? `@lcnr`
2023-05-04 05:54:09 +00:00
Vadim Petrochenkov ef77dd232d resolve: One more attempt to simplify `module_children` 2023-05-02 17:21:08 +03:00
Maybe Waffle 46b01abbcd Replace `tcx.mk_trait_ref` with `ty::TraitRef::new` 2023-04-25 16:12:44 +00:00
Kyle Matsuda f3b279fcc5 add EarlyBinder to output of explicit_item_bounds; replace bound_explicit_item_bounds usages; remove bound_explicit_item_bounds query 2023-04-20 12:36:50 -06:00
Kyle Matsuda 0892a7380b change usages of explicit_item_bounds to bound_explicit_item_bounds 2023-04-20 12:36:50 -06:00