Nicholas Nethercote
05849e8c2f
Use fewer delayed bugs.
...
For some cases where it's clear that an error has already occurred,
e.g.:
- there's a comment stating exactly that, or
- things like HIR lowering, where we are lowering an error kind
The commit also tweaks some comments around delayed bug sites.
2024-02-14 20:30:37 +11:00
bors
e28fae52d9
Auto merge of #120843 - matthiaskrgr:rollup-med37z5, r=matthiaskrgr
...
Rollup of 8 pull requests
Successful merges:
- #113671 (Make privacy visitor use types more (instead of HIR))
- #120308 (core/time: avoid divisions in Duration::new)
- #120693 (Invert diagnostic lints.)
- #120704 (A drive-by rewrite of `give_region_a_name()`)
- #120809 (Use `transmute_unchecked` in `NonZero::new`.)
- #120817 (Fix more `ty::Error` ICEs in MIR passes)
- #120828 (Fix `ErrorGuaranteed` unsoundness with stash/steal.)
- #120831 (Startup objects disappearing from sysroot)
r? `@ghost`
`@rustbot` modify labels: rollup
2024-02-09 15:34:48 +00:00
Michael Goulet
e32c1ddc52
Don't ice in validation when error body is created
2024-02-09 00:40:43 +00:00
Ben Kimock
8836ac5758
Add a new debug_assertions instrinsic (compiler)
...
And in clippy
2024-02-08 11:49:08 -05:00
Michael Goulet
a82bae2172
Teach typeck/borrowck/solvers how to deal with async closures
2024-02-06 02:22:58 +00:00
Michael Goulet
c567eddec2
Add CoroutineClosure to TyKind, AggregateKind, UpvarArgs
2024-02-06 02:22:58 +00:00
Michael Goulet
866364cc5d
Normalize field types before checking validity
2024-01-26 18:36:15 +00:00
Michael Goulet
f26f52c42b
Validate AggregateKind types in MIR
2024-01-19 19:47:03 +00:00
Martin Nordholts
16ba56c242
compiler: Lower fn call arg spans down to MIR
...
To enable improved accuracy of diagnostics in upcoming commits.
2024-01-15 19:07:11 +01:00
Tomasz Miąsko
df116ec246
Migrate memory overlap check from validator to lint
...
The check attempts to identify potential undefined behaviour, rather
than whether MIR is well-formed. It belongs in the lint not validator.
2024-01-04 23:32:22 +01:00
Michael Goulet
fcb42b42d6
Remove movability from TyKind::Coroutine
2023-12-28 16:35:01 +00:00
Nicholas Nethercote
99472c7049
Remove Session
methods that duplicate DiagCtxt
methods.
...
Also add some `dcx` methods to types that wrap `TyCtxt`, for easier
access.
2023-12-24 08:05:28 +11:00
Tomasz Miąsko
7a246ddd8e
Add pass to identify undefined or erroneous behaviour
2023-12-21 12:58:39 +01:00
Nicholas Nethercote
09af8a667c
Rename Session::span_diagnostic
as Session::dcx
.
2023-12-18 16:06:21 +11:00
Nicholas Nethercote
5d1d384443
Rename HandlerInner::delay_span_bug
as HandlerInner::span_delayed_bug
.
...
Because the corresponding `Level` is `DelayedBug` and `span_delayed_bug`
follows the pattern used everywhere else: `span_err`, `span_warning`,
etc.
2023-12-02 09:01:19 +11:00
Tomasz Miąsko
cef892ebab
Validate there are no critical call edges in optimized MIR
2023-11-22 01:56:31 +01:00
lcnr
992d93f687
rename BorrowKind::Shallow
to Fake
...
also adds some comments
2023-11-08 22:55:28 +01:00
George Bateman
d995bd61e7
Enums in offset_of: update based on est31, scottmcm & llogiq review
2023-10-31 23:26:02 +00:00
George Bateman
e936416a8d
Support enum variants in offset_of!
2023-10-31 23:25:54 +00:00
Oli Scherer
e96ce20b34
s/generator/coroutine/
2023-10-20 21:14:01 +00:00
Oli Scherer
60956837cf
s/Generator/Coroutine/
2023-10-20 21:10:38 +00:00
ouz-a
6f0c5ee2d4
change is_subtype to relate_types
2023-10-02 23:39:45 +03:00
ouz-a
cd7f471931
Add docs, remove code, change subtyper code
2023-10-02 23:39:44 +03:00
ouz-a
3148e6a993
subtyping_projections
2023-10-02 23:37:49 +03:00
Oli Scherer
0031cf7c7e
Add a mir validation check to prevent OpaqueCast after analysis passes finish
2023-09-28 16:13:38 +00:00
lcnr
3c52a3e280
subst -> instantiate
2023-09-26 09:37:55 +02:00
Camille GILLOT
26c48e6f95
Refactor how MIR represents composite debuginfo.
2023-09-05 17:20:07 +00:00
Matthias Krüger
88b476c388
Rollup merge of #115164 - RalfJung:no-in-place-packed, r=b-naber
...
MIR validation: reject in-place argument/return for packed fields
As discussed [here](https://rust-lang.zulipchat.com/#narrow/stream/136281-t-opsem/topic/Packed.20fields.20and.20in-place.20function.20argument.2Freturn.20passing ).
2023-08-28 19:53:54 +02:00
Ralf Jung
4c53783f3c
when terminating during unwinding, show the reason why
2023-08-24 13:28:26 +02:00
Ralf Jung
739144fc5b
MIR validation: reject in-place argument/return for packed fields
2023-08-24 11:38:19 +02:00
Ralf Jung
818ec8e23a
give some unwind-related terminators a more clear name
2023-08-20 15:52:38 +02:00
Gary Guo
eb4d6d9ff7
Add missing instantiation of generator ty in validator
2023-08-18 16:40:10 +01:00
Gary Guo
56b933763e
Add MIR validation for unwind out from nounwind functions
2023-08-18 13:51:42 +01:00
Camille GILLOT
933b618360
Revert "Implement references VarDebugInfo."
...
This reverts commit 2ec0071913
.
2023-08-17 17:02:04 +00:00
Michael Goulet
99969d282b
Use upvar_tys in more places, make it a list
2023-08-01 23:19:31 +00:00
Matthias Krüger
c64ef5e070
inline format!() args from rustc_codegen_llvm to the end (4)
...
r? @WaffleLapkin
2023-07-25 23:20:28 +02:00
Camille GILLOT
b6cd7006e0
Reuse MIR validator for inliner.
2023-07-21 13:58:33 +00:00
Camille GILLOT
2ef2ac0b51
Make type validation buffer errors.
2023-07-21 13:54:34 +00:00
Camille GILLOT
030589d488
Separate CFG validation from type validation.
2023-07-21 13:54:34 +00:00
Mahdi Dibaiee
e55583c4b8
refactor(rustc_middle): Substs -> GenericArg
2023-07-14 13:27:35 +01:00
Mark Rousskov
cc907f80b9
Re-format let-else per rustfmt update
2023-07-12 21:49:27 -04:00
Nilstrieb
2beabbbf6f
Rename adjustment::PointerCast
and variants using it to PointerCoercion
...
It makes it sound like the `ExprKind` and `Rvalue` are supposed to represent all pointer related
casts, when in reality their just used to share a some enum variants. Make it clear there these
are only coercion to make it clear why only some pointer related "casts" are in the enum.
2023-07-07 18:17:16 +02:00
Michael Goulet
3aa4561923
Rollup merge of #111917 - WaffleLapkin:validate_unalloc, r=oli-obk
...
Simplify duplicate checks for mir validator
This removes unnecessary allocations & is less code.
2023-07-06 20:11:38 -07:00
bors
b9ad9b78a2
Auto merge of #112693 - ericmarkmartin:use-more-placeref, r=spastorino
...
Use PlaceRef abstractions more often
Associated issue: https://github.com/rust-lang/rust/issues/80647
r? `@spastorino`
2023-06-27 00:34:49 +00:00
Eric Mark Martin
c07c10d1e4
use PlaceRef abstractions more consistently
2023-06-25 20:38:01 -04:00
Scott McMurray
c780e55995
Dedup some type checks in the MIR validator
2023-06-19 01:47:03 -07:00
Scott McMurray
39788e07ba
Promote unchecked_add/sub/mul/shl/shr to mir::BinOp
2023-06-19 01:47:03 -07:00
Maybe Waffle
cdaef2c435
Simplify duplicate checks for mir validator
2023-05-24 16:07:35 +00:00
Tomasz Miąsko
f16d2b1629
Start node has no immediate dominator
...
Change the immediate_dominator return type to Option, and use None to
indicate that node has no immediate dominator.
Also fix the issue where the start node would be returned as its own
immediate dominator.
2023-05-14 16:09:58 +02:00
Camille GILLOT
2ec0071913
Implement references VarDebugInfo.
2023-05-13 10:12:14 +00:00