-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
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.