Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
// FILE: a.kt
|
||||
// +JDK
|
||||
|
||||
package abstract
|
||||
@@ -180,7 +181,8 @@ enum class MyEnum() {
|
||||
|
||||
abstract enum class MyAbstractEnum() {}
|
||||
|
||||
package MyNamespace {
|
||||
// FILE: b.kt
|
||||
package MyNamespace
|
||||
//properties
|
||||
val <!MUST_BE_INITIALIZED!>a<!>: Int
|
||||
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 n: Int <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set(v: Int) {}
|
||||
}
|
||||
|
||||
// FILE: c.kt
|
||||
//creating an instance
|
||||
abstract class B1(
|
||||
val i: Int,
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
package example;
|
||||
|
||||
package ns {
|
||||
// FILE: a.kt
|
||||
package example.ns
|
||||
val y : Any? = 2
|
||||
}
|
||||
|
||||
// FILE: b.kt
|
||||
package example
|
||||
|
||||
object Obj {
|
||||
val y : Any? = 2
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
package boundsWithSubstitutors {
|
||||
// FILE: a.kt
|
||||
package boundsWithSubstitutors
|
||||
open class A<T>
|
||||
class B<X : A<X>>()
|
||||
|
||||
@@ -13,8 +14,7 @@ package boundsWithSubstitutors {
|
||||
val b0 = X<Any, <!UPPER_BOUND_VIOLATED!>Any?<!>>
|
||||
val b1 = X<Any, X<A<C>, <!UPPER_BOUND_VIOLATED!>String<!>>>
|
||||
|
||||
}
|
||||
|
||||
// FILE: b.kt
|
||||
open class A {}
|
||||
open class B<T : A>()
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
// FILE: a.kt
|
||||
// +JDK
|
||||
|
||||
package html
|
||||
import java.util.*
|
||||
|
||||
package html {
|
||||
|
||||
abstract class Factory<T> {
|
||||
abstract fun create() : T
|
||||
}
|
||||
@@ -85,9 +85,9 @@ package html {
|
||||
return html
|
||||
}
|
||||
|
||||
}
|
||||
// FILE: b.kt
|
||||
|
||||
package foo {
|
||||
package foo
|
||||
|
||||
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
|
||||
|
||||
class A {
|
||||
@@ -13,7 +14,8 @@ class A {
|
||||
}
|
||||
}
|
||||
|
||||
package deepSpace {
|
||||
// FILE: b.kt
|
||||
package deepSpace
|
||||
<!CONFLICTING_OVERLOADS!>fun c(<!UNUSED_PARAMETER!>s<!>: String)<!> {
|
||||
}
|
||||
|
||||
@@ -27,28 +29,25 @@ package deepSpace {
|
||||
<!CONFLICTING_OVERLOADS!>fun d(<!UNUSED_PARAMETER!>s<!>: String)<!> {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// FILE: b.kt
|
||||
// check no error in overload in different namespaces
|
||||
|
||||
package ns1 {
|
||||
package ns1
|
||||
fun e() = 1
|
||||
}
|
||||
|
||||
package ns2 {
|
||||
// FILE: b.kt
|
||||
package ns2
|
||||
fun e() = 1
|
||||
}
|
||||
|
||||
package ns3 {
|
||||
package ns1 {
|
||||
// FILE: b.kt
|
||||
package ns3.ns1
|
||||
fun e() = 1
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: b.kt
|
||||
// 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)<!> = 2
|
||||
@@ -56,19 +55,19 @@ package extensionFunctions {
|
||||
fun Int.rty() = 3
|
||||
|
||||
fun String.rty() = 4
|
||||
}
|
||||
|
||||
// FILE: b.kt
|
||||
// check no error when regular function and extension function have same name
|
||||
|
||||
package extensionAndRegular {
|
||||
package extensionAndRegular
|
||||
fun who() = 1
|
||||
|
||||
fun Int.who() = 1
|
||||
}
|
||||
|
||||
// FILE: b.kt
|
||||
// constructor vs. fun overload
|
||||
|
||||
package constructorVsFun {
|
||||
package constructorVsFun
|
||||
class <!CONFLICTING_OVERLOADS!>a()<!> { }
|
||||
|
||||
<!CONFLICTING_OVERLOADS!>fun a()<!> = 1
|
||||
@@ -93,5 +92,4 @@ package constructorVsFun {
|
||||
class object {
|
||||
class ololo() { }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FILE: b.kt
|
||||
trait A<in T> {}
|
||||
trait B<T> : A<Int> {}
|
||||
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<!> {}
|
||||
|
||||
|
||||
package x {
|
||||
// FILE: b.kt
|
||||
package x
|
||||
trait AA1<out T> {}
|
||||
trait AB1 : AA1<Int> {}
|
||||
trait AB3 : AA1<Comparable<Int>> {}
|
||||
trait AB2 : AA1<Number>, AB1, AB3 {}
|
||||
}
|
||||
|
||||
package x2 {
|
||||
// FILE: b.kt
|
||||
package x2
|
||||
trait AA1<out T> {}
|
||||
trait AB1 : AA1<Any> {}
|
||||
trait AB3 : AA1<Comparable<Int>> {}
|
||||
trait AB2 : <!INCONSISTENT_TYPE_PARAMETER_VALUES!>AA1<Number>, AB1, AB3<!> {}
|
||||
}
|
||||
|
||||
package x3 {
|
||||
// FILE: b.kt
|
||||
package x3
|
||||
trait AA1<in T> {}
|
||||
trait AB1 : AA1<Any> {}
|
||||
trait AB3 : AA1<Comparable<Int>> {}
|
||||
trait AB2 : AA1<Number>, AB1, AB3 {}
|
||||
}
|
||||
|
||||
package sx2 {
|
||||
// FILE: b.kt
|
||||
package sx2
|
||||
trait AA1<in T> {}
|
||||
trait AB1 : AA1<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
|
||||
|
||||
package a {
|
||||
package a
|
||||
import b.*
|
||||
val x : X = X()
|
||||
}
|
||||
|
||||
package b {
|
||||
// FILE: b.kt
|
||||
package b
|
||||
class X() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
package c {
|
||||
// FILE: b.kt
|
||||
package c
|
||||
import d.X
|
||||
val x : X = X()
|
||||
}
|
||||
|
||||
package d {
|
||||
// FILE: b.kt
|
||||
package d
|
||||
class X() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
// FILE: b.kt
|
||||
package root.a
|
||||
|
||||
// FILE: b.kt
|
||||
package root
|
||||
|
||||
package a {
|
||||
|
||||
}
|
||||
|
||||
val x = <!EXPRESSION_EXPECTED_NAMESPACE_FOUND!>a<!>
|
||||
val y2 = <!NAMESPACE_IS_NOT_AN_EXPRESSION!>package<!>
|
||||
|
||||
@@ -1,26 +1,29 @@
|
||||
// FILE: b.kt
|
||||
// +JDK
|
||||
|
||||
package foobar
|
||||
|
||||
package a {
|
||||
package foobar.a
|
||||
import java.*
|
||||
|
||||
val a : util.List<Int>? = null
|
||||
val a1 : <!UNRESOLVED_REFERENCE!>List<!><Int>? = null
|
||||
|
||||
}
|
||||
// FILE: b.kt
|
||||
package foobar
|
||||
|
||||
abstract class Foo<T>() {
|
||||
abstract val x : T<Int>
|
||||
}
|
||||
|
||||
package a {
|
||||
// FILE: b.kt
|
||||
package foobar.a
|
||||
import java.util.*
|
||||
|
||||
val b : List<Int>? = a
|
||||
val b1 : <!UNRESOLVED_REFERENCE!>util<!>.List<Int>? = a
|
||||
}
|
||||
|
||||
// FILE: b.kt
|
||||
package foobar
|
||||
val x1 = a.a
|
||||
|
||||
val y1 = a.b
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
package toplevelObjectDeclarations {
|
||||
// FILE: f.kt
|
||||
package toplevelObjectDeclarations
|
||||
open class Foo(y : Int) {
|
||||
open fun foo() : Int = 1
|
||||
}
|
||||
@@ -26,9 +27,9 @@ package toplevelObjectDeclarations {
|
||||
}
|
||||
|
||||
val z = y.foo()
|
||||
}
|
||||
|
||||
package nestedObejcts {
|
||||
// FILE: f.kt
|
||||
package nestedObejcts
|
||||
object A {
|
||||
val b = B
|
||||
val d = A.B.A
|
||||
@@ -56,9 +57,10 @@ package nestedObejcts {
|
||||
val c = A.B
|
||||
val d = A.B.A
|
||||
val e = B.<!UNRESOLVED_REFERENCE!>A<!>.B
|
||||
}
|
||||
|
||||
package localObjects {
|
||||
// FILE: f.kt
|
||||
|
||||
package localObjects
|
||||
object A {
|
||||
val x : Int = 0
|
||||
}
|
||||
@@ -80,4 +82,3 @@ package localObjects {
|
||||
}
|
||||
|
||||
val bb = <!UNRESOLVED_REFERENCE!>B<!>.foo()
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package override
|
||||
|
||||
package normal {
|
||||
// FILE: f.kt
|
||||
package override.normal
|
||||
trait MyTrait {
|
||||
fun foo()
|
||||
val pr : Unit
|
||||
@@ -49,9 +48,10 @@ package normal {
|
||||
override fun bar() {}
|
||||
override val prr : Unit = #()
|
||||
}
|
||||
}
|
||||
|
||||
package generics {
|
||||
// FILE: f.kt
|
||||
|
||||
package override.generics
|
||||
trait MyTrait<T> {
|
||||
fun foo(t: T) : T
|
||||
}
|
||||
@@ -109,5 +109,4 @@ package generics {
|
||||
fun foo(t: T) = t
|
||||
fun bar(t: T) = t
|
||||
val <R> pr : T = t
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FILE: f.kt
|
||||
class Dup {
|
||||
fun Dup() : Unit {
|
||||
this<!AMBIGUOUS_LABEL!>@Dup<!>
|
||||
@@ -21,7 +22,8 @@ fun foo1() : Unit {
|
||||
this<!UNRESOLVED_REFERENCE!>@a<!>
|
||||
}
|
||||
|
||||
package closures {
|
||||
// FILE: f.kt
|
||||
package closures
|
||||
class A(val a:Int) {
|
||||
|
||||
class B() {
|
||||
@@ -37,5 +39,4 @@ package closures {
|
||||
return (@a{Double.() -> this@a : Double + this@xx : Char})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,42 +1,40 @@
|
||||
package a {
|
||||
// FILE: f.kt
|
||||
package a
|
||||
val foo = bar()
|
||||
|
||||
fun bar() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>foo<!>
|
||||
}
|
||||
|
||||
package b {
|
||||
// FILE: f.kt
|
||||
package b
|
||||
fun foo() = bar()
|
||||
|
||||
fun bar() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>foo()<!>
|
||||
}
|
||||
|
||||
package c {
|
||||
// FILE: f.kt
|
||||
package c
|
||||
fun bazz() = bar()
|
||||
|
||||
fun foo() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>bazz()<!>
|
||||
|
||||
fun bar() = foo()
|
||||
}
|
||||
|
||||
package ok {
|
||||
// FILE: f.kt
|
||||
|
||||
package a {
|
||||
package ok.a
|
||||
val foo = bar()
|
||||
|
||||
fun bar() : Int = foo
|
||||
}
|
||||
|
||||
package b {
|
||||
// FILE: f.kt
|
||||
package ok.b
|
||||
fun foo() : Int = bar()
|
||||
|
||||
fun bar() = foo()
|
||||
}
|
||||
|
||||
package c {
|
||||
// FILE: f.kt
|
||||
package ok.c
|
||||
fun bazz() = bar()
|
||||
|
||||
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<!> {
|
||||
val x : Int = 0
|
||||
|
||||
val A = 1
|
||||
}
|
||||
|
||||
package <!REDECLARATION!>A<!> {
|
||||
class A {}
|
||||
}
|
||||
|
||||
class <!REDECLARATION, REDECLARATION!>A<!> {}
|
||||
class <!REDECLARATION!>A<!> {}
|
||||
|
||||
val <!REDECLARATION!>A<!> = 1
|
||||
|
||||
}
|
||||
// FILE: f.kt
|
||||
package redeclarations.<!REDECLARATION, REDECLARATION!>A<!>
|
||||
class A {}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FILE: f.kt
|
||||
// +JDK
|
||||
|
||||
import java.*
|
||||
@@ -49,6 +50,6 @@ fun test(<!UNUSED_PARAMETER!>l<!> : java.util.List<Int>) {
|
||||
}
|
||||
|
||||
|
||||
package xxx {
|
||||
import java.lang.Class;
|
||||
}
|
||||
// FILE: f.kt
|
||||
package xxx
|
||||
import java.lang.Class;
|
||||
@@ -1,9 +1,11 @@
|
||||
// FILE: f.kt
|
||||
class A {
|
||||
}
|
||||
|
||||
package n {
|
||||
// FILE: f.kt
|
||||
package n
|
||||
class B
|
||||
}
|
||||
// FILE: f.kt
|
||||
abstract class XXX() {
|
||||
abstract val a : Int
|
||||
abstract val a1 : package.<!UNRESOLVED_REFERENCE!>Int<!>
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
package customGetValGlobal {
|
||||
package customGetValGlobal
|
||||
val zz = 1
|
||||
get() = $zz * 2
|
||||
|
||||
}
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
// FILE: b.kt
|
||||
// +JDK
|
||||
package outer
|
||||
|
||||
fun Int?.optint() : Unit {}
|
||||
val Int?.optval : Unit = #()
|
||||
@@ -39,7 +41,10 @@ val <T> T.<!MUST_BE_INITIALIZED!>foo<!> : T
|
||||
|
||||
fun Int.foo() = this
|
||||
|
||||
package null_safety {
|
||||
// FILE: b.kt
|
||||
package null_safety
|
||||
|
||||
import outer.*
|
||||
|
||||
fun parse(<!UNUSED_PARAMETER!>cmd<!>: String): Command? { return null }
|
||||
class Command() {
|
||||
@@ -69,5 +74,3 @@ package null_safety {
|
||||
|
||||
if (command == null) 1
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,21 +1,8 @@
|
||||
// FILE: this.kt
|
||||
|
||||
// KT-362 Don't allow autocasts on vals that are not internal
|
||||
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() {
|
||||
val p = test.Public()
|
||||
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.i_protected is Int) i.i_protected + 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 {
|
||||
fun box() : String {
|
||||
val answer = apply("OK") { String.() : Int ->
|
||||
get(0)
|
||||
length
|
||||
}
|
||||
package jet121
|
||||
|
||||
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 arg.f()
|
||||
}
|
||||
return if (answer == 2) "OK" else "FAIL"
|
||||
}
|
||||
|
||||
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
|
||||
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
|
||||
|
||||
import html.* // Must not be an error
|
||||
|
||||
package html {
|
||||
// FILE: b.kt
|
||||
|
||||
abstract class Factory<T> {
|
||||
fun create() : T? = null
|
||||
}
|
||||
package html
|
||||
|
||||
abstract class Factory<T> {
|
||||
fun create() : T? = null
|
||||
}
|
||||
@@ -1,12 +1,12 @@
|
||||
// KT-716 Type inference failed
|
||||
// +JDK
|
||||
|
||||
fun <T> typeinfo.TypeInfo<T>.getJavaClass() : java.lang.Class<T> {
|
||||
fun <T> TypeInfo<T>.getJavaClass() : java.lang.Class<T> {
|
||||
val t : java.lang.Object = this <!CAST_NEVER_SUCCEEDS!>as<!> java.lang.Object
|
||||
return <!UNCHECKED_CAST!>t.getClass() as java.lang.Class<T><!> // inferred type is Object but Serializable was expected
|
||||
}
|
||||
|
||||
fun getJavaClass<T>() = typeinfo.typeinfo<T>.getJavaClass()
|
||||
fun getJavaClass<T>() = typeinfo<T>.getJavaClass()
|
||||
|
||||
fun main(args : Array<String>) {
|
||||
System.out?.println(getJavaClass<String>)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
//FILE:a.kt
|
||||
// FILE:a.kt
|
||||
package a
|
||||
|
||||
import b.B //class
|
||||
@@ -23,7 +23,7 @@ fun test(arg: B) {
|
||||
f.f()
|
||||
}
|
||||
|
||||
//FILE:b.kt
|
||||
// FILE:b.kt
|
||||
package b
|
||||
|
||||
class B() {}
|
||||
|
||||
Reference in New Issue
Block a user