Commit Graph

768 Commits

Author SHA1 Message Date
Natalia Ukhorskaya 7a9d822070 'As' function for constants 2013-12-17 15:00:30 +04:00
Svetlana Isakova 4c41d19eb1 interpret class in class object as static nested class
removed hack in TaskPrioritizer for import class from class object
2013-12-16 16:24:21 +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 cc3f450132 added test for obsolete task
#KT-2336 Fixed
2013-12-11 19:53:52 +04:00
Svetlana Isakova 4d39dc38da fixed: smart cast of boolean variable didn't work in boolean expression 2013-12-11 19:53:52 +04:00
Svetlana Isakova cd6934bee8 fixed bug in 'DataFlowInfo.getPossibleTypes'
parent types should be enriched as well
2013-12-11 19:53:51 +04:00
Svetlana Isakova 4a26c9df04 don't report autocast on left expression in equality
if it was checked for not-null beforehand
2013-12-11 19:53:51 +04:00
Svetlana Isakova 4b89c22ba7 Check separately auto casts for nullable types.
It's necessary for functions with generics: constraint system ignores nullability divergence,
the error checks are made afterwards, the auto cast check should be made similarly.
2013-12-11 19:53:51 +04:00
Svetlana Isakova 41f2fcbb40 while resolve 'equals' as a fake call do not throw away temporary trace 2013-12-11 19:53:51 +04:00
Svetlana Isakova ab1d27dd6b don't use data flow info while checking for receiver
receiver with smart cast is checked separately
2013-12-11 19:53:50 +04:00
Svetlana Isakova 46b77f4472 don't report unnecessary smart cast on receiver 2013-12-11 19:53:50 +04:00
Svetlana Isakova 33c04bde9a changed tests where autocasts aren't needed but are reported
due to KT-4294
2013-12-11 19:53:50 +04:00
Svetlana Isakova c30259dfbe added info about smart casts to diagnostic tests 2013-12-11 19:53:50 +04:00
Andrey Breslav 71be3bcec5 All tests for TCO moved to box (with diagnostics marked up) 2013-12-06 11:29:28 +04:00
Andrey Breslav bb6ceffbbb Missing tests added 2013-12-06 00:27:31 +04:00
Andrey Breslav fe00b03279 Rename directory for diagnostic tests 2013-12-05 23:53:07 +04:00
Sergey Mashkov 1c81102941 Tail-call detection support in the front-end 2013-12-05 23:53:05 +04:00
Svetlana Isakova 8e27877817 check definite return in local functions 2013-12-05 15:51:57 +04:00
Svetlana Isakova d27c8b7d61 added test for obsolete task
#KT-4034 Fixed
2013-12-05 15:51:57 +04:00
Natalia Ukhorskaya 27e602133d Small fixes after review: do not set is_pure=true for named constants refactoring 2013-12-05 15:23:41 +04:00
Natalia Ukhorskaya e5a3518248 Parse longs with 'L' suffix. Report error if 'l' used. 2013-12-05 15:23:40 +04:00
Natalia Ukhorskaya b6ce6c5e5a Parse floats with 'F' or 'f' suffix 2013-12-05 15:22:01 +04:00
Natalia Ukhorskaya e805478d6c Get call expression type from compile time value if possible 2013-12-05 15:22:00 +04:00
Natalia Ukhorskaya 53a5264aaf Use type from compile time value for binary expression 2013-12-05 15:21:58 +04:00
Natalia Ukhorskaya 2a023c16a9 Use type from compile time value for prefix expression 2013-12-05 15:21:55 +04:00
Natalia Ukhorskaya 9c176ddaa8 Warning for integer overflow 2013-12-05 15:21:55 +04:00
Natalia Ukhorskaya d63f6843c8 Merge ConstantExpressionEvaluator and CompileTimeConstantResolver 2013-12-05 15:21:50 +04:00
Andrey Breslav 9efa604cff Revert 4ca90e9c68 2013-12-05 14:04:50 +04:00
Andrey Breslav 4ca90e9c68 Proper instructions for elvis operator
We should not mark elvis operator unused, for the rhs may have desired side-effects
2013-12-05 13:28:41 +04:00
Andrey Breslav 6df3a3042c Properly handle the case of backing field access qualified with 'this' reference 2013-12-05 13:28:40 +04:00
Andrey Breslav 11fcd64949 Mark expressions for correct recognition by "unreachable code" 2013-12-05 13:02:17 +04:00
Andrey Breslav b15b075484 Tests for bug in CFA: no return in when() is now detected 2013-12-05 13:02:15 +04:00
Andrey Breslav ec39105183 Type parameter is not an expression: no need to report 'unused expression' on it 2013-12-05 13:02:14 +04:00
Andrey Breslav 1e2eb6dfa1 Special instructions added for calls and other constructs 2013-12-05 13:00:44 +04:00
Alexander Udalov 1c3383c811 Unextend Char from Number
This is impossible to achieve on JVM, where java/lang/Character does not extend
java/lang/Number
2013-12-04 15:57:53 +04:00
Alexander Udalov 7af72b98fe Resolve generic bounds of all classes prior to supertypes 2013-12-04 15:57:53 +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
Alexander Udalov dfd660a8e3 Try to resolve expression as class object if resolution found an inappropriate result 2013-12-03 19:00:44 +04:00
Alexander Udalov 310a70bf84 Report a separate diagnostic on inheritance from singletons 2013-12-02 19:56:16 +04:00
Alexander Udalov 080bd42f88 Allow singletons and functions with the same name 2013-12-02 19:56:15 +04:00
Alexander Udalov c2598faa4e Fix class object visibility check
ExpressionTypingContext now has a scope for visibility checking, which isn't
replaced on replaceScope()
2013-12-02 19:56:15 +04:00
Alexander Udalov 92cdb0b6e7 Fix imports from objects
This almost reverts 345ecbf, since now properties are no longer created for
objects
2013-12-02 19:56:13 +04:00
Alexander Udalov dce9fbb91c Report a proper error on class object in enum entry or object
CLASS_OBJECT_NOT_ALLOWED instead of MANY_CLASS_OBJECTS
2013-12-02 19:56:13 +04:00
Alexander Udalov 2e4807856f Don't create NamespaceType for enum entries
Enum entry expressions have the type of their enum, so it shouldn't be possible
to access static nested classes of enum entries from outside.

This fixes BlackBoxCodegenTestGenerated$CallableReference.testEnumNameMethod
2013-12-02 19:56:13 +04:00
Mikhael Bogdanov 606b3aa4a9 Test for local fun 2013-12-02 18:30:43 +04:00
Mikhael Bogdanov 59dbf75d80 Added test for sam 2013-12-02 18:30:43 +04:00
Mikhael Bogdanov 712dcaac91 Added tests for && and || 2013-12-02 18:30:43 +04:00
Mikhael Bogdanov 0b2c3efc40 Inline recursion diagnostic 2013-12-02 18:30:43 +04:00
Mikhael Bogdanov 621a4002e4 Binary and unary expression support 2013-12-02 18:30:42 +04:00
Mikhael Bogdanov 1391676281 Support parenthesized, typed and labeled expressions 2013-12-02 18:30:42 +04:00