fixed: DEBUG_INFO_ERROR_ELEMENT should be visible in tests

This commit is contained in:
Svetlana Isakova
2012-11-17 19:53:18 +04:00
parent 993d3a3469
commit d0a6f6252d
35 changed files with 92 additions and 94 deletions
@@ -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);
}
+1 -1
View File
@@ -18,4 +18,4 @@
B.foo()
}
val bb = <error>B</error>.foo()
val bb = <error>B</error>.<error>foo</error>()
+1 -1
View File
@@ -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 {
+2 -2
View File
@@ -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>)
}
}
+2 -2
View File
@@ -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 -4
View File
@@ -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