about summary refs log tree commit diff
path: root/compiler/rustc_codegen_gcc/example/std_example.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2024-07-03 11:56:36 +0000
committerbors <bors@rust-lang.org>2024-07-03 11:56:36 +0000
commitb52ac9a89af97b26e107c525257b30d47ad31702 (patch)
tree8cd90d0d4a03349e43943436f7c183c0c4975f34 /compiler/rustc_codegen_gcc/example/std_example.rs
parentf715bfc344502d0983d351c2cbdfea5373bd6c50 (diff)
parentcd6023180f131134440fdb2b265c496581d67895 (diff)
downloadrust-b52ac9a89af97b26e107c525257b30d47ad31702.tar.gz
rust-b52ac9a89af97b26e107c525257b30d47ad31702.zip
Auto merge of #125507 - compiler-errors:type-length-limit, r=lcnr
Re-implement a type-size based limit

r? lcnr

This PR reintroduces the type length limit added in #37789, which was accidentally made practically useless by the caching changes to `Ty::walk` in #72412, which caused the `walk` function to no longer walk over identical elements.

Hitting this length limit is not fatal unless we are in codegen -- so it shouldn't affect passes like the mir inliner which creates potentially very large types (which we observed, for example, when the new trait solver compiles `itertools` in `--release` mode).

This also increases the type length limit from `1048576 == 2 ** 20` to `2 ** 24`, which covers all of the code that can be reached with craterbot-check. Individual crates can increase the length limit further if desired.

Perf regression is mild and I think we should accept it -- reinstating this limit is important for the new trait solver and to make sure we don't accidentally hit more type-size related regressions in the future.

Fixes #125460
Diffstat (limited to 'compiler/rustc_codegen_gcc/example/std_example.rs')
0 files changed, 0 insertions, 0 deletions