Skip to content

Exponential compile time with invalid use of modifying-assignment operators #117690

Open
@jruderman

Description

@jruderman

Found by fuzzing and probably only affects fuzzing

Code

fn a() {
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1 += & 
    1
}

Where it's slow

According to -Z time-passes the slowness is within type_check_crate.

check_expr_coercible_to_type is on the stack multiple times (sample head)

Regression

Regression in nightly-2023-04-30, maybe due to #110877?

Commits in range
  commit[0] 2023-04-28UTC: Auto merge of #110901 - GuillaumeGomez:inlined-repr-rustdoc, r=notriddle
  commit[1] 2023-04-28UTC: Auto merge of #110967 - matthiaskrgr:rollup-vfbl7gm, r=matthiaskrgr
  commit[2] 2023-04-29UTC: Auto merge of #110643 - pietroalbini:pa-bump-stage0, r=Mark-Simulacrum
  commit[3] 2023-04-29UTC: Auto merge of #110978 - Dylan-DPC:rollup-xclzwax, r=Dylan-DPC
  commit[4] 2023-04-29UTC: Auto merge of #108106 - the8472:layout-opt, r=wesleywiser
  commit[5] 2023-04-29UTC: Auto merge of #110992 - bjorn3:sync_cg_clif-2023-04-29, r=bjorn3
  commit[6] 2023-04-29UTC: Auto merge of #110994 - matthiaskrgr:rollup-wv4u5yi, r=matthiaskrgr
  commit[7] 2023-04-29UTC: Auto merge of #110576 - jyn514:unify-test-args, r=ozkanonur

Version

rustc 1.75.0-nightly (fee5518cd 2023-11-05)
binary: rustc
commit-hash: fee5518cdd4435c60a57fe3bb734fc1a14abeb7a
commit-date: 2023-11-05
host: x86_64-apple-darwin
release: 1.75.0-nightly
LLVM version: 17.0.4

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.I-compiletimeIssue: Problems and improvements with respect to compile times.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions