Nikolay Krasko
9c2ceca4b8
Revert "Additional simple test for variable initialize in secondary constructor"
...
This reverts commit 147f170f80 .
2016-05-12 17:22:16 +03:00
Nikolay Krasko
147f170f80
Additional simple test for variable initialize in secondary constructor
2016-05-12 17:13:24 +03:00
Mikhail Glukhikh
6b945ba103
Regular checkType() is now called during condition analysis, TYPE_MISMATCH_IN_CONDITION removed #KT-11998 Fixed
2016-04-27 18:12:28 +03:00
Mikhail Glukhikh
d24528f6bb
Control flow analysis: nested finally blocks now appear in correct order in CFG #KT-4764 Fixed
2016-04-22 15:16:57 +03:00
Mikhail Glukhikh
771fb0ace2
Compiler warning on identical enum constant / is type entries #KT-4829 Fixed
2016-04-20 12:21:31 +03:00
Dmitry Petrov
420c7a0285
KT-11111:
...
- override by a final inline fun is a warning
- override by a fun with reified type parameters is an error
2016-04-20 11:59:03 +03:00
Yan Zhulanow
9b1402d804
Fix "No error on increment or augmented assignment when 'get' is an operator but 'set' is not" #KT-11300
2016-04-19 19:24:38 +03:00
Alexander Udalov
9c99152126
Do not consider error results successful in '::' LHS resolution
...
Fixes EA-81649
2016-04-19 18:37:02 +03:00
Dmitry Petrov
1f3323ed32
KT-11750 Do not report REDECLARATION on descriptors which are not available in sources.
2016-04-11 09:13:07 +03:00
Alexander Udalov
7c90fbe4de
Compute return type for property getters more safely
...
Do not call `isError()` on property's type right after creation of
PropertyGetterDescriptor because the property has no getter yet (it's created
but not yet stored to the property, that happens a bit later), and `isError()`
leads to computation of the delegate type, which for delegated properties
performs some complex resolution (see `VariableTypeResolver#process`) which
relies on the fact that the property already has a getter.
Since the purpose of the original change (883e2e4d ) was to support a quick fix
which would add the type to a property in an expression like "val x get() =
...", check the type (or initializer) presence in the PSI instead, this is
safer and is still suitable for the quick fix.
Also fix arguments to "wrong getter type" diagnostic: previously something
useless like "expected Int, actual Int" was reported
#KT-11809 Fixed
2016-04-07 15:35:58 +03:00
Stanislav Erokhin
832f468b13
KT-11733 Cannot infer type parameter in SAM with nullability annotations
...
#KT-11733 Fixed
2016-04-04 15:31:30 +03:00
Pavel V. Talanov
d7dc122298
KT-11721 Wrong "Typechecker has run into recursive problem" on calling kotlin get function as synthetic property
...
#KT-11721 Fixed
2016-03-31 19:33:04 +03:00
Denis Zharkov
bc1b34a989
Add additional visibility check for synthetic extensions
...
Use extension receiver as dispatch one, because it is effectively dispatch
(after some desugaring)
2016-03-31 14:51:57 +03:00
Denis Zharkov
92be4aee9c
Prohibit protected constructor calls that are not super-calls in subtypes
...
#KT-11649 Fixed
2016-03-31 14:51:57 +03:00
Denis Zharkov
5056c43975
Do not check receiver for protected constructor calls
...
Checks for protected constructors should be performed manually,
because they are rather complex
2016-03-31 14:51:57 +03:00
Denis Zharkov
5bf336474d
Respect receiver-dependent visibility when selecting smart-cast type
2016-03-31 14:51:57 +03:00
Denis Zharkov
935355ad2f
Refine isVisible for protected visibility
...
#KT-7437 Fixed
#KT-7971 Fixed
#KT-7051 Fixed
#KT-6125 Fixed
#KT-6186 Fixed
2016-03-31 14:51:57 +03:00
Mikhail Glukhikh
b7e8f71367
Fix of getCorrespondingLoop for complex loop / try-finally trees #KT-8246 Fixed
2016-03-30 18:49:23 +03:00
Denis Zharkov
16736e3a0e
Resolve anonymous functions in block as expression
...
#KT-7265 Fixed
2016-03-23 20:08:15 +03:00
Mikhail Glukhikh
b975b7d26e
More accurate CFG for local class constructors (now they are not considered unconditionally executed) #KT-10042 Fixed
2016-03-23 15:04:05 +03:00
Mikhail Glukhikh
8756cba2f5
Minor: test renamed
2016-03-23 15:04:01 +03:00
Mikhail Glukhikh
bc4ec97043
Captured value initialization is no more allowed #KT-10445 Fixed
2016-03-23 15:03:50 +03:00
Denis Zharkov
56477f0af8
Fix loading container type from Java
...
Load immutable flexible upper bound for 'Iterable<? super T>'
We load 'Collection<? super CharSequence>' as 'MutableCollection<in CharSequence>'
instead of 'MutableCollection<in CharSequence>..Collection<*>'
because it's obviously not typesafe to use any 'Collection<*>'
as argument for such type.
But there'se nothing bad with loading 'Iterable<? super CharSequence>'
as 'MutableIterable<*>..Collection<*>'. Same for other declarations that have
covariant mutable representation (currently Iterator, ListIterator).
Also there are useful use-cases when it's neccessary to use 'Iterable<*>'
as an argument for parameter with type 'Iterable<? super T>' (see matchers.kt test).
NB: Star-projections appear in examples because types like 'Collection<in CharSequence>'
with conflicting use-site projections are invalid in Kotlin, but they are valid in Java.
2016-03-21 16:46:46 +03:00
Denis Zharkov
c3e44ec199
Fix loading Java type arguments
...
Type arguments with use variance in java contradicting to Kotlin declaration-site variance should be loaded as star-projections
#KT-11492 Fixed
2016-03-18 19:07:27 +03:00
Denis Zharkov
67b59fa72f
Prohibit nested intersection types in return position
...
#KT-11490 Fixed
2016-03-18 19:07:27 +03:00
Denis Zharkov
ce8add2802
Fix common supertype calculation
...
Use star-projections instead of 'out Any?' in corner cases
#KT-11468 Fixed
2016-03-18 10:12:00 +03:00
Denis Zharkov
d9a6d15fe4
Add tests for obsolete issues
...
#KT-4628 Obsolete
#KT-3897 Obsolete
#KT-3898 Obsolete
#KT-7523 Obsolete
2016-03-16 20:23:36 +03:00
Denis Zharkov
e96024017f
Move and fix tests on typeEnhancement with TYPE_USE annotations
2016-03-16 20:22:59 +03:00
Mikhail Glukhikh
a830d80dac
Values equality no more provides guarantee for their types equality (for open types or types with overridden equals) #KT-11280 Fixed
2016-03-15 11:01:39 +03:00
Mikhail Glukhikh
569a5888ff
do...while (true) is now considered infinite loop in CFA #KT-3896 Fixed
...
Also #KT-3883 Fixed
Also #KT-4986 Fixed
2016-03-14 16:13:14 +03:00
Denis Zharkov
151e55b2fa
Use descriptors for building SAM constructors
...
It helps to get rid of semantics duplicating and fixes known bugs
- SOE in OnlyAbstractMethodFinder.find
- type enhancement for SAM constructors
#KT-11287 Fixed
#KT-11322 Fixed
EA-77989 Fixed
2016-03-10 16:49:00 +03:00
Pavel V. Talanov
c3a1643c6c
Add test for obsolete KT-6481 Mark deprecated constructor calls with strikethrough
2016-03-09 18:41:00 +03:00
Pavel V. Talanov
1affb05b7b
Fix typechecker in case of "for ((a, b) in) { }"
...
Fixes NDFDE
2016-03-04 16:52:34 +03:00
Dmitry Petrov
77b7128689
Check conflicting overloads for generic signatures.
2016-03-03 18:26:09 +03:00
Dmitry Petrov
3ca4097bcc
KT-11203: report errors on read-write operations for elements of collections with inconsistent get&set signatures
2016-03-02 14:28:06 +03:00
Mikhail Glukhikh
96a7febd09
Smart cast is performed now inside 'x as? Type ?: return' safe as / elvis combination #KT-10992 Fixed
2016-03-02 10:07:33 +03:00
Denis Zharkov
4c88e2a0bc
Use original descriptor when mapping fake override
...
Otherwise wrong CONFLICTING_INHERITED_JVM_DECLARATIONS were reported
#KT-10691 Fixed
2016-02-25 11:10:48 +03:00
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
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
Stanislav Erokhin
341b251e4d
Update copyright in generated tests.
2016-02-16 18:59:10 +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
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