Diagnostics test data fixed
This commit is contained in:
@@ -1,14 +1,12 @@
|
|||||||
package jet
|
package jet
|
||||||
|
|
||||||
//package typeinfo {
|
class TypeInfo<out T> {
|
||||||
class TypeInfo<out T> {
|
fun isSubtypeOf(other : TypeInfo<*>) : Boolean
|
||||||
fun isSubtypeOf(other : TypeInfo<*>) : Boolean
|
fun isInstance(obj : Any?) : Boolean
|
||||||
fun isInstance(obj : Any?) : Boolean
|
}
|
||||||
}
|
|
||||||
|
|
||||||
fun typeinfo<T>() : TypeInfo<T>
|
fun typeinfo<T>() : TypeInfo<T>
|
||||||
fun typeinfo<T>(expression : T) : TypeInfo<T>
|
fun typeinfo<T>(expression : T) : TypeInfo<T>
|
||||||
//}
|
|
||||||
|
|
||||||
fun <R> Any.synchronized(block : () -> R) : R
|
fun <R> Any.synchronized(block : () -> R) : R
|
||||||
|
|
||||||
|
|||||||
@@ -235,10 +235,11 @@ public class JetParsing extends AbstractJetParsing {
|
|||||||
|
|
||||||
IElementType keywordToken = tt();
|
IElementType keywordToken = tt();
|
||||||
JetNodeType declType = null;
|
JetNodeType declType = null;
|
||||||
if (keywordToken == NAMESPACE_KEYWORD) {
|
// if (keywordToken == NAMESPACE_KEYWORD) {
|
||||||
declType = parseNamespaceBlock();
|
// declType = parseNamespaceBlock();
|
||||||
}
|
// }
|
||||||
else if (keywordToken == CLASS_KEYWORD || keywordToken == TRAIT_KEYWORD) {
|
// else
|
||||||
|
if (keywordToken == CLASS_KEYWORD || keywordToken == TRAIT_KEYWORD) {
|
||||||
declType = parseClass(detector.isDetected());
|
declType = parseClass(detector.isDetected());
|
||||||
}
|
}
|
||||||
else if (keywordToken == FUN_KEYWORD) {
|
else if (keywordToken == FUN_KEYWORD) {
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
// FILE: a.kt
|
||||||
// +JDK
|
// +JDK
|
||||||
|
|
||||||
package abstract
|
package abstract
|
||||||
@@ -180,7 +181,8 @@ enum class MyEnum() {
|
|||||||
|
|
||||||
abstract enum class MyAbstractEnum() {}
|
abstract enum class MyAbstractEnum() {}
|
||||||
|
|
||||||
package MyNamespace {
|
// FILE: b.kt
|
||||||
|
package MyNamespace
|
||||||
//properties
|
//properties
|
||||||
val <!MUST_BE_INITIALIZED!>a<!>: Int
|
val <!MUST_BE_INITIALIZED!>a<!>: Int
|
||||||
val a1: Int = 1
|
val a1: Int = 1
|
||||||
@@ -222,8 +224,8 @@ package MyNamespace {
|
|||||||
var l1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set
|
var l1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||||
|
|
||||||
var n: Int <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set(v: Int) {}
|
var n: Int <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set(v: Int) {}
|
||||||
}
|
|
||||||
|
|
||||||
|
// FILE: c.kt
|
||||||
//creating an instance
|
//creating an instance
|
||||||
abstract class B1(
|
abstract class B1(
|
||||||
val i: Int,
|
val i: Int,
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
package example;
|
// FILE: a.kt
|
||||||
|
package example.ns
|
||||||
package ns {
|
|
||||||
val y : Any? = 2
|
val y : Any? = 2
|
||||||
}
|
|
||||||
|
// FILE: b.kt
|
||||||
|
package example
|
||||||
|
|
||||||
object Obj {
|
object Obj {
|
||||||
val y : Any? = 2
|
val y : Any? = 2
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
package boundsWithSubstitutors {
|
// FILE: a.kt
|
||||||
|
package boundsWithSubstitutors
|
||||||
open class A<T>
|
open class A<T>
|
||||||
class B<X : A<X>>()
|
class B<X : A<X>>()
|
||||||
|
|
||||||
@@ -13,8 +14,7 @@ package boundsWithSubstitutors {
|
|||||||
val b0 = X<Any, <!UPPER_BOUND_VIOLATED!>Any?<!>>
|
val b0 = X<Any, <!UPPER_BOUND_VIOLATED!>Any?<!>>
|
||||||
val b1 = X<Any, X<A<C>, <!UPPER_BOUND_VIOLATED!>String<!>>>
|
val b1 = X<Any, X<A<C>, <!UPPER_BOUND_VIOLATED!>String<!>>>
|
||||||
|
|
||||||
}
|
// FILE: b.kt
|
||||||
|
|
||||||
open class A {}
|
open class A {}
|
||||||
open class B<T : A>()
|
open class B<T : A>()
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
|
// FILE: a.kt
|
||||||
// +JDK
|
// +JDK
|
||||||
|
|
||||||
|
package html
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
package html {
|
|
||||||
|
|
||||||
abstract class Factory<T> {
|
abstract class Factory<T> {
|
||||||
abstract fun create() : T
|
abstract fun create() : T
|
||||||
}
|
}
|
||||||
@@ -85,9 +85,9 @@ package html {
|
|||||||
return html
|
return html
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
// FILE: b.kt
|
||||||
|
|
||||||
package foo {
|
package foo
|
||||||
|
|
||||||
import html.*
|
import html.*
|
||||||
|
|
||||||
@@ -120,4 +120,3 @@ fun result(args : Array<String>) =
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
// FILE: b.kt
|
||||||
// http://youtrack.jetbrains.net/issue/KT-424
|
// http://youtrack.jetbrains.net/issue/KT-424
|
||||||
|
|
||||||
class A {
|
class A {
|
||||||
@@ -13,7 +14,8 @@ class A {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
package deepSpace {
|
// FILE: b.kt
|
||||||
|
package deepSpace
|
||||||
<!CONFLICTING_OVERLOADS!>fun c(<!UNUSED_PARAMETER!>s<!>: String)<!> {
|
<!CONFLICTING_OVERLOADS!>fun c(<!UNUSED_PARAMETER!>s<!>: String)<!> {
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -27,28 +29,25 @@ package deepSpace {
|
|||||||
<!CONFLICTING_OVERLOADS!>fun d(<!UNUSED_PARAMETER!>s<!>: String)<!> {
|
<!CONFLICTING_OVERLOADS!>fun d(<!UNUSED_PARAMETER!>s<!>: String)<!> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: b.kt
|
||||||
// check no error in overload in different namespaces
|
// check no error in overload in different namespaces
|
||||||
|
|
||||||
package ns1 {
|
package ns1
|
||||||
fun e() = 1
|
fun e() = 1
|
||||||
}
|
|
||||||
|
|
||||||
package ns2 {
|
// FILE: b.kt
|
||||||
|
package ns2
|
||||||
fun e() = 1
|
fun e() = 1
|
||||||
}
|
|
||||||
|
|
||||||
package ns3 {
|
// FILE: b.kt
|
||||||
package ns1 {
|
package ns3.ns1
|
||||||
fun e() = 1
|
fun e() = 1
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
// FILE: b.kt
|
||||||
// check same rules apply for ext functions
|
// check same rules apply for ext functions
|
||||||
|
|
||||||
package extensionFunctions {
|
package extensionFunctions
|
||||||
<!CONFLICTING_OVERLOADS!>fun Int.qwe(<!UNUSED_PARAMETER!>a<!>: Float)<!> = 1
|
<!CONFLICTING_OVERLOADS!>fun Int.qwe(<!UNUSED_PARAMETER!>a<!>: Float)<!> = 1
|
||||||
|
|
||||||
<!CONFLICTING_OVERLOADS!>fun Int.qwe(<!UNUSED_PARAMETER!>a<!>: Float)<!> = 2
|
<!CONFLICTING_OVERLOADS!>fun Int.qwe(<!UNUSED_PARAMETER!>a<!>: Float)<!> = 2
|
||||||
@@ -56,19 +55,19 @@ package extensionFunctions {
|
|||||||
fun Int.rty() = 3
|
fun Int.rty() = 3
|
||||||
|
|
||||||
fun String.rty() = 4
|
fun String.rty() = 4
|
||||||
}
|
|
||||||
|
|
||||||
|
// FILE: b.kt
|
||||||
// check no error when regular function and extension function have same name
|
// check no error when regular function and extension function have same name
|
||||||
|
|
||||||
package extensionAndRegular {
|
package extensionAndRegular
|
||||||
fun who() = 1
|
fun who() = 1
|
||||||
|
|
||||||
fun Int.who() = 1
|
fun Int.who() = 1
|
||||||
}
|
|
||||||
|
|
||||||
|
// FILE: b.kt
|
||||||
// constructor vs. fun overload
|
// constructor vs. fun overload
|
||||||
|
|
||||||
package constructorVsFun {
|
package constructorVsFun
|
||||||
class <!CONFLICTING_OVERLOADS!>a()<!> { }
|
class <!CONFLICTING_OVERLOADS!>a()<!> { }
|
||||||
|
|
||||||
<!CONFLICTING_OVERLOADS!>fun a()<!> = 1
|
<!CONFLICTING_OVERLOADS!>fun a()<!> = 1
|
||||||
@@ -93,5 +92,4 @@ package constructorVsFun {
|
|||||||
class object {
|
class object {
|
||||||
class ololo() { }
|
class ololo() { }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -1,4 +1,6 @@
|
|||||||
|
// FILE: b.kt
|
||||||
// +JDK
|
// +JDK
|
||||||
|
package outer
|
||||||
|
|
||||||
fun Int?.optint() : Unit {}
|
fun Int?.optint() : Unit {}
|
||||||
val Int?.optval : Unit = #()
|
val Int?.optval : Unit = #()
|
||||||
@@ -39,7 +41,10 @@ val <T> T.<!MUST_BE_INITIALIZED!>foo<!> : T
|
|||||||
|
|
||||||
fun Int.foo() = this
|
fun Int.foo() = this
|
||||||
|
|
||||||
package null_safety {
|
// FILE: b.kt
|
||||||
|
package null_safety
|
||||||
|
|
||||||
|
import outer.*
|
||||||
|
|
||||||
fun parse(<!UNUSED_PARAMETER!>cmd<!>: String): Command? { return null }
|
fun parse(<!UNUSED_PARAMETER!>cmd<!>: String): Command? { return null }
|
||||||
class Command() {
|
class Command() {
|
||||||
@@ -69,5 +74,3 @@ package null_safety {
|
|||||||
|
|
||||||
if (command == null) 1
|
if (command == null) 1
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
// FILE: b.kt
|
||||||
trait A<in T> {}
|
trait A<in T> {}
|
||||||
trait B<T> : A<Int> {}
|
trait B<T> : A<Int> {}
|
||||||
trait C<T> : <!INCONSISTENT_TYPE_PARAMETER_VALUES!>B<T>, A<T><!> {}
|
trait C<T> : <!INCONSISTENT_TYPE_PARAMETER_VALUES!>B<T>, A<T><!> {}
|
||||||
@@ -13,30 +14,30 @@ trait BB1 : BA1<Int> {}
|
|||||||
trait BB2 : <!INCONSISTENT_TYPE_PARAMETER_VALUES!>BA1<Any>, BB1<!> {}
|
trait BB2 : <!INCONSISTENT_TYPE_PARAMETER_VALUES!>BA1<Any>, BB1<!> {}
|
||||||
|
|
||||||
|
|
||||||
package x {
|
// FILE: b.kt
|
||||||
|
package x
|
||||||
trait AA1<out T> {}
|
trait AA1<out T> {}
|
||||||
trait AB1 : AA1<Int> {}
|
trait AB1 : AA1<Int> {}
|
||||||
trait AB3 : AA1<Comparable<Int>> {}
|
trait AB3 : AA1<Comparable<Int>> {}
|
||||||
trait AB2 : AA1<Number>, AB1, AB3 {}
|
trait AB2 : AA1<Number>, AB1, AB3 {}
|
||||||
}
|
|
||||||
|
|
||||||
package x2 {
|
// FILE: b.kt
|
||||||
|
package x2
|
||||||
trait AA1<out T> {}
|
trait AA1<out T> {}
|
||||||
trait AB1 : AA1<Any> {}
|
trait AB1 : AA1<Any> {}
|
||||||
trait AB3 : AA1<Comparable<Int>> {}
|
trait AB3 : AA1<Comparable<Int>> {}
|
||||||
trait AB2 : <!INCONSISTENT_TYPE_PARAMETER_VALUES!>AA1<Number>, AB1, AB3<!> {}
|
trait AB2 : <!INCONSISTENT_TYPE_PARAMETER_VALUES!>AA1<Number>, AB1, AB3<!> {}
|
||||||
}
|
|
||||||
|
|
||||||
package x3 {
|
// FILE: b.kt
|
||||||
|
package x3
|
||||||
trait AA1<in T> {}
|
trait AA1<in T> {}
|
||||||
trait AB1 : AA1<Any> {}
|
trait AB1 : AA1<Any> {}
|
||||||
trait AB3 : AA1<Comparable<Int>> {}
|
trait AB3 : AA1<Comparable<Int>> {}
|
||||||
trait AB2 : AA1<Number>, AB1, AB3 {}
|
trait AB2 : AA1<Number>, AB1, AB3 {}
|
||||||
}
|
|
||||||
|
|
||||||
package sx2 {
|
// FILE: b.kt
|
||||||
|
package sx2
|
||||||
trait AA1<in T> {}
|
trait AA1<in T> {}
|
||||||
trait AB1 : AA1<Int> {}
|
trait AB1 : AA1<Int> {}
|
||||||
trait AB3 : AA1<Comparable<Int>> {}
|
trait AB3 : AA1<Comparable<Int>> {}
|
||||||
trait AB2 : <!INCONSISTENT_TYPE_PARAMETER_VALUES!>AA1<Number>, AB1, AB3<!> {}
|
trait AB2 : <!INCONSISTENT_TYPE_PARAMETER_VALUES!>AA1<Number>, AB1, AB3<!> {}
|
||||||
}
|
|
||||||
@@ -1,23 +1,23 @@
|
|||||||
|
// FILE: b.kt
|
||||||
// KT-355 Resolve imports after all symbols are built
|
// KT-355 Resolve imports after all symbols are built
|
||||||
|
|
||||||
package a {
|
package a
|
||||||
import b.*
|
import b.*
|
||||||
val x : X = X()
|
val x : X = X()
|
||||||
}
|
|
||||||
|
|
||||||
package b {
|
// FILE: b.kt
|
||||||
|
package b
|
||||||
class X() {
|
class X() {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
package c {
|
// FILE: b.kt
|
||||||
|
package c
|
||||||
import d.X
|
import d.X
|
||||||
val x : X = X()
|
val x : X = X()
|
||||||
}
|
|
||||||
|
|
||||||
package d {
|
// FILE: b.kt
|
||||||
|
package d
|
||||||
class X() {
|
class X() {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
|
// FILE: b.kt
|
||||||
|
package root.a
|
||||||
|
|
||||||
|
// FILE: b.kt
|
||||||
package root
|
package root
|
||||||
|
|
||||||
package a {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
val x = <!EXPRESSION_EXPECTED_NAMESPACE_FOUND!>a<!>
|
val x = <!EXPRESSION_EXPECTED_NAMESPACE_FOUND!>a<!>
|
||||||
val y2 = <!NAMESPACE_IS_NOT_AN_EXPRESSION!>package<!>
|
val y2 = <!NAMESPACE_IS_NOT_AN_EXPRESSION!>package<!>
|
||||||
|
|||||||
@@ -1,26 +1,29 @@
|
|||||||
|
// FILE: b.kt
|
||||||
// +JDK
|
// +JDK
|
||||||
|
|
||||||
package foobar
|
|
||||||
|
|
||||||
package a {
|
package foobar.a
|
||||||
import java.*
|
import java.*
|
||||||
|
|
||||||
val a : util.List<Int>? = null
|
val a : util.List<Int>? = null
|
||||||
val a1 : <!UNRESOLVED_REFERENCE!>List<!><Int>? = null
|
val a1 : <!UNRESOLVED_REFERENCE!>List<!><Int>? = null
|
||||||
|
|
||||||
}
|
// FILE: b.kt
|
||||||
|
package foobar
|
||||||
|
|
||||||
abstract class Foo<T>() {
|
abstract class Foo<T>() {
|
||||||
abstract val x : T<Int>
|
abstract val x : T<Int>
|
||||||
}
|
}
|
||||||
|
|
||||||
package a {
|
// FILE: b.kt
|
||||||
|
package foobar.a
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
val b : List<Int>? = a
|
val b : List<Int>? = a
|
||||||
val b1 : <!UNRESOLVED_REFERENCE!>util<!>.List<Int>? = a
|
val b1 : <!UNRESOLVED_REFERENCE!>util<!>.List<Int>? = a
|
||||||
}
|
|
||||||
|
|
||||||
|
// FILE: b.kt
|
||||||
|
package foobar
|
||||||
val x1 = a.a
|
val x1 = a.a
|
||||||
|
|
||||||
val y1 = a.b
|
val y1 = a.b
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
package toplevelObjectDeclarations {
|
// FILE: f.kt
|
||||||
|
package toplevelObjectDeclarations
|
||||||
open class Foo(y : Int) {
|
open class Foo(y : Int) {
|
||||||
open fun foo() : Int = 1
|
open fun foo() : Int = 1
|
||||||
}
|
}
|
||||||
@@ -26,9 +27,9 @@ package toplevelObjectDeclarations {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val z = y.foo()
|
val z = y.foo()
|
||||||
}
|
|
||||||
|
|
||||||
package nestedObejcts {
|
// FILE: f.kt
|
||||||
|
package nestedObejcts
|
||||||
object A {
|
object A {
|
||||||
val b = B
|
val b = B
|
||||||
val d = A.B.A
|
val d = A.B.A
|
||||||
@@ -56,9 +57,10 @@ package nestedObejcts {
|
|||||||
val c = A.B
|
val c = A.B
|
||||||
val d = A.B.A
|
val d = A.B.A
|
||||||
val e = B.<!UNRESOLVED_REFERENCE!>A<!>.B
|
val e = B.<!UNRESOLVED_REFERENCE!>A<!>.B
|
||||||
}
|
|
||||||
|
|
||||||
package localObjects {
|
// FILE: f.kt
|
||||||
|
|
||||||
|
package localObjects
|
||||||
object A {
|
object A {
|
||||||
val x : Int = 0
|
val x : Int = 0
|
||||||
}
|
}
|
||||||
@@ -80,4 +82,3 @@ package localObjects {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val bb = <!UNRESOLVED_REFERENCE!>B<!>.foo()
|
val bb = <!UNRESOLVED_REFERENCE!>B<!>.foo()
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package override
|
// FILE: f.kt
|
||||||
|
package override.normal
|
||||||
package normal {
|
|
||||||
trait MyTrait {
|
trait MyTrait {
|
||||||
fun foo()
|
fun foo()
|
||||||
val pr : Unit
|
val pr : Unit
|
||||||
@@ -49,9 +48,10 @@ package normal {
|
|||||||
override fun bar() {}
|
override fun bar() {}
|
||||||
override val prr : Unit = #()
|
override val prr : Unit = #()
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
package generics {
|
// FILE: f.kt
|
||||||
|
|
||||||
|
package override.generics
|
||||||
trait MyTrait<T> {
|
trait MyTrait<T> {
|
||||||
fun foo(t: T) : T
|
fun foo(t: T) : T
|
||||||
}
|
}
|
||||||
@@ -109,5 +109,4 @@ package generics {
|
|||||||
fun foo(t: T) = t
|
fun foo(t: T) = t
|
||||||
fun bar(t: T) = t
|
fun bar(t: T) = t
|
||||||
val <R> pr : T = t
|
val <R> pr : T = t
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
// FILE: f.kt
|
||||||
class Dup {
|
class Dup {
|
||||||
fun Dup() : Unit {
|
fun Dup() : Unit {
|
||||||
this<!AMBIGUOUS_LABEL!>@Dup<!>
|
this<!AMBIGUOUS_LABEL!>@Dup<!>
|
||||||
@@ -21,7 +22,8 @@ fun foo1() : Unit {
|
|||||||
this<!UNRESOLVED_REFERENCE!>@a<!>
|
this<!UNRESOLVED_REFERENCE!>@a<!>
|
||||||
}
|
}
|
||||||
|
|
||||||
package closures {
|
// FILE: f.kt
|
||||||
|
package closures
|
||||||
class A(val a:Int) {
|
class A(val a:Int) {
|
||||||
|
|
||||||
class B() {
|
class B() {
|
||||||
@@ -37,5 +39,4 @@ package closures {
|
|||||||
return (@a{Double.() -> this@a : Double + this@xx : Char})
|
return (@a{Double.() -> this@a : Double + this@xx : Char})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -1,42 +1,40 @@
|
|||||||
package a {
|
// FILE: f.kt
|
||||||
|
package a
|
||||||
val foo = bar()
|
val foo = bar()
|
||||||
|
|
||||||
fun bar() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>foo<!>
|
fun bar() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>foo<!>
|
||||||
}
|
|
||||||
|
|
||||||
package b {
|
// FILE: f.kt
|
||||||
|
package b
|
||||||
fun foo() = bar()
|
fun foo() = bar()
|
||||||
|
|
||||||
fun bar() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>foo()<!>
|
fun bar() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>foo()<!>
|
||||||
}
|
|
||||||
|
|
||||||
package c {
|
// FILE: f.kt
|
||||||
|
package c
|
||||||
fun bazz() = bar()
|
fun bazz() = bar()
|
||||||
|
|
||||||
fun foo() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>bazz()<!>
|
fun foo() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>bazz()<!>
|
||||||
|
|
||||||
fun bar() = foo()
|
fun bar() = foo()
|
||||||
}
|
|
||||||
|
|
||||||
package ok {
|
// FILE: f.kt
|
||||||
|
|
||||||
package a {
|
package ok.a
|
||||||
val foo = bar()
|
val foo = bar()
|
||||||
|
|
||||||
fun bar() : Int = foo
|
fun bar() : Int = foo
|
||||||
}
|
|
||||||
|
|
||||||
package b {
|
// FILE: f.kt
|
||||||
|
package ok.b
|
||||||
fun foo() : Int = bar()
|
fun foo() : Int = bar()
|
||||||
|
|
||||||
fun bar() = foo()
|
fun bar() = foo()
|
||||||
}
|
|
||||||
|
|
||||||
package c {
|
// FILE: f.kt
|
||||||
|
package ok.c
|
||||||
fun bazz() = bar()
|
fun bazz() = bar()
|
||||||
|
|
||||||
fun foo() : Int = bazz()
|
fun foo() : Int = bazz()
|
||||||
|
|
||||||
fun bar() = foo()
|
fun bar() = foo()
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,16 +1,15 @@
|
|||||||
package redeclarations {
|
// FILE: f.kt
|
||||||
|
package redeclarations
|
||||||
object <!REDECLARATION, REDECLARATION!>A<!> {
|
object <!REDECLARATION, REDECLARATION!>A<!> {
|
||||||
val x : Int = 0
|
val x : Int = 0
|
||||||
|
|
||||||
val A = 1
|
val A = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
package <!REDECLARATION!>A<!> {
|
class <!REDECLARATION!>A<!> {}
|
||||||
class A {}
|
|
||||||
}
|
|
||||||
|
|
||||||
class <!REDECLARATION, REDECLARATION!>A<!> {}
|
|
||||||
|
|
||||||
val <!REDECLARATION!>A<!> = 1
|
val <!REDECLARATION!>A<!> = 1
|
||||||
|
|
||||||
}
|
// FILE: f.kt
|
||||||
|
package redeclarations.<!REDECLARATION, REDECLARATION!>A<!>
|
||||||
|
class A {}
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
// FILE: f.kt
|
||||||
// +JDK
|
// +JDK
|
||||||
|
|
||||||
import java.*
|
import java.*
|
||||||
@@ -49,6 +50,6 @@ fun test(<!UNUSED_PARAMETER!>l<!> : java.util.List<Int>) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
package xxx {
|
// FILE: f.kt
|
||||||
import java.lang.Class;
|
package xxx
|
||||||
}
|
import java.lang.Class;
|
||||||
@@ -1,9 +1,11 @@
|
|||||||
|
// FILE: f.kt
|
||||||
class A {
|
class A {
|
||||||
}
|
}
|
||||||
|
|
||||||
package n {
|
// FILE: f.kt
|
||||||
|
package n
|
||||||
class B
|
class B
|
||||||
}
|
// FILE: f.kt
|
||||||
abstract class XXX() {
|
abstract class XXX() {
|
||||||
abstract val a : Int
|
abstract val a : Int
|
||||||
abstract val a1 : package.<!UNRESOLVED_REFERENCE!>Int<!>
|
abstract val a1 : package.<!UNRESOLVED_REFERENCE!>Int<!>
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
package customGetValGlobal {
|
package customGetValGlobal
|
||||||
val zz = 1
|
val zz = 1
|
||||||
get() = $zz * 2
|
get() = $zz * 2
|
||||||
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,21 +1,8 @@
|
|||||||
|
// FILE: this.kt
|
||||||
|
|
||||||
// KT-362 Don't allow autocasts on vals that are not internal
|
// KT-362 Don't allow autocasts on vals that are not internal
|
||||||
package example;
|
package example;
|
||||||
|
|
||||||
package test {
|
|
||||||
public class Public() {
|
|
||||||
public val public : Int? = 1;
|
|
||||||
protected val protected : Int? = 1;
|
|
||||||
internal protected val i_protected : Int? = 1;
|
|
||||||
val internal : Int? = 1
|
|
||||||
}
|
|
||||||
internal class Internal() {
|
|
||||||
public val public : Int? = 1;
|
|
||||||
protected val protected : Int? = 1;
|
|
||||||
internal protected val i_protected : Int? = 1;
|
|
||||||
val internal : Int? = 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun test() {
|
fun test() {
|
||||||
val p = test.Public()
|
val p = test.Public()
|
||||||
if (p.public is Int) <!AUTOCAST_IMPOSSIBLE!>p.public<!> + 1
|
if (p.public is Int) <!AUTOCAST_IMPOSSIBLE!>p.public<!> + 1
|
||||||
@@ -27,4 +14,21 @@ fun test() {
|
|||||||
if (i.protected is Int) <!AUTOCAST_IMPOSSIBLE!>i.protected<!> + 1
|
if (i.protected is Int) <!AUTOCAST_IMPOSSIBLE!>i.protected<!> + 1
|
||||||
if (i.i_protected is Int) i.i_protected + 1
|
if (i.i_protected is Int) i.i_protected + 1
|
||||||
if (i.internal is Int) i.internal + 1
|
if (i.internal is Int) i.internal + 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FILE: other.kt
|
||||||
|
package test
|
||||||
|
|
||||||
|
public class Public() {
|
||||||
|
public val public : Int? = 1;
|
||||||
|
protected val protected : Int? = 1;
|
||||||
|
internal protected val i_protected : Int? = 1;
|
||||||
|
val internal : Int? = 1
|
||||||
|
}
|
||||||
|
internal class Internal() {
|
||||||
|
public val public : Int? = 1;
|
||||||
|
protected val protected : Int? = 1;
|
||||||
|
internal protected val i_protected : Int? = 1;
|
||||||
|
val internal : Int? = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
package jet121 {
|
package jet121
|
||||||
fun box() : String {
|
|
||||||
val answer = apply("OK") { String.() : Int ->
|
|
||||||
get(0)
|
|
||||||
length
|
|
||||||
}
|
|
||||||
|
|
||||||
return if (answer == 2) "OK" else "FAIL"
|
fun box() : String {
|
||||||
}
|
val answer = apply("OK") { String.() : Int ->
|
||||||
|
get(0)
|
||||||
|
length
|
||||||
|
}
|
||||||
|
|
||||||
fun apply(arg:String, f : String.() -> Int) : Int {
|
return if (answer == 2) "OK" else "FAIL"
|
||||||
return arg.f()
|
}
|
||||||
}
|
|
||||||
|
fun apply(arg:String, f : String.() -> Int) : Int {
|
||||||
|
return arg.f()
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,9 @@
|
|||||||
|
// FILE: this.kt
|
||||||
|
|
||||||
// KT-26 Import namespaces defined in this file
|
// KT-26 Import namespaces defined in this file
|
||||||
|
package foo
|
||||||
|
|
||||||
package foo {
|
import bar.* // Must not be an error
|
||||||
import bar.* // Must not be an error
|
|
||||||
}
|
|
||||||
|
|
||||||
package bar {}
|
// FILE: other.kt
|
||||||
|
package bar
|
||||||
@@ -1,10 +1,12 @@
|
|||||||
|
// FILE: a.kt
|
||||||
// KT-26 Import namespaces defined in this file
|
// KT-26 Import namespaces defined in this file
|
||||||
|
|
||||||
import html.* // Must not be an error
|
import html.* // Must not be an error
|
||||||
|
|
||||||
package html {
|
// FILE: b.kt
|
||||||
|
|
||||||
abstract class Factory<T> {
|
package html
|
||||||
fun create() : T? = null
|
|
||||||
}
|
abstract class Factory<T> {
|
||||||
|
fun create() : T? = null
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
//FILE:a.kt
|
// FILE:a.kt
|
||||||
package a
|
package a
|
||||||
|
|
||||||
import b.B //class
|
import b.B //class
|
||||||
@@ -13,7 +13,7 @@ fun test(arg: B) {
|
|||||||
arg.ext()
|
arg.ext()
|
||||||
}
|
}
|
||||||
|
|
||||||
//FILE:b.kt
|
// FILE:b.kt
|
||||||
package b
|
package b
|
||||||
|
|
||||||
class B() {}
|
class B() {}
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
// FILE: b.kt
|
||||||
|
|
||||||
fun Int?.optint() : Unit {}
|
fun Int?.optint() : Unit {}
|
||||||
val Int?.optval : Unit = #()
|
val Int?.optval : Unit = #()
|
||||||
|
|
||||||
@@ -37,7 +39,8 @@ val <T> T.<error>foo</error> : T
|
|||||||
|
|
||||||
fun Int.foo() = this
|
fun Int.foo() = this
|
||||||
|
|
||||||
package null_safety {
|
// FILE: b.kt
|
||||||
|
package null_safety
|
||||||
|
|
||||||
fun parse(<warning>cmd</warning>: String): Command? { return null }
|
fun parse(<warning>cmd</warning>: String): Command? { return null }
|
||||||
class Command() {
|
class Command() {
|
||||||
@@ -67,5 +70,3 @@ package null_safety {
|
|||||||
|
|
||||||
if (command == null) 1
|
if (command == null) 1
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user