Skip to content

Segmentation fault combining value let rec and labelled partial applications #12727

@lthls

Description

@lthls
# let f ~x = let z = x ~y:0 in fun ~y ~u:() -> z + (x ~y);;
val f : x:(y:int -> int) -> y:int -> u:unit -> int = <fun>
# let rec x = f ~x ~u:();;
Segmentation fault

Rec_check considers that an application with missing labelled parameters is a simple closure allocation, not inspecting the function and arguments. But currently this is wrong, as the function is applied to all parameters until the first missing.

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