diff --git a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/modules/ModuleXmlParser.java b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/modules/ModuleXmlParser.java index 4cf2357257c..9e61b388871 100644 --- a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/modules/ModuleXmlParser.java +++ b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/modules/ModuleXmlParser.java @@ -16,7 +16,6 @@ package org.jetbrains.kotlin.cli.common.modules; -import com.intellij.openapi.util.io.StreamUtil; import com.intellij.util.SmartList; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -31,7 +30,10 @@ import org.xml.sax.helpers.DefaultHandler; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; -import java.io.*; +import java.io.BufferedInputStream; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; import java.util.List; import static org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.ERROR; @@ -59,19 +61,13 @@ public class ModuleXmlParser { @NotNull String xmlFile, @NotNull MessageCollector messageCollector ) { - FileInputStream stream = null; - try { - //noinspection IOResourceOpenedButNotSafelyClosed - stream = new FileInputStream(xmlFile); + try (FileInputStream stream = new FileInputStream(xmlFile)) { return new ModuleXmlParser(messageCollector).parse(new BufferedInputStream(stream)); } - catch (FileNotFoundException e) { + catch (IOException e) { MessageCollectorUtil.reportException(messageCollector, e); return ModuleChunk.EMPTY; } - finally { - StreamUtil.closeStream(stream); - } } private final MessageCollector messageCollector; diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java index 67aeb07708c..42ed4515c97 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java @@ -20,7 +20,6 @@ import com.google.common.collect.Maps; import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiElement; -import com.intellij.util.containers.Queue; import kotlin.Unit; import kotlin.collections.CollectionsKt; import kotlin.jvm.functions.Function1; @@ -1076,14 +1075,13 @@ public class BodyResolver { if (deferredTypes.isEmpty()) { return; } - // +1 is a work around against new Queue(0).addLast(...) bug // stepan.koltsov@ 2011-11-21 - Queue queue = new Queue<>(deferredTypes.size() + 1); - trace.addHandler(DEFERRED_TYPE, (deferredTypeKeyDeferredTypeWritableSlice, key, value) -> queue.addLast(key.getData())); + Deque queue = new ArrayDeque<>(deferredTypes.size() + 1); + trace.addHandler(DEFERRED_TYPE, (deferredTypeKeyDeferredTypeWritableSlice, key, value) -> queue.offerLast(key.getData())); for (Box deferredType : deferredTypes) { - queue.addLast(deferredType.getData()); + queue.offerLast(deferredType.getData()); } while (!queue.isEmpty()) { - DeferredType deferredType = queue.pullFirst(); + DeferredType deferredType = queue.pollFirst(); if (!deferredType.isComputed()) { try { deferredType.getDelegate(); // to compute diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/impl/KotlinStubBaseImpl.kt b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/impl/KotlinStubBaseImpl.kt index 99340f03e42..f58b2616be7 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/impl/KotlinStubBaseImpl.kt +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/impl/KotlinStubBaseImpl.kt @@ -27,13 +27,15 @@ import org.jetbrains.kotlin.psi.stubs.KotlinClassOrObjectStub import org.jetbrains.kotlin.psi.stubs.KotlinClassifierStub import org.jetbrains.kotlin.psi.stubs.KotlinStubWithFqName import java.lang.reflect.Method -import java.util.ArrayList val STUB_TO_STRING_PREFIX = "KotlinStub$" open class KotlinStubBaseImpl>(parent: StubElement<*>?, elementType: IStubElementType<*, *>) : StubBase(parent, elementType) { + override fun getStubType(): IStubElementType, *> = + super.getStubType() as IStubElementType, *> + override fun toString(): String { val stubInterface = this::class.java.interfaces.single { it.name.contains("Stub") } val propertiesValues = renderPropertyValues(stubInterface) 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 0f6835751b1..37f1c2847de 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 @@ -11,8 +11,6 @@ import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.PathManager; import com.intellij.openapi.application.impl.ApplicationInfoImpl; import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.project.Project; -import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.JDOMUtil; import com.intellij.openapi.util.io.FileUtil; @@ -21,9 +19,11 @@ import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VfsUtilCore; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFileVisitor; -import com.intellij.psi.PsiDocumentManager; import com.intellij.rt.execution.junit.FileComparisonFailure; -import com.intellij.util.*; +import com.intellij.util.Consumer; +import com.intellij.util.ObjectUtils; +import com.intellij.util.ReflectionUtil; +import com.intellij.util.SmartList; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.PeekableIterator; import com.intellij.util.containers.PeekableIteratorWrapper; @@ -806,7 +806,7 @@ public abstract class KtUsefulTestCase extends TestCase { } String expected = StringUtil.convertLineSeparators(trimBeforeComparing ? fileText.trim() : fileText); String actual = StringUtil.convertLineSeparators(trimBeforeComparing ? actualText.trim() : actualText); - if (!Comparing.equal(expected, actual)) { + if (!Objects.equals(expected, actual)) { throw new FileComparisonFailure(messageProducer == null ? null : messageProducer.get(), expected, actual, filePath); } } diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/test/testFramework/RunAll.java b/compiler/tests-common/tests/org/jetbrains/kotlin/test/testFramework/RunAll.java index 6fbafe28382..fabcd535763 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/test/testFramework/RunAll.java +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/test/testFramework/RunAll.java @@ -20,6 +20,7 @@ import java.util.List; public class RunAll { private final List> myActions; + @SafeVarargs public RunAll(ThrowableRunnable ... actions) { this(Arrays.asList(actions)); }