Commit Graph

35759 Commits

Author SHA1 Message Date
pyos aa47191de4 JVM: hide ExpressionCodegen in finally block generation during inlining 2021-06-16 12:13:32 +02:00
pyos 108bd01698 JVM: refine the stack spilling around inline calls
Not all suspend functions need it - only those with suspension points.
2021-06-16 12:13:32 +02:00
pyos b136acb185 JVM: move callSiteFile to InlineCallSiteInfo 2021-06-16 12:13:32 +02:00
pyos 6c1a5e1211 JVM: make inline function argument processing a bit shorter 2021-06-16 12:13:32 +02:00
pyos 392e4fba42 JVM: fix inlining of default lambdas of signature (Result) -> Any
They have no `invoke` bridge, and the overridden invoke expectes a boxed
`Result` as an argument.
2021-06-16 12:13:32 +02:00
pyos a0a14d9e25 JVM: remove descriptors from SourceCompilerForInline
Printing the call site source on errors isn't really useful anyway - the
old backend points to a specific PsiElement, and JVM_IR wraps the
exception in FunctionCodegen (and printing the source never worked with
JVM_IR anyway).
2021-06-16 12:13:32 +02:00
pyos 32ad747632 JVM: load default lambda method nodes immediately
The ones that are not needed are filtered out before DefaultLambda is
even constructed anyway, and this way we need fewer lateinit vars.
2021-06-16 12:13:32 +02:00
pyos 1e953eaf01 JVM: remove contextKind from SourceCompilerForInline
Guess what? It's only useful for the old backend's type mapper!
2021-06-16 12:13:32 +02:00
pyos 1109348b6d JVM: remove lookupLocation from SourceCompilerForInline 2021-06-16 12:13:32 +02:00
pyos b6e9f64e18 JVM: remove functionDescriptor from InlineCodegen 2021-06-16 12:13:32 +02:00
pyos d89e2d9f08 JVM: split inline intrinsics into "needed by JVM_IR" and "not"
or, alternatively, "suspend" and "not".
2021-06-16 12:13:32 +02:00
pyos eb4d831d27 JVM_IR: implement typeOf<T> as a codegen intrinsic
rather than a fake inline function.

Also, generate more correct instructions for typeOf. Not sure how that
even worked before - `aconst(Boolean)` isn't even valid.
2021-06-16 12:13:32 +02:00
pyos 7dbf08ae1c JVM: move loadCompiledInlineFunction out of InlineCodegen 2021-06-16 12:13:32 +02:00
pyos 8307367f90 JVM: don't thread callDefault through the inliner
It's only used by the old backend, and should be given to
PsiSourceCompilerForInline by PsiInlineCodegen.
2021-06-16 12:13:32 +02:00
Igor Chevdar a1e5bef3ad [box-tests] Ignored some tests for K/N
A file included twice in a source set is not supported for now
2021-06-16 14:27:14 +05:00
Iaroslav Postovalov 0ba3ddcc29 Minor. Fix a typo, change visibility of internal object 2021-06-16 10:22:44 +03:00
Georgy Bronnikov f0f01db66e Temporarily mute a failing test 2021-06-16 01:48:28 +03:00
Ilya Kirillov 39e2df6916 FIR IDE: render unresolved types as qualifiers for member generator 2021-06-16 01:17:44 +03:00
Victor Petukhov 559bedf5ae Continue processing not builder inference stub variables in the type checker during computing common super type
^KT-47148 Fixed
2021-06-15 17:40:56 +03:00
Victor Petukhov 85f4cec948 Don't ignore Java nullability annotations without target and unresolved when nullability qualifiers are extracted, with enabled type enhancement improvements
^KT-47276 Fixed
2021-06-15 17:28:25 +03:00
Mads Ager ae03e2983d [JVM_IR] Keep track of catch variable gaps.
This ensures that catch variables are not visible in duplicated
finally blocks generated at an exit within the catch variable
scope.

^KT-46449 Fixed
2021-06-15 15:18:59 +02:00
Victor Petukhov 1b82227308 Don't do new captured type specific checks for old ones in the type checker
^KT-47143 Fixed
2021-06-15 10:07:20 +03:00
Vyacheslav Gerasimov 06b4fe1613 Build: Fix kotlin-stdlib-jvm-minimal-for-test usages
Name changed after publishing with main artifacts for external usage
2021-06-12 04:33:32 +03:00
Mikhail Glukhikh af5e2f3c93 FIR checkers: properly handle annotations with more than one argument 2021-06-11 22:03:33 +03:00
Mikhail Glukhikh ceb527c5e4 FIR: add OptIn checkers draft + some annotation / SinceKotlin utilities 2021-06-11 22:03:32 +03:00
Mikhail Glukhikh bd39e457a7 FIR: make ArrayMapOwner.arrayMap really protected 2021-06-11 22:03:32 +03:00
Mikhail Glukhikh 0972020324 Extract common parts from ExperimentalUsageChecker 2021-06-11 22:03:32 +03:00
Mikhail Glukhikh f0453d2f5c FIR: distinguish qualified access / qualified access expression checkers 2021-06-11 22:03:32 +03:00
Mads Ager 6b6ba77869 [JVM_IR] Trim the expression test string for null assertions.
^KT-47166 Fixed.
2021-06-11 21:54:04 +03:00
Roman Golyshev 3f0cc67f17 Fix converting string GLOB to regexp in TestConfigurationBuilder
This is required when `p1|p2|p3|...|pN` concatenation is used (see `or`
extension function above `toMatchingRegexString`)

This is a follow-up to the 6f4b6c1b5b7bc05557306179e25a79fa234aa77f
commit
2021-06-11 20:06:04 +03:00
Roman Golyshev 30f20cb835 Use more reliable paths matching in TestConfigurationBuilder
Without it, even the slightest difference between the pattern and
testDataPath would cause the path to be excluded, for example:

testDataPath = /some/absolute/path.txt
pattern = absolute/*

The example above didn't match, and it resulted in different
configurations when tests were launched with different testDataPaths

Now, the example above will look like this:

testDataPath = /some/absolute/path.txt
patter = */absolute/*

Now it matches correctly
2021-06-11 20:06:03 +03:00
nataliya.valtman d42a6771b0 Update statistics that should be sent to ES
Next properties should be set in gradle.properties or via -D option:
systemProp.kotlin.plugin.stat.password
systemProp.kotlin.plugin.stat.user
systemProp.kotlin.plugin.stat.enabled=true
systemProp.kotlin.plugin.stat.label
systemProp.kotlin.plugin.stat.endpoint=es_endpoint/index/_doc
kotlin.build.report.verbose=true
kotlin.build.report.enable=true
2021-06-11 19:12:05 +03:00
Dmitry Petrov bf077b893c PSI2IR KT-47245 handle declaration statements in control structures 2021-06-11 16:42:31 +03:00
pyos 3be348f910 JVM_IR: fix parentClassId for property accessors 2021-06-11 15:03:13 +02:00
pyos d4485bc475 JVM: remove unused methodOwner from InlineCodegen 2021-06-11 15:03:13 +02:00
pyos ed26e97df8 JVM: refactor loading of inline functions from binaries
The IR path no longer does any descriptor unwrapping or old-style type
mapping.
2021-06-11 15:03:13 +02:00
pyos 7bcd738bb1 JVM: inline createInlineMethodNode into InlineCodegenForDefaultBody
Most of it is unused, since there we know the target function will also
need to be compiled from source.
2021-06-11 15:03:13 +02:00
pyos 4c7eb815fc JVM: remove some FunctionDescriptors from SourceCompilerForInline 2021-06-11 15:03:13 +02:00
pyos a24ad233ee JVM: move PsiSourceCompilerForInline to a separate file 2021-06-11 15:03:13 +02:00
pyos 955b9260d1 JVM: move more old backend code out of InlineCodegen 2021-06-11 15:03:13 +02:00
pyos 043452fb62 JVM: make handling of captured params for default lambdas shorter 2021-06-11 15:03:13 +02:00
pyos 4cae880b44 JVM: remove unused DefaultLambda.parameterOffsetsInDefault 2021-06-11 15:03:13 +02:00
pyos 8a3af851d9 JVM: pregenerate inline lambda bodies as early as possible
Which in JVM_IR is immediately in `genValueAndPut`, but for the old
backend needs to be delayed until `genCallInner` for some reason.
2021-06-11 15:03:13 +02:00
pyos 90412ade8a JVM: remove second parameter of putClosureParametersOnStack
Only used by the old backend.
2021-06-11 15:03:13 +02:00
pyos d4c8a033b1 JVM: remove BaseExpressionCodegen.pushClosureOnStack
It's only used by the old backend
2021-06-11 15:03:13 +02:00
pyos b6c3c9942d JVM: move activeLambda to PsiInlineCodegen 2021-06-11 15:03:13 +02:00
pyos 7333abf50d JVM: purge redundant val BaseExpressionCodegen.v 2021-06-11 15:03:13 +02:00
pyos 1f9db7cf25 FE: properly clear the deferred generator stack
Before this commit the stack wasn't cleared for read variable case.
#KT-47168 Fixed
2021-06-11 15:56:20 +03:00
Georgy Bronnikov 91387e644f IR: repair collectAndFilterRealOverrides 2021-06-11 15:05:45 +03:00
Georgy Bronnikov 7e6782d684 JVM_IR: simplify resolveFakeOverride call in SyntheticAccessorLowering 2021-06-11 15:05:45 +03:00