Diagnostics improvements for corner cases

(class/package qualifier in non-qualifier position).
This commit is contained in:
Dmitry Petrov
2015-11-17 15:51:57 +03:00
parent ba8372cc11
commit 7b432c878a
18 changed files with 52 additions and 48 deletions
@@ -3,24 +3,24 @@ package foo
class X {}
val s = <!EXPRESSION_EXPECTED_PACKAGE_FOUND!>java<!>
val ss = <!INVISIBLE_MEMBER, FUNCTION_CALL_EXPECTED!>System<!>
val sss = <!FUNCTION_CALL_EXPECTED!>X<!>
val x = "${<!INVISIBLE_MEMBER, FUNCTION_CALL_EXPECTED!>System<!>}"
val ss = <!NO_COMPANION_OBJECT!>System<!>
val sss = <!NO_COMPANION_OBJECT!>X<!>
val x = "${<!NO_COMPANION_OBJECT!>System<!>}"
val xs = java.<!EXPRESSION_EXPECTED_PACKAGE_FOUND!>lang<!>
val xss = java.lang.<!INVISIBLE_MEMBER, FUNCTION_CALL_EXPECTED!>System<!>
val xsss = foo.<!FUNCTION_CALL_EXPECTED!>X<!>
val xss = java.lang.<!NO_COMPANION_OBJECT!>System<!>
val xsss = foo.<!NO_COMPANION_OBJECT!>X<!>
val xssss = <!EXPRESSION_EXPECTED_PACKAGE_FOUND!>foo<!>
val f = { <!INVISIBLE_MEMBER, FUNCTION_CALL_EXPECTED!>System<!> }
val f = { <!NO_COMPANION_OBJECT!>System<!> }
fun main(args : Array<String>) {
<!EXPRESSION_EXPECTED_PACKAGE_FOUND!>java<!> = null
<!INVISIBLE_MEMBER, FUNCTION_CALL_EXPECTED, VARIABLE_EXPECTED!>System<!> = <!NULL_FOR_NONNULL_TYPE!>null<!>
<!INVISIBLE_MEMBER, FUNCTION_CALL_EXPECTED!>System<!><!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>
java.lang.<!INVISIBLE_MEMBER, FUNCTION_CALL_EXPECTED, VARIABLE_EXPECTED!>System<!> = <!NULL_FOR_NONNULL_TYPE!>null<!>
java.lang.<!INVISIBLE_MEMBER, FUNCTION_CALL_EXPECTED!>System<!><!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>
<!INVISIBLE_MEMBER, FUNCTION_CALL_EXPECTED!>System<!> is <!INCOMPATIBLE_TYPES!>Int<!>
<!NO_COMPANION_OBJECT!>System<!> = null
<!NO_COMPANION_OBJECT!>System<!>!!
java.lang.<!NO_COMPANION_OBJECT!>System<!> = null
java.lang.<!NO_COMPANION_OBJECT!>System<!>!!
<!NO_COMPANION_OBJECT!>System<!> is Int
<!INVISIBLE_MEMBER!>System<!>()
(<!INVISIBLE_MEMBER, FUNCTION_CALL_EXPECTED!>System<!>)
foo@ <!INVISIBLE_MEMBER, FUNCTION_CALL_EXPECTED!>System<!>
null <!UNRESOLVED_REFERENCE!>in<!> <!INVISIBLE_MEMBER, FUNCTION_CALL_EXPECTED!>System<!>
(<!NO_COMPANION_OBJECT!>System<!>)
foo@ <!NO_COMPANION_OBJECT!>System<!>
null in <!NO_COMPANION_OBJECT!>System<!>
}
@@ -1,14 +1,14 @@
package
package foo {
public val f: () -> java.lang.System
public val f: () -> ???
public val s: [ERROR : Type for java]
public val ss: java.lang.System
public val sss: foo.X
public val ss: [ERROR : Type for System]
public val sss: [ERROR : Type for X]
public val x: kotlin.String
public val xs: [ERROR : Type for java.lang]
public val xss: java.lang.System
public val xsss: foo.X
public val xss: [ERROR : Type for java.lang.System]
public val xsss: [ERROR : Type for foo.X]
public val xssss: [ERROR : Type for foo]
public fun main(/*0*/ args: kotlin.Array<kotlin.String>): kotlin.Unit
@@ -10,7 +10,7 @@ val s: String = "test"
// FILE: test.kt
fun ff() {
val a = <!FUNCTION_CALL_EXPECTED!>Test<!>?.<!UNRESOLVED_REFERENCE!>FOO<!>
val a = <!NO_COMPANION_OBJECT!>Test<!><!UNEXPECTED_SAFE_CALL!>?.<!>FOO
val b = <!EXPRESSION_EXPECTED_PACKAGE_FOUND!>foo<!><!UNEXPECTED_SAFE_CALL!>?.<!>s
<!INVISIBLE_MEMBER, FUNCTION_CALL_EXPECTED!>System<!>?.<!UNRESOLVED_REFERENCE!>out<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>println<!>(<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a<!> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>+<!> b)
<!NO_COMPANION_OBJECT!>System<!><!UNEXPECTED_SAFE_CALL!>?.<!>out.println(a + b)
}
@@ -36,7 +36,7 @@ val a = A.x
val c = B.<!UNRESOLVED_REFERENCE!>x<!>
val d = b.<!UNRESOLVED_REFERENCE!>x<!>
val s = <!INVISIBLE_MEMBER, FUNCTION_CALL_EXPECTED!>System<!> // error
val s = <!NO_COMPANION_OBJECT!>System<!> // error
fun test() {
System.out.println()
java.lang.System.out.println()
@@ -4,7 +4,7 @@ package Jet86 {
public val a: kotlin.Int = 1
public val c: [ERROR : Type for B.x]
public val d: [ERROR : Type for b.x]
public val s: java.lang.System
public val s: [ERROR : Type for System]
public fun test(): kotlin.Unit
public final class A {
@@ -28,7 +28,7 @@ object O {
fun f() {
A.c
A.hashCode()
A().<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE, FUNCTION_CALL_EXPECTED!>Nested<!>
A().<!NO_COMPANION_OBJECT, NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>Nested<!>
A.Nested()
A().Inner()
A.Companion.<!UNRESOLVED_REFERENCE!>Nested<!>
@@ -32,7 +32,7 @@ enum class C {
}
fun f() {
C.E1.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE, FUNCTION_CALL_EXPECTED!>A<!>
C.E1.<!UNRESOLVED_REFERENCE!>A<!>
C.E1.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>A<!>()
C.E2.B()
@@ -3,5 +3,5 @@ package bar
fun main(args : Array<String>) {
class Some
<!FUNCTION_CALL_EXPECTED!>Some<!>[<!SYNTAX!><!>] <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>names<!> <!DEBUG_INFO_MISSING_UNRESOLVED!><!SYNTAX!>=<!> ["ads"]<!>
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!><!NO_COMPANION_OBJECT!>Some<!>[<!SYNTAX!><!>]<!> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>names<!> <!DEBUG_INFO_MISSING_UNRESOLVED!><!SYNTAX!>=<!> ["ads"]<!>
}
@@ -28,7 +28,7 @@ fun test(with: WithClassObject, without: WithoutClassObject, obj: Obj) {
with.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedWithClassObject<!>
with.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedWithClassObject<!>()
with.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedWithClassObject<!>.foo()
with.<!INVISIBLE_MEMBER, NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE, FUNCTION_CALL_EXPECTED!>NestedEnum<!>.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>A<!>
with.<!NO_COMPANION_OBJECT, NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedEnum<!>.A
with.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedObj<!>
with.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedObj<!>()
with.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedObj<!>.foo()
@@ -37,7 +37,7 @@ fun test(with: WithClassObject, without: WithoutClassObject, obj: Obj) {
without.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedWithClassObject<!>
without.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedWithClassObject<!>()
without.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedWithClassObject<!>.foo()
without.<!INVISIBLE_MEMBER, NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE, FUNCTION_CALL_EXPECTED!>NestedEnum<!>.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>A<!>
without.<!NO_COMPANION_OBJECT, NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedEnum<!>.A
without.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedObj<!>
without.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedObj<!>()
without.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedObj<!>.foo()
@@ -46,7 +46,7 @@ fun test(with: WithClassObject, without: WithoutClassObject, obj: Obj) {
obj.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedWithClassObject<!>
obj.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedWithClassObject<!>()
obj.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedWithClassObject<!>.foo()
obj.<!INVISIBLE_MEMBER, NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE, FUNCTION_CALL_EXPECTED!>NestedEnum<!>.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>A<!>
obj.<!NO_COMPANION_OBJECT, NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedEnum<!>.A
obj.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedObj<!>
obj.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedObj<!>()
obj.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedObj<!>.foo()
+1 -1
View File
@@ -1 +1 @@
val a: String = <!INVISIBLE_MEMBER, FUNCTION_CALL_EXPECTED!>Nothing<!>
val a: String = <!NO_COMPANION_OBJECT!>Nothing<!>
@@ -16,8 +16,8 @@ class E private constructor() {
}
}
val a = <!INVISIBLE_MEMBER, FUNCTION_CALL_EXPECTED!>A<!>
val a = <!NO_COMPANION_OBJECT!>A<!>
<!EXPOSED_PROPERTY_TYPE!>val b = <!INVISIBLE_MEMBER!>B<!><!>
val c = <!NO_VALUE_FOR_PARAMETER, FUNCTION_CALL_EXPECTED!>C<!>
val c = <!NO_COMPANION_OBJECT!>C<!>
val d = D
val e = E(42)
@@ -1,8 +1,8 @@
package
public val a: A
public val a: [ERROR : Type for A]
public val b: B.Companion
public val c: C
public val c: [ERROR : Type for C]
public val d: D.Companion
public val e: kotlin.Int
@@ -11,7 +11,7 @@ sealed class Tree {
fun maxIsClass(): Int = <!NO_ELSE_IN_WHEN!>when<!>(this) {
Empty -> -1
<!NO_VALUE_FOR_PARAMETER, FUNCTION_CALL_EXPECTED!>Leaf<!> -> 0
<!NO_COMPANION_OBJECT!>Leaf<!> -> 0
is Node -> <!DEBUG_INFO_SMARTCAST!>this<!>.left.max()
}