KT-1293 Kompiler doesn't show error when element of Array<Int?> is assigned to Int

This commit is contained in:
Svetlana Isakova
2012-02-20 16:46:44 +04:00
parent 5077404c80
commit 05dfdc7377
4 changed files with 19 additions and 4 deletions
@@ -916,7 +916,9 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor {
@Override @Override
public JetType visitArrayAccessExpression(JetArrayAccessExpression expression, ExpressionTypingContext context) { public JetType visitArrayAccessExpression(JetArrayAccessExpression expression, ExpressionTypingContext context) {
return resolveArrayAccessGetMethod(expression, context.replaceExpectedType(NO_EXPECTED_TYPE)); JetType type = resolveArrayAccessGetMethod(expression, context.replaceExpectedType(NO_EXPECTED_TYPE));
DataFlowUtils.checkType(type, expression, context);
return type;
} }
@Nullable @Nullable
@@ -17,7 +17,6 @@ fun hasDuplicates(a : IntArray) : Boolean {
break@loop break@loop
} }
} }
return a[i]
} }
return duplicate return duplicate
} }
@@ -132,10 +132,13 @@ class LI() : BodyTag("li")
class P() : BodyTag("p") class P() : BodyTag("p")
class H1() : BodyTag("h1") class H1() : BodyTag("h1")
class A() : BodyTag("a") { class A() : BodyTag("a") {
public var href : String public var href : String?
get() = attributes["href"] get() = attributes["href"]
set(value) { set(value) {
attributes["href"] = value if (value != null) {
attributes.put("href", value)
// attributes["href"] = value //doesn't work: KT-1355
}
} }
} }
@@ -0,0 +1,11 @@
//KT-1293 Kompiler doesn't show error when element of Array<Int?> is assigned to Int
package kt1293
fun main(args : Array<String>) {
val intArray = Array<Int>(10)
val <!UNUSED_VARIABLE!>i<!> : Int = <!TYPE_MISMATCH!>intArray[0]<!>
requiresInt(<!TYPE_MISMATCH!>intArray[0]<!>)
}
fun requiresInt(<!UNUSED_PARAMETER!>i<!>: Int) {}