From a383a82dddf30aed17706c3a38032b7ae0364634 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Thu, 25 Dec 2014 17:14:28 +0300 Subject: [PATCH] No subpackages of current package resolved by short name --- .../org/jetbrains/jet/lang/resolve/lazy/ScopeProvider.java | 3 ++- compiler/testData/diagnostics/tests/MergePackagesWithJava.kt | 2 +- compiler/testData/diagnostics/tests/PackageAsExpression.kt | 2 +- compiler/testData/diagnostics/tests/PackageAsExpression.txt | 2 +- compiler/testData/diagnostics/tests/PackageQualified.kt | 5 +++-- compiler/testData/diagnostics/tests/PackageQualified.txt | 3 ++- .../smartcasts/SmartcastsForStableIdentifiers.kt | 3 +++ .../diagnostics/tests/evaluate/qualifiedExpressions.kt | 2 +- idea/testData/copyPaste/imports/PackageView.kt | 2 ++ 9 files changed, 16 insertions(+), 8 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ScopeProvider.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ScopeProvider.java index b49a52b8883..59db2f4f033 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ScopeProvider.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ScopeProvider.java @@ -23,6 +23,7 @@ import kotlin.Function1; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.descriptors.PackageViewDescriptor; import org.jetbrains.jet.lang.psi.*; +import org.jetbrains.jet.lang.resolve.ClassesInPackageScope; import org.jetbrains.jet.lang.resolve.ImportPath; import org.jetbrains.jet.lang.resolve.JetModuleUtil; import org.jetbrains.jet.lang.resolve.TemporaryBindingTrace; @@ -97,7 +98,7 @@ public class ScopeProvider { public JetScope[] collectFileScopes(@NotNull JetFile file) { List list = new ArrayList(); - list.add(getFilePackageDescriptor(file).getMemberScope()); + list.add(new ClassesInPackageScope(getFilePackageDescriptor(file))); list.add(JetModuleUtil.getSubpackagesOfRootScope(resolveSession.getModuleDescriptor())); list.add(explicitImportScopes.invoke(file)); list.addAll(additionalFileScopeProvider.scopes(file)); diff --git a/compiler/testData/diagnostics/tests/MergePackagesWithJava.kt b/compiler/testData/diagnostics/tests/MergePackagesWithJava.kt index af548dc94a2..82dc1abf86a 100644 --- a/compiler/testData/diagnostics/tests/MergePackagesWithJava.kt +++ b/compiler/testData/diagnostics/tests/MergePackagesWithJava.kt @@ -3,6 +3,6 @@ // This is a stub test. One should not extend Java packages that come from libraries. package java -val c : lang.Class<*>? = null +val c : java.lang.Class<*>? = null val Array?.length : Int get() = if (this != null) this.size() else throw NullPointerException() diff --git a/compiler/testData/diagnostics/tests/PackageAsExpression.kt b/compiler/testData/diagnostics/tests/PackageAsExpression.kt index bd99f996f75..dde238f82cb 100644 --- a/compiler/testData/diagnostics/tests/PackageAsExpression.kt +++ b/compiler/testData/diagnostics/tests/PackageAsExpression.kt @@ -4,5 +4,5 @@ package root.a // FILE: b.kt package root -val x = a +val x = root.a val y2 = package \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/PackageAsExpression.txt b/compiler/testData/diagnostics/tests/PackageAsExpression.txt index 8bf62f4da06..9d507eb3585 100644 --- a/compiler/testData/diagnostics/tests/PackageAsExpression.txt +++ b/compiler/testData/diagnostics/tests/PackageAsExpression.txt @@ -1,7 +1,7 @@ package package root { - internal val x: [ERROR : Type for a] + internal val x: [ERROR : Type for root.a] internal val y2: [ERROR : Type for package] package root.a { diff --git a/compiler/testData/diagnostics/tests/PackageQualified.kt b/compiler/testData/diagnostics/tests/PackageQualified.kt index 16565f06fd6..319f55574f7 100644 --- a/compiler/testData/diagnostics/tests/PackageQualified.kt +++ b/compiler/testData/diagnostics/tests/PackageQualified.kt @@ -24,9 +24,10 @@ package foobar.a // FILE: b.kt package foobar -val x1 = a.a +val x1 = a.a +val x2 = foobar.a.a -val y1 = a.b +val y1 = foobar.a.b ///////////////////////////////////////////////////////////////////////// diff --git a/compiler/testData/diagnostics/tests/PackageQualified.txt b/compiler/testData/diagnostics/tests/PackageQualified.txt index aeb4f04af0a..05c921a5dbf 100644 --- a/compiler/testData/diagnostics/tests/PackageQualified.txt +++ b/compiler/testData/diagnostics/tests/PackageQualified.txt @@ -1,7 +1,8 @@ package package foobar { - internal val x1: java.util.List? = null + internal val x1: [ERROR : ] + internal val x2: java.util.List? = null internal val y1: kotlin.List? = null internal fun done(/*0*/ result: O): foobar.Iteratee diff --git a/compiler/testData/diagnostics/tests/dataFlowInfoTraversal/smartcasts/SmartcastsForStableIdentifiers.kt b/compiler/testData/diagnostics/tests/dataFlowInfoTraversal/smartcasts/SmartcastsForStableIdentifiers.kt index 2600df7d75d..a6dd76e1d22 100644 --- a/compiler/testData/diagnostics/tests/dataFlowInfoTraversal/smartcasts/SmartcastsForStableIdentifiers.kt +++ b/compiler/testData/diagnostics/tests/dataFlowInfoTraversal/smartcasts/SmartcastsForStableIdentifiers.kt @@ -1,10 +1,13 @@ // FILE: a.kt package example.ns + val y : Any? = 2 // FILE: b.kt package example +import example.ns + object Obj { val y : Any? = 2 } diff --git a/compiler/testData/diagnostics/tests/evaluate/qualifiedExpressions.kt b/compiler/testData/diagnostics/tests/evaluate/qualifiedExpressions.kt index 8f18a7b90ab..4dfd5002bd5 100644 --- a/compiler/testData/diagnostics/tests/evaluate/qualifiedExpressions.kt +++ b/compiler/testData/diagnostics/tests/evaluate/qualifiedExpressions.kt @@ -5,4 +5,4 @@ val y: Any? = 2 // FILE: b.kt package example -val x: Int = if (ns.y is Int) ns.y else 2 \ No newline at end of file +val x: Int = if (example.ns.y is Int) example.ns.y else 2 \ No newline at end of file diff --git a/idea/testData/copyPaste/imports/PackageView.kt b/idea/testData/copyPaste/imports/PackageView.kt index 7b8b5579b37..3ee1c041d0e 100644 --- a/idea/testData/copyPaste/imports/PackageView.kt +++ b/idea/testData/copyPaste/imports/PackageView.kt @@ -1,3 +1,5 @@ package a +import a.b + val c = b.B() \ No newline at end of file