Michael Goulet
5fc39e0796
Random type checker changes
2024-01-23 15:10:23 +00:00
Kevin Reid
c48cdfe8ee
Remove unnecessary let
s and borrowing from Waker::noop()
usage.
...
`Waker::noop()` now returns a `&'static Waker` reference, so it can be
passed directly to `Context` creation with no temporary lifetime issue.
2024-01-17 12:00:27 -08:00
George-lewis
d56cdd48cb
Bless tests
...
Update tests
2024-01-13 12:46:58 -05:00
Michael Goulet
68c2f11240
Remove special-casing around aliaskind in new solver
2024-01-11 16:54:11 +00:00
Matthias Krüger
ad7aabd965
Rollup merge of #119563 - compiler-errors:coroutine-resume, r=oli-obk
...
Check yield terminator's resume type in borrowck
In borrowck, we didn't check that the lifetimes of the `TerminatorKind::Yield`'s `resume_place` were actually compatible with the coroutine's signature. That means that the lifetimes were totally going unchecked. Whoops!
This PR implements this checking.
Fixes #119564
r? types
2024-01-05 20:39:53 +01:00
Matthew Jasper
26f48b4cba
Stabilize THIR unsafeck
2024-01-05 10:00:59 +00:00
Matthew Jasper
982b49494e
Remove revisions for THIR unsafeck
...
This is to make the diff when stabilizing it easier to review.
2024-01-05 09:30:27 +00:00
bors
5113ed28ea
Auto merge of #118297 - shepmaster:warn-dead-tuple-fields, r=WaffleLapkin
...
Merge `unused_tuple_struct_fields` into `dead_code`
This implicitly upgrades the lint from `allow` to `warn` and places it into the `unused` lint group.
[Discussion on Zulip](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/Moving.20.60unused_tuple_struct_fields.60.20from.20allow.20to.20warn )
2024-01-05 04:51:55 +00:00
Michael Goulet
1d48f69d65
Check yield terminator's resume type in borrowck
2024-01-04 01:47:56 +00:00
Jake Goulding
53eca9fa87
Adjust compiler tests for unused_tuple_struct_fields -> dead_code
2024-01-02 15:34:37 -05:00
Michael Goulet
7eeaaa2dc0
Compute yield and return types outside of check_fn
2023-12-29 19:59:58 +00:00
jyn
b5d8361909
rename to verbose-internals
2023-12-19 13:35:37 -05:00
Michael Goulet
0f10acf768
Add a test demonstrating that RFC's note on diverging returns is subsumed by just inferring unit as ret type
2023-12-18 23:56:44 +00:00
Michael Goulet
bb33200047
Make sure all kinds of generators only return unit
2023-12-18 01:45:42 +00:00
Michael Goulet
454bff7682
Ensure yield
expressions desugar correctly in async generators
2023-12-18 01:42:19 +00:00
Jubilee
9648c485de
Rollup merge of #118948 - compiler-errors:noop, r=eholk
...
Use the `Waker::noop` API in tests
Avoids the need to duplicate this code over and over again
r? eholk
2023-12-14 16:07:49 -08:00
Michael Goulet
3c17514ae9
Use the Waker::noop API in tests
2023-12-14 18:34:29 +00:00
lcnr
11d16c4082
update use of feature flags
2023-12-14 15:22:37 +01:00
Matthias Krüger
1dd36119d0
Rollup merge of #118871 - tmiasko:coroutine-maybe-uninit-fields, r=compiler-errors
...
Coroutine variant fields can be uninitialized
Wrap coroutine variant fields in MaybeUninit to indicate that they might be uninitialized. Otherwise an uninhabited field will make the entire variant uninhabited and introduce undefined behaviour.
The analogous issue in the prefix of coroutine layout was addressed by 6fae7f8071
.
2023-12-13 18:03:33 +01:00
Michael Goulet
1d78ce681e
Actually parse async gen blocks correctly
2023-12-12 20:13:37 +00:00
Tomasz Miąsko
a48cebc4b8
Coroutine variant fields can be uninitialized
...
Wrap coroutine variant fields in MaybeUninit to indicate that they
might be uninitialized. Otherwise an uninhabited field will make
the entire variant uninhabited and introduce undefined behaviour.
The analogous issue in the prefix of coroutine layout was addressed by
6fae7f8071
.
2023-12-12 00:00:00 +00:00
surechen
40ae34194c
remove redundant imports
...
detects redundant imports that can be eliminated.
for #117772 :
In order to facilitate review and modification, split the checking code and
removing redundant imports code into two PR.
2023-12-10 10:56:22 +08:00
Michael Goulet
e987812521
Make async generators fused by default
2023-12-08 22:25:12 +00:00
Michael Goulet
11375c8657
Add tests
2023-12-08 17:23:26 +00:00
Michael Goulet
a208bae00e
Support async gen fn
2023-12-08 17:23:26 +00:00
Eric Holk
50ef8006eb
Address code review feedback
2023-12-04 14:33:46 -08:00
Eric Holk
48d5f1f0f2
Merge Async and Gen into CoroutineKind
2023-12-04 12:48:01 -08:00
Eric Holk
3887b1645a
Add a basic test for gen fn
2023-12-04 11:23:08 -08:00
Eric Holk
f29b36d03e
Make async gen fn an error
2023-12-04 11:23:07 -08:00
Eric Holk
7c43784cb0
gate gen fn behind gen_blocks
2023-12-04 11:23:06 -08:00
Tomasz Miąsko
5161b22143
Fix coroutine validation for mixed panic strategy
...
Validation introduced in #113124 allows UnwindAction::Continue and
TerminatorKind::Resume to occur only in functions with ABI that can
unwind. The function ABI depends on the panic strategy, which can vary
across crates.
Usually MIR is built and validated in the same crate. The coroutine drop
glue thus far was an exception. As a result validation could fail when
mixing different panic strategies.
Avoid the problem by executing AbortUnwindingCalls along with the
validation.
2023-11-28 21:11:24 +01:00
Nilstrieb
9b80d85722
Manual find replace updates
2023-11-24 21:04:51 +01:00
Nilstrieb
41e8d152dc
Show number in error message even for one error
...
Co-authored-by: Adrian <adrian.iosdev@gmail.com>
2023-11-24 19:15:52 +01:00
Michael Goulet
4f958a4802
Allow defining opaques in check_coroutine_obligations
2023-11-22 03:44:13 +00:00
Matthias Krüger
ca3a02836e
Rollup merge of #117338 - workingjubilee:asmjs-meets-thanatos, r=b-naber
...
Remove asmjs
Fulfills [MCP 668](https://github.com/rust-lang/compiler-team/issues/668 ).
`asmjs-unknown-emscripten` does not work as-specified, and lacks essential upstream support for generating asm.js, so it should not exist at all.
2023-11-17 23:04:21 +01:00
lcnr
86fa1317a3
rename ReLateBound
to ReBound
...
other changes:
- `Region::new_late_bound` -> `Region::new_bound`
- `Region::is_late_bound` -> `Region::is_bound`
2023-11-13 14:13:54 +00:00
lcnr
a42eca42df
generator layout: ignore fake borrows
2023-11-08 22:55:28 +01:00
lcnr
57253552de
dropck_outlives check generator witness needs_drop
2023-11-02 17:20:13 +01:00
Oli Scherer
224ddf8fd9
Only run panic tests on targets that can unwind
2023-10-30 16:32:53 +00:00
Oli Scherer
bc926f7c33
Add a custom panic message for resuming gen
blocks after they panicked
2023-10-30 10:23:57 +00:00
Oli Scherer
745c600617
Talk about gen fn
in diagnostics about gen fn
2023-10-30 10:13:12 +00:00
Jubilee Young
e9a009fd1a
Remove asmjs from tests
2023-10-28 23:11:03 -07:00
Oli Scherer
eb66d10cc3
Fuse gen
blocks
2023-10-27 15:20:44 +00:00
Oli Scherer
bb90c4bf35
Use targetted diagnostic for borrow across yield error
2023-10-27 13:05:49 +00:00
Oli Scherer
6223744078
Prevent generators from being movable
2023-10-27 13:05:49 +00:00
Oli Scherer
4ac25faf9f
Handle move
generators
2023-10-27 13:05:48 +00:00
Oli Scherer
cece90c65f
Feature gate coroutine yield
usage
2023-10-27 13:05:48 +00:00
Oli Scherer
2e5b36741b
Demonstrate issue with yield
checks
2023-10-27 13:05:48 +00:00
Oli Scherer
638d2d6fc1
Feature gate gen
blocks, even in 2024 edition
2023-10-27 13:05:48 +00:00
Oli Scherer
c892b28c02
Basic generators work
2023-10-27 13:05:48 +00:00