Commit Graph

58501 Commits

Author SHA1 Message Date
Mikhail Glukhikh 15a8da5f7b Rename: Fir...UseSiteScope -> Fir...UseSiteMemberScope 2019-10-23 19:28:40 +03:00
Mikhail Glukhikh bb60a8f334 Code cleanup: get rid of FirPosition 2019-10-23 19:28:40 +03:00
Mikhail Glukhikh 374c3b4561 Cache FirSelfImportingScope and callables inside 2019-10-23 19:28:39 +03:00
Mikhail Glukhikh f136813059 Return "lazy" kind of nested classifier scope for special cases 2019-10-23 19:28:39 +03:00
Mikhail Glukhikh bf75274053 Organize FirClassDeclaredMemberScope & FirNestedClassifierScope in the similar way 2019-10-23 19:28:39 +03:00
Mikhail Glukhikh 17b966daaa Unify API of FirScope.processClassifiersByName (use ProcessorAction) 2019-10-23 19:28:39 +03:00
Pavel Kirpichenkov d886d48cf0 Record resolution results for ambiguous callable references
#KT-34282 Fixed
2019-10-23 18:52:53 +03:00
Stanislav Erokhin 352a4dc836 Added extension points to the second compiler.xml
This is a workaround for KT-34528.
Extension points from 26728711
2019-10-23 18:14:35 +03:00
Igor Yakovlev 2dfe3c568d Copy refactoring update kotlin packages on target files
Fix #KT-18191
2019-10-23 16:44:18 +03:00
Igor Yakovlev 59a6f03a47 Copy refactoring refactoring 2019-10-23 16:44:18 +03:00
Vladimir Dolzhenko 072b67442f Detects main method with argument Array<String?> 2019-10-23 15:36:31 +02:00
Dmitry Gridin 474645f04f idea-core: fix compatibility of insertMembersAfter function 2019-10-23 20:10:34 +07:00
Dmitriy Novozhilov 45de26763a [FIR] Fix import broken in 93a3c232 2019-10-23 15:50:43 +03:00
Dmitriy Novozhilov 93a3c23292 [FIR] Split FirBodyResolveTransformer to separate transformers 2019-10-23 15:21:26 +03:00
Anton Bannykh a1569dfbf0 JS IR: fix circular dependencies in Gradle tasks 2019-10-23 13:17:29 +03:00
Ilya Goncharov 651dd363e3 [Gradle, JS] Add timeout property 2019-10-23 13:04:41 +03:00
Nikolay Krasko ebf5e4b590 Mute IncrementalJsKlibCompilerRunnerTestGenerated tests (KT-34538)
#KT-34538 Fixed
2019-10-23 12:49:49 +03:00
Nikolay Krasko e1a5a55972 Refactoring: remove ownImports method 2019-10-23 12:49:49 +03:00
Nikolay Krasko 6d5dc6ea9a Allow to auto-generate files for asserting failures 2019-10-23 12:49:48 +03:00
Nikolay Krasko 4ed64b0283 Regenerate tests with TargetBackend.ANY remove and using runTest with this 2019-10-23 12:49:48 +03:00
Nikolay Krasko 28abfe6dfa Avoid generating irrelevant imports in test classes
Now methods can request generating additional imports.
2019-10-23 12:49:47 +03:00
Nikolay Krasko 0c5dc507e9 Allow to add additional annotations to generated classes 2019-10-23 12:49:47 +03:00
Nikolay Krasko b885b848f4 Allow to mute test working with directories 2019-10-23 12:49:47 +03:00
Nikolay Krasko f3e5b8c67f Allow to setup additional extension for mute with annotation 2019-10-23 12:49:47 +03:00
Nikolay Krasko 98ac2af402 Use TargetBackend.ANY as default parameter and migrate to more generic runTest method 2019-10-23 12:49:47 +03:00
Nikolay Krasko 3891f9fcaa Refactoring: extract tests files utilities to separate class 2019-10-23 12:49:47 +03:00
Nikolay Krasko 2c0ce40f75 Refactoring: extract test dummy traces 2019-10-23 12:49:47 +03:00
Nikolay Krasko fda2022214 Refactoring: extract mutation with file logic to separate file 2019-10-23 12:49:47 +03:00
Nikolay Krasko a9c84299c6 Allow to auto-mute tests with file 2019-10-23 12:49:46 +03:00
Nikolay Krasko e4436c80c4 Refactoring: extract mute with file to the separate method 2019-10-23 12:49:38 +03:00
pyos 55acc296a2 JVM_IR: never create temporaries in $default stubs
Given the strict pattern-matching in the inliner, this is the only way
to make it not crash when attempting to inline these stubs. Note that
the IR backend does not currently use the inliner's default method stub
handling; the crash only occurs when a module compiled with the non-IR
JVM backend is attempting to call an inline function with default
arguments defined in a module that was compiled with the IR backend.
2019-10-23 11:11:16 +02:00
Alexander Udalov 95be7171bc JVM IR: fix "null" as the first entry in MappedEnumWhenLowering
If "null" was the first entry in an optimizable "when" over enum,
mapRuntimeEnumEntry was called before mapConstEnumEntry, and the
$WhenMappings field was not created. Now both mapConstEnumEntry and
mapRuntimeEnumEntry create this field on the first access
2019-10-23 11:03:22 +02:00
Efeturi Money 35d7bb4a26 Add support for @CompilerOptions annotation for supplying compiler
options from scripts.

#KT-34274 fixed
2019-10-23 11:37:28 +03:00
pyos 8c6916af52 JVM_IR inliner fixes: remove code that does nothing
other than randomly throw assertion errors on inline calls in synthetic
functions, which have no line number attached.

`lazySourceMapper.callSiteMarker` is set in `InlineCodegen.inlineCall`;
`IrSourceCompilerForInline.doCreateMethodNodeFromSource` does not need
to touch it.
2019-10-22 19:29:42 +03:00
Toshiaki Kameyama 60f4ed914a "Add parameter to function" quick fix: apply for TYPE_MISMATCH error
#KT-8478 Fixed
2019-10-22 21:22:33 +07:00
Pavel Kirpichenkov 636f5da883 [Minor] Inline and drop reduntant isCallableReflectionType property 2019-10-22 14:51:04 +03:00
Pavel Kirpichenkov 02fc921eed Report diagnostics about callable reference resolution ambiguity
Found diagnostics were not reported before.
#KT-32862 In Progress
2019-10-22 13:50:59 +03:00
Pavel Kirpichenkov 138d558f6a Fix compiler exception during resolution of ambiguous callable references
Function return type can't and should not be used during overload resolution of callable references.
Since it can be DeferredType, its substitution in CS caused exception.
2019-10-22 13:20:27 +03:00
Mads Ager 8b97819c04 [JVM_IR] Support suspend functions that can be overriden.
The challenge for overridable suspend functions is that the calling
the state machine method to resume after suspension would be
virtually dispatced to the wrong method. To avoid that a static
suspend implementation method is generated which becomes the
state machine method used to resume.
2019-10-22 12:48:21 +03:00
Dmitry Petrov eebb071ae9 KT-34509 Properly unwrap callable reference descriptor
NB there's a problem with callable references to SAM constructors,
see also KT-16789
2019-10-22 12:30:15 +03:00
Dmitry Petrov 7dde503697 KT-34500 Use correct loop parameter type in ForInArrayLoopGenerator 2019-10-22 12:23:59 +03:00
Toshiaki Kameyama bdc04547cc "Redundant qualifier name": fix false positive with inner class as constructor parameter for outer
#KT-33123 Fixed
2019-10-22 13:44:10 +07:00
Igor Yakovlev bc66834c3c Fix UL classes descriptors leaks
UL classes built upon descriptors and UL support classes are saving a descriptors.
This could lead to descriptors leakage so we have to eliminate any fields with descriptor references.

Fixed #KT-34337
2019-10-21 22:04:49 +03:00
Andrey Uskov b01014982f Disable new MPP kapt paths importing test in IDEA 183 2019-10-21 21:38:52 +03:00
Andrey Uskov 0188a0923e Update Kotlin plugin in KaptImportingTests
#KT-34033 Fixed
2019-10-21 21:38:49 +03:00
Andrey Uskov 40bb48e19b Fix actualisation of common source sets when HMPP is disabled
#KT-34256 Fixed
#KT-34402 Fixed
2019-10-21 21:38:45 +03:00
pyos 847e287bd6 JVM_IR: add $assertionsDisabled when an inlined function uses it
NOTE: jvmCrossinlineLambdaDeclarationSite.kt is muted because the
inliner does not remap references to an anonymous object's parent
class after regenerating it. Unlike the JVM backend, JVM_IR uses the
top level named class' assertion status for all inner classes. (The
test used to pass because the lambda in `inline fun call` read the
`$assertionsDisabled` field of `CrossinlineLambdaContainer`, which
was not reloaded after changing the assertion status of package `test`.)
2019-10-21 21:05:18 +03:00
Leonid Startsev e89aabbba1 Provide a diagnostic when @Serializable annotation is missing on enum.
It is required when enum members contain some special annotations which should be recorded in descriptor.
Due to some recursive/lazy resolve problems, compiler plugin frontend can't infer @Serializable on enum automatically, therefore, we ask a user to explicitly provide it.

Also fix ir tests
2019-10-21 19:48:29 +03:00
Leonid Startsev 3c9a02e271 Associate serializers added via @UseSerializers by argument class, not type
Use class instead of type because MyType<T> and MyType<Int> are different types, therefore map lookup was failing.

Fixes https://github.com/Kotlin/kotlinx.serialization/issues/533
2019-10-21 19:48:27 +03:00
Leonid Startsev 855a867893 Support sealed, generic and abstract polymorphic inheritors in sealed class serialization 2019-10-21 19:48:26 +03:00