From 29852ecd80fd818362199b4bb38211aa4159432f Mon Sep 17 00:00:00 2001 From: Jan Lahoda Date: Tue, 12 Nov 2019 06:32:13 +0000 Subject: [PATCH] 8232684: Make switch expressions final Reviewed-by: alanb, mcimadamore, kvn --- .../classes/jdk/internal/PreviewFeature.java | 1 - .../classes/com/sun/source/tree/CaseTree.java | 44 +------------------ .../sun/source/tree/SwitchExpressionTree.java | 9 ---- .../classes/com/sun/source/tree/Tree.java | 20 --------- .../com/sun/source/tree/TreeVisitor.java | 20 --------- .../com/sun/source/tree/YieldTree.java | 9 ---- .../sun/source/util/SimpleTreeVisitor.java | 12 ----- .../com/sun/source/util/TreeScanner.java | 21 --------- .../com/sun/tools/javac/code/Preview.java | 5 +-- .../com/sun/tools/javac/comp/Attr.java | 1 - .../sun/tools/javac/parser/JavacParser.java | 5 +-- .../com/sun/tools/javac/tree/JCTree.java | 15 ++----- .../com/sun/tools/javac/tree/TreeCopier.java | 2 - .../com/sun/tools/javac/tree/TreeMaker.java | 2 +- .../jtreg/runtime/execstack/TestMT.java | 2 +- .../gc/gctests/gctest02/gctest02.java | 2 +- .../jit/regression/b4446672/b4446672.java | 2 +- .../monitoring/stress/thread/strace001.java | 2 +- .../nsk/share/jdi/JDIEventsDebuggee.java | 2 +- .../nsk/share/jdi/MonitorEventsDebuggee.java | 4 +- .../nsk/share/jpda/StateTestThread.java | 8 ++-- .../nsk/share/locks/LockingThread.java | 2 +- .../nsk/share/locks/MonitorLockingThread.java | 8 ++-- .../nsk/share/runner/ThreadsRunner.java | 2 +- .../nsk/stress/jni/GarbageGenerator.java | 2 +- .../nsk/stress/strace/strace001.java | 2 +- .../nsk/stress/strace/strace002.java | 2 +- .../nsk/stress/strace/strace005.java | 2 +- .../nsk/stress/strace/strace006.java | 2 +- .../nsk/stress/thread/thread005.java | 2 +- .../nsk/stress/thread/thread006.java | 2 +- test/jdk/com/sun/jdi/InvokeHangTest.java | 2 +- test/jdk/com/sun/jdi/SimulResumerTest.java | 4 +- test/jdk/com/sun/jdi/TwoThreadsTest.java | 4 +- .../MTGraphicsAccessTest.java | 2 +- .../event/runtime/TestThreadCpuTimeEvent.java | 2 +- .../tools/javac/ConditionalWithVoid.java | 2 +- .../tools/javac/ConditionalWithVoid.out | 2 - .../tools/javac/diags/examples.not-yet.txt | 1 + .../BreakOutsideSwitchExpression.java | 3 -- .../ContinueOutsideSwitchExpression.java | 3 -- .../examples/IllegalRefToRestrictedType.java | 3 +- .../IncompatibleTypesInSwitchExpression.java | 3 -- .../javac/diags/examples/InvalidYield.java | 1 - .../diags/examples/InvalidYieldWarning.java | 2 +- .../diags/examples/MultipleCaseLabels.java | 4 +- .../diags/examples/NoSwitchExpression.java | 1 - .../examples/NoSwitchExpressionQualify.java | 1 - .../javac/diags/examples/NotExhaustive.java | 3 -- .../RestrictedTypeNotAllowedPreview.java | 26 ----------- .../ReturnOutsideSwitchExpression.java | 3 -- .../diags/examples/RuleCompletesNormally.java | 3 -- .../SwitchCaseUnexpectedStatement.java | 3 -- .../SwitchExpressionCompletesNormally.java | 3 -- .../diags/examples/SwitchExpressionEmpty.java | 3 -- .../SwitchExpressionNoResultExpressions.java | 3 -- .../SwitchExpressionTargetCantBeVoid.java | 3 -- .../diags/examples/SwitchExpressions.java | 4 +- .../diags/examples/SwitchMixingCaseTypes.java | 3 -- .../javac/diags/examples/SwitchRules.java | 4 +- .../javac/expswitch/ExpSwitchNestingTest.java | 9 ++-- .../lambda/BadSwitchExpressionLambda.java | 2 +- .../lambda/BadSwitchExpressionLambda.out | 2 - .../tools/javac/parser/JavacParserTest.java | 2 +- .../javac/switchexpr/BlockExpression.java | 4 +- .../switchexpr/BooleanNumericNonNumeric.java | 2 +- .../switchexpr/BooleanNumericNonNumeric.out | 2 - .../tools/javac/switchexpr/BreakTest.java | 2 +- .../langtools/tools/javac/switchexpr/CRT.java | 4 +- .../javac/switchexpr/DefiniteAssignment1.java | 4 +- .../javac/switchexpr/DefiniteAssignment2.java | 2 +- .../javac/switchexpr/DefiniteAssignment2.out | 2 - .../tools/javac/switchexpr/EmptySwitch.java | 2 +- .../tools/javac/switchexpr/EmptySwitch.out | 2 - .../switchexpr/ExhaustiveEnumSwitch.java | 4 +- .../javac/switchexpr/ExpressionSwitch-old.out | 6 +-- .../javac/switchexpr/ExpressionSwitch.java | 4 +- .../switchexpr/ExpressionSwitchBreaks1.java | 4 +- .../switchexpr/ExpressionSwitchBreaks2.java | 2 +- .../switchexpr/ExpressionSwitchBreaks2.out | 2 - .../switchexpr/ExpressionSwitchBugs.java | 4 +- .../switchexpr/ExpressionSwitchBugsInGen.java | 4 +- .../ExpressionSwitchCodeFromJLS.java | 4 +- .../javac/switchexpr/ExpressionSwitchDA.java | 4 +- .../switchexpr/ExpressionSwitchEmbedding.java | 4 +- .../ExpressionSwitchFallThrough.java | 4 +- .../ExpressionSwitchFallThrough1.java | 4 +- .../switchexpr/ExpressionSwitchFlow.java | 2 +- .../javac/switchexpr/ExpressionSwitchFlow.out | 2 - .../ExpressionSwitchInExpressionSwitch.java | 4 +- .../switchexpr/ExpressionSwitchInfer.java | 2 +- .../switchexpr/ExpressionSwitchInfer.out | 2 - .../ExpressionSwitchIntersectionTypes.java | 4 +- .../ExpressionSwitchNotExhaustive.java | 2 +- .../ExpressionSwitchNotExhaustive.out | 2 - .../switchexpr/ExpressionSwitchToString.java | 2 +- .../ExpressionSwitchUnreachable.java | 2 +- .../ExpressionSwitchUnreachable.out | 2 - .../tools/javac/switchexpr/LambdaCapture.java | 2 +- .../javac/switchexpr/ParseIncomplete.java | 2 +- .../javac/switchexpr/ParserRecovery.java | 2 +- .../tools/javac/switchexpr/ParserRecovery.out | 2 - .../SwitchExpressionIsNotAConstant.java | 4 +- .../SwitchExpressionScopesIsolated.java | 2 +- .../SwitchExpressionScopesIsolated.out | 2 - .../SwitchExpressionSimpleVisitorTest.java | 2 +- .../tools/javac/switchexpr/TryCatch.java | 4 +- .../javac/switchexpr/TryCatchFinally.java | 4 +- .../javac/switchexpr/WarnWrongYieldTest.java | 2 +- .../javac/switchexpr/WarnWrongYieldTest.out | 14 +++--- .../javac/switchexpr/WrongBreakTest.java | 2 +- .../tools/javac/switchexpr/WrongBreakTest.out | 2 - .../javac/switchexpr/WrongYieldTest.java | 2 +- .../tools/javac/switchexpr/WrongYieldTest.out | 2 - .../tools/javac/switchextra/CaseTest.java | 2 +- .../switchextra/DefiniteAssignment1.java | 4 +- .../switchextra/DefiniteAssignment2.java | 2 +- .../javac/switchextra/DefiniteAssignment2.out | 2 - .../MultipleLabelsExpression-old.out | 6 +-- .../switchextra/MultipleLabelsExpression.java | 4 +- .../MultipleLabelsStatement-old.out | 2 +- .../switchextra/MultipleLabelsStatement.java | 4 +- .../javac/switchextra/RuleParsingTest.java | 2 +- .../SwitchArrowBrokenConstant.java | 2 +- .../switchextra/SwitchArrowBrokenConstant.out | 2 - .../switchextra/SwitchStatementArrow-old.out | 4 +- .../switchextra/SwitchStatementArrow.java | 4 +- .../switchextra/SwitchStatementBroken.java | 2 +- .../switchextra/SwitchStatementBroken.out | 2 - .../switchextra/SwitchStatementBroken2.java | 2 +- .../switchextra/SwitchStatementBroken2.out | 2 - .../SwitchStatementScopesIsolated.java | 2 +- .../SwitchStatementScopesIsolated.out | 2 - .../tools/jdeps/listdeps/ListModuleDeps.java | 1 - 134 files changed, 139 insertions(+), 396 deletions(-) delete mode 100644 test/langtools/tools/javac/diags/examples/RestrictedTypeNotAllowedPreview.java diff --git a/src/java.base/share/classes/jdk/internal/PreviewFeature.java b/src/java.base/share/classes/jdk/internal/PreviewFeature.java index 7b38b51c9b5..d20c0ecbe31 100644 --- a/src/java.base/share/classes/jdk/internal/PreviewFeature.java +++ b/src/java.base/share/classes/jdk/internal/PreviewFeature.java @@ -54,7 +54,6 @@ public @interface PreviewFeature { public boolean essentialAPI() default false; public enum Feature { - SWITCH_EXPRESSIONS, TEXT_BLOCKS; } } diff --git a/src/jdk.compiler/share/classes/com/sun/source/tree/CaseTree.java b/src/jdk.compiler/share/classes/com/sun/source/tree/CaseTree.java index 21d26046715..a691ba0e10d 100644 --- a/src/jdk.compiler/share/classes/com/sun/source/tree/CaseTree.java +++ b/src/jdk.compiler/share/classes/com/sun/source/tree/CaseTree.java @@ -51,29 +51,18 @@ public interface CaseTree extends Tree { * {@code null} if this is the default case. * If this case has multiple labels, returns the first label. * @return the expression for the case, or null + * @deprecated Please use {@link #getExpressions()}. */ + @Deprecated ExpressionTree getExpression(); /** - * {@preview Associated with switch expressions, a preview feature of - * the Java language. - * - * This method is associated with switch expressions, a preview - * feature of the Java language. Preview features - * may be removed in a future release, or upgraded to permanent - * features of the Java language.} - * * Returns the labels for this case. * For default case, returns an empty list. * * @return labels for this case * @since 12 - * - * @preview This method is modeling a case with multiple labels, - * which is part of a preview feature and may be removed - * if the preview feature is removed. */ - @jdk.internal.PreviewFeature(feature=jdk.internal.PreviewFeature.Feature.SWITCH_EXPRESSIONS) List getExpressions(); /** @@ -86,14 +75,6 @@ public interface CaseTree extends Tree { List getStatements(); /** - * {@preview Associated with switch expressions, a preview feature of - * the Java language. - * - * This method is associated with switch expressions, a preview - * feature of the Java language. Preview features - * may be removed in a future release, or upgraded to permanent - * features of the Java language.} - * * For case with kind {@linkplain CaseKind#RULE}, * returns the statement or expression after the arrow. * Returns {@code null} for case with kind @@ -102,40 +83,21 @@ public interface CaseTree extends Tree { * @return case value or null * @since 12 */ - @jdk.internal.PreviewFeature(feature=jdk.internal.PreviewFeature.Feature.SWITCH_EXPRESSIONS) public default Tree getBody() { return null; } /** - * {@preview Associated with switch expressions, a preview feature of - * the Java language. - * - * This method is associated with switch expressions, a preview - * feature of the Java language. Preview features - * may be removed in a future release, or upgraded to permanent - * features of the Java language.} - * * Returns the kind of this case. * * @return the kind of this case * @since 12 */ - @jdk.internal.PreviewFeature(feature=jdk.internal.PreviewFeature.Feature.SWITCH_EXPRESSIONS) - @SuppressWarnings("preview") public default CaseKind getCaseKind() { return CaseKind.STATEMENT; } /** - * {@preview Associated with switch expressions, a preview feature of - * the Java language. - * - * This enum is associated with switch expressions, a preview - * feature of the Java language. Preview features - * may be removed in a future release, or upgraded to permanent - * features of the Java language.} - * * The syntatic form of this case: *