Commit Graph

36 Commits

Author SHA1 Message Date
Alexey Sedunov 9fee8600cb Pseudocode: Do not generate implicit return instruction inside of
Unit-typed lambdas
 #KT-5549 Fixed
2014-08-05 18:14:40 +04:00
Alexey Sedunov 9cbcabffa4 Control-Flow Analysis: Reuse pseudo-value information for unused expression analysis 2014-07-28 13:07:37 +04:00
Svetlana Isakova 79cec6411d Mark only unreachable parts of element if it has reachable parts
like for 'return todo()' mark only 'return'
2014-06-21 12:26:33 +04:00
Tuomas Tynkkynen 3e451c5811 Disallow break or continue across a function boundary
Code containing breaks or continues that attempt to jump across a
function boundary weren't detected during analysis but would crash
the compiler during code generation. Add diagnostics for these kinds
of errors.

Example:

fun f() {
    while (true) {
        fun inner() {
            continue
        }
    }
}

 #KT-4334 Fixed
2014-02-26 00:14:42 +02:00
Svetlana Isakova 400e6d3f44 KT-4310 Check for definite returns
#KT-4310 Fixed
2013-12-17 19:04:40 +04:00
Alexander Udalov 9e5c68a8f9 Fix KotlinBuiltIns.isUnit
It didn't check type's nullability
2013-12-12 21:38:20 +04:00
Svetlana Isakova c30259dfbe added info about smart casts to diagnostic tests 2013-12-11 19:53:50 +04:00
Alexander Udalov 4cd4026174 Support empty if-statements
Type-check "if (...) ;" to Unit, report "implicit cast to Unit", propagate data
flow info out of its condition

 #KT-2478 Fixed
2013-12-04 15:19:47 +04:00
Svetlana Isakova a3f9cef354 fixed bug: 'isStatement' for function body == 'hasBlockBody'
not vice versa
2013-09-30 21:06:05 +04:00
Andrey Breslav 69cc11d035 Existing tests updated according to "'Else' is not required in 'when' if Unit is expected" 2013-09-13 22:05:37 +02:00
Svetlana Isakova 298d344c31 check constants with Unit return type as usual 2013-09-13 16:04:17 +04:00
Svetlana Isakova 335e0d7d1b test data fixed
can't implicitly convert to Unit any more in 'if'
as 'if' is resolved as special function call 'fun IF<T>(T, T)'
2013-09-03 13:09:17 +04:00
Svetlana Isakova aba70e047d resolve a!! as call 2013-09-02 23:18:46 +04:00
Svetlana Isakova e2f681c587 report type mismatch deeply on branches for if
in type argument inference case
2013-09-02 23:18:45 +04:00
Evgeny Gerashchenko 18d6e86e60 KT-3341 Prohibit val/var keywords for catch parameters
#KT-3341
2013-02-13 18:08:36 +04:00
Evgeny Gerashchenko 808dbd160c KT-3182 Prohibit val/var keywords at for-loop counter.
#KT-3182 fixed
2013-02-13 18:08:36 +04:00
Andrey Breslav 5eaa5b396b Removing usages of tuples from test data
(KT-2358 Drop tuples)
 #KT-2358 In progress
2012-09-18 20:27:09 +04:00
Andrey Breslav a267f65fa1 Front-end test data fixed to have no complex patterns
#KT-2359 In Progress
2012-09-05 14:18:40 +04:00
Andrey Breslav c0c2ca0ac2 Report errors when iterator() returns a nullable type 2012-08-24 19:49:33 +04:00
Andrey Breslav 66faa0c03a For-loop range expression (collection) can not be null 2012-08-24 19:49:33 +04:00
Andrey Breslav 3d8d92c7d3 JetDiagnosticsTest migrated to TestGenerator
- test data files renamed from *.jet to *.kt
2012-07-10 14:48:11 +04:00
Svetlana Isakova 2971c1630e KT-2166 Control flow analysis doesn't detect that a 'while(true)' loop never terminates
KT-2103 Compiler requires return statement after loop which never exits
 #KT-2166 Fixed
 #KT-2103 Fixed
2012-06-09 13:33:25 +04:00
Svetlana Isakova 2d601cf4a2 Frontend part of KT-910 Type of try/catch/finally 2012-05-18 15:20:37 +04:00
Stepan Koltsov 8c8ed3a1ee KT-1388 Parse static final fields from java binary classes as non-null
#KT-1388 Fixed
2012-05-13 00:53:37 +04:00
Stepan Koltsov 3748507ac1 disable +JDK macro in JetDiagnosticsTest and fix (actually hide) revealed bugs
+JDK was not very helpful
2012-03-12 22:54:24 +04:00
Stepan Koltsov 07ff53d456 add trailing newlines to test files
otherwise I have to rollback dozens of files after using sed that follows conventions
2012-03-12 22:54:14 +04:00
Svetlana Isakova c857785910 KT-1002 If there's no return in function highlight only last token but not last statement 2012-03-09 12:20:10 +04:00
Svetlana Isakova cc244fad94 KT-1191 Wrong detection of unused parameters
KT-1219 Incorrect 'unused value' error in closures
2012-02-24 12:09:02 +04:00
svtk 255e37efb9 KT-799 Allow 'return' expressions in conditionals assigned to variables 2012-02-09 12:58:17 +04:00
svtk 11ad28812d KT-1175 Mark unused literals 2012-01-27 18:32:55 +04:00
svtk 936a081bae KT-1075 No type check for 'in range' condition in 'when' expression 2012-01-20 12:10:34 +04:00
svtk cc3a7448dc KT-657 Semantic checks for when without condition 2012-01-18 19:28:39 +04:00
svtk becd713111 KT-234 Force when() expressions to have an 'else' branch
KT-973 Unreachable code
2012-01-18 13:31:42 +04:00
Andrey Breslav 41fd43b5e5 GreatSyntacticShift: Syntax for function types, function literals, when and tuples
Bug:
fun loop(var times : Int) {
   while(times > 0) {
        val u : (value : Int) -> Unit = { // This arrow is confusing the lookahead
            System.out?.println(it)
        }
        u(times--)
   }
}
2011-12-20 22:55:25 +04:00
svtk 20d339e2da KT-786 Exception on incomplete code with 'when' 2011-12-16 13:09:34 +04:00
svtk a41d33a56c KT-351 Distinguish statement and expression positions 2011-12-13 19:43:20 +04:00