Commit Graph

65317 Commits

Author SHA1 Message Date
Dmitriy Novozhilov dc30bf5d09 [FIR] Don't recreate transformers in FirPluginAnnotationsResolveTransformer 2020-05-20 10:40:57 +03:00
Dmitriy Novozhilov 0544369503 [FIR] Add transformImports to FirFile 2020-05-20 10:40:57 +03:00
Dmitriy Novozhilov f60c8eac71 [FIR] Don't rewrite session in FirImportResolveTransformer 2020-05-20 10:40:56 +03:00
Dmitriy Novozhilov 67a259a903 [FIR] Get rid of FirSymbolProvider.getInstance(session)`
Replace with `session.firSymbolProvider`
2020-05-20 10:40:56 +03:00
Dmitriy Novozhilov 24c8a659ee [FIR] Add FirSession as parameter for FirTotalResolveTransformer 2020-05-20 10:40:55 +03:00
Dmitry Petrov c165b8d55c JVM: Update IR bytecode text and signature tests 2020-05-20 07:19:30 +03:00
Dmitry Petrov 16e7a42aea JVM: Fix line numbers in test 2020-05-20 07:19:30 +03:00
Dmitry Petrov e625bb375f Temporarily mute unsigned tests in JVM_IR and FIR 2020-05-20 07:19:30 +03:00
Dmitry Petrov de4ebe4395 Prohibit @JvnName on functions mangled because of return type 2020-05-20 07:19:29 +03:00
Dmitry Petrov fcf8a91a38 Update kotlin-stdlib-runtime-merged.txt 2020-05-20 07:19:29 +03:00
Dmitry Petrov cf70c83ab7 JVM: Update tests 2020-05-20 07:19:29 +03:00
Dmitry Petrov 2f82c5b6af JVM: Fix default parameter values handling
When we generate call for 'foo', we make decision about invoking
a 'foo$default' too late, after the call arguments are generated.
If 'foo' was an override, and base class (interface) was generic,
'foo' in base class could have a different Kotlin and JVM
signature, so the arguments we generated could be generated wrong
(primitive or inline class values instead of boxes, see KT-38680).
Also, we always selected first base class in supertypes list,
which caused KT-15971.

Look into resolved call and see if we should actually call
'foo$default' instead of 'foo' when determining actual callable.

Overrides can't introduce default parameter values, and
override-equivalent inherited methods with default parameters
is an error in a child class. Thus, if we are calling a class
member function with a default parameters, there should be one
and only one overridden function that has default parameter values
and overrides nothing.
2020-05-20 07:19:29 +03:00
Dmitry Petrov dc9f64fc9d JVM: Fix reflection tests for new IC ABI 2020-05-20 07:19:28 +03:00
Dmitry Petrov b5bd3604b1 JVM: Mangle functions returning inline class values
Mangling suffix is base64-encoded MD5 of ":<returnTypeFQN>"
2020-05-20 07:19:28 +03:00
Dmitry Gridin 9beb36ca2b Code style: add option for blank lines before declarations
#KT-39024 Fixed
#KT-37420 Fixed
#KT-37891 Fixed
2020-05-20 02:22:53 +00:00
Dmitry Gridin 499a02ebe3 AddThrowsAnnotationIntention: improve for mpp
#KT-38391 Fixed
2020-05-20 02:19:10 +00:00
Dmitry Gridin 8b4660031f multiPlatformSetup: cleanup code 2020-05-20 02:19:09 +00:00
Dmitry Gridin 7b079a5f1c Deprecated symbol usages: fix test 2020-05-20 09:04:46 +07:00
Vyacheslav Karpukhin 2c5e42a765 Merge branch 'rr/slava/rename-foreign-usages' 2020-05-19 18:45:59 +02:00
Mikhail Bogdanov 16b4342d92 Add minor test for SMAP
Relates to PR 3248
2020-05-19 18:34:56 +02:00
pyos 73e91af792 IDEA: test the plugin's ability to parse correct JSR-045 data 2020-05-19 18:33:27 +02:00
pyos c51c537504 JVM: use precise line bounds when regenerating objects with no SMAPs 2020-05-19 18:33:27 +02:00
pyos 7222a732c1 JVM: treat empty SMAP instances as "skip all line numbers" 2020-05-19 18:33:27 +02:00
pyos 86b28b95ca JVM: keep call site markers when inlining lambdas into objects
A follow-up for KT-35006:

    fun f() = foo {
        bar()
    }
    inline fun foo(crossinline x: () -> Unit) = { x() }()
    inline fun bar() = TODO()

does not provide the option to navigate to bar's call site at all.
2020-05-19 18:33:27 +02:00
pyos 5feadd56ef JVM: parse KotlinDebug when regenerating anonymous objects 2020-05-19 18:33:27 +02:00
pyos 1fe7ef6521 JVM: separate the two kinds of source mappers
* a writing source mapper has `mapLineNumber(line, file, class)` that
   inserts a new SMAP entry and returns a fake line number from it;
 * a copying source mapper has `mapLineNumber(line)` that uses an
   existing SMAP to resolve the line number and call the former method
   on a different source mapper;
 * those two types are disjoint.
2020-05-19 18:33:27 +02:00
Ilya Gorbunov 143d8d1520 Minor: fix issue reference 2020-05-19 19:24:00 +03:00
Ilya Gorbunov d37c412f76 Suppress a couple more warnings 2020-05-19 19:24:00 +03:00
Ilya Gorbunov bf21e1282a Suppress most of unused parameter warnings 2020-05-19 19:24:00 +03:00
Dmitry Borodin dd46d5ca5a Add sample for Map.flatMap 2020-05-19 19:24:00 +03:00
Dmitry Borodin 1a0b59da49 KT-20357 Add sortedBy() sample (#3283) 2020-05-19 19:21:21 +03:00
Vyacheslav Gerasimov 0d71758112 Build: Add miscCompilerTest task
for everything except jvmCompilerTest & jsCompilerTest
2020-05-19 18:34:38 +03:00
Victor Petukhov eff5f3a242 NI: do type checking for anonymous functions not inside a call
^KT-38890 Fixed
^KT-38439 Fixed
2020-05-19 16:29:14 +03:00
Mark Punzalan 425ce8c3ab [FIR] Use flexible type lower bound when approximating type for
IntegerLiteral.
2020-05-19 15:42:49 +03:00
Mark Punzalan d5141674a3 [FIR] Update GenerateRangesCodegenTestData for newly-enabled FIR tests. 2020-05-19 15:41:29 +03:00
Mark Punzalan 89d706972c [FIR] Use vararg element type when generating argument mapping. 2020-05-19 15:41:29 +03:00
Natalia Selezneva 98d3855fd8 KotlinDslModels: project can be null in ExternalSystemTaskNotificationListener.onStart
For example when project is created from sources
2020-05-19 15:04:15 +03:00
Natalia Selezneva 879fe9b493 Fix order of ExternalSystemListeners
in 201 the order of ExternalSystemListener.EP isn't guaranteed.
But we need to update script definitions and only then we can store script models,
because they need to know script definitions additional classpath
2020-05-19 15:04:14 +03:00
Natalia Selezneva 1a1bcefb2a Add debug logger to ScriptTemplatesFromDependenciesProvider
This will help with investigation of problems with script definition discovery
2020-05-19 15:04:14 +03:00
Natalia Selezneva 16b7232b4f Minor: do not associate with the same extensions multiple times in ScriptDefinitionsManager 2020-05-19 15:04:14 +03:00
Natalia Selezneva 8d22429abc Do not show notification before all definitions are loaded 2020-05-19 15:04:14 +03:00
Natalia Selezneva 1513429613 Load script definitions in IDE on project opening
This will speed up first script opening,
will avoid unexpected indexing because of new definitions
Script definitions are also needed for Kotlin scripting settings
2020-05-19 15:04:14 +03:00
Natalia Selezneva 942c8aaafc Introduce index for folders with script definitions templates
Replace it with nonBlockingReadAction meaning that if update was canceled then loading will be restarted after all write events happen
Also scanning is now started after indexing

^KT-36378 Fixed
^KT-34138 Fixed
^KT-37863 Fixed
2020-05-19 15:04:14 +03:00
Ilya Matveev 839e4ecff2 Allow passing a MessageRenderer to CLITool.mainNoExit
Earlier a system property was used to configure a message renderer
for the K/N compiler. The fix for KT-37550 requires getting rid of
using properties when the compiler is started in a Gradle process.
This patch allows us to specify a correct message renderer at
the K/N side depending on entry point used to run the compiler.

 Issue #KT-37550
2020-05-19 18:57:41 +07:00
Ilya Matveev 5287ffb4a5 [Native] Don't use konan.home to determine a path to the K/N dist
A fix for KT-37550 requires us to stop using system properties when
the compiler is started from Gradle. This patch stops reading the
konan.home property to determine a path to the compiler and requires
this path to be explicitly specified in a constructor of the
Distribution class.

Issue #KT-37550
2020-05-19 18:57:39 +07:00
Ilya Matveev 8e3a62e5fd [Gradle] Get rid of java.library.path when running the K/N compiler
Issue #KT-37550
2020-05-19 18:57:37 +07:00
Dmitry Gridin 0df5d5158d Add resources-en for idea
#KT-38297 Fixed
2020-05-19 16:22:06 +07:00
Dmitry Gridin 12217ef2ab Add regression test for ReplaceWith
#KT-35015 Fixed
2020-05-19 16:15:13 +07:00
Toshiaki Kameyama 02c17378b1 Replace deprecated symbol usage: replace imported object function correctly
#KT-33951 Fixed
2020-05-19 15:40:59 +07:00
Dmitry Gridin b2be1a53cf SpecifyTypeExplicitlyIntention: remove annotations from result type
#KT-36930 Fixed
2020-05-19 01:17:39 +00:00