]> git.lizzy.rs Git - rust.git/commit
Better handling for exponential-sized types in misc places
authorValerii Lashmanov <vflashm@gmail.com>
Tue, 15 Sep 2020 23:22:24 +0000 (18:22 -0500)
committerValerii Lashmanov <vflashm@gmail.com>
Fri, 18 Sep 2020 01:44:11 +0000 (20:44 -0500)
commit17d2e3b5d208d29d156ff94f112b5bc95acee351
tree3cb112dbb2f875f1468f307aa5b1670034caf4aa
parent2f3296192bb5be5fcb02975395052ee8c3b2bd68
Better handling for exponential-sized types in misc places

Mostly to fix ui/issues/issue-37311-type-length-limit/issue-37311.rs.

Most parts of the compiler can handle deeply nested types with a lot
of duplicates just fine, but some parts still attempt to naively
traverse type tree.

Before such problems were caught by type length limit check,
but now these places will have to be changed to handle
duplicated types gracefully.
12 files changed:
compiler/rustc_infer/src/infer/combine.rs
compiler/rustc_middle/src/ty/print/mod.rs
compiler/rustc_middle/src/ty/print/pretty.rs
compiler/rustc_mir/src/monomorphize/collector.rs
src/test/ui/infinite/infinite-instantiation.stderr
src/test/ui/issues/issue-37311-type-length-limit/issue-37311.rs
src/test/ui/issues/issue-37311-type-length-limit/issue-37311.stderr
src/test/ui/issues/issue-67552.stderr
src/test/ui/issues/issue-8727.stderr
src/test/ui/recursion/issue-38591-non-regular-dropck-recursion.stderr
src/test/ui/recursion/recursion.stderr
src/test/ui/type_length_limit.stderr