Commit Graph

1947 Commits

Author SHA1 Message Date
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