Cameron Steffen
4a68373217
Introduce TypeErrCtxt
...
TypeErrCtxt optionally has a TypeckResults so that InferCtxt doesn't
need to.
2022-10-07 07:06:16 -05:00
fee1-dead
b7d9de72ac
Rollup merge of #102194 - fee1-dead-contrib:improve-const-drop, r=oli-obk
...
Note the type when unable to drop values in compile time
2022-09-25 22:06:39 +08:00
Deadbeef
2ce1cd511f
Note the type when unable to drop values in compile time
2022-09-24 20:32:51 +00:00
b-naber
a705e65605
rename Unevaluated to UnevaluatedConst
2022-09-23 14:27:34 +02:00
b-naber
9f3784df89
introduce mir::Unevaluated
2022-09-22 12:35:28 +02:00
bors
7a8636c843
Auto merge of #100982 - fee1-dead-contrib:const-impl-requires-const-trait, r=oli-obk
...
Require `#[const_trait]` on `Trait` for `impl const Trait`
r? `@oli-obk`
2022-09-22 04:22:24 +00:00
bors
4136b59b7d
Auto merge of #99806 - oli-obk:unconstrained_opaque_type, r=estebank
...
Allow patterns to constrain the hidden type of opaque types
fixes #96572
reverts a revert as original PR was a perf regression that was fixed by reverting it: https://github.com/rust-lang/rust/pull/99368#issuecomment-1186587864 )
TODO:
* check if https://github.com/rust-lang/rust/issues/99685 is avoided
2022-09-20 12:09:52 +00:00
bors
c524c7dd25
Auto merge of #98588 - b-naber:valtrees-cleanup, r=lcnr
...
Use only ty::Unevaluated<'tcx, ()> in type system
r? `@lcnr`
2022-09-17 03:04:22 +00:00
Oli Scherer
40e2de8c41
Revert "Revert "Rollup merge of #98582 - oli-obk:unconstrained_opaque_type, r=estebank""
...
This reverts commit 4a742a691e .
2022-09-16 11:36:39 +00:00
Deadbeef
f8813cf10e
do const trait method bounds check later in rustc_const_eval
2022-09-16 11:48:43 +08:00
b-naber
6af8fb7936
address review again
2022-09-14 17:30:25 +02:00
b-naber
a7735cd329
fixes/working version
2022-09-13 17:41:02 +02:00
b-naber
a4bbb8db5c
use ty::Unevaluated<'tcx, ()> in type system
2022-09-13 17:40:59 +02:00
Eric Holk
549c105bb3
dyn* through more typechecking and MIR
2022-09-12 16:55:56 -07:00
Oli Scherer
b7413511dc
Generalize the Assume intrinsic statement to a general Intrinsic statement
2022-09-06 14:18:32 +00:00
Oli Scherer
3f07645120
Lower the assume intrinsic to a MIR statement
2022-09-06 14:18:32 +00:00
Matthias Krüger
d182081de1
Rollup merge of #99027 - tmiasko:basic-blocks, r=oli-obk
...
Replace `Body::basic_blocks()` with field access
Since the refactoring in #98930 , it is possible to borrow the basic blocks
independently from other parts of MIR by accessing the `basic_blocks` field
directly.
Replace unnecessary `Body::basic_blocks()` method with a direct field access,
which has an additional benefit of borrowing the basic blocks only.
2022-08-29 06:34:43 +02:00
Tomasz Miąsko
b48870b451
Replace Body::basic_blocks() with field access
2022-08-26 14:27:08 +02:00
nidnogg
4c82845b3a
Fixed failing tests (missing labels), added automatic error code in create_feature_err() builder
2022-08-21 23:22:55 -03:00
nidnogg
d1f14ee1b0
Added several more migrations under ops.rs, failing some tests though
2022-08-21 23:22:54 -03:00
nidnogg
33e8aaf830
Migration on ops.rs for unstable const functions
2022-08-21 23:22:53 -03:00
nidnogg
70ea98633e
Migrated Unallowed function pointer calls in interpreter/ops
2022-08-21 23:22:51 -03:00
cameron
34e0d9a0bb
suggest lazy-static for non-const statics
2022-08-14 23:07:47 +01:00
Michael Goulet
fe894756f8
Add traits::fully_solve_obligation that acts like traits::fully_normalize
...
It spawns up a trait engine, registers the single obligation, then fully
solves it
2022-08-04 13:50:56 +00:00
Matthias Krüger
0de7f756f0
Rollup merge of #99746 - compiler-errors:more-trait-engine, r=jackh726
...
Use `TraitEngine` in more places that don't specifically need `FulfillmentContext::new_in_snapshot`
Not sure if this change is worthwhile, but couldn't hurt re: chalkification
r? types
2022-08-03 22:29:27 +02:00
Camille GILLOT
957548183d
Remove trait_of_item query.
2022-08-01 21:39:26 +02:00
Guillaume Gomez
9e7b7d5e1c
Rollup merge of #99651 - compiler-errors:fn-and-raw-ptr-in-const-generics, r=oli-obk
...
Deeply deny fn and raw ptrs in const generics
I think this is right -- just because we wrap a fn ptr in a wrapper type does not mean we should allow it in a const parameter.
We now reject both of these in the same way:
```
#![feature(adt_const_params)]
#[derive(Eq, PartialEq)]
struct Wrapper();
fn foo<const W: Wrapper>() {}
fn foo2<const F: fn()>() {}
```
This does regress one test (`src/test/ui/consts/refs_check_const_eq-issue-88384.stderr`), but I'm not sure it should've passed in the first place.
cc: ``@b-naber`` who introduced that test^
fixes #99641
2022-07-27 17:55:04 +02:00
Deadbeef
4b7a348508
ICE on RawPtrComparison check
2022-07-26 14:57:49 +00:00
Michael Goulet
58f107ab56
Use TraitEngine in more places that don't specifically need FulfillmentCtxt::new_in_snapshot
2022-07-26 04:55:06 +00:00
Michael Goulet
10b69ab0d2
Remove non-descriptive boolean from search_for_structural_match_violation
2022-07-25 03:39:23 +00:00
Michael Goulet
1152e70363
Deeply deny fn and raw ptrs in const generics
2022-07-25 03:39:22 +00:00
Oli Scherer
4a742a691e
Revert "Rollup merge of #98582 - oli-obk:unconstrained_opaque_type, r=estebank"
...
This reverts commit 6f8fb911ad , reversing
changes made to 7210e46dc6 .
2022-07-20 07:55:58 +00:00
Oli Scherer
84a444a1f4
Introduce opaque type to hidden type projection
2022-07-15 15:49:22 +00:00
Joshua Nelson
3c9765cff1
Rename debugging_opts to unstable_opts
...
This is no longer used only for debugging options (e.g. `-Zoutput-width`, `-Zallow-features`).
Rename it to be more clear.
2022-07-13 17:47:06 -05:00
bors
c80dde43f9
Auto merge of #99210 - Dylan-DPC:rollup-879cp1t, r=Dylan-DPC
...
Rollup of 5 pull requests
Successful merges:
- #98574 (Lower let-else in MIR)
- #99011 (`UnsafeCell` blocks niches inside its nested type from being available outside)
- #99030 (diagnostics: error messages when struct literals fail to parse)
- #99155 (Keep unstable target features for asm feature checking)
- #99199 (Refactor: remove an unnecessary `span_to_snippet`)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2022-07-13 17:13:27 +00:00
Dylan DPC
1e7d04b23b
Rollup merge of #99011 - oli-obk:UnsoundCell, r=eddyb
...
`UnsafeCell` blocks niches inside its nested type from being available outside
fixes #87341
This implements the plan by `@eddyb` in https://github.com/rust-lang/rust/issues/87341#issuecomment-886083646
Somewhat related PR (not strictly necessary, but that cleanup made this PR simpler): #94527
2022-07-13 19:32:34 +05:30
ouz-a
cb0017f2f8
add new rval, pull deref early
2022-07-12 14:26:41 +03:00
Dylan DPC
9fc297a2ae
Rollup merge of #99140 - TaKO8Ki:implement-is-accessible-span, r=fee1-dead
...
Implement `SourceMap::is_span_accessible`
This patch adds `SourceMap::is_span_accessible` and replaces `span_to_snippet(span).is_ok()` and `span_to_snippet(span).is_err()` with it. This removes a `&str` to `String` conversion.
2022-07-11 15:19:32 +05:30
Takayuki Maeda
018155c3a2
rename a method
2022-07-11 16:51:19 +09:00
Takayuki Maeda
12d11e9a35
implement is_accessible_span
2022-07-11 11:36:15 +09:00
Michael Goulet
a1634642e0
Deny floats even when adt_const_params is enabled
2022-07-11 00:04:00 +00:00
Michael Goulet
f97f2a47ff
Migrate MutDeref, TransientMutBorrow diagnostics
2022-07-08 03:48:10 +00:00
Michael Goulet
584e5d4c4f
Migrate PanicNonStr, RawPtrComparison, RawPtrToInt diagnostics
2022-07-08 03:47:59 +00:00
Michael Goulet
c48f482813
Migrate StaticAccess diagnostic
2022-07-08 03:47:46 +00:00
Michael Goulet
1c4afbd1de
Migrate NonConstOp diagnostic
2022-07-08 03:47:28 +00:00
Michael Goulet
934079fd9e
Migrate unstable-in-stable diagnostic
2022-07-08 03:39:08 +00:00
Oli Scherer
2a899dc1cf
UnsafeCell now has no niches, ever.
2022-07-07 10:46:22 +00:00
Takayuki Maeda
83dea35384
replace guess_head_span with def_span
2022-07-06 19:09:47 +09:00
Alan Egerton
4f0a64736b
Update TypeVisitor paths
2022-07-06 06:41:53 +01:00
lcnr
cf9c0a5935
cleanup mir visitor for rustc::pass_by_value
2022-07-01 16:21:21 +02:00