Dmitry Petrov
42b587b0d5
Prohibit callable references to annotation class constructors.
...
See KT-4391.
2015-11-19 18:31:20 +03:00
Mikhail Glukhikh
3a4f6d8226
Smart cast impossible on when subject is no more recorded #KT-10061 Fixed
2015-11-18 18:02:59 +03:00
Alexander Udalov
e50eb50299
Make getNestedTypeVariables() an utility
2015-11-18 16:40:44 +03:00
Dmitry Petrov
7b432c878a
Diagnostics improvements for corner cases
...
(class/package qualifier in non-qualifier position).
2015-11-18 16:27:21 +03:00
Dmitry Petrov
9856af48ca
Drop createQualifier: testData update
2015-11-18 14:35:53 +03:00
Dmitry Petrov
b532fa2bbf
Properly resolve values in 1st qualifier part (see implicitReceiverProperty test).
...
Look into QUALIFIER for left-most "unrolled" qualified expression
in CallExpressionResolver#getQualifiedExpressionTypeInfo.
Drop some unused functions.
2015-11-18 14:35:53 +03:00
Dmitry Petrov
eef8c7ae09
Move auxiliary methods for QualifierReceiver resolution to a separate file
...
(to be refactored later).
Get rid of duplicate type usage validation.
2015-11-18 14:35:53 +03:00
Dmitry Petrov
3556f9751e
Reuse package/class qualifier prefix resolution for qualified expression resolution.
2015-11-18 14:35:52 +03:00
Mikhail Glukhikh
fe13f39de9
Use of uninitialized variables in lambdas / object literals / local functions is forbidden now #KT-4475 Fixed
...
Local declarations CFA: variable initialization information before them is now taken into account
2015-11-17 18:21:09 +03:00
Mikhail Glukhikh
811ba8110f
Implicit receiver smart casts implementation and highlighting
2015-11-17 10:26:42 +03:00
Valentin Kipyatkov
2e2dfcb4a0
"invoke" from function types do not have any meaningful parameter names
2015-11-16 18:24:37 +03:00
Mikhail Glukhikh
dd43674426
Data class must have at least one argument is reported on constructor parameter list now, if any #KT-9999 Fixed
2015-11-16 10:45:54 +03:00
Mikhail Glukhikh
86c37deaee
Overriden setter now cannot weaken visibility #KT-3369 Fixed
2015-11-16 10:45:21 +03:00
Mikhail Glukhikh
02fb19c3ea
Inner classes are no more allowed inside enum entries #KT-9750 Fixed
...
Forbidden use-case deleted from codegen tests
2015-11-16 10:44:20 +03:00
Denis Zharkov
e920ce709b
Render captured type parameters in verbose mode
2015-11-13 14:59:04 +03:00
Denis Zharkov
deea0643ad
Refine type arguments resolution and rendering
...
In case of type constructors captured parameters from outer classes
#KT-5510 Fixed
#KT-3112 Fixed
#KT-6325 Fixed
#KT-408 Fixed
#KT-6337 Fixed
2015-11-13 14:47:28 +03:00
Ilya Gorbunov
5f675c55ed
Fix deprecated ranges and range member usages in tests.
2015-11-11 03:53:42 +03:00
Stanislav Erokhin
a3b11f4214
Created warning for KT-9805
...
#KT-9805 In Progress
2015-11-11 01:26:20 +03:00
Mikhail Glukhikh
b468d5b0c6
No smart casts to Nothing?
2015-11-09 16:36:37 +03:00
Mikhail Glukhikh
2d9fbf5696
Always null detection
2015-11-09 16:36:34 +03:00
Mikhail Glukhikh
873550b0bb
lateinit setter now must have the same visibility as its property visibility
2015-11-06 13:34:00 +03:00
Michael Bogdanov
9d3fa7da80
Test for obsolete KT-8189: java.lang.UnsupportedOperationException: Don't know how to generate
...
#KT-8189 Obsolete
2015-11-06 12:17:07 +03:00
Mikhail Glukhikh
b556037915
Smart casts to nothing after comparison with null
2015-11-06 10:57:06 +03:00
Michael Nedzelsky
3dbb117598
fix KT-7042 Providing return type for property setter is not reported as error
...
#KT-7042 Fixed
2015-11-06 06:32:20 +03:00
Michael Nedzelsky
e6a2bd05d4
fix KT-9652 Warning to specify expected type as Any? when it is already Any?
...
#KT-9652 Fixed
2015-11-06 06:32:07 +03:00
Michael Nedzelsky
c318a13e6c
Error on using extension function type as an upper bound
2015-11-06 06:31:52 +03:00
Valentin Kipyatkov
52dc23012f
Changed parsing of object and enum entries to drop "KtObjectDeclarationName"
2015-11-05 23:21:22 +03:00
Mikhail Glukhikh
5e9aa38950
More precise type handling for equality #KT-2311 Fixed
2015-11-05 17:29:34 +03:00
Nikolay Krasko
e10f7fb464
Don't report missing getValue/setValue method error when it's was impossible to finish resolve
...
#KT-9803 Fixed
2015-11-04 02:31:15 +03:00
Anton Sukhonosenko
141ffa27dc
val / var are now forbidden on a loop multi declaration parameter #KT-6274 Fixed
...
VAL_OR_VAR_ON_LOOP_MULTI_PARAMETER error added
KtValVarKeywordOwner interface added for PSIs that have getValOrVarKeyword method
2015-11-03 15:30:50 +03:00
Mikhail Glukhikh
41ebfd025e
More precise diagnostics of smart cast impossible #KT-7240 Fixed
2015-11-03 13:38:51 +03:00
Mikhail Glukhikh
03aaddd379
More correct handling of possible type set during assignment #KT-8229 Fixed
2015-11-03 12:49:21 +03:00
Mikhail Glukhikh
0a5a5a2e36
More precise diagnostics is added for smart cast impossible #KT-8810 Fixed
2015-11-03 11:15:58 +03:00
Dmitry Petrov
d060687775
Package vs class conflict in qualifier resolution:
...
- add test for unresolved 'a.a' after 'import a.a';
- added TODO in copy-paste test for 'a.a'
2015-11-02 10:22:50 +03:00
Dmitry Petrov
e1cb13bd90
Qualifier no longer defers "(nested) class vs package" resolution.
...
Consider FQN 'a.b.c'.
If 'a' is a classifier in the current scope,
resolve rest in the corresponding class scope.
Otherwise (if 'a' is a package),
find the maximum possible prefix 'a.b' resolving to a package,
resolve rest in the corresponding package scope.
2015-11-02 10:22:50 +03:00
Stanislav Erokhin
77411b2181
Allowed call value with extension function type as simple function type.
2015-10-31 10:01:07 +03:00
Denis Zharkov
b6f724cf58
Disconnect loops between upper bounds of type parameters
...
#KT-9759 Fixed
2015-10-31 09:33:46 +03:00
Yan Zhulanow
33d67a3bf4
Fix JvmField applicability test data
...
(Annotation is not applied both to field & getter now)
2015-10-31 04:30:24 +03:00
Alexander Udalov
c75d96b82c
Add testcase for fixed issue
...
#KT-9850 Fixed
2015-10-30 23:41:10 +03:00
Michael Nedzelsky
dbc00baa48
Test for obsolete KT-5508
...
#KT-5508 Obsolete
2015-10-30 18:57:45 +03:00
Michael Nedzelsky
947b4d4ce8
Test for obsolete KT-3343
...
#KT-3343 Obsolete
2015-10-30 18:57:42 +03:00
Mikhail Glukhikh
182cde1e02
Standard data flow analysis results are taken into account during condition analysis #KT-7933 Fixed
2015-10-30 16:14:34 +03:00
Mikhail Glukhikh
dd1196ae6b
Condition analysis: left part of and (true condition) / or (false condition) is used for right part analysis #KT-8780 Fixed
2015-10-30 16:14:33 +03:00
Mikhail Glukhikh
12103d19d2
Smart casts inside property chains like a?.b?.c.foo(a, b) are now handled correctly #KT-7290 Fixed
2015-10-30 16:14:32 +03:00
Denis Zharkov
94803ce1c4
Collect overrides of special builtin members in super types
...
#KT-9695 Fixed
2015-10-29 21:05:26 +03:00
Alexander Udalov
d6e87c50ab
Don't use TypeIntersector when loading generic Java constructors
...
This is not entirely type-safe but this case is so rare that hardly anyone will
be able to spot the change
2015-10-28 19:17:56 +03:00
Alexander Udalov
12d6b6e7e4
Use "Any?" as out-type for type parameters instead of intersection of bounds
...
Also refactor checkSubtypeForTheSameConstructor to compute everything in the
best order
2015-10-28 19:12:26 +03:00
Alexander Udalov
bed75e8af2
Remove some unjustified usages of TypeParameterDescriptor#getUpperBoundsAsType
2015-10-28 19:12:24 +03:00
Alexander Udalov
426bddb54e
Move OverridingUtil#getUpperBound to OverloadUtil, add tests on overloads
2015-10-28 19:12:05 +03:00
Alexander Udalov
477823b093
Change override rules when type parameters have multiple bounds
...
Instead of constructing the magic intersection type, compare sets of upper
bounds instead as javac does, modulo the substitution
2015-10-28 19:12:02 +03:00