about summary refs log tree commit diff
path: root/compiler/rustc_codegen_llvm/src
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2022-08-09 16:39:43 +0000
committerbors <bors@rust-lang.org>2022-08-09 16:39:43 +0000
commit63e4312e6bd50ec9859c363402209809fb8155d5 (patch)
tree4953dbef9f6b944e18af8388d48adf94a4ce92b2 /compiler/rustc_codegen_llvm/src
parent6d3f1beae1720055e5a30f4dbe7a9e7fb810c65e (diff)
parent8691b96eee9635756b957ac8d9e5bd963cb73f12 (diff)
downloadrust-63e4312e6bd50ec9859c363402209809fb8155d5.tar.gz
rust-63e4312e6bd50ec9859c363402209809fb8155d5.zip
Auto merge of #99217 - lcnr:implied-bounds-pre-norm, r=lcnr
consider unnormalized types for implied bounds

extracted, and slightly modified, from #98900

The idea here is that generally, rustc is split into things which can assume its inputs are well formed[^1], and things which have verify that themselves.

Generally most predicates should only deal with well formed inputs, e.g. a `&'a &'b (): Trait` predicate should be able to assume that `'b: 'a` holds. Normalization can loosen wf requirements (see #91068) and must therefore not be used in places which still have to check well formedness. The only such place should hopefully be `WellFormed` predicates

fixes #87748 and #98543

r? `@jackh726` cc `@rust-lang/types`

[^1]: These places may still encounter non-wf inputs and have to deal with them without causing an ICE as we may check for well formedness out of order.
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
0 files changed, 0 insertions, 0 deletions