Commit Graph

57179 Commits

Author SHA1 Message Date
Ivan Cilcic 6fa7435cd4 Add additional options to DescriptorRender
1) renderContextNearLocalVariable - if true renderer add fq name for local variables after "@" symbol
2) fullContextForLocalVariable - if true then renderer add all fq names for local variables, else only last one
3) useBaseClassAsReceiver - if true then renderer uses dispatch receiver as extension receiver if the last is null
2019-08-30 11:50:27 +03:00
Ivan Cilcic 1879fd19eb Create simple renderer for old frontend
It uses DescriptorRendererImpl that isn't quite good.
2019-08-30 11:50:27 +03:00
Ivan Cilcic e69e6a1eeb Create simple text annotator based on binary search
Co-authored-by: Simon Ogorodnik <simon.ogorodnik@jetbrains.com>
2019-08-30 11:50:27 +03:00
Ivan Cilcic 77c330d94e Make a structure for frontend visualizer
Created visualizer module in compiler. It will contain basic tests for renderer. Additionally added three different modules in visualizer:
1) psi - will contain renderer for old frontend
2) fir - renderer for new frontend
3) common - will contain common code for both renderers
2019-08-30 11:50:26 +03:00
Mikhail Glukhikh e895a0b8a0 FIR resolve: integrate implicit receivers into ImplicitReceiverStack
It can work both by order & by name
2019-08-30 11:47:34 +03:00
Mikhail Glukhikh f2c77c45e9 FIR: simplify rendering of dispatch & extension receivers 2019-08-30 11:47:33 +03:00
Mikhail Glukhikh dfacc2d68f FIR builder test: remove always-false check 2019-08-30 11:47:33 +03:00
Mikhail Glukhikh e36a75250b FIR: visit/transform dispatch & extension receivers only once 2019-08-30 11:47:33 +03:00
Mikhail Glukhikh 5defe22651 FIR [MapArguments]: transform only arguments but not all children 2019-08-30 11:47:33 +03:00
Mikhail Glukhikh 8bb539ce19 FIR resolve: integrate receiverExpression inside ReceiverValue 2019-08-30 11:47:33 +03:00
Mikhail Glukhikh 0962755fde FIR2IR: drop field receiver consistency check (due to delegate field case) 2019-08-30 11:47:33 +03:00
Mikhail Glukhikh 75c4c88d0a FIR: set receivers for invoke case more precisely 2019-08-30 11:47:32 +03:00
Mikhail Glukhikh 62bb127fc9 FIR: add K/J test with getValue() / value fake cycle 2019-08-30 11:47:32 +03:00
Mikhail Glukhikh f0f4ddecc0 FIR: set dispatch receiver for field symbols 2019-08-30 11:47:32 +03:00
Mikhail Glukhikh bd5e1aeef5 FIR2IR: change backing field visibility to private 2019-08-30 11:47:32 +03:00
Mikhail Glukhikh 271c15114c FIR: add test with problematic cases 2019-08-30 11:47:32 +03:00
Mikhail Glukhikh 652fd7ee73 FIR: fix dispatch receivers for objects 2019-08-30 11:47:31 +03:00
Mikhail Glukhikh 29b406c731 FIR: set dispatch receiver for backing field access 2019-08-30 11:47:31 +03:00
Mikhail Glukhikh 13d14df8ae FIR: set dispatch receiver for data class generated functions 2019-08-30 11:47:31 +03:00
Mikhail Glukhikh 0d5cfa97a5 FIR2IR: read & set dispatch & extension receivers
NB: this commit includes receiver-based assertions yet failing for some tests
2019-08-30 11:47:31 +03:00
Mikhail Glukhikh b531e535b6 FIR call resolve: set values of dispatch & extension receivers 2019-08-30 11:47:31 +03:00
Mikhail Glukhikh 67a7243361 FIR (rename): candidateOwner -> boundSymbol 2019-08-30 11:47:31 +03:00
Mikhail Glukhikh 8633a33108 FIR: add new qualified access implementation (FirThisReceiverExpression) 2019-08-30 11:47:30 +03:00
Mikhail Glukhikh c63919f224 FIR tree: add dispatch & extension receivers 2019-08-30 11:47:30 +03:00
Mikhail Glukhikh da22898a19 FIR2IR: set 'SetField' type to Unit, convert explicit 'this' references 2019-08-30 11:47:30 +03:00
Mikhail Glukhikh 6604539154 FIR: set bound symbol for explicit this references 2019-08-30 11:47:30 +03:00
victor.petukhov aa79064a96 Remove deprecated spec tests map generators 2019-08-30 11:39:09 +03:00
Dmitriy Novozhilov e4938c6c36 [FIR] Remove status map from intersection type 2019-08-30 11:10:31 +03:00
Dmitriy Novozhilov ef4ef08b1d [FIR] Add default upper bound for java type parameters 2019-08-30 11:10:31 +03:00
Mads Ager 8ed1317839 [IR] For loop lowering for iteration over CharacterSequences.
Change-Id: I7aeadfffc80f791ec19a3607e219c1dc4de028db
2019-08-30 09:35:59 +02:00
Sergey Rostov 26fbe3f07b JPS Build: remove outdated note about updating bootstrap 2019-08-30 09:05:58 +03:00
Igor Yakovlev 63892891db Add internal move refactoring testing action
This action doing further steps in infinite loop (breaks after user request):
1) Generate random move refactoring model
2) Run this model (if it is correct)
3) Recompile the project
4) If compilation was not succeeded write model parameters into output file
5) Delete all new files and directories and make "git reset"
2019-08-29 18:23:21 +03:00
Igor Yakovlev 3951fde081 Save 'Search for references' checkbox state on move of kotlin file
Fixed #KT-24929
2019-08-29 18:16:21 +03:00
Igor Yakovlev eca2707dbf Refactor of Move Refactoring
The main purpose of this commit - to make this refactoring logic can be covered as much as possible.
To make this possible we should to extract all possible UI code from business logic (and vice versa).
Additional fixes was applied during refactoring process.

There is come major steps made in this commit:
1) Extract business logic to separate models
2) Fixes of business models logic
3) Add "Delete empty source file" checkbox instead of modal message box
4) Improve error messaging in move refactoring dialogs
5) Inject interface into move handler that makes UI dialogs could be overrided
6) Inject flag into move handler that makes UI conflicts dialog could be overrided
2019-08-29 18:16:20 +03:00
Vasily Levchenko d6c5fbace0 [IR][inliner] prevent of parameters location information loss 2019-08-29 16:53:56 +03:00
Vladimir Dolzhenko a2fcefd456 Added fallback for LightClasses getOwnFields, getOwnMethods if dummy resolve failed (KT-27243, KT-33561) 2019-08-29 15:46:57 +02:00
Ilya Kirillov 78b0d5750b New J2K: consider literal expressions in data class conversion & fix names conflict
#KT-32253 fixed
2019-08-29 11:31:55 +03:00
Ilya Kirillov 405a3beeab New J2K: move helper functions to corresponding files & use better names for tree nodes files 2019-08-29 11:31:54 +03:00
Ilya Kirillov 64ecbd1418 New J2K: use internal getStrictParentOfType instead of custom one 2019-08-29 11:31:54 +03:00
Ilya Kirillov 2f5fa49c52 New J2K: remove unused abstractions for conversions running 2019-08-29 11:31:54 +03:00
Ilya Kirillov 131df66087 New J2K: check if method reference has functional type on PsiType instead of JKType
As it may reference to uninitialized universe symbol

#KT-33434 fixed
2019-08-29 11:31:53 +03:00
Ilya Kirillov ca0cc13097 New J2K: retrieve constructor call return type correctly
#KT-33431 fixed
2019-08-29 11:31:53 +03:00
Ilya Kirillov 982e7fdd86 New J2K: do not shorten class references for some Java primitive class wrappers classes
It may cause unresolved call errors

#KT-33500 fixed
2019-08-29 11:31:53 +03:00
Steven Schäfer fd2ad89799 JVM IR: Write ACC_DEPRECATED flags 2019-08-28 19:41:12 +02:00
Steven Schäfer a90ac2438d Set correct field visibility in psi2ir 2019-08-28 19:41:11 +02:00
Mads Ager 6c7a904663 Psi2Ir: Mark accessors with no bodies as default accessors.
They are currently marked as defined even when they get a
default implementation. That makes it hard to figure out
if the accessor should be removed when introducing a backing
field in the JVM_IR backend.
2019-08-28 19:25:13 +02:00
Ilya Chernikov fda37eaaae [minor] Rearrange test utils for easier reuse 2019-08-28 17:59:12 +02:00
Ilya Chernikov 947867286c [minor] Fix potential problems with sequence, add a todo 2019-08-28 17:59:12 +02:00
Ilya Chernikov c9b25cad01 Fix classpath handling when evaluating legacy scripts from kotlinc
#KT-33554 fixed
2019-08-28 17:59:12 +02:00
Ilya Chernikov 31c56d7794 Set java.class.path property in runner and loader
#KT-24991 fixed
2019-08-28 17:59:12 +02:00