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