GreatSyntacticShift: Checker test data fixed

This commit is contained in:
Andrey Breslav
2011-12-21 11:24:04 +02:00
parent 46832aaa5d
commit 3808bff1ce
16 changed files with 119 additions and 119 deletions
+2 -2
View File
@@ -18,9 +18,9 @@ namespace boundsWithSubstitutors {
open class A {}
open class B<T : A>()
abstract class C<T : B<<error>Int</error>>, X : fun (B<<error>Char</error>>) : (B<<error>Any</error>>, B<A>)>() : B<<error>Any</error>>() { // 2 errors
abstract class C<T : B<<error>Int</error>>, X : (B<<error>Char</error>>) -> #(B<<error>Any</error>>, B<A>)>() : B<<error>Any</error>>() { // 2 errors
val a = B<<error>Char</error>>() // error
abstract val x : fun (B<<error>Char</error>>) : B<<error>Any</error>>
abstract val x : (B<<error>Char</error>>) -> B<<error>Any</error>>
}
+11 -11
View File
@@ -1,6 +1,6 @@
import java.util.*
namespace html {
package html {
abstract class Factory<T> {
abstract fun create() : T
@@ -14,7 +14,7 @@ namespace html {
val children = ArrayList<Element>()
val attributes = HashMap<String, String>()
protected fun initTag<T : Element>(init : fun T.() : Unit) : T
protected fun initTag<T : Element>(init : T.() -> Unit) : T
where class object T : Factory<T>{
val tag = T.create()
tag.init()
@@ -34,9 +34,9 @@ namespace html {
override fun create() = HTML()
}
fun head(init : fun Head.() : Unit) = initTag<Head>(init)
fun head(init : Head.() -> Unit) = initTag<Head>(init)
fun body(init : fun Body.() : Unit) = initTag<Body>(init)
fun body(init : Body.() -> Unit) = initTag<Body>(init)
}
class Head() : TagWithText("head") {
@@ -44,7 +44,7 @@ namespace html {
override fun create() = Head()
}
fun title(init : fun Title.() : Unit) = initTag<Title>(init)
fun title(init : Title.() -> Unit) = initTag<Title>(init)
}
class Title() : TagWithText("title")
@@ -57,10 +57,10 @@ namespace html {
override fun create() = Body()
}
fun b(init : fun B.() : Unit) = initTag<B>(init)
fun p(init : fun P.() : Unit) = initTag<P>(init)
fun h1(init : fun H1.() : Unit) = initTag<H1>(init)
fun a(href : String, init : fun A.() : Unit) {
fun b(init : B.() -> Unit) = initTag<B>(init)
fun p(init : P.() -> Unit) = initTag<P>(init)
fun h1(init : H1.() -> Unit) = initTag<H1>(init)
fun a(href : String, init : A.() -> Unit) {
val a = initTag<A>(init)
a.href = href
}
@@ -77,7 +77,7 @@ namespace html {
fun Map<String, String>.set(key : String, value : String) = this.put(key, value)
fun html(init : fun HTML.() : Unit) : HTML {
fun html(init : HTML.() -> Unit) : HTML {
val html = HTML()
html.init()
return html
@@ -85,7 +85,7 @@ namespace html {
}
namespace foo {
package foo {
import html.*
+1 -1
View File
@@ -12,5 +12,5 @@ fun test() : Unit {
y <warning>as?</warning> Int : Int?
x <warning>as?</warning> Int? : Int?
y <warning>as?</warning> Int? : Int?
()
#()
}
+1 -1
View File
@@ -1,5 +1,5 @@
fun Int?.optint() : Unit {}
val Int?.optval : Unit = ()
val Int?.optval : Unit = #()
fun <T, E> T.foo(<warning>x</warning> : E, y : A) : T {
y.plus(1)
@@ -4,7 +4,7 @@ fun unitEmptyInfer() {}
fun unitEmpty() : Unit {}
fun unitEmptyReturn() : Unit {return}
fun unitIntReturn() : Unit {return <error>1</error>}
fun unitUnitReturn() : Unit {return ()}
fun unitUnitReturn() : Unit {return #()}
fun test1() : Any = { <error>return</error> }
fun test2() : Any = @a {return@a 1}
fun test3() : Any { <error>return</error> }
@@ -16,13 +16,13 @@ fun bbb() {
fun foo(<warning>expr</warning>: StringBuilder): Int {
val c = 'a'
when(c) {
0.chr => throw Exception("zero")
else => throw Exception("nonzero" + c)
0.chr -> throw Exception("zero")
else -> throw Exception("nonzero" + c)
}
}
fun unitShort() : Unit = ()
fun unitShort() : Unit = #()
fun unitShortConv() : Unit = <error>1</error>
fun unitShortNull() : Unit = <error>null</error>
@@ -39,7 +39,7 @@ fun intFunctionLiteral(): Int = <error>{ 10 }</error>
fun blockReturnUnitMismatch() : Int {<error>return</error>}
fun blockReturnValueTypeMismatch() : Int {return <error>3.4</error>}
fun blockReturnValueTypeMatch() : Int {return 1}
fun blockReturnValueTypeMismatchUnit() : Int {return <error>()</error>}
fun blockReturnValueTypeMismatchUnit() : Int {return <error>#()</error>}
fun blockAndAndMismatch() : Int {
<error>true && false</error>
+8 -8
View File
@@ -38,28 +38,28 @@ fun test() {
out.println();
}
if (out == null || out.println(0) == ()) {
if (out == null || out.println(0) == #()) {
out?.println(1)
}
else {
out.println(2)
}
if (out != null && out.println() == ()) {
if (out != null && out.println() == #()) {
out.println();
}
else {
out?.println();
}
if (out == null || out != null && out.println() == ()) {
if (out == null || out != null && out.println() == #()) {
out?.println();
}
else {
out.println();
}
if (1 == 2 || out != null && out.println(1) == ()) {
if (1 == 2 || out != null && out.println(1) == #()) {
out?.println(2);
}
else {
@@ -94,28 +94,28 @@ fun test() {
out.println();
}
if (out == null || out.println(0) == ()) {
if (out == null || out.println(0) == #()) {
out?.println(1)
}
else {
out.println(2)
}
if (out != null && out.println() == ()) {
if (out != null && out.println() == #()) {
out.println();
}
else {
out?.println();
}
if (out == null || out != null && out.println() == ()) {
if (out == null || out != null && out.println() == #()) {
out?.println();
}
else {
out.println();
}
if (1 == 2 || out != null && out.println(1) == ()) {
if (1 == 2 || out != null && out.println(1) == #()) {
out?.println(2);
}
else {
+4 -4
View File
@@ -31,10 +31,10 @@ namespace closures {
val Int.xx = this : Int
fun Char.xx() : Any {
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}
return (@a{Double.() => this@a : Double + this@xx : 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}
return (@a{Double.() -> this@a : Double + this@xx : Char})
}
}
}
@@ -1,16 +1,16 @@
namespace a {
package a {
val foo = bar()
fun bar() = <error descr="[TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM] Type checking has run into a recursive problem">foo</error>
}
namespace b {
package b {
fun foo() = bar()
fun bar() = <error descr="[TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM] Type checking has run into a recursive problem">foo()</error>
}
namespace c {
package c {
fun bazz() = bar()
fun foo() = <error descr="[TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM] Type checking has run into a recursive problem">bazz()</error>
@@ -18,21 +18,21 @@ namespace c {
fun bar() = foo()
}
namespace ok {
package ok {
namespace a {
package a {
val foo = bar()
fun bar() : Int = foo
}
namespace b {
package b {
fun foo() : Int = bar()
fun bar() = foo()
}
namespace c {
package c {
fun bazz() = bar()
fun foo() : Int = bazz()
+2 -2
View File
@@ -3,8 +3,8 @@ fun demo() {
val a = ""
val asd = 1
val bar = 5
fun map(f : fun () : Any?) : Int = 1
fun buzz(f : fun () : Any?) : Int = 1
fun map(f : () -> Any?) : Int = 1
fun buzz(f : () -> Any?) : Int = 1
val sdf = 1
val foo = 3;
"$abc"
+5 -5
View File
@@ -1,8 +1,8 @@
namespace unresolved
package unresolved
fun testGenericArgumentsCount() {
val <warning>p1</warning>: Tuple2<error><Int></error> = (2, 2)
val <warning>p2</warning>: <error>Tuple2</error> = (2, 2)
val <warning>p1</warning>: Tuple2<error><Int></error> = #(2, 2)
val <warning>p2</warning>: <error>Tuple2</error> = #(2, 2)
}
fun testUnresolved() {
@@ -16,8 +16,8 @@ fun testUnresolved() {
s.<error>foo</error>()
when(<error>a</error>) {
is Int => <error>a</error>
is String => <error>a</error>
is Int -> <error>a</error>
is String -> <error>a</error>
}
//TODO
+32 -32
View File
@@ -4,25 +4,25 @@ fun foo() : Int {
val s = ""
val x = 1
when (x) {
is * => 1
is <error>String</error> => 1
!is Int => 1
is Any? => 1
<error>s</error> => 1
1 => 1
1 + <error>a</error> => 1
in 1..<error>a</error> => 1
!in 1..<error>a</error> => 1
// Commented for KT-621 .<!error>a</!error> => 1
// Commented for KT-621 .equals(1).<!error>a</!error> => 1
// Commented for KT-621 <!warning>?.</!warning>equals(1) => 1
else => 1
is * -> 1
is <error>String</error> -> 1
!is Int -> 1
is Any? -> 1
<error>s</error> -> 1
1 -> 1
1 + <error>a</error> -> 1
in 1..<error>a</error> -> 1
!in 1..<error>a</error> -> 1
// Commented for KT-621 .<!error>a</!error> -> 1
// Commented for KT-621 .equals(1).<!error>a</!error> -> 1
// Commented for KT-621 <!warning>?.</!warning>equals(1) -> 1
else -> 1
}
// Commented for KT-621
// return when (<!warning>x</!warning>?:null) {
// <!error>.</!error>foo() => 1
// ?.equals(1).equals(2) => 1
// <!error>.</!error>foo() -> 1
// ?.equals(1).equals(2) -> 1
// }
return 0
}
@@ -34,33 +34,33 @@ fun test() {
val s = "";
when (x) {
<error>s</error> => 1
is <error>""</error> => 1
x => 1
is 1 => 1
is <error>(1, 1)</error> => 1
<error>s</error> -> 1
is <error>""</error> -> 1
x -> 1
is 1 -> 1
is <error>#(1, 1)</error> -> 1
}
val z = (1, 1)
val z = #(1, 1)
when (z) {
is (*, *) => 1
is (*, 1) => 1
is (1, 1) => 1
is (1, <error>"1"</error>) => 1
is <error>(1, "1", *)</error> => 1
is boo @ (1, <error>"a"</error>, *) => 1
is boo @ <error>(1, *)</error> => 1
is #(*, *) -> 1
is #(*, 1) -> 1
is #(1, 1) -> 1
is #(1, <error>"1"</error>) -> 1
is <error>#(1, "1", *)</error> -> 1
is boo #(1, <error>"a"</error>, *) -> 1
is boo <error>#(1, *)</error> -> 1
}
when (z) {
<error>else => 1</error>
(1, 1) => 2
<error>else -> 1</error>
#(1, 1) -> 2
}
when (z) {
else => 1
else -> 1
}
}
val (Int, Int).boo : (Int, Int, Int) = (1, 1, 1)
val #(Int, Int).boo : #(Int, Int, Int) = #(1, 1, 1)
+31 -31
View File
@@ -19,7 +19,7 @@ fun f9(a : A?) {
a?.<error descr="Unresolved reference: bar">bar</error>()
a?.foo()
}
if (!(a is B) || <info descr="Automatically cast to B">a</info>.bar() == ()) {
if (!(a is B) || <info descr="Automatically cast to B">a</info>.bar() == #()) {
a?.<error descr="Unresolved reference: bar">bar</error>()
}
if (!(a is B)) {
@@ -52,24 +52,24 @@ fun f101(a : A?) {
fun f11(a : A?) {
when (a) {
is B => <info descr="Automatically cast to B">a</info>.bar()
is A => <info descr="Automatically cast to A">a</info>.foo()
is Any => <info descr="Automatically cast to A">a</info>.foo()
is Any? => a.<error descr="Unresolved reference: bar">bar</error>()
else => a?.foo()
is B -> <info descr="Automatically cast to B">a</info>.bar()
is A -> <info descr="Automatically cast to A">a</info>.foo()
is Any -> <info descr="Automatically cast to A">a</info>.foo()
is Any? -> a.<error descr="Unresolved reference: bar">bar</error>()
else -> a?.foo()
}
}
fun f12(a : A?) {
when (a) {
is B => <info descr="Automatically cast to B">a</info>.bar()
is A => <info descr="Automatically cast to A">a</info>.foo()
is Any => <info descr="Automatically cast to A">a</info>.foo();
is Any? => a.<error descr="Unresolved reference: bar">bar</error>()
is val c : <error descr="[TYPE_MISMATCH_IN_BINDING_PATTERN] B must be a supertype of A?. Use is to match against B">B</error> => c.foo()
is val c is C => <info descr="Automatically cast to C">c</info>.bar()
is val c is C => <info descr="Automatically cast to C">a</info>.bar()
else => a?.foo()
is B -> <info descr="Automatically cast to B">a</info>.bar()
is A -> <info descr="Automatically cast to A">a</info>.foo()
is Any -> <info descr="Automatically cast to A">a</info>.foo();
is Any? -> a.<error descr="Unresolved reference: bar">bar</error>()
is val c : <error descr="[TYPE_MISMATCH_IN_BINDING_PATTERN] B must be a supertype of A?. Use is to match against B">B</error> -> c.foo()
is val c is C -> <info descr="Automatically cast to C">c</info>.bar()
is val c is C -> <info descr="Automatically cast to C">a</info>.bar()
else -> a?.foo()
}
if (a is val b) {
@@ -104,7 +104,7 @@ fun f13(a : A?) {
}
a?.foo()
if (a is val c is B && <info descr="Automatically cast to A">a</info>.foo() == () && <info descr="Automatically cast to B">c</info>.bar() == ()) {
if (a is val c is B && <info descr="Automatically cast to A">a</info>.foo() == #() && <info descr="Automatically cast to B">c</info>.bar() == #()) {
<info descr="Automatically cast to A">c</info>.foo()
<info descr="Automatically cast to B">c</info>.bar()
}
@@ -152,18 +152,18 @@ fun getStringLength(obj : Any) : Char? {
fun toInt(i: Int?): Int = if (i != null) <info descr="Automatically cast to Int">i</info> else 0
fun illegalWhenBody(a: Any): Int = when(a) {
is Int => <info descr="Automatically cast to Int">a</info>
is String => <error descr="[TYPE_MISMATCH] Type mismatch: inferred type is Any but Int was expected">a</error>
is Int -> <info descr="Automatically cast to Int">a</info>
is String -> <error descr="[TYPE_MISMATCH] Type mismatch: inferred type is Any but Int was expected">a</error>
}
fun illegalWhenBlock(a: Any): Int {
when(a) {
is Int => return <info descr="Automatically cast to Int">a</info>
is String => return <error descr="[TYPE_MISMATCH] Type mismatch: inferred type is Any but Int was expected">a</error>
is Int -> return <info descr="Automatically cast to Int">a</info>
is String -> return <error descr="[TYPE_MISMATCH] Type mismatch: inferred type is Any but Int was expected">a</error>
}
}
fun declarations(a: Any?) {
if (a is String) {
val <warning>p4</warning>: (Int, String) = (2, <info descr="Automatically cast to String">a</info>)
val <warning>p4</warning>: #(Int, String) = #(2, <info descr="Automatically cast to String">a</info>)
}
if (a is String?) {
if (a != null) {
@@ -184,21 +184,21 @@ fun vars(a: Any?) {
}
fun tuples(a: Any?) {
if (a != null) {
val <warning>s</warning>: (Any, String) = (<info descr="Automatically cast to Any">a</info>, <error descr="[TYPE_MISMATCH] Type mismatch: inferred type is Any? but String was expected">a</error>)
val <warning>s</warning>: #(Any, String) = #(<info descr="Automatically cast to Any">a</info>, <error descr="[TYPE_MISMATCH] Type mismatch: inferred type is Any? but String was expected">a</error>)
}
if (a is String) {
val <warning>s</warning>: (Any, String) = (<info descr="Automatically cast to Any">a</info>, <info descr="Automatically cast to String">a</info>)
val <warning>s</warning>: #(Any, String) = #(<info descr="Automatically cast to Any">a</info>, <info descr="Automatically cast to String">a</info>)
}
fun illegalTupleReturnType(): (Any, String) = (<error descr="[TYPE_MISMATCH] Type mismatch: inferred type is Any? but Any was expected">a</error>, <error descr="[TYPE_MISMATCH] Type mismatch: inferred type is Any? but String was expected">a</error>)
fun illegalTupleReturnType(): #(Any, String) = #(<error descr="[TYPE_MISMATCH] Type mismatch: inferred type is Any? but Any was expected">a</error>, <error descr="[TYPE_MISMATCH] Type mismatch: inferred type is Any? but String was expected">a</error>)
if (a is String) {
fun legalTupleReturnType(): (Any, String) = (<info descr="Automatically cast to Any">a</info>, <info descr="Automatically cast to String">a</info>)
fun legalTupleReturnType(): #(Any, String) = #(<info descr="Automatically cast to Any">a</info>, <info descr="Automatically cast to String">a</info>)
}
val <warning>illegalFunctionLiteral</warning>: Function0<Int> = <error descr="[TYPE_MISMATCH] Type mismatch: inferred type is Function0<Any?> but Function0<Int> was expected">{ <error descr="[TYPE_MISMATCH] Type mismatch: inferred type is Any? but Int was expected">a</error> }</error>
val <warning>illegalReturnValueInFunctionLiteral</warning>: Function0<Int> = { (): Int => <error descr="[TYPE_MISMATCH] Type mismatch: inferred type is Any? but Int was expected">a</error> }
val <warning>illegalReturnValueInFunctionLiteral</warning>: Function0<Int> = { (): Int -> <error descr="[TYPE_MISMATCH] Type mismatch: inferred type is Any? but Int was expected">a</error> }
if (a is Int) {
val <warning>legalFunctionLiteral</warning>: Function0<Int> = { <info descr="Automatically cast to Int">a</info> }
val <warning>alsoLegalFunctionLiteral</warning>: Function0<Int> = { (): Int => <info descr="Automatically cast to Int">a</info> }
val <warning>alsoLegalFunctionLiteral</warning>: Function0<Int> = { (): Int -> <info descr="Automatically cast to Int">a</info> }
}
}
fun returnFunctionLiteralBlock(a: Any?): Function0<Int> {
@@ -206,12 +206,12 @@ fun returnFunctionLiteralBlock(a: Any?): Function0<Int> {
else return { 1 }
}
fun returnFunctionLiteral(a: Any?): Function0<Int> =
if (a is Int) { (): Int => <info descr="Automatically cast to Int">a</info> }
else { () => 1 }
if (a is Int) { (): Int -> <info descr="Automatically cast to Int">a</info> }
else { () -> 1 }
fun illegalTupleReturnType(a: Any): (Any, String) = (a, <error descr="[TYPE_MISMATCH] Type mismatch: inferred type is Any but String was expected">a</error>)
fun illegalTupleReturnType(a: Any): #(Any, String) = #(a, <error descr="[TYPE_MISMATCH] Type mismatch: inferred type is Any but String was expected">a</error>)
fun declarationInsidePattern(x: (Any, Any)): String = when(x) { is (val a is String, *) => <info descr="Automatically cast to String">a</info>; else => "something" }
fun declarationInsidePattern(x: #(Any, Any)): String = when(x) { is #(val a is String, *) -> <info descr="Automatically cast to String">a</info>; else -> "something" }
fun mergeAutocasts(a: Any?) {
if (a is String || a is Int) {
@@ -222,7 +222,7 @@ fun mergeAutocasts(a: Any?) {
a.<error descr="Unresolved reference: compareTo">compareTo</error>("")
}
when (a) {
is String, is Any => a.<error descr="Unresolved reference: compareTo">compareTo</error>("")
is String, is Any -> a.<error descr="Unresolved reference: compareTo">compareTo</error>("")
}
if (a is String && a is Any) {
val <warning>i</warning>: Int = <info descr="Automatically cast to String">a</info>.compareTo("")
@@ -2,7 +2,7 @@ fun foo(<warning>u</warning> : Unit) : Int = 1
fun test() : Int {
foo(<error>1</error>)
val <warning>a</warning> : fun() : Unit = {
val <warning>a</warning> : () -> Unit = {
foo(<error>1</error>)
}
return 1
+3 -3
View File
@@ -1,6 +1,6 @@
namespace jet121 {
package jet121 {
fun box() : String {
val answer = apply("OK") { String.() : Int =>
val answer = apply("OK") { String.() : Int ->
get(0)
length
}
@@ -8,7 +8,7 @@ namespace jet121 {
return if (answer == 2) "OK" else "FAIL"
}
fun apply(arg:String, f : fun String.() : Int) : Int {
fun apply(arg:String, f : String.() -> Int) : Int {
return arg.f()
}
}
+3 -3
View File
@@ -1,8 +1,8 @@
fun foo1() : fun (Int) : Int = { (x: Int) => x }
fun foo1() : (Int) -> Int = { (x: Int) -> x }
fun foo() {
val h : fun (Int) : Int = foo1();
val h : (Int) -> Int = foo1();
h(1)
val m : fun (Int) : Int = {(a : Int) => 1}//foo1()
val m : (Int) -> Int = {(a : Int) -> 1}//foo1()
m(1)
}
+3 -3
View File
@@ -1,8 +1,8 @@
fun set(<warning>key</warning> : String, <warning>value</warning> : String) {
val a : String? = ""
when (a) {
"" => a<error>.</error>get(0)
is String, is Any => a.compareTo("")
else => a.toString()
"" -> a<error>.</error>get(0)
is String, is Any -> a.compareTo("")
else -> a.toString()
}
}