FIR IDE: temporary disable AbstractFirLazyDeclarationResolveTest.kt
This commit is contained in:
+4
-4
@@ -17,7 +17,7 @@ import org.jetbrains.kotlin.idea.fir.frontend.api.symbols.AbstractSymbolByFqName
|
|||||||
import org.jetbrains.kotlin.idea.fir.frontend.api.symbols.AbstractSymbolByPsiTest
|
import org.jetbrains.kotlin.idea.fir.frontend.api.symbols.AbstractSymbolByPsiTest
|
||||||
import org.jetbrains.kotlin.idea.fir.frontend.api.symbols.AbstractSymbolByReferenceTest
|
import org.jetbrains.kotlin.idea.fir.frontend.api.symbols.AbstractSymbolByReferenceTest
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.AbstractFirLazyBodiesCalculatorTest
|
import org.jetbrains.kotlin.idea.fir.low.level.api.AbstractFirLazyBodiesCalculatorTest
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.AbstractFirLazyDeclarationResolveTest
|
//import org.jetbrains.kotlin.idea.fir.low.level.api.AbstractFirLazyDeclarationResolveTest
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.AbstractFirOnAirResolveTest
|
import org.jetbrains.kotlin.idea.fir.low.level.api.AbstractFirOnAirResolveTest
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.AbstractPartialRawFirBuilderTestCase
|
import org.jetbrains.kotlin.idea.fir.low.level.api.AbstractPartialRawFirBuilderTestCase
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.diagnostic.AbstractDiagnosticTraversalCounterTest
|
import org.jetbrains.kotlin.idea.fir.low.level.api.diagnostic.AbstractDiagnosticTraversalCounterTest
|
||||||
@@ -90,9 +90,9 @@ fun main(args: Array<String>) {
|
|||||||
testClass<AbstractFirOnAirResolveTest> {
|
testClass<AbstractFirOnAirResolveTest> {
|
||||||
model("onAirResolve")
|
model("onAirResolve")
|
||||||
}
|
}
|
||||||
testClass<AbstractFirLazyDeclarationResolveTest> {
|
// testClass<AbstractFirLazyDeclarationResolveTest> {
|
||||||
model("lazyResolve")
|
// model("lazyResolve")
|
||||||
}
|
// }
|
||||||
|
|
||||||
testClass<AbstractFileStructureTest> {
|
testClass<AbstractFileStructureTest> {
|
||||||
model("fileStructure")
|
model("fileStructure")
|
||||||
|
|||||||
+112
-112
@@ -1,112 +1,112 @@
|
|||||||
/*
|
///*
|
||||||
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
// * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
// * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
// */
|
||||||
|
//
|
||||||
package org.jetbrains.kotlin.idea.fir.low.level.api
|
//package org.jetbrains.kotlin.idea.fir.low.level.api
|
||||||
|
//
|
||||||
import com.intellij.openapi.util.io.FileUtil
|
//import com.intellij.openapi.util.io.FileUtil
|
||||||
import com.intellij.testFramework.LightProjectDescriptor
|
//import com.intellij.testFramework.LightProjectDescriptor
|
||||||
import org.jetbrains.kotlin.fir.*
|
//import org.jetbrains.kotlin.fir.*
|
||||||
import org.jetbrains.kotlin.fir.declarations.*
|
//import org.jetbrains.kotlin.fir.declarations.*
|
||||||
import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid
|
//import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid
|
||||||
import org.jetbrains.kotlin.idea.caches.project.ModuleSourceInfo
|
//import org.jetbrains.kotlin.idea.caches.project.ModuleSourceInfo
|
||||||
import org.jetbrains.kotlin.idea.caches.project.getModuleInfo
|
//import org.jetbrains.kotlin.idea.caches.project.getModuleInfo
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.withFirDeclaration
|
//import org.jetbrains.kotlin.idea.fir.low.level.api.api.withFirDeclaration
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.lazy.resolve.FirLazyDeclarationResolver
|
//import org.jetbrains.kotlin.idea.fir.low.level.api.lazy.resolve.FirLazyDeclarationResolver
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.lazy.resolve.ResolveType
|
//import org.jetbrains.kotlin.idea.fir.low.level.api.lazy.resolve.ResolveType
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.lazy.resolve.declarationCanBeLazilyResolved
|
//import org.jetbrains.kotlin.idea.fir.low.level.api.lazy.resolve.declarationCanBeLazilyResolved
|
||||||
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
//import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
||||||
import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor
|
//import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor
|
||||||
import org.jetbrains.kotlin.psi.KtCallableDeclaration
|
//import org.jetbrains.kotlin.psi.KtCallableDeclaration
|
||||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
//import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
//import org.jetbrains.kotlin.psi.KtDeclaration
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
//import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.collectDescendantsOfType
|
//import org.jetbrains.kotlin.psi.psiUtil.collectDescendantsOfType
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
//import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||||
import java.io.File
|
//import java.io.File
|
||||||
|
//
|
||||||
/**
|
///**
|
||||||
* Test that we do not resolve declarations we do not need & do not build bodies for them
|
// * Test that we do not resolve declarations we do not need & do not build bodies for them
|
||||||
*/
|
// */
|
||||||
abstract class AbstractFirLazyDeclarationResolveTest : KotlinLightCodeInsightFixtureTestCase() {
|
//abstract class AbstractFirLazyDeclarationResolveTest : KotlinLightCodeInsightFixtureTestCase() {
|
||||||
override fun isFirPlugin(): Boolean = true
|
// override fun isFirPlugin(): Boolean = true
|
||||||
|
//
|
||||||
private fun FirFile.findResolveMe(): FirDeclaration {
|
// private fun FirFile.findResolveMe(): FirDeclaration {
|
||||||
val visitor = object : FirVisitorVoid() {
|
// val visitor = object : FirVisitorVoid() {
|
||||||
var result: FirDeclaration? = null
|
// var result: FirDeclaration? = null
|
||||||
override fun visitElement(element: FirElement) {
|
// override fun visitElement(element: FirElement) {
|
||||||
if (result != null) return
|
// if (result != null) return
|
||||||
val declaration = element.realPsi as? KtDeclaration
|
// val declaration = element.realPsi as? KtDeclaration
|
||||||
if (element is FirDeclaration && declaration != null && declaration.name == "resolveMe") {
|
// if (element is FirDeclaration && declaration != null && declaration.name == "resolveMe") {
|
||||||
result = element
|
// result = element
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
element.acceptChildren(this)
|
// element.acceptChildren(this)
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
}
|
// }
|
||||||
accept(visitor)
|
// accept(visitor)
|
||||||
return visitor.result ?: error("declaration with name `resolveMe` was not found")
|
// return visitor.result ?: error("declaration with name `resolveMe` was not found")
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
fun doTest(path: String) {
|
// fun doTest(path: String) {
|
||||||
val testDataFile = File(path)
|
// val testDataFile = File(path)
|
||||||
val ktFile = myFixture.configureByText(testDataFile.name, FileUtil.loadFile(testDataFile)) as KtFile
|
// val ktFile = myFixture.configureByText(testDataFile.name, FileUtil.loadFile(testDataFile)) as KtFile
|
||||||
val rendererOption = FirRenderer.RenderMode.WithDeclarationAttributes.copy(renderDeclarationResolvePhase = true)
|
// val rendererOption = FirRenderer.RenderMode.WithDeclarationAttributes.copy(renderDeclarationResolvePhase = true)
|
||||||
val resultBuilder = StringBuilder()
|
// val resultBuilder = StringBuilder()
|
||||||
resolveWithClearCaches(ktFile) { firModuleResolveState ->
|
// resolveWithClearCaches(ktFile) { firModuleResolveState ->
|
||||||
check(firModuleResolveState is FirModuleResolveStateImpl)
|
// check(firModuleResolveState is FirModuleResolveStateImpl)
|
||||||
val declarationToResolve = firModuleResolveState
|
// val declarationToResolve = firModuleResolveState
|
||||||
.getOrBuildFirFile(ktFile)
|
// .getOrBuildFirFile(ktFile)
|
||||||
.findResolveMe()
|
// .findResolveMe()
|
||||||
for (currentPhase in FirResolvePhase.values()) {
|
// for (currentPhase in FirResolvePhase.values()) {
|
||||||
if (currentPhase.pluginPhase || currentPhase == FirResolvePhase.SEALED_CLASS_INHERITORS) continue
|
// if (currentPhase.pluginPhase || currentPhase == FirResolvePhase.SEALED_CLASS_INHERITORS) continue
|
||||||
declarationToResolve.withFirDeclaration(firModuleResolveState, currentPhase) {
|
// declarationToResolve.withFirDeclaration(firModuleResolveState, currentPhase) {
|
||||||
val firFile = firModuleResolveState.getOrBuildFirFile(ktFile)
|
// val firFile = firModuleResolveState.getOrBuildFirFile(ktFile)
|
||||||
resultBuilder.append("\n${currentPhase.name}:\n")
|
// resultBuilder.append("\n${currentPhase.name}:\n")
|
||||||
resultBuilder.append(firFile.render(rendererOption))
|
// resultBuilder.append(firFile.render(rendererOption))
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
for (resolveType in ResolveType.values()) {
|
// for (resolveType in ResolveType.values()) {
|
||||||
resolveWithClearCaches(ktFile) { firModuleResolveState ->
|
// resolveWithClearCaches(ktFile) { firModuleResolveState ->
|
||||||
check(firModuleResolveState is FirModuleResolveStateImpl)
|
// check(firModuleResolveState is FirModuleResolveStateImpl)
|
||||||
val declarationToResolve = firModuleResolveState
|
// val declarationToResolve = firModuleResolveState
|
||||||
.getOrBuildFirFile(ktFile)
|
// .getOrBuildFirFile(ktFile)
|
||||||
.findResolveMe()
|
// .findResolveMe()
|
||||||
|
//
|
||||||
when (resolveType) {
|
// when (resolveType) {
|
||||||
ResolveType.CallableReturnType,
|
// ResolveType.CallableReturnType,
|
||||||
ResolveType.CallableBodyResolve,
|
// ResolveType.CallableBodyResolve,
|
||||||
ResolveType.CallableContracts -> if (declarationToResolve !is FirCallableDeclaration<*>) return@resolveWithClearCaches
|
// ResolveType.CallableContracts -> if (declarationToResolve !is FirCallableDeclaration<*>) return@resolveWithClearCaches
|
||||||
ResolveType.ClassSuperTypes -> if (declarationToResolve !is FirClassLikeDeclaration<*>) return@resolveWithClearCaches
|
// ResolveType.ClassSuperTypes -> if (declarationToResolve !is FirClassLikeDeclaration<*>) return@resolveWithClearCaches
|
||||||
else -> {
|
// else -> {
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
declarationToResolve.withFirDeclaration(resolveType, firModuleResolveState) {
|
// declarationToResolve.withFirDeclaration(resolveType, firModuleResolveState) {
|
||||||
val firFile = firModuleResolveState.getOrBuildFirFile(ktFile)
|
// val firFile = firModuleResolveState.getOrBuildFirFile(ktFile)
|
||||||
resultBuilder.append("\n${resolveType.name}:\n")
|
// resultBuilder.append("\n${resolveType.name}:\n")
|
||||||
resultBuilder.append(firFile.render(rendererOption))
|
// resultBuilder.append(firFile.render(rendererOption))
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
resolveWithClearCaches(ktFile) { firModuleResolveState ->
|
// resolveWithClearCaches(ktFile) { firModuleResolveState ->
|
||||||
check(firModuleResolveState is FirModuleResolveStateImpl)
|
// check(firModuleResolveState is FirModuleResolveStateImpl)
|
||||||
val firFile = firModuleResolveState.getOrBuildFirFile(ktFile)
|
// val firFile = firModuleResolveState.getOrBuildFirFile(ktFile)
|
||||||
firFile.withFirDeclaration(firModuleResolveState, FirResolvePhase.BODY_RESOLVE) {
|
// firFile.withFirDeclaration(firModuleResolveState, FirResolvePhase.BODY_RESOLVE) {
|
||||||
resultBuilder.append("\nFILE RAW TO BODY:\n")
|
// resultBuilder.append("\nFILE RAW TO BODY:\n")
|
||||||
resultBuilder.append(firFile.render(rendererOption))
|
// resultBuilder.append(firFile.render(rendererOption))
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
val expectedFileName = testDataFile.name.replace(".kt", ".txt")
|
// val expectedFileName = testDataFile.name.replace(".kt", ".txt")
|
||||||
KotlinTestUtils.assertEqualsToFile(testDataFile.parentFile.resolve(expectedFileName), resultBuilder.toString())
|
// KotlinTestUtils.assertEqualsToFile(testDataFile.parentFile.resolve(expectedFileName), resultBuilder.toString())
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
override fun getProjectDescriptor(): LightProjectDescriptor = KotlinWithJdkAndRuntimeLightProjectDescriptor.INSTANCE
|
// override fun getProjectDescriptor(): LightProjectDescriptor = KotlinWithJdkAndRuntimeLightProjectDescriptor.INSTANCE
|
||||||
}
|
//}
|
||||||
+80
-80
@@ -1,80 +1,80 @@
|
|||||||
/*
|
///*
|
||||||
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
// * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
// * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
// */
|
||||||
|
//
|
||||||
package org.jetbrains.kotlin.idea.fir.low.level.api;
|
//package org.jetbrains.kotlin.idea.fir.low.level.api;
|
||||||
|
//
|
||||||
import com.intellij.testFramework.TestDataPath;
|
//import com.intellij.testFramework.TestDataPath;
|
||||||
import org.jetbrains.kotlin.test.util.KtTestUtil;
|
//import org.jetbrains.kotlin.test.util.KtTestUtil;
|
||||||
import org.jetbrains.kotlin.test.TestMetadata;
|
//import org.jetbrains.kotlin.test.TestMetadata;
|
||||||
import org.junit.jupiter.api.Nested;
|
//import org.junit.jupiter.api.Nested;
|
||||||
import org.junit.jupiter.api.Test;
|
//import org.junit.jupiter.api.Test;
|
||||||
|
//
|
||||||
import java.io.File;
|
//import java.io.File;
|
||||||
import java.util.regex.Pattern;
|
//import java.util.regex.Pattern;
|
||||||
|
//
|
||||||
/** This class is generated by {@link GenerateNewCompilerTests.kt}. DO NOT MODIFY MANUALLY */
|
///** This class is generated by {@link GenerateNewCompilerTests.kt}. DO NOT MODIFY MANUALLY */
|
||||||
@SuppressWarnings("all")
|
//@SuppressWarnings("all")
|
||||||
@TestMetadata("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve")
|
//@TestMetadata("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve")
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
//@TestDataPath("$PROJECT_ROOT")
|
||||||
public class FirLazyDeclarationResolveTestGenerated extends AbstractFirLazyDeclarationResolveTest {
|
//public class FirLazyDeclarationResolveTestGenerated extends AbstractFirLazyDeclarationResolveTest {
|
||||||
@Test
|
// @Test
|
||||||
public void testAllFilesPresentInLazyResolve() throws Exception {
|
// public void testAllFilesPresentInLazyResolve() throws Exception {
|
||||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
// KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Test
|
// @Test
|
||||||
@TestMetadata("classMembers.kt")
|
// @TestMetadata("classMembers.kt")
|
||||||
public void testClassMembers() throws Exception {
|
// public void testClassMembers() throws Exception {
|
||||||
runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/classMembers.kt");
|
// runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/classMembers.kt");
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Test
|
// @Test
|
||||||
@TestMetadata("delegates.kt")
|
// @TestMetadata("delegates.kt")
|
||||||
public void testDelegates() throws Exception {
|
// public void testDelegates() throws Exception {
|
||||||
runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/delegates.kt");
|
// runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/delegates.kt");
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Test
|
// @Test
|
||||||
@TestMetadata("propertyWithGetter.kt")
|
// @TestMetadata("propertyWithGetter.kt")
|
||||||
public void testPropertyWithGetter() throws Exception {
|
// public void testPropertyWithGetter() throws Exception {
|
||||||
runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/propertyWithGetter.kt");
|
// runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/propertyWithGetter.kt");
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Test
|
// @Test
|
||||||
@TestMetadata("propertyWithGetterAndSetter.kt")
|
// @TestMetadata("propertyWithGetterAndSetter.kt")
|
||||||
public void testPropertyWithGetterAndSetter() throws Exception {
|
// public void testPropertyWithGetterAndSetter() throws Exception {
|
||||||
runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/propertyWithGetterAndSetter.kt");
|
// runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/propertyWithGetterAndSetter.kt");
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Test
|
// @Test
|
||||||
@TestMetadata("propertyWithInitializer.kt")
|
// @TestMetadata("propertyWithInitializer.kt")
|
||||||
public void testPropertyWithInitializer() throws Exception {
|
// public void testPropertyWithInitializer() throws Exception {
|
||||||
runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/propertyWithInitializer.kt");
|
// runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/propertyWithInitializer.kt");
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Test
|
// @Test
|
||||||
@TestMetadata("secondaryConstructor.kt")
|
// @TestMetadata("secondaryConstructor.kt")
|
||||||
public void testSecondaryConstructor() throws Exception {
|
// public void testSecondaryConstructor() throws Exception {
|
||||||
runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/secondaryConstructor.kt");
|
// runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/secondaryConstructor.kt");
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Test
|
// @Test
|
||||||
@TestMetadata("topLevelFunctions.kt")
|
// @TestMetadata("topLevelFunctions.kt")
|
||||||
public void testTopLevelFunctions() throws Exception {
|
// public void testTopLevelFunctions() throws Exception {
|
||||||
runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/topLevelFunctions.kt");
|
// runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/topLevelFunctions.kt");
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Test
|
// @Test
|
||||||
@TestMetadata("topLevelFunctionsWithExpressionBodyAndExplicitType.kt")
|
// @TestMetadata("topLevelFunctionsWithExpressionBodyAndExplicitType.kt")
|
||||||
public void testTopLevelFunctionsWithExpressionBodyAndExplicitType() throws Exception {
|
// public void testTopLevelFunctionsWithExpressionBodyAndExplicitType() throws Exception {
|
||||||
runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/topLevelFunctionsWithExpressionBodyAndExplicitType.kt");
|
// runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/topLevelFunctionsWithExpressionBodyAndExplicitType.kt");
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Test
|
// @Test
|
||||||
@TestMetadata("topLevelFunctionsWithImplicitType.kt")
|
// @TestMetadata("topLevelFunctionsWithImplicitType.kt")
|
||||||
public void testTopLevelFunctionsWithImplicitType() throws Exception {
|
// public void testTopLevelFunctionsWithImplicitType() throws Exception {
|
||||||
runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/topLevelFunctionsWithImplicitType.kt");
|
// runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/topLevelFunctionsWithImplicitType.kt");
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
|
|||||||
Reference in New Issue
Block a user