hg: valhalla/valhalla/langtools: Add refined support for method specialization constraints:

maurizio.cimadamore at oracle.com maurizio.cimadamore at oracle.com
Wed Nov 12 20:03:26 UTC 2014


Changeset: cb1ec9c62997
Author:    mcimadamore
Date:      2014-11-12 20:02 +0000
URL:       http://hg.openjdk.java.net/valhalla/valhalla/langtools/rev/cb1ec9c62997

Add refined support for method specialization constraints:
* removed __RefOnly keyword
* new fine-grained __WhereRef(X) and __WhereVal(X) constructs to define context-dependent type-variable semantics
* restructured javac pipeline to work with the new keywords/constructs
* Added new bytecode attribute (Where) to store type-variable constraints

Notes:
* __WhereVal is currently not supported and will cause compiler crashes.
* ASM and specializer support to follow.

! src/jdk.compiler/share/classes/com/sun/tools/classfile/Attribute.java
! src/jdk.compiler/share/classes/com/sun/tools/classfile/ClassWriter.java
+ src/jdk.compiler/share/classes/com/sun/tools/classfile/Where_attribute.java
! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Flags.java
! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Lint.java
! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.java
! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java
! 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/comp/MemberEnter.java
! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java
! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassReader.java
! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassWriter.java
! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java
! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/Tokens.java
! src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java
! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties
! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac.properties
! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/JCTree.java
! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeCopier.java
! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeMaker.java
! src/jdk.compiler/share/classes/com/sun/tools/javac/util/Names.java
! src/jdk.compiler/share/classes/com/sun/tools/javap/AttributeWriter.java
! test/tools/javac/MethodParameters/AttributeVisitor.java
! test/tools/javac/diags/examples/DoesNotDefineConstr.java
- test/tools/javac/diags/examples/IllegalRefOnlyCall.java
+ test/tools/javac/diags/examples/IllegalRestrictedCall.java
+ test/tools/javac/diags/examples/IllegalWhereDef.java
- test/tools/javac/diags/examples/RedundantRefOnlyDef.java
+ test/tools/javac/diags/examples/RedundantWhereDef.java
! test/tools/javac/valhalla/typespec/TestRefOnly01.java
! test/tools/javac/valhalla/typespec/TestRefOnly01.out
! test/tools/javac/valhalla/typespec/TestRefOnly02.java
! test/tools/javac/valhalla/typespec/TestRefOnly03.java
! test/tools/javac/valhalla/typespec/TestRefOnly04.java
! test/tools/javac/valhalla/typespec/TestRefOnly05.java
! test/tools/javac/valhalla/typespec/TestRefOnly06.java
! test/tools/javac/valhalla/typespec/TestRefOnly07.java
! test/tools/javac/valhalla/typespec/TestRefOnly07.out
! test/tools/javac/valhalla/typespec/TestRefOnly08.java
! test/tools/javac/valhalla/typespec/TestRefOnly08.out
! test/tools/javac/valhalla/typespec/TestRefOnly09.java
! test/tools/javac/valhalla/typespec/items/tests/TestRefOnly.java
+ test/tools/javac/valhalla/typespec/separate03/A.java
+ test/tools/javac/valhalla/typespec/separate03/TestSeparate.java
+ test/tools/javac/valhalla/typespec/separate03/TestSeparate.out



More information about the valhalla-dev mailing list