Dmitry Savvinov
f8b9011667
Minor: unify error reporting for fun/properties overriding
2020-10-09 13:44:05 +03:00
Dmitry Savvinov
ac63d8b3bf
Unify code for checking return type on override for fun/property
...
This fixes issues with the refinement of property' return type because
for functions' return type we already perform refinement properly
2020-10-09 13:44:05 +03:00
Dmitry Savvinov
ac107f362e
Refine types of type parameters before checking their equality in OverridingUtil
2020-10-09 13:44:05 +03:00
Vladimir Dolzhenko
5eac949b43
Report EXPLICIT_DELEGATION_CALL_REQUIRED on relevant element
...
^KT-38959 Fixed
2020-10-05 09:43:05 +00:00
Ilmir Usmanov
5e02a4efd7
Mark implicit receiver as captured if the function is expression
...
#KT-40260 Fixed
#KT-42280 Fixed
2020-10-05 09:36:54 +02:00
Ilya Chernikov
a71eab89e7
Remove unused code...
...
left after "Optimize scopes handling inside LexicalChainedScope"
refactoring commit.
2020-10-02 18:53:31 +02:00
Victor Petukhov
d02432cf93
Introduce warning for the changing arguments execution order for named varargs (KT-17691)
2020-10-01 12:15:13 +03:00
Victor Petukhov
d62c665e99
Introduce language feature to enable the correct arguments execution order for named varargs (KT-17691)
2020-10-01 12:14:49 +03:00
Victor Petukhov
fcfabb70d5
Report invisible setter error if it's resolved to synthetic property of base class with public getter and protected setter
...
^KT-11713 Fixed
2020-09-30 14:35:43 +03:00
Vladimir Dolzhenko
3c380faeb5
Added deprecated PackageFragmentProvider#getPackageFragments for BWC
...
Relates to ^KT-33394
^KT-42259 Fixed
2020-09-29 19:14:44 +00:00
Pavel Kirpichenkov
8f31b1ca83
[FIR] Use default language settings in inference components
...
Without settings common inference components require additional parameters
to be passed explicitly from components not shared between FIR and FE10.
Proper configuration can be postponed in FIR, defaults are good enough for now.
^KT-42080 In progress
2020-09-29 18:22:56 +03:00
Victor Petukhov
8f333aef3a
Introduce warning about forbidden referencing to underscore named parameter of the catch block in a future release (KT-31567)
2020-09-29 10:23:45 +03:00
Victor Petukhov
09f1764f82
Introduce warning for private inline functions which return anonymous objects without specified supertypes (KT-33917)
2020-09-29 10:23:45 +03:00
Victor Petukhov
63d825fa24
Introduce warning for secondary constructor in enums without delegation to primary constructors (KT-35870)
2020-09-29 10:23:45 +03:00
Victor Petukhov
076eacb3d1
Check implicitly inferred Nothing inside special calls properly: compare constructors instead of types
...
^KT-41176 Open
2020-09-28 13:27:02 +03:00
Victor Petukhov
25ea3df5ca
Put fix in 9123c4f73baf77f8a50dede6c890c46f5ffafd6c under the inference compatibility flag
2020-09-23 17:15:58 +03:00
Pavel Kirpichenkov
fdc134ff66
[NI] Use compatibility mode for KT-41934
2020-09-22 15:06:12 +03:00
Leonid Startsev
bc432ecb85
Improve remove/specify type intentions in Explicit API mode
...
Do not suggest to remove type for public declarations
#KT-38915 Fixed
Do not show intention to specify type when corresponding quickfix is available
#KT-39026 Fixed
2020-09-21 17:10:10 +03:00
Leonid Startsev
5f0e7c3c3f
Check return type of internal @PublishedApi functions in Explicit API mode
...
#KT-38981 Fixed
2020-09-21 17:03:06 +03:00
Dmitry Savvinov
6a55475392
Dont show warning for KT-21515 with LV>=1.3
2020-09-17 18:33:19 +03:00
Igor Yakovlev
4b8f1bb362
[ULC] Add LanguageVersionSettings to CliLightClassGenerationSupport
...
+ refactoring
2020-09-11 12:49:04 +03:00
Victor Petukhov
bcd33da6f8
Don't check an argument type during passing it to vararg in the named form to avoid false positives if the argument type is type variable yet
...
^KT-41144 Fixed
2020-09-10 19:38:26 +03:00
Vladimir Dolzhenko
5036673187
Improve package caching in KotlinJavaPsiFacade
...
^KT-33394 Fixed
2020-09-10 07:38:46 +00:00
Victor Petukhov
685d16ec68
NI: don't do substitution for unsupported callable descriptors to use as callable references
...
^KT-41729 Fixed
2020-09-09 18:00:41 +03:00
Dmitriy Novozhilov
d1568c1ce6
Rename ResolutionCandidateApplicability to CandidateApplicability
2020-09-09 12:38:33 +03:00
Alexander Udalov
7fb7dc0210
Fix deprecation warnings related to Project extensions
2020-09-08 20:26:20 +02:00
Pavel Kirpichenkov
24d8aee2bb
Prioritize resolution anchors during resolution
...
When required dependency is present both in source dependencies and in
library dependencies, the former one should be selected.
#KT-24309
2020-09-07 18:52:10 +03:00
Pavel Kirpichenkov
5892bdf3f4
Extend import resolution for library-to-source analysis
...
Use composite importing scope for references when resolution anchors are enabled.
Composite scope provides additional descriptors from scope of resolution anchor module.
Overriding old importing scope with a new one is not possible as it breaks library
dependencies on other libraries, which are inaccessible in anchor scope (scope for sources).
KT-24309 In Progress
2020-09-07 18:52:10 +03:00
Dmitriy Novozhilov
696f089b3e
Make DescriptorVisibility delegate to Visibility
2020-09-04 11:42:50 +03:00
Dmitriy Novozhilov
d1fd1da56f
Rename Visibility to DescriptorVisibility
2020-09-04 11:07:42 +03:00
Dmitriy Novozhilov
10fd164b77
Extract FE 1.0 dependent part from JavaToKotlinClassMap
...
Also move JavaToKotlinClassMap to :core:compiler.common.jvm
2020-09-04 11:07:41 +03:00
Dmitriy Novozhilov
4d5f28d5c0
Move FunctionInvokeDescriptor.BIG_ARITY to :core:compiler.common
2020-09-04 11:07:41 +03:00
Dmitriy Novozhilov
564d382b9d
Introduce new modules for common jvm related parts of compiler
2020-09-04 11:07:40 +03:00
Dmitriy Novozhilov
a0b931792e
Move annotationsForResolve.kt to :core:compiler.common
2020-09-01 12:00:11 +03:00
Dmitriy Novozhilov
07c353973d
Move requireOrDescribe to :core:compiler.common
2020-09-01 12:00:11 +03:00
Pavel Kirpichenkov
873224dfbc
[NI] Use new type substitutor for known type parameters
...
Use known type parameters substitutor after substitutor for fresh variables.
The old logic of substituions had the following order:
- replace known type parameters
- replace type parameters with type variables
- complete inference
- replace type variables with inferred types
According to the updated logic, replacement goes as follows:
- replace type parameters with type variables
- replace known type parameters; if they were variables, this will effectively remove them from inference
- complete inference
- replace remaining type variables with inferred types
Support projection substitution in new type substitutor.
It is needed for correct interaction with old type substitutor.
Old type substitutors can contain mappings constructor -> projection
which couldn't be expressed correctly with existing substitutor API in some cases.
^KT-41386 Fixed
2020-08-31 17:53:46 +03:00
Mikhail Zarechenskiy
23f87d413a
Use initial system for completion if common one is effectively empty
...
Otherwise we can get unsubstituted type variables as expected types and
then write wrong information for assertions
#KT-41470 Fixed
2020-08-28 17:47:08 +03:00
Dmitriy Novozhilov
148e8fe76e
Move FlatSignature to :compiler:resolution.common
2020-08-28 10:59:53 +03:00
Dmitriy Novozhilov
af0df35623
[NI] Get rid of FE 1.0 types in ConstraintInjector
2020-08-28 10:59:52 +03:00
Dmitriy Novozhilov
64f0ee21c1
Get rid of FE 1.0 classes usage in ConstraintIncorporator
2020-08-28 10:59:52 +03:00
Dmitriy Novozhilov
b15f847943
[NI] Extract common parts from KotlinConstraintSystemCompleter
2020-08-28 10:59:51 +03:00
Dmitriy Novozhilov
12fbb93871
[NI] Extract FE 1.0 specific part from NewCommonSuperTypeCalculator
2020-08-28 10:59:51 +03:00
Dmitriy Novozhilov
686c17a234
[NI] Rename NewConstraintSystem.diagnostics to errors
2020-08-28 10:59:50 +03:00
Dmitriy Novozhilov
59b2cb6393
[NI] Split KotlinCallDiagnostics and inference errors to different hierarchies
2020-08-28 10:59:50 +03:00
Dmitriy Novozhilov
fae21d4db3
Introduce frontend independent constraint positions
2020-08-28 10:59:50 +03:00
Dmitriy Novozhilov
f247cc3165
[NI] Properly detecting suitability of candidate for builder inference
...
#KT-41430 Fixed
2020-08-28 10:34:18 +03:00
Alexander Udalov
74c6d2b951
Do not generate non-standard compareTo as primitive comparison in all backends
...
Previous changes related to this in the old JVM backend were in
582b1c5e66 and
0482f7e9c5 , but they did not affect the
`ProperIeee754Comparisons` mode which became the default in 1.4.0. As a
result, we had a regression here.
Since the `PRIMITIVE_NUMERIC_COMPARISON_INFO` slice is used in psi2ir to
determine how to generate the comparison, this fixes the regression both
in the old JVM backend, and in all IR backends.
#KT-41426 Fixed
2020-08-27 19:00:11 +02:00
Dmitry Savvinov
5649cbc2e1
Wire KotlinTypeRefiner in areCallableDescriptorsEquivalent
...
See the issue for details
^KT-41218 Fixed
2020-08-27 18:50:42 +03:00
Dmitriy Novozhilov
9cde42e2bc
[NI] Fix shouldRunCompletion for builder inference session
...
#KT-41308 Fixed
#KT-41363
2020-08-27 16:51:12 +03:00
Dmitriy Novozhilov
e98cbf81cf
[NI] Don't always complete builder inference lambda in FULL mode
...
#KT-41164 Fixed
2020-08-27 16:51:11 +03:00