About this
using OPTION _EXPLICIT forces you to DIM a hell of allot more things (everything) but that in turn forces you to think allot more about types the variable may declared.
I think that stopping the compilation this OPTION _EXPLICIT works with a Pascal spirit and not with a BASIC spirit.
IMHO in Pascal the absence of declaration is a syntax's error. So you first think, then declare and after type code.
in the end
this
IncreaseT
PrintT
END
SUB IncreaseT
SHARED t AS INTEGER
t = t +1
END SUB
SUB PrintT
SHARED t AS INTEGER
PRINT t
END SUB
is the implicit form of this one that follows
t = 0
IncreaseT
PrintT
END
SUB IncreaseT
SHARED t AS INTEGER
t = t +1
END SUB
SUB PrintT
SHARED t AS INTEGER
PRINT t
END SUB
so we can understand why OPTION _EXPLICIT claims declaration of variables, that are SHARED into SUB/FUNCTION, into main.
But in QB SHARED is the same? If so for backcompatibility with QB code OPTION _EXPLICIT must warn and not halt.
Thanks to read