hg: valhalla/valhalla: 8222784: [lworld] Remove stale compiler options: -XDallowGenericsOverValues and -XDdisallowValueConstructors

Remi Forax forax at univ-mlv.fr
Sat Apr 20 10:23:43 UTC 2019


Hum,
i think you have been a little too fast on removing -XDallowGenericsOverValues,
there are still a lot of constructions that doesn't support the null projection.

- you can not use '?' in 'implements Comparable<Foo?>' so the following code doesn't compile
  public @__value__ class Foo implements Comparable<Foo?>{
    final int value;
  
    public Foo(int value) {
      this.value = value;
    }

    @Override
    public int compareTo(Foo? o) {
      return Integer.compare(value, foo.value);
    }
 }

- lambda with wildcard doesn't work
  import java.util.function.Consumer;

  public @__value__ class CaptureBug {
    final int value;
  
    public CaptureBug(int value) {
      this.value = value;
    }
  
    private static void accept(Consumer<? super CaptureBug?> consumer) {
      consumer.accept(new CaptureBug(3));
    }
  
    public static void main(String[] args) {
      accept(value -> System.out.println(value));
    }
  }

- .class notation is not supported
  public class DotClass {
    final int value;
  
    public DotClass(int value) {
      this.value = value;
    }
  
    private static <T> T foo(Class<T> type) {
      return null;
    }
  
    public static void main(String[] args) {
      foo(DotClass?.class);
    }
  }


I'm sure they are other cases, i will iterate over all my examples later this week end.

Rémi

----- Mail original -----
> De: "Srikanth" <srikanth.adayapalam at oracle.com>
> À: "valhalla-dev" <valhalla-dev at openjdk.java.net>
> Envoyé: Samedi 20 Avril 2019 07:38:21
> Objet: Re: hg: valhalla/valhalla: 8222784: [lworld] Remove stale compiler options: -XDallowGenericsOverValues and
> -XDdisallowValueConstructors

> I have removed the support for these two internal experimental options:
> 
> (1) -XDdisallowValueConstructors: We have settled on value instance
> construction using the canonial construction syntax via new ().
> 
> (2) -XDallowGenericsOverValues: Use the null projection type instead (V?)
> 
> Here is a summary of current internal options: Of these the last two are
> supposed to be transitory. If you are the concerned contributor, let me
> know as soon as these can be withdrawn.
> 
> -XDallowWithFieldOperator
> -XDallowValueBasedClasses
> -XDallowEmptyValues
> -XDnonCovariantValueArrays
> -XDallowValueMemberCycles
> 
> Thanks!
> Srikanth
> 
> On 20/04/19 11:04 AM, srikanth.adayapalam at oracle.com wrote:
>> Changeset: 49898238a5bb
>> Author:    sadayapalam
>> Date:      2019-04-20 11:04 +0530
>> URL:       http://hg.openjdk.java.net/valhalla/valhalla/rev/49898238a5bb
>>
>> 8222784: [lworld] Remove stale compiler options: -XDallowGenericsOverValues and
>> -XDdisallowValueConstructors
>>
>> ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java
>> ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java
>> !
>> src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties
>> ! test/langtools/tools/javac/diags/examples.not-yet.txt
>> ! test/langtools/tools/javac/valhalla/lworld-values/BoxValCastTest.java
>> ! test/langtools/tools/javac/valhalla/lworld-values/BoxValCastTest2.java
>> ! test/langtools/tools/javac/valhalla/lworld-values/CheckFinal.java
>> ! test/langtools/tools/javac/valhalla/lworld-values/CheckFinal.out
>> !
>> test/langtools/tools/javac/valhalla/lworld-values/CheckValueFactoryWithReference.java
>> !
>> test/langtools/tools/javac/valhalla/lworld-values/CheckValueFactoryWithReference.out
>> !
>> test/langtools/tools/javac/valhalla/lworld-values/InferredValueParameterizationTest.java
>> ! test/langtools/tools/javac/valhalla/lworld-values/ValueConstructorRef.java
>> ! test/langtools/tools/javac/valhalla/lworld-values/ValueOverGenericsTest.java
>> - test/langtools/tools/javac/valhalla/lworld-values/ValueOverGenericsTest2.out
>> ! test/langtools/tools/javac/valhalla/lworld-values/ValuesAsRefs.java



More information about the valhalla-dev mailing list