Svyatoslav Scherbina
12f4cd5aa1
Native: add unit tests for modules support in Interop/Indexer
2021-09-22 07:31:22 +00:00
Svyatoslav Scherbina
fb81ae0cd1
Native: fix deadlock in kotlinx.cinterop.typeOf impl for JVM
...
Don't use ConcurrentHashMap.computeIfAbsent for typeOf cache,
because the computation may call typeOf recursively for different type
(e.g. C enum var type computation calls typeOf for enum base integer type),
which might cause a deadlock in computeIfAbsent.
2021-09-22 07:31:22 +00:00
sebastian.sellmair
a279f682bb
[Commonizer] Add additional documentation to ClassOrTypeAliasTypeCommonizer
...
^KT-48288
2021-09-22 06:45:12 +00:00
sebastian.sellmair
6d17e4da57
[Commonizer] Implement disabled tests for ^KT-48288
...
^KT-48288
^KT-48850
2021-09-22 06:45:11 +00:00
sebastian.sellmair
104d2b347b
[Commonizer] Minor: CirType: Use copyInterned over createInterned
...
^KT-48288
2021-09-22 06:45:11 +00:00
sebastian.sellmair
3b67bcbf4d
[Commonizer] ClassOrTypeAliasTypeCommonizer: Remove faulty argument substitution
...
Underlying types from CirTypeAliasType do not require
parent argument replacement.
^KT-48288
2021-09-22 06:45:11 +00:00
sebastian.sellmair
7bf62ab159
[Commonizer] Implement tests for 'crossed' type aliases
...
^KT-48288
2021-09-22 06:45:10 +00:00
sebastian.sellmair
1fca19258d
[Commonizer] ParameterizedTypesCommonizationTest: Remove unnecessary symbols
...
^KT-48288
2021-09-22 06:45:10 +00:00
sebastian.sellmair
fa2577dda8
[Commonizer] Improve performance of deserialization
...
^KT-48288
2021-09-22 06:45:09 +00:00
sebastian.sellmair
16bf5f3df3
[Commonizer] Improve performance of ClassOrTypeAliasTypeCommonizer
...
Performance is improved by reducing calls to 'backwardsTypeDistance'
^KT-48288
2021-09-22 06:45:09 +00:00
sebastian.sellmair
64d2ba4029
[Commonizer] Improve performance of 'backwardsTypeDistance'
...
This commit also introduces common sealed interfaces to represent
classifiers and types coming form dependencies or 'sources'
^KT-48288
2021-09-22 06:45:09 +00:00
sebastian.sellmair
fadb91fa35
[Commonizer] Rename CirCommonClassifierId to AssociatedClassifierIds
...
^KT-48288
2021-09-22 06:45:08 +00:00
sebastian.sellmair
de1ae970d7
[Commonizer] ClassOrTypeAliasTypeCommonizer: Improve comments
...
^KT-48288
2021-09-22 06:45:08 +00:00
sebastian.sellmair
7485d2529b
[Commonizer] Implement simple BackwardsTypeSubstitutionCommonizationTest
...
^KT-48288
2021-09-22 06:45:07 +00:00
sebastian.sellmair
38c7337b19
[Commonizer] Add tests to ParameterizedTypesCommonizationTest
...
^KT-48288
2021-09-22 06:45:07 +00:00
sebastian.sellmair
e1bc6c54d7
[Commonizer] Simplify CirClassOrTypeAliasType.withParentArguments()
...
^KT-48288
2021-09-22 06:45:07 +00:00
sebastian.sellmair
459e01a729
[Commonizer] CirConversions: Ensure consistent function names
...
^KT-48288
2021-09-22 06:45:06 +00:00
sebastian.sellmair
892512cb67
[Commonizer] Remove unused/old typeAliasUtils
...
^KT-48288
2021-09-22 06:45:06 +00:00
sebastian.sellmair
ba997905d9
[Commonizer] Remove CirClassType.visibility
...
^KT-48288
2021-09-22 06:45:05 +00:00
sebastian.sellmair
da1eb5d96e
[Commonizer] Implement CirTypeDistance.penalty
...
^KT-48288
2021-09-22 06:45:05 +00:00
sebastian.sellmair
d0cd7c81ea
[Commonizer] Minor: Change signature of CirConversions functions
...
^KT-48288
2021-09-22 06:45:05 +00:00
sebastian.sellmair
75d7c830e7
[Commonizer] Minor: Improve naming of methods and types
...
^KT-48288
2021-09-22 06:45:04 +00:00
sebastian.sellmair
808ea11072
[Commonizer] Improve access performance for TargetDependent
...
^KT-48288
2021-09-22 06:45:04 +00:00
sebastian.sellmair
cf0f061db5
[Commonizer] Implement two phased re-approximation
...
^KT-48288
2021-09-22 06:45:03 +00:00
sebastian.sellmair
b68f14960a
[Commonizer] Implement first ReApproximationCirNodeTransformer
...
^KT-48288
2021-09-22 06:45:03 +00:00
sebastian.sellmair
d2627f0a76
[Commonizer] CirCommonClassifierIdResolver: Implement caching as composition
...
^KT-48288
2021-09-22 06:45:03 +00:00
sebastian.sellmair
97befd0520
[Commonizer] Consider negative type distances 'worse'
...
^KT-48288
2021-09-22 06:45:02 +00:00
sebastian.sellmair
24680144da
[Commonizer] CirTypeDistance: Ensure consistent function signatures
...
^KT-48288
2021-09-22 06:45:02 +00:00
sebastian.sellmair
24ac122e88
[Commonizer] CirTypeDistance: Use property for 'unreachable'
...
^KT-48288
2021-09-22 06:45:01 +00:00
sebastian.sellmair
31445d1471
[Commonizer] ClassOrTypeAliasTypeCommonizer: Use typeDistance and type substitution
...
^KT-48288
2021-09-22 06:45:01 +00:00
sebastian.sellmair
4a6366ed9b
[Commonizer] TargetDependent: Implement inline map functions
2021-09-22 06:45:01 +00:00
sebastian.sellmair
b424800714
[Commonizer] Implement additional 'ParameterizedTypesCommonizationTest'
...
^KT-48288
2021-09-22 06:45:00 +00:00
sebastian.sellmair
4349f98954
[Commonizer] Fix CirConversions and substitute arguments
...
CirConversions did not cover some potential convertible types.
ClassOrTypeAliasTypeCommonizer did not apply type substitution
for parameterized types coming from a dependency
^KT-48288
2021-09-22 06:45:00 +00:00
sebastian.sellmair
e2343094ec
[Commonizer] Adapt CirUnderscoredTypeAliasSubstitutorTest
...
^KT-48288
2021-09-22 06:44:59 +00:00
sebastian.sellmair
9d2553bd18
[Commonizer] Adapt TypeCommonizerTest
...
^KT-48288
2021-09-22 06:44:59 +00:00
sebastian.sellmair
36a5b53398
[Commonizer] AbstractCommonizerTest.doTestFailure: Support single invocation commonizers
...
^KT-48288
2021-09-22 06:44:58 +00:00
sebastian.sellmair
4e6ad03df6
[Commonizer] Fix AbstractListCommonizer and adapt ValueParameterListCommonizerTest
...
^KT-48288
2021-09-22 06:44:58 +00:00
sebastian.sellmair
cdd917bd0b
[Commonizer] Adapt ExtensionReceiverCommonizerTest
...
^KT-48288
2021-09-22 06:44:58 +00:00
sebastian.sellmair
35a29acdc7
[Commonizer] Always use parent arguments for type substitution
2021-09-22 06:44:57 +00:00
sebastian.sellmair
5c7ac614ce
[Commonizer] Remove old implementations for type commonization
...
Removed AliasedTypeSubstitutor: Covered by ClassOrTypeAliasTypeCommonizer
Removed ClassTypeCommonizer: Covered by ClassOrTypeAliasTypeCommonizer
Removed type alias substitution transformers: Covered by CirCommonClassifierId
^KT-48288
2021-09-22 06:44:57 +00:00
sebastian.sellmair
bfa433fa06
[Commonizer] Split type substitution into forward and backwards
...
^KT-48288
2021-09-22 06:44:56 +00:00
sebastian.sellmair
698b3fce9e
[Commonizer] ClassOrTypeAliasTypeCommonizer: Support 'enableOptimisticNumberTypeCommonization'
...
^KT-48288
2021-09-22 06:44:56 +00:00
sebastian.sellmair
595cab2aaf
[Commonizer] ClassOrTypeAliasTypeCommonizer: Implement proper type argument substitution
...
^KT-47574 Verification Pending
2021-09-22 06:44:56 +00:00
sebastian.sellmair
c1f118e502
[Commonizer] Include dependencies in CirCommonClassifierId
...
^KT-48288
2021-09-22 06:44:55 +00:00
sebastian.sellmair
ef6f84b151
[Commonizer] Implement ClassOrTypeAliasTypeCommonizer with type substitution
...
^KT-48288
2021-09-22 06:44:55 +00:00
sebastian.sellmair
97e37243c6
[Commonizer] Move type commonization to single invocation commonizer
...
^KT-48288
2021-09-22 06:44:54 +00:00
sebastian.sellmair
3ee87f1635
[Commonizer] Use typealias invariant Approximation Keys
...
^KT-48288
2021-09-22 06:44:54 +00:00
sebastian.sellmair
763ddcddf4
[Commonizer] Implement CirCommonClassifierId & CirCommonClassifierIdResolver
...
This common representation of a classifier id can later be used
to render typealias invariant approximation keys.
^KT-48288
2021-09-22 06:44:54 +00:00
Dmitry Gridin
a0d36d7e29
[core] annotation loader: pull up isRepeatableWithImplicitContainer to AbstractBinaryClassAnnotationAndConstantLoader to reuse from plugin
...
^KTIJ-19676
2021-09-22 04:54:28 +00:00
Aleksei.Cherepanov
47a1dd27dd
Fix after review KT-CR-4441 of cc5382b3
...
Simplify API of InlineConstTracker
In ConstLowering: Move transformer logic to another class to avoid mutable state. Avoid marking all files in module as module. Support of inner classes.
#KT-46506 Fixed
2021-09-22 01:55:18 +03:00