Skip to content

Conjecture: record concatenation is safe with an open record on the left #109

@jeromesimeon

Description

@jeromesimeon

The idea behind the conjecture:

Fields on the right of OpRecConcat hides corresponding fields that may exist on the left, so the type of those fields on the left do not matter.

Currently: if they are known in the left record type, the right field take precedence. For instance:

[a: Integer, b: String]++[a: String, c: Integer] -> [a: String,  b: String, c:Integer]

If the left record is open, the following should be sound:

[a: Integer, b: String, ..]++[a: String, c:Integer] -> [a: String, b: String, c:Integer, ..]

If c is present in the instance of the left, this will be hidden so we know the result of concatenation has a field c of type Integer

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions