No subpackages of current package resolved by short name

This commit is contained in:
Valentin Kipyatkov
2014-12-25 17:14:28 +03:00
parent 817b86a820
commit a383a82ddd
9 changed files with 16 additions and 8 deletions
@@ -23,6 +23,7 @@ import kotlin.Function1;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.descriptors.PackageViewDescriptor; import org.jetbrains.jet.lang.descriptors.PackageViewDescriptor;
import org.jetbrains.jet.lang.psi.*; 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.ImportPath;
import org.jetbrains.jet.lang.resolve.JetModuleUtil; import org.jetbrains.jet.lang.resolve.JetModuleUtil;
import org.jetbrains.jet.lang.resolve.TemporaryBindingTrace; import org.jetbrains.jet.lang.resolve.TemporaryBindingTrace;
@@ -97,7 +98,7 @@ public class ScopeProvider {
public JetScope[] collectFileScopes(@NotNull JetFile file) { public JetScope[] collectFileScopes(@NotNull JetFile file) {
List<JetScope> list = new ArrayList<JetScope>(); List<JetScope> list = new ArrayList<JetScope>();
list.add(getFilePackageDescriptor(file).getMemberScope()); list.add(new ClassesInPackageScope(getFilePackageDescriptor(file)));
list.add(JetModuleUtil.getSubpackagesOfRootScope(resolveSession.getModuleDescriptor())); list.add(JetModuleUtil.getSubpackagesOfRootScope(resolveSession.getModuleDescriptor()));
list.add(explicitImportScopes.invoke(file)); list.add(explicitImportScopes.invoke(file));
list.addAll(additionalFileScopeProvider.scopes(file)); list.addAll(additionalFileScopeProvider.scopes(file));
@@ -3,6 +3,6 @@
// This is a stub test. One should not extend Java packages that come from libraries. // This is a stub test. One should not extend Java packages that come from libraries.
package java package java
val c : lang.Class<*>? = null val c : java.lang.Class<*>? = null
val <T> Array<T>?.length : Int get() = if (this != null) <!DEBUG_INFO_SMARTCAST!>this<!>.size() else throw NullPointerException() val <T> Array<T>?.length : Int get() = if (this != null) <!DEBUG_INFO_SMARTCAST!>this<!>.size() else throw NullPointerException()
@@ -4,5 +4,5 @@ package root.a
// FILE: b.kt // FILE: b.kt
package root package root
val x = <!EXPRESSION_EXPECTED_PACKAGE_FOUND!>a<!> val x = root.<!EXPRESSION_EXPECTED_PACKAGE_FOUND!>a<!>
val y2 = <!PACKAGE_IS_NOT_AN_EXPRESSION!>package<!> val y2 = <!PACKAGE_IS_NOT_AN_EXPRESSION!>package<!>
@@ -1,7 +1,7 @@
package package
package root { package root {
internal val x: [ERROR : Type for a] internal val x: [ERROR : Type for root.a]
internal val y2: [ERROR : Type for package] internal val y2: [ERROR : Type for package]
package root.a { package root.a {
@@ -24,9 +24,10 @@ package foobar.a
// FILE: b.kt // FILE: b.kt
package foobar package foobar
val x1 = a.a val x1 = <!UNRESOLVED_REFERENCE!>a<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a<!>
val x2 = foobar.a.a
val y1 = a.b val y1 = foobar.a.b
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
@@ -1,7 +1,8 @@
package package
package foobar { package foobar {
internal val x1: java.util.List<kotlin.Int>? = null internal val x1: [ERROR : <ERROR PROPERTY TYPE>]
internal val x2: java.util.List<kotlin.Int>? = null
internal val y1: kotlin.List<kotlin.Int>? = null internal val y1: kotlin.List<kotlin.Int>? = null
internal fun </*0*/ O> done(/*0*/ result: O): foobar.Iteratee<kotlin.Any?, O> internal fun </*0*/ O> done(/*0*/ result: O): foobar.Iteratee<kotlin.Any?, O>
@@ -1,10 +1,13 @@
// FILE: a.kt // FILE: a.kt
package example.ns package example.ns
val y : Any? = 2 val y : Any? = 2
// FILE: b.kt // FILE: b.kt
package example package example
import example.ns
object Obj { object Obj {
val y : Any? = 2 val y : Any? = 2
} }
@@ -5,4 +5,4 @@ val y: Any? = 2
// FILE: b.kt // FILE: b.kt
package example package example
val x: Int = if (ns.y is Int) <!DEBUG_INFO_SMARTCAST!>ns.y<!> else 2 val x: Int = if (example.ns.y is Int) <!DEBUG_INFO_SMARTCAST!>example.ns.y<!> else 2
@@ -1,3 +1,5 @@
package a package a
import a.b
<selection>val c = b.B()</selection> <selection>val c = b.B()</selection>