Stanislav Erokhin
7de2013a3e
KT-3856 Wrong inner class inaccessible diagnostic for extension to outer class
...
#KT-3856 Fixed
2016-02-20 14:55:15 +03:00
Alexander Udalov
1b8f934b54
Delete deprecated enum 'values' property
2016-02-19 22:28:44 +03:00
Dmitry Petrov
30c2abba3c
KT-9550: distinguish signature conflict on override from signature conflict of inherited members.
...
Add a common OverridingStrategy class for cases where we don't care (yet) about precise diagnostics.
2016-02-19 15:59:08 +03:00
Mikhail Glukhikh
883e2e4d2b
KT-9498 extension: now type can be inferred for getter with expression body
2016-02-19 14:49:25 +03:00
Michael Bogdanov
7c2920febe
Don't allow use standalone constants in complexExpressions, fix for KT-11043: Inconsisten result for class literal and string concatenation
...
#KT-11043 Fixed
2016-02-17 16:53:18 +03:00
Pavel V. Talanov
47ceb106c7
Fix "<" or ">" in member name leading to exception
2016-02-15 13:32:41 +03:00
Mikhail Glukhikh
0f7284f83a
More accurate safe call handling in GenericCandidateResolver / CallExpressionResolver
...
(real receiver nullability is taken into account)
2016-02-13 10:48:12 +03:00
Mikhail Glukhikh
17593e4ef6
Call completer: safe call with nullable receiver has nullable return type #KT-11007 Fixed
2016-02-13 10:48:07 +03:00
Dmitry Petrov
edf6a2142b
Check local function declarations for overload conflicts.
...
In PSI unifier tests, disable errors for tests on local functions (as irrelevant).
2016-02-12 09:54:21 +03:00
Pavel V. Talanov
7d98103c0c
overriddenDescriptors is empty for java static property and function declarations
...
Fake overrides are still created for java static with non-empty overriddenDescriptors
Add tests for inheriting visibility for java static members
Add test: check that java static declarations that shadow deprecated declarations should not be deprecated
Add test for corner case where "overriding" java static constant led to incorrect type in inheritor
Fix test data for existing tests
2016-02-11 14:08:14 +03:00
Dmitry Petrov
aed2f2b993
Property vs classifier conflict.
...
TODO get rid of duplicate diagnostics
(looks like OverloadResolver and DeclarationResolver are partially redundant; refactor them).
2016-02-11 10:32:46 +03:00
Mikhail Glukhikh
a08b8f43b2
Control flow graph for safe calls corrected #KT-10913 Fixed
...
Also #KT-10186 Fixed
Also #KT-5198 Fixed
2016-02-10 12:29:45 +03:00
Stanislav Erokhin
434bd0707d
Correcting rewrite type info after compete call.
...
#KT-10934 Fixed
#KT-10896 Fixed
2016-02-08 20:49:31 +03:00
Ilya Gorbunov
5361f6e941
Make Throwable properties message and cause open.
...
#KT-5587 Fixed
2016-02-08 18:10:46 +03:00
Dmitry Petrov
5968ce96df
KT-10939 CANNOT_COMPLETE_RESOLVE for inherited generic interface method
...
'original' for value parameters of fake override is not a value parameter of unsubstituted fake override.
Match value parameters by index.
2016-02-08 10:08:35 +03:00
Dmitry Petrov
e4583fd275
Do not report IMPLICIT_CAST_TO_ANY on last statement of lambda with Unit(?) in at least one branch.
2016-02-05 10:44:50 +03:00
Pavel V. Talanov
7c84225cc4
Fix typechecker when initializer of destructuring declaration is unresolved or missing
2016-02-04 15:08:39 +03:00
Mikhail Glukhikh
60d56b30bf
Safe call arguments are now handled as nullable in generic resolver #KT-9985 Fixed
2016-02-03 18:34:10 +03:00
Stanislav Erokhin
34d8dd9127
Add optimization for fake overrides creation.
2016-02-03 17:47:40 +03:00
Michael Bogdanov
394221fefb
Updated test data
2016-02-03 10:35:32 +03:00
Michael Bogdanov
4b203de608
INVISIBLE_MEMBER_FROM_INLINE renamed to NON_PUBLIC_CALL_FROM_PUBLIC_INLINE
2016-02-03 10:35:29 +03:00
Michael Bogdanov
d1db404959
Error diagnostic for private classes in inline functions; Fix for KT-7545: IllegalAccessError when accessing private nested class through inlined function from different package
...
#KT-7545 Fixed
2016-02-03 10:32:41 +03:00
Mikhail Glukhikh
45298e0bad
Delegated properties now cannot be used before initialization #KT-10869 Fixed
2016-02-02 16:27:20 +03:00
Dmitry Petrov
65f754ffca
Fix KT-10764 IDEA doesn't show overload conflict between constructor and function...
...
When checking for overloads in package, consider functions and top-level class constructors as possibly conflicting between each other. NB OverloadUtil uses containing package scope from module descriptor.
Change diagnostic message for CONFLICTING_OVERLOAD: it's misleading in case of fun vs constructor conflict.
Add custom multifile test for diagnostics in IDE (probably not the best; should preprocess file content if it's required to check highlighting in multiple files, not only in the first file).
Add test for KT-10765 Incremental compilation misses overload conflict between constructor and function ...
2016-02-02 16:21:26 +03:00
Denis Zharkov
8df05c6c4c
Refine 'isMoreSpecific' calculation
...
Choose member with better visibility, it's needed for proper calculation
of types intersection member scope
#KT-10481 Fixed
2016-02-02 15:26:49 +03:00
Denis Zharkov
816c66063b
Report special diagnostic when fake-call receiver is nullable
...
#KT-3602 Fixed
2016-02-02 08:17:49 +03:00
Denis Zharkov
9b3f557337
Report MEMBER_PROJECTED_OUT on calls with smart cast receiver
...
#KT-10856 Fixed
2016-02-02 08:17:48 +03:00
Mikhail Glukhikh
d194af5c4e
Correct report of NO_VALUE_FOR_PARAMETER when function call contains no brackets and lambda at the end #KT-7813 Fixed
2016-02-01 17:11:54 +03:00
Denis Zharkov
e5f644a64a
Temporary disable warning about unchecked reified argument
...
#KT-10847 Fixed
#KT-6484 Reopened
2016-02-01 13:36:38 +03:00
Mikhail Glukhikh
dcc6262f47
Regression test #KT-7804 Obsolete
2016-01-29 17:23:40 +03:00
Denis Zharkov
505dc61611
Treat extension receiver as noinline parameter
...
#KT-9574 Fixed
2016-01-29 14:36:53 +03:00
Denis Zharkov
2cd88b8cbc
Make crossinline and noinline incompatible
2016-01-29 14:36:53 +03:00
Denis Zharkov
855a0b3493
Force type calculation for local function if it should be inferred
...
It helps to catch TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM errors
because they appear after return type calculation began
#KT-6271 Fixed
#KT-3272 Obsolete
2016-01-29 14:36:53 +03:00
Denis Zharkov
7d6310d88c
Add test for obsolete issue
...
#KT-9571 Obsolete
2016-01-29 14:36:53 +03:00
Denis Zharkov
5b0fdcb3fe
Fix stack overflow caused star projection
2016-01-29 14:36:53 +03:00
Mikhail Glukhikh
4691351e76
Fix for unprocessed lambda under not-null assertion #KT-10843 Fixed
...
Also #EA-76890 Fixed
2016-01-29 12:57:52 +03:00
Mikhail Glukhikh
767729ba2a
Regression test #KT-9633 Obsolete
2016-01-29 10:55:22 +03:00
Dmitry Petrov
112e54b35a
KT-10752: if (inferred) type for an expression refers to a Java class
...
non-accessible in the current context, it is a compiler error.
Otherwise we might generate a CHECKCAST instruction that causes IAE at run-time.
Here we are somewhat less permissive then Java
(see inaccessibleType.kt in diagnostics tests).
2016-01-29 10:30:00 +03:00
Mikhail Glukhikh
ed8ccdc15a
Take into account data flow info changes for special call (if/when/elvis/!!) arguments #KT-10824 Fixed
...
Smart casts on complex expressions look as no more possible
2016-01-28 19:30:20 +03:00
Mikhail Glukhikh
7fd1f507e4
Additional catch for ReenteringLazyValueComputationException #KT-8448 Fixed
...
Also #EA-76264 Fixed
2016-01-28 17:52:33 +03:00
Mikhail Glukhikh
5062ce2804
Regression: correct smart cast from Type? to Type!
2016-01-28 17:08:15 +03:00
Mikhail Glukhikh
26a2319d7c
ControlFlowBuilder.getExitPoint() now can return null if nothing was found #KT-10823 Fixed
...
Also #EA-73355 Fixed
2016-01-28 16:19:54 +03:00
Mikhail Glukhikh
069282cb6e
Regression test #KT-8277 Can't Reproduce
2016-01-28 13:33:29 +03:00
Denis Zharkov
e69b115d9a
Remove wrong assertion
2016-01-28 08:36:24 +03:00
Denis Zharkov
11a96ee8c8
Introduce not null type parameter capability
...
Java nullability annotations may generate types that currently are not denotable in Kotlin:
class Java {
void <F> foo(@NotNull F f) {}
}
Type of given value parameter should be not nullable under any substitution:
String/String?/String! because of annotation contract.
NB: Currently there is no full analogues for such types in pure kotlin
2016-01-28 08:36:23 +03:00
Denis Zharkov
c26ca5e7ef
Turn on inference when resolving constructor super-calls
...
It's only needed when one of candidates has it's own type parameters
Otherwise it does not make sense as arguments are already specified
2016-01-28 08:35:18 +03:00
Denis Zharkov
6542d091ee
Support generic constructors defined in Java
...
#KT-10686 Fixed
#KT-10410 Fixed
2016-01-28 08:35:18 +03:00
Mikhail Glukhikh
7e26fa6002
One non-processed branch is now allowed for if statement #KT-10805 Fixed
...
Also #EA-64033 Fixed
2016-01-27 22:44:52 +03:00
Dmitry Petrov
c5fd496cc9
Fix KT-10805 for 'when'.
2016-01-27 17:07:20 +03:00
Dmitry Petrov
9db3440e72
Fix type inference issues for 'if' and 'when'.
...
Use 'expectedType' (when present) as an explicit type argument for a special construct call.
Unfortunately, this approach can't be used for elvis due to other elvis-related inference hacks.
Fixes KT-10807, KT-10811.
This also affects KT-6189: now we can infer proper type for 'if'.
If type inference for special call failed, and we found no type errors in sub-expressions,
report TYPE_INFERENCE_FAILED_ON_SPECIAL_CONSTRUCT error.
This (and the hack above) fixes KT-10809: code no longer compiles.
2016-01-27 17:07:20 +03:00