From b5355358a56f359336903ebfe46d5c69dacf7c8c Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Tue, 17 May 2016 15:07:48 +0300 Subject: [PATCH] Remove SAFE_CALL_IN_QUALIFIER diagnostic which was never reported See UNEXPECTED_SAFE_CALL which is reported instead --- .../src/org/jetbrains/kotlin/diagnostics/Errors.java | 4 +--- .../kotlin/diagnostics/rendering/DefaultErrorMessages.java | 2 -- .../kotlin/resolve/QualifiedExpressionResolver.kt | 7 ++----- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java index 39a846e8e09..5686c1e0f91 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java @@ -28,9 +28,9 @@ import org.jetbrains.kotlin.lexer.KtModifierKeywordToken; import org.jetbrains.kotlin.lexer.KtTokens; import org.jetbrains.kotlin.name.Name; import org.jetbrains.kotlin.psi.*; +import org.jetbrains.kotlin.resolve.VarianceConflictDiagnosticData; import org.jetbrains.kotlin.resolve.calls.inference.InferenceErrorData; import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall; -import org.jetbrains.kotlin.resolve.VarianceConflictDiagnosticData; import org.jetbrains.kotlin.types.KotlinType; import java.lang.reflect.Field; @@ -502,8 +502,6 @@ public interface Errors { DiagnosticFactory1 ILLEGAL_SELECTOR = DiagnosticFactory1.create(ERROR); - DiagnosticFactory0 SAFE_CALL_IN_QUALIFIER = DiagnosticFactory0.create(ERROR); - DiagnosticFactory2 FUNCTION_EXPECTED = DiagnosticFactory2.create(ERROR); DiagnosticFactory2 FUNCTION_CALL_EXPECTED = DiagnosticFactory2.create(ERROR, CALL_EXPRESSION); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/DefaultErrorMessages.java b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/DefaultErrorMessages.java index 8aab750e963..dd01cec7677 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/DefaultErrorMessages.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/DefaultErrorMessages.java @@ -473,8 +473,6 @@ public class DefaultErrorMessages { MAP.put(ILLEGAL_SELECTOR, "Expression ''{0}'' cannot be a selector (occur after a dot)", STRING); - MAP.put(SAFE_CALL_IN_QUALIFIER, "Safe call is not allowed for qualifier"); - MAP.put(NO_TAIL_CALLS_FOUND, "A function is marked as tail-recursive but no tail calls are found"); MAP.put(VALUE_PARAMETER_WITH_NO_TYPE_ANNOTATION, "A type annotation is required on a value parameter"); MAP.put(BREAK_OR_CONTINUE_OUTSIDE_A_LOOP, "'break' and 'continue' are only allowed inside a loop"); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/QualifiedExpressionResolver.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/QualifiedExpressionResolver.kt index 8a04f46089f..b257ae60b7e 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/QualifiedExpressionResolver.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/QualifiedExpressionResolver.kt @@ -141,7 +141,7 @@ class QualifiedExpressionResolver(val symbolUsageValidator: SymbolUsageValidator packageFragmentForVisibilityCheck: PackageFragmentDescriptor? ): ImportingScope? { // null if some error happened val importedReference = importDirective.importedReference ?: return null - val path = importedReference.asQualifierPartList(trace) + val path = importedReference.asQualifierPartList() val lastPart = path.lastOrNull() ?: return null val packageFragmentForCheck = when { @@ -270,7 +270,7 @@ class QualifiedExpressionResolver(val symbolUsageValidator: SymbolUsageValidator storeResult(trace, lastPart.expression, descriptors, shouldBeVisibleFrom = null, position = QualifierPosition.IMPORT, isQualifier = false) } - private fun KtExpression.asQualifierPartList(trace: BindingTrace): List { + private fun KtExpression.asQualifierPartList(): List { val result = SmartList() var expression: KtExpression? = this loop@ while (expression != null) { @@ -284,9 +284,6 @@ class QualifiedExpressionResolver(val symbolUsageValidator: SymbolUsageValidator result.add(QualifierPart(it.getReferencedNameAsName(), it)) } expression = expression.receiverExpression - if (expression is KtSafeQualifiedExpression) { - trace.report(Errors.SAFE_CALL_IN_QUALIFIER.on(expression.operationTokenNode.psi)) - } } else -> expression = null }