Eliminate a set of warnings, mostly nullability ones

This commit is contained in:
Mikhail Glukhikh
2017-08-15 11:05:56 +03:00
committed by Mikhail Glukhikh
parent 82fc221470
commit 3623f581b8
52 changed files with 49 additions and 74 deletions
@@ -63,10 +63,8 @@ class GenericReplCompilingEvaluator(val compiler: ReplCompiler,
is ReplEvalResult.ValueResult,
is ReplEvalResult.UnitResult ->
result
else -> throw IllegalStateException("Unknown evaluator result type $compiled")
}
}
else -> throw IllegalStateException("Unknown compiler result type $compiled")
}
}
}
@@ -325,7 +325,7 @@ object KotlinCompilerClient {
if (err != null) {
reportingTargets.report(DaemonReportCategory.INFO,
(if (attempts >= DAEMON_CONNECT_CYCLE_ATTEMPTS || !autostart) "no more retries on: " else "retrying($attempts) on: ")
+ err?.toString())
+ err.toString())
}
if (attempts++ > DAEMON_CONNECT_CYCLE_ATTEMPTS || !autostart) {
@@ -51,8 +51,7 @@ class ExternalFunChecker : SimpleDeclarationChecker {
if (DescriptorUtils.isInterface(descriptor.containingDeclaration)) {
diagnosticHolder.report(ErrorsJvm.EXTERNAL_DECLARATION_IN_INTERFACE.on(declaration))
}
else if (descriptor is CallableMemberDescriptor &&
descriptor.modality == Modality.ABSTRACT) {
else if (descriptor.modality == Modality.ABSTRACT) {
if (declaration is KtPropertyAccessor) {
diagnosticHolder.report(ErrorsJvm.EXTERNAL_DECLARATION_CANNOT_BE_ABSTRACT.on(declaration.property))
}
@@ -163,7 +163,7 @@ abstract class KtCodeFragment(
}
fun getContextContainingFile(): KtFile? {
return (getOriginalContext() as? KtElement)?.containingKtFile
return getOriginalContext()?.containingKtFile
}
fun getOriginalContext(): KtElement? {
@@ -40,7 +40,7 @@ class KtEnumEntrySuperclassReferenceExpression :
get() = calcReferencedElement()!!
private fun calcReferencedElement(): KtClass? {
val owner = this.getStrictParentOfType<KtEnumEntry>() as? KtEnumEntry
val owner = this.getStrictParentOfType<KtEnumEntry>()
return owner?.parent?.parent as? KtClass
}
@@ -65,7 +65,7 @@ object ConstModifierChecker : SimpleDeclarationChecker {
return Errors.CONST_VAL_WITH_DELEGATE.on(declaration.delegate!!).nonApplicable()
}
if (descriptor is PropertyDescriptor && !descriptor.getter!!.isDefault) {
if (!descriptor.getter!!.isDefault) {
return Errors.CONST_VAL_WITH_GETTER.on(declaration.getter!!).nonApplicable()
}
@@ -90,6 +90,7 @@ object LabelResolver {
if (parent is KtValueArgument) {
// f ({}) or f(p = {}) or f (fun () {})
// NB: parent of KtElement is really nullable!!!
val argList = parent.parent ?: return null
val call = argList.parent
if (call is KtCallExpression) {
@@ -272,7 +272,6 @@ class IncrementalJvmCompilerRunner(
// there is no point in updating annotation file since all files will be compiled anyway
kaptAnnotationsFileUpdater = null
}
else -> throw IllegalStateException("Unknown CompilationMode ${compilationMode::class.java}")
}
val currentBuildInfo = BuildInfo(startTS = System.currentTimeMillis())
@@ -195,7 +195,7 @@ private fun Scope.createTemporaryVariable(symbol: IrVariableSymbol, initializer:
}
private fun getDefaultParameterExpressionBody(irFunction: IrFunction, valueParameter: ValueParameterDescriptor):IrExpressionBody {
return irFunction.getDefault(valueParameter) as? IrExpressionBody ?: TODO("FIXME!!!")
return irFunction.getDefault(valueParameter) ?: TODO("FIXME!!!")
}
private fun maskParameterDescriptor(function: IrFunction, number: Int) =
@@ -23,7 +23,6 @@ import org.jetbrains.kotlin.codegen.AsmUtil.comparisonOperandType
import org.jetbrains.kotlin.codegen.AsmUtil.isPrimitive
import org.jetbrains.kotlin.codegen.OwnerKind
import org.jetbrains.kotlin.codegen.StackValue
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.ir.expressions.IrCall
import org.jetbrains.kotlin.ir.expressions.IrMemberAccessExpression
import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin
@@ -68,10 +67,10 @@ class IrCompareTo : IntrinsicMethod() {
val rightType = argTypes[1]
val parameterType = comparisonOperandType(leftType, rightType)
val newSignature = context.state.typeMapper.mapSignatureSkipGeneric(compareCall.descriptor as FunctionDescriptor, OwnerKind.IMPLEMENTATION)
val newSignature = context.state.typeMapper.mapSignatureSkipGeneric(compareCall.descriptor, OwnerKind.IMPLEMENTATION)
return object : IrIntrinsicFunction(compareCall, newSignature, context, listOf(parameterType, parameterType)) {
override fun invoke(v: InstructionAdapter, codegen: ExpressionCodegen, data: BlockInfo): StackValue {
val isPrimitiveIntrinsic = codegen.intrinsics.intrinsics.getIntrinsic(compareCall.descriptor as FunctionDescriptor) != null
val isPrimitiveIntrinsic = codegen.intrinsics.intrinsics.getIntrinsic(compareCall.descriptor) != null
val operationType: Type
val leftValue: StackValue
val rightValue: StackValue
@@ -81,7 +81,7 @@ class ContextAnnotator(val state: GenerationState) : ClassLowerWithContext() {
override fun lowerBefore(irClass: IrClass, data: IrClassContext) {
val descriptor = irClass.descriptor
val newContext: CodegenContext<*> = if (descriptor is FileClassDescriptor || descriptor !is ClassDescriptor) {
val newContext: CodegenContext<*> = if (descriptor is FileClassDescriptor) {
StubCodegenContext(descriptor, data.parent?.codegenContext, data)
}
else {
@@ -59,6 +59,6 @@ class IrFieldImpl(
}
override fun <D> transformChildren(transformer: IrElementTransformer<D>, data: D) {
initializer = initializer?.transform(transformer, data) as? IrExpressionBody
initializer = initializer?.transform(transformer, data)
}
}
@@ -114,7 +114,7 @@ class KtLightMethodImpl private constructor(
if (calculatingReturnType.get() == true) {
return KotlinJavaPsiFacade.getInstance(project).emptyModifierList
}
return super.getModifierList()!!
return super.getModifierList()
}
override fun getParameterList() = paramsList
@@ -235,7 +235,7 @@ fun KtLightMethod.isTraitFakeOverride(): Boolean {
}
val parentOfMethodOrigin = PsiTreeUtil.getParentOfType(methodOrigin, KtClassOrObject::class.java)
val thisClassDeclaration = (this.containingClass as KtLightClass).kotlinOrigin
val thisClassDeclaration = this.containingClass.kotlinOrigin
// Method was generated from declaration in some other trait
return (parentOfMethodOrigin != null && thisClassDeclaration !== parentOfMethodOrigin && KtPsiUtil.isTrait(parentOfMethodOrigin))
@@ -670,7 +670,7 @@ class CompilerDaemonTest : KotlinIntegrationTestBase() {
fun testDaemonReplLocalEvalNoParams() {
withDaemon { daemon ->
val repl = KotlinRemoteReplCompilerClient(daemon!!, null, CompileService.TargetPlatform.JVM,
val repl = KotlinRemoteReplCompilerClient(daemon, null, CompileService.TargetPlatform.JVM,
emptyArray(),
TestMessageCollector(),
classpathFromClassloader(),
@@ -685,7 +685,7 @@ class CompilerDaemonTest : KotlinIntegrationTestBase() {
fun testDaemonReplLocalEvalStandardTemplate() {
withDaemon { daemon ->
val repl = KotlinRemoteReplCompilerClient(daemon!!, null, CompileService.TargetPlatform.JVM, emptyArray(),
val repl = KotlinRemoteReplCompilerClient(daemon, null, CompileService.TargetPlatform.JVM, emptyArray(),
TestMessageCollector(),
classpathFromClassloader(),
"kotlin.script.templates.standard.ScriptTemplateWithArgs")
@@ -278,8 +278,6 @@ fun CallTypeAndReceiver<*, *>.receiverTypesWithIndex(
is CallTypeAndReceiver.ANNOTATION,
is CallTypeAndReceiver.UNKNOWN ->
return null
else -> throw RuntimeException() //TODO: see KT-9394
}
val resolutionScope = contextElement.getResolutionScope(bindingContext, resolutionFacade)
@@ -73,7 +73,7 @@ fun ClassDescriptor.findCallableMemberBySignature(
if (it.containingDeclaration != this) return@firstOrNull false
val overridability = OverridingUtil.DEFAULT.isOverridableBy(it as CallableDescriptor, signature, null).result
overridability == OVERRIDABLE || (allowOverridabilityConflicts && overridability == CONFLICT)
} as? CallableMemberDescriptor
}
}
fun TypeConstructor.supertypesWithAny(): Collection<KotlinType> {
@@ -128,7 +128,7 @@ private fun JavaDescriptorResolver.resolveConstructor(constructor: JavaConstruct
}
private fun JavaDescriptorResolver.resolveField(field: JavaField): PropertyDescriptor? {
return getContainingScope(field)?.getContributedVariables(field.name, NoLookupLocation.FROM_IDE)?.findByJavaElement(field) as? PropertyDescriptor
return getContainingScope(field)?.getContributedVariables(field.name, NoLookupLocation.FROM_IDE)?.findByJavaElement(field)
}
private fun JavaDescriptorResolver.getContainingScope(member: JavaMember): MemberScope? {
@@ -64,7 +64,7 @@ abstract class BaseKotlinCompilerSettings<T : Freezable> protected constructor()
override fun getState() = XmlSerializer.serialize(_settings, SKIP_DEFAULT_VALUES)
override fun loadState(state: Element) {
_settings = XmlSerializer.deserialize(state, _settings.javaClass) ?: createSettings()
_settings = XmlSerializer.deserialize(state, _settings.javaClass)
}
public override fun clone(): Any = super.clone()
@@ -139,7 +139,7 @@ class ExpressionsOfTypeProcessor(
if (runReadAction { searchScope is GlobalSearchScope && !FileTypeIndex.containsFileOfType(KotlinFileType.INSTANCE, searchScope) }) return
// for class from library always use plain search because we cannot search usages in compiled code (we could though)
if (classToSearch == null || !runReadAction { classToSearch.isValid && ProjectRootsUtil.isInProjectSource(classToSearch) }) {
if (!runReadAction { classToSearch.isValid && ProjectRootsUtil.isInProjectSource(classToSearch) }) {
possibleMatchesInScopeHandler(searchScope)
return
}
@@ -254,14 +254,14 @@ object KeywordCompletion {
is KtDeclarationWithInitializer -> {
val initializer = parent.initializer
if (prevParent == initializer) {
return buildFilterWithContext("val v = ", initializer!!, position)
return buildFilterWithContext("val v = ", initializer, position)
}
}
is KtParameter -> {
val default = parent.defaultValue
if (prevParent == default) {
return buildFilterWithContext("val v = ", default!!, position)
return buildFilterWithContext("val v = ", default, position)
}
}
@@ -568,7 +568,6 @@ class ExpectedInfos(
}
is PropertyGetterDescriptor -> {
if (descriptor !is PropertyGetterDescriptor) return null
val property = descriptor.correspondingProperty
ExpectedInfo.createForReturnValue(returnTypeToUse(property, hasExplicitReturnType), property)
}
@@ -40,7 +40,7 @@ val KOTLIN_PLUGIN_CLASSPATH_MARKER = "${KotlinWithGradleConfigurator.GROUP_ID}:$
abstract class KotlinGradleInspectionVisitor : BaseInspectionVisitor() {
override fun visitFile(file: GroovyFileBase) {
if (file == null || !FileUtilRt.extensionEquals(file.name, GradleConstants.EXTENSION)) return
if (!FileUtilRt.extensionEquals(file.name, GradleConstants.EXTENSION)) return
val fileIndex = ProjectRootManager.getInstance(file.project).fileIndex
@@ -30,7 +30,7 @@ object KotlinStdJSProjectDescriptor : KotlinLightProjectDescriptor() {
override fun getSdk(): Sdk? = null
override fun configureModule(module: Module, model: ModifiableRootModel) {
val configuration = JSLibraryStdDescription(module.project).createNewLibraryForTests() ?: error("Configuration should exist")
val configuration = JSLibraryStdDescription(module.project).createNewLibraryForTests()
val editor = NewLibraryEditor(configuration.libraryType, configuration.properties)
configuration.addRoots(editor)
@@ -69,7 +69,6 @@ fun Module.configureAs(kind: ModuleKind) {
this.configureAs(KotlinStdJSProjectDescriptor)
}
else -> throw IllegalArgumentException("Unknown kind=$kind")
}
}
@@ -62,7 +62,7 @@ class ConvertFunctionTypeReceiverToParameterIntention : SelfTargetingRangeIntent
class FunctionDefinitionInfo(element: KtFunction) : AbstractProcessableUsageInfo<KtFunction, ConversionData>(element) {
override fun process(data: ConversionData, elementsToShorten: MutableList<KtElement>) {
val function = element as? KtFunction ?: return
val function = element ?: return
val functionParameter = function.valueParameters.getOrNull(data.functionParameterIndex) ?: return
val functionType = functionParameter.typeReference?.typeElement as? KtFunctionType ?: return
val functionTypeParameterList = functionType.parameterList ?: return
@@ -196,7 +196,7 @@ class DeprecatedCallableAddReplaceWithIntention : SelfTargetingRangeIntention<Kt
val body = bodyExpression ?: return null
if (!hasBlockBody()) return body
val block = body as? KtBlockExpression ?: return null
val statement = block.statements.singleOrNull() as? KtExpression ?: return null
val statement = block.statements.singleOrNull() ?: return null
val returnsUnit = (analyze()[BindingContext.DECLARATION_TO_DESCRIPTOR, this] as? FunctionDescriptor)?.returnType?.isUnit() ?: return null
return when (statement) {
is KtReturnExpression -> statement.returnedExpression
@@ -150,7 +150,7 @@ class ChangeSuspendInHierarchyFix(
return DFS.dfs(
listOf(this),
{ (it as? FunctionDescriptor)?.getOverridables() ?: emptyList() },
{ it?.getOverridables() ?: emptyList() },
object : DFS.CollectingNodeHandler<FunctionDescriptor, FunctionDescriptor, ArrayList<FunctionDescriptor>>(ArrayList()) {
override fun afterChildren(current: FunctionDescriptor) {
if (current.getOverridables().isEmpty()) {
@@ -173,7 +173,7 @@ class ChangeSuspendInHierarchyFix(
containingClassDescriptor.defaultType,
currentClassDescriptor.defaultType
) ?: return@filter false
val signatureInCurrentClass = it.substitute(substitutor) as? FunctionDescriptor ?: return@filter false
val signatureInCurrentClass = it.substitute(substitutor) ?: return@filter false
OverridingUtil.DEFAULT.isOverridableBy(signatureInCurrentClass, currentDescriptor, null).result ==
OverridingUtil.OverrideCompatibilityInfo.Result.CONFLICT
}
@@ -586,7 +586,6 @@ class CallableBuilder(val config: CallableBuilderConfiguration) {
if (returnTypeRefs.isNotEmpty()) {
val returnType = typeCandidates[callableInfo.returnTypeInfo]!!.getTypeByRenderedType(
returnTypeRefs.map { it.text }
?: throw AssertionError("Expression for return type shouldn't be empty: declaration = ${declaration.text}")
)
if (returnType != null) {
// user selected a given type
@@ -603,7 +602,6 @@ class CallableBuilder(val config: CallableBuilderConfiguration) {
if (parameterTypeRef != null) {
val parameterType = parameterTypeExpressions[i].typeCandidates.getTypeByRenderedType(
listOf(parameterTypeRef.text)
?: throw AssertionError("Expression for parameter type shouldn't be empty: declaration = ${declaration.text}")
)
if (parameterType != null) {
replaceWithLongerName(listOf(parameterTypeRef), parameterType)
@@ -102,7 +102,6 @@ abstract class TypeInfo(val variance: Variance) {
val classDeclaration = receiverClassDescriptor?.let { DescriptorToSourceUtils.getSourceFromDescriptor(it) }
if (!config.isExtension && classDeclaration != null) classDeclaration else config.currentFile
}
else -> throw IllegalArgumentException("Unexpected placement: $placement")
}
return when (containingElement) {
is KtClassOrObject -> (containingElement.resolveToDescriptor() as? ClassDescriptorWithResolutionScopes)?.scopeForMemberDeclarationResolution
@@ -334,7 +334,7 @@ class KotlinFunctionCallUsage(
if (receiverValue is ExpressionReceiver && !receiverValue.expression.isValid) {
receiverValue = receiverValue.wrapInvalidated(element)
}
ArgumentInfo(param, index, resolvedArgument, receiverValue as? ReceiverValue)
ArgumentInfo(param, index, resolvedArgument, receiverValue)
}
val lastParameterIndex = newParameters.lastIndex
@@ -182,7 +182,7 @@ data class ExtractionData(
fun getPossibleTypes(expression: KtExpression, resolvedCall: ResolvedCall<*>?, context: BindingContext): Set<KotlinType> {
val dataFlowInfo = context.getDataFlowInfoAfter(expression)
(resolvedCall?.getImplicitReceiverValue() as? ImplicitReceiver)?.let {
resolvedCall?.getImplicitReceiverValue()?.let {
return dataFlowInfo.getCollectedTypes(DataFlowValueFactory.createDataFlowValueForStableReceiver(it))
}
@@ -282,7 +282,7 @@ open class KotlinIntroduceParameterHandler(
is KtExpression -> matchedElement
is KtStringTemplateEntryWithExpression -> matchedElement.expression
else -> null
} as? KtExpression
}
matchedExpr?.toRange()
}
}
@@ -211,7 +211,7 @@ object KotlinIntroduceVariableHandler : RefactoringActionHandler {
actualExpression = reference!!
diff = actualExpression.textRange.startOffset - emptyBody.textRange.startOffset
actualExpressionText = actualExpression.text
emptyBody = anchor!!.replace(emptyBody) as KtBlockExpression
emptyBody = anchor.replace(emptyBody) as KtBlockExpression
elem = findElementByOffsetAndText(diff, actualExpressionText, emptyBody)
if (elem != null) {
reference = elem as KtExpression
@@ -335,7 +335,7 @@ object KotlinIntroduceVariableHandler : RefactoringActionHandler {
is KtExpression -> candidate
is KtStringTemplateEntryWithExpression -> candidate.expression
else -> throw AssertionError("Unexpected candidate element: " + candidate.text)
} as? KtExpression
}
}
}
@@ -953,7 +953,7 @@ fun checkSuperMethodsWithPopup(
.setResizable(false)
.setRequestFocus(true)
.setItemChoosenCallback {
val value = list.selectedValue as? String ?: return@setItemChoosenCallback
val value = list.selectedValue ?: return@setItemChoosenCallback
val chosenElements = if (value == renameBase) deepestSuperMethods + declaration else listOf(declaration)
action(chosenElements)
}
@@ -100,8 +100,6 @@ fun extractClassMembers(
.mapTo(result) { KotlinMemberInfo(it as KtNamedDeclaration, isCompanionMember = isCompanion) }
}
if (aClass !is KtClassOrObject) return emptyList()
val result = ArrayList<KotlinMemberInfo>()
if (collectSuperTypeEntries) {
@@ -50,7 +50,7 @@ fun invokeMoveFilesOrDirectoriesRefactoring(
project.executeCommand(MoveHandler.REFACTORING_NAME) {
val selectedDir = (if (moveDialog != null) moveDialog.targetDirectory else initialTargetDirectory) ?: return@executeCommand
val updatePackageDirective = (moveDialog as? KotlinAwareMoveFilesOrDirectoriesDialog)?.updatePackageDirective
val updatePackageDirective = moveDialog?.updatePackageDirective
try {
val choice = if (elements.size > 1 || elements[0] is PsiDirectory) intArrayOf(-1) else null
@@ -76,7 +76,6 @@ fun markElements(
?: resolvedCall.extensionReceiver
?: resolvedCall.dispatchReceiver
?: return
if (receiver !is ReceiverValue) return
val implicitThis = receiver.type.constructor.declarationDescriptor as? ClassDescriptor ?: return
if (implicitThis.isCompanionObject
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.psi.KtSimpleNameExpression
class RenameImportAliasByReferenceHandler : AbstractReferenceSubstitutionRenameHandler(VariableInplaceRenameHandler()) {
override fun getElementToRename(dataContext: DataContext): PsiElement? {
val refExpr = getReferenceExpression(dataContext) as? KtSimpleNameExpression ?: return null
val refExpr = getReferenceExpression(dataContext) ?: return null
return refExpr.mainReference.getImportAlias()
}
}
@@ -47,7 +47,7 @@ class KotlinOverridingMethodsWithGenericsSearcher : QueryExecutor<PsiMethod, Ove
// we do additional search for such methods.
if (!callDescriptor.valueParameters.any { it.type.constructor.declarationDescriptor is TypeParameterDescriptor }) return true
val parentClass = runReadAction { method.containingClass }!!
val parentClass = runReadAction { method.containingClass }
return ClassInheritorsSearch.search(parentClass, p.scope, true).forEach(Processor { inheritor: PsiClass ->
val found = runReadAction {
@@ -153,13 +153,10 @@ abstract class AbstractConfigureKotlinTest : PlatformTestCase() {
collector.showNotification()
}
private fun getPathToJar(runtimeState: FileState, jarFromDist: String, jarFromTemp: String): String {
when (runtimeState) {
KotlinWithLibraryConfigurator.FileState.EXISTS -> return jarFromDist
KotlinWithLibraryConfigurator.FileState.COPY -> return jarFromTemp
KotlinWithLibraryConfigurator.FileState.DO_NOT_COPY -> return jarFromDist
}
return jarFromDist
private fun getPathToJar(runtimeState: FileState, jarFromDist: String, jarFromTemp: String) = when (runtimeState) {
KotlinWithLibraryConfigurator.FileState.EXISTS -> jarFromDist
KotlinWithLibraryConfigurator.FileState.COPY -> jarFromTemp
KotlinWithLibraryConfigurator.FileState.DO_NOT_COPY -> jarFromDist
}
protected fun configure(module: Module, jarState: FileState, configurator: KotlinProjectConfigurator) {
@@ -102,7 +102,7 @@ class InplaceRenameTest : LightPlatformCodeInsightTestCase() {
val element = file.findElementForRename<KtNameReferenceExpression>(editor.caretModel.offset)!!
assertNotNull(element)
val dataContext = SimpleDataContext.getSimpleContext(CommonDataKeys.PSI_ELEMENT.name, element!!,
val dataContext = SimpleDataContext.getSimpleContext(CommonDataKeys.PSI_ELEMENT.name, element,
getCurrentEditorDataContext())
val handler = RenameKotlinImplicitLambdaParameter()
@@ -157,7 +157,7 @@ class KotlinChangeSignatureTest : KotlinLightCodeInsightFixtureTestCase() {
val message = when {
e is BaseRefactoringProcessor.ConflictsInTestsException -> StringUtil.join(e.messages.sorted(), "\n")
e is CommonRefactoringUtil.RefactoringErrorHintException -> e.message
e is RuntimeException && e.message!!.startsWith("Refactoring cannot be performed") -> e.message
e.message!!.startsWith("Refactoring cannot be performed") -> e.message
else -> throw e
}
val conflictsFile = File(testDataPath + getTestName(false) + "Messages.txt")
@@ -235,7 +235,7 @@ class ForConverter(
// check if it's iteration through list indices
if (collectionSize is PsiMethodCallExpression && collectionSize.argumentList.expressions.isEmpty()) {
val methodExpr = collectionSize.methodExpression
if (methodExpr is PsiReferenceExpression && methodExpr.referenceName == "size") {
if (methodExpr.referenceName == "size") {
val qualifier = methodExpr.qualifierExpression
if (qualifier is PsiReferenceExpression /* we don't convert to .indices if qualifier is method call or something because of possible side effects */) {
val collectionType = PsiElementFactory.SERVICE.getInstance(project).createTypeByFQClassName(CommonClassNames.JAVA_UTIL_COLLECTION)
@@ -72,7 +72,7 @@ private fun Converter.convertTypeParameter(typeParameter: PsiTypeParameter): Typ
fun Converter.convertTypeParameterList(typeParameterList: PsiTypeParameterList?): TypeParameterList {
return if (typeParameterList != null)
TypeParameterList(typeParameterList.typeParameters!!.toList().map { convertTypeParameter(it) }).assignPrototype(typeParameterList)
TypeParameterList(typeParameterList.typeParameters.toList().map { convertTypeParameter(it) }).assignPrototype(typeParameterList)
else
TypeParameterList.Empty
}
@@ -1094,8 +1094,6 @@ open class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() {
touch(file)
Operation.DELETE ->
assertTrue("Can not delete file \"" + file.absolutePath + "\"", file.delete())
else ->
fail("Unknown operation")
}
}
}
@@ -28,7 +28,7 @@ import org.jetbrains.kotlin.jps.JpsKotlinCompilerSettings
internal class Kotlin2JsCompilerArgumentsSerializer : JpsProjectExtensionSerializer(KOTLIN_COMPILER_SETTINGS_FILE,
KOTLIN_TO_JS_COMPILER_ARGUMENTS_SECTION) {
override fun loadExtension(project: JpsProject, componentTag: Element) {
val settings = XmlSerializer.deserialize(componentTag, K2JSCompilerArguments::class.java) ?: K2JSCompilerArguments()
val settings = XmlSerializer.deserialize(componentTag, K2JSCompilerArguments::class.java)
JpsKotlinCompilerSettings.setK2JsCompilerArguments(project, settings)
}
@@ -30,7 +30,7 @@ internal class Kotlin2JvmCompilerArgumentsSerializer : JpsProjectExtensionSerial
KOTLIN_TO_JVM_COMPILER_ARGUMENTS_SECTION) {
override fun loadExtension(project: JpsProject, componentTag: Element) {
val settings = XmlSerializer.deserialize(componentTag, K2JVMCompilerArguments::class.java) ?: K2JVMCompilerArguments()
val settings = XmlSerializer.deserialize(componentTag, K2JVMCompilerArguments::class.java)
JpsKotlinCompilerSettings.setK2JvmCompilerArguments(project, settings)
}
@@ -31,7 +31,6 @@ internal class KotlinCommonCompilerArgumentsSerializer : JpsProjectExtensionSeri
override fun loadExtension(project: JpsProject, componentTag: Element) {
val settings = XmlSerializer.deserialize(componentTag, CommonCompilerArguments.DummyImpl::class.java)
?: CommonCompilerArguments.DummyImpl()
if (VersionComparatorUtil.compare(settings.languageVersion, settings.apiVersion) < 0) {
settings.apiVersion = settings.languageVersion
}
@@ -30,7 +30,7 @@ internal class KotlinCompilerSettingsSerializer : JpsProjectExtensionSerializer(
KOTLIN_COMPILER_SETTINGS_SECTION) {
override fun loadExtension(project: JpsProject, componentTag: Element) {
val settings = XmlSerializer.deserialize(componentTag, CompilerSettings::class.java) ?: CompilerSettings()
val settings = XmlSerializer.deserialize(componentTag, CompilerSettings::class.java)
JpsKotlinCompilerSettings.setCompilerSettings(project, settings)
}
@@ -397,9 +397,7 @@ abstract class BasicBoxTest(
FileUtil.writeToFile(File(incrementalDir, "$i.$METADATA_EXTENSION"), packagePart.proto)
}
incrementalService.headerMetadata?.let {
FileUtil.writeToFile(File(incrementalDir, HEADER_FILE), it)
}
FileUtil.writeToFile(File(incrementalDir, HEADER_FILE), incrementalService.headerMetadata)
}
processJsProgram(translationResult.program, units.filterIsInstance<TranslationUnit.SourceFile>().map { it.file })
@@ -21,7 +21,6 @@ import com.intellij.openapi.roots.ProjectRootManager
import com.intellij.openapi.util.SimpleModificationTracker
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.openapi.vfs.VirtualFileManager
import com.intellij.psi.PsiDirectory
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiFile
import com.intellij.psi.impl.PsiTreeChangeEventImpl
@@ -83,7 +82,7 @@ class AndroidPsiTreeChangePreprocessor : PsiTreeChangePreprocessor, SimpleModifi
val projectFileIndex = ProjectRootManager.getInstance(xmlFile.project).fileIndex
val module = projectFileIndex.getModuleForFile(xmlFile.virtualFile)
?: (element.parent as? PsiDirectory)?.let { projectFileIndex.getModuleForFile(it.virtualFile) }
?: element.parent?.let { projectFileIndex.getModuleForFile(it.virtualFile) }
if (module != null && !module.isDisposed) {
val resourceManager = AndroidLayoutXmlFileManager.getInstance(module) ?: return false
@@ -59,13 +59,11 @@ class KotlinUastLanguagePlugin : UastLanguagePlugin {
}
override fun convertElement(element: PsiElement, parent: UElement?, requiredType: Class<out UElement>?): UElement? {
if (element !is PsiElement) return null
return convertDeclaration(element, parent.toCallback(), requiredType)
?: KotlinConverter.convertPsiElement(element, parent.toCallback(), requiredType)
}
override fun convertElementWithParent(element: PsiElement, requiredType: Class<out UElement>?): UElement? {
if (element !is PsiElement) return null
if (element is PsiFile) return convertDeclaration(element, null, requiredType)
if (element is KtLightClassForFacade) return convertDeclaration(element, null, requiredType)