[lworld] RFR: 8292753: [lworld] javac is accepting erroneous synchronized statements
    Vicente Romero 
    vromero at openjdk.org
       
    Tue Aug 23 18:33:49 UTC 2022
    
    
  
javac should issue an error for this code:
value class C<T extends C> {
    void m(T t) {
        synchronized(t) {}
    }
}
as type variable T is bounded by a value class. Also code like this one should be rejected:
value class C<T extends C> {
    void foo(Object o) {
        synchronized ((C & I)o) {} // one of the superclasses of the intersection type is a value class
    }
}
-------------
Commit messages:
 - 8292753: [lworld] missing javac errors for synchronized statement
Changes: https://git.openjdk.org/valhalla/pull/724/files
 Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=724&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8292753
  Stats: 41 lines in 3 files changed: 33 ins; 4 del; 4 mod
  Patch: https://git.openjdk.org/valhalla/pull/724.diff
  Fetch: git fetch https://git.openjdk.org/valhalla pull/724/head:pull/724
PR: https://git.openjdk.org/valhalla/pull/724
    
    
More information about the valhalla-dev
mailing list