[Analysis API] render enhanced types
^KTIJ-28555 Fixed
This commit is contained in:
committed by
teamcity
parent
69fe60f494
commit
d935db9e3a
+9
-6
@@ -8,8 +8,8 @@ package org.jetbrains.kotlin.analysis.api.descriptors.components
|
||||
import org.jetbrains.kotlin.analysis.api.components.KtBuiltinTypes
|
||||
import org.jetbrains.kotlin.analysis.api.components.KtTypeProvider
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisContext
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.KtFe10AnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisFacade.AnalysisMode
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.KtFe10AnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.components.base.Fe10KtAnalysisSessionComponent
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.base.KtFe10Symbol
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.*
|
||||
@@ -20,13 +20,13 @@ import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.bas
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.psiBased.base.getResolutionScope
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.types.base.KtFe10Type
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.utils.PublicApproximatorConfiguration
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtNamedClassOrObjectSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.nameOrAnonymous
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtTypeNullability
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||
import org.jetbrains.kotlin.config.LanguageFeature
|
||||
import org.jetbrains.kotlin.descriptors.*
|
||||
@@ -49,11 +49,8 @@ import org.jetbrains.kotlin.types.error.ErrorType
|
||||
import org.jetbrains.kotlin.types.error.ErrorTypeKind
|
||||
import org.jetbrains.kotlin.types.error.ErrorUtils
|
||||
import org.jetbrains.kotlin.types.typeUtil.builtIns
|
||||
import org.jetbrains.kotlin.types.typeUtil.isGenericArrayOfTypeParameter
|
||||
import org.jetbrains.kotlin.types.typeUtil.isNothing
|
||||
import org.jetbrains.kotlin.types.typeUtil.makeNullable
|
||||
import org.jetbrains.kotlin.util.containingNonLocalDeclaration
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.applyIf
|
||||
|
||||
internal class KtFe10TypeProvider(
|
||||
override val analysisSession: KtFe10AnalysisSession
|
||||
@@ -83,6 +80,12 @@ internal class KtFe10TypeProvider(
|
||||
?.toKtType(analysisContext)
|
||||
}
|
||||
|
||||
override fun getEnhancedType(type: KtType): KtType? {
|
||||
require(type is KtFe10Type)
|
||||
val enhancement = (type.fe10Type as? TypeWithEnhancement)?.enhancement
|
||||
return enhancement?.toKtType(analysisContext)
|
||||
}
|
||||
|
||||
override fun buildSelfClassType(symbol: KtNamedClassOrObjectSymbol): KtType {
|
||||
val kotlinType = (getSymbolDescriptor(symbol) as? ClassDescriptor)?.defaultType
|
||||
?: ErrorUtils.createErrorType(ErrorTypeKind.UNRESOLVED_CLASS_TYPE, symbol.nameOrAnonymous.toString())
|
||||
|
||||
+12
@@ -124,6 +124,18 @@ public class Fe10IdeNormalAnalysisSourceModuleHLExpressionTypeTestGenerated exte
|
||||
runTest("analysis/analysis-api/testData/components/expressionTypeProvider/expressionType/intLiteral.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("javaEnhancedType.kt")
|
||||
public void testJavaEnhancedType() throws Exception {
|
||||
runTest("analysis/analysis-api/testData/components/expressionTypeProvider/expressionType/javaEnhancedType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("javaEnhancedTypeExternalAnnotation.kt")
|
||||
public void testJavaEnhancedTypeExternalAnnotation() throws Exception {
|
||||
runTest("analysis/analysis-api/testData/components/expressionTypeProvider/expressionType/javaEnhancedTypeExternalAnnotation.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("listElement_listOf.kt")
|
||||
public void testListElement_listOf() throws Exception {
|
||||
|
||||
+12
@@ -46,6 +46,18 @@ public class Fe10IdeNormalAnalysisSourceModuleSymbolRenderingByReferenceTestGene
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/symbolDeclarationRenderer/symbolRenderingByReference"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("javaEnhancedType.kt")
|
||||
public void testJavaEnhancedType() throws Exception {
|
||||
runTest("analysis/analysis-api/testData/components/symbolDeclarationRenderer/symbolRenderingByReference/javaEnhancedType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("javaEnhancedTypeExternalAnnotation.kt")
|
||||
public void testJavaEnhancedTypeExternalAnnotation() throws Exception {
|
||||
runTest("analysis/analysis-api/testData/components/symbolDeclarationRenderer/symbolRenderingByReference/javaEnhancedTypeExternalAnnotation.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("javaMethodWithMultipleTypeParametersBound.kt")
|
||||
public void testJavaMethodWithMultipleTypeParametersBound() throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user