From 7588c8d81f2b583e9bc40ca33942cc798b5b88b0 Mon Sep 17 00:00:00 2001 From: Svetlana Isakova Date: Fri, 12 Apr 2013 19:57:42 +0400 Subject: [PATCH] mark 'unresolved' if invoke method on type parameter instead of resolve to error element --- .../resolve/calls/CallExpressionResolver.java | 15 +++++++++++++-- .../incompleteCode/typeParameterOnLhsOfDot.kt | 4 ++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallExpressionResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallExpressionResolver.java index 1d6e8a4caf9..a3dd3fcc84b 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallExpressionResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallExpressionResolver.java @@ -67,7 +67,7 @@ public class CallExpressionResolver { @Nullable private JetType lookupNamespaceOrClassObject(@NotNull JetSimpleNameExpression expression, @NotNull ResolutionContext context) { Name referencedName = expression.getReferencedNameAsName(); - ClassifierDescriptor classifier = context.scope.getClassifier(referencedName); + final ClassifierDescriptor classifier = context.scope.getClassifier(referencedName); if (classifier != null) { JetType classObjectType = classifier.getClassObjectType(); if (classObjectType != null) { @@ -103,7 +103,18 @@ public class CallExpressionResolver { JetScope scopeForStaticMembersResolution = classifier instanceof ClassDescriptor ? getStaticNestedClassesScope((ClassDescriptor) classifier) - : ErrorUtils.createErrorScope("Error scope for type parameter on the left hand side of dot"); + : new JetScopeImpl() { + @NotNull + @Override + public DeclarationDescriptor getContainingDeclaration() { + return classifier; + } + + @Override + public String toString() { + return "Scope for the type parameter on the left hand side of dot"; + } + }; return new NamespaceType(referencedName, scopeForStaticMembersResolution); } temporaryTrace.commit(); diff --git a/compiler/testData/diagnostics/tests/incompleteCode/typeParameterOnLhsOfDot.kt b/compiler/testData/diagnostics/tests/incompleteCode/typeParameterOnLhsOfDot.kt index a08af6d9d7c..fff988a87f1 100644 --- a/compiler/testData/diagnostics/tests/incompleteCode/typeParameterOnLhsOfDot.kt +++ b/compiler/testData/diagnostics/tests/incompleteCode/typeParameterOnLhsOfDot.kt @@ -3,6 +3,6 @@ package bar class S { fun foo() { T - T.create() + T.create() } -} +} \ No newline at end of file