Compiler options are "-w -l 3 -O 3z".
import Toybox.Lang;
module M {
class C1 {
static const CONST = 1;
}
class C2 {
function f() as Number {
return C1.CONST; // Cannot find symbol ':CONST' on class definition '$.C1'.
}
}
}
class C1 {
}
class C2 extends M.C2 {
function initialize() {
M.C2.initialize();
}
}
Similar code builds and works as expected with SDK 8.1.1. I've already reported something like that for 8.0.0 beta - https://forums.garmin.com/developer/connect-iq/i/bug-reports/sdk-8-0-0-beta-member-lookup-rules-have-changed, and it was fixed around 8.1.0-8.1.1, but it is back.
8.2.3 assembler with "-w -l 0 -O 3z":
globals/M/C2/f:
argc 1
getselfv C1
getsv CONST
return
globals/M/C2/f_func_end:
There are no constants inlining as well.
8.1.1 assembler with "-w -l 3 -O 3,disable-constant-folding,disable-lexical-only-constants":
globals/M/C2/f:
argc 1
getmv globals/M C1
getsv CONST
return
globals/M/C2/f_func_end: