Skip to content

Fill operator #435

Description

@K4rakara

A nice feature to have would be JavaScripts fill operator:

const object1 = { foo: "Hello", bar: "World" } // { foo: "Hello", bar: "World" }
const object2 = { ...object1, bar: "Universe" } // { foo: "Hello", bar: "Universe" }

Now, ... in lua is an operator(?) that copies variable arguments, if they exist.

So, something else would have to be used; heres a few options:

  • ,,, table1:
    • pros: Simple, close to what you would type for ....
    • cons: Looks weird
  • .. table1: Could be used if it is only allowed in situations where there is nothing before the .. operator except for { or ,.
    • pros: Simple, similar to something Lua would do, close to what you would type for ....
    • cons: might clash with the concat operator if not implemented right.

As far as what this could compile to, its fairly simple:

table1 = { foo: "Hello", bar: "World" }
table2 = { ..table1, bar: "Universe" }

Becomes:

table1 = { foo = "Hello", bar = "World" }
table2 = { table.unpack(table1), bar = "Universe" }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions