Even in cases where it is valid to omit the parentheses, it is not valid to write a comma immediately after the function/method name. Comma is used only between parameters or to separate sub-expressions, as in
x := 1, y := 2.
Global variables being directly assigned by a function must be declared
inside the function.
bbAuto := 1 assigns to a local variable whose value is never used.
If the code was inside a function, removing
global would allow the outer function to create a local variable which would be implicitly captured by the inner function. Replacing
global with
static would have a similar effect, except that the static variable would be referenced directly and not "captured".
Assigning
bb.Auto := 1 would make a property of bb, avoiding all issues of variable scope, but causing a
circular reference to the Gui.
(cb, *) => cb.Gui.Auto := 1 would make a property of bb without creating a circular reference.