Svyatoslav Scherbina
c9348b3512
Native: improve "could not build module" cinterop error message
...
Extract diagnostics from imported modules by instructing libclang to
serialize diagnostics to file. Then deserialize this file and use
first compilation errors in the error message.
^KT-35059 Fixed
2021-09-22 07:31:23 +00:00
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