Commit Graph

64387 Commits

Author SHA1 Message Date
Ilya Matveev 5f53986f47 [klibs] Allow resolving klibs which names are not valid file names 2020-04-19 19:08:43 +07:00
Abduqodiri Qurbonzoda 3a99b3d5a4 Small refactoring to use Family.CodeExtension.size when appropriate 2020-04-19 07:59:09 +03:00
Abduqodiri Qurbonzoda 0d5ec27ac4 toHashSet is suboptimal for inputs with a lot of duplicates #KT-23142 2020-04-19 07:58:49 +03:00
Georgy Bronnikov 2c4fcebfec IR: handle adapted bound references 2020-04-18 20:31:57 +03:00
Vladimir Dolzhenko 1827465f48 Convert KotlinNativeABICompatibilityChecker into a startup activity
Relates to #KT-38318
2020-04-18 11:39:53 +02:00
Vladimir Dolzhenko 6fe800eea0 Convert KotlinNativeABICompatibilityChecker into a startup activity
Relates to #KT-38318
2020-04-18 11:36:35 +02:00
Vladimir Dolzhenko 86a02c07f6 Fix KotlinNativeABICompatibilityChecker.getLibrariesToNotifyAbout freeze
Get rid of O(n^2) in copyProperties
make ModuleProductionSourceInfo.stableName lazy
add checkCanceled in loops in IdeaModelInfosCache

#KT-38318 Fixed
2020-04-18 11:36:21 +02:00
Alexey Tsvetkov 06275a201c JPS: remove outputs for additional dirty files for current iteration
JPS does not remove output files for files marked as dirty
for current iteration. This is a problem for adding complementary files
during JPS MPP IC.
If output files are not removed, the compiler might raise an error
for duplicated actual declarations.
2020-04-18 06:05:44 +03:00
Alexey Tsvetkov 4ccec5218f Remove dirty output files when expanding IC scope early
Previously IC could go to the next iteration without removing
outputs for the files compiled during the last iteration.
For example, it could happen, when a multifile part is changed
(we add sources for other parts and recompile everything together).

In case of MPP it could lead to compile error, because
the compiler would see the same actual declarations from dirty sources
and dirty outputs from previous iteration (which should have been removed).
That behaviour did not raise an error before dc8240c24e
because actual declarations from binaries (e.g. compile classpath) were ignored.

    #KT-35957 Fixed
2020-04-18 06:05:44 +03:00
Alexey Tsvetkov 2442abadc3 Add test for KT-35957 2020-04-18 06:05:44 +03:00
Alexey Tsvetkov 876d6d209f Minor: move non-JPS MPP IC tests under incremental/mpp dir 2020-04-18 06:05:44 +03:00
Valentin Kipyatkov e1ee75c864 Fix to avoid test flickering (SlicerNullnessGroupingTestGenerated.testInlineFunctionManyCalls()) 2020-04-18 01:25:05 +03:00
Valentin Kipyatkov e6cfced54a Don't collect all usages at once 2020-04-18 01:25:05 +03:00
Valentin Kipyatkov 31a1b2ddd3 No BodyResolveMode.FULL in slicer 2020-04-18 01:25:05 +03:00
Valentin Kipyatkov 91a793d575 Slicer tree view: better highlighting range inside nodes and in the editor 2020-04-18 01:25:04 +03:00
Valentin Kipyatkov 64fec54c48 Slicer: underline element range in addition to bold font (better do it in IDEA code) 2020-04-18 01:25:04 +03:00
Valentin Kipyatkov 03126ba469 Container presentation in slicer tree: no type for properties and show accessor 2020-04-18 01:25:04 +03:00
Valentin Kipyatkov 2ee776a0d8 Container presentation in slicer tree: limit number of parameters shown by 2 2020-04-18 01:25:03 +03:00
Valentin Kipyatkov 3e5820e4c1 Slice tree: shorter container rendering for properties in primary constructor 2020-04-18 01:25:03 +03:00
Valentin Kipyatkov 23ead3c805 Added container text into slicer tests output 2020-04-18 01:25:03 +03:00
Valentin Kipyatkov 2d2d9337ca Do not include line numbers from librarys source into test output otherwise it will change to often when upgrading libs 2020-04-18 01:25:02 +03:00
Valentin Kipyatkov d6e8cdebfb Fixing compilation in bunch 201 2020-04-18 01:25:02 +03:00
Valentin Kipyatkov 411f2c833c Process inline functions from libraries (if sources available) + process source libraries if analysis scope includes them 2020-04-18 01:25:02 +03:00
Valentin Kipyatkov 06de3de1a6 Do not show doc-comment references in data flow 2020-04-18 01:25:01 +03:00
Valentin Kipyatkov 84a786dde3 Renames and test output format improvement 2020-04-18 01:25:01 +03:00
Valentin Kipyatkov 33082d8661 Added missing text in the tree rendering 2020-04-18 01:25:01 +03:00
Valentin Kipyatkov 63095f9ec9 Handling of method references 2020-04-18 01:25:00 +03:00
Valentin Kipyatkov 7dd30eb943 Support other kinds of variables for invoke receiver 2020-04-18 01:25:00 +03:00
Valentin Kipyatkov 5a7f74c250 Extracted method 2020-04-18 01:25:00 +03:00
Valentin Kipyatkov 8a1ea7b45e One more test 2020-04-18 01:24:59 +03:00
Valentin Kipyatkov cc6090347a Handling other types of expressions as invoke receiver 2020-04-18 01:24:59 +03:00
Valentin Kipyatkov bf79c3f279 Minor 2020-04-18 01:24:59 +03:00
Valentin Kipyatkov 9624f8afa3 Flaky test? 2020-04-18 01:24:59 +03:00
Valentin Kipyatkov 67021d23e2 Minor 2020-04-18 01:24:58 +03:00
Valentin Kipyatkov f3b26e1c9a Correct detection of parameter index or receiver from invoke call 2020-04-18 01:24:58 +03:00
Valentin Kipyatkov 83ef8def4d Hacked SliceNullnessAnalyzerBase from IDEA to take into account SliceUsage.isLeaf() and give reasonable and stable results for Kotlin 2020-04-18 01:24:58 +03:00
Valentin Kipyatkov e4d9801388 Process only correct implicit receivers 2020-04-18 01:24:58 +03:00
Valentin Kipyatkov fdfae5260f Parameter to receiver 2020-04-18 01:24:57 +03:00
Valentin Kipyatkov 04d4f7444e Tracking of receiver for incoming lambda's for outflow analysis + better handling of invoke and operator calls 2020-04-18 01:24:57 +03:00
Valentin Kipyatkov 8f01427534 Tracking of incoming lambda's for outflow analysis 2020-04-18 01:24:57 +03:00
Valentin Kipyatkov a09a9a65ff Special handling of inline function to track values from individual calls 2020-04-18 01:24:57 +03:00
Valentin Kipyatkov 269420a0e0 Processing implicit extension receiver usages in outflow processing 2020-04-18 01:24:56 +03:00
Valentin Kipyatkov 5040d37e2f Code refactoring 2020-04-18 01:24:56 +03:00
Valentin Kipyatkov 6928700320 Moving declarations 2020-04-18 01:24:56 +03:00
Valentin Kipyatkov 52ff1c62dd Tracking of implicit receiver from enclosing lambda 2020-04-18 01:24:56 +03:00
Valentin Kipyatkov 4e88e2697c Replaced [LAMBDA OUT] in test data to [LAMBDA CALLS] which is less confusing 2020-04-18 01:24:55 +03:00
Valentin Kipyatkov 7bcd6619cf Tracking inflow of lambda receiver 2020-04-18 01:24:55 +03:00
Valentin Kipyatkov 61d4383cb9 Merged LambdaResultOutflowBehaviour and LambdaCallsBehaviour into one 2020-04-18 01:24:55 +03:00
Valentin Kipyatkov 1e39d4a63c Code refactoring + better handling of incoming data flow to java super methods 2020-04-18 01:24:55 +03:00
Valentin Kipyatkov b5b0fd62a9 Track anonymous function parameters in inbound data flow analysis as well 2020-04-18 01:24:54 +03:00