Skip to content

Scoping #2

@andrewvy

Description

@andrewvy
object Scoping {
  arg = "This is the object-level"

  # What if we use the same name for a function param?
  function do_something(arg) {
    # Now arg (in function scope), does this initialize a new variable or change `arg` at the object-level?
    arg = "What scope is this?"
  }
}

Defining variables should work as such:

  • If only at object-level, define variable at the object-level.
  • If in a function head, raise a compiler error if it clashes with a variable name previously defined at the object-level. Else, allow it to be defined at the function level.
  • If in a method, check if the same variable has been declared at the object level. If it has, then this is an assignment to that object-level variable, instead of creating one at the function-level.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions