Commit Graph

83749 Commits

Author SHA1 Message Date
Zalim Bashorov 5a3efc1a98 [JS IR] Fill source info in codegen
#KT-46551 In Progress
2021-07-05 21:01:40 +03:00
Zalim Bashorov 64c6d852de [JS IR] Preparing for introducing sourcemap as another compilation output
* Rename `JsCode` to `CompilationOutputs`.
* Rename members of CompilerResult.

#KT-46551 In Progress
2021-07-05 21:01:38 +03:00
Zalim Bashorov d9b7230144 [JS IR] add dependency to sourcmap module
#KT-46551 In Progress
2021-07-05 21:01:37 +03:00
Zalim Bashorov aae1057f35 [IR] Support IrReturnableBlock inside IR renderer 2021-07-05 21:01:35 +03:00
Ilya Chernikov 6911860cca Clean-up coroutines usage in scripting libs and plugin
#KT-30778 fixed (again)
2021-07-05 19:26:42 +03:00
Ilya Chernikov 49e0b639f8 Add JSR-223 tests with compilable and bindings 2021-07-05 19:26:40 +03:00
Ilya Chernikov 32b6cfe2ea [Scripting] fix receiver substitution in script JVM IR lowering 2021-07-05 19:26:39 +03:00
Ilya Chernikov a7b94b398a [minor] Bump serialization lib version in scripting test 2021-07-05 19:26:38 +03:00
Ilya Chernikov 0c2591e938 Bump coroutines version used in scripting to 1.5.0
#KT-43917 fixed
2021-07-05 19:26:37 +03:00
Igor Yakovlev 64afba299f [imltogradle] Don't use deprecated kotlinOptions.jdkHome in generated build.gradle.kts files 2021-07-05 17:52:04 +02:00
Tianyu Geng 4c439bb5d7 FIR: fix DELEGATION_SUPER_CALL_IN_ENUM_CONSTRUCTOR
DELEGATION_SUPER_CALL_IN_ENUM_CONSTRUCTOR should be an error but it's
somehow a warning in FIR.
2021-07-05 18:32:37 +03:00
Tianyu Geng db1db6c64c FIR: fix CYCLIC_CONSTRUCTOR_DELEGATION_CALL
Somehow it's a warning in FIR, but it should be an error.
2021-07-05 18:32:36 +03:00
Jinseong Jeon cd78a156c5 FIR checker: apply member checkers to anonymous objects
because they can have member properties/functions too.
2021-07-05 18:32:34 +03:00
Jinseong Jeon 64a275cf83 FIR: fix type comparator
As many other places did, this one is supposed to return the diff value
if the given two intersection types' sizes are different.
2021-07-05 18:32:33 +03:00
Tianyu Geng cdfb2fb3d9 FIR checker: report SETTER_PROJECTED_OUT 2021-07-05 18:32:32 +03:00
pyos c3a91efea3 JVM_IR: fix primitive comparison optimizations
1. the `primitive == object?.something` fusion should not apply to
    `primitive.equals(object?.something)` because it can't;

 2. coercions to Int are there for a reason - don't remove them;

 3. better optimize `primitive == object?.something` -- the result
    should be subject to if-null fusion, so it needs to have a specific
    pattern that resembles safe calls.

 #KT-47597 Fixed
2021-07-05 18:13:09 +03:00
Yahor Berdnikau 7e70c93cbf Allow to avoid using JDK 1.6 and JDK 1.7 in the repo.
This behaviour could be enabled via adding
'kotlin.build.isObsoleteJdkOverrideEnabled=true'
to the 'local.properties' file.

^KT-46972 Fixed
2021-07-05 14:11:13 +00:00
Yahor Berdnikau 7789054547 Migrate repo to use JVM toolchains Gradle feature.
^KT-46972 Fixed
2021-07-05 14:11:12 +00:00
Yahor Berdnikau 08d831934a Revert "Build: add temporary option to suppress jdkHome warning"
This reverts commit 1dfcec3a93.
2021-07-05 14:11:11 +00:00
sebastian.sellmair 5b5dddc2d1 [Commonizer] Restore TypeAliasCommonizer's Commutative property & TypeAliasTypeCommonizer: substitute underlying-type arguments
^KT-47574 The fix done here supports only one level of substituting
underlying type-arguments.

HierarchicalTypeAliasCommonizationTest.`KT-47574 - test long typealias chain`
will assert proper behaviour for nested chains.
2021-07-05 09:00:46 +00:00
sebastian.sellmair 448302d19b [Commonizer] CommonizeNativeDistributionTest.commonize - apple platforms(): Require macos 2021-07-05 09:00:45 +00:00
sebastian.sellmair 1e801e77a2 [Commonizer] HierarchicalClassAndTypeAliasCommonizationTest: Remove unnecessary annotations and reformat file 2021-07-05 09:00:44 +00:00
sebastian.sellmair 684e51b0be [Commonizer] Implement TypeCommonizer as AssociativeCommonizer 2021-07-05 09:00:44 +00:00
sebastian.sellmair b29fd17d26 [Commonizer] Use AssociativeCommonizer signature to implement ClassOrTypeAliasTypeCommonizer
This drastically improves performance for now, since the previous
Adapter implementation was at least O(n^2). While the Adapter
implementation could have been reduced to O(n), the Signature of
StatelessCommonizer was misleading.

StatelessCommonizer will be introduced back later when other
Commonizer implementations are ready to be converted to a new
Signature.
2021-07-05 09:00:43 +00:00
sebastian.sellmair 20f55ef0b7 [Commonizer] Commonize 'const val' and 'val' properties 2021-07-05 09:00:42 +00:00
sebastian.sellmair 9794068f22 [Commonizer] typeAliasUtils: computeSuitableUnderlyingType: Consider commonized type-aliases 2021-07-05 09:00:42 +00:00
sebastian.sellmair 5ca81b01f0 [Commonizer] Improve AbstractCommonizerTest diagnostic message 2021-07-05 09:00:41 +00:00
sebastian.sellmair d7022cb378 [Commonizer] Move ClassTypeCommonizer and TypeAliasTypeCommonizer into seperate files 2021-07-05 09:00:40 +00:00
sebastian.sellmair 8f73df0f85 [Commonizer] Implement new ClassOrTypeAliasTypeCommonizer
^KT-47432 Verification Pending
^KT-47434 Verification Pending
2021-07-05 09:00:39 +00:00
sebastian.sellmair 8e2780345c [Commonizer] HierarchicalClassAndTypeAliasCommonizationTest: Un-ignore tests fore ^KT-47432 and ^KT-47434 and add additional test's 2021-07-05 09:00:39 +00:00
Pavel Kunyavskiy fc75486611 [K/N] Debug tool for checking state at call points of unknown functions
After linking runtime, llvm-ir is modified to add checker function
call at all points where unknown function, which can possibly run long
is called. This function checks Native state is set, to avoid long locks
at gc.
2021-07-05 08:35:23 +00:00
Pavel Kunyavskiy 1ba04fdd21 [K/N] Introduce external calls checker compiler option 2021-07-05 08:35:23 +00:00
Pavel Kunyavskiy 271fc35082 [K/N] Minor debug info fix 2021-07-05 08:35:22 +00:00
Pavel Kunyavskiy 4c2d518cf5 [K/N] Move ClearCurrentThreadData() out of TestSupport 2021-07-05 08:35:21 +00:00
Pavel Kunyavskiy 65bebd3058 [K/N] Support AddressToSymbol using dladdr, if availible 2021-07-05 08:35:20 +00:00
Pavel Kunyavskiy b7707d8755 [K/N] Introduce api for getting existing global by name from StaticData 2021-07-05 08:35:20 +00:00
Pavel Kunyavskiy 1db2903e4f [K/N] Add utilities to check if thread is registered now 2021-07-05 08:35:19 +00:00
Vyacheslav Gerasimov aff9d96e8a Build: Update gradle enterprise and test distribution plugins 2021-07-04 18:15:36 +03:00
Dmitriy Novozhilov 6e1fce6b8b [FIR] Fix creating scopes for enum entry initializers
Before we analyzed initializers of enum entry with scope for constructor
  in implict type mode, so scope was untouchable. Now we analyze them
  in body resolve phase, so previously we add value parameters to
  constructors scope, which mess up scope of enum entry initializer
2021-07-04 13:29:03 +03:00
Dmitriy Novozhilov 1593c4859d [FIR] Get rid of all conditional reads of FirDeclaration.resolvePhase 2021-07-04 13:29:03 +03:00
Dmitriy Novozhilov 43fe0c3bc1 [FIR] Don't initialize type of FirAnonymousObjectExpression
In some cases we check that some declaration (e.g. field) was
  analyzed by checking type of it's body/initializer (is it implicit
  or not), so if type of FirAnonymousObjectExpression is not implicit
  we can skip resolve of anonymous object itself
2021-07-04 11:17:50 +03:00
Dmitriy Novozhilov 32173a408a [FIR] Update type of getter after approximation of property type 2021-07-04 11:17:49 +03:00
Roman Artemev d472b6c71c [Psi2Ir] Replace custom IrProperty node with common one 2021-07-02 19:58:31 +03:00
Roman Artemev 4d5186d332 [Psi2Ir] Untangle psi2ir from frontend.java
Add extension method to detect and unwrap `JavaSyntheticProperty`
2021-07-02 19:58:30 +03:00
Dmitriy Novozhilov 3f5e6a79c7 Replace all throw error(...) with just error(...)
`throw` is not needed in this case, because `error(...)` already
  raises exception (so `throw` is unreachable). Also after previous
  commit compiler reports `UNREACHABLE_CODE` warning on such `throw`
2021-07-02 17:55:21 +03:00
Dmitriy Novozhilov ae608ea67f [FE 1.0] Always create return value for CallInstruction
This fixes missing `USED_AS_EXPRESSION` recordings
^KT-47527 Fixed
2021-07-02 17:55:20 +03:00
bracadabra b2372ff0b9 Fix UTFDataFormatException on encoding long subplugin options.
ObjectOutputStream.writeUTF(String) has an unsigned short limit on
String length. On Projects with deep nested modules subplugin
options could produce String over this limit.

^KT-45202 Fixed
2021-07-02 16:17:54 +02:00
Simon Ogorodnik f8ab16c823 [Build] Fix useFir project exclusion logic 2021-07-02 16:13:05 +03:00
Dmitriy Novozhilov f7c68afb18 [FIR] Don't report EXPOSED_FUNCTION_RETURN_TYPE on property accessors 2021-07-02 15:55:12 +03:00
Dmitriy Novozhilov 3a34a2ca62 [FIR] Properly infer published effective visibility for member declarations 2021-07-02 15:55:10 +03:00