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
Nilstrieb
b5d3d970fa
Add rustc_fluent_macro
to decouple fluent from rustc_macros
...
Fluent, with all the icu4x it brings in, takes quite some time to
compile. `fluent_messages!` is only needed in further downstream rustc
crates, but is blocking more upstream crates like `rustc_index`. By
splitting it out, we allow `rustc_macros` to be compiled earlier, which
speeds up `x check compiler` by about 5 seconds (and even more after the
needless dependency on `serde_json` is removed from
`rustc_data_structures`).
2023-04-18 18:56:22 +00:00