diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java index 9e0722b4610..3b75a149b29 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java @@ -916,7 +916,9 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { @Override 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 diff --git a/compiler/testData/codegen/regressions/kt998.kt b/compiler/testData/codegen/regressions/kt998.kt index 2b5d30d6fdd..5f219794187 100644 --- a/compiler/testData/codegen/regressions/kt998.kt +++ b/compiler/testData/codegen/regressions/kt998.kt @@ -17,7 +17,6 @@ fun hasDuplicates(a : IntArray) : Boolean { break@loop } } - return a[i] } return duplicate } diff --git a/compiler/testData/diagnostics/tests/Builders.jet b/compiler/testData/diagnostics/tests/Builders.jet index 5d2f38686de..b27a062955a 100644 --- a/compiler/testData/diagnostics/tests/Builders.jet +++ b/compiler/testData/diagnostics/tests/Builders.jet @@ -132,10 +132,13 @@ class LI() : BodyTag("li") class P() : BodyTag("p") class H1() : BodyTag("h1") class A() : BodyTag("a") { - public var href : String + public var href : String? get() = attributes["href"] set(value) { - attributes["href"] = value + if (value != null) { + attributes.put("href", value) +// attributes["href"] = value //doesn't work: KT-1355 + } } } diff --git a/compiler/testData/diagnostics/tests/inference/kt1293.jet b/compiler/testData/diagnostics/tests/inference/kt1293.jet new file mode 100644 index 00000000000..119d3d89133 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/kt1293.jet @@ -0,0 +1,11 @@ +//KT-1293 Kompiler doesn't show error when element of Array is assigned to Int + +package kt1293 + +fun main(args : Array) { + val intArray = Array(10) + val i : Int = intArray[0] + requiresInt(intArray[0]) +} + +fun requiresInt(i: Int) {} \ No newline at end of file