Denis Zharkov
628f9050fb
Report UNUSED_EXPRESSION on anonymous functions
2016-03-23 20:11:51 +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
32e7f9e58f
Correct handling of local class / anonymous object cases for KT-10445 / KT-10042
2016-03-23 15:04:09 +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
838fcf9a57
Load contavariantly projected collections in Java as mutable
...
#KT-3068 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
Alexander Udalov
e42cb2af40
Render 'annotation class not found' for error types in tests
...
After 13ae3d9 it became unclear whether an annotation mentioned in test data is
resolved or not, this change fixes that
2016-03-18 14:48:54 +03:00
Alexander Udalov
13ae3d96ab
Simplify TypeConstructorImpl, extend it from AbstractClassTypeConstructor
2016-03-18 14:20:43 +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
85329e59ca
Remove nullability annotations attached to TYPE_USE position in tests
...
They do not work anyway by many reasons:
- 'org.jetbrains.annotations.*' are not TYPE_USE targeted
- raw type with annotated arguments is something very weird and should be
investigated
2016-03-16 20:23:00 +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
Alexander Udalov
33ff1e1e29
Use correct function to check for function type in InlineParameterChecker
...
There's no use of noinline/crossinline modifiers on parameters of _subtypes_ of
function types
#KT-11411 Fixed
2016-03-14 19:24:08 +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
Mikhail Glukhikh
7232c5ccc1
Minor: FILE directives fixed in two tests
2016-03-14 15:49:50 +03:00
Pavel V. Talanov
597c571f25
Fix diagnostic range when some qualifier is unresolved in "@a.b.c.Anno"
...
#KT-7747 Fixed
2016-03-11 15:00:02 +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
Denis Zharkov
b8b48c5f98
Extract common logic into AbstractTypeConstructor
...
Mostly it's about detecting loops in supertypes
Test data changes:
- Loops are being disconnected in Java classes too
- functions.kt: loops disconnection mechanism runs supertypes calculation,
so when we start check T it forces F' supertypes calculation, that ends
with CYCLIC_GENERIC_UPPER_BOUND reported on F
#KT-11287 In Progress
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
8660800af7
Constraint system builder shouldn't drop nullability when comparing signatures for specificity.
2016-03-03 19:23:43 +03:00
Dmitry Petrov
8a2b80fe3f
Generalize signature comparison: checking for conflicting overloads.
...
Also, vararg parameter no longer conflicts with Array<out T>
(CONFLICTING_JVM_DECLARATIONS is reported, can be avoided using @JvmName).
2016-03-03 18:26:10 +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
Pavel V. Talanov
a4c005fefd
Update existing test data depending on diagnostic parameter rendering
2016-02-26 14:45:11 +03:00
Pavel V. Talanov
d0b27a5fe2
Update test data for diagnostics test
2016-02-26 14:45:07 +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
acdd807e91
Support "given candidates" mode in new resolution algorithm.
2016-02-20 14:55:16 +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
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