Support creating flexible types in tests
Flexible types can not be created in normal user code, but if there's a special classifier `kotlin.internal.flexible.ft` with two type parameters, its occurrences are replaced by flexible types, e.g. `ft<Int, Int?>` becomes `Int!`
This commit is contained in:
@@ -41,6 +41,7 @@ import org.jetbrains.jet.lang.resolve.java.lazy.SingleModuleClassResolver
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinderFactory
|
||||
import org.jetbrains.jet.lang.resolve.java.TopDownAnalyzerFacadeForJVM
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.JavaDeclarationCheckerProvider
|
||||
import org.jetbrains.jet.lang.resolve.java.JavaFlexibleTypeCapabilitiesProvider
|
||||
|
||||
// NOTE: After making changes, you need to re-generate the injectors.
|
||||
// To do that, you can run main in this file.
|
||||
@@ -120,7 +121,8 @@ private fun generatorForTopDownAnalyzerForJvm() =
|
||||
javaClass<MutablePackageFragmentProvider>(),
|
||||
javaClass<JavaPropertyInitializerEvaluatorImpl>(),
|
||||
javaClass<JavaSourceElementFactoryImpl>(),
|
||||
javaClass<SingleModuleClassResolver>()
|
||||
javaClass<SingleModuleClassResolver>(),
|
||||
javaClass<JavaFlexibleTypeCapabilitiesProvider>()
|
||||
)
|
||||
field(javaClass<VirtualFileFinder>(), init = GivenExpression(javaClass<VirtualFileFinder>().getName() + ".SERVICE.getInstance(project)"))
|
||||
}
|
||||
@@ -185,7 +187,8 @@ private fun generatorForLazyResolveWithJava() =
|
||||
javaClass<PsiBasedMethodSignatureChecker>(),
|
||||
javaClass<PsiBasedExternalAnnotationResolver>(),
|
||||
javaClass<JavaPropertyInitializerEvaluatorImpl>(),
|
||||
javaClass<JavaSourceElementFactoryImpl>()
|
||||
javaClass<JavaSourceElementFactoryImpl>(),
|
||||
javaClass<JavaFlexibleTypeCapabilitiesProvider>()
|
||||
)
|
||||
field(javaClass<AdditionalCheckerProvider>(),
|
||||
init = GivenExpression(javaClass<JavaDeclarationCheckerProvider>().getName() + ".INSTANCE$"))
|
||||
|
||||
Reference in New Issue
Block a user