Skip to content

Compiler hangs when compiling large string concatenation #24989

@zeitbit

Description

@zeitbit

Nim Compiler Version 2.3.1 [Windows: amd64]
Compiled at 2025-06-09.

const CRLF = "\r\n"

proc Test(): string =
    let text = "---------------------" &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF &
    "----------" & "----------" & CRLF

    text

echo Test()

Description

Current Output

Expected Output

Known Workarounds

No response

Additional Information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions