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 Glukhikh
1e360d9c91
[FIR2IR] Pass type context for type argument conversion properly
2020-08-31 14:31:58 +03:00
Jinseong Jeon
04af6846a7
FIR2IR: handle more vararg spreads for adapted callable references
2020-08-31 14:31:58 +03:00
Mikhail Glukhikh
5efabe063e
[FIR] Fix JVM mapped function callable id
2020-08-31 14:31:57 +03:00
Mikhail Glukhikh
db815c96c5
[FIR] Substitute copied type parameters in fake override properties
2020-08-31 14:31:57 +03:00
Mikhail Glukhikh
dc9306367a
FirClassSubstitutionScope: reorder companion functions
2020-08-31 14:31:57 +03:00
Mikhail Glukhikh
5ad453d927
[FIR] Substitute copied type parameters in fake override functions
2020-08-31 14:31:57 +03:00
Mikhail Glukhikh
458f89ef33
[FIR] Signature composer: return null signature for local declarations
2020-08-31 14:31:57 +03:00
Mikhail Glukhikh
02b6f34067
[FIR2IR] Add extension receiver parameter to delegated members
2020-08-31 14:31:57 +03:00
Mikhail Glukhikh
22c63c4e80
[FIR2IR] Add supertypes to delegated member type parameters
2020-08-31 14:31:56 +03:00
Mikhail Glukhikh
9ad55a0ee3
[FIR2IR] Don't create list under the hood in DelegatedMemberGenerator
2020-08-31 14:31:56 +03:00
Mikhail Glukhikh
5384ccf02f
[FIR] Introduce & use FirDelegatedMemberScope
2020-08-31 14:31:56 +03:00
Mikhail Glukhikh
f0af930288
[FIR] Eliminate unused FirDelegatedTypeRef
2020-08-31 14:31:56 +03:00
Mikhail Glukhikh
ede910065a
[FIR] Add problematic resolve test case with delegated super call
2020-08-31 14:31:56 +03:00
Mikhail Glukhikh
3f5beb77e8
[FIR2IR] Cache delegatable members properly
2020-08-31 14:31:55 +03:00
vldf
b050ef9970
[FIR] Remove print in UnusedChecker
2020-08-30 14:18:01 +03:00
Steven Schäfer
b02f0f0a25
JVM IR: Fix compilation of nested inner classes
2020-08-28 20:03:19 +02: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
Nick
bb18203ae6
[FIR] Various checkers performance fixes
2020-08-28 17:07:35 +03:00
Ilya Kirillov
8faaff00fa
FIR IDE: run lazy resolve on declaration when getting phased fir
2020-08-28 12:15:14 +03:00
Ilya Kirillov
f76b5bbf1b
FIR IDE: allow KtFirPackageScope to work without providers
2020-08-28 12:15:06 +03:00
Ilya Kirillov
a156cca02a
FIR: make class FirObjectImportedCallableScope to be name aware
2020-08-28 12:15:04 +03:00
Dmitriy Novozhilov
09ed0c3e82
[FIR-TEST] Update testdata
2020-08-28 10:59:54 +03:00
Dmitriy Novozhilov
e7b5a88cbd
[FIR] Remove dependency on :compiler:frontend from :compiler:fir:resolve
2020-08-28 10:59:54 +03:00
Dmitriy Novozhilov
abeb42ca20
[FIR] Don't use ProjectExtensionDescriptor in FirExtensionRegistrar
2020-08-28 10:59:53 +03:00
Dmitriy Novozhilov
f09e17a5ae
[FIR] Remove unused import
2020-08-28 10:59:53 +03:00
Dmitriy Novozhilov
e405a02e8e
[FIR] Fix contract serialization
2020-08-28 10:59:53 +03:00
Dmitriy Novozhilov
eaf8af919d
[FIR] Use PersistentList instead of guava's ImmutableList in SupertypeResolution
2020-08-28 10:59:53 +03:00
Dmitriy Novozhilov
64766e125c
Move common inference classes 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
ad039a28bd
[NI] Get rid of left FE 1.0 types in NewConstraintSystemImpl
2020-08-28 10:59:52 +03:00
Dmitriy Novozhilov
6914aba5c2
[NI] Commonize detection of @OnlyInputTypes in NewConstraintSystemImpl
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
aae1681b76
[NI] Get rid of ResolvedAtom usage in ConstraintSystemCompletionContext
2020-08-28 10:59:51 +03:00
Dmitriy Novozhilov
970a2581a1
[NI] Extract PostponedArgumentsAnalyzerContext from PostponedArgumentsAnalyzer
2020-08-28 10:59:51 +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
b21a0213df
[NI] Get rid of FE 1.0 types in AbstractTypeApproximator
2020-08-28 10:59:51 +03:00
Dmitriy Novozhilov
527c5a771d
[NI] Get rid of FE 1.0 types in AbstractTypeCheckerContextForConstraintSystem
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
be1033a4a7
[FIR] Implement ConeTypeContext.createTypeWithAlternativeForIntersectionResult
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
Simon Ogorodnik
7170a23f63
[FIR] Use coroutine intrinsics in tower resolver manager
...
To remove SafeContinuation overhead
2020-08-28 00:12:17 +03:00
Simon Ogorodnik
7cb5c0a6d8
[FIR] Cleanup hides members condition
2020-08-28 00:12:17 +03:00
Simon Ogorodnik
bf2e17b133
[FIR] Extract invoke processing from TowerLevelHandler
2020-08-28 00:12:17 +03:00
Simon Ogorodnik
34f5cfbf96
[FIR] Fix integer approximation on safe calls
2020-08-28 00:12:17 +03:00
Simon Ogorodnik
2a4e1a0b99
[FIR] Clarify testData for invokes
2020-08-28 00:12:16 +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