From f868964e25abb20c0dc61cbe81cf54c9077c2e88 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Fri, 22 Jun 2018 12:57:04 +0200 Subject: [PATCH] Fix most unchecked/deprecation javac warnings in compiler modules --- .../kotlin/codegen/AnnotationCodegen.java | 2 +- .../kotlin/codegen/ExpressionCodegen.java | 2 +- .../kotlin/codegen/MemberCodegen.java | 2 +- .../kotlin/codegen/SamCodegenUtil.java | 3 +- .../codegen/context/CodegenContext.java | 2 +- .../java/structure/impl/JavaFieldImpl.java | 4 +-- .../kotlin/checkers/CheckerTestUtil.java | 2 +- .../impl/LocalVariableDescriptor.java | 1 + .../kotlin/diagnostics/DiagnosticFactory.java | 3 +- .../kotlin/resolve/BindingContextUtils.java | 1 + .../kotlin/resolve/BodyResolver.java | 2 +- .../resolve/ObservableBindingTrace.java | 3 +- .../kotlin/resolve/calls/CallResolver.java | 1 + .../context/BasicCallResolutionContext.java | 2 +- .../calls/context/ResolutionContext.java | 7 ++-- .../resolve/calls/model/ResolvedCallImpl.java | 1 + .../OverloadResolutionResultsUtil.java | 1 + .../results/ResolutionResultsHandler.java | 3 +- .../lazy/descriptors/LazyClassDescriptor.java | 3 +- .../expressions/ExpressionTypingContext.java | 4 +-- .../kotlin/util/slicedMap/SlicedMapImpl.java | 2 +- .../kotlin/util/slicedMap/Slices.java | 3 +- .../util/slicedMap/TrackingSlicedMap.java | 5 ++- .../InterceptionInstrumenter.java | 2 +- .../jetbrains/kotlin/psi/KtContainerNode.java | 2 +- .../jetbrains/kotlin/psi/KtElementImpl.java | 2 ++ .../kotlin/psi/KtElementImplStub.java | 2 ++ .../kotlin/psi/KtLambdaExpression.java | 1 + .../org/jetbrains/kotlin/psi/KtPsiUtil.java | 7 ++-- .../kotlin/psi/KtStubbedPsiUtil.java | 2 +- .../KtAnnotationEntryElementType.java | 8 ++--- .../stubs/elements/KtClassElementType.java | 16 ++++++--- .../stubs/elements/KtFunctionElementType.java | 15 +++++--- .../KtImportDirectiveElementType.java | 5 +-- .../stubs/elements/KtObjectElementType.java | 11 ++++-- .../elements/KtParameterElementType.java | 11 +++--- .../stubs/elements/KtPropertyElementType.java | 10 +++--- .../psi/stubs/elements/KtStubElementType.java | 3 +- .../elements/KtTypeParameterElementType.java | 9 +++-- .../stubs/elements/KtUserTypeElementType.java | 11 +++--- .../impl/KotlinImportDirectiveStubImpl.kt | 3 +- ...AbstractTopLevelMembersInvocationTest.java | 22 ++++-------- .../kotlin/codegen/CodegenTestCase.java | 4 +-- .../testFramework/KtPlatformLiteFixture.java | 2 +- .../test/testFramework/KtUsefulTestCase.java | 9 +++-- .../kotlin/codegen/AnnotationGenTest.java | 35 +++++++++++-------- .../descriptors/JavaPropertyDescriptor.java | 2 +- .../impl/FunctionDescriptorImpl.java | 4 +-- .../impl/PropertyDescriptorImpl.java | 2 +- .../impl/SimpleFunctionDescriptorImpl.java | 2 +- .../src/kotlin/reflect/jvm/internal/Util.java | 1 + .../kotlin/js/backend/ast/AbstractNode.java | 2 +- .../kotlin/js/backend/ast/JsFor.java | 1 + .../js/backend/ast/JsVisitorWithContext.java | 2 +- .../org/jetbrains/kotlin/js/util/AstUtil.java | 5 +-- .../jetbrains/kotlin/js/inline/JsInliner.java | 22 +++++++----- .../com/google/gwt/dev/js/rhino/Context.java | 1 + .../js/sourceMap/SourceMap3Builder.java | 1 + .../js/translate/utils/BindingUtils.java | 7 ++-- .../internal/MutablePropertyReference1.java | 1 + .../internal/MutablePropertyReference2.java | 1 + .../jvm/internal/PropertyReference1.java | 1 + .../jvm/internal/PropertyReference2.java | 1 + .../kotlin/jvm/internal/SpreadBuilder.java | 7 ++-- 64 files changed, 182 insertions(+), 132 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/AnnotationCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/AnnotationCodegen.java index 39569a249cb..54a0d2735d8 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/AnnotationCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/AnnotationCodegen.java @@ -361,7 +361,7 @@ public abstract class AnnotationCodegen { @NotNull ConstantValue value, @NotNull AnnotationVisitor annotationVisitor ) { - AnnotationArgumentVisitor argumentVisitor = new AnnotationArgumentVisitor() { + AnnotationArgumentVisitor argumentVisitor = new AnnotationArgumentVisitor() { @Override public Void visitLongValue(@NotNull LongValue value, Void data) { return visitSimpleValue(value); diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java index 06a95752a93..2729b0b6426 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java @@ -2069,7 +2069,7 @@ public class ExpressionCodegen extends KtVisitor impleme CallableMethod callableGetter = null; CallableMethod callableSetter = null; - CodegenContext backingFieldContext = getBackingFieldContext(fieldAccessorKind, containingDeclaration); + CodegenContext backingFieldContext = getBackingFieldContext(fieldAccessorKind, containingDeclaration); boolean isPrivateProperty = fieldAccessorKind != AccessorKind.NORMAL && (AsmUtil.getVisibilityForBackingField(propertyDescriptor, isDelegatedProperty) & ACC_PRIVATE) != 0; diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/MemberCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/MemberCodegen.java index 722a36211d2..d1bf8a14231 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/MemberCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/MemberCodegen.java @@ -73,7 +73,7 @@ public abstract class MemberCodegen context; public final ClassBuilder v; public final FunctionCodegen functionCodegen; diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/SamCodegenUtil.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/SamCodegenUtil.java index 80d3fd5e146..b323d5a79f9 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/SamCodegenUtil.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/SamCodegenUtil.java @@ -25,15 +25,16 @@ import org.jetbrains.kotlin.synthetic.SamAdapterExtensionFunctionDescriptor; public class SamCodegenUtil { @Nullable + @SuppressWarnings("unchecked") public static FunctionDescriptor getOriginalIfSamAdapter(@NotNull FunctionDescriptor fun) { if (fun instanceof SamAdapterDescriptor || fun instanceof SamAdapterExtensionFunctionDescriptor) { - //noinspection unchecked return ((SyntheticMemberDescriptor) fun).getBaseDescriptorForSynthetic(); } return null; } + @SuppressWarnings("unchecked") public static T resolveSamAdapter(@NotNull T descriptor) { FunctionDescriptor original = getOriginalIfSamAdapter(descriptor); return original != null ? (T) original : descriptor; diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/context/CodegenContext.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/context/CodegenContext.java index d7f1ed2cfce..e9cea67759e 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/context/CodegenContext.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/context/CodegenContext.java @@ -413,7 +413,7 @@ public abstract class CodegenContext { return getAccessor(propertyDescriptor, AccessorKind.NORMAL, null, superCallTarget, getterAccessorRequired, setterAccessorRequired); } - + @SuppressWarnings("unchecked") public D getAccessorForJvmDefaultCompatibility(@NotNull D descriptor) { if (descriptor instanceof PropertyAccessorDescriptor) { PropertyDescriptor propertyAccessor = getAccessor(((PropertyAccessorDescriptor) descriptor).getCorrespondingProperty(), diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/structure/impl/JavaFieldImpl.java b/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/structure/impl/JavaFieldImpl.java index c0238d6b6fe..e5963cc10a1 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/structure/impl/JavaFieldImpl.java +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/structure/impl/JavaFieldImpl.java @@ -18,7 +18,7 @@ package org.jetbrains.kotlin.load.java.structure.impl; import com.intellij.psi.PsiEnumConstant; import com.intellij.psi.PsiField; -import com.intellij.psi.impl.JavaConstantExpressionEvaluator; +import com.intellij.psi.PsiVariable; import com.intellij.psi.util.PsiUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -51,6 +51,6 @@ public class JavaFieldImpl extends JavaMemberImpl implements JavaField public boolean getHasConstantNotNullInitializer() { // PsiUtil.isCompileTimeConstant returns false for null-initialized fields, // see com.intellij.psi.util.IsConstantExpressionVisitor.visitLiteralExpression() - return PsiUtil.isCompileTimeConstant(getPsi()); + return PsiUtil.isCompileTimeConstant((PsiVariable) getPsi()); } } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/checkers/CheckerTestUtil.java b/compiler/frontend/src/org/jetbrains/kotlin/checkers/CheckerTestUtil.java index f47041d3df6..552c89cbaa1 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/checkers/CheckerTestUtil.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/checkers/CheckerTestUtil.java @@ -870,13 +870,13 @@ public class CheckerTestUtil { } @NotNull + @SuppressWarnings("unchecked") public static TextDiagnostic asTextDiagnostic(@NotNull ActualDiagnostic actualDiagnostic) { Diagnostic diagnostic = actualDiagnostic.diagnostic; //noinspection TestOnlyProblems DiagnosticRenderer renderer = DefaultErrorMessages.getRendererForDiagnostic(diagnostic); String diagnosticName = actualDiagnostic.getName(); if (renderer instanceof AbstractDiagnosticWithParametersRenderer) { - //noinspection unchecked Object[] renderParameters = ((AbstractDiagnosticWithParametersRenderer) renderer).renderParameters(diagnostic); List parameters = ContainerUtil.map(renderParameters, Object::toString); return new TextDiagnostic(diagnosticName, actualDiagnostic.platform, parameters, actualDiagnostic.inferenceCompatibility); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/descriptors/impl/LocalVariableDescriptor.java b/compiler/frontend/src/org/jetbrains/kotlin/descriptors/impl/LocalVariableDescriptor.java index 0d7dd9e9549..ad254f40667 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/descriptors/impl/LocalVariableDescriptor.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/descriptors/impl/LocalVariableDescriptor.java @@ -111,6 +111,7 @@ public class LocalVariableDescriptor extends VariableDescriptorWithInitializerIm // This override is not deprecated because local variables can only come from sources, // and we can be sure that they won't be recompiled independently @Override + @SuppressWarnings("deprecation") public boolean isDelegated() { return isDelegated; } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/DiagnosticFactory.java b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/DiagnosticFactory.java index 63e1eca9126..710459cdaa5 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/DiagnosticFactory.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/DiagnosticFactory.java @@ -50,16 +50,17 @@ public abstract class DiagnosticFactory { } @NotNull + @SuppressWarnings("unchecked") public D cast(@NotNull Diagnostic diagnostic) { if (diagnostic.getFactory() != this) { throw new IllegalArgumentException("Factory mismatch: expected " + this + " but was " + diagnostic.getFactory()); } - //noinspection unchecked return (D) diagnostic; } @NotNull + @SafeVarargs public static D cast(@NotNull Diagnostic diagnostic, @NotNull DiagnosticFactory... factories) { return cast(diagnostic, Arrays.asList(factories)); } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/BindingContextUtils.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/BindingContextUtils.java index 43416da6256..47e4a7eca1e 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/BindingContextUtils.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/BindingContextUtils.java @@ -229,6 +229,7 @@ public class BindingContextUtils { return bindingContext.get(CONSTRUCTOR_RESOLVED_DELEGATION_CALL, constructorDescriptor); } + @SuppressWarnings("unchecked") static void addOwnDataTo( @NotNull BindingTrace trace, @Nullable TraceEntryFilter filter, boolean commitDiagnostics, @NotNull MutableSlicedMap map, MutableDiagnosticsWithSuppression diagnostics diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java index ef8e110a91b..8a232895900 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java @@ -515,12 +515,12 @@ public class BodyResolver { return parentEnumOrSealed; } + @SuppressWarnings("unchecked") private static void recordConstructorDelegationCall( @NotNull BindingTrace trace, @NotNull ConstructorDescriptor constructor, @NotNull ResolvedCall call ) { - //noinspection unchecked trace.record(CONSTRUCTOR_RESOLVED_DELEGATION_CALL, constructor, (ResolvedCall) call); } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/ObservableBindingTrace.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/ObservableBindingTrace.java index 27ecd8a7359..d0c449327a6 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/ObservableBindingTrace.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/ObservableBindingTrace.java @@ -52,9 +52,10 @@ public class ObservableBindingTrace implements BindingTrace { } @Override + @SuppressWarnings("unchecked") public void record(WritableSlice slice, K key, V value) { originalTrace.record(slice, key, value); - RecordHandler recordHandler = handlers.get(slice); + RecordHandler recordHandler = (RecordHandler) handlers.get(slice); if (recordHandler != null) { recordHandler.handleRecord(slice, key, value); } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/CallResolver.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/CallResolver.java index 9ca4569bfa4..0cec2b494a2 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/CallResolver.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/CallResolver.java @@ -303,6 +303,7 @@ public class CallResolver { } @NotNull + @SuppressWarnings("unchecked") public OverloadResolutionResults resolveFunctionCall(@NotNull BasicCallResolutionContext context) { ProgressIndicatorAndCompilationCanceledStatus.checkCanceled(); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/BasicCallResolutionContext.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/BasicCallResolutionContext.java index 6dd26e44c9f..60e235f8171 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/BasicCallResolutionContext.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/BasicCallResolutionContext.java @@ -89,7 +89,7 @@ public class BasicCallResolutionContext extends CallResolutionContext context, @NotNull Call call, @NotNull CheckArgumentTypesMode checkArguments, @Nullable MutableDataFlowInfoForArguments dataFlowInfoForArguments ) { return new BasicCallResolutionContext( diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/ResolutionContext.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/ResolutionContext.java index 22a3e73aeaf..3dc73bc7741 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/ResolutionContext.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/ResolutionContext.java @@ -124,8 +124,8 @@ public abstract class ResolutionContext T getContextParentOfType(@NotNull KtExpression expression, @NotNull Class... classes) { + @SafeVarargs + @SuppressWarnings("unchecked") + public final T getContextParentOfType(@NotNull KtExpression expression, @NotNull Class... classes) { KtExpression context = expressionContextProvider.invoke(expression); PsiElement current = context != null ? context : expression.getParent(); while (current != null) { for (Class klass : classes) { if (klass.isInstance(current)) { - //noinspection unchecked return (T) current; } } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/model/ResolvedCallImpl.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/model/ResolvedCallImpl.java index 08e8c3c1e66..3be34b7510e 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/model/ResolvedCallImpl.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/model/ResolvedCallImpl.java @@ -195,6 +195,7 @@ public class ResolvedCallImpl implements MutableRe } @Override + @SuppressWarnings("unchecked") public void setResultingSubstitutor(@NotNull TypeSubstitutor substitutor) { resultingDescriptor = (D) candidateDescriptor.substitute(substitutor); //noinspection ConstantConditions diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/results/OverloadResolutionResultsUtil.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/results/OverloadResolutionResultsUtil.java index 2972567dd25..f871275d376 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/results/OverloadResolutionResultsUtil.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/results/OverloadResolutionResultsUtil.java @@ -32,6 +32,7 @@ import java.util.Collection; public class OverloadResolutionResultsUtil { @NotNull + @SuppressWarnings("unchecked") public static OverloadResolutionResults ambiguity(OverloadResolutionResults results1, OverloadResolutionResults results2) { Collection> resultingCalls = Lists.newArrayList(); resultingCalls.addAll((Collection>) results1.getResultingCalls()); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/results/ResolutionResultsHandler.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/results/ResolutionResultsHandler.java index fe640dc9709..7bedeb1a78a 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/results/ResolutionResultsHandler.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/results/ResolutionResultsHandler.java @@ -94,7 +94,7 @@ public class ResolutionResultsHandler { @NotNull private OverloadResolutionResultsImpl computeSuccessfulResult( - @NotNull CallResolutionContext context, + @NotNull CallResolutionContext context, @NotNull TracingStrategy tracing, @NotNull Set> successfulCandidates, @NotNull Set> incompleteCandidates, @@ -192,6 +192,7 @@ public class ResolutionResultsHandler { } @NotNull + @SuppressWarnings("unchecked") private OverloadResolutionResultsImpl chooseAndReportMaximallySpecific( @NotNull Set> candidates, boolean discriminateGenerics, diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassDescriptor.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassDescriptor.java index 1aed706d1ed..efa35ce21d9 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassDescriptor.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassDescriptor.java @@ -13,7 +13,6 @@ import kotlin.jvm.functions.Function1; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.kotlin.builtins.KotlinBuiltIns; -import org.jetbrains.kotlin.config.LanguageFeature; import org.jetbrains.kotlin.descriptors.*; import org.jetbrains.kotlin.descriptors.annotations.Annotations; import org.jetbrains.kotlin.descriptors.impl.ClassDescriptorBase; @@ -352,8 +351,8 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes @NotNull @Override + @SuppressWarnings("unchecked") public Collection getDeclaredCallableMembers() { - //noinspection unchecked return (Collection) CollectionsKt.filter( DescriptorUtils.getAllDescriptors(unsubstitutedMemberScope), descriptor -> descriptor instanceof CallableMemberDescriptor diff --git a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingContext.java b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingContext.java index 09eac58ca1a..1131d4d3bef 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingContext.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingContext.java @@ -80,7 +80,7 @@ public class ExpressionTypingContext extends ResolutionContext context) { return new ExpressionTypingContext( context.trace, context.scope, context.dataFlowInfo, context.expectedType, context.contextDependency, context.resolutionResultsCache, @@ -91,7 +91,7 @@ public class ExpressionTypingContext extends ResolutionContext context, boolean isDebuggerContext) { return new ExpressionTypingContext( context.trace, context.scope, context.dataFlowInfo, context.expectedType, context.contextDependency, context.resolutionResultsCache, diff --git a/compiler/frontend/src/org/jetbrains/kotlin/util/slicedMap/SlicedMapImpl.java b/compiler/frontend/src/org/jetbrains/kotlin/util/slicedMap/SlicedMapImpl.java index 88b77db744c..23ae6cd50ba 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/util/slicedMap/SlicedMapImpl.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/util/slicedMap/SlicedMapImpl.java @@ -120,6 +120,7 @@ public class SlicedMapImpl implements MutableSlicedMap { @NotNull @Override + @SuppressWarnings("unchecked") public ImmutableMap getSliceContents(@NotNull ReadOnlySlice slice) { if (map == null) return ImmutableMap.of(); @@ -129,7 +130,6 @@ public class SlicedMapImpl implements MutableSlicedMap { V value = holder.get(slice.getKey()); if (value != null) { - //noinspection unchecked builder.put((K) key, value); } }); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/util/slicedMap/Slices.java b/compiler/frontend/src/org/jetbrains/kotlin/util/slicedMap/Slices.java index 3b70747a8e6..494434aef08 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/util/slicedMap/Slices.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/util/slicedMap/Slices.java @@ -112,7 +112,8 @@ public class Slices { this.rewritePolicy = rewritePolicy; } - public SliceBuilder setFurtherLookupSlices(ReadOnlySlice... furtherLookupSlices) { + @SafeVarargs + public final SliceBuilder setFurtherLookupSlices(ReadOnlySlice... furtherLookupSlices) { this.furtherLookupSlices = Arrays.asList(furtherLookupSlices); return this; } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/util/slicedMap/TrackingSlicedMap.java b/compiler/frontend/src/org/jetbrains/kotlin/util/slicedMap/TrackingSlicedMap.java index 3e810bab495..058803bbe7c 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/util/slicedMap/TrackingSlicedMap.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/util/slicedMap/TrackingSlicedMap.java @@ -33,10 +33,9 @@ public class TrackingSlicedMap extends SlicedMapImpl { this.trackWithStackTraces = trackWithStackTraces; } + @SuppressWarnings("unchecked") private SliceWithStackTrace wrapSlice(ReadOnlySlice slice) { - SliceWithStackTrace translated = sliceTranslationMap.computeIfAbsent(slice, k -> new SliceWithStackTrace<>(slice)); - //noinspection unchecked - return (SliceWithStackTrace) translated; + return (SliceWithStackTrace) sliceTranslationMap.computeIfAbsent(slice, k -> new SliceWithStackTrace<>(slice)); } @Override diff --git a/compiler/preloader/instrumentation/src/org/jetbrains/kotlin/preloading/instrumentation/InterceptionInstrumenter.java b/compiler/preloader/instrumentation/src/org/jetbrains/kotlin/preloading/instrumentation/InterceptionInstrumenter.java index b00877dd34b..3efadfe7c0e 100644 --- a/compiler/preloader/instrumentation/src/org/jetbrains/kotlin/preloading/instrumentation/InterceptionInstrumenter.java +++ b/compiler/preloader/instrumentation/src/org/jetbrains/kotlin/preloading/instrumentation/InterceptionInstrumenter.java @@ -514,7 +514,7 @@ public class InterceptionInstrumenter { } } - ia.invokevirtual(methodData.getDeclaringClass(), methodData.getName(), methodData.getDesc()); + ia.invokevirtual(methodData.getDeclaringClass(), methodData.getName(), methodData.getDesc(), false); Type type = asmMethod.getReturnType(); if (type.getSort() != Type.VOID) { if (type.getSize() == 1) { diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/KtContainerNode.java b/compiler/psi/src/org/jetbrains/kotlin/psi/KtContainerNode.java index 0f1aa81cb29..dcd3c4029e4 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/KtContainerNode.java +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/KtContainerNode.java @@ -32,7 +32,7 @@ public class KtContainerNode extends KtElementImpl { } @Override // for visibility - protected PsiElement findChildByType(IElementType type) { + protected T findChildByType(IElementType type) { return super.findChildByType(type); } } diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/KtElementImpl.java b/compiler/psi/src/org/jetbrains/kotlin/psi/KtElementImpl.java index b42a01928f5..fca63562e34 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/KtElementImpl.java +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/KtElementImpl.java @@ -43,6 +43,7 @@ public class KtElementImpl extends ASTWrapperPsiElement implements KtElement { } @Override + @SuppressWarnings("unchecked") public final void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof KtVisitor) { accept((KtVisitor) visitor, null); @@ -81,6 +82,7 @@ public class KtElementImpl extends ASTWrapperPsiElement implements KtElement { } @Override + @SuppressWarnings("deprecation") public PsiReference getReference() { PsiReference[] references = getReferences(); if (references.length == 1) return references[0]; diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/KtElementImplStub.java b/compiler/psi/src/org/jetbrains/kotlin/psi/KtElementImplStub.java index 5d239beb837..9c108ce147c 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/KtElementImplStub.java +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/KtElementImplStub.java @@ -54,6 +54,7 @@ public class KtElementImplStub> extends StubBasedPsiEle } @Override + @SuppressWarnings("unchecked") public final void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof KtVisitor) { accept((KtVisitor) visitor, null); @@ -98,6 +99,7 @@ public class KtElementImplStub> extends StubBasedPsiEle } @Override + @SuppressWarnings("deprecation") public PsiReference getReference() { PsiReference[] references = getReferences(); if (references.length == 1) return references[0]; diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/KtLambdaExpression.java b/compiler/psi/src/org/jetbrains/kotlin/psi/KtLambdaExpression.java index a3434080e0d..029943a4ac8 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/KtLambdaExpression.java +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/KtLambdaExpression.java @@ -91,6 +91,7 @@ public class KtLambdaExpression extends LazyParseablePsiElement implements KtExp } @Override + @SuppressWarnings("unchecked") public final void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof KtVisitor) { accept((KtVisitor) visitor, null); diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/KtPsiUtil.java b/compiler/psi/src/org/jetbrains/kotlin/psi/KtPsiUtil.java index 3be8f443e1b..8905759cde4 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/KtPsiUtil.java +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/KtPsiUtil.java @@ -266,10 +266,12 @@ public class KtPsiUtil { } @Nullable + @SafeVarargs @Contract("null, _ -> null") public static PsiElement getTopmostParentOfTypes( @Nullable PsiElement element, - @NotNull Class... parentTypes) { + @NotNull Class... parentTypes + ) { if (element instanceof PsiFile) return null; PsiElement answer = PsiTreeUtil.getParentOfType(element, parentTypes); @@ -641,12 +643,13 @@ public class KtPsiUtil { return parent; } + @SafeVarargs + @SuppressWarnings("unchecked") public static T getLastChildByType(@NotNull PsiElement root, @NotNull Class... elementTypes) { PsiElement[] children = root.getChildren(); for (int i = children.length - 1; i >= 0; i--) { if (PsiTreeUtil.instanceOf(children[i], elementTypes)) { - //noinspection unchecked return (T) children[i]; } } diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/KtStubbedPsiUtil.java b/compiler/psi/src/org/jetbrains/kotlin/psi/KtStubbedPsiUtil.java index 97962d15a7f..8d83e7970d6 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/KtStubbedPsiUtil.java +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/KtStubbedPsiUtil.java @@ -37,13 +37,13 @@ public final class KtStubbedPsiUtil { //TODO: contribute to idea PsiTreeUtil#getPsiOrStubParent @Nullable + @SuppressWarnings("unchecked") public static T getPsiOrStubParent( @NotNull PsiElement element, @NotNull Class declarationClass, boolean strict ) { if (!strict && declarationClass.isInstance(element)) { - //noinspection unchecked return (T) element; } if (element instanceof KtElementImplStub) { diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtAnnotationEntryElementType.java b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtAnnotationEntryElementType.java index 6330eb1a019..8fa13106de8 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtAnnotationEntryElementType.java +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtAnnotationEntryElementType.java @@ -23,12 +23,11 @@ import com.intellij.psi.stubs.StubOutputStream; import com.intellij.util.io.StringRef; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; +import org.jetbrains.kotlin.name.Name; import org.jetbrains.kotlin.psi.KtAnnotationEntry; -import org.jetbrains.kotlin.psi.KtPsiUtil; import org.jetbrains.kotlin.psi.KtValueArgumentList; import org.jetbrains.kotlin.psi.stubs.KotlinAnnotationEntryStub; import org.jetbrains.kotlin.psi.stubs.impl.KotlinAnnotationEntryStubImpl; -import org.jetbrains.kotlin.name.Name; import java.io.IOException; @@ -38,13 +37,14 @@ public class KtAnnotationEntryElementType extends KtStubElementType) parentStub, StringRef.fromString(resultName), hasValueArguments); } @Override @@ -58,7 +58,7 @@ public class KtAnnotationEntryElementType extends KtStubElementType) parentStub, text, hasValueArguments); } @Override diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtClassElementType.java b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtClassElementType.java index 1e2dd476dce..89cb6350d42 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtClassElementType.java +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtClassElementType.java @@ -52,15 +52,19 @@ public class KtClassElementType extends KtStubElementType superNames = KtPsiUtilKt.getSuperNames(psi); return new KotlinClassStubImpl( - getStubType(isEnumEntry), parentStub, StringRef.fromString(fqName != null ? fqName.asString() : null), - StringRef.fromString(psi.getName()), Utils.INSTANCE.wrapStrings(superNames), psi.isInterface(), isEnumEntry, - psi.isLocal(), psi.isTopLevel()); + getStubType(isEnumEntry), (StubElement) parentStub, + StringRef.fromString(fqName != null ? fqName.asString() : null), + StringRef.fromString(psi.getName()), + Utils.INSTANCE.wrapStrings(superNames), + psi.isInterface(), isEnumEntry, psi.isLocal(), psi.isTopLevel() + ); } @Override @@ -96,8 +100,10 @@ public class KtClassElementType extends KtStubElementType) parentStub, qualifiedName, name, superNames, + isTrait, isEnumEntry, isLocal, isTopLevel + ); } @Override diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtFunctionElementType.java b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtFunctionElementType.java index 8208f804fb6..b78ce15dede 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtFunctionElementType.java +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtFunctionElementType.java @@ -38,6 +38,7 @@ public class KtFunctionElementType extends KtStubElementType) parentStub, StringRef.fromString(psi.getName()), isTopLevel, fqName, + isExtension, hasBlockBody, hasBody, psi.hasTypeParameterListBeforeFunctionName(), + psi.mayHaveContract() + ); } @Override @@ -80,8 +83,10 @@ public class KtFunctionElementType extends KtStubElementType) parentStub, name, isTopLevel, fqName, isExtension, hasBlockBody, hasBody, + hasTypeParameterListBeforeFunctionName, mayHaveContract + ); } @Override diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtImportDirectiveElementType.java b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtImportDirectiveElementType.java index 9cf83348fa6..9bd57742c7c 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtImportDirectiveElementType.java +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtImportDirectiveElementType.java @@ -34,11 +34,12 @@ public class KtImportDirectiveElementType extends KtStubElementType) parentStub, psi.isAllUnder(), fqName, psi.isValidImport()); } @Override @@ -55,6 +56,6 @@ public class KtImportDirectiveElementType extends KtStubElementType) parentStub, isAllUnder, importedName, isValid); } } diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtObjectElementType.java b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtObjectElementType.java index bdaa82dbc00..6fecf5aeeb9 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtObjectElementType.java +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtObjectElementType.java @@ -38,13 +38,16 @@ public class KtObjectElementType extends KtStubElementType superNames = KtPsiUtilKt.getSuperNames(psi); - return new KotlinObjectStubImpl(parentStub, StringRef.fromString(name), fqName, Utils.INSTANCE.wrapStrings(superNames), - psi.isTopLevel(), psi.isCompanion(), psi.isLocal(), psi.isObjectLiteral()); + return new KotlinObjectStubImpl( + (StubElement) parentStub, StringRef.fromString(name), fqName, Utils.INSTANCE.wrapStrings(superNames), + psi.isTopLevel(), psi.isCompanion(), psi.isLocal(), psi.isObjectLiteral() + ); } @Override @@ -84,7 +87,9 @@ public class KtObjectElementType extends KtStubElementType) parentStub, name, fqName, superNames, isTopLevel, isCompanion, isLocal, isObjectLiteral + ); } @Override diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtParameterElementType.java b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtParameterElementType.java index c9996ae6384..06d82e3b075 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtParameterElementType.java +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtParameterElementType.java @@ -23,10 +23,10 @@ import com.intellij.psi.stubs.StubOutputStream; import com.intellij.util.io.StringRef; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; +import org.jetbrains.kotlin.name.FqName; import org.jetbrains.kotlin.psi.KtParameter; import org.jetbrains.kotlin.psi.stubs.KotlinParameterStub; import org.jetbrains.kotlin.psi.stubs.impl.KotlinParameterStubImpl; -import org.jetbrains.kotlin.name.FqName; import java.io.IOException; @@ -35,12 +35,15 @@ public class KtParameterElementType extends KtStubElementType) parentStub, fqNameRef, StringRef.fromString(psi.getName()), + psi.isMutable(), psi.hasValOrVar(), psi.hasDefaultValue() + ); } @Override @@ -62,7 +65,7 @@ public class KtParameterElementType extends KtStubElementType) parentStub, fqName, name, isMutable, hasValOrValNode, hasDefaultValue); } @Override diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtPropertyElementType.java b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtPropertyElementType.java index 20effe9790b..d86d14d5d07 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtPropertyElementType.java +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtPropertyElementType.java @@ -36,6 +36,7 @@ public class KtPropertyElementType extends KtStubElementType"); return new KotlinPropertyStubImpl( - parentStub, StringRef.fromString(psi.getName()), + (StubElement) parentStub, StringRef.fromString(psi.getName()), psi.isVar(), psi.isTopLevel(), psi.hasDelegate(), psi.hasDelegateExpression(), psi.hasInitializer(), psi.getReceiverTypeReference() != null, psi.getTypeReference() != null, @@ -81,9 +82,10 @@ public class KtPropertyElementType extends KtStubElementType) parentStub, name, isVar, isTopLevel, hasDelegate, hasDelegateExpression, hasInitializer, + hasReceiverTypeRef, hasReturnTypeRef, fqName + ); } @Override diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtStubElementType.java b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtStubElementType.java index d157c5afa5b..0a004de458c 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtStubElementType.java +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtStubElementType.java @@ -47,6 +47,7 @@ public abstract class KtStubElementType arrayFactory; + @SuppressWarnings("unchecked") public KtStubElementType(@NotNull @NonNls String debugName, @NotNull Class psiClass, @NotNull Class stubClass) { super(debugName, KotlinLanguage.INSTANCE); try { @@ -56,13 +57,11 @@ public abstract class KtStubElementType { if (count == 0) { return emptyArray; } - //noinspection unchecked return (PsiT[]) Array.newInstance(psiClass, count); }; } diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtTypeParameterElementType.java b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtTypeParameterElementType.java index 715cde90282..13358e0ba0f 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtTypeParameterElementType.java +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtTypeParameterElementType.java @@ -34,10 +34,13 @@ public class KtTypeParameterElementType extends KtStubElementType) parentStub, StringRef.fromString(psi.getName()), + psi.getVariance() == Variance.IN_VARIANCE, psi.getVariance() == Variance.OUT_VARIANCE + ); } @Override @@ -54,6 +57,6 @@ public class KtTypeParameterElementType extends KtStubElementType) parentStub, name, isInVariance, isOutVariance); } } diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtUserTypeElementType.java b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtUserTypeElementType.java index 9c108ab106c..7c4388b3004 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtUserTypeElementType.java +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtUserTypeElementType.java @@ -25,25 +25,24 @@ import org.jetbrains.kotlin.psi.KtUserType; import org.jetbrains.kotlin.psi.stubs.KotlinUserTypeStub; import org.jetbrains.kotlin.psi.stubs.impl.KotlinUserTypeStubImpl; -import java.io.IOException; - public class KtUserTypeElementType extends KtStubElementType { public KtUserTypeElementType(@NotNull @NonNls String debugName) { super(debugName, KtUserType.class, KotlinUserTypeStub.class); } + @NotNull @Override public KotlinUserTypeStub createStub(@NotNull KtUserType psi, StubElement parentStub) { - return new KotlinUserTypeStubImpl(parentStub); + return new KotlinUserTypeStubImpl((StubElement) parentStub); } @Override - public void serialize(@NotNull KotlinUserTypeStub stub, @NotNull StubOutputStream dataStream) throws IOException { + public void serialize(@NotNull KotlinUserTypeStub stub, @NotNull StubOutputStream dataStream) { } @NotNull @Override - public KotlinUserTypeStub deserialize(@NotNull StubInputStream dataStream, StubElement parentStub) throws IOException { - return new KotlinUserTypeStubImpl(parentStub); + public KotlinUserTypeStub deserialize(@NotNull StubInputStream dataStream, StubElement parentStub) { + return new KotlinUserTypeStubImpl((StubElement) parentStub); } } diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/impl/KotlinImportDirectiveStubImpl.kt b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/impl/KotlinImportDirectiveStubImpl.kt index 021c262377c..1c9cd640c6c 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/impl/KotlinImportDirectiveStubImpl.kt +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/impl/KotlinImportDirectiveStubImpl.kt @@ -16,7 +16,6 @@ package org.jetbrains.kotlin.psi.stubs.impl -import com.intellij.psi.PsiElement import com.intellij.psi.stubs.StubElement import com.intellij.util.io.StringRef import org.jetbrains.kotlin.name.FqName @@ -25,7 +24,7 @@ import org.jetbrains.kotlin.psi.stubs.KotlinImportDirectiveStub import org.jetbrains.kotlin.psi.stubs.elements.KtStubElementTypes class KotlinImportDirectiveStubImpl( - parent: StubElement, + parent: StubElement<*>, private val isAllUnder: Boolean, private val importedFqName: StringRef?, private val isValid: Boolean diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractTopLevelMembersInvocationTest.java b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractTopLevelMembersInvocationTest.java index 4e936028ee8..b531acccacf 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractTopLevelMembersInvocationTest.java +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractTopLevelMembersInvocationTest.java @@ -16,9 +16,10 @@ package org.jetbrains.kotlin.codegen; -import com.intellij.openapi.util.io.FileUtil; import com.intellij.util.ArrayUtil; import kotlin.collections.CollectionsKt; +import kotlin.io.FilesKt; +import kotlin.sequences.SequencesKt; import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles; import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment; @@ -28,28 +29,19 @@ import org.jetbrains.kotlin.test.KotlinTestUtils; import org.jetbrains.kotlin.test.TestJdkKind; import java.io.File; -import java.util.ArrayList; import java.util.Collections; import java.util.List; public abstract class AbstractTopLevelMembersInvocationTest extends AbstractBytecodeTextTest { - - private static final String LIBRARY = "library"; - @Override public void doTest(@NotNull String filename) throws Exception { File root = new File(filename); - List sourceFiles = new ArrayList<>(2); + List sourceFiles = SequencesKt.toList(SequencesKt.map( + SequencesKt.filter(FilesKt.walkTopDown(root).maxDepth(1), File::isFile), + this::relativePath + )); - FileUtil.processFilesRecursively(root, file -> { - if (file.getName().endsWith(".kt")) { - sourceFiles.add(relativePath(file)); - return true; - } - return true; - }, file -> !LIBRARY.equals(file.getName())); - - File library = new File(root, LIBRARY); + File library = new File(root, "library"); List classPath = library.exists() ? Collections.singletonList(CompilerTestUtil.compileJvmLibrary(library)) diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/CodegenTestCase.java b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/CodegenTestCase.java index b5aa9fa2520..30e1bda9ebe 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/CodegenTestCase.java +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/CodegenTestCase.java @@ -308,7 +308,7 @@ public abstract class CodegenTestCase extends KtUsefulTestCase { assert configurationKeyField != null : "Expected [+|-][namespace.]configurationKey, got: " + flag; try { - //noinspection unchecked + @SuppressWarnings("unchecked") CompilerConfigurationKey configurationKey = (CompilerConfigurationKey) configurationKeyField.get(null); configuration.put(configurationKey, flagEnabled); } @@ -615,9 +615,9 @@ public abstract class CodegenTestCase extends KtUsefulTestCase { } @NotNull + @SuppressWarnings("unchecked") public Class loadAnnotationClassQuietly(@NotNull String fqName) { try { - //noinspection unchecked return (Class) initializedClassLoader.loadClass(fqName); } catch (ClassNotFoundException e) { diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/test/testFramework/KtPlatformLiteFixture.java b/compiler/tests-common/tests/org/jetbrains/kotlin/test/testFramework/KtPlatformLiteFixture.java index 052bf1e4143..37b08d64a89 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/test/testFramework/KtPlatformLiteFixture.java +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/test/testFramework/KtPlatformLiteFixture.java @@ -70,11 +70,11 @@ public abstract class KtPlatformLiteFixture extends KtUsefulTestCase { } } + @SuppressWarnings("unchecked") public static T registerComponentInstance(MutablePicoContainer container, Class key, T implementation) { Object old = container.getComponentInstance(key); container.unregisterComponent(key); container.registerComponentInstance(key, implementation); - //noinspection unchecked return (T)old; } } diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/test/testFramework/KtUsefulTestCase.java b/compiler/tests-common/tests/org/jetbrains/kotlin/test/testFramework/KtUsefulTestCase.java index c13da2dbabc..12ef0a01a81 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/test/testFramework/KtUsefulTestCase.java +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/test/testFramework/KtUsefulTestCase.java @@ -180,6 +180,7 @@ public abstract class KtUsefulTestCase extends TestCase { catch (Exception e) { throw new RuntimeException(e); } + @SuppressWarnings("unchecked") Set files = ReflectionUtil.getStaticFieldValue(aClass, Set.class, "files"); DELETE_ON_EXIT_HOOK_CLASS = aClass; DELETE_ON_EXIT_HOOK_DOT_FILES = files; @@ -307,7 +308,9 @@ public abstract class KtUsefulTestCase extends TestCase { StringBuilder builder = new StringBuilder(); for (Object o : collection) { if (o instanceof THashSet) { - builder.append(new TreeSet((THashSet)o)); + @SuppressWarnings("unchecked") + Set set = new TreeSet((THashSet) o); + builder.append(set); } else { builder.append(o); @@ -317,6 +320,7 @@ public abstract class KtUsefulTestCase extends TestCase { return builder.toString(); } + @SafeVarargs private static void assertOrderedEquals(String errorMsg, @NotNull Iterable actual, @NotNull T... expected) { Assert.assertNotNull(actual); Assert.assertNotNull(expected); @@ -339,10 +343,12 @@ public abstract class KtUsefulTestCase extends TestCase { } } + @SafeVarargs public static void assertSameElements(T[] collection, T... expected) { assertSameElements(Arrays.asList(collection), expected); } + @SafeVarargs public static void assertSameElements(Collection collection, T... expected) { assertSameElements(collection, Arrays.asList(expected)); } @@ -388,7 +394,6 @@ public abstract class KtUsefulTestCase extends TestCase { } protected static void assertEmpty(String errorMsg, Collection collection) { - //noinspection unchecked assertOrderedEquals(errorMsg, collection); } diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/AnnotationGenTest.java b/compiler/tests/org/jetbrains/kotlin/codegen/AnnotationGenTest.java index add5717040f..dd969c4db6d 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/AnnotationGenTest.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/AnnotationGenTest.java @@ -167,8 +167,8 @@ public class AnnotationGenTest extends CodegenTestCase { public void testConstructor() throws NoSuchFieldException, NoSuchMethodException { loadText("class A @[java.lang.Deprecated] constructor() {}"); Class aClass = generateClass("A"); - Constructor x = aClass.getDeclaredConstructor(); - Deprecated annotation = (Deprecated) x.getAnnotation(Deprecated.class); + Constructor x = aClass.getDeclaredConstructor(); + Deprecated annotation = x.getAnnotation(Deprecated.class); assertNotNull(annotation); } @@ -181,8 +181,8 @@ public class AnnotationGenTest extends CodegenTestCase { public void testClass() throws NoSuchFieldException, NoSuchMethodException { loadText("@[java.lang.Deprecated] class A () {}"); - Class aClass = generateClass("A"); - Deprecated annotation = (Deprecated) aClass.getAnnotation(Deprecated.class); + Class aClass = generateClass("A"); + Deprecated annotation = aClass.getAnnotation(Deprecated.class); assertNotNull(annotation); } @@ -209,9 +209,10 @@ public class AnnotationGenTest extends CodegenTestCase { "@java.lang.annotation.Retention(RetentionPolicy.RUNTIME) annotation class A(val a: String)\n" + "" + "@A(\"239\") class B()"); - Class aClass = generateClass("A"); + @SuppressWarnings("unchecked") + Class aClass = (Class) generateClass("A"); - Retention annotation = (Retention)aClass.getAnnotation(Retention.class); + Retention annotation = aClass.getAnnotation(Retention.class); RetentionPolicy value = annotation.value(); assertEquals(RetentionPolicy.RUNTIME, value); @@ -243,9 +244,10 @@ public class AnnotationGenTest extends CodegenTestCase { "@java.lang.annotation.Retention(RetentionPolicy.RUNTIME) annotation class A(val a: C)\n" + "" + "@A(C(\"239\")) class B()"); - Class aClass = generateClass("A"); + @SuppressWarnings("unchecked") + Class aClass = (Class) generateClass("A"); - Retention annotation = (Retention)aClass.getAnnotation(Retention.class); + Retention annotation = aClass.getAnnotation(Retention.class); RetentionPolicy value = annotation.value(); assertEquals(RetentionPolicy.RUNTIME, value); @@ -280,9 +282,10 @@ public class AnnotationGenTest extends CodegenTestCase { "@java.lang.annotation.Retention(RetentionPolicy.RUNTIME) annotation class A(val a: Array)\n" + "" + "@A(arrayOf(\"239\",\"932\")) class B()"); - Class aClass = generateClass("A"); + @SuppressWarnings("unchecked") + Class aClass = (Class) generateClass("A"); - Retention annotation = (Retention)aClass.getAnnotation(Retention.class); + Retention annotation = aClass.getAnnotation(Retention.class); RetentionPolicy value = annotation.value(); assertEquals(RetentionPolicy.RUNTIME, value); @@ -315,9 +318,10 @@ public class AnnotationGenTest extends CodegenTestCase { "@java.lang.annotation.Retention(RetentionPolicy.RUNTIME) annotation class A(val a: IntArray)\n" + "" + "@A(intArrayOf(239,932)) class B()"); - Class aClass = generateClass("A"); + @SuppressWarnings("unchecked") + Class aClass = (Class) generateClass("A"); - Retention annotation = (Retention)aClass.getAnnotation(Retention.class); + Retention annotation = aClass.getAnnotation(Retention.class); RetentionPolicy value = annotation.value(); assertEquals(RetentionPolicy.RUNTIME, value); @@ -348,9 +352,9 @@ public class AnnotationGenTest extends CodegenTestCase { loadText("import java.lang.annotation.*\n" + "" + "@java.lang.annotation.Target(ElementType.TYPE, ElementType.METHOD) annotation class A"); - Class aClass = generateClass("A"); + Class aClass = generateClass("A"); - Target annotation = (Target)aClass.getAnnotation(Target.class); + Target annotation = aClass.getAnnotation(Target.class); ElementType[] value = annotation.value(); assertEquals(2, value.length); @@ -372,7 +376,8 @@ public class AnnotationGenTest extends CodegenTestCase { "@Retention(RetentionPolicy.RUNTIME) annotation class A(val a: Array)\n" + "" + "@A(arrayOf(Retention(RetentionPolicy.RUNTIME),Retention(RetentionPolicy.SOURCE))) class B()"); - Class aClass = generateClass("A"); + @SuppressWarnings("unchecked") + Class aClass = (Class) generateClass("A"); Method[] methods = aClass.getDeclaredMethods(); assertEquals(1, methods.length); diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/descriptors/JavaPropertyDescriptor.java b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/descriptors/JavaPropertyDescriptor.java index b5b92417645..ca1fda2e972 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/descriptors/JavaPropertyDescriptor.java +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/descriptors/JavaPropertyDescriptor.java @@ -168,9 +168,9 @@ public class JavaPropertyDescriptor extends PropertyDescriptorImpl implements Ja @Nullable @Override + @SuppressWarnings("unchecked") public V getUserData(UserDataKey key) { if (singleUserData != null && singleUserData.getFirst().equals(key)) { - //noinspection unchecked return (V) singleUserData.getSecond(); } diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/FunctionDescriptorImpl.java b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/FunctionDescriptorImpl.java index 808c0621b0e..b825941b2fe 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/FunctionDescriptorImpl.java +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/FunctionDescriptorImpl.java @@ -261,9 +261,9 @@ public abstract class FunctionDescriptorImpl extends DeclarationDescriptorNonRoo } @Override + @SuppressWarnings("unchecked") public V getUserData(UserDataKey key) { if (userDataMap == null) return null; - //noinspection unchecked return (V) userDataMap.get(key); } @@ -273,8 +273,8 @@ public abstract class FunctionDescriptorImpl extends DeclarationDescriptorNonRoo } @Override + @SuppressWarnings("unchecked") public void setOverriddenDescriptors(@NotNull Collection overriddenDescriptors) { - //noinspection unchecked overriddenFunctions = (Collection) overriddenDescriptors; for (FunctionDescriptor function : overriddenFunctions) { if (function.isHiddenForResolutionEverywhereBesideSupercalls()) { diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/PropertyDescriptorImpl.java b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/PropertyDescriptorImpl.java index 1b8aceb34b5..aba8b5d969b 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/PropertyDescriptorImpl.java +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/PropertyDescriptorImpl.java @@ -522,8 +522,8 @@ public class PropertyDescriptorImpl extends VariableDescriptorWithInitializerImp } @Override + @SuppressWarnings("unchecked") public void setOverriddenDescriptors(@NotNull Collection overriddenDescriptors) { - //noinspection unchecked this.overriddenProperties = (Collection) overriddenDescriptors; } diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/SimpleFunctionDescriptorImpl.java b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/SimpleFunctionDescriptorImpl.java index 9fdc28c99af..00b61700331 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/SimpleFunctionDescriptorImpl.java +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/SimpleFunctionDescriptorImpl.java @@ -126,8 +126,8 @@ public class SimpleFunctionDescriptorImpl extends FunctionDescriptorImpl impleme @NotNull @Override + @SuppressWarnings("unchecked") public CopyBuilder newCopyBuilder() { - //noinspection unchecked return (CopyBuilder) super.newCopyBuilder(); } } diff --git a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/Util.java b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/Util.java index cc7750361da..5d765d13ad5 100644 --- a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/Util.java +++ b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/Util.java @@ -6,6 +6,7 @@ package kotlin.reflect.jvm.internal; /* package */ class Util { + @SuppressWarnings("unchecked") public static Object getEnumConstantByName(Class> enumClass, String name) { // This is a workaround for KT-5191. Enum#valueOf cannot be called in Kotlin return Enum.valueOf((Class) enumClass, name); diff --git a/js/js.ast/src/org/jetbrains/kotlin/js/backend/ast/AbstractNode.java b/js/js.ast/src/org/jetbrains/kotlin/js/backend/ast/AbstractNode.java index d0c2aa0ee82..63838d1f4c7 100644 --- a/js/js.ast/src/org/jetbrains/kotlin/js/backend/ast/AbstractNode.java +++ b/js/js.ast/src/org/jetbrains/kotlin/js/backend/ast/AbstractNode.java @@ -28,13 +28,13 @@ abstract class AbstractNode extends HasMetadata implements JsNode { return out.toString(); } + @SuppressWarnings("unchecked") protected T withMetadataFrom(T other) { this.copyMetadataFrom(other); Object otherSource = other.getSource(); if (otherSource != null) { source(otherSource); } - //noinspection unchecked return (T) this; } } diff --git a/js/js.ast/src/org/jetbrains/kotlin/js/backend/ast/JsFor.java b/js/js.ast/src/org/jetbrains/kotlin/js/backend/ast/JsFor.java index 98054847f77..03a232498cf 100644 --- a/js/js.ast/src/org/jetbrains/kotlin/js/backend/ast/JsFor.java +++ b/js/js.ast/src/org/jetbrains/kotlin/js/backend/ast/JsFor.java @@ -100,6 +100,7 @@ public class JsFor extends SourceInfoAwareJsNode implements JsLoop { } @Override + @SuppressWarnings("unchecked") public void traverse(JsVisitorWithContext v, JsContext ctx) { if (v.visit(this, ctx)) { assert (!(initExpression != null && initVars != null)); diff --git a/js/js.ast/src/org/jetbrains/kotlin/js/backend/ast/JsVisitorWithContext.java b/js/js.ast/src/org/jetbrains/kotlin/js/backend/ast/JsVisitorWithContext.java index 9dd219f35c6..8cee9abe85a 100644 --- a/js/js.ast/src/org/jetbrains/kotlin/js/backend/ast/JsVisitorWithContext.java +++ b/js/js.ast/src/org/jetbrains/kotlin/js/backend/ast/JsVisitorWithContext.java @@ -48,10 +48,10 @@ public abstract class JsVisitorWithContext { doAcceptList(collection); } + @SuppressWarnings("unchecked") public final T acceptStatement(T statement) { if (statement == null) return null; - //noinspection unchecked return (T) doAcceptStatement(statement); } diff --git a/js/js.ast/src/org/jetbrains/kotlin/js/util/AstUtil.java b/js/js.ast/src/org/jetbrains/kotlin/js/util/AstUtil.java index 5be28c415e7..82e6a48638c 100644 --- a/js/js.ast/src/org/jetbrains/kotlin/js/util/AstUtil.java +++ b/js/js.ast/src/org/jetbrains/kotlin/js/util/AstUtil.java @@ -7,9 +7,6 @@ package org.jetbrains.kotlin.js.util; import com.intellij.util.SmartList; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.kotlin.js.backend.ast.JsBinaryOperation; -import org.jetbrains.kotlin.js.backend.ast.JsBinaryOperator; -import org.jetbrains.kotlin.js.backend.ast.JsExpression; import org.jetbrains.kotlin.js.backend.ast.JsNode; import java.util.ArrayList; @@ -20,10 +17,10 @@ public final class AstUtil { } @Nullable + @SuppressWarnings("unchecked") public static T deepCopy(@Nullable T node) { if (node == null) return null; - //noinspection unchecked return (T) node.deepCopy(); } diff --git a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/JsInliner.java b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/JsInliner.java index 74cf9609d52..e749f58af96 100644 --- a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/JsInliner.java +++ b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/JsInliner.java @@ -10,7 +10,8 @@ import kotlin.jvm.functions.Function1; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.kotlin.backend.common.CommonCoroutineCodegenUtilKt; -import org.jetbrains.kotlin.config.*; +import org.jetbrains.kotlin.config.CommonConfigurationKeysKt; +import org.jetbrains.kotlin.config.LanguageVersionSettings; import org.jetbrains.kotlin.descriptors.CallableDescriptor; import org.jetbrains.kotlin.descriptors.DeclarationDescriptor; import org.jetbrains.kotlin.descriptors.FunctionDescriptor; @@ -24,7 +25,6 @@ import org.jetbrains.kotlin.js.inline.context.FunctionContext; import org.jetbrains.kotlin.js.inline.context.InliningContext; import org.jetbrains.kotlin.js.inline.context.NamingContext; import org.jetbrains.kotlin.js.inline.util.*; -import org.jetbrains.kotlin.js.translate.expression.InlineMetadata; import org.jetbrains.kotlin.resolve.inline.InlineStrategy; import java.util.*; @@ -303,7 +303,9 @@ public class JsInliner extends JsVisitorWithContextImpl { @Override public void endVisit(@NotNull JsInvocation x, @NotNull JsContext ctx) { if (hasToBeInlined(x)) { - inline(x, ctx); + @SuppressWarnings("unchecked") + JsContext context = (JsContext) ctx; + inline(x, context); } JsCallInfo lastCallInfo = null; @@ -335,7 +337,7 @@ public class JsInliner extends JsVisitorWithContextImpl { super.doAcceptStatementList(statements); } - private void inline(@NotNull JsInvocation call, @NotNull JsContext context) { + private void inline(@NotNull JsInvocation call, @NotNull JsContext context) { DeclarationDescriptor callDescriptor = MetadataProperties.getDescriptor(call); if (isSuspendWithCurrentContinuation(callDescriptor, CommonConfigurationKeysKt.getLanguageVersionSettings(config.getConfiguration()))) { @@ -403,7 +405,7 @@ public class JsInliner extends JsVisitorWithContextImpl { ) { // Apparently we should avoid this trick when we implement fair support for crossinline Function> replacementGen = k -> { - JsContext ctx = k.context; + JsContext ctx = k.context; Map newReplacements = new HashMap<>(); @@ -499,9 +501,11 @@ public class JsInliner extends JsVisitorWithContextImpl { replaceIfNecessary(x, ctx); } - private void replaceIfNecessary(@NotNull JsExpression expression, @NotNull JsContext context) { + private void replaceIfNecessary(@NotNull JsExpression expression, @NotNull JsContext ctx) { JsName alias = MetadataProperties.getLocalAlias(expression); if (alias != null) { + @SuppressWarnings("unchecked") + JsContext context = (JsContext) ctx; context.replaceMe(alias.makeRef()); } } @@ -519,7 +523,7 @@ public class JsInliner extends JsVisitorWithContextImpl { ); } - private void inlineSuspendWithCurrentContinuation(@NotNull JsInvocation call, @NotNull JsContext context) { + private void inlineSuspendWithCurrentContinuation(@NotNull JsInvocation call, @NotNull JsContext context) { JsExpression lambda = call.getArguments().get(0); JsExpression continuationArg = call.getArguments().get(call.getArguments().size() - 1); @@ -632,10 +636,10 @@ public class JsInliner extends JsVisitorWithContextImpl { } static class JsWrapperKey { - final JsContext context; + final JsContext context; private final JsFunction function; - public JsWrapperKey(@NotNull JsContext context, @NotNull JsFunction function) { + public JsWrapperKey(@NotNull JsContext context, @NotNull JsFunction function) { this.context = context; this.function = function; } diff --git a/js/js.parser/src/com/google/gwt/dev/js/rhino/Context.java b/js/js.parser/src/com/google/gwt/dev/js/rhino/Context.java index f515415d1a7..ef819570845 100644 --- a/js/js.parser/src/com/google/gwt/dev/js/rhino/Context.java +++ b/js/js.parser/src/com/google/gwt/dev/js/rhino/Context.java @@ -210,6 +210,7 @@ public class Context { return (Context) threadContexts.get(t); } + @SuppressWarnings("unchecked") private static void setThreadContext(Context cx) { if (threadLocalCx != null) { try { diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/sourceMap/SourceMap3Builder.java b/js/js.translator/src/org/jetbrains/kotlin/js/sourceMap/SourceMap3Builder.java index fac20451593..f01d500e0b0 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/sourceMap/SourceMap3Builder.java +++ b/js/js.translator/src/org/jetbrains/kotlin/js/sourceMap/SourceMap3Builder.java @@ -70,6 +70,7 @@ public class SourceMap3Builder implements SourceMapBuilder { @Override public String build() { + @SuppressWarnings("unchecked") JsonObject json = new JsonObject(); json.getProperties().put("version", new JsonNumber(3)); json.getProperties().put("file", new JsonString(generatedFile.getName())); diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/BindingUtils.java b/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/BindingUtils.java index b8824948c7c..bd3358625b8 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/BindingUtils.java +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/BindingUtils.java @@ -49,14 +49,15 @@ public final class BindingUtils { private BindingUtils() { } + @SuppressWarnings("unchecked") @NotNull - static private - D getDescriptorForExpression(@NotNull BindingContext context, @NotNull E expression, Class descriptorClass) { + private static D getDescriptorForExpression( + @NotNull BindingContext context, @NotNull E expression, Class descriptorClass + ) { DeclarationDescriptor descriptor = context.get(BindingContext.DECLARATION_TO_DESCRIPTOR, expression); assert descriptor != null; assert descriptorClass.isInstance(descriptor) : message(expression, expression.toString() + " expected to have of type" + descriptorClass.toString()); - //noinspection unchecked return (D) descriptor; } diff --git a/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/MutablePropertyReference1.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/MutablePropertyReference1.java index 34ab492b9db..4c8d7a215f2 100644 --- a/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/MutablePropertyReference1.java +++ b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/MutablePropertyReference1.java @@ -10,6 +10,7 @@ import kotlin.reflect.KCallable; import kotlin.reflect.KMutableProperty1; import kotlin.reflect.KProperty1; +@SuppressWarnings("unchecked") public abstract class MutablePropertyReference1 extends MutablePropertyReference implements KMutableProperty1 { public MutablePropertyReference1() { } diff --git a/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/MutablePropertyReference2.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/MutablePropertyReference2.java index adc0bb8b0f8..8b297a7f87f 100644 --- a/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/MutablePropertyReference2.java +++ b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/MutablePropertyReference2.java @@ -10,6 +10,7 @@ import kotlin.reflect.KCallable; import kotlin.reflect.KMutableProperty2; import kotlin.reflect.KProperty2; +@SuppressWarnings("unchecked") public abstract class MutablePropertyReference2 extends MutablePropertyReference implements KMutableProperty2 { @Override protected KCallable computeReflected() { diff --git a/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/PropertyReference1.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/PropertyReference1.java index 9393df92ffb..37dff55242e 100644 --- a/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/PropertyReference1.java +++ b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/PropertyReference1.java @@ -9,6 +9,7 @@ import kotlin.SinceKotlin; import kotlin.reflect.KCallable; import kotlin.reflect.KProperty1; +@SuppressWarnings("unchecked") public abstract class PropertyReference1 extends PropertyReference implements KProperty1 { public PropertyReference1() { } diff --git a/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/PropertyReference2.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/PropertyReference2.java index aa5f0eade54..b776505d343 100644 --- a/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/PropertyReference2.java +++ b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/PropertyReference2.java @@ -9,6 +9,7 @@ import kotlin.SinceKotlin; import kotlin.reflect.KCallable; import kotlin.reflect.KProperty2; +@SuppressWarnings("unchecked") public abstract class PropertyReference2 extends PropertyReference implements KProperty2 { @Override protected KCallable computeReflected() { diff --git a/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/SpreadBuilder.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/SpreadBuilder.java index 74a49b851cb..f6829fe3d43 100644 --- a/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/SpreadBuilder.java +++ b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/SpreadBuilder.java @@ -5,9 +5,9 @@ package kotlin.jvm.internal; -import java.lang.Object; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.Iterator; public class SpreadBuilder { @@ -18,6 +18,7 @@ public class SpreadBuilder { list = new ArrayList(size); } + @SuppressWarnings("unchecked") public void addSpread(Object container) { if (container == null) return; @@ -25,9 +26,7 @@ public class SpreadBuilder { Object[] array = (Object[]) container; if (array.length > 0) { list.ensureCapacity(list.size() + array.length); - for (Object element : array) { - list.add(element); - } + Collections.addAll(list, array); } } else if (container instanceof Collection) {