Identifier precedence

Unqualified identifiers used in expressions must be resolved into an object, property or variable reference. In the following example, "rectangle" and "margin" are unqualified identifiers.

rectangle.width + margin

In the case of a possible conflict - such as a variable and element identifier with the same name - they are resolved in the priority order shown below.

For example, in the following code the "button" identifier refers to the function parameter as it has a higher precedence than the conflicting element identifier.

Apple.Button as button {}

function increaseSize(Apple.Button button) {
    button.size += 2
}