From a07e164076770475cde72e423ea467765aae78f2 Mon Sep 17 00:00:00 2001 From: svtk Date: Fri, 13 Jan 2012 18:18:18 +0400 Subject: [PATCH] KT-955 Unable to import a Kotlin package into a Kotlin file with no package header --- .../resolve/java/JavaDescriptorResolver.java | 6 ++++ .../diagnostics/tests/scopes/kt955.jet | 28 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 compiler/testData/diagnostics/tests/scopes/kt955.jet diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java index 24820c7a34d..eb58b956aac 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java @@ -585,6 +585,12 @@ public class JavaDescriptorResolver { } public NamespaceDescriptor resolveNamespace(String qualifiedName) { + // First, let's check that there is no Kotlin package: + NamespaceDescriptor kotlinNamespaceDescriptor = semanticServices.getKotlinNamespaceDescriptor(qualifiedName); + if (kotlinNamespaceDescriptor != null) { + return kotlinNamespaceDescriptor; + } + PsiPackage psiPackage = findPackage(qualifiedName); if (psiPackage == null) { PsiClass psiClass = findClass(qualifiedName); diff --git a/compiler/testData/diagnostics/tests/scopes/kt955.jet b/compiler/testData/diagnostics/tests/scopes/kt955.jet new file mode 100644 index 00000000000..9c3ae3c51fb --- /dev/null +++ b/compiler/testData/diagnostics/tests/scopes/kt955.jet @@ -0,0 +1,28 @@ +//FILE:a.kt +//KT-955 Unable to import a Kotlin package into a Kotlin file with no package header +//+JDK + +package foo + +fun f() {} + +//FILE:b.kt +//+JDK + +import foo.* + +val m = f() // unresolved + +//FILE:c.kt +//+JDK + +package java.util + +fun bar() {} + +//FILE:d.kt +//+JDK + +import java.util.* + +val r = bar()