Steven Schäfer
3a7cc93c4e
JVM IR: More precise check for calls to the implementation method in a default stub
2020-09-24 07:53:31 +02:00
Steven Schäfer
648bc9b1c4
JVM IR: Check for cycles when inlining into default stubs
2020-09-24 07:53:31 +02:00
Steven Schäfer
111c550f3c
JVM IR: More tests for inlining in $default stubs
2020-09-24 07:53:31 +02:00
Steven Schäfer
5e27d9b089
JVM IR: Make inlining in $default stubs compatible with the JVM BE
...
The JVM BE inlines calls to the underlying function in a $default stub
verbatim, e.g., without renaming LVT entries or regenerating anonymous
objects. This commit introduces the same behavior in the JVM IR BE.
Fixes KT-36769.
2020-09-24 07:53:31 +02:00
Steven Schäfer
bef0437edb
JVM IR: Generate LVT entries for parameters in inline $default methods
2020-09-24 07:53:31 +02:00
Ilya Kirillov
347a984ce0
FIR IDE: fix tests compilation
2020-09-23 21:43:58 +03:00
Ilya Kirillov
f36cd28696
FIR IDE: introduce withFir function
2020-09-23 21:43:58 +03:00
Ilya Kirillov
a516264923
FIR IDE: introduce withFirDeclaration function
2020-09-23 21:43:57 +03:00
Ilya Kirillov
ebc2ea59cd
FIR IDE: introduce WeakFirRef for low level
2020-09-23 21:43:57 +03:00
Ilya Kirillov
8ee4c4e047
FIR IDE: introduce scoped fir functions
2020-09-23 21:43:57 +03:00
Ilya Kirillov
e19d2ecc73
FIR IDE: make FirModuleResolveState functions to be internal
2020-09-23 21:43:57 +03:00
Ilya Kirillov
8e41384f6d
FIR IDE: separate LowLevelFirApiFacade from completion
2020-09-23 21:43:56 +03:00
Ilya Kirillov
7cc714c598
FIR IDE: move all public low level api to separate package
2020-09-23 21:43:56 +03:00
Ilya Kirillov
a0337ec10d
FIR: fix invalid increasing inner array size in ArrayMapImpl
2020-09-23 21:43:56 +03:00
Ilya Kirillov
4238fd3842
FIR IDE: fix compilation after rename registerJavaSpecificComponents -> registerJavaSpecificResolveComponents
2020-09-23 21:43:55 +03:00
Ilya Kirillov
65ef629ca7
FIR: add ensureResolved to processConstructors
2020-09-23 21:43:55 +03:00
Ilya Kirillov
a570be4e76
FIR IDE: fix compilation of AbstractFirIdeDiagnosticsCollector.kt
2020-09-23 21:43:55 +03:00
Ilya Kirillov
fa570710ee
FIR IDE: move diagnostic highlighting to separate
...
pass
2020-09-23 21:41:54 +03:00
Ilya Kirillov
1f4aff9643
FIR: add ensureResolved to FirSealedClassInheritorsTransformer
2020-09-23 21:41:53 +03:00
Ilya Kirillov
1c0bbaf225
FIR: add ensureResolved to FirExposedVisibilityDeclarationChecker
2020-09-23 21:41:53 +03:00
Ilya Kirillov
04fca93b1e
FIR IDE: fix completion on parenthesized expression
2020-09-23 21:41:52 +03:00
Ilya Kirillov
879cf3b049
FIR IDE: do not fail whole completion on exception in lookup element creation
2020-09-23 21:41:52 +03:00
Ilya Kirillov
e9fb79741a
FIR IDE: fix completion in initializer
2020-09-23 21:41:51 +03:00
Roman Golyshev
1ab6595ae2
FIR Completion: Use name filtering in completion contributor
2020-09-23 21:41:51 +03:00
Roman Golyshev
75d8710bf6
FIR IDE: Add name filtering to scope KtScope and implementations
2020-09-23 21:41:50 +03:00
Roman Golyshev
dc600e3caf
FIR IDE: Fix buildKtType for ConeDefinitelyNotNullType
2020-09-23 21:41:49 +03:00
Ilya Kirillov
74298aae32
FIR IDE: invalidate sessions on exception
2020-09-23 21:41:48 +03:00
Ilya Kirillov
a743b80d17
FIR IDE: reuse up-to-date fir sessions
2020-09-23 21:41:47 +03:00
Ilya Kirillov
22c2d34b14
FIR IDE: add debug info when can not build KtType
2020-09-23 21:41:46 +03:00
Ilya Kirillov
a52262bf97
FIR IDE: run completion resolve under lock
2020-09-23 21:41:45 +03:00
Ilya Kirillov
f1c808384e
FIR IDE: do not resolve symbols by transitive module dependencies
2020-09-23 21:41:44 +03:00
Ilya Kirillov
01875635db
FIR IDE: do not resolve whole firFile in completion
2020-09-23 21:41:44 +03:00
Ilya Kirillov
2cfbfabe04
FIR IDE: do not recreate transformer phases & ScopeSession
2020-09-23 21:41:42 +03:00
Ilya Kirillov
9a99703f24
FIR IDE: implement incremental function analysis
2020-09-23 21:41:41 +03:00
Ilya Kirillov
8bcba00bb7
FIR IDE: do not resolve declarations if they are already resolved when we are inside lock
2020-09-23 21:41:40 +03:00
Ilya Kirillov
fc64d8d5e8
FIR IDE: reanalyse dependent modules only then they change
2020-09-23 21:41:40 +03:00
Ilya Kirillov
07be30c5db
FIR IDE: separate fir session for current module from dependent modules session
2020-09-23 21:41:39 +03:00
Ilya Kirillov
ab897752de
FIR IDE: remove invalid comments from FirIdeSessionFactory
2020-09-23 21:41:39 +03:00
Ilya Kirillov
4045c8fbf4
FIR IDE: fix invalid order of classes in classIdIfNonLocal
2020-09-23 21:41:38 +03:00
Ilya Kirillov
766063ba77
FIR IDE: optimize search for FirDeclaration by KtDeclaration
2020-09-23 21:41:37 +03:00
Ilya Kirillov
36e57545e8
FIR IDE: simplify psiModificationTrackerBasedCachedValue
2020-09-23 21:41:36 +03:00
Ilya Kirillov
73451b1616
FIR IDE: reresolve libraries only when they change
2020-09-23 21:41:35 +03:00
Ilya Kirillov
c48cc615dd
FIR IDE: use KtAnalysisSession as receiver
2020-09-23 21:41:35 +03:00
Ilya Kirillov
d4786e06a9
FIR IDE: ignore PCE when running lazy resolve phase
2020-09-23 21:41:34 +03:00
Ilya Kirillov
9130392eb9
FIR IDE: resolve symbol to status to get it modality
2020-09-23 21:41:34 +03:00
Ilya Kirillov
0c47d42659
FIR IDE: add failing multiModuleLazyResolve test
2020-09-23 21:41:33 +03:00
Ilya Kirillov
a3a59131b5
FIR IDE: fix passing whenWithHeiarchy test
2020-09-23 21:41:32 +03:00
Roman Golyshev
6d0a5a0bb2
KT-41346 Implement NoReorderImplementation without reordering
...
- See the documentation for `DeserializedMemberScopeHelper` for the full
info about the fix and the issue
- Add `preserveDeclarationsOrdering` setting to
`DeserializationConfiguration`
- Enable this setting in `DeserializerForClassfileDecompiler`
- Also, use `List` instead of `Collection` to pass members to
`DeserializedMemberScope`. It is done to emphasize that the order of
the members is important and may be used
- Review: https://jetbrains.team/p/kt/review/1627
- ^KT-41346 Fixed
2020-09-23 15:27:51 +00:00
Roman Golyshev
bf371ff98a
KT-41346 Refactor computeNonDeclared*
...
Change the signature of the `computeNonDeclared*` methods so they expect
mutable lists - it better suits their contracts. Also, add a little
documentations about the contract
Also, change `Collection` to `List` for incoming protos to `emphasize`
that their order might be used
2020-09-23 15:27:50 +00:00
Roman Golyshev
b1097c49d3
KT-41346 Move Implementation to DeserializedMemberScope
2020-09-23 15:27:49 +00:00