From 9720f010885f5971ef1e6288144ab831dc696ece Mon Sep 17 00:00:00 2001 From: Maurizio Cimadamore Date: Thu, 4 Jun 2026 12:32:16 +0100 Subject: [PATCH 1/2] Drop support for initialization warnings --- make/modules/java.base/Java.gmk | 2 +- .../com/sun/tools/javac/code/Lint.java | 6 -- .../com/sun/tools/javac/comp/Attr.java | 15 +--- .../javac/comp/EarlyConstructionContext.java | 8 +- .../com/sun/tools/javac/comp/MemberEnter.java | 5 +- .../com/sun/tools/javac/comp/Resolve.java | 51 ++++------- .../tools/javac/resources/compiler.properties | 5 -- .../tools/javac/resources/javac.properties | 4 - .../javac/SuperInit/EarlyAssignments.java | 2 - .../javac/SuperInit/EarlyAssignments.out | 40 ++++----- .../SuperInit/EarlyAssignmentsWarnings.out | 21 ----- .../EarlyInnerAccessErrorMessageTest.java | 2 - .../EarlyInnerAccessErrorMessageTest.out | 2 +- ...rlyInnerAccessErrorMessageTestWarnings.out | 4 - .../javac/SuperInit/EarlyLambdaReturn.java | 2 - .../javac/SuperInit/EarlyLocalClass.java | 2 - .../tools/javac/SuperInit/EarlyLocalClass.out | 2 +- .../SuperInit/EarlyLocalClassWarnings.out | 4 - .../javac/SuperInit/EarlyLocalTest1.java | 2 - .../javac/SuperInit/EarlyLocalTest2.java | 2 - .../javac/SuperInit/EarlyLocalTest3.java | 2 - .../javac/SuperInit/EarlyLocalTest4.java | 2 - .../javac/SuperInit/EarlyLocalTest5.java | 2 - .../javac/SuperInit/EarlyLocalTest6.java | 2 - .../javac/SuperInit/EarlyLocalTest7.java | 2 - .../javac/SuperInit/EarlyLocalTest8.java | 2 - .../SuperInit/LambdaLocalEarlyCrash.java | 2 - .../javac/SuperInit/LambdaOuterCapture.java | 2 - .../javac/SuperInit/SuperCallRemover.java | 89 ------------------- .../tools/javac/SuperInit/SuperInitFails.java | 2 - .../tools/javac/SuperInit/SuperInitFails.out | 86 +++++++++--------- .../SuperInit/SuperInitFailsWarnings.out | 41 --------- .../tools/javac/SuperInit/SuperInitGood.java | 2 - .../javac/SuperInit/SuperInitGoodWarnings.out | 4 - .../diags/examples/InitializationWarning.java | 31 ------- .../jdk/test/lib/NetworkConfiguration.java | 1 - test/lib/jdk/test/lib/cds/CDSAppTester.java | 1 - test/lib/jdk/test/lib/cds/CDSTestUtils.java | 1 - .../classloader/GeneratingClassLoader.java | 1 - .../containers/docker/DockerRunOptions.java | 1 - .../containers/systemd/SystemdRunOptions.java | 1 - .../hprof/model/ReachableExcludesImpl.java | 1 - .../lib/hprof/model/ReachableObjects.java | 1 - test/lib/jdk/test/lib/hprof/model/Root.java | 1 - .../jdk/test/lib/net/HttpHeaderParser.java | 1 - .../lib/os/linux/HugePageConfiguration.java | 1 - .../jdk/test/lib/process/OutputBuffer.java | 1 - .../test/lib/security/SimpleOCSPServer.java | 3 - .../lib/security/timestamp/TsaServer.java | 1 - test/lib/jdk/test/whitebox/WhiteBox.java | 1 - .../openjdk/bench/java/lang/StringEquals.java | 2 - .../lang/foreign/LoopOverPollutedBuffer.java | 1 - .../bench/java/lang/foreign/StrLenTest.java | 1 - .../lang/foreign/TestAdaptVarHandles.java | 1 - .../lang/foreign/pointers/PointerBench.java | 3 - .../lang/foreign/points/support/BBPoint.java | 1 - .../foreign/points/support/PanamaPoint.java | 1 - .../bench/java/lang/ref/CleanerChurn.java | 1 - .../bench/java/lang/ref/CleanerGC.java | 1 - .../nio/StringCharBufferBulkTransfer.java | 1 - .../CopyOnWriteArrayListBenchmark.java | 2 - .../util/logging/LoggingRuntimeMicros.java | 1 - .../IntegerDuplicateProblem.java | 1 - .../tasks/IntegerMax/IntegerMaxProblem.java | 1 - .../tasks/IntegerSum/IntegerSumProblem.java | 1 - .../tasks/PrimesSieve/PrimesSieveProblem.java | 1 - .../crypto/full/PolynomialP256Bench.java | 2 - .../bench/jdk/classfile/Transforms.java | 1 - .../valhalla/sandbox/corelibs/XArrayList.java | 2 - .../sandbox/corelibs/mapprotos/HashMap.java | 2 - .../sandbox/corelibs/mapprotos/XHashMap.java | 1 - .../bench/vm/compiler/CodeCacheStress.java | 1 - .../bench/vm/compiler/InterfaceCalls.java | 3 - .../vm/compiler/PostAllocationStores.java | 1 - .../bench/vm/compiler/RBTreeSearch.java | 1 - .../bench/vm/compiler/WriteBarrier.java | 1 - .../vm/compiler/x86/RedundantLeaPeephole.java | 1 - .../bench/vm/lambda/invoke/Function0.java | 4 - .../bench/vm/lambda/invoke/Function1.java | 9 -- 79 files changed, 93 insertions(+), 425 deletions(-) delete mode 100644 test/langtools/tools/javac/SuperInit/EarlyAssignmentsWarnings.out delete mode 100644 test/langtools/tools/javac/SuperInit/EarlyInnerAccessErrorMessageTestWarnings.out delete mode 100644 test/langtools/tools/javac/SuperInit/EarlyLocalClassWarnings.out delete mode 100644 test/langtools/tools/javac/SuperInit/SuperCallRemover.java delete mode 100644 test/langtools/tools/javac/SuperInit/SuperInitFailsWarnings.out delete mode 100644 test/langtools/tools/javac/SuperInit/SuperInitGoodWarnings.out delete mode 100644 test/langtools/tools/javac/diags/examples/InitializationWarning.java diff --git a/make/modules/java.base/Java.gmk b/make/modules/java.base/Java.gmk index 596a141be81..e20db38297d 100644 --- a/make/modules/java.base/Java.gmk +++ b/make/modules/java.base/Java.gmk @@ -29,7 +29,7 @@ # new warning is added to javac, it can be temporarily added to the # disabled warnings list. # -DISABLED_WARNINGS_java += initialization +# DISABLED_WARNINGS_java += DOCLINT += -Xdoclint:all/protected \ '-Xdoclint/package:java.*,javax.*' diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Lint.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Lint.java index f4a501fa525..1c3ed06238c 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Lint.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Lint.java @@ -251,12 +251,6 @@ public enum LintCategory { */ INCUBATING("incubating", Property.NO_ANNOTATION_SUPPRESSION, Property.ENABLED_BY_DEFAULT), - /** - * Warn about code in identity classes that wouldn't be allowed in early - * construction due to a this dependency. - */ - INITIALIZATION("initialization"), - /** * Warn about compiler possible lossy conversions. */ diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java index 2d39633c7ef..cf134143a89 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java @@ -1196,7 +1196,6 @@ public void visitMethodDef(JCMethodDecl tree) { // Add an implicit super() call unless an explicit call to // super(...) or this(...) is given // or we are compiling class java.lang.Object. - boolean addedSuperInIdentityClass = false; if (isConstructor && owner.type != syms.objectType) { if (!TreeInfo.hasAnyConstructorCall(tree)) { JCStatement supCall = make.at(tree.body.pos).Exec(make.Apply(List.nil(), @@ -1205,7 +1204,6 @@ public void visitMethodDef(JCMethodDecl tree) { tree.body.stats = tree.body.stats.append(supCall); } else { tree.body.stats = tree.body.stats.prepend(supCall); - addedSuperInIdentityClass = true; } } else if ((env.enclClass.sym.flags() & ENUM) != 0 && (tree.mods.flags & GENERATEDCONSTR) == 0 && @@ -1243,7 +1241,6 @@ public void visitMethodDef(JCMethodDecl tree) { if (isConstructor && owner.type != syms.objectType) { boolean hasThisConstructorCall = TreeInfo.hasConstructorCall(tree, names._this); localEnv.info.earlyContext = EarlyConstructionContext.of(owner, - addedSuperInIdentityClass && allowValueClasses, hasThisConstructorCall && allowValueClasses); } @@ -1323,10 +1320,9 @@ public void visitVarDef(JCVariableDecl tree) { initEnv.info.enclVar = v; EarlyConstructionContext previousEarlyConstruction = initEnv.info.earlyContext; try { - if (v.owner.kind == TYP && !v.isStatic() && allowValueClasses) { + if (v.isStrictInstance() && allowValueClasses) { // instance strict field init occur in early construction context - initEnv.info.earlyContext = EarlyConstructionContext.of((ClassSymbol)v.owner, - !v.isStrict(), false); + initEnv.info.earlyContext = EarlyConstructionContext.of((ClassSymbol)v.owner, false); } attribExpr(tree.init, initEnv, v.type); if (tree.isImplicitlyTyped()) { @@ -2588,11 +2584,8 @@ public void visitApply(JCMethodInvocation tree) { argtypes = argtypesBuf.toList(); typeargtypes = attribTypes(tree.typeargs, localEnv); - // Done with this()/super() parameters. - if (!env.info.earlyContext.onlyWarnings()) { - // End of constructor prologue (but only if no initialization warnings are needed) - env.info.earlyContext = EarlyConstructionContext.NONE; - } + // End of constructor prologue. Done with this()/super() parameters. + env.info.earlyContext = EarlyConstructionContext.NONE; // Variable `site' points to the class in which the called // constructor is defined. diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/EarlyConstructionContext.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/EarlyConstructionContext.java index 6d96d7c4aec..331ecfdf63f 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/EarlyConstructionContext.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/EarlyConstructionContext.java @@ -33,7 +33,6 @@ * references are disallowed when inside a lambda */ record EarlyConstructionContext(ClassSymbol owner, - boolean onlyWarnings, boolean restricted, boolean ctorPrologue) { @@ -41,15 +40,14 @@ record EarlyConstructionContext(ClassSymbol owner, * Dummy context. Used when not in early construction context */ static final EarlyConstructionContext NONE = - new EarlyConstructionContext(null, false, false, false); + new EarlyConstructionContext(null, false, false); /** * Create a root early context */ static EarlyConstructionContext of(ClassSymbol owner, - boolean onlyWarnings, boolean restricted) { - return new EarlyConstructionContext(owner, onlyWarnings, restricted, !onlyWarnings); + return new EarlyConstructionContext(owner, restricted, true); } /** @@ -60,7 +58,7 @@ EarlyConstructionContext nested(boolean isClass) { if (this == NONE) { return this; } - return new EarlyConstructionContext(owner, onlyWarnings, true, + return new EarlyConstructionContext(owner, true, !isClass && ctorPrologue); } } diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/MemberEnter.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/MemberEnter.java index c7c9937535d..d0c33cc830c 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/MemberEnter.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/MemberEnter.java @@ -297,9 +297,8 @@ public void visitVarDef(JCVariableDecl tree) { Env initEnv = getInitEnv(tree, env); initEnv.info.enclVar = v; initEnv = initEnv(tree, initEnv); - if (v.owner.kind == TYP && !v.isStatic() && allowValueClasses) { - initEnv.info.earlyContext = EarlyConstructionContext.of((ClassSymbol)v.owner, - !v.isStrict(), false); + if (v.isStrictInstance() && allowValueClasses) { + initEnv.info.earlyContext = EarlyConstructionContext.of((ClassSymbol)v.owner, false); } v.setLazyConstValue(initEnv(tree, initEnv), env, attr, tree); } diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java index f1fcae8b6ff..4e4dcb96713 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java @@ -43,7 +43,6 @@ import com.sun.tools.javac.main.Option; import com.sun.tools.javac.resources.CompilerProperties.Errors; import com.sun.tools.javac.resources.CompilerProperties.Fragments; -import com.sun.tools.javac.resources.CompilerProperties.LintWarnings; import com.sun.tools.javac.resources.CompilerProperties.Warnings; import com.sun.tools.javac.tree.*; import com.sun.tools.javac.tree.JCTree.*; @@ -2048,7 +2047,7 @@ Symbol findFun(Env env, Name name, EarlyConstructionContext context = env1.info.earlyContext; if (env1.enclClass.sym == context.owner()) { Assert.check(env.tree.hasTag(APPLY)); - return earlyRefResult(((JCMethodInvocation)env.tree).meth, context, sym, false); + return new RefBeforeCtorCalledError(sym, false); } } } @@ -3840,7 +3839,7 @@ Symbol findSelfContaining(DiagnosticPosition pos, return new StaticError(sym); } else if (env1.enclClass.sym == env1.info.earlyContext.owner()) { // early construction context, stop search - return earlyRefResult(pos, env1.info.earlyContext, sym, false); + return new RefBeforeCtorCalledError(sym, false); } else { // found it return sym; @@ -3907,7 +3906,7 @@ Symbol resolveSelf(DiagnosticPosition pos, EarlyConstructionContext context = env1.info.earlyContext; if (sym.owner == context.owner() && !isReceiverParameter(env, tree)) { - sym = earlyRefResult(pos, context, sym, false); + sym = new RefBeforeCtorCalledError(sym, false); } } return sym; @@ -3926,7 +3925,7 @@ Symbol resolveSelf(DiagnosticPosition pos, types.asSuper(env.enclClass.type, c), env.enclClass.sym); EarlyConstructionContext context = env.info.earlyContext; if (context != EarlyConstructionContext.NONE) { - sym = earlyRefResult(pos, context, sym, false); + sym = new RefBeforeCtorCalledError(sym, false); } env.info.defaultSuperCallSite = t; return sym; @@ -3990,7 +3989,7 @@ private Symbol checkEarlyFieldRef(DiagnosticPosition pos, Env env, } else { boolean isEarlyWrite = writeOnlyTarget && field.owner == context.owner(); - return earlyRefResult(pos, context, field, isEarlyWrite); + return new RefBeforeCtorCalledError(field, isEarlyWrite); } } @@ -4039,42 +4038,28 @@ private boolean isSimpleEarlyFieldRefAllowed(DiagnosticPosition pos, return false; } if ((field.flags_field & HASINIT) != 0 && - !field.isStrict() && - !context.onlyWarnings()) { + !field.isStrict()) { // Either the declaration of the named variable has no initializer, - // or C is a value class (8.1.1.5). Plus, if warnings are enabled, treat - // the variable as strict -- as if it was declared in a value class. - // To preserve legacy behavior, bad final field writes are never reported as early access. + // or C is a value class (8.1.1.5). To preserve legacy behavior, + // bad final field writes are never reported as early access. return writeOnlyTarget && field.isFinal(); } // At this point we have seen a legal early ref - if (!context.onlyWarnings()) { - if (writeOnlyTarget) { - // Write early ref, this is allowed with flexible constructor bodies - preview.checkSourceLevel(pos, Feature.FLEXIBLE_CONSTRUCTORS); - } else { - // Read early ref, this is only allowed under JEP 401, and requires special codegen support - preview.checkSourceLevel(pos, Feature.VALUE_CLASSES); - if (context.ctorPrologue() && env.enclMethod != null) { - // Track the early read for codegen - localProxyVarsGen.addFieldReadInPrologue(env.enclMethod, field); - } + if (writeOnlyTarget) { + // Write early ref, this is allowed with flexible constructor bodies + preview.checkSourceLevel(pos, Feature.FLEXIBLE_CONSTRUCTORS); + } else { + // Read early ref, this is only allowed under JEP 401, and requires special codegen support + preview.checkSourceLevel(pos, Feature.VALUE_CLASSES); + if (context.ctorPrologue() && env.enclMethod != null) { + // Track the early read for codegen + localProxyVarsGen.addFieldReadInPrologue(env.enclMethod, field); } } return true; } - /** Return a symbol modeling the early access, and warn if necessary */ - private Symbol earlyRefResult(DiagnosticPosition pos, EarlyConstructionContext context, Symbol sym, - boolean isEarlyWrite) { - if (context.onlyWarnings()) { - log.warning(pos, LintWarnings.WouldNotBeAllowedInPrologue(sym)); - return sym; - } - return new RefBeforeCtorCalledError(sym, isEarlyWrite); - } - -/* *************************************************************************** + /* *************************************************************************** * ResolveError classes, indicating error situations when accessing symbols ****************************************************************************/ diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties index 838de5fa021..6582d0ccf7b 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties @@ -4393,11 +4393,6 @@ compiler.warn.attempt.to.synchronize.on.instance.of.value.based.class=\ compiler.warn.attempt.to.use.value.based.where.identity.expected=\ use of a value-based class with an operation that expects reliable identity -# 0: symbol or name -# lint: initialization -compiler.warn.would.not.be.allowed.in.prologue=\ - reference to {0} would not be allowed in the prologue phase - # 0: type compiler.err.enclosing.class.type.non.denotable=\ enclosing class type: {0}\n\ diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac.properties b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac.properties index 87f1c4a490d..eb68753d465 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac.properties +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac.properties @@ -232,10 +232,6 @@ javac.opt.Xlint.desc.finally=\ javac.opt.Xlint.desc.incubating=\ Warn about use of incubating modules. -javac.opt.Xlint.desc.initialization=\ - Warn about code in identity classes that wouldn''t be allowed in early\n\ -\ construction due to a this dependency. - javac.opt.Xlint.desc.lossy-conversions=\ Warn about possible lossy conversions in compound assignment and bit shift operations. diff --git a/test/langtools/tools/javac/SuperInit/EarlyAssignments.java b/test/langtools/tools/javac/SuperInit/EarlyAssignments.java index d0e5273aeb9..e1ba3a67381 100644 --- a/test/langtools/tools/javac/SuperInit/EarlyAssignments.java +++ b/test/langtools/tools/javac/SuperInit/EarlyAssignments.java @@ -7,8 +7,6 @@ * jdk.compiler/com.sun.tools.javac.util * @enablePreview * @compile/fail/ref=EarlyAssignments.out -XDrawDiagnostics EarlyAssignments.java - * @build SuperCallRemover - * @compile/fail/ref=EarlyAssignmentsWarnings.out -Xlint:initialization -Werror -XDrawDiagnostics -processor SuperCallRemover EarlyAssignments.java */ public class EarlyAssignments { diff --git a/test/langtools/tools/javac/SuperInit/EarlyAssignments.out b/test/langtools/tools/javac/SuperInit/EarlyAssignments.out index 5bc4bcdc3d1..5bb1dc9120e 100644 --- a/test/langtools/tools/javac/SuperInit/EarlyAssignments.out +++ b/test/langtools/tools/javac/SuperInit/EarlyAssignments.out @@ -1,24 +1,24 @@ +EarlyAssignments.java:34:26: compiler.err.cant.ref.before.ctor.called: x +EarlyAssignments.java:35:21: compiler.err.cant.ref.before.ctor.called: x EarlyAssignments.java:36:26: compiler.err.cant.ref.before.ctor.called: x -EarlyAssignments.java:37:21: compiler.err.cant.ref.before.ctor.called: x -EarlyAssignments.java:38:26: compiler.err.cant.ref.before.ctor.called: x -EarlyAssignments.java:39:34: compiler.err.cant.ref.before.ctor.called: x -EarlyAssignments.java:41:36: compiler.err.cant.ref.before.ctor.called: this -EarlyAssignments.java:45:17: compiler.err.cant.ref.before.ctor.called: x -EarlyAssignments.java:49:21: compiler.err.cant.ref.before.ctor.called: x -EarlyAssignments.java:53:22: compiler.err.cant.ref.before.ctor.called: x -EarlyAssignments.java:71:13: compiler.err.cant.ref.before.ctor.called: x -EarlyAssignments.java:72:17: compiler.err.cant.ref.before.ctor.called: x -EarlyAssignments.java:73:25: compiler.err.cant.ref.before.ctor.called: this -EarlyAssignments.java:74:31: compiler.err.cant.ref.before.ctor.called: this -EarlyAssignments.java:124:17: compiler.err.cant.ref.before.ctor.called: x -EarlyAssignments.java:129:22: compiler.err.cant.ref.before.ctor.called: x -EarlyAssignments.java:134:29: compiler.err.cant.ref.before.ctor.called: x -EarlyAssignments.java:139:22: compiler.err.cant.ref.before.ctor.called: x -EarlyAssignments.java:144:28: compiler.err.cant.ref.before.ctor.called: x -EarlyAssignments.java:153:13: compiler.err.cant.assign.initialized.before.ctor.called: x -EarlyAssignments.java:162:13: compiler.err.cant.assign.val.to.var: final, x -EarlyAssignments.java:173:13: compiler.err.cant.ref.before.ctor.called: this -EarlyAssignments.java:182:17: compiler.err.cant.ref.before.ctor.called: x +EarlyAssignments.java:37:34: compiler.err.cant.ref.before.ctor.called: x +EarlyAssignments.java:39:36: compiler.err.cant.ref.before.ctor.called: this +EarlyAssignments.java:43:17: compiler.err.cant.ref.before.ctor.called: x +EarlyAssignments.java:47:21: compiler.err.cant.ref.before.ctor.called: x +EarlyAssignments.java:51:22: compiler.err.cant.ref.before.ctor.called: x +EarlyAssignments.java:69:13: compiler.err.cant.ref.before.ctor.called: x +EarlyAssignments.java:70:17: compiler.err.cant.ref.before.ctor.called: x +EarlyAssignments.java:71:25: compiler.err.cant.ref.before.ctor.called: this +EarlyAssignments.java:72:31: compiler.err.cant.ref.before.ctor.called: this +EarlyAssignments.java:122:17: compiler.err.cant.ref.before.ctor.called: x +EarlyAssignments.java:127:22: compiler.err.cant.ref.before.ctor.called: x +EarlyAssignments.java:132:29: compiler.err.cant.ref.before.ctor.called: x +EarlyAssignments.java:137:22: compiler.err.cant.ref.before.ctor.called: x +EarlyAssignments.java:142:28: compiler.err.cant.ref.before.ctor.called: x +EarlyAssignments.java:151:13: compiler.err.cant.assign.initialized.before.ctor.called: x +EarlyAssignments.java:160:13: compiler.err.cant.assign.val.to.var: final, x +EarlyAssignments.java:171:13: compiler.err.cant.ref.before.ctor.called: this +EarlyAssignments.java:180:17: compiler.err.cant.ref.before.ctor.called: x - compiler.note.preview.filename: EarlyAssignments.java, DEFAULT - compiler.note.preview.recompile 21 errors diff --git a/test/langtools/tools/javac/SuperInit/EarlyAssignmentsWarnings.out b/test/langtools/tools/javac/SuperInit/EarlyAssignmentsWarnings.out deleted file mode 100644 index ca3b8ebbda7..00000000000 --- a/test/langtools/tools/javac/SuperInit/EarlyAssignmentsWarnings.out +++ /dev/null @@ -1,21 +0,0 @@ -EarlyAssignments.java:162:13: compiler.err.cant.assign.val.to.var: final, x -EarlyAssignments.java:36:26: compiler.warn.would.not.be.allowed.in.prologue: x -EarlyAssignments.java:37:21: compiler.warn.would.not.be.allowed.in.prologue: x -EarlyAssignments.java:38:26: compiler.warn.would.not.be.allowed.in.prologue: x -EarlyAssignments.java:39:34: compiler.warn.would.not.be.allowed.in.prologue: x -EarlyAssignments.java:41:36: compiler.warn.would.not.be.allowed.in.prologue: this -EarlyAssignments.java:45:17: compiler.warn.would.not.be.allowed.in.prologue: x -EarlyAssignments.java:49:21: compiler.warn.would.not.be.allowed.in.prologue: x -EarlyAssignments.java:53:22: compiler.warn.would.not.be.allowed.in.prologue: x -EarlyAssignments.java:71:13: compiler.warn.would.not.be.allowed.in.prologue: x -EarlyAssignments.java:72:17: compiler.warn.would.not.be.allowed.in.prologue: x -EarlyAssignments.java:73:25: compiler.warn.would.not.be.allowed.in.prologue: this -EarlyAssignments.java:74:31: compiler.warn.would.not.be.allowed.in.prologue: this -EarlyAssignments.java:124:17: compiler.warn.would.not.be.allowed.in.prologue: x -EarlyAssignments.java:129:22: compiler.warn.would.not.be.allowed.in.prologue: x -EarlyAssignments.java:134:29: compiler.warn.would.not.be.allowed.in.prologue: x -EarlyAssignments.java:139:22: compiler.warn.would.not.be.allowed.in.prologue: x -EarlyAssignments.java:144:28: compiler.warn.would.not.be.allowed.in.prologue: x -EarlyAssignments.java:173:13: compiler.warn.would.not.be.allowed.in.prologue: this -1 error -18 warnings diff --git a/test/langtools/tools/javac/SuperInit/EarlyInnerAccessErrorMessageTest.java b/test/langtools/tools/javac/SuperInit/EarlyInnerAccessErrorMessageTest.java index 58b4b5f7cce..8e4b47fe980 100644 --- a/test/langtools/tools/javac/SuperInit/EarlyInnerAccessErrorMessageTest.java +++ b/test/langtools/tools/javac/SuperInit/EarlyInnerAccessErrorMessageTest.java @@ -7,8 +7,6 @@ * jdk.compiler/com.sun.tools.javac.util * @enablePreview * @compile/fail/ref=EarlyInnerAccessErrorMessageTest.out -XDrawDiagnostics EarlyInnerAccessErrorMessageTest.java - * @build SuperCallRemover - * @compile/fail/ref=EarlyInnerAccessErrorMessageTestWarnings.out -Xlint:initialization -Werror -XDrawDiagnostics -processor SuperCallRemover EarlyInnerAccessErrorMessageTest.java */ public class EarlyInnerAccessErrorMessageTest { int x; diff --git a/test/langtools/tools/javac/SuperInit/EarlyInnerAccessErrorMessageTest.out b/test/langtools/tools/javac/SuperInit/EarlyInnerAccessErrorMessageTest.out index 45541cb23fa..c90cc9164b3 100644 --- a/test/langtools/tools/javac/SuperInit/EarlyInnerAccessErrorMessageTest.out +++ b/test/langtools/tools/javac/SuperInit/EarlyInnerAccessErrorMessageTest.out @@ -1,2 +1,2 @@ -EarlyInnerAccessErrorMessageTest.java:17:34: compiler.err.cant.ref.before.ctor.called: x +EarlyInnerAccessErrorMessageTest.java:15:34: compiler.err.cant.ref.before.ctor.called: x 1 error diff --git a/test/langtools/tools/javac/SuperInit/EarlyInnerAccessErrorMessageTestWarnings.out b/test/langtools/tools/javac/SuperInit/EarlyInnerAccessErrorMessageTestWarnings.out deleted file mode 100644 index 1135a7d5fde..00000000000 --- a/test/langtools/tools/javac/SuperInit/EarlyInnerAccessErrorMessageTestWarnings.out +++ /dev/null @@ -1,4 +0,0 @@ -EarlyInnerAccessErrorMessageTest.java:17:34: compiler.warn.would.not.be.allowed.in.prologue: x -- compiler.err.warnings.and.werror -1 error -1 warning diff --git a/test/langtools/tools/javac/SuperInit/EarlyLambdaReturn.java b/test/langtools/tools/javac/SuperInit/EarlyLambdaReturn.java index c8f3312d1b8..acf56de86f8 100644 --- a/test/langtools/tools/javac/SuperInit/EarlyLambdaReturn.java +++ b/test/langtools/tools/javac/SuperInit/EarlyLambdaReturn.java @@ -29,8 +29,6 @@ * jdk.compiler/com.sun.tools.javac.util * @enablePreview * @run main EarlyLambdaReturn - * @build SuperCallRemover - * @compile -Xlint:initialization -Werror -XDrawDiagnostics -processor SuperCallRemover EarlyLambdaReturn.java */ public class EarlyLambdaReturn { diff --git a/test/langtools/tools/javac/SuperInit/EarlyLocalClass.java b/test/langtools/tools/javac/SuperInit/EarlyLocalClass.java index 9f13271a3ec..2127ecc8e00 100644 --- a/test/langtools/tools/javac/SuperInit/EarlyLocalClass.java +++ b/test/langtools/tools/javac/SuperInit/EarlyLocalClass.java @@ -7,8 +7,6 @@ * jdk.compiler/com.sun.tools.javac.util * @enablePreview * @compile/fail/ref=EarlyLocalClass.out -XDrawDiagnostics EarlyLocalClass.java - * @build SuperCallRemover - * @compile/fail/ref=EarlyLocalClassWarnings.out -Xlint:initialization -Werror -XDrawDiagnostics -processor SuperCallRemover EarlyLocalClass.java */ public class EarlyLocalClass { EarlyLocalClass() { diff --git a/test/langtools/tools/javac/SuperInit/EarlyLocalClass.out b/test/langtools/tools/javac/SuperInit/EarlyLocalClass.out index a32d1567f0e..17fc5f89316 100644 --- a/test/langtools/tools/javac/SuperInit/EarlyLocalClass.out +++ b/test/langtools/tools/javac/SuperInit/EarlyLocalClass.out @@ -1,2 +1,2 @@ -EarlyLocalClass.java:17:32: compiler.err.cant.ref.before.ctor.called: this +EarlyLocalClass.java:15:32: compiler.err.cant.ref.before.ctor.called: this 1 error diff --git a/test/langtools/tools/javac/SuperInit/EarlyLocalClassWarnings.out b/test/langtools/tools/javac/SuperInit/EarlyLocalClassWarnings.out deleted file mode 100644 index aa9aa208fb9..00000000000 --- a/test/langtools/tools/javac/SuperInit/EarlyLocalClassWarnings.out +++ /dev/null @@ -1,4 +0,0 @@ -EarlyLocalClass.java:17:32: compiler.warn.would.not.be.allowed.in.prologue: this -- compiler.err.warnings.and.werror -1 error -1 warning diff --git a/test/langtools/tools/javac/SuperInit/EarlyLocalTest1.java b/test/langtools/tools/javac/SuperInit/EarlyLocalTest1.java index 6cee0dc6560..1719a432693 100644 --- a/test/langtools/tools/javac/SuperInit/EarlyLocalTest1.java +++ b/test/langtools/tools/javac/SuperInit/EarlyLocalTest1.java @@ -29,8 +29,6 @@ * jdk.compiler/com.sun.tools.javac.util * @enablePreview * @run main EarlyLocalTest1 - * @build SuperCallRemover - * @compile -Xlint:initialization -Werror -XDrawDiagnostics -processor SuperCallRemover EarlyLocalTest1.java */ public class EarlyLocalTest1 { diff --git a/test/langtools/tools/javac/SuperInit/EarlyLocalTest2.java b/test/langtools/tools/javac/SuperInit/EarlyLocalTest2.java index c26ce54c53f..c314867b3f0 100644 --- a/test/langtools/tools/javac/SuperInit/EarlyLocalTest2.java +++ b/test/langtools/tools/javac/SuperInit/EarlyLocalTest2.java @@ -29,8 +29,6 @@ * jdk.compiler/com.sun.tools.javac.util * @enablePreview * @run main EarlyLocalTest2 - * @build SuperCallRemover - * @compile -Xlint:initialization -Werror -XDrawDiagnostics -processor SuperCallRemover EarlyLocalTest2.java */ public class EarlyLocalTest2 { diff --git a/test/langtools/tools/javac/SuperInit/EarlyLocalTest3.java b/test/langtools/tools/javac/SuperInit/EarlyLocalTest3.java index b5308eac141..96fad2a5cde 100644 --- a/test/langtools/tools/javac/SuperInit/EarlyLocalTest3.java +++ b/test/langtools/tools/javac/SuperInit/EarlyLocalTest3.java @@ -29,8 +29,6 @@ * jdk.compiler/com.sun.tools.javac.util * @enablePreview * @run main EarlyLocalTest3 - * @build SuperCallRemover - * @compile -Xlint:initialization -Werror -XDrawDiagnostics -processor SuperCallRemover EarlyLocalTest3.java */ public class EarlyLocalTest3 { diff --git a/test/langtools/tools/javac/SuperInit/EarlyLocalTest4.java b/test/langtools/tools/javac/SuperInit/EarlyLocalTest4.java index 4888c8adedd..840a626ac7a 100644 --- a/test/langtools/tools/javac/SuperInit/EarlyLocalTest4.java +++ b/test/langtools/tools/javac/SuperInit/EarlyLocalTest4.java @@ -29,8 +29,6 @@ * jdk.compiler/com.sun.tools.javac.util * @enablePreview * @run main EarlyLocalTest4 - * @build SuperCallRemover - * @compile -Xlint:initialization -Werror -XDrawDiagnostics -processor SuperCallRemover EarlyLocalTest4.java */ public class EarlyLocalTest4 { diff --git a/test/langtools/tools/javac/SuperInit/EarlyLocalTest5.java b/test/langtools/tools/javac/SuperInit/EarlyLocalTest5.java index 275d0338547..c0587f89b0d 100644 --- a/test/langtools/tools/javac/SuperInit/EarlyLocalTest5.java +++ b/test/langtools/tools/javac/SuperInit/EarlyLocalTest5.java @@ -29,8 +29,6 @@ * jdk.compiler/com.sun.tools.javac.util * @enablePreview * @run main EarlyLocalTest5 - * @build SuperCallRemover - * @compile -Xlint:initialization -Werror -XDrawDiagnostics -processor SuperCallRemover EarlyLocalTest5.java */ import java.util.concurrent.atomic.AtomicReference; diff --git a/test/langtools/tools/javac/SuperInit/EarlyLocalTest6.java b/test/langtools/tools/javac/SuperInit/EarlyLocalTest6.java index dfbd0490811..86ac1a9b096 100644 --- a/test/langtools/tools/javac/SuperInit/EarlyLocalTest6.java +++ b/test/langtools/tools/javac/SuperInit/EarlyLocalTest6.java @@ -29,8 +29,6 @@ * jdk.compiler/com.sun.tools.javac.util * @enablePreview * @run main EarlyLocalTest6 - * @build SuperCallRemover - * @compile -Xlint:initialization -Werror -XDrawDiagnostics -processor SuperCallRemover EarlyLocalTest6.java */ import java.util.concurrent.atomic.AtomicReference; diff --git a/test/langtools/tools/javac/SuperInit/EarlyLocalTest7.java b/test/langtools/tools/javac/SuperInit/EarlyLocalTest7.java index 6845e20db2a..cc18a4caa7c 100644 --- a/test/langtools/tools/javac/SuperInit/EarlyLocalTest7.java +++ b/test/langtools/tools/javac/SuperInit/EarlyLocalTest7.java @@ -29,8 +29,6 @@ * jdk.compiler/com.sun.tools.javac.util * @enablePreview * @run main EarlyLocalTest7 - * @build SuperCallRemover - * @compile -Xlint:initialization -Werror -XDrawDiagnostics -processor SuperCallRemover EarlyLocalTest7.java */ import java.util.concurrent.atomic.AtomicReference; diff --git a/test/langtools/tools/javac/SuperInit/EarlyLocalTest8.java b/test/langtools/tools/javac/SuperInit/EarlyLocalTest8.java index 239293dc060..89e24c7521b 100644 --- a/test/langtools/tools/javac/SuperInit/EarlyLocalTest8.java +++ b/test/langtools/tools/javac/SuperInit/EarlyLocalTest8.java @@ -29,8 +29,6 @@ * jdk.compiler/com.sun.tools.javac.util * @enablePreview * @run main EarlyLocalTest8 - * @build SuperCallRemover - * @compile -Xlint:initialization -Werror -XDrawDiagnostics -processor SuperCallRemover EarlyLocalTest8.java */ import java.util.concurrent.atomic.AtomicReference; diff --git a/test/langtools/tools/javac/SuperInit/LambdaLocalEarlyCrash.java b/test/langtools/tools/javac/SuperInit/LambdaLocalEarlyCrash.java index d78fc09b9fe..10f3daf0e10 100644 --- a/test/langtools/tools/javac/SuperInit/LambdaLocalEarlyCrash.java +++ b/test/langtools/tools/javac/SuperInit/LambdaLocalEarlyCrash.java @@ -29,8 +29,6 @@ * jdk.compiler/com.sun.tools.javac.util * @enablePreview * @run main LambdaLocalEarlyCrash - * @build SuperCallRemover - * @compile -Xlint:initialization -Werror -XDrawDiagnostics -processor SuperCallRemover LambdaLocalEarlyCrash.java */ public class LambdaLocalEarlyCrash { diff --git a/test/langtools/tools/javac/SuperInit/LambdaOuterCapture.java b/test/langtools/tools/javac/SuperInit/LambdaOuterCapture.java index b3db2ebd851..4e3c9b56095 100644 --- a/test/langtools/tools/javac/SuperInit/LambdaOuterCapture.java +++ b/test/langtools/tools/javac/SuperInit/LambdaOuterCapture.java @@ -29,8 +29,6 @@ * jdk.compiler/com.sun.tools.javac.util * @enablePreview * @run main LambdaOuterCapture - * @build SuperCallRemover - * @compile -Xlint:initialization -Werror -XDrawDiagnostics -processor SuperCallRemover LambdaOuterCapture.java */ public class LambdaOuterCapture { diff --git a/test/langtools/tools/javac/SuperInit/SuperCallRemover.java b/test/langtools/tools/javac/SuperInit/SuperCallRemover.java deleted file mode 100644 index fb1c2f1e90c..00000000000 --- a/test/langtools/tools/javac/SuperInit/SuperCallRemover.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 2025, 2026, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -import java.util.Set; - -import javax.annotation.processing.ProcessingEnvironment; -import javax.annotation.processing.RoundEnvironment; -import javax.lang.model.element.Element; -import javax.lang.model.element.TypeElement; - -import com.sun.source.util.Trees; -import com.sun.tools.javac.tree.JCTree; -import com.sun.tools.javac.tree.JCTree.JCExpressionStatement; -import com.sun.tools.javac.tree.JCTree.JCMethodDecl; -import com.sun.tools.javac.tree.JCTree.JCMethodInvocation; -import com.sun.tools.javac.tree.JCTree.JCStatement; -import com.sun.tools.javac.tree.TreeInfo; -import com.sun.tools.javac.tree.TreeTranslator; -import com.sun.tools.javac.util.ListBuffer; - -/** - * This annotation processor is used to remove calls to no-arg super() in a constructor, - * so that Attr can generate warnings about early field references. - */ -public class SuperCallRemover extends JavacTestingAbstractProcessor { - private Trees trees; - - @Override - public void init(ProcessingEnvironment processingEnv) { - super.init(processingEnv); - trees = Trees.instance(processingEnv); - } - - @Override - public boolean process(Set annotations, RoundEnvironment roundEnv) { - if (roundEnv.processingOver()) { - return false; - } - - ConstructorPatcher remover = new ConstructorPatcher(); - for (Element root : roundEnv.getRootElements()) { - JCTree tree = (JCTree)trees.getTree(root); - if (tree != null) { - remover.translate(tree); - } - } - return false; - } - - static class ConstructorPatcher extends TreeTranslator { - @Override - public void visitMethodDef(JCMethodDecl tree) { - if (TreeInfo.isConstructor(tree) && TreeInfo.hasAnyConstructorCall(tree)) { - ListBuffer newStats = new ListBuffer<>(); - for (JCStatement statement : tree.body.stats) { - if (statement instanceof JCExpressionStatement expressionStatement && - expressionStatement.expr instanceof JCMethodInvocation methodInvocation && - TreeInfo.isSuperCall(expressionStatement) && - methodInvocation.args.isEmpty()) { - continue; - } - newStats.add(statement); - } - tree.body.stats = newStats.toList(); - } - super.visitMethodDef(tree); - } - } -} diff --git a/test/langtools/tools/javac/SuperInit/SuperInitFails.java b/test/langtools/tools/javac/SuperInit/SuperInitFails.java index 3bb21d4cf91..fbfebc088f8 100644 --- a/test/langtools/tools/javac/SuperInit/SuperInitFails.java +++ b/test/langtools/tools/javac/SuperInit/SuperInitFails.java @@ -7,8 +7,6 @@ * jdk.compiler/com.sun.tools.javac.util * @enablePreview * @compile/fail/ref=SuperInitFails.out -XDrawDiagnostics SuperInitFails.java - * @build SuperCallRemover - * @compile/fail/ref=SuperInitFailsWarnings.out -Xlint:initialization -Werror -XDrawDiagnostics -processor SuperCallRemover SuperInitFails.java */ import java.util.concurrent.atomic.AtomicReference; public class SuperInitFails extends AtomicReference implements Iterable { diff --git a/test/langtools/tools/javac/SuperInit/SuperInitFails.out b/test/langtools/tools/javac/SuperInit/SuperInitFails.out index 77c70db9314..af7dc5fe4fd 100644 --- a/test/langtools/tools/javac/SuperInit/SuperInitFails.out +++ b/test/langtools/tools/javac/SuperInit/SuperInitFails.out @@ -1,46 +1,46 @@ -SuperInitFails.java:62:9: compiler.err.cant.ref.before.ctor.called: hashCode() -SuperInitFails.java:67:9: compiler.err.cant.ref.before.ctor.called: this -SuperInitFails.java:72:9: compiler.err.cant.ref.before.ctor.called: super -SuperInitFails.java:77:23: compiler.err.cant.ref.before.ctor.called: this -SuperInitFails.java:82:23: compiler.err.cant.ref.before.ctor.called: super -SuperInitFails.java:104:33: compiler.err.cant.ref.before.ctor.called: this -SuperInitFails.java:109:14: compiler.err.cant.ref.before.ctor.called: this -SuperInitFails.java:113:20: compiler.err.not.encl.class: java.lang.Object -SuperInitFails.java:117:17: compiler.err.cant.ref.before.ctor.called: super -SuperInitFails.java:124:22: compiler.err.call.must.only.appear.in.ctor -SuperInitFails.java:130:9: compiler.err.cant.ref.before.ctor.called: this -SuperInitFails.java:138:9: compiler.err.non.canonical.constructor.invoke.another.constructor: SuperInitFails.Record1 -SuperInitFails.java:143:9: compiler.err.non.canonical.constructor.invoke.another.constructor: SuperInitFails.Record2 -SuperInitFails.java:160:50: compiler.err.cant.ref.before.ctor.called: x -SuperInitFails.java:164:15: compiler.err.cant.ref.before.ctor.called: this -SuperInitFails.java:173:13: compiler.err.cant.ref.before.ctor.called: x -SuperInitFails.java:177:17: compiler.err.cant.ref.before.ctor.called: x -SuperInitFails.java:181:24: compiler.err.cant.ref.before.ctor.called: x -SuperInitFails.java:185:18: compiler.err.cant.ref.before.ctor.called: x -SuperInitFails.java:191:32: compiler.err.cant.ref.before.ctor.called: x -SuperInitFails.java:200:36: compiler.err.cant.ref.before.ctor.called: xx -SuperInitFails.java:211:25: compiler.err.return.before.superclass.initialized -SuperInitFails.java:216:33: compiler.err.ctor.calls.not.allowed.here -SuperInitFails.java:221:29: compiler.err.redundant.superclass.init -SuperInitFails.java:234:41: compiler.err.cant.ref.before.ctor.called: x -SuperInitFails.java:235:16: compiler.err.cant.ref.before.ctor.called: x -SuperInitFails.java:244:35: compiler.err.cant.ref.before.ctor.called: this -SuperInitFails.java:256:13: compiler.err.cant.ref.before.ctor.called: x -SuperInitFails.java:269:18: compiler.err.cant.ref.before.ctor.called: x -SuperInitFails.java:285:50: compiler.err.cant.ref.before.ctor.called: check -SuperInitFails.java:286:39: compiler.err.cant.ref.before.ctor.called: check -SuperInitFails.java:296:20: compiler.err.cant.ref.before.ctor.called: this -SuperInitFails.java:308:26: compiler.err.not.encl.class: SuperInitFails.Inner11.Inner11_1 -SuperInitFails.java:318:37: compiler.err.cant.ref.before.ctor.called: check -SuperInitFails.java:38:13: compiler.err.call.must.only.appear.in.ctor -SuperInitFails.java:42:14: compiler.err.call.must.only.appear.in.ctor -SuperInitFails.java:46:14: compiler.err.call.must.only.appear.in.ctor -SuperInitFails.java:50:13: compiler.err.call.must.only.appear.in.ctor -SuperInitFails.java:54:33: compiler.err.call.must.only.appear.in.ctor -SuperInitFails.java:58:32: compiler.err.call.must.only.appear.in.ctor -SuperInitFails.java:88:18: compiler.err.ctor.calls.not.allowed.here -SuperInitFails.java:94:13: compiler.err.return.before.superclass.initialized -SuperInitFails.java:155:18: compiler.err.call.must.only.appear.in.ctor +SuperInitFails.java:60:9: compiler.err.cant.ref.before.ctor.called: hashCode() +SuperInitFails.java:65:9: compiler.err.cant.ref.before.ctor.called: this +SuperInitFails.java:70:9: compiler.err.cant.ref.before.ctor.called: super +SuperInitFails.java:75:23: compiler.err.cant.ref.before.ctor.called: this +SuperInitFails.java:80:23: compiler.err.cant.ref.before.ctor.called: super +SuperInitFails.java:102:33: compiler.err.cant.ref.before.ctor.called: this +SuperInitFails.java:107:14: compiler.err.cant.ref.before.ctor.called: this +SuperInitFails.java:111:20: compiler.err.not.encl.class: java.lang.Object +SuperInitFails.java:115:17: compiler.err.cant.ref.before.ctor.called: super +SuperInitFails.java:122:22: compiler.err.call.must.only.appear.in.ctor +SuperInitFails.java:128:9: compiler.err.cant.ref.before.ctor.called: this +SuperInitFails.java:136:9: compiler.err.non.canonical.constructor.invoke.another.constructor: SuperInitFails.Record1 +SuperInitFails.java:141:9: compiler.err.non.canonical.constructor.invoke.another.constructor: SuperInitFails.Record2 +SuperInitFails.java:158:50: compiler.err.cant.ref.before.ctor.called: x +SuperInitFails.java:162:15: compiler.err.cant.ref.before.ctor.called: this +SuperInitFails.java:171:13: compiler.err.cant.ref.before.ctor.called: x +SuperInitFails.java:175:17: compiler.err.cant.ref.before.ctor.called: x +SuperInitFails.java:179:24: compiler.err.cant.ref.before.ctor.called: x +SuperInitFails.java:183:18: compiler.err.cant.ref.before.ctor.called: x +SuperInitFails.java:189:32: compiler.err.cant.ref.before.ctor.called: x +SuperInitFails.java:198:36: compiler.err.cant.ref.before.ctor.called: xx +SuperInitFails.java:209:25: compiler.err.return.before.superclass.initialized +SuperInitFails.java:214:33: compiler.err.ctor.calls.not.allowed.here +SuperInitFails.java:219:29: compiler.err.redundant.superclass.init +SuperInitFails.java:232:41: compiler.err.cant.ref.before.ctor.called: x +SuperInitFails.java:233:16: compiler.err.cant.ref.before.ctor.called: x +SuperInitFails.java:242:35: compiler.err.cant.ref.before.ctor.called: this +SuperInitFails.java:254:13: compiler.err.cant.ref.before.ctor.called: x +SuperInitFails.java:267:18: compiler.err.cant.ref.before.ctor.called: x +SuperInitFails.java:283:50: compiler.err.cant.ref.before.ctor.called: check +SuperInitFails.java:284:39: compiler.err.cant.ref.before.ctor.called: check +SuperInitFails.java:294:20: compiler.err.cant.ref.before.ctor.called: this +SuperInitFails.java:306:26: compiler.err.not.encl.class: SuperInitFails.Inner11.Inner11_1 +SuperInitFails.java:316:37: compiler.err.cant.ref.before.ctor.called: check +SuperInitFails.java:36:13: compiler.err.call.must.only.appear.in.ctor +SuperInitFails.java:40:14: compiler.err.call.must.only.appear.in.ctor +SuperInitFails.java:44:14: compiler.err.call.must.only.appear.in.ctor +SuperInitFails.java:48:13: compiler.err.call.must.only.appear.in.ctor +SuperInitFails.java:52:33: compiler.err.call.must.only.appear.in.ctor +SuperInitFails.java:56:32: compiler.err.call.must.only.appear.in.ctor +SuperInitFails.java:86:18: compiler.err.ctor.calls.not.allowed.here +SuperInitFails.java:92:13: compiler.err.return.before.superclass.initialized +SuperInitFails.java:153:18: compiler.err.call.must.only.appear.in.ctor - compiler.note.preview.filename: SuperInitFails.java, DEFAULT - compiler.note.preview.recompile 43 errors diff --git a/test/langtools/tools/javac/SuperInit/SuperInitFailsWarnings.out b/test/langtools/tools/javac/SuperInit/SuperInitFailsWarnings.out deleted file mode 100644 index eb9bcba9f21..00000000000 --- a/test/langtools/tools/javac/SuperInit/SuperInitFailsWarnings.out +++ /dev/null @@ -1,41 +0,0 @@ -SuperInitFails.java:109:14: compiler.err.cant.ref.before.ctor.called: this -SuperInitFails.java:113:20: compiler.err.not.encl.class: java.lang.Object -SuperInitFails.java:124:22: compiler.err.call.must.only.appear.in.ctor -SuperInitFails.java:138:9: compiler.err.non.canonical.constructor.invoke.another.constructor: SuperInitFails.Record1 -SuperInitFails.java:143:9: compiler.err.non.canonical.constructor.invoke.another.constructor: SuperInitFails.Record2 -SuperInitFails.java:160:50: compiler.err.cant.ref.before.ctor.called: x -SuperInitFails.java:164:15: compiler.err.cant.ref.before.ctor.called: this -SuperInitFails.java:200:36: compiler.err.cant.ref.before.ctor.called: xx -SuperInitFails.java:216:33: compiler.err.ctor.calls.not.allowed.here -SuperInitFails.java:256:13: compiler.err.cant.ref.before.ctor.called: x -SuperInitFails.java:269:18: compiler.err.cant.ref.before.ctor.called: x -SuperInitFails.java:296:20: compiler.err.cant.ref.before.ctor.called: this -SuperInitFails.java:308:26: compiler.err.not.encl.class: SuperInitFails.Inner11.Inner11_1 -SuperInitFails.java:318:37: compiler.err.cant.ref.before.ctor.called: check -SuperInitFails.java:38:13: compiler.err.call.must.only.appear.in.ctor -SuperInitFails.java:42:14: compiler.err.call.must.only.appear.in.ctor -SuperInitFails.java:46:14: compiler.err.call.must.only.appear.in.ctor -SuperInitFails.java:50:13: compiler.err.call.must.only.appear.in.ctor -SuperInitFails.java:54:33: compiler.err.call.must.only.appear.in.ctor -SuperInitFails.java:58:32: compiler.err.call.must.only.appear.in.ctor -SuperInitFails.java:88:18: compiler.err.ctor.calls.not.allowed.here -SuperInitFails.java:155:18: compiler.err.call.must.only.appear.in.ctor -SuperInitFails.java:62:9: compiler.warn.would.not.be.allowed.in.prologue: hashCode() -SuperInitFails.java:67:9: compiler.warn.would.not.be.allowed.in.prologue: this -SuperInitFails.java:72:9: compiler.warn.would.not.be.allowed.in.prologue: super -SuperInitFails.java:77:23: compiler.warn.would.not.be.allowed.in.prologue: this -SuperInitFails.java:82:23: compiler.warn.would.not.be.allowed.in.prologue: super -SuperInitFails.java:104:33: compiler.warn.would.not.be.allowed.in.prologue: this -SuperInitFails.java:117:17: compiler.warn.would.not.be.allowed.in.prologue: super -SuperInitFails.java:130:9: compiler.warn.would.not.be.allowed.in.prologue: this -SuperInitFails.java:173:13: compiler.warn.would.not.be.allowed.in.prologue: x -SuperInitFails.java:177:17: compiler.warn.would.not.be.allowed.in.prologue: x -SuperInitFails.java:181:24: compiler.warn.would.not.be.allowed.in.prologue: x -SuperInitFails.java:185:18: compiler.warn.would.not.be.allowed.in.prologue: x -SuperInitFails.java:191:32: compiler.warn.would.not.be.allowed.in.prologue: x -SuperInitFails.java:234:41: compiler.warn.would.not.be.allowed.in.prologue: x -SuperInitFails.java:244:35: compiler.warn.would.not.be.allowed.in.prologue: this -SuperInitFails.java:285:50: compiler.warn.would.not.be.allowed.in.prologue: check -SuperInitFails.java:286:39: compiler.warn.would.not.be.allowed.in.prologue: check -22 errors -17 warnings diff --git a/test/langtools/tools/javac/SuperInit/SuperInitGood.java b/test/langtools/tools/javac/SuperInit/SuperInitGood.java index 06a447e8119..afc92d4045a 100644 --- a/test/langtools/tools/javac/SuperInit/SuperInitGood.java +++ b/test/langtools/tools/javac/SuperInit/SuperInitGood.java @@ -29,8 +29,6 @@ * jdk.compiler/com.sun.tools.javac.util * @enablePreview * @run main SuperInitGood - * @build SuperCallRemover - * @compile/fail/ref=SuperInitGoodWarnings.out -Xlint:initialization -Werror -XDrawDiagnostics -processor SuperCallRemover SuperInitGood.java */ import java.util.concurrent.atomic.AtomicReference; diff --git a/test/langtools/tools/javac/SuperInit/SuperInitGoodWarnings.out b/test/langtools/tools/javac/SuperInit/SuperInitGoodWarnings.out deleted file mode 100644 index 8b4698c5069..00000000000 --- a/test/langtools/tools/javac/SuperInit/SuperInitGoodWarnings.out +++ /dev/null @@ -1,4 +0,0 @@ -SuperInitGood.java:56:13: compiler.warn.would.not.be.allowed.in.prologue: this -- compiler.err.warnings.and.werror -1 error -1 warning diff --git a/test/langtools/tools/javac/diags/examples/InitializationWarning.java b/test/langtools/tools/javac/diags/examples/InitializationWarning.java deleted file mode 100644 index 1ebaf2ec2f5..00000000000 --- a/test/langtools/tools/javac/diags/examples/InitializationWarning.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -// key: compiler.warn.would.not.be.allowed.in.prologue -// options: -Xlint:initialization --enable-preview -source ${jdk.version} - -public class InitializationWarning { - InitializationWarning(Object oo) { - hashCode(); - } -} diff --git a/test/lib/jdk/test/lib/NetworkConfiguration.java b/test/lib/jdk/test/lib/NetworkConfiguration.java index 626340489dd..bd6a1360d41 100644 --- a/test/lib/jdk/test/lib/NetworkConfiguration.java +++ b/test/lib/jdk/test/lib/NetworkConfiguration.java @@ -57,7 +57,6 @@ public class NetworkConfiguration { private boolean has_linklocaladdress = false; private boolean has_globaladdress = false; - @SuppressWarnings("initialization") private NetworkConfiguration( Map> ip4Interfaces, Map> ip6Interfaces) { diff --git a/test/lib/jdk/test/lib/cds/CDSAppTester.java b/test/lib/jdk/test/lib/cds/CDSAppTester.java index 98e3c6b08ee..80ff54021f5 100644 --- a/test/lib/jdk/test/lib/cds/CDSAppTester.java +++ b/test/lib/jdk/test/lib/cds/CDSAppTester.java @@ -71,7 +71,6 @@ public String aotCacheFile() { * - name.classlist * - name.jsa */ - @SuppressWarnings("initialization") public CDSAppTester(String name) { if (CDSTestUtils.DYNAMIC_DUMP) { throw new SkippedException("Tests based on CDSAppTester should be excluded when -Dtest.dynamic.cds.archive is specified"); diff --git a/test/lib/jdk/test/lib/cds/CDSTestUtils.java b/test/lib/jdk/test/lib/cds/CDSTestUtils.java index d5a84813b3f..ea18f1fb331 100644 --- a/test/lib/jdk/test/lib/cds/CDSTestUtils.java +++ b/test/lib/jdk/test/lib/cds/CDSTestUtils.java @@ -135,7 +135,6 @@ public static class Result { private final CDSOptions options; private final boolean hasNormalExit; private final String CDS_DISABLED = "warning: CDS is disabled when the"; - @SuppressWarnings("initialization") public Result(CDSOptions opts, OutputAnalyzer out) throws Exception { checkMappingFailure(out); this.options = opts; diff --git a/test/lib/jdk/test/lib/classloader/GeneratingClassLoader.java b/test/lib/jdk/test/lib/classloader/GeneratingClassLoader.java index 3ea4b67c848..19dd4df9591 100644 --- a/test/lib/jdk/test/lib/classloader/GeneratingClassLoader.java +++ b/test/lib/jdk/test/lib/classloader/GeneratingClassLoader.java @@ -66,7 +66,6 @@ public synchronized Class loadClass(String name, boolean resolve) * Create generating class loader that will use class file for given class * from classpath as template. */ - @SuppressWarnings("initialization") public GeneratingClassLoader(String templateClassName) { this.templateClassName = templateClassName; classPath = System.getProperty("java.class.path").split(File.pathSeparator); diff --git a/test/lib/jdk/test/lib/containers/docker/DockerRunOptions.java b/test/lib/jdk/test/lib/containers/docker/DockerRunOptions.java index a39d1afb8ae..c8c396013b0 100644 --- a/test/lib/jdk/test/lib/containers/docker/DockerRunOptions.java +++ b/test/lib/jdk/test/lib/containers/docker/DockerRunOptions.java @@ -55,7 +55,6 @@ public class DockerRunOptions { * * @return Default docker run options */ - @SuppressWarnings("initialization") public DockerRunOptions(String imageNameAndTag, String javaCmd, String classToRun, String... javaOpts) { this.imageNameAndTag = imageNameAndTag; diff --git a/test/lib/jdk/test/lib/containers/systemd/SystemdRunOptions.java b/test/lib/jdk/test/lib/containers/systemd/SystemdRunOptions.java index 0bd32f28213..97d6542ec3b 100644 --- a/test/lib/jdk/test/lib/containers/systemd/SystemdRunOptions.java +++ b/test/lib/jdk/test/lib/containers/systemd/SystemdRunOptions.java @@ -51,7 +51,6 @@ public class SystemdRunOptions { * * @return Default docker run options */ - @SuppressWarnings("initialization") public SystemdRunOptions(String classToRun, String... javaOpts) { this.classToRun = classToRun; Collections.addAll(this.javaOpts, javaOpts); diff --git a/test/lib/jdk/test/lib/hprof/model/ReachableExcludesImpl.java b/test/lib/jdk/test/lib/hprof/model/ReachableExcludesImpl.java index e69715f10c9..9c4f68a1399 100644 --- a/test/lib/jdk/test/lib/hprof/model/ReachableExcludesImpl.java +++ b/test/lib/jdk/test/lib/hprof/model/ReachableExcludesImpl.java @@ -57,7 +57,6 @@ public class ReachableExcludesImpl implements ReachableExcludes { * Create a new ReachableExcludesImpl over the given file. The file will be * re-read whenever the timestamp changes. */ - @SuppressWarnings("initialization") public ReachableExcludesImpl(File excludesFile) { this.excludesFile = excludesFile; readFile(); diff --git a/test/lib/jdk/test/lib/hprof/model/ReachableObjects.java b/test/lib/jdk/test/lib/hprof/model/ReachableObjects.java index d5f4abe7d59..3dcc5a08823 100644 --- a/test/lib/jdk/test/lib/hprof/model/ReachableObjects.java +++ b/test/lib/jdk/test/lib/hprof/model/ReachableObjects.java @@ -41,7 +41,6 @@ */ public class ReachableObjects { - @SuppressWarnings("initialization") public ReachableObjects(JavaHeapObject root, final ReachableExcludes excludes) { this.root = root; diff --git a/test/lib/jdk/test/lib/hprof/model/Root.java b/test/lib/jdk/test/lib/hprof/model/Root.java index 1a6b2c90394..09ddad27f71 100644 --- a/test/lib/jdk/test/lib/hprof/model/Root.java +++ b/test/lib/jdk/test/lib/hprof/model/Root.java @@ -66,7 +66,6 @@ public Root(long id, long referrerId, int type, String description) { this(id, referrerId, type, description, null); } - @SuppressWarnings("initialization") public Root(long id, long referrerId, int type, String description, StackTrace stackTrace) { this.id = id; diff --git a/test/lib/jdk/test/lib/net/HttpHeaderParser.java b/test/lib/jdk/test/lib/net/HttpHeaderParser.java index 851dd81cfb3..ccf6eb37c62 100644 --- a/test/lib/jdk/test/lib/net/HttpHeaderParser.java +++ b/test/lib/jdk/test/lib/net/HttpHeaderParser.java @@ -86,7 +86,6 @@ enum State { INITIAL, public HttpHeaderParser() { } - @SuppressWarnings("initialization") public HttpHeaderParser(InputStream is) throws IOException, ProtocolException { parse(is); } diff --git a/test/lib/jdk/test/lib/os/linux/HugePageConfiguration.java b/test/lib/jdk/test/lib/os/linux/HugePageConfiguration.java index 575c2986381..d95f20d27fd 100644 --- a/test/lib/jdk/test/lib/os/linux/HugePageConfiguration.java +++ b/test/lib/jdk/test/lib/os/linux/HugePageConfiguration.java @@ -121,7 +121,6 @@ public boolean supportsExplicitHugePages() { return _explicitDefaultHugePageSize > 0 && _explicitHugePageConfigurations.size() > 0; } - @SuppressWarnings("initialization") public HugePageConfiguration(Set explicitHugePageConfigurations, long explicitDefaultHugePageSize, long explicitAvailableHugePageNumber, THPMode _thpMode, long _thpPageSize, ShmemTHPMode _shmemThpMode) { this._explicitHugePageConfigurations = explicitHugePageConfigurations; this._explicitDefaultHugePageSize = explicitDefaultHugePageSize; diff --git a/test/lib/jdk/test/lib/process/OutputBuffer.java b/test/lib/jdk/test/lib/process/OutputBuffer.java index d2be75eeff8..57e00aa73c7 100644 --- a/test/lib/jdk/test/lib/process/OutputBuffer.java +++ b/test/lib/jdk/test/lib/process/OutputBuffer.java @@ -152,7 +152,6 @@ private final void logProgress(String state) { } } - @SuppressWarnings("initialization") private LazyOutputBuffer(Process p, Charset cs, boolean verbose) { this.p = p; this.verbose = verbose; diff --git a/test/lib/jdk/test/lib/security/SimpleOCSPServer.java b/test/lib/jdk/test/lib/security/SimpleOCSPServer.java index bd755d0bd64..4e25467ca80 100644 --- a/test/lib/jdk/test/lib/security/SimpleOCSPServer.java +++ b/test/lib/jdk/test/lib/security/SimpleOCSPServer.java @@ -1009,7 +1009,6 @@ public class LocalOcspRequest { * @throws CertificateException if certificates are found in the * OCSP request and they do not parse correctly. */ - @SuppressWarnings("initialization") private LocalOcspRequest(byte[] requestBytes) throws IOException, CertificateException { Objects.requireNonNull(requestBytes, "Received null input"); @@ -1204,7 +1203,6 @@ public String toString() { * Inner class designed to handle the decoding/representation of * single requests within a {@code LocalOcspRequest} object. */ - @SuppressWarnings("initialization") public class LocalSingleRequest { private final CertId cid; private Map extensions = Collections.emptyMap(); @@ -1336,7 +1334,6 @@ public LocalOcspResponse(OCSPResponse.ResponseStatus respStat) * @throws GeneralSecurityException if errors occur while obtaining * the signature object or any algorithm identifier parameters. */ - @SuppressWarnings("initialization") public LocalOcspResponse(OCSPResponse.ResponseStatus respStat, Map itemMap, Map reqExtensions) diff --git a/test/lib/jdk/test/lib/security/timestamp/TsaServer.java b/test/lib/jdk/test/lib/security/timestamp/TsaServer.java index 7de56d1cce2..e103821c9b8 100644 --- a/test/lib/jdk/test/lib/security/timestamp/TsaServer.java +++ b/test/lib/jdk/test/lib/security/timestamp/TsaServer.java @@ -50,7 +50,6 @@ public class TsaServer implements AutoCloseable { * @param handler a {@link TsaHandler} instance * @throws IOException the I/O exception */ - @SuppressWarnings("initialization") public TsaServer(int port, TsaHandler handler) throws IOException { server = HttpServer.create(new InetSocketAddress(port), 0); if (handler != null) { diff --git a/test/lib/jdk/test/whitebox/WhiteBox.java b/test/lib/jdk/test/whitebox/WhiteBox.java index d1063a51853..b7c4f3b40d0 100644 --- a/test/lib/jdk/test/whitebox/WhiteBox.java +++ b/test/lib/jdk/test/whitebox/WhiteBox.java @@ -790,7 +790,6 @@ public int getCDSConstantForName(String name) throws Exception { public native Long getMethodUintxOption(Executable method, String name); public native Double getMethodDoubleOption(Executable method, String name); public native String getMethodStringOption(Executable method, String name); - @SuppressWarnings("initialization") private final List> methodOptionGetters = Arrays.asList(this::getMethodBooleanOption, this::getMethodIntxOption, this::getMethodUintxOption, this::getMethodDoubleOption, diff --git a/test/micro/org/openjdk/bench/java/lang/StringEquals.java b/test/micro/org/openjdk/bench/java/lang/StringEquals.java index 99c554456c9..b0db6a7037e 100644 --- a/test/micro/org/openjdk/bench/java/lang/StringEquals.java +++ b/test/micro/org/openjdk/bench/java/lang/StringEquals.java @@ -38,10 +38,8 @@ public class StringEquals { public String test = new String("0123456789"); public String test2 = new String("tgntogjnrognagronagroangroarngorngaorng"); - @SuppressWarnings("initialization") public String test3 = new String(test); // equal to test, but not same public String test4 = new String("0123\u01FF"); - @SuppressWarnings("initialization") public String test5 = new String(test4); // equal to test4, but not same public String test6 = new String("0123456780"); public String test7 = new String("0123\u01FE"); diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/LoopOverPollutedBuffer.java b/test/micro/org/openjdk/bench/java/lang/foreign/LoopOverPollutedBuffer.java index dd3465f4a0d..c9060adc18b 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/LoopOverPollutedBuffer.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/LoopOverPollutedBuffer.java @@ -58,7 +58,6 @@ public class LoopOverPollutedBuffer { ByteBuffer dbb = ByteBuffer.allocateDirect(ALLOC_SIZE).order(ByteOrder.nativeOrder()); byte[] arr = new byte[ALLOC_SIZE]; - @SuppressWarnings("initialization") ByteBuffer hbb = ByteBuffer.wrap(arr).order(ByteOrder.nativeOrder()); FloatBuffer hfb = hbb.asFloatBuffer(); diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/StrLenTest.java b/test/micro/org/openjdk/bench/java/lang/foreign/StrLenTest.java index 890edc5ec37..b54d5377377 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/StrLenTest.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/StrLenTest.java @@ -155,7 +155,6 @@ static class RingAllocator implements SegmentAllocator { SegmentAllocator current; long rem; - @SuppressWarnings("initialization") public RingAllocator(Arena session, int size) { this.segment = session.allocate(size, 1); reset(); diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/TestAdaptVarHandles.java b/test/micro/org/openjdk/bench/java/lang/foreign/TestAdaptVarHandles.java index 7d79f667280..7ca70b31f49 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/TestAdaptVarHandles.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/TestAdaptVarHandles.java @@ -90,7 +90,6 @@ int intValue() { static final MethodHandle MH_BOX_INT = MethodHandles.filterReturnValue(MH_INT, INT_TO_INTBOX); int[] base = new int[ELEM_SIZE]; - @SuppressWarnings("initialization") MemorySegment segment = MemorySegment.ofArray(base); @Setup diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/pointers/PointerBench.java b/test/micro/org/openjdk/bench/java/lang/foreign/pointers/PointerBench.java index c52ae46f24a..1bc7c23755b 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/pointers/PointerBench.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/pointers/PointerBench.java @@ -52,11 +52,8 @@ public class PointerBench { final Arena arena = Arena.ofConfined(); static final int ELEM_SIZE = 1_000_000; - @SuppressWarnings("initialization") Pointer intPointer = Pointer.allocate(NativeType.C_INT, ELEM_SIZE, arena); - @SuppressWarnings("initialization") Pointer> intPointerPointer = Pointer.allocate(NativeType.C_INT_PTR, ELEM_SIZE, arena); - @SuppressWarnings("initialization") Pointer pointPointer = Pointer.allocate(Point.TYPE, ELEM_SIZE, arena); MemorySegment intSegment = intPointer.segment(); MemorySegment intPointerSegment = intPointerPointer.segment(); diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/points/support/BBPoint.java b/test/micro/org/openjdk/bench/java/lang/foreign/points/support/BBPoint.java index 027ced75170..7b112fad188 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/points/support/BBPoint.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/points/support/BBPoint.java @@ -33,7 +33,6 @@ public class BBPoint { private final ByteBuffer buff; - @SuppressWarnings("initialization") public BBPoint(int x, int y) { this.buff = ByteBuffer.allocateDirect(4 * 2).order(ByteOrder.nativeOrder()); setX(x); diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/points/support/PanamaPoint.java b/test/micro/org/openjdk/bench/java/lang/foreign/points/support/PanamaPoint.java index e61502c6364..de7c823a917 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/points/support/PanamaPoint.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/points/support/PanamaPoint.java @@ -60,7 +60,6 @@ public class PanamaPoint extends CLayouts implements AutoCloseable { Arena arena; private final MemorySegment segment; - @SuppressWarnings("initialization") public PanamaPoint(int x, int y) { this.arena = Arena.ofConfined(); this.segment = arena.allocate(LAYOUT); diff --git a/test/micro/org/openjdk/bench/java/lang/ref/CleanerChurn.java b/test/micro/org/openjdk/bench/java/lang/ref/CleanerChurn.java index df27f118a05..eab4c0f59d0 100644 --- a/test/micro/org/openjdk/bench/java/lang/ref/CleanerChurn.java +++ b/test/micro/org/openjdk/bench/java/lang/ref/CleanerChurn.java @@ -48,7 +48,6 @@ public Object test() { static class Target { private static final Cleaner CLEANER = Cleaner.create(); - @SuppressWarnings("initialization") public Target(boolean register) { if (register) { CLEANER.register(this, () -> {}); diff --git a/test/micro/org/openjdk/bench/java/lang/ref/CleanerGC.java b/test/micro/org/openjdk/bench/java/lang/ref/CleanerGC.java index 7c77e6b19fa..8d43f25c6c6 100644 --- a/test/micro/org/openjdk/bench/java/lang/ref/CleanerGC.java +++ b/test/micro/org/openjdk/bench/java/lang/ref/CleanerGC.java @@ -60,7 +60,6 @@ public void test() { static class Target { private static final Cleaner CLEANER = Cleaner.create(); - @SuppressWarnings("initialization") public Target() { CLEANER.register(this, () -> {}); } diff --git a/test/micro/org/openjdk/bench/java/nio/StringCharBufferBulkTransfer.java b/test/micro/org/openjdk/bench/java/nio/StringCharBufferBulkTransfer.java index ebf969c4dbe..246116e4d43 100644 --- a/test/micro/org/openjdk/bench/java/nio/StringCharBufferBulkTransfer.java +++ b/test/micro/org/openjdk/bench/java/nio/StringCharBufferBulkTransfer.java @@ -45,7 +45,6 @@ public class StringCharBufferBulkTransfer { private static final int LENGTH = 16384; char[] buf = new char[LENGTH]; - @SuppressWarnings("initialization") CharBuffer cb = CharBuffer.wrap(new String(buf)); char[] dst = new char[LENGTH]; CharBuffer cbw = CharBuffer.allocate(LENGTH); diff --git a/test/micro/org/openjdk/bench/java/util/concurrent/CopyOnWriteArrayListBenchmark.java b/test/micro/org/openjdk/bench/java/util/concurrent/CopyOnWriteArrayListBenchmark.java index 77dd45bce94..0ce091d1724 100644 --- a/test/micro/org/openjdk/bench/java/util/concurrent/CopyOnWriteArrayListBenchmark.java +++ b/test/micro/org/openjdk/bench/java/util/concurrent/CopyOnWriteArrayListBenchmark.java @@ -67,13 +67,11 @@ private static byte[] getSerializedBytes(CopyOnWriteArrayList list) throws IO private Object[] oneItemArray = new Object[] { "" }; private CopyOnWriteArrayList emptyInstance = new CopyOnWriteArrayList<>(); - @SuppressWarnings("initialization") private CopyOnWriteArrayList oneItemInstance = new CopyOnWriteArrayList<>(oneItemArray); private byte[] emptyInstanceBytes; private byte[] oneInstanceBytes; - @SuppressWarnings("initialization") public CopyOnWriteArrayListBenchmark() { try { emptyInstanceBytes = getSerializedBytes(emptyInstance); diff --git a/test/micro/org/openjdk/bench/java/util/logging/LoggingRuntimeMicros.java b/test/micro/org/openjdk/bench/java/util/logging/LoggingRuntimeMicros.java index f6a97691447..edd2b095dbe 100644 --- a/test/micro/org/openjdk/bench/java/util/logging/LoggingRuntimeMicros.java +++ b/test/micro/org/openjdk/bench/java/util/logging/LoggingRuntimeMicros.java @@ -53,7 +53,6 @@ public static class TestHandler extends java.util.logging.Handler { private final java.util.logging.Logger logger; private volatile LogRecord record; - @SuppressWarnings("initialization") public TestHandler() { // Each instance uses its own logger logger = java.util.logging.Logger.getLogger("StackWalkBench" + serialNum.incrementAndGet()); diff --git a/test/micro/org/openjdk/bench/java/util/stream/tasks/IntegerDuplicate/IntegerDuplicateProblem.java b/test/micro/org/openjdk/bench/java/util/stream/tasks/IntegerDuplicate/IntegerDuplicateProblem.java index a9670fb10a0..718a7ed36a9 100644 --- a/test/micro/org/openjdk/bench/java/util/stream/tasks/IntegerDuplicate/IntegerDuplicateProblem.java +++ b/test/micro/org/openjdk/bench/java/util/stream/tasks/IntegerDuplicate/IntegerDuplicateProblem.java @@ -30,7 +30,6 @@ public class IntegerDuplicateProblem { private final Integer[] data = new Integer[DATA_SIZE]; - @SuppressWarnings("initialization") public IntegerDuplicateProblem() { // use fixed seed to reduce run-to-run variance Random rand = new Random(0x30052012); diff --git a/test/micro/org/openjdk/bench/java/util/stream/tasks/IntegerMax/IntegerMaxProblem.java b/test/micro/org/openjdk/bench/java/util/stream/tasks/IntegerMax/IntegerMaxProblem.java index 1413ab5480e..d7ae317ce0c 100644 --- a/test/micro/org/openjdk/bench/java/util/stream/tasks/IntegerMax/IntegerMaxProblem.java +++ b/test/micro/org/openjdk/bench/java/util/stream/tasks/IntegerMax/IntegerMaxProblem.java @@ -30,7 +30,6 @@ public class IntegerMaxProblem { private final Integer[] data = new Integer[DATA_SIZE]; - @SuppressWarnings("initialization") public IntegerMaxProblem() { // use fixed seed to reduce run-to-run variance Random rand = new Random(0x30052012); diff --git a/test/micro/org/openjdk/bench/java/util/stream/tasks/IntegerSum/IntegerSumProblem.java b/test/micro/org/openjdk/bench/java/util/stream/tasks/IntegerSum/IntegerSumProblem.java index 9fafdca2a38..3eede68936d 100644 --- a/test/micro/org/openjdk/bench/java/util/stream/tasks/IntegerSum/IntegerSumProblem.java +++ b/test/micro/org/openjdk/bench/java/util/stream/tasks/IntegerSum/IntegerSumProblem.java @@ -30,7 +30,6 @@ public class IntegerSumProblem { private final Integer[] data = new Integer[DATA_SIZE]; - @SuppressWarnings("initialization") public IntegerSumProblem() { // use fixed seed to reduce run-to-run variance Random rand = new Random(0x30052012); diff --git a/test/micro/org/openjdk/bench/java/util/stream/tasks/PrimesSieve/PrimesSieveProblem.java b/test/micro/org/openjdk/bench/java/util/stream/tasks/PrimesSieve/PrimesSieveProblem.java index a34c1929434..8e489e6bbca 100644 --- a/test/micro/org/openjdk/bench/java/util/stream/tasks/PrimesSieve/PrimesSieveProblem.java +++ b/test/micro/org/openjdk/bench/java/util/stream/tasks/PrimesSieve/PrimesSieveProblem.java @@ -28,7 +28,6 @@ public class PrimesSieveProblem { private final Integer[] data = new Integer[DATA_SIZE]; - @SuppressWarnings("initialization") public PrimesSieveProblem() { for (int i = 0; i < data.length; i++) { data[i] = i; diff --git a/test/micro/org/openjdk/bench/javax/crypto/full/PolynomialP256Bench.java b/test/micro/org/openjdk/bench/javax/crypto/full/PolynomialP256Bench.java index def7d1f35b5..34a6bd761ff 100644 --- a/test/micro/org/openjdk/bench/javax/crypto/full/PolynomialP256Bench.java +++ b/test/micro/org/openjdk/bench/javax/crypto/full/PolynomialP256Bench.java @@ -53,9 +53,7 @@ public class PolynomialP256Bench { final IntegerPolynomialP256 residueField = IntegerPolynomialP256.ONE; final BigInteger refx = new BigInteger("6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296", 16); - @SuppressWarnings("initialization") final ImmutableIntegerModuloP x = residueField.getElement(refx); - @SuppressWarnings("initialization") final ImmutableIntegerModuloP X = montField.getElement(refx); final ImmutableIntegerModuloP one = montField.get1(); diff --git a/test/micro/org/openjdk/bench/jdk/classfile/Transforms.java b/test/micro/org/openjdk/bench/jdk/classfile/Transforms.java index f39e5b6d367..19c87442039 100644 --- a/test/micro/org/openjdk/bench/jdk/classfile/Transforms.java +++ b/test/micro/org/openjdk/bench/jdk/classfile/Transforms.java @@ -125,7 +125,6 @@ public enum NoOpTransform { cc = ClassFile.of(); } - @SuppressWarnings("initialization") NoOpTransform(boolean shared, ClassTransform classTransform, ClassFile.Option... options) { diff --git a/test/micro/org/openjdk/bench/valhalla/sandbox/corelibs/XArrayList.java b/test/micro/org/openjdk/bench/valhalla/sandbox/corelibs/XArrayList.java index 76273801d1f..3a1a6317417 100644 --- a/test/micro/org/openjdk/bench/valhalla/sandbox/corelibs/XArrayList.java +++ b/test/micro/org/openjdk/bench/valhalla/sandbox/corelibs/XArrayList.java @@ -1239,7 +1239,6 @@ private static class SubList extends AbstractList implements RandomAccess /** * Constructs a sublist of an arbitrary XArrayList. */ - @SuppressWarnings("initialization") public SubList(XArrayList root, int fromIndex, int toIndex) { this.root = root; this.parent = null; @@ -1251,7 +1250,6 @@ public SubList(XArrayList root, int fromIndex, int toIndex) { /** * Constructs a sublist of another SubList. */ - @SuppressWarnings("initialization") private SubList(SubList parent, int fromIndex, int toIndex) { this.root = parent.root; this.parent = parent; diff --git a/test/micro/org/openjdk/bench/valhalla/sandbox/corelibs/mapprotos/HashMap.java b/test/micro/org/openjdk/bench/valhalla/sandbox/corelibs/mapprotos/HashMap.java index 20aa22ceb55..e7feade9c9e 100644 --- a/test/micro/org/openjdk/bench/valhalla/sandbox/corelibs/mapprotos/HashMap.java +++ b/test/micro/org/openjdk/bench/valhalla/sandbox/corelibs/mapprotos/HashMap.java @@ -467,7 +467,6 @@ public HashMap() { * @param m the map whose mappings are to be placed in this map * @throws NullPointerException if the specified map is null */ - @SuppressWarnings("initialization") public HashMap(Map m) { this.loadFactor = DEFAULT_LOAD_FACTOR; putMapEntries(m, false); @@ -1568,7 +1567,6 @@ abstract class HashIterator { int expectedModCount; // for fast-fail int count; - @SuppressWarnings("initialization") HashIterator() { expectedModCount = modCount; current = -1; diff --git a/test/micro/org/openjdk/bench/valhalla/sandbox/corelibs/mapprotos/XHashMap.java b/test/micro/org/openjdk/bench/valhalla/sandbox/corelibs/mapprotos/XHashMap.java index 71f52725112..75657523c5d 100644 --- a/test/micro/org/openjdk/bench/valhalla/sandbox/corelibs/mapprotos/XHashMap.java +++ b/test/micro/org/openjdk/bench/valhalla/sandbox/corelibs/mapprotos/XHashMap.java @@ -605,7 +605,6 @@ public XHashMap() { * @param m the map whose mappings are to be placed in this map * @throws NullPointerException if the specified map is null */ - @SuppressWarnings("initialization") public XHashMap(Map m) { this.loadFactor = DEFAULT_LOAD_FACTOR; putMapEntries(m, false); diff --git a/test/micro/org/openjdk/bench/vm/compiler/CodeCacheStress.java b/test/micro/org/openjdk/bench/vm/compiler/CodeCacheStress.java index 61a7c19d5db..958d986e38e 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/CodeCacheStress.java +++ b/test/micro/org/openjdk/bench/vm/compiler/CodeCacheStress.java @@ -321,7 +321,6 @@ protected Class findClass(String name) throws ClassNotFoundException { } } - @SuppressWarnings("initialization") CodeCacheStress.BenchLoader loader1 = new CodeCacheStress.BenchLoader(); @Setup(Level.Trial) diff --git a/test/micro/org/openjdk/bench/vm/compiler/InterfaceCalls.java b/test/micro/org/openjdk/bench/vm/compiler/InterfaceCalls.java index 18aea06790b..d2108fb788a 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/InterfaceCalls.java +++ b/test/micro/org/openjdk/bench/vm/compiler/InterfaceCalls.java @@ -188,11 +188,8 @@ public int getIntFirst() { } final int asLength = 5; - @SuppressWarnings("initialization") public FirstInterface[] as = new FirstInterface[asLength]; - @SuppressWarnings("initialization") public FirstInterface[] noninlined = new FirstInterface[asLength]; - @SuppressWarnings("initialization") public FirstInterfaceExtExt[] noninlinedextext = new FirstInterfaceExtExt[asLength]; diff --git a/test/micro/org/openjdk/bench/vm/compiler/PostAllocationStores.java b/test/micro/org/openjdk/bench/vm/compiler/PostAllocationStores.java index f22d2accb1b..16f11230ce6 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/PostAllocationStores.java +++ b/test/micro/org/openjdk/bench/vm/compiler/PostAllocationStores.java @@ -95,7 +95,6 @@ static class TestWithNonNullStores { int intField2; long longField1; - @SuppressWarnings("initialization") public TestWithNonNullStores() { objectField1 = this; objectField2 = this; diff --git a/test/micro/org/openjdk/bench/vm/compiler/RBTreeSearch.java b/test/micro/org/openjdk/bench/vm/compiler/RBTreeSearch.java index 9c2ce5386d7..9b7430ccc13 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/RBTreeSearch.java +++ b/test/micro/org/openjdk/bench/vm/compiler/RBTreeSearch.java @@ -388,7 +388,6 @@ private class KeyIteratorImpl implements Iterator { next = firstEntry; } - @SuppressWarnings("initialization") KeyIteratorImpl(final int k) { if ((next = locateKey(k)) != null) { if (next.key <= k) { diff --git a/test/micro/org/openjdk/bench/vm/compiler/WriteBarrier.java b/test/micro/org/openjdk/bench/vm/compiler/WriteBarrier.java index a51546bd745..3306974257c 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/WriteBarrier.java +++ b/test/micro/org/openjdk/bench/vm/compiler/WriteBarrier.java @@ -78,7 +78,6 @@ public abstract class WriteBarrier { // For field references public class Referencer { Referencer next = null; - @SuppressWarnings("initialization") Referencer() { this.next = null; } diff --git a/test/micro/org/openjdk/bench/vm/compiler/x86/RedundantLeaPeephole.java b/test/micro/org/openjdk/bench/vm/compiler/x86/RedundantLeaPeephole.java index 191b837d73c..00a33a47617 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/x86/RedundantLeaPeephole.java +++ b/test/micro/org/openjdk/bench/vm/compiler/x86/RedundantLeaPeephole.java @@ -71,7 +71,6 @@ public boolean doEquals(String other) { private StoreNHelper[] arrH1 = new StoreNHelper[SIZE]; private StoreNHelper[] arrH2 = new StoreNHelper[SIZE]; - @SuppressWarnings("initialization") private StringEqualsHelper strEqHelper = new StringEqualsHelper("foo"); @Benchmark diff --git a/test/micro/org/openjdk/bench/vm/lambda/invoke/Function0.java b/test/micro/org/openjdk/bench/vm/lambda/invoke/Function0.java index 49ee80ac048..0ff26bf9d65 100644 --- a/test/micro/org/openjdk/bench/vm/lambda/invoke/Function0.java +++ b/test/micro/org/openjdk/bench/vm/lambda/invoke/Function0.java @@ -125,19 +125,15 @@ public Integer lambdaL() { } public final FunctionI mref_I2I = Function0::fooStaticI; - @SuppressWarnings("initialization") public final FunctionI mref_I2I_bound = this::fooInstanceI; public final FunctionL mref_I2L = Function0::fooStaticI; - @SuppressWarnings("initialization") public final FunctionL mref_I2L_bound = this::fooInstanceI; public final FunctionI mref_L2I = Function0::fooStaticL; - @SuppressWarnings("initialization") public final FunctionI mref_L2I_bound = this::fooInstanceL; public final FunctionL mref_L2L = Function0::fooStaticL; - @SuppressWarnings("initialization") public final FunctionL mref_L2L_bound = this::fooInstanceL; // mref naming diff --git a/test/micro/org/openjdk/bench/vm/lambda/invoke/Function1.java b/test/micro/org/openjdk/bench/vm/lambda/invoke/Function1.java index 2ed324fc49b..5d96e58623c 100644 --- a/test/micro/org/openjdk/bench/vm/lambda/invoke/Function1.java +++ b/test/micro/org/openjdk/bench/vm/lambda/invoke/Function1.java @@ -199,33 +199,24 @@ public void lambdaLL(Blackhole bh) { public final FunctionII mref_II2II = Function1::fooStaticII; - @SuppressWarnings("initialization") public final FunctionII mref_II2II_bound = this::fooInstanceII; public final FunctionIL mref_II2IL = Function1::fooStaticII; - @SuppressWarnings("initialization") public final FunctionIL mref_II2IL_bound = this::fooInstanceII; public final FunctionLL mref_II2LL = Function1::fooStaticII; - @SuppressWarnings("initialization") public final FunctionLL mref_II2LL_bound = this::fooInstanceII; public final FunctionII mref_IL2II = Function1::fooStaticIL; - @SuppressWarnings("initialization") public final FunctionII mref_IL2II_bound = this::fooInstanceIL; public final FunctionIL mref_IL2IL = Function1::fooStaticIL; - @SuppressWarnings("initialization") public final FunctionIL mref_IL2IL_bound = this::fooInstanceIL; public final FunctionLL mref_IL2LL = Function1::fooStaticIL; - @SuppressWarnings("initialization") public final FunctionLL mref_IL2LL_bound = this::fooInstanceIL; public final FunctionII mref_LL2II = Function1::fooStaticLL; - @SuppressWarnings("initialization") public final FunctionII mref_LL2II_bound = this::fooInstanceLL; public final FunctionIL mref_LL2IL = Function1::fooStaticLL; - @SuppressWarnings("initialization") public final FunctionIL mref_LL2IL_bound = this::fooInstanceLL; public final FunctionLL mref_LL2LL = Function1::fooStaticLL; - @SuppressWarnings("initialization") public final FunctionLL mref_LL2LL_bound = this::fooInstanceLL; From 1c548ee5fe47c5a3cdc6ed82f6809dba68e953e0 Mon Sep 17 00:00:00 2001 From: Maurizio Cimadamore Date: Thu, 4 Jun 2026 15:26:10 +0100 Subject: [PATCH 2/2] Address review comments --- src/jdk.compiler/share/classes/module-info.java | 2 -- src/jdk.compiler/share/man/javac.md | 3 --- 2 files changed, 5 deletions(-) diff --git a/src/jdk.compiler/share/classes/module-info.java b/src/jdk.compiler/share/classes/module-info.java index 13a1d358034..587d871ccb9 100644 --- a/src/jdk.compiler/share/classes/module-info.java +++ b/src/jdk.compiler/share/classes/module-info.java @@ -165,8 +165,6 @@ * the next * {@code finally} {@code finally} clauses that do not terminate normally * {@code identity} use of a value-based class where an identity class is expected - * {@code initialization} code in identity classes that wouldn't be allowed in early - * construction due to a {@code this} dependency. * {@code lossy-conversions} possible lossy conversions in compound assignments or bit shifts * (more than \u00B131 bits for integers or \u00B163 bits for longs) * {@code missing-explicit-ctor} missing explicit constructors in public and protected classes diff --git a/src/jdk.compiler/share/man/javac.md b/src/jdk.compiler/share/man/javac.md index 6a3d080d7e3..c749ca4da10 100644 --- a/src/jdk.compiler/share/man/javac.md +++ b/src/jdk.compiler/share/man/javac.md @@ -610,9 +610,6 @@ file system locations may be directories, JAR files or JMOD files. - `incubating`: Warns about the use of incubating modules. - - `initialization`: Warns about code in identity classes that wouldn't be - allowed in early construction due to a `this` dependency. - - `lossy-conversions`: Warns about possible lossy conversions in compound assignment and bit shift operations.