Commit Graph

64379 Commits

Author SHA1 Message Date
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
Valentin Kipyatkov f0d4d7bb86 Added correctness check of test data + fixed huge amount of incorrect code in test data 2020-04-18 01:24:54 +03:00
Valentin Kipyatkov c19a16f1e0 Track lambda parameters in inbound data flow analysis 2020-04-18 01:24:54 +03:00
Valentin Kipyatkov 799b2d7291 Refactoring: abstraction of idea with "lambdaLevel" in slices 2020-04-18 01:24:54 +03:00
Valentin Kipyatkov 03e894f75d Use partial body resolve 2020-04-18 01:24:53 +03:00
Valentin Kipyatkov 86c98b0d62 Refactoring 2020-04-18 01:24:53 +03:00
Valentin Kipyatkov b4b58d1d99 Handling implicit receivers in InflowSlicer 2020-04-18 01:24:53 +03:00
Valentin Kipyatkov 90188ef44f Data flow to/from here: supported expected/actual declarations and extension receivers 2020-04-18 01:24:52 +03:00
Valentin Kipyatkov bfa3fb0589 Do not check scope for super declaration 2020-04-18 01:24:52 +03:00