Acknowledged
CIQQA-3141

bug: type checker behaves differently when module used explicitly with regards of null check, poly-type

module Foo {
    var bar as String?;
 
     function strFunc(str as String) as Number {
         return 1;
     }
 
    function moo() as Boolean {
        return return Foo.bar == null || strFunc(Foo.bar) > 0;
        // 
    }
}

ERROR: d2bravo: Foo.mc:9,8: Passing 'PolyType<Null or $.Toybox.Lang.String>' as parameter 1 of non-poly type '$.Toybox.Lang.String'.

but if I remove the module then it passes:
return return bar == null || strFunc(bar) > 0;

SDK 8.1.1