[FIR JS] Prepare the infrastructure for FIR JS tests

This commit is contained in:
Nikolay Lunyak
2021-12-24 12:16:57 +03:00
committed by teamcity
parent d2a8942353
commit 9a9beef25b
10 changed files with 644 additions and 40 deletions
@@ -6,6 +6,9 @@
package org.jetbrains.kotlin.js.analyze
import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.psi.search.DelegatingGlobalSearchScope
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.analyzer.AnalysisResult
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
import org.jetbrains.kotlin.builtins.functions.functionInterfacePackageFragmentProvider
@@ -24,8 +24,13 @@ import org.jetbrains.kotlin.types.model.KotlinTypeMarker
import org.jetbrains.kotlin.types.model.TypeSystemInferenceExtensionContext
import org.jetbrains.kotlin.types.model.TypeSystemInferenceExtensionContextDelegate
class JsTypeSpecificityComparator(val context: TypeSystemInferenceExtensionContextDelegate) : TypeSpecificityComparator {
// Replacing the TypeSystemInferenceExtensionContextDelegate with
// TypeSystemInferenceExtensionContext here leads to clashed registrations
// (for example, when trying to run IrJsTextTestCaseGenerated).
class JsTypeSpecificityComparator(context: TypeSystemInferenceExtensionContextDelegate) :
TypeSpecificityComparator by JsTypeSpecificityComparatorWithoutDelegate(context)
class JsTypeSpecificityComparatorWithoutDelegate(val context: TypeSystemInferenceExtensionContext) : TypeSpecificityComparator {
private fun TypeSystemInferenceExtensionContext.checkOnlyDynamicFlexibleType(type: KotlinTypeMarker) {
if (type.asFlexibleType() != null) {
assert(type.isDynamic()) {