This commit is contained in:
Lana Steuck 2011-04-25 15:45:49 -07:00
commit b7e7d71822
138 changed files with 427 additions and 235 deletions

View file

@ -71,9 +71,18 @@ javac.version.opt =
javac.lint.opts = -Xlint:all,-deprecation -Werror javac.lint.opts = -Xlint:all,-deprecation -Werror
# options for the <javadoc> task for javac # options for the <javadoc> task for javac
javadoc.jls3.url=http://java.sun.com/docs/books/jls/ #javadoc.jls3.url=http://java.sun.com/docs/books/jls/
javadoc.jls3.cite=&lt;a href=&quot;${javadoc.jls3.url}&quot;&gt;The Java Language Specification, Third Edition&lt;/a&gt; #javadoc.jls3.cite=&lt;a href=&quot;${javadoc.jls3.url}&quot;&gt;The Java Language Specification, Third Edition&lt;/a&gt;
javadoc.jls3.option=-tag "jls3:a:See &lt;cite&gt;${javadoc.jls3.cite}&lt;/cite&gt;:" #javadoc.jls3.option=-tag "jls3:a:See &lt;cite&gt;${javadoc.jls3.cite}&lt;/cite&gt;:"
javadoc.jls.cite=The Java&trade; Language Specification
javadoc.jls.option=-tag "jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"
# jtreg, used to run the JDK regression tests # jtreg, used to run the JDK regression tests
# See http://openjdk.java.net/jtreg/ # See http://openjdk.java.net/jtreg/

View file

@ -464,7 +464,7 @@
</target> </target>
<target name="javadoc-javac" depends="build-javac,-def-javadoc-tool"> <target name="javadoc-javac" depends="build-javac,-def-javadoc-tool">
<javadoc-tool name="javac" includes="${javac.includes}" options="${javadoc.jls3.option}"/> <javadoc-tool name="javac" includes="${javac.includes}" options="${javadoc.jls.option}"/>
</target> </target>
<target name="jtreg-javac" depends="build-javac,build-javap,-def-jtreg"> <target name="jtreg-javac" depends="build-javac,build-javap,-def-jtreg">

View file

@ -311,8 +311,8 @@ public interface ClassDoc extends ProgramElementDoc, Type {
/** /**
* Get the list of classes and interfaces declared as imported. * Get the list of classes and interfaces declared as imported.
* These are called "single-type-import declarations" in the * These are called "single-type-import declarations" in
* Java Language Specification. * <cite>The Java&trade; Language Specification</cite>.
* *
* @return an array of ClassDoc representing the imported classes. * @return an array of ClassDoc representing the imported classes.
* *
@ -325,8 +325,8 @@ public interface ClassDoc extends ProgramElementDoc, Type {
/** /**
* Get the list of packages declared as imported. * Get the list of packages declared as imported.
* These are called "type-import-on-demand declarations" in the * These are called "type-import-on-demand declarations" in
* Java Language Specification. * <cite>The Java&trade; Language Specification</cite>.
* *
* @return an array of PackageDoc representing the imported packages. * @return an array of PackageDoc representing the imported packages.
* *

View file

@ -36,7 +36,7 @@ import java.util.List;
* {@code @}<em>annotationType</em> ( <em>arguments</em> ) * {@code @}<em>annotationType</em> ( <em>arguments</em> )
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 9.7" * @jls section 9.7
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -33,7 +33,7 @@ package com.sun.source.tree;
* <em>expression</em> [ <em>index</em> ] * <em>expression</em> [ <em>index</em> ]
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 15.13" * @jls section 15.13
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -33,7 +33,7 @@ package com.sun.source.tree;
* <em>type</em> [] * <em>type</em> []
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 10.1" * @jls section 10.1
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -35,7 +35,7 @@ package com.sun.source.tree;
* assert <em>condition</em> : <em>detail</em> ; * assert <em>condition</em> : <em>detail</em> ;
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 14.10" * @jls section 14.10
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -33,7 +33,7 @@ package com.sun.source.tree;
* <em>variable</em> = <em>expression</em> * <em>variable</em> = <em>expression</em>
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 15.26.1" * @jls section 15.26.1
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -34,7 +34,7 @@ package com.sun.source.tree;
* <em>leftOperand</em> <em>operator</em> <em>rightOperand</em> * <em>leftOperand</em> <em>operator</em> <em>rightOperand</em>
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, sections 15.17 to 15.24" * @jls sections 15.17 to 15.24
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -39,7 +39,7 @@ import java.util.List;
* static { <em>statements</em> } * static { <em>statements</em> }
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 14.2" * @jls section 14.2
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -37,7 +37,7 @@ import javax.lang.model.element.Name;
* break <em>label</em> ; * break <em>label</em> ;
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 14.15" * @jls section 14.15
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -39,7 +39,7 @@ import java.util.List;
* <em>statements</em> * <em>statements</em>
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 14.11" * @jls section 14.11
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -34,7 +34,7 @@ package com.sun.source.tree;
* <em>block</em> * <em>block</em>
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 14.20" * @jls section 14.20
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -42,8 +42,7 @@ import javax.lang.model.element.Name;
* } * }
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, * @jls sections 8.1, 8.9, 9.1, and 9.6
* sections 8.1, 8.9, 9.1, and 9.6"
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -33,7 +33,7 @@ import com.sun.source.tree.LineMap;
* Represents the abstract syntax tree for compilation units (source * Represents the abstract syntax tree for compilation units (source
* files) and package declarations (package-info.java). * files) and package declarations (package-info.java).
* *
* @see "The Java Language Specification, 3rd ed, sections 7.3, and 7.4" * @jls sections 7.3, and 7.4
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @since 1.6 * @since 1.6

View file

@ -34,7 +34,7 @@ package com.sun.source.tree;
* <em>variable</em> <em>operator</em> <em>expression</em> * <em>variable</em> <em>operator</em> <em>expression</em>
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 15.26.2" * @jls section 15.26.2
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -33,7 +33,7 @@ package com.sun.source.tree;
* <em>condition</em> ? <em>trueExpression</em> : <em>falseExpression</em> * <em>condition</em> ? <em>trueExpression</em> : <em>falseExpression</em>
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 15.25" * @jls section 15.25
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -36,7 +36,7 @@ import javax.lang.model.element.Name;
* continue <em>label</em> ; * continue <em>label</em> ;
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 14.16" * @jls section 14.16
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -35,7 +35,7 @@ package com.sun.source.tree;
* while ( <em>expression</em> ); * while ( <em>expression</em> );
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 14.13" * @jls section 14.13
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -33,7 +33,7 @@ package com.sun.source.tree;
* ; * ;
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 14.6" * @jls section 14.6
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -34,7 +34,7 @@ package com.sun.source.tree;
* <em>statement</em> * <em>statement</em>
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 14.14.2" * @jls section 14.14.2
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -33,7 +33,7 @@ package com.sun.source.tree;
* <em>expression</em> ; * <em>expression</em> ;
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 14.8" * @jls section 14.8
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -29,7 +29,7 @@ package com.sun.source.tree;
* A tree node used as the base class for the different types of * A tree node used as the base class for the different types of
* expressions. * expressions.
* *
* @see "The Java Language Specification, 3rd ed, chapter 15" * @jls chapter 15
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -36,7 +36,7 @@ import java.util.List;
* <em>statement</em> * <em>statement</em>
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 14.14.1" * @jls section 14.14.1
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -35,7 +35,7 @@ import javax.lang.model.element.Name;
* <em>name</em> * <em>name</em>
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 6.5.6.1" * @jls section 6.5.6.1
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -39,7 +39,7 @@ package com.sun.source.tree;
* <em>elseStatement</em> * <em>elseStatement</em>
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 14.9" * @jls section 14.9
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -35,7 +35,7 @@ package com.sun.source.tree;
* static import <em>qualifiedIdentifier</em> ; * static import <em>qualifiedIdentifier</em> ;
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 7.5" * @jls section 7.5
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -33,7 +33,7 @@ package com.sun.source.tree;
* <em>expression</em> instanceof <em>type</em> * <em>expression</em> instanceof <em>type</em>
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 15.20.2" * @jls section 15.20.2
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -35,7 +35,7 @@ import javax.lang.model.element.Name;
* <em>label</em> : <em>statement</em> * <em>label</em> : <em>statement</em>
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 14.7" * @jls section 14.7
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -34,7 +34,7 @@ package com.sun.source.tree;
* <em>value</em> * <em>value</em>
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 15.28" * @jls section 15.28
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -35,8 +35,7 @@ import javax.lang.model.element.Name;
* <em>expression</em> . <em>identifier</em> * <em>expression</em> . <em>identifier</em>
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, sections 6.5, * @jls sections 6.5, 15.11,and 15.12
* 15.11, and 15.12"
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -37,7 +37,7 @@ import java.util.List;
* this . <em>typeArguments</em> <em>identifier</em> ( <em>arguments</em> ) * this . <em>typeArguments</em> <em>identifier</em> ( <em>arguments</em> )
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 15.12" * @jls section 15.12
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -40,8 +40,7 @@ import javax.lang.model.element.Name;
* <em>modifiers</em> <em>type</em> <em>name</em> () default <em>defaultValue</em> * <em>modifiers</em> <em>type</em> <em>name</em> () default <em>defaultValue</em>
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, sections 8.4, 8.6, 8.7, * @jls sections 8.4, 8.6, 8.7, 9.4, and 9.6
* 9.4, and 9.6"
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -39,8 +39,7 @@ import javax.lang.model.element.Modifier;
* <em>flags</em> <em>annotations</em> * <em>flags</em> <em>annotations</em>
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, sections * @jls sections 8.1.1, 8.3.1, 8.4.3, 8.5.1, 8.8.3, 9.1.1, and 9.7
* 8.1.1, 8.3.1, 8.4.3, 8.5.1, 8.8.3, 9.1.1, and 9.7"
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -37,7 +37,7 @@ import java.util.List;
* new <em>type</em> <em>dimensions</em> [ ] <em>initializers</em> * new <em>type</em> <em>dimensions</em> [ ] <em>initializers</em>
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 15.10" * @jls section 15.10
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -42,7 +42,7 @@ import java.util.List;
* <em>enclosingExpression</em>.new <em>identifier</em> ( <em>arguments</em> ) * <em>enclosingExpression</em>.new <em>identifier</em> ( <em>arguments</em> )
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 15.9" * @jls section 15.9
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -35,7 +35,7 @@ import java.util.List;
* <em>type</em> &lt; <em>typeArguments</em> &gt; * <em>type</em> &lt; <em>typeArguments</em> &gt;
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 4.5.1" * @jls section 4.5.1
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -34,7 +34,7 @@ package com.sun.source.tree;
* ( <em>expression</em> ) * ( <em>expression</em> )
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 15.8.5" * @jls section 15.8.5
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -35,7 +35,7 @@ import javax.lang.model.type.TypeKind;
* <em>primitiveTypeKind</em> * <em>primitiveTypeKind</em>
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 4.2" * @jls section 4.2
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -34,7 +34,7 @@ package com.sun.source.tree;
* return <em>expression</em>; * return <em>expression</em>;
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 14.17" * @jls section 14.17
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -29,7 +29,7 @@ package com.sun.source.tree;
* A tree node used as the base class for the different kinds of * A tree node used as the base class for the different kinds of
* statements. * statements.
* *
* @see "The Java Language Specification, 3rd ed, chapter 14" * @jls chapter 14
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -37,7 +37,7 @@ import java.util.List;
* } * }
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 14.11" * @jls section 14.11
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -34,7 +34,7 @@ package com.sun.source.tree;
* </em>block</em> * </em>block</em>
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 14.19" * @jls section 14.19
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -33,7 +33,7 @@ package com.sun.source.tree;
* throw <em>expression</em>; * throw <em>expression</em>;
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 14.18" * @jls section 14.18
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -232,9 +232,9 @@ public interface Tree {
PARAMETERIZED_TYPE(ParameterizedTypeTree.class), PARAMETERIZED_TYPE(ParameterizedTypeTree.class),
/** /**
* Used for instances of {@link DisjunctiveTypeTree}. * Used for instances of {@link UnionTypeTree}.
*/ */
DISJUNCTIVE_TYPE(DisjunctiveTypeTree.class), UNION_TYPE(UnionTypeTree.class),
/** /**
* Used for instances of {@link TypeCastTree}. * Used for instances of {@link TypeCastTree}.

View file

@ -95,7 +95,7 @@ public interface TreeVisitor<R,P> {
R visitCompilationUnit(CompilationUnitTree node, P p); R visitCompilationUnit(CompilationUnitTree node, P p);
R visitTry(TryTree node, P p); R visitTry(TryTree node, P p);
R visitParameterizedType(ParameterizedTypeTree node, P p); R visitParameterizedType(ParameterizedTypeTree node, P p);
R visitDisjunctiveType(DisjunctiveTypeTree node, P p); R visitUnionType(UnionTypeTree node, P p);
R visitArrayType(ArrayTypeTree node, P p); R visitArrayType(ArrayTypeTree node, P p);
R visitTypeCast(TypeCastTree node, P p); R visitTypeCast(TypeCastTree node, P p);
R visitPrimitiveType(PrimitiveTypeTree node, P p); R visitPrimitiveType(PrimitiveTypeTree node, P p);

View file

@ -39,7 +39,7 @@ import java.util.List;
* <em>finallyBlock</em> * <em>finallyBlock</em>
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 14.20" * @jls section 14.20
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -33,7 +33,7 @@ package com.sun.source.tree;
* ( <em>type</em> ) <em>expression</em> * ( <em>type</em> ) <em>expression</em>
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 15.16" * @jls section 15.16
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -38,7 +38,7 @@ import javax.lang.model.element.Name;
* <em>name</em> extends <em>bounds</em> * <em>name</em> extends <em>bounds</em>
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 4.4" * @jls section 4.4
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -36,7 +36,7 @@ package com.sun.source.tree;
* <em>expression</em> <em>operator</em> * <em>expression</em> <em>operator</em>
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, sections 15.14 and 15.15" * @jls sections 15.14 and 15.15
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2010, 2011 Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -28,13 +28,12 @@ package com.sun.source.tree;
import java.util.List; import java.util.List;
/** /**
* A tree node for a disjunctive type expression in a multicatch var declaration. * A tree node for a union type expression in a multicatch var declaration.
*
* *
* @author Maurizio Cimadamore * @author Maurizio Cimadamore
* *
* @since 1.7 * @since 1.7
*/ */
public interface DisjunctiveTypeTree extends Tree { public interface UnionTypeTree extends Tree {
List<? extends Tree> getTypeAlternatives(); List<? extends Tree> getTypeAlternatives();
} }

View file

@ -35,7 +35,7 @@ import javax.lang.model.element.Name;
* <em>modifiers</em> <em>type</em> <em>name</em> <em>initializer</em> ; * <em>modifiers</em> <em>type</em> <em>name</em> <em>initializer</em> ;
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, sections 8.3 and 14.4" * @jls sections 8.3 and 14.4
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -35,7 +35,7 @@ package com.sun.source.tree;
* </pre> * </pre>
* *
* *
* @see "The Java Language Specification, 3rd ed, section 14.12" * @jls section 14.12
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -38,7 +38,7 @@ package com.sun.source.tree;
* ? super <em>bound</em> * ? super <em>bound</em>
* </pre> * </pre>
* *
* @see "The Java Language Specification, 3rd ed, section 4.5.1" * @jls section 4.5.1
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Jonathan Gibbons * @author Jonathan Gibbons

View file

@ -228,7 +228,7 @@ public class SimpleTreeVisitor <R,P> implements TreeVisitor<R,P> {
return defaultAction(node, p); return defaultAction(node, p);
} }
public R visitDisjunctiveType(DisjunctiveTypeTree node, P p) { public R visitUnionType(UnionTypeTree node, P p) {
return defaultAction(node, p); return defaultAction(node, p);
} }

View file

@ -355,7 +355,7 @@ public class TreeScanner<R,P> implements TreeVisitor<R,P> {
return r; return r;
} }
public R visitDisjunctiveType(DisjunctiveTypeTree node, P p) { public R visitUnionType(UnionTypeTree node, P p) {
return scan(node.getTypeAlternatives(), p); return scan(node.getTypeAlternatives(), p);
} }

View file

@ -67,7 +67,8 @@ public class DeclarationsImpl implements Declarations {
/** /**
* {@inheritDoc} * {@inheritDoc}
* See JLS 2 sections 8.3 and 8.4.6. * See sections 8.3 and 8.4.6 of
* <cite>The Java&trade; Language Specification</cite>
*/ */
public boolean hides(MemberDeclaration sub, MemberDeclaration sup) { public boolean hides(MemberDeclaration sub, MemberDeclaration sup) {
Symbol hider = ((DeclarationImpl) sub).sym; Symbol hider = ((DeclarationImpl) sub).sym;
@ -107,7 +108,8 @@ public class DeclarationsImpl implements Declarations {
/** /**
* {@inheritDoc} * {@inheritDoc}
* See JLS 2 section 8.4.6.1. * See section 8.4.6.1 of
* <cite>The Java&trade; Language Specification</cite>
*/ */
public boolean overrides(MethodDeclaration sub, MethodDeclaration sup) { public boolean overrides(MethodDeclaration sub, MethodDeclaration sup) {
MethodSymbol overrider = ((MethodDeclarationImpl) sub).sym; MethodSymbol overrider = ((MethodDeclarationImpl) sub).sym;

View file

@ -30,7 +30,7 @@ import java.util.LinkedHashSet;
import java.util.Set; import java.util.Set;
/** /**
* See JVMS3, sections 4.2, 4.6, 4.7. * See JVMS, sections 4.2, 4.6, 4.7.
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk. * If you write code that depends on this, you do so at your own risk.

View file

@ -28,7 +28,7 @@ package com.sun.tools.classfile;
import java.io.IOException; import java.io.IOException;
/** /**
* See JVMS3, section 4.8.16. * See JVMS, section 4.8.16.
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk. * If you write code that depends on this, you do so at your own risk.
@ -71,7 +71,7 @@ public class Annotation {
public final element_value_pair element_value_pairs[]; public final element_value_pair element_value_pairs[];
/** /**
* See JVMS3, section 4.8.16.1. * See JVMS, section 4.8.16.1.
*/ */
public static abstract class element_value { public static abstract class element_value {
public static element_value read(ClassReader cr) public static element_value read(ClassReader cr)

View file

@ -28,7 +28,7 @@ package com.sun.tools.classfile;
import java.io.IOException; import java.io.IOException;
/** /**
* See JVMS3, section 4.8.15. * See JVMS, section 4.8.15.
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk. * If you write code that depends on this, you do so at your own risk.

View file

@ -28,7 +28,7 @@ package com.sun.tools.classfile;
import java.io.IOException; import java.io.IOException;
/** /**
* See JVMS3 <TBD> * See JVMS <TBD>
* http://cr.openjdk.java.net/~jrose/pres/indy-javadoc-mlvm/ * http://cr.openjdk.java.net/~jrose/pres/indy-javadoc-mlvm/
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.

View file

@ -33,7 +33,7 @@ import java.io.InputStream;
import static com.sun.tools.classfile.AccessFlags.*; import static com.sun.tools.classfile.AccessFlags.*;
/** /**
* See JVMS3, section 4.2. * See JVMS, section 4.2.
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk. * If you write code that depends on this, you do so at your own risk.

View file

@ -30,7 +30,7 @@ import java.util.Iterator;
import java.util.NoSuchElementException; import java.util.NoSuchElementException;
/** /**
* See JVMS3, section 4.8.3. * See JVMS, section 4.8.3.
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk. * If you write code that depends on this, you do so at your own risk.

View file

@ -31,7 +31,7 @@ import java.io.OutputStream;
import java.util.Iterator; import java.util.Iterator;
/** /**
* See JVMS3, section 4.5. * See JVMS, section 4.5.
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk. * If you write code that depends on this, you do so at your own risk.

View file

@ -28,7 +28,7 @@ package com.sun.tools.classfile;
import java.io.IOException; import java.io.IOException;
/** /**
* See JVMS3, section 4.8.2. * See JVMS, section 4.8.2.
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk. * If you write code that depends on this, you do so at your own risk.

View file

@ -28,7 +28,7 @@ package com.sun.tools.classfile;
import java.io.IOException; import java.io.IOException;
/** /**
* See JVMS3, section 4.8.15. * See JVMS, section 4.8.15.
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk. * If you write code that depends on this, you do so at your own risk.

View file

@ -29,7 +29,7 @@ package com.sun.tools.classfile;
import java.io.IOException; import java.io.IOException;
/** /**
* See JVMS3, section 4.4. * See JVMS, section 4.4.
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk. * If you write code that depends on this, you do so at your own risk.

View file

@ -29,7 +29,7 @@ package com.sun.tools.classfile;
import java.io.IOException; import java.io.IOException;
/** /**
* See JVMS3, section 4.8.7. * See JVMS, section 4.8.7.
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk. * If you write code that depends on this, you do so at your own risk.

View file

@ -28,7 +28,7 @@ package com.sun.tools.classfile;
import java.io.IOException; import java.io.IOException;
/** /**
* See JVMS3, section 4.8.5. * See JVMS, section 4.8.5.
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk. * If you write code that depends on this, you do so at your own risk.

View file

@ -30,7 +30,7 @@ import java.io.IOException;
import com.sun.tools.classfile.ConstantPool.*; import com.sun.tools.classfile.ConstantPool.*;
/** /**
* See JVMS3, section 4.8.6. * See JVMS, section 4.8.6.
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk. * If you write code that depends on this, you do so at your own risk.

View file

@ -26,7 +26,7 @@
package com.sun.tools.classfile; package com.sun.tools.classfile;
/** /**
* See JVMS3, chapter 6. * See JVMS, chapter 6.
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk. * If you write code that depends on this, you do so at your own risk.

View file

@ -28,7 +28,7 @@ package com.sun.tools.classfile;
import java.io.IOException; import java.io.IOException;
/** /**
* See JVMS3, section 4.8.12. * See JVMS, section 4.8.12.
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk. * If you write code that depends on this, you do so at your own risk.

View file

@ -28,7 +28,7 @@ package com.sun.tools.classfile;
import java.io.IOException; import java.io.IOException;
/** /**
* See JVMS3, section 4.8.13. * See JVMS, section 4.8.13.
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk. * If you write code that depends on this, you do so at your own risk.

View file

@ -28,7 +28,7 @@ package com.sun.tools.classfile;
import java.io.IOException; import java.io.IOException;
/** /**
* See JVMS3, section 4.8.14. * See JVMS, section 4.8.14.
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk. * If you write code that depends on this, you do so at your own risk.

View file

@ -29,7 +29,7 @@ import static com.sun.tools.classfile.Instruction.Kind.*;
import static com.sun.tools.classfile.Opcode.Set.*; import static com.sun.tools.classfile.Opcode.Set.*;
/** /**
* See JVMS3, chapter 6. * See JVMS, chapter 6.
* *
* <p>In addition to providing all the standard opcodes defined in JVMS, * <p>In addition to providing all the standard opcodes defined in JVMS,
* this class also provides legacy support for the PicoJava extensions. * this class also provides legacy support for the PicoJava extensions.

View file

@ -28,7 +28,7 @@ package com.sun.tools.classfile;
import java.io.IOException; import java.io.IOException;
/** /**
* See JVMS3, section 4.8.16 and 4.8.17. * See JVMS, section 4.8.16 and 4.8.17.
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk. * If you write code that depends on this, you do so at your own risk.

View file

@ -28,7 +28,7 @@ package com.sun.tools.classfile;
import java.io.IOException; import java.io.IOException;
/** /**
* See JVMS3, section 4.8.17. * See JVMS, section 4.8.17.
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk. * If you write code that depends on this, you do so at your own risk.

View file

@ -28,7 +28,7 @@ package com.sun.tools.classfile;
import java.io.IOException; import java.io.IOException;
/** /**
* See JVMS3, section 4.8.18. * See JVMS, section 4.8.18.
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk. * If you write code that depends on this, you do so at your own risk.

View file

@ -28,7 +28,7 @@ package com.sun.tools.classfile;
import java.io.IOException; import java.io.IOException;
/** /**
* See JVMS3, section 4.8.18 and 4.8.19. * See JVMS, section 4.8.18 and 4.8.19.
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk. * If you write code that depends on this, you do so at your own risk.

View file

@ -28,7 +28,7 @@ package com.sun.tools.classfile;
import java.io.IOException; import java.io.IOException;
/** /**
* See JVMS3, section 4.8.16. * See JVMS, section 4.8.16.
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk. * If you write code that depends on this, you do so at your own risk.

View file

@ -28,7 +28,7 @@ package com.sun.tools.classfile;
import java.io.IOException; import java.io.IOException;
/** /**
* See JVMS3, section 4.8.18. * See JVMS, section 4.8.18.
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk. * If you write code that depends on this, you do so at your own risk.

View file

@ -30,7 +30,7 @@ import java.util.List;
import com.sun.tools.classfile.Type.*; import com.sun.tools.classfile.Type.*;
/** /**
* See JVMS3 4.4.4. * See JVMS 4.4.4.
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk. * If you write code that depends on this, you do so at your own risk.

View file

@ -28,7 +28,7 @@ package com.sun.tools.classfile;
import java.io.IOException; import java.io.IOException;
/** /**
* See JVMS3, section 4.8.9. * See JVMS, section 4.8.9.
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk. * If you write code that depends on this, you do so at your own risk.

View file

@ -30,7 +30,7 @@ import java.io.DataInputStream;
import java.io.IOException; import java.io.IOException;
/** /**
* See JVMS3, section 4.8.15. * See JVMS, section 4.8.15.
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk. * If you write code that depends on this, you do so at your own risk.

View file

@ -28,7 +28,7 @@ package com.sun.tools.classfile;
import java.io.IOException; import java.io.IOException;
/** /**
* See JVMS3, section 4.8.10. * See JVMS, section 4.8.10.
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk. * If you write code that depends on this, you do so at your own risk.

View file

@ -28,7 +28,7 @@ package com.sun.tools.classfile;
import java.io.IOException; import java.io.IOException;
/** /**
* See JVMS3, section 4.8.4. * See JVMS, section 4.8.4.
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk. * If you write code that depends on this, you do so at your own risk.

View file

@ -28,7 +28,7 @@ package com.sun.tools.classfile;
import java.io.IOException; import java.io.IOException;
/** /**
* See JVMS3, section 4.8.8. * See JVMS, section 4.8.8.
* *
* <p><b>This is NOT part of any supported API. * <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk. * If you write code that depends on this, you do so at your own risk.

View file

@ -6,7 +6,7 @@
</head> </head>
<body> <body>
A minimalist library to read and write class files into objects closely A minimalist library to read and write class files into objects closely
based on the corresponding definitions in the Java Virtual Machine based on the corresponding definitions in
Specification (JVMS). <cite>The Java&trade; Virtual Machine Specification</cite> (JVMS).
</body> </body>
</html> </html>

View file

@ -2523,8 +2523,9 @@ public class HtmlDocletWriter extends HtmlDocWriter {
} }
/** /**
* According to the Java Language Specifications, all the outer classes * According to
* and static nested classes are core classes. * <cite>The Java&trade; Language Specification</cite>,
* all the outer classes and static nested classes are core classes.
*/ */
public boolean isCoreClass(ClassDoc cd) { public boolean isCoreClass(ClassDoc cd) {
return cd.containingClass() == null || cd.isStatic(); return cd.containingClass() == null || cd.isStatic();

View file

@ -175,8 +175,9 @@ public class Util {
} }
/** /**
* According to the Java Language Specifications, all the outer classes * According to
* and static inner classes are core classes. * <cite>The Java&trade; Language Specification</cite>,
* all the outer classes and static inner classes are core classes.
*/ */
public static boolean isCoreClass(ClassDoc cd) { public static boolean isCoreClass(ClassDoc cd) {
return cd.containingClass() == null || cd.isStatic(); return cd.containingClass() == null || cd.isStatic();

View file

@ -231,9 +231,9 @@ public class Flags {
public static final long PROPRIETARY = 1L<<38; public static final long PROPRIETARY = 1L<<38;
/** /**
* Flag that marks a disjunction var in a multi-catch clause * Flag that marks a a multi-catch parameter
*/ */
public static final long DISJUNCTION = 1L<<39; public static final long UNION = 1L<<39;
/** /**
* Flag that marks a signature-polymorphic invoke method. * Flag that marks a signature-polymorphic invoke method.

View file

@ -1193,7 +1193,7 @@ public abstract class Symbol implements Element {
} }
private boolean isOverridableIn(TypeSymbol origin) { private boolean isOverridableIn(TypeSymbol origin) {
// JLS3 8.4.6.1 // JLS 8.4.6.1
switch ((int)(flags_field & Flags.AccessFlags)) { switch ((int)(flags_field & Flags.AccessFlags)) {
case Flags.PRIVATE: case Flags.PRIVATE:
return false; return false;

View file

@ -1985,7 +1985,7 @@ public class Types {
* signature</em> of the other. This is <b>not</b> an equivalence * signature</em> of the other. This is <b>not</b> an equivalence
* relation. * relation.
* *
* @see "The Java Language Specification, Third Ed. (8.4.2)." * @jls section 8.4.2.
* @see #overrideEquivalent(Type t, Type s) * @see #overrideEquivalent(Type t, Type s)
* @param t first signature (possibly raw). * @param t first signature (possibly raw).
* @param s second signature (could be subjected to erasure). * @param s second signature (could be subjected to erasure).
@ -2004,7 +2004,7 @@ public class Types {
* equivalence</em>. This is the natural extension of * equivalence</em>. This is the natural extension of
* isSubSignature to an equivalence relation. * isSubSignature to an equivalence relation.
* *
* @see "The Java Language Specification, Third Ed. (8.4.2)." * @jls section 8.4.2.
* @see #isSubSignature(Type t, Type s) * @see #isSubSignature(Type t, Type s)
* @param t a signature (possible raw, could be subjected to * @param t a signature (possible raw, could be subjected to
* erasure). * erasure).
@ -2309,7 +2309,7 @@ public class Types {
if (elemtype == t.elemtype) if (elemtype == t.elemtype)
return t; return t;
else else
return new ArrayType(upperBound(elemtype), t.tsym); return new ArrayType(elemtype, t.tsym);
} }
@Override @Override
@ -3049,8 +3049,7 @@ public class Types {
/** /**
* Return-Type-Substitutable. * Return-Type-Substitutable.
* @see <a href="http://java.sun.com/docs/books/jls/">The Java * @jls section 8.4.5
* Language Specification, Third Ed. (8.4.5)</a>
*/ */
public boolean returnTypeSubstitutable(Type r1, Type r2) { public boolean returnTypeSubstitutable(Type r1, Type r2) {
if (hasSameArgs(r1, r2)) if (hasSameArgs(r1, r2))
@ -3130,7 +3129,7 @@ public class Types {
// <editor-fold defaultstate="collapsed" desc="Capture conversion"> // <editor-fold defaultstate="collapsed" desc="Capture conversion">
/* /*
* JLS 3rd Ed. 5.1.10 Capture Conversion: * JLS 5.1.10 Capture Conversion:
* *
* Let G name a generic type declaration with n formal type * Let G name a generic type declaration with n formal type
* parameters A1 ... An with corresponding bounds U1 ... Un. There * parameters A1 ... An with corresponding bounds U1 ... Un. There
@ -3163,7 +3162,7 @@ public class Types {
* Capture conversion is not applied recursively. * Capture conversion is not applied recursively.
*/ */
/** /**
* Capture conversion as specified by JLS 3rd Ed. * Capture conversion as specified by the JLS.
*/ */
public List<Type> capture(List<Type> ts) { public List<Type> capture(List<Type> ts) {

View file

@ -1112,7 +1112,7 @@ public class Attr extends JCTree.Visitor {
Type ctype = attribStat(c.param, catchEnv); Type ctype = attribStat(c.param, catchEnv);
if (TreeInfo.isMultiCatch(c)) { if (TreeInfo.isMultiCatch(c)) {
//multi-catch parameter is implicitly marked as final //multi-catch parameter is implicitly marked as final
c.param.sym.flags_field |= FINAL | DISJUNCTION; c.param.sym.flags_field |= FINAL | UNION;
} }
if (c.param.sym.kind == Kinds.VAR) { if (c.param.sym.kind == Kinds.VAR) {
c.param.sym.setData(ElementKind.EXCEPTION_PARAMETER); c.param.sym.setData(ElementKind.EXCEPTION_PARAMETER);
@ -2632,10 +2632,10 @@ public class Attr extends JCTree.Visitor {
* @param tree The tree making up the variable reference. * @param tree The tree making up the variable reference.
* @param env The current environment. * @param env The current environment.
* @param v The variable's symbol. * @param v The variable's symbol.
* @see JLS 3rd Ed. (8.9 Enums) * @jls section 8.9 Enums
*/ */
private void checkEnumInitializer(JCTree tree, Env<AttrContext> env, VarSymbol v) { private void checkEnumInitializer(JCTree tree, Env<AttrContext> env, VarSymbol v) {
// JLS 3rd Ed.: // JLS:
// //
// "It is a compile-time error to reference a static field // "It is a compile-time error to reference a static field
// of an enum type that is not a compile-time constant // of an enum type that is not a compile-time constant
@ -2908,7 +2908,7 @@ public class Attr extends JCTree.Visitor {
result = check(tree, owntype, TYP, pkind, pt); result = check(tree, owntype, TYP, pkind, pt);
} }
public void visitTypeDisjunction(JCTypeDisjunction tree) { public void visitTypeUnion(JCTypeUnion tree) {
ListBuffer<Type> multicatchTypes = ListBuffer.lb(); ListBuffer<Type> multicatchTypes = ListBuffer.lb();
for (JCExpression typeTree : tree.alternatives) { for (JCExpression typeTree : tree.alternatives) {
Type ctype = attribType(typeTree, env); Type ctype = attribType(typeTree, env);
@ -2916,7 +2916,7 @@ public class Attr extends JCTree.Visitor {
chk.checkClassType(typeTree.pos(), ctype), chk.checkClassType(typeTree.pos(), ctype),
syms.throwableType); syms.throwableType);
if (!ctype.isErroneous()) { if (!ctype.isErroneous()) {
//check that alternatives of a disjunctive type are pairwise //check that alternatives of a union type are pairwise
//unrelated w.r.t. subtyping //unrelated w.r.t. subtyping
if (chk.intersects(ctype, multicatchTypes.toList())) { if (chk.intersects(ctype, multicatchTypes.toList())) {
for (Type t : multicatchTypes) { for (Type t : multicatchTypes) {

View file

@ -2271,7 +2271,7 @@ public class Check {
* that of any public or protected method declared in class Object * that of any public or protected method declared in class Object
* or in the interface annotation.Annotation." * or in the interface annotation.Annotation."
* *
* @jls3 9.6 Annotation Types * @jls 9.6 Annotation Types
*/ */
void validateAnnotationMethod(DiagnosticPosition pos, MethodSymbol m) { void validateAnnotationMethod(DiagnosticPosition pos, MethodSymbol m) {
for (Type sup = syms.annotationType; sup.tag == CLASS; sup = types.supertype(sup)) { for (Type sup = syms.annotationType; sup.tag == CLASS; sup = types.supertype(sup)) {

View file

@ -51,7 +51,7 @@ import static com.sun.tools.javac.code.TypeTags.*;
* unassignment analysis ensures that no final variable is assigned * unassignment analysis ensures that no final variable is assigned
* more than once. * more than once.
* *
* <p>The second edition of the JLS has a number of problems in the * <p>The JLS has a number of problems in the
* specification of these flow analysis problems. This implementation * specification of these flow analysis problems. This implementation
* attempts to address those issues. * attempts to address those issues.
* *
@ -126,7 +126,7 @@ import static com.sun.tools.javac.code.TypeTags.*;
* don't have to worry about the return expression because this * don't have to worry about the return expression because this
* concept is only used for construcrors. * concept is only used for construcrors.
* *
* <p>There is no spec in JLS2 for when a variable is definitely * <p>There is no spec in the JLS for when a variable is definitely
* assigned at the end of a constructor, which is needed for final * assigned at the end of a constructor, which is needed for final
* fields (8.3.1.2). We implement the rule that V is DA at the end * fields (8.3.1.2). We implement the rule that V is DA at the end
* of the constructor iff it is DA and the end of the body of the * of the constructor iff it is DA and the end of the body of the
@ -381,7 +381,7 @@ public class Flow extends TreeScanner {
if (sym.adr >= firstadr && trackable(sym)) { if (sym.adr >= firstadr && trackable(sym)) {
if ((sym.flags() & FINAL) != 0) { if ((sym.flags() & FINAL) != 0) {
if ((sym.flags() & PARAMETER) != 0) { if ((sym.flags() & PARAMETER) != 0) {
if ((sym.flags() & DISJUNCTION) != 0) { //multi-catch parameter if ((sym.flags() & UNION) != 0) { //multi-catch parameter
log.error(pos, "multicatch.parameter.may.not.be.assigned", log.error(pos, "multicatch.parameter.may.not.be.assigned",
sym); sym);
} }
@ -1003,7 +1003,7 @@ public class Flow extends TreeScanner {
thrown = List.nil(); thrown = List.nil();
for (List<JCCatch> l = tree.catchers; l.nonEmpty(); l = l.tail) { for (List<JCCatch> l = tree.catchers; l.nonEmpty(); l = l.tail) {
List<JCExpression> subClauses = TreeInfo.isMultiCatch(l.head) ? List<JCExpression> subClauses = TreeInfo.isMultiCatch(l.head) ?
((JCTypeDisjunction)l.head.param.vartype).alternatives : ((JCTypeUnion)l.head.param.vartype).alternatives :
List.of(l.head.param.vartype); List.of(l.head.param.vartype);
for (JCExpression ct : subClauses) { for (JCExpression ct : subClauses) {
caught = chk.incl(ct.type, caught); caught = chk.incl(ct.type, caught);
@ -1075,7 +1075,7 @@ public class Flow extends TreeScanner {
alive = true; alive = true;
JCVariableDecl param = l.head.param; JCVariableDecl param = l.head.param;
List<JCExpression> subClauses = TreeInfo.isMultiCatch(l.head) ? List<JCExpression> subClauses = TreeInfo.isMultiCatch(l.head) ?
((JCTypeDisjunction)l.head.param.vartype).alternatives : ((JCTypeUnion)l.head.param.vartype).alternatives :
List.of(l.head.param.vartype); List.of(l.head.param.vartype);
List<Type> ctypes = List.nil(); List<Type> ctypes = List.nil();
List<Type> rethrownTypes = chk.diff(thrownInTry, caughtInTry); List<Type> rethrownTypes = chk.diff(thrownInTry, caughtInTry);

View file

@ -346,7 +346,7 @@ public class Resolve {
if (typeargtypes == null) typeargtypes = List.nil(); if (typeargtypes == null) typeargtypes = List.nil();
if (mt.tag != FORALL && typeargtypes.nonEmpty()) { if (mt.tag != FORALL && typeargtypes.nonEmpty()) {
// This is not a polymorphic method, but typeargs are supplied // This is not a polymorphic method, but typeargs are supplied
// which is fine, see JLS3 15.12.2.1 // which is fine, see JLS 15.12.2.1
} else if (mt.tag == FORALL && typeargtypes.nonEmpty()) { } else if (mt.tag == FORALL && typeargtypes.nonEmpty()) {
ForAll pmt = (ForAll) mt; ForAll pmt = (ForAll) mt;
if (typeargtypes.length() != pmt.tvars.length()) if (typeargtypes.length() != pmt.tvars.length())
@ -770,12 +770,9 @@ public class Resolve {
return ambiguityError(m1, m2); return ambiguityError(m1, m2);
// both abstract, neither overridden; merge throws clause and result type // both abstract, neither overridden; merge throws clause and result type
Symbol mostSpecific; Symbol mostSpecific;
Type result2 = mt2.getReturnType(); if (types.returnTypeSubstitutable(mt1, mt2))
if (mt2.tag == FORALL)
result2 = types.subst(result2, ((ForAll)mt2).tvars, ((ForAll)mt1).tvars);
if (types.isSubtype(mt1.getReturnType(), result2))
mostSpecific = m1; mostSpecific = m1;
else if (types.isSubtype(result2, mt1.getReturnType())) else if (types.returnTypeSubstitutable(mt2, mt1))
mostSpecific = m2; mostSpecific = m2;
else { else {
// Theoretically, this can't happen, but it is possible // Theoretically, this can't happen, but it is possible
@ -1772,7 +1769,7 @@ public class Resolve {
/** /**
* Resolve an appropriate implicit this instance for t's container. * Resolve an appropriate implicit this instance for t's container.
* JLS2 8.8.5.1 and 15.9.2 * JLS 8.8.5.1 and 15.9.2
*/ */
Type resolveImplicitThis(DiagnosticPosition pos, Env<AttrContext> env, Type t) { Type resolveImplicitThis(DiagnosticPosition pos, Env<AttrContext> env, Type t) {
return resolveImplicitThis(pos, env, t, false); return resolveImplicitThis(pos, env, t, false);

View file

@ -283,7 +283,7 @@ public class Gen extends JCTree.Visitor {
} }
// leave alone methods inherited from Object // leave alone methods inherited from Object
// JLS2 13.1. // JLS 13.1.
if (sym.owner == syms.objectType.tsym) if (sym.owner == syms.objectType.tsym)
return sym; return sym;
@ -1456,7 +1456,7 @@ public class Gen extends JCTree.Visitor {
List<Integer> gaps) { List<Integer> gaps) {
if (startpc != endpc) { if (startpc != endpc) {
List<JCExpression> subClauses = TreeInfo.isMultiCatch(tree) ? List<JCExpression> subClauses = TreeInfo.isMultiCatch(tree) ?
((JCTypeDisjunction)tree.param.vartype).alternatives : ((JCTypeUnion)tree.param.vartype).alternatives :
List.of(tree.param.vartype); List.of(tree.param.vartype);
while (gaps.nonEmpty()) { while (gaps.nonEmpty()) {
for (JCExpression subCatch : subClauses) { for (JCExpression subCatch : subClauses) {

View file

@ -1837,7 +1837,7 @@ public class JavacParser implements Parser {
JCModifiers mods = optFinal(Flags.PARAMETER); JCModifiers mods = optFinal(Flags.PARAMETER);
List<JCExpression> catchTypes = catchTypes(); List<JCExpression> catchTypes = catchTypes();
JCExpression paramType = catchTypes.size() > 1 ? JCExpression paramType = catchTypes.size() > 1 ?
toP(F.at(catchTypes.head.getStartPosition()).TypeDisjunction(catchTypes)) : toP(F.at(catchTypes.head.getStartPosition()).TypeUnion(catchTypes)) :
catchTypes.head; catchTypes.head;
JCVariableDecl formal = variableDeclaratorId(mods, paramType); JCVariableDecl formal = variableDeclaratorId(mods, paramType);
accept(RPAREN); accept(RPAREN);

View file

@ -236,13 +236,13 @@ public abstract class JCTree implements Tree, Cloneable, DiagnosticPosition {
*/ */
public static final int TYPEAPPLY = TYPEARRAY + 1; public static final int TYPEAPPLY = TYPEARRAY + 1;
/** Disjunction types, of type TypeDisjunction /** Union types, of type TypeUnion
*/ */
public static final int TYPEDISJUNCTION = TYPEAPPLY + 1; public static final int TYPEUNION = TYPEAPPLY + 1;
/** Formal type parameters, of type TypeParameter. /** Formal type parameters, of type TypeParameter.
*/ */
public static final int TYPEPARAMETER = TYPEDISJUNCTION + 1; public static final int TYPEPARAMETER = TYPEUNION + 1;
/** Type argument. /** Type argument.
*/ */
@ -1881,30 +1881,30 @@ public abstract class JCTree implements Tree, Cloneable, DiagnosticPosition {
} }
/** /**
* A disjunction type, T1 | T2 | ... Tn (used in multicatch statements) * A union type, T1 | T2 | ... Tn (used in multicatch statements)
*/ */
public static class JCTypeDisjunction extends JCExpression implements DisjunctiveTypeTree { public static class JCTypeUnion extends JCExpression implements UnionTypeTree {
public List<JCExpression> alternatives; public List<JCExpression> alternatives;
protected JCTypeDisjunction(List<JCExpression> components) { protected JCTypeUnion(List<JCExpression> components) {
this.alternatives = components; this.alternatives = components;
} }
@Override @Override
public void accept(Visitor v) { v.visitTypeDisjunction(this); } public void accept(Visitor v) { v.visitTypeUnion(this); }
public Kind getKind() { return Kind.DISJUNCTIVE_TYPE; } public Kind getKind() { return Kind.UNION_TYPE; }
public List<JCExpression> getTypeAlternatives() { public List<JCExpression> getTypeAlternatives() {
return alternatives; return alternatives;
} }
@Override @Override
public <R,D> R accept(TreeVisitor<R,D> v, D d) { public <R,D> R accept(TreeVisitor<R,D> v, D d) {
return v.visitDisjunctiveType(this, d); return v.visitUnionType(this, d);
} }
@Override @Override
public int getTag() { public int getTag() {
return TYPEDISJUNCTION; return TYPEUNION;
} }
} }
@ -2227,7 +2227,7 @@ public abstract class JCTree implements Tree, Cloneable, DiagnosticPosition {
public void visitTypeIdent(JCPrimitiveTypeTree that) { visitTree(that); } public void visitTypeIdent(JCPrimitiveTypeTree that) { visitTree(that); }
public void visitTypeArray(JCArrayTypeTree that) { visitTree(that); } public void visitTypeArray(JCArrayTypeTree that) { visitTree(that); }
public void visitTypeApply(JCTypeApply that) { visitTree(that); } public void visitTypeApply(JCTypeApply that) { visitTree(that); }
public void visitTypeDisjunction(JCTypeDisjunction that) { visitTree(that); } public void visitTypeUnion(JCTypeUnion that) { visitTree(that); }
public void visitTypeParameter(JCTypeParameter that) { visitTree(that); } public void visitTypeParameter(JCTypeParameter that) { visitTree(that); }
public void visitWildcard(JCWildcard that) { visitTree(that); } public void visitWildcard(JCWildcard that) { visitTree(that); }
public void visitTypeBoundKind(TypeBoundKind that) { visitTree(that); } public void visitTypeBoundKind(TypeBoundKind that) { visitTree(that); }

Some files were not shown because too many files have changed in this diff Show more