Ilmir Usmanov
326768e8b5
Minor. Update test data
2020-11-04 00:20:39 +01:00
Steven Schäfer
bd4e2a283c
JVM IR: Don't generate null checks on value parameters of private operator functions
...
The null check on the extension receiver of private operator functions
is a special case and doesn't extend to value parameters.
2020-11-03 21:44:25 +01:00
Steven Schäfer
d4cb521433
JVM IR: Fix names for SAM callable references with inline class return types
...
This fixes the ABI issues in KT-42879.
2020-11-03 18:33:34 +01:00
Denis Zharkov
aa81041415
FIR: Fix DiagnosticsTestGenerated when FIR starts requesting light classes
...
Became necessary after fixing loading Java annotation from deserialization
2020-11-03 18:30:15 +03:00
Denis Zharkov
a936386e53
FIR: Add more complicated workaround for OverloadResolutionByLambdaReturnType
...
That helps for minOfOrNull/maxOfOrNull
2020-11-03 18:30:15 +03:00
Denis Zharkov
4612f26bfb
FIR: Add workaround for OverloadResolutionByLambdaReturnType
...
Mostly, that should help for existing flatMap usages
^KT-43129 Submitted
2020-11-03 18:30:15 +03:00
Denis Zharkov
07ed89b02b
Move OVERLOAD_RESOLUTION_BY_LAMBDA_ANNOTATION to compiler.common
...
So, it could be used in FIR
2020-11-03 18:30:15 +03:00
Denis Zharkov
a444618c27
FIR: Correctly handle Java annotations from deserialization
...
To obtain enhanced declarations, we should use type scope
2020-11-03 18:30:15 +03:00
Alexander Udalov
f2b0d057b9
JVM IR: minor optimizations in IrTypeMapper.classInternalName
...
Replace cubic complexity with square when computing internal name for
nested classes by using StringBuilder instead of concatenating strings,
and don't do getLocalClassType/classNameOverride checks on each step of
the recursion.
2020-11-03 15:40:16 +01:00
Alexander Udalov
b3e79d36df
Fix compiler warnings and some inspections
2020-11-03 14:00:53 +01:00
LepilkinaElena
ee8db2f760
Escape resolving same library several times in K/N ( #3880 )
2020-11-03 15:57:48 +03:00
Ilmir Usmanov
1376fed1d4
Support non-public inline class constructors
...
#KT-28056 Fixed
2020-11-03 12:10:21 +01:00
Igor Chevdar
94145f880c
[IR] Inliner: supported recursion in default arguments
2020-11-03 11:39:00 +05:00
Ilmir Usmanov
5f8fabed61
Minor. Update test data
2020-11-03 02:20:44 +01:00
Ilya Chernikov
497b7ee266
[minor] fix accidental addition of FirScriptCodegenTestGenerated
2020-11-02 20:35:07 +01:00
Mark Punzalan
89836a2c9a
Minor, test-data-only: Remove unused "IGNORE_BACKEND_FIR" directives in
...
asmLike test-data.
2020-11-02 19:37:14 +01:00
Alexander Udalov
c02e92a5e0
JVM IR: minor, use createJvmIrBuilder to simplify code
2020-11-02 19:33:24 +01:00
Alexander Udalov
dd33ed9297
Fix suspend function with inline class types in reflection
...
#KT-34024 Fixed
2020-11-02 19:33:23 +01:00
Mads Ager
617279310e
[JVM_IR] Rebase inline function and defaults args stepping test.
2020-11-02 13:14:12 +01:00
Ilmir Usmanov
7b315a8b52
JVM_IR: Do not box inline class in methods
2020-11-02 10:50:00 +01:00
Mikhael Bogdanov
e20093d762
Support @JvmStatic and @JvmOverload in annotation companion
2020-11-02 08:27:49 +01:00
Mikhael Bogdanov
7ec2d036ae
Don't generate final modifier on static interface methods produced by @JvmStatic+@JvmOverloads from interface companion
...
#KT-35716 Fixed
2020-11-02 08:27:49 +01:00
Alexander Udalov
51ded98c4b
Kx-serialization: support SerialInfo for JVM IR
...
No tests added because this is going to be checked by the upcoming build
of kotlinx-serialization runtime with JVM IR.
#KT-42976 In Progress
2020-10-30 17:45:25 +01:00
Dmitry Petrov
e4ba787034
JVM_IR KT-43066 Generate 'clone' in class implementing kotlin.Cloneable
2020-10-30 19:03:31 +03:00
Mikhail Glukhikh
7b4f781ea8
[FIR] Split primary constructor parameter scope into two different
...
In init block or property initializers,
for `val x` declared in primary constructor,
`x` reference is now resolved to property, not to parameter.
So we need two different scopes for primary constructor,
one for 'pure' parameters and another one for all parameters,
including val/var ones.
#KT-42844 Fixed
2020-10-30 18:44:55 +03:00
Shagen Ogandzhanian
2d0535a713
[JS_IR] Invoke companion init block while instantiating a class
...
KT-40740, squashed rr/shagen/KT-40740-static-init-js-ir
2020-10-30 16:19:13 +01:00
Ilya Chernikov
22117604f6
Move script simple type remapper to the common utilities
2020-10-30 12:57:43 +01:00
Ilya Chernikov
de340e9bc8
Implement support for synthetic script params in IR:
...
implicit receivers and provided properties
also support script imports
2020-10-30 12:57:43 +01:00
Ilya Chernikov
7572b50385
Expose script parameters from descriptor explicitly...
...
and universally as ValueParameterDescriptors;
update implementation accordingly
2020-10-30 12:57:43 +01:00
Ilya Chernikov
94f2813a8a
Add script main function generation to JVM IR backend
2020-10-30 12:57:42 +01:00
Ilya Chernikov
60246f2261
Ignore temporarily the kt22029.kts codegen test for JVM IR:
...
since it fails and I cannot fix it right now.
2020-10-30 12:57:42 +01:00
Ilya Chernikov
d7112a4500
Implement JVM IR support for scripts
2020-10-30 12:57:42 +01:00
Ilya Chernikov
01d73ba0fc
Make IrScript a statement container first, update JS support
...
The IrScript is now the IrStatementContainer with significant
statements order, and the code is adapted accordingly
2020-10-30 12:57:42 +01:00
Ilmir Usmanov
28e148d35a
Old JVM: support init blocks in inline classes
...
#KT-28055 Fixed
2020-10-29 20:38:03 +01:00
Ilmir Usmanov
999604541e
JVM_IR: Support init blocks in inline classes
...
Put their content to constructor-impl, so they are called during
constructor call, but they are not called during boxing, because
box-impl calls <init> and not constructor-impl.
#KT-28055 In progress
2020-10-29 20:38:01 +01:00
Mikhael Bogdanov
5804f73ebd
JVM_IR. Deprecate public access to @JvmField/const fields in private companions
...
#KT-25009
2020-10-29 17:19:49 +01:00
Mikhael Bogdanov
57c9afc73a
Deprecate public access to @JvmField/const fields in private companions
...
#KT-25009
2020-10-29 17:19:49 +01:00
Alexander Udalov
8be23df668
Remove unneeded dependency of util on deserialization & reflect
...
This is probably a result of a somewhat incorrectly merged
6c37574fce .
2020-10-29 17:03:11 +01:00
Dmitry Petrov
08b761ae7a
PSI2IR don't copy annotations for properties implemented by delegation
...
KT-43012
2020-10-29 16:23:02 +03:00
Mads Ager
dca1f4631c
[JVM_IR] Use line number 1 for multifile bridge methods.
...
This is necessary for the intellij debugger filters to hide
these bridges.
Fixes KT-41961.
2020-10-29 13:04:08 +01:00
Alexander Udalov
ad5b6da273
JVM IR: substitute generic type for inline class replacement function calls
...
The main change here is in `JvmInlineClassLowering.visitFunctionAccess`,
where we now store the substituted return type of the function as the
type of the call expression. Without it, the call could have a
meaningless type, e.g. some `T` which is inaccessible at that place, and
that could backfire in subsequent lowerings in codegen. For example, in
the `stringPlus.kt` test, it would prevent the code in
`FlattenStringConcatenationLowering.isStringPlusCall` from recognizing
and replacing the `String.plus` call, leading to a codegen exception.
Other changes are mostly cosmetics to make the code similar to
`visitFunctionReference`, and preventive optimizations for the case when
the substitution map is empty.
2020-10-28 16:46:28 +01:00
Mikhail Glukhikh
4a3a2ef72a
[FIR2IR] Test data fix after rebase (regular + delegated supertype)
2020-10-28 18:09:13 +03:00
Mikhail Glukhikh
60141ccbaa
[FIR] Fix Substitution scope key to avoid accidental matches
2020-10-28 18:09:12 +03:00
Mikhail Glukhikh
2dc6467b5d
[FIR] Modify signatures also from ERASED_COLLECTION_PARAMETER_SIGNATURES
...
In this commit we change value parameter type of containsAll, removeAll,
retainAll from Java collections. Originally it's Collection<?>,
we change it to Collection<T>
#KT-42340 Fixed
2020-10-28 18:09:11 +03:00
Roman Golyshev
82984089f0
KT-42274 Update SOURCE_STUB_VERSION
...
This update should have been done in
4b7d34b537 commit, as it is stated in the
`KtTokens.MODIFIER_KEYWORDS_ARRAY` docs.
Shifting all modifiers by one have led resulted in incorrect modifiers
when stubs were read from the disk. Updating `SOURCE_STUB_VERSION` will
make IDEA recreate all stubs from scratch
^KT-42274 Fixed
2020-10-28 12:57:53 +00:00
Mikhail Glukhikh
80108444ec
FIR2IR: cleanup implicit cast inserter
2020-10-28 15:44:46 +03:00
Jinseong Jeon
2424f2438c
FIR2IR: towards comprehensive visits in implicit cast inserter
2020-10-28 15:44:45 +03:00
Jinseong Jeon
5f6d2c5362
FIR2IR: utilize argument conversions
2020-10-28 15:44:44 +03:00
Jinseong Jeon
f1fd3d6b5d
FIR2IR: avoid using constant -1
2020-10-28 15:44:42 +03:00
Jinseong Jeon
707e94bab5
FIR2IR: add test about coercion-to-Unit for nested when
2020-10-28 15:44:41 +03:00