On Fri, 29 Aug 2025 10:10:06 GMT, Maurizio Cimadamore <[email protected]> 
wrote:

>> if one has a complex select like for example: `new SuperInitFails(){}.x` it 
>> is still necessary to look inside and see if there are some forbidden 
>> accesses
>
> Ok, the issue might then be that, while looking inside `SuperInitFails` you 
> find a plain early access to a field (e.g. an ident) and we end up skipping 
> it because `analyzingSelect` is set. At the very least we should unset inside 
> classes (maybe lambdas too).

Example:


class Test {

    int x = 4;

    static String m(Runnable r) { return null; }

    Test() {
        m(() -> System.out.println(x)).toString();
        super();
    }

    public static void main(String[] args) {
        new Test();
    }
}


This seems to compile, but then fails with verifier error.

-------------

PR Review Comment: 
https://git.openjdk.org/valhalla/pull/1523#discussion_r2309859203

Reply via email to