fixed: DEBUG_INFO_ERROR_ELEMENT should be visible in tests
This commit is contained in:
@@ -85,8 +85,8 @@ public class CheckerTestUtil {
|
||||
final List<Diagnostic> debugAnnotations = Lists.newArrayList();
|
||||
DebugInfoUtil.markDebugAnnotations(root, bindingContext, new DebugInfoUtil.DebugInfoReporter() {
|
||||
@Override
|
||||
public void reportErrorElement(@NotNull JetReferenceExpression expression) {
|
||||
newDiagnostic(expression, DebugInfoDiagnosticFactory.ERROR_ELEMENT);
|
||||
public void reportElementWithErrorType(@NotNull JetReferenceExpression expression) {
|
||||
newDiagnostic(expression, DebugInfoDiagnosticFactory.ELEMENT_WITH_ERROR_TYPE);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -379,7 +379,7 @@ public class CheckerTestUtil {
|
||||
}
|
||||
|
||||
public static class DebugInfoDiagnosticFactory extends AbstractDiagnosticFactory {
|
||||
public static final DebugInfoDiagnosticFactory ERROR_ELEMENT = new DebugInfoDiagnosticFactory("ERROR_ELEMENT");
|
||||
public static final DebugInfoDiagnosticFactory ELEMENT_WITH_ERROR_TYPE = new DebugInfoDiagnosticFactory("ELEMENT_WITH_ERROR_TYPE");
|
||||
public static final DebugInfoDiagnosticFactory UNRESOLVED_WITH_TARGET = new DebugInfoDiagnosticFactory("UNRESOLVED_WITH_TARGET");
|
||||
public static final DebugInfoDiagnosticFactory MISSING_UNRESOLVED = new DebugInfoDiagnosticFactory("MISSING_UNRESOLVED");
|
||||
|
||||
|
||||
@@ -17,8 +17,6 @@
|
||||
package org.jetbrains.jet.checkers;
|
||||
|
||||
import com.google.common.collect.Maps;
|
||||
import com.google.common.collect.Sets;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.psi.tree.TokenSet;
|
||||
@@ -37,7 +35,6 @@ import org.jetbrains.jet.lexer.JetTokens;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.jetbrains.jet.lang.resolve.BindingContext.*;
|
||||
import static org.jetbrains.jet.lexer.JetTokens.*;
|
||||
@@ -50,7 +47,7 @@ public class DebugInfoUtil {
|
||||
|
||||
public interface DebugInfoReporter {
|
||||
|
||||
void reportErrorElement(@NotNull JetReferenceExpression expression);
|
||||
void reportElementWithErrorType(@NotNull JetReferenceExpression expression);
|
||||
|
||||
void reportMissingUnresolved(@NotNull JetReferenceExpression expression);
|
||||
|
||||
@@ -122,13 +119,14 @@ public class DebugInfoUtil {
|
||||
boolean resolved = target != null;
|
||||
boolean markedWithError = markedWithErrorElements.containsKey(expression);
|
||||
JetType expressionType = bindingContext.get(EXPRESSION_TYPE, expression);
|
||||
AbstractDiagnosticFactory factory = markedWithErrorElements.get(expression);
|
||||
if (declarationDescriptor != null &&
|
||||
!ApplicationManager.getApplication().isUnitTestMode() &&
|
||||
(ErrorUtils.isError(declarationDescriptor) || ErrorUtils.containsErrorType(expressionType))) {
|
||||
debugInfoReporter.reportErrorElement(expression);
|
||||
if (factory != Errors.EXPRESSION_EXPECTED_NAMESPACE_FOUND) {
|
||||
debugInfoReporter.reportElementWithErrorType(expression);
|
||||
}
|
||||
}
|
||||
if (resolved && markedWithError) {
|
||||
AbstractDiagnosticFactory factory = markedWithErrorElements.get(expression);
|
||||
if (factory instanceof UnresolvedReferenceDiagnosticFactory) {
|
||||
debugInfoReporter.reportUnresolvedWithTarget(expression, target);
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ fun text() {
|
||||
"direct:a" on {it.body == "<hello/>"} to "mock:a"
|
||||
"direct:a" on {it -> it.body == "<hello/>"} to "mock:a"
|
||||
bar <!TYPE_MISMATCH!>{1}<!>
|
||||
bar <!TYPE_MISMATCH!>{<!UNRESOLVED_REFERENCE!>it<!> + 1}<!>
|
||||
bar <!TYPE_MISMATCH!>{<!UNRESOLVED_REFERENCE!>it<!> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>+<!> 1}<!>
|
||||
bar {it, it1 -> it}
|
||||
|
||||
bar1 {1}
|
||||
@@ -12,7 +12,7 @@ fun text() {
|
||||
bar2 <!TYPE_MISMATCH!>{<!TYPE_MISMATCH!><!>}<!>
|
||||
bar2 {1}
|
||||
bar2 {<!UNRESOLVED_REFERENCE!>it<!>}
|
||||
bar2 <!TYPE_MISMATCH!>{<!CANNOT_INFER_PARAMETER_TYPE!>it<!> -> it}<!>
|
||||
bar2 <!TYPE_MISMATCH!>{<!CANNOT_INFER_PARAMETER_TYPE!>it<!> -> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>it<!>}<!>
|
||||
}
|
||||
|
||||
fun bar(<!UNUSED_PARAMETER!>f<!> : (Int, Int) -> Int) {}
|
||||
@@ -29,4 +29,4 @@ fun String.on(<!UNUSED_PARAMETER!>predicate<!> : (s : URI) -> Boolean) : URI {
|
||||
|
||||
class URI(val body : Any) {
|
||||
fun to(<!UNUSED_PARAMETER!>dest<!> : String) {}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
fun test() {
|
||||
if (<!UNRESOLVED_REFERENCE!>x<!> > 0) {
|
||||
if (<!UNRESOLVED_REFERENCE!>x<!> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>><!> 0) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,3 @@
|
||||
trait T {
|
||||
val a = <!PROPERTY_INITIALIZER_IN_TRAIT!><!UNRESOLVED_REFERENCE!>Foo<!>.bar()<!>
|
||||
}
|
||||
val a = <!PROPERTY_INITIALIZER_IN_TRAIT!><!UNRESOLVED_REFERENCE!>Foo<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>bar<!>()<!>
|
||||
}
|
||||
@@ -23,13 +23,13 @@ fun fooT2<T>() : (t : T) -> T {
|
||||
fun main(args : Array<String>) {
|
||||
args.foo()()
|
||||
args.foo1()(<!NO_VALUE_FOR_PARAMETER!>)<!>
|
||||
<!UNRESOLVED_REFERENCE!>a<!>.foo1()()
|
||||
<!UNRESOLVED_REFERENCE!>a<!>.foo1()(<!UNRESOLVED_REFERENCE!>a<!>)
|
||||
<!UNRESOLVED_REFERENCE!>a<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>foo1<!>()()
|
||||
<!UNRESOLVED_REFERENCE!>a<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>foo1<!>()(<!UNRESOLVED_REFERENCE!>a<!>)
|
||||
|
||||
args.foo1()(1)
|
||||
args.foo1()(<!TYPE_MISMATCH!>"1"<!>)
|
||||
<!UNRESOLVED_REFERENCE!>a<!>.foo1()("1")
|
||||
<!UNRESOLVED_REFERENCE!>a<!>.foo1()(<!UNRESOLVED_REFERENCE!>a<!>)
|
||||
<!UNRESOLVED_REFERENCE!>a<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>foo1<!>()("1")
|
||||
<!UNRESOLVED_REFERENCE!>a<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>foo1<!>()(<!UNRESOLVED_REFERENCE!>a<!>)
|
||||
|
||||
foo2()({})
|
||||
foo2()<!TOO_MANY_ARGUMENTS, DANGLING_FUNCTION_LITERAL_ARGUMENT_SUSPECTED!>{}<!>
|
||||
|
||||
@@ -19,5 +19,7 @@ fun test() {
|
||||
bar(1, 1, "")
|
||||
bar(1, 1, "")
|
||||
bar(1, <!MIXING_NAMED_AND_POSITIONED_ARGUMENTS!>z<!> = "")
|
||||
bar(1, <!NAMED_PARAMETER_NOT_FOUND, MIXING_NAMED_AND_POSITIONED_ARGUMENTS!>zz<!> = "", <!MIXING_NAMED_AND_POSITIONED_ARGUMENTS!><!UNRESOLVED_REFERENCE!>zz<!>.foo<!><!NO_VALUE_FOR_PARAMETER!>)<!>
|
||||
bar(1, <!NAMED_PARAMETER_NOT_FOUND, MIXING_NAMED_AND_POSITIONED_ARGUMENTS!>zz<!> = "",
|
||||
<!MIXING_NAMED_AND_POSITIONED_ARGUMENTS!><!UNRESOLVED_REFERENCE!>zz<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>foo<!><!>
|
||||
<!NO_VALUE_FOR_PARAMETER!>)<!>
|
||||
}
|
||||
@@ -4,5 +4,5 @@ package root.a
|
||||
// FILE: b.kt
|
||||
package root
|
||||
|
||||
val x = <!EXPRESSION_EXPECTED_NAMESPACE_FOUND!>a<!>
|
||||
val y2 = <!NAMESPACE_IS_NOT_AN_EXPRESSION!>package<!>
|
||||
val x = <!EXPRESSION_EXPECTED_NAMESPACE_FOUND, DEBUG_INFO_ERROR_ELEMENT!>a<!>
|
||||
val y2 = <!NAMESPACE_IS_NOT_AN_EXPRESSION!>package<!>
|
||||
@@ -1,12 +1,11 @@
|
||||
|
||||
package foo
|
||||
|
||||
class X {}
|
||||
|
||||
val s = <!EXPRESSION_EXPECTED_NAMESPACE_FOUND!>java<!>
|
||||
val s = <!EXPRESSION_EXPECTED_NAMESPACE_FOUND, DEBUG_INFO_ERROR_ELEMENT!>java<!>
|
||||
val ss = <!NO_CLASS_OBJECT!>System<!>
|
||||
val sss = <!NO_CLASS_OBJECT!>X<!>
|
||||
val xs = java.<!EXPRESSION_EXPECTED_NAMESPACE_FOUND!>lang<!>
|
||||
val xs = java.<!EXPRESSION_EXPECTED_NAMESPACE_FOUND, DEBUG_INFO_ERROR_ELEMENT!>lang<!>
|
||||
val xss = java.lang.<!NO_CLASS_OBJECT!>System<!>
|
||||
val xsss = foo.<!NO_CLASS_OBJECT!>X<!>
|
||||
val xssss = <!EXPRESSION_EXPECTED_NAMESPACE_FOUND!>foo<!>
|
||||
val xssss = <!EXPRESSION_EXPECTED_NAMESPACE_FOUND, DEBUG_INFO_ERROR_ELEMENT!>foo<!>
|
||||
@@ -23,10 +23,10 @@ fun testUnresolved() {
|
||||
}
|
||||
|
||||
for (j in <!UNRESOLVED_REFERENCE!>collection<!>) {
|
||||
var i: Int = j
|
||||
var i: Int = <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>j<!>
|
||||
i += 1
|
||||
foo1(j)
|
||||
foo1(<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>j<!>)
|
||||
}
|
||||
}
|
||||
|
||||
fun foo1(<!UNUSED_PARAMETER!>i<!>: Int) {}
|
||||
fun foo1(<!UNUSED_PARAMETER!>i<!>: Int) {}
|
||||
@@ -47,7 +47,7 @@ class R {
|
||||
fun test() {
|
||||
val <!UNUSED_VARIABLE!>o<!> = object {
|
||||
fun run() {
|
||||
<!UNRESOLVED_REFERENCE!>p<!>.x = 43
|
||||
<!UNRESOLVED_REFERENCE!>p<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>x<!> = 43
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -14,7 +14,7 @@ fun test(mc1: MyClass, mc2: MyClass2) {
|
||||
val (c) = <!COMPONENT_FUNCTION_AMBIGUITY!>mc2<!>
|
||||
|
||||
//a,b,c are error types
|
||||
a : Boolean
|
||||
b : Boolean
|
||||
c : Boolean
|
||||
}
|
||||
use(<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a<!>, <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>b<!>, <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>c<!>)
|
||||
}
|
||||
|
||||
fun use(vararg a: Any?) = a
|
||||
@@ -88,17 +88,17 @@ fun f13(a : A?) {
|
||||
}
|
||||
else {
|
||||
a?.foo()
|
||||
<!UNRESOLVED_REFERENCE!>c<!>.bar()
|
||||
<!UNRESOLVED_REFERENCE!>c<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>bar<!>()
|
||||
}
|
||||
|
||||
a?.foo()
|
||||
if (!(a is B)) {
|
||||
a?.foo()
|
||||
<!UNRESOLVED_REFERENCE!>c<!>.bar()
|
||||
<!UNRESOLVED_REFERENCE!>c<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>bar<!>()
|
||||
}
|
||||
else {
|
||||
a.foo()
|
||||
<!UNRESOLVED_REFERENCE!>c<!>.bar()
|
||||
<!UNRESOLVED_REFERENCE!>c<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>bar<!>()
|
||||
}
|
||||
|
||||
a?.foo()
|
||||
@@ -108,7 +108,7 @@ fun f13(a : A?) {
|
||||
}
|
||||
else {
|
||||
a?.foo()
|
||||
<!UNRESOLVED_REFERENCE!>c<!>.bar()
|
||||
<!UNRESOLVED_REFERENCE!>c<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>bar<!>()
|
||||
}
|
||||
|
||||
if (!(a is B) || !(a is C)) {
|
||||
@@ -195,7 +195,7 @@ fun mergeAutocasts(a: Any?) {
|
||||
val <!UNUSED_VARIABLE!>i<!>: Int = a.compareTo("")
|
||||
}
|
||||
if (a is String && a.compareTo("") == 0) {}
|
||||
if (a is String || a.<!UNRESOLVED_REFERENCE!>compareTo<!>("") == 0) {}
|
||||
if (a is String || a.<!UNRESOLVED_REFERENCE!>compareTo<!>("") <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>==<!> 0) {}
|
||||
}
|
||||
|
||||
//mutability
|
||||
@@ -215,4 +215,4 @@ fun foo(var a: Any): Int {
|
||||
return <!AUTOCAST_IMPOSSIBLE!>a<!>
|
||||
}
|
||||
return 1
|
||||
}
|
||||
}
|
||||
@@ -20,4 +20,4 @@ fun test() {
|
||||
B.foo()
|
||||
}
|
||||
|
||||
val bb = <!UNRESOLVED_REFERENCE!>B<!>.foo()
|
||||
val bb = <!UNRESOLVED_REFERENCE!>B<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>foo<!>()
|
||||
@@ -26,5 +26,4 @@ val a = A
|
||||
val b = B
|
||||
val c = A.B
|
||||
val d = A.B.A
|
||||
val e = B.<!UNRESOLVED_REFERENCE!>A<!>.B
|
||||
|
||||
val e = B.<!UNRESOLVED_REFERENCE!>A<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>B<!>
|
||||
@@ -4,7 +4,7 @@ val y = object {
|
||||
val a = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>y<!>;
|
||||
}
|
||||
|
||||
val z = y.a;
|
||||
val z = y.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a<!>;
|
||||
|
||||
object A {
|
||||
val x = A
|
||||
@@ -12,11 +12,11 @@ object A {
|
||||
|
||||
val a = object {
|
||||
{
|
||||
b + 1
|
||||
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>b<!> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>+<!> 1
|
||||
}
|
||||
val x = b
|
||||
val x = <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>b<!>
|
||||
val y = 1
|
||||
}
|
||||
|
||||
val b = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>a<!>.x
|
||||
val c = a.y
|
||||
val b = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>a<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>x<!>
|
||||
val c = a.y
|
||||
@@ -4,10 +4,10 @@ trait Iterator<out T> {
|
||||
|
||||
fun <R> map(transform: (element: T) -> R) : Iterator<R> =
|
||||
object : Iterator<R> {
|
||||
override fun next() : R = transform(<!NO_THIS!>this@map<!>.next())
|
||||
override fun next() : R = transform(<!NO_THIS!>this@map<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>next<!>())
|
||||
|
||||
override val hasNext : Boolean
|
||||
// There's no 'this' associated with the map() function, only this of the Iterator class
|
||||
get() = <!NO_THIS!>this@map<!>.hasNext
|
||||
get() = <!NO_THIS!>this@map<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>hasNext<!>
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,6 @@ import javax.swing.JFrame
|
||||
|
||||
class KFrame() : JFrame() {
|
||||
{
|
||||
val x = this.accessibleContext // make sure field is visible
|
||||
val x = this.rootPaneCheckingEnabled // make sure field is visible
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ fun test(arg: B) {
|
||||
|
||||
constant.fff(constant.dValue)
|
||||
|
||||
<!UNRESOLVED_REFERENCE!>f<!>.f()
|
||||
<!UNRESOLVED_REFERENCE!>f<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>f<!>()
|
||||
}
|
||||
|
||||
// FILE:b.kt
|
||||
@@ -79,7 +79,7 @@ object C {
|
||||
}
|
||||
|
||||
fun foo() {
|
||||
if (<!UNRESOLVED_REFERENCE!>i<!> == 3) <!UNRESOLVED_REFERENCE!>f<!>()
|
||||
if (<!UNRESOLVED_REFERENCE!>i<!> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>==<!> 3) <!UNRESOLVED_REFERENCE!>f<!>()
|
||||
}
|
||||
|
||||
//FILE:d.kt
|
||||
|
||||
@@ -4,7 +4,7 @@ val <T> List<T>.length = <!UNRESOLVED_REFERENCE!>size<!>()
|
||||
|
||||
val <T> List<T>.length1 : Int get() = size()
|
||||
|
||||
val String.bd = <!NO_THIS!>this<!> + "!"
|
||||
val String.bd = <!NO_THIS!>this<!> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>+<!> "!"
|
||||
|
||||
val String.bd1 : String get() = this + "!"
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ open class BodyTag(name : String) : TagWithText(name) {
|
||||
|
||||
class Body() : BodyTag(<!UNRESOLVED_REFERENCE!>name<!>) { // Must be an error!
|
||||
}
|
||||
class Body1() : BodyTag(<!NO_THIS!>this<!>.name) { // Must be an error!
|
||||
class Body1() : BodyTag(<!NO_THIS!>this<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>name<!>) { // Must be an error!
|
||||
}
|
||||
|
||||
//more tests
|
||||
|
||||
@@ -13,8 +13,8 @@ val y: T = <!UNRESOLVED_REFERENCE!>Y<!>
|
||||
|
||||
fun f() {
|
||||
<!UNRESOLVED_REFERENCE!>bar<!>()
|
||||
<!UNRESOLVED_REFERENCE!>R<!>.bar()
|
||||
<!UNRESOLVED_REFERENCE!>B<!>.foo()
|
||||
<!UNRESOLVED_REFERENCE!>R<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>bar<!>()
|
||||
<!UNRESOLVED_REFERENCE!>B<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>foo<!>()
|
||||
}
|
||||
|
||||
object M {
|
||||
|
||||
@@ -5,11 +5,11 @@ package a
|
||||
|
||||
fun foo() {
|
||||
val <!UNUSED_VARIABLE!>b<!> : <!UNRESOLVED_REFERENCE!>B<!> = <!UNRESOLVED_REFERENCE!>B<!>() //only B() is unresolved, but in ": B" and "B.foo()" B should also be unresolved
|
||||
<!UNRESOLVED_REFERENCE!>B<!>.foo()
|
||||
<!UNRESOLVED_REFERENCE!>B<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>foo<!>()
|
||||
|
||||
<!UNRESOLVED_REFERENCE!>P<!>.foo()
|
||||
<!UNRESOLVED_REFERENCE!>P<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>foo<!>()
|
||||
|
||||
<!UNRESOLVED_REFERENCE!>M<!>.bar()
|
||||
<!UNRESOLVED_REFERENCE!>M<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>bar<!>()
|
||||
}
|
||||
|
||||
class A() {
|
||||
@@ -45,7 +45,7 @@ fun foo() {
|
||||
|
||||
P.foo()
|
||||
|
||||
<!UNRESOLVED_REFERENCE!>M<!>.bar()
|
||||
<!UNRESOLVED_REFERENCE!>M<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>bar<!>()
|
||||
}
|
||||
|
||||
class A() {
|
||||
|
||||
@@ -12,29 +12,29 @@ class A<E>() : C(), T {
|
||||
fun test() {
|
||||
<!SUPER_IS_NOT_AN_EXPRESSION!>super<!>
|
||||
<!SUPER_IS_NOT_AN_EXPRESSION!>super<T><!>
|
||||
<!AMBIGUOUS_SUPER!>super<!>.foo()
|
||||
<!AMBIGUOUS_SUPER!>super<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>foo<!>()
|
||||
super<T>.foo()
|
||||
super<C>.bar()
|
||||
super<T>@A.foo()
|
||||
super<C>@A.bar()
|
||||
super<<!NOT_A_SUPERTYPE!>E<!>>.bar()
|
||||
super<<!NOT_A_SUPERTYPE!>E<!>>@A.bar()
|
||||
super<<!NOT_A_SUPERTYPE!>Int<!>>.foo()
|
||||
super<<!SYNTAX!><!>>.foo()
|
||||
super<<!NOT_A_SUPERTYPE!>() -> Unit<!>>.foo()
|
||||
super<<!NOT_A_SUPERTYPE!>Unit<!>>.foo()
|
||||
<!DEBUG_INFO_MISSING_UNRESOLVED!>super<!><T><!UNRESOLVED_REFERENCE!>@B<!>.foo()
|
||||
<!DEBUG_INFO_MISSING_UNRESOLVED!>super<!><C><!UNRESOLVED_REFERENCE!>@B<!>.bar()
|
||||
super<<!NOT_A_SUPERTYPE!>E<!>>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>bar<!>()
|
||||
super<<!NOT_A_SUPERTYPE!>E<!>>@A.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>bar<!>()
|
||||
super<<!NOT_A_SUPERTYPE!>Int<!>>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>foo<!>()
|
||||
super<<!SYNTAX!><!>>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>foo<!>()
|
||||
super<<!NOT_A_SUPERTYPE!>() -> Unit<!>>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>foo<!>()
|
||||
super<<!NOT_A_SUPERTYPE!>Unit<!>>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>foo<!>()
|
||||
<!DEBUG_INFO_MISSING_UNRESOLVED!>super<!><T><!UNRESOLVED_REFERENCE!>@B<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>foo<!>()
|
||||
<!DEBUG_INFO_MISSING_UNRESOLVED!>super<!><C><!UNRESOLVED_REFERENCE!>@B<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>bar<!>()
|
||||
}
|
||||
|
||||
class B : T {
|
||||
fun test() {
|
||||
super<T>.foo();
|
||||
super<<!NOT_A_SUPERTYPE!>C<!>>.bar()
|
||||
super<<!NOT_A_SUPERTYPE!>C<!>>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>bar<!>()
|
||||
super<C>@A.bar()
|
||||
super<T>@A.foo()
|
||||
super<T>@B.foo()
|
||||
super<<!NOT_A_SUPERTYPE!>C<!>>@B.foo()
|
||||
super<<!NOT_A_SUPERTYPE!>C<!>>@B.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>foo<!>()
|
||||
super.foo()
|
||||
<!SUPER_IS_NOT_AN_EXPRESSION!>super<!>
|
||||
<!SUPER_IS_NOT_AN_EXPRESSION!>super<T><!>
|
||||
@@ -50,8 +50,8 @@ class CG : G<Int> {
|
||||
fun test() {
|
||||
super<G>.foo() // OK
|
||||
super<G<!TYPE_ARGUMENTS_REDUNDANT_IN_SUPER_QUALIFIER!><Int><!>>.foo() // Warning
|
||||
super<<!NOT_A_SUPERTYPE!>G<<!UNRESOLVED_REFERENCE!>E<!>><!>>.foo() // Error
|
||||
super<<!NOT_A_SUPERTYPE!>G<String><!>>.foo() // Error
|
||||
super<<!NOT_A_SUPERTYPE!>G<<!UNRESOLVED_REFERENCE!>E<!>><!>>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>foo<!>() // Error
|
||||
super<<!NOT_A_SUPERTYPE!>G<String><!>>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>foo<!>() // Error
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
fun String.f() {
|
||||
<!SUPER_NOT_AVAILABLE!>super@f<!>.compareTo("")
|
||||
<!SUPER_NOT_AVAILABLE!>super<!>.compareTo("")
|
||||
<!SUPER_NOT_AVAILABLE!>super@f<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>compareTo<!>("")
|
||||
<!SUPER_NOT_AVAILABLE!>super<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>compareTo<!>("")
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
fun foo() {
|
||||
<!SUPER_IS_NOT_AN_EXPRESSION!>super<!>
|
||||
<!SUPER_NOT_AVAILABLE!>super<!>.foo()
|
||||
<!SUPER_NOT_AVAILABLE!>super<Nothing><!>.foo()
|
||||
<!SUPER_NOT_AVAILABLE!>super<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>foo<!>()
|
||||
<!SUPER_NOT_AVAILABLE!>super<Nothing><!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>foo<!>()
|
||||
}
|
||||
@@ -10,7 +10,7 @@ class A(val a:Int) {
|
||||
this@A : A
|
||||
}
|
||||
val <!UNUSED_VARIABLE!>b<!> = @a{Double.() -> this@a : Double + this@xx : Char}
|
||||
val <!UNUSED_VARIABLE!>c<!> = @a{() -> <!NO_THIS!>this@a<!> + this@xx : Char}
|
||||
val <!UNUSED_VARIABLE!>c<!> = @a{() -> <!NO_THIS!>this@a<!> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>+<!> this@xx : Char}
|
||||
return (@a{Double.() -> this@a : Double + this@xx : Char})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ public class DebugInfoAnnotator implements Annotator {
|
||||
final BindingContext bindingContext = WholeProjectAnalyzerFacade.analyzeProjectWithCacheOnAFile(file).getBindingContext();
|
||||
DebugInfoUtil.markDebugAnnotations(file, bindingContext, new DebugInfoUtil.DebugInfoReporter() {
|
||||
@Override
|
||||
public void reportErrorElement(@NotNull JetReferenceExpression expression) {
|
||||
public void reportElementWithErrorType(@NotNull JetReferenceExpression expression) {
|
||||
holder.createErrorAnnotation(expression, "[DEBUG] Resolved to error element")
|
||||
.setTextAttributes(JetHighlightingColors.RESOLVED_TO_ERROR);
|
||||
}
|
||||
|
||||
@@ -18,4 +18,4 @@
|
||||
B.foo()
|
||||
}
|
||||
|
||||
val bb = <error>B</error>.foo()
|
||||
val bb = <error>B</error>.<error>foo</error>()
|
||||
|
||||
@@ -25,4 +25,4 @@ package nestedObjects
|
||||
val b = B
|
||||
val c = A.B
|
||||
val d = A.B.A
|
||||
val e = B.<error>A</error>.B
|
||||
val e = B.<error>A</error>.<error>B</error>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
this : Char
|
||||
val <warning>a</warning> = {Double.() -> this : Double + this@xx : Char}
|
||||
val <warning>b</warning> = @a{Double.() -> this@a : Double + this@xx : Char}
|
||||
val <warning>c</warning> = @a{() -> <error>this@a</error> + this@xx : Char}
|
||||
val <warning>c</warning> = @a{() -> <error>this@a</error> <error>+</error> this@xx : Char}
|
||||
return (@a{Double.() -> this@a : Double + this@xx : Char})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//package a {
|
||||
val afoo = <error descr="[TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM] Type checking has run into a recursive problem. Easiest workaround: specify types of your declarations explicitly">abar()</error>
|
||||
|
||||
fun abar() = afoo
|
||||
fun abar() = <error>afoo</error>
|
||||
//}
|
||||
|
||||
//package b {
|
||||
|
||||
@@ -24,9 +24,9 @@ fun testUnresolved() {
|
||||
}
|
||||
|
||||
for (j in <error>collection</error>) {
|
||||
var i: Int = j
|
||||
var i: Int = <error>j</error>
|
||||
i += 1
|
||||
foo1(j)
|
||||
foo1(<error>j</error>)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ fun f13(a : A?) {
|
||||
}
|
||||
else {
|
||||
a<info>?.</info>foo()
|
||||
<error descr="[UNRESOLVED_REFERENCE] Unresolved reference: c">c</error>.bar()
|
||||
<error descr="[UNRESOLVED_REFERENCE] Unresolved reference: c">c</error>.<error>bar</error>()
|
||||
}
|
||||
|
||||
a<info>?.</info>foo()
|
||||
@@ -191,7 +191,7 @@ fun mergeAutocasts(a: Any?) {
|
||||
val <warning>i</warning>: Int = <info descr="Automatically cast to jet.String">a</info>.compareTo("")
|
||||
}
|
||||
if (a is String && <info descr="Automatically cast to jet.String">a</info>.compareTo("") == 0) {}
|
||||
if (a is String || a.<error descr="[UNRESOLVED_REFERENCE] Unresolved reference: compareTo">compareTo</error>("") == 0) {}
|
||||
if (a is String || a.<error descr="[UNRESOLVED_REFERENCE] Unresolved reference: compareTo">compareTo</error>("") <error>==</error> 0) {}
|
||||
}
|
||||
|
||||
//mutability
|
||||
|
||||
@@ -4,7 +4,7 @@ val y = object {
|
||||
val a = <error>y</error>
|
||||
}
|
||||
|
||||
val z = y.a;
|
||||
val z = y.<error>a</error>;
|
||||
|
||||
object A {
|
||||
val x = A
|
||||
@@ -12,11 +12,11 @@ object A {
|
||||
|
||||
val a = object {
|
||||
{
|
||||
b + 1
|
||||
<error>b</error> <error>+</error> 1
|
||||
}
|
||||
val x = b
|
||||
val x = <error>b</error>
|
||||
val y = 1
|
||||
}
|
||||
|
||||
val b = <error>a</error>.x
|
||||
val b = <error>a</error>.<error>x</error>
|
||||
val c = a.y
|
||||
|
||||
Reference in New Issue
Block a user