Commit Graph

56611 Commits

Author SHA1 Message Date
Mikhail Glukhikh 0c4134bef4 Remove FirResolvePhase from FirElement hierarchy 2019-07-31 12:55:36 +03:00
Steven Schäfer efb938a7c8 (Un)mute tests 2019-07-31 11:18:44 +02:00
Steven Schäfer 06274b1339 JVM_IR: Simplify RemoveDeclarationsThatWouldBeInlinedLowering 2019-07-31 11:18:44 +02:00
Steven Schäfer 93d414ac01 JVM_IR: Change CallableReferenceLowering to match the JVM backend
In particular, the JVM backend inlines the bodies of lambdas into the
generated lambda subclasses and stores bound receivers in the receiver
field of CallableReference. Both are required for reflection.
2019-07-31 11:18:44 +02:00
Steven Schäfer 917435a50c Extract IrBody.statements utility function 2019-07-31 11:18:44 +02:00
Steven Schäfer 509d257475 JVM_IR: Fixes to SyntheticAccessorLowering
This commit fixes the handling of accessors for super calls, changes the
naming scheme to avoid accessor name clashes and uses a more robust test
to determine the placement of accessors for protected static members.
2019-07-31 11:18:44 +02:00
Steven Schäfer 173f1fc7d1 Fix statement order in LocalDeclarationsLowering
Previously, the order of IrSetField statements in this lowering was
non-deterministic. This broke the inliner in the JVM backend which
expects statements to be in argument order.
2019-07-31 11:18:44 +02:00
Steven Schäfer c38fb27676 JVM_IR: Run CallableReferenceLowering before LocalDeclarationsLowering 2019-07-31 11:18:44 +02:00
Steven Schäfer 9816e62d08 JVM_IR: Fix inlining of interface methods 2019-07-31 11:18:44 +02:00
Dmitry Petrov bdec8b04e8 Minor: trim in RenderIrElementVisitor 2019-07-31 10:37:35 +03:00
Alexey Tsvetkov efe62c983a Decrease max heap size for test process on Windows
Test processes themselves don't do much
(RAM heavy work is done in Kotlin and Gradle daemons).
The default 1600m max heap size is unreasonably high
for copying test projects and checking output logs.
2019-07-31 04:48:20 +03:00
Alexey Tsvetkov 4db3dcc28f Use short temp dirs names only in gradle integration tests 2019-07-31 04:48:20 +03:00
Alexey Tsvetkov 1a0c6fe8b8 Unify test tasks configuration in gradle tests 2019-07-31 04:48:20 +03:00
Alexey Tsvetkov 847af4456a Remove KotlinGradlePluginJpsParametrizedIT
We've stopped running it on CI some time ago,
does not seem very useful now
2019-07-31 04:48:20 +03:00
Alexey Tsvetkov 54227e15ff Do not set max heap size twice
The parameter is also set in the next statement (`maxHeapSize = "1600m"`)
2019-07-31 04:48:20 +03:00
Ivan Gavrilovic de5335b17f Fix gradle integration tests on Windows
Android Gradle Plugin 3.0 and 3.1 use aapt that does not handle
long paths on Windows. This commit uses shorter paths for the project
working directory on Windows.

Test: running integration tests on Windows
2019-07-31 04:48:20 +03:00
Ty Smith e74a00789d Add embeddable artifact for jvm-abi-gen
#KT-28824 Fixed
2019-07-30 20:47:56 +03:00
Alexey Tsvetkov 37042801c4 Fix CompilerDaemonTest#testDaemonJvmOptionsParsing
Forgot to update test data after 560f1483e8 and 317c39f27d

    #KT-33048 Fixed
2019-07-30 20:35:23 +03:00
Alexey Tsvetkov 0a91a663b1 Always keep Serializable#serialVersionUID
It is usually set explicitly for a reason,
so ProGuard should not throw it away.

    #KT-33027 Fixed
2019-07-30 20:20:58 +03:00
Andrey Uskov a6f50c71bd Fixed import of package prefix in non-MPP projects
#KT-33038 Fixed
2019-07-30 18:43:30 +03:00
Mikhail Glukhikh eedebcfe4c FIR lazy resolve: fix test data 2019-07-30 17:42:51 +03:00
Mikhail Glukhikh 869e970bfd FIR resolution API: fix handling of expressions inside imports 2019-07-30 16:28:18 +03:00
Mikhail Glukhikh 14e9404afd FIR (raw / resolution API): set correctly elvis/bang-bang bound PSIs 2019-07-30 16:28:18 +03:00
Mikhail Glukhikh 1f771a2407 FIR resolution API: fix handling of expressions inside secondary ctors 2019-07-30 16:28:18 +03:00
Mikhail Glukhikh 2a69efba8a FIR resolution API: fix handling of expressions inside local functions 2019-07-30 16:28:18 +03:00
Mikhail Glukhikh 760fb668bb Introduce FIR resolution API with lazy resolve to use in IDE
Now lazy resolve atomic element is a file (declaration-level resolve)
or a callable declaration (expression-level resolve)

#KT-24351 In Progress
2019-07-30 16:28:17 +03:00
Mikhail Glukhikh 1cd559a626 Remove FirTotalKotlinResolveInIde test with its provider as obsolete 2019-07-30 16:28:17 +03:00
Mikhail Glukhikh c3a31dcdf5 Optimize FirSession component storage 2019-07-30 16:28:17 +03:00
Mikhail Glukhikh 7529d557fe FIR resolution: introduce FirResolvePhase & FirAbstractPhaseTransformer
The phase determines which transformers were already applied to declaration.
The transformer controls current resolve phase in phasedFir and
performs additional resolve if necessary.
2019-07-30 16:28:17 +03:00
Mikhail Glukhikh a38b4756b5 FIR tree refactoring: move FirElement.session to FirDeclaration
#KT-30275 Fixed
2019-07-30 16:28:16 +03:00
Dmitriy Novozhilov 98f75669a5 [FIR] Make resolution sequence of CallKind static field 2019-07-30 16:28:16 +03:00
Dmitriy Novozhilov 53404e5dac [FIR] Extract ResolutionStageRunner component
That component is responsible to run all resolution stages on candidate
  and calculating resulting applicability.

This is needed for completion of `when` and `try` as function calls
2019-07-30 16:28:16 +03:00
Dmitriy Novozhilov 8bbb60df25 [FIR] Refactoring. Split CallResolver.kt to several files 2019-07-30 16:28:15 +03:00
Dmitriy Novozhilov 3c7b25b8c9 [FIR] Minor. Cleanup code in ConeTypes.kt 2019-07-30 16:28:15 +03:00
Dmitriy Novozhilov a226e40e34 [FIR] Refactor FirResolveBodyTransformer
Extract from it components responsible for call completion,
  call resolution and resolution of FQN
2019-07-30 16:28:15 +03:00
Dmitriy Novozhilov 43e7f54fae [FIR] Add string representation for ConeKotlinType
`ConeKotlinType.render` moved from `tree` module to `types` module
2019-07-30 16:28:15 +03:00
Dmitriy Novozhilov 6c26fc1943 [FIR] Don't render Any? upper bounds of type parameters 2019-07-30 16:28:14 +03:00
Dmitriy Novozhilov 7245475196 [FIR] Add DeclaredUpperBoundConstraintPosition to Fir 2019-07-30 16:28:14 +03:00
Dmitriy Novozhilov d3670d4f5f [FIR] Add Any? as default bound for all type parameters 2019-07-30 16:28:14 +03:00
Dmitriy Novozhilov 8a21785883 [FIR] Add Any? builtin typeref 2019-07-30 16:28:14 +03:00
Dmitriy Novozhilov 2a360272f6 [FIR] Add Any to supertypes of functional types 2019-07-30 16:28:14 +03:00
Dmitriy Novozhilov 71ca1aa608 [Type system] Fix algorithm of folding recursive types
There was a problem when we get type from type projection even if
  it is a star projection what is meaningless. Now we try to fold argument
  only if it's not a star projection
2019-07-30 16:28:13 +03:00
Dmitriy Novozhilov a453ed50fa [FIR] Fix class cast exception in ConeInferenceContext 2019-07-30 16:28:13 +03:00
Dmitriy Novozhilov 6215662e33 Replace usage of ClassicTCContext with abstract context in NewCSTCalculator 2019-07-30 16:28:13 +03:00
Andrey Uskov 0276a6262f Fix compilation of NewMultiplatformKaptProjectImportingTest in AS 3.3,3.4 2019-07-30 14:34:36 +03:00
Dmitry Savvinov 6177b3e8dc Minor. Add empty file to previously empty directory in test
Otherwise Git doesn't commit empty folder into repository and test fails
later with "invalid directory exception"
2019-07-30 14:19:02 +03:00
pyos d715344639 psi2ir: precompute sort keys when generating members
On kotlinx.serialization, this improves the performace of the compiler
with -Xuse-ir by about 5% (average of 30 runs after 10 warmup runs:
3096 ms -> 2970 ms, minimum: 3037 ms -> 2884 ms). Flamegraphs for
comparison (careful, huge SVG images):

https://drive.google.com/open?id=1BlIFN4ivSKrXjY6vZ0xkZymwucGc7bSI
https://drive.google.com/open?id=1xIW2IvW7LMCaAe4P2dOGOG8nCcpWI9PW
2019-07-30 12:07:12 +02:00
Vladimir Dolzhenko 2d5a1e19d0 Perform GC between performance test runs, add geometric mean calculation and close stats in the end 2019-07-30 11:59:33 +02:00
Vladimir Dolzhenko 3f9480e1c5 Specify parent disposable in JavaOutsideModuleDetector Vfs listener 2019-07-30 11:59:22 +02:00
Dmitry Savvinov ddb685a8f9 Add test on nonMPP -> MPP dependency 2019-07-30 12:41:41 +03:00