diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/Importer.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/Importer.kt index 10ac2e71673..b17719d6061 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/Importer.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/Importer.kt @@ -37,11 +37,6 @@ public class Importer { else if (descriptor is ClassDescriptor && QualifiedExpressionResolver.canAllUnderImportFromClass(descriptor)) { allUnderImportScopes.add(descriptor.getStaticScope()) allUnderImportScopes.add(descriptor.getUnsubstitutedInnerClassesScope()) - - val classObjectDescriptor = descriptor.getDefaultObjectDescriptor() - if (classObjectDescriptor != null) { - allUnderImportScopes.add(classObjectDescriptor.getUnsubstitutedInnerClassesScope()) - } } } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/QualifiedExpressionResolver.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/QualifiedExpressionResolver.java index a14158702f3..f485c05ea00 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/QualifiedExpressionResolver.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/QualifiedExpressionResolver.java @@ -21,6 +21,7 @@ import com.google.common.collect.Collections2; import com.google.common.collect.Lists; import com.google.common.collect.Sets; import com.intellij.psi.util.PsiTreeUtil; +import kotlin.KotlinPackage; import org.jetbrains.annotations.Mutable; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -108,7 +109,8 @@ public class QualifiedExpressionResolver { JetSimpleNameExpression referenceExpression = JetPsiUtil.getLastReference(importedReference); if (importDirective.isAllUnder()) { if (!canAllUnderImportFrom(descriptors) && referenceExpression != null) { - trace.report(CANNOT_IMPORT_ON_DEMAND_FROM_SINGLETON.on(referenceExpression, (ClassDescriptor) descriptors.iterator().next())); + ClassDescriptor toReportOn = KotlinPackage.filterIsInstance(descriptors, ClassDescriptor.class).iterator().next(); + trace.report(CANNOT_IMPORT_ON_DEMAND_FROM_SINGLETON.on(referenceExpression, toReportOn)); } if (referenceExpression == null || !canImportMembersFrom(descriptors, referenceExpression, trace, lookupMode)) { @@ -298,11 +300,6 @@ public class QualifiedExpressionResolver { results.add(lookupSimpleNameReference(selector, scope, lookupMode, false)); results.add(lookupSimpleNameReference(selector, descriptor.getStaticScope(), lookupMode, true)); - - ClassDescriptor classObject = descriptor.getDefaultObjectDescriptor(); - if (classObject != null) { - addResultsForClass(results, selector, lookupMode, classObject); - } } diff --git a/compiler/testData/codegen/boxWithStdlib/whenEnumOptimization/enumInsideClassObject.kt b/compiler/testData/codegen/boxWithStdlib/whenEnumOptimization/enumInsideClassObject.kt index b1218e83ded..04ba85d547e 100644 --- a/compiler/testData/codegen/boxWithStdlib/whenEnumOptimization/enumInsideClassObject.kt +++ b/compiler/testData/codegen/boxWithStdlib/whenEnumOptimization/enumInsideClassObject.kt @@ -11,7 +11,7 @@ class A { } } -fun foo(x : A.Season) : String { +fun foo(x : A.Default.Season) : String { return when (x) { A.Season.WINTER -> "winter" A.Season.SPRING -> "spring" diff --git a/compiler/testData/diagnostics/tests/classObjects/importClassInClassObject.kt b/compiler/testData/diagnostics/tests/classObjects/importClassInClassObject.kt index e684c1296e1..912986ba430 100644 --- a/compiler/testData/diagnostics/tests/classObjects/importClassInClassObject.kt +++ b/compiler/testData/diagnostics/tests/classObjects/importClassInClassObject.kt @@ -1,6 +1,6 @@ package f -import f.A.B +import f.A.Default.B class A { class object { diff --git a/compiler/testData/diagnostics/tests/imports/Imports.kt b/compiler/testData/diagnostics/tests/imports/Imports.kt index cec1771aa49..97b22a4ca34 100644 --- a/compiler/testData/diagnostics/tests/imports/Imports.kt +++ b/compiler/testData/diagnostics/tests/imports/Imports.kt @@ -5,12 +5,12 @@ import b.B //class import b.foo //function import b.ext //extension function import b.value //property -import b.C.bar //function from class object -import b.C.cValue //property from class object +import b.C.Default.bar //function from class object +import b.C.Default.cValue //property from class object import b.constant.fff //function from val import b.constant.dValue //property from val import b.constant -import b.E.f //val from class object +import b.E.Default.f //val from class object import smth.illegal import b.C.smth.illegal import b.bar.smth @@ -85,8 +85,8 @@ fun foo() { //FILE:d.kt package d -import d.A.B -import d.A.C +import d.A.Default.B +import d.A.Default.C val b : B = B() val c : B = C diff --git a/compiler/testData/diagnostics/tests/multimodule/duplicateClass/duplicateNestedClasses.kt b/compiler/testData/diagnostics/tests/multimodule/duplicateClass/duplicateNestedClasses.kt index 6b34d04d70b..2dda7f2cff1 100644 --- a/compiler/testData/diagnostics/tests/multimodule/duplicateClass/duplicateNestedClasses.kt +++ b/compiler/testData/diagnostics/tests/multimodule/duplicateClass/duplicateNestedClasses.kt @@ -21,10 +21,10 @@ public class M1 { public val a: A = A() public val b: A.B = A.B() public val c: A.C = A.C - public val d: A.D = A.D() - public val e: A.D.E = A.D.E + public val d: A.Default.D = A.D() + public val e: A.Default.D.E = A.D.E public val f: A.F = A().F() - public val g: A.G = A.G() + public val g: A.Default.G = A.G() } // MODULE: m2 @@ -47,8 +47,8 @@ public class A { public fun a(p: A) {} public fun b(p: A.B) {} public fun c(p: A.C) {} -public fun d(p: A.D) {} -public fun e(p: A.D.E) {} +public fun d(p: A.Default.D) {} +public fun e(p: A.Default.D.E) {} public fun f(p: A.F) {} public fun g(p: A.G) {} diff --git a/compiler/testData/diagnostics/tests/regressions/kt526UnresolvedReferenceInnerStatic.kt b/compiler/testData/diagnostics/tests/regressions/kt526UnresolvedReferenceInnerStatic.kt index 0d10700a0d7..ad56cce9ac3 100644 --- a/compiler/testData/diagnostics/tests/regressions/kt526UnresolvedReferenceInnerStatic.kt +++ b/compiler/testData/diagnostics/tests/regressions/kt526UnresolvedReferenceInnerStatic.kt @@ -10,6 +10,6 @@ class Foo { } class User { fun main() : Unit { - var boo : Foo.Bar? /* <-- this reference is red */ = Foo.Bar() + var boo : Foo.Default.Bar? /* <-- this reference is red */ = Foo.Default.Bar() } } diff --git a/compiler/testData/diagnostics/tests/scopes/kt900-1.kt b/compiler/testData/diagnostics/tests/scopes/kt900-1.kt index ee78487073d..d51e9bbdd81 100644 --- a/compiler/testData/diagnostics/tests/scopes/kt900-1.kt +++ b/compiler/testData/diagnostics/tests/scopes/kt900-1.kt @@ -1,7 +1,7 @@ // import all members from class object package c -import c.A.* +import c.A.Default.B import c.M.* fun foo() { diff --git a/compiler/testData/diagnostics/tests/scopes/kt900.kt b/compiler/testData/diagnostics/tests/scopes/kt900.kt index 253c28fe66b..142036d84d9 100644 --- a/compiler/testData/diagnostics/tests/scopes/kt900.kt +++ b/compiler/testData/diagnostics/tests/scopes/kt900.kt @@ -36,8 +36,8 @@ object N { package b import b.N.M -import b.A.P -import b.A.B +import b.A.Default.P +import b.A.Default.B fun foo() { val b : B = B() diff --git a/compiler/testData/loadJava/compiledKotlin/annotations/classes/AnnotationInClassObject.kt b/compiler/testData/loadJava/compiledKotlin/annotations/classes/AnnotationInClassObject.kt index 48dfd626fd4..876adc9919c 100644 --- a/compiler/testData/loadJava/compiledKotlin/annotations/classes/AnnotationInClassObject.kt +++ b/compiler/testData/loadJava/compiledKotlin/annotations/classes/AnnotationInClassObject.kt @@ -10,4 +10,4 @@ class A { } } -A.Anno1 A.B.Anno2 class C \ No newline at end of file +A.Default.Anno1 A.Default.B.Anno2 class C \ No newline at end of file diff --git a/idea/testData/completion/handlers/smart/ClassInClassObject.kt b/idea/testData/completion/handlers/smart/ClassInClassObject.kt index 5ea15feb6bb..f1b929249a3 100644 --- a/idea/testData/completion/handlers/smart/ClassInClassObject.kt +++ b/idea/testData/completion/handlers/smart/ClassInClassObject.kt @@ -4,6 +4,6 @@ class A { } } -val v: A.Inner = +val v: A.Default.Inner = // ELEMENT: Inner diff --git a/idea/testData/completion/handlers/smart/ClassInClassObject.kt.after b/idea/testData/completion/handlers/smart/ClassInClassObject.kt.after index 61e8cd70944..0917f0a5aa6 100644 --- a/idea/testData/completion/handlers/smart/ClassInClassObject.kt.after +++ b/idea/testData/completion/handlers/smart/ClassInClassObject.kt.after @@ -4,6 +4,6 @@ class A { } } -val v: A.Inner = A.Inner() +val v: A.Default.Inner = A.Inner() // ELEMENT: Inner diff --git a/idea/testData/decompiler/decompiledText/DependencyOnNestedClasses/DependencyOnNestedClasses.kt b/idea/testData/decompiler/decompiledText/DependencyOnNestedClasses/DependencyOnNestedClasses.kt index c55e10b1cce..cde8f3fc6b0 100644 --- a/idea/testData/decompiler/decompiledText/DependencyOnNestedClasses/DependencyOnNestedClasses.kt +++ b/idea/testData/decompiler/decompiledText/DependencyOnNestedClasses/DependencyOnNestedClasses.kt @@ -3,7 +3,7 @@ package test import dependency.* public class DependencyOnNestedClasses : D.Nested() { - fun f(nc: D.NestedInClassObject, i: D.Inner, ii: D.Inner.Inner, nn: D.Nested.Nested): D.Nested { + fun f(nc: D.Default.NestedInClassObject, i: D.Inner, ii: D.Inner.Inner, nn: D.Nested.Nested): D.Nested { return D.Nested() } } diff --git a/idea/testData/decompiler/stubBuilder/DependencyOnNestedClasses/DependencyOnNestedClasses.kt b/idea/testData/decompiler/stubBuilder/DependencyOnNestedClasses/DependencyOnNestedClasses.kt index c55e10b1cce..cde8f3fc6b0 100644 --- a/idea/testData/decompiler/stubBuilder/DependencyOnNestedClasses/DependencyOnNestedClasses.kt +++ b/idea/testData/decompiler/stubBuilder/DependencyOnNestedClasses/DependencyOnNestedClasses.kt @@ -3,7 +3,7 @@ package test import dependency.* public class DependencyOnNestedClasses : D.Nested() { - fun f(nc: D.NestedInClassObject, i: D.Inner, ii: D.Inner.Inner, nn: D.Nested.Nested): D.Nested { + fun f(nc: D.Default.NestedInClassObject, i: D.Inner, ii: D.Inner.Inner, nn: D.Nested.Nested): D.Nested { return D.Nested() } } diff --git a/idea/testData/diagnosticMessage/nestedClassShouldBeQualified.kt b/idea/testData/diagnosticMessage/nestedClassShouldBeQualified.kt index 3fc0a24e000..8e438632ef6 100644 --- a/idea/testData/diagnosticMessage/nestedClassShouldBeQualified.kt +++ b/idea/testData/diagnosticMessage/nestedClassShouldBeQualified.kt @@ -22,7 +22,7 @@ class C { } } -fun C.D.text() { +fun C.Default.D.text() { Nested() ::Nested } diff --git a/idea/testData/editor/optimizeImports/Kt2709.kt b/idea/testData/editor/optimizeImports/Kt2709.kt index a4e12e7d0bc..41bdf24c094 100644 --- a/idea/testData/editor/optimizeImports/Kt2709.kt +++ b/idea/testData/editor/optimizeImports/Kt2709.kt @@ -1,4 +1,4 @@ -import MyClass.* +import MyClass.Default.TEST fun main() { TEST diff --git a/idea/testData/editor/optimizeImports/Kt2709.kt.after b/idea/testData/editor/optimizeImports/Kt2709.kt.after index 181b9ab9b94..41bdf24c094 100644 --- a/idea/testData/editor/optimizeImports/Kt2709.kt.after +++ b/idea/testData/editor/optimizeImports/Kt2709.kt.after @@ -1,4 +1,4 @@ -import MyClass.TEST +import MyClass.Default.TEST fun main() { TEST