Add warning for initializers with obsolete syntax

Expected 'init' keyword before class initializer
This commit is contained in:
Denis Zharkov
2015-02-18 12:05:26 +03:00
parent 0dc155d8c9
commit f07566d30d
61 changed files with 175 additions and 131 deletions
@@ -112,7 +112,7 @@ val y = 10
val z = 10
class AnonymousInitializers(var a: String, val b: String) {
{
init {
$a = "30"
a = "s"
@@ -121,11 +121,11 @@ class AnonymousInitializers(var a: String, val b: String) {
}
val i: Int
{
init {
$i = 121
}
{
init {
x = 11
<!VAL_REASSIGNMENT!>z<!> = 10
}
@@ -133,14 +133,14 @@ class AnonymousInitializers(var a: String, val b: String) {
val j: Int
get() = 20
{
init {
<!VAL_REASSIGNMENT!>$i<!> = 13
<!NO_BACKING_FIELD_CUSTOM_ACCESSORS!>$j<!> = 30
<!VAL_REASSIGNMENT!>j<!> = 34
}
val k: String
{
init {
if (1 < 3) {
k = "a"
}
@@ -150,7 +150,7 @@ class AnonymousInitializers(var a: String, val b: String) {
}
val l: String
{
init {
if (1 < 3) {
$l = "a"
}
@@ -160,7 +160,7 @@ class AnonymousInitializers(var a: String, val b: String) {
}
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>val o: String<!>
{
init {
if (1 < 3) {
$o = "a"
}
@@ -168,13 +168,13 @@ class AnonymousInitializers(var a: String, val b: String) {
var m: Int = 30
{
init {
$m = 400
}
val n: Int
{
init {
while (<!UNINITIALIZED_VARIABLE!>n<!> == 0) {
}
$n = 10
@@ -183,7 +183,7 @@ class AnonymousInitializers(var a: String, val b: String) {
}
var p = 1
{
init {
p++
}
}
@@ -197,7 +197,7 @@ open class Open(<!UNUSED_PARAMETER!>a<!>: Int, <!UNUSED_PARAMETER!>w<!>: Int) {}
class LocalValsVsProperties(val a: Int, w: Int) : Open(a, w) {
val x : Int
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>val y : Int<!>
{
init {
$x = 1
val <!UNUSED_VARIABLE!>b<!> = x
}
@@ -212,7 +212,7 @@ class LocalValsVsProperties(val a: Int, w: Int) : Open(a, w) {
}
var xx = w
var yy : Int
{
init {
<!VAL_REASSIGNMENT!>w<!> += 1
$yy = w
}
@@ -222,13 +222,13 @@ class Outer() {
val a : Int
var b : Int
{
init {
$a = 1
$b = 1
}
inner class Inner() {
{
init {
<!VAL_REASSIGNMENT!>a<!>++
b++
}
@@ -250,7 +250,7 @@ class ClassObject() {
default object {
val x : Int
{
init {
$x = 1
}
@@ -267,7 +267,7 @@ fun foo() {
val x : Int
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>val y : Int<!>
val z : Int
{
init {
$x = 1
$z = 3
}
@@ -284,7 +284,7 @@ class TestObjectExpression() {
val <!UNUSED_VARIABLE!>a<!> = object {
val x : Int
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>val y : Int<!>
{
init {
if (true)
x = 12
else
@@ -307,7 +307,7 @@ class TestObjectExpression() {
object TestObjectDeclaration {
val x : Int
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>val y : Int<!>
{
init {
$x = 1
}
@@ -325,7 +325,7 @@ fun func() {
val b = 1
val <!UNUSED_VARIABLE!>a<!> = object {
val x = b
{
init {
<!VAL_REASSIGNMENT!>b<!> = 4
<!UNRESOLVED_REFERENCE!>$b<!> = 3
}
@@ -9,7 +9,7 @@ class P {
val other = P();
{
init {
x = 23
other.x = 4
}
@@ -33,7 +33,7 @@ fun foo() {
class R {
val p = P();
{
init {
<!INVISIBLE_SETTER!>p.x<!> = 42
}
@@ -14,7 +14,7 @@ val closure = {
}
class A {
{
init {
fun foo(): Int {
<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
@@ -4,7 +4,7 @@ package kt510
public open class Identifier1() {
var field : Boolean
{
init {
field = false; // error
}
}
@@ -12,7 +12,7 @@ public open class Identifier1() {
public open class Identifier2() {
var field : Boolean
{
init {
this.field = false;
}
}
@@ -3,17 +3,17 @@
package kt897
class A() {
{
init {
<!INITIALIZATION_BEFORE_DECLARATION!>i<!> = 11
}
val i : Int? = null // must be an error
{
init {
<!INITIALIZATION_BEFORE_DECLARATION!>j<!> = 1
}
var j : Int = 2
{
init {
<!INITIALIZATION_BEFORE_DECLARATION!>k<!> = 3
}
val k : Int
@@ -2,7 +2,7 @@ package f
fun f() {
class LocalClass() {
{
init {
val <!UNUSED_VARIABLE!>x1<!> = "" // ok: unused
fun loc1(): Int {
@@ -12,7 +12,7 @@ open class A(val a: A)
class TestObjectLiteral {
val obj: A = object: A(<!UNINITIALIZED_VARIABLE!>obj<!>) {
{
init {
val x = <!UNINITIALIZED_VARIABLE!>obj<!>
}
fun foo() {
@@ -20,7 +20,7 @@ class TestObjectLiteral {
}
}
val obj1: A = @l ( object: A(<!UNINITIALIZED_VARIABLE!>obj1<!>) {
{
init {
val x = <!UNINITIALIZED_VARIABLE!>obj1<!>
}
fun foo() = obj1
@@ -1,5 +1,5 @@
class AnonymousInitializers(var a: String) {
{
init {
a = "s"
}
}