From cebe25ff396d09fa9e460851b106cd30bfeb8595 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Fri, 26 Nov 2021 15:08:37 +0300 Subject: [PATCH] FE: don't create KtFile stubs on virtual files without ids This commit is kinda revert of the change in platform 203: https://github.com/JetBrains/intellij-community/commit/5d91f7bf2e5718d715c0d90ed1a212ea845fb2a3 #KT-49833 Fixed --- compiler/psi/src/org/jetbrains/kotlin/psi/KtFile.kt | 2 ++ compiler/testData/cli/jvm/newLineInPackage.args | 3 +++ compiler/testData/cli/jvm/newLineInPackage.kt | 2 ++ compiler/testData/cli/jvm/newLineInPackage.out | 1 + .../tests-gen/org/jetbrains/kotlin/cli/CliTestGenerated.java | 5 +++++ 5 files changed, 13 insertions(+) create mode 100644 compiler/testData/cli/jvm/newLineInPackage.args create mode 100644 compiler/testData/cli/jvm/newLineInPackage.kt create mode 100644 compiler/testData/cli/jvm/newLineInPackage.out diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/KtFile.kt b/compiler/psi/src/org/jetbrains/kotlin/psi/KtFile.kt index 648cdc47538..eb31faf5800 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/KtFile.kt +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/KtFile.kt @@ -19,6 +19,7 @@ package org.jetbrains.kotlin.psi import com.intellij.extapi.psi.PsiFileBase import com.intellij.openapi.components.ServiceManager import com.intellij.openapi.fileTypes.FileType +import com.intellij.openapi.vfs.VirtualFileWithId import com.intellij.psi.* import com.intellij.psi.stubs.StubElement import com.intellij.psi.tree.TokenSet @@ -189,6 +190,7 @@ open class KtFile(viewProvider: FileViewProvider, val isCompiled: Boolean) : } override fun getStub(): KotlinFileStub? { + if (virtualFile !is VirtualFileWithId) return null val stub = super.getStub() if (stub is KotlinFileStub?) { return stub diff --git a/compiler/testData/cli/jvm/newLineInPackage.args b/compiler/testData/cli/jvm/newLineInPackage.args new file mode 100644 index 00000000000..9bdddac6617 --- /dev/null +++ b/compiler/testData/cli/jvm/newLineInPackage.args @@ -0,0 +1,3 @@ +$TESTDATA_DIR$/newLineInPackage.kt +-d +$TEMP_DIR$ diff --git a/compiler/testData/cli/jvm/newLineInPackage.kt b/compiler/testData/cli/jvm/newLineInPackage.kt new file mode 100644 index 00000000000..e356145732d --- /dev/null +++ b/compiler/testData/cli/jvm/newLineInPackage.kt @@ -0,0 +1,2 @@ +package com.some +.name diff --git a/compiler/testData/cli/jvm/newLineInPackage.out b/compiler/testData/cli/jvm/newLineInPackage.out new file mode 100644 index 00000000000..d86bac9de59 --- /dev/null +++ b/compiler/testData/cli/jvm/newLineInPackage.out @@ -0,0 +1 @@ +OK diff --git a/compiler/tests-gen/org/jetbrains/kotlin/cli/CliTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/cli/CliTestGenerated.java index ca97ebd650c..7922b892488 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/cli/CliTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/cli/CliTestGenerated.java @@ -686,6 +686,11 @@ public class CliTestGenerated extends AbstractCliTest { runTest("compiler/testData/cli/jvm/newInferenceWithOldFlagImpliesSamConversions.args"); } + @TestMetadata("newLineInPackage.args") + public void testNewLineInPackage() throws Exception { + runTest("compiler/testData/cli/jvm/newLineInPackage.args"); + } + @TestMetadata("noReflect.args") public void testNoReflect() throws Exception { runTest("compiler/testData/cli/jvm/noReflect.args");