Ilmir Usmanov
d861373c6d
Hack attributes for continuation of suspend function in SAM-adapter
2020-08-11 11:58:20 +02:00
Mikhail Zarechenskiy
2e131b870a
Add tests for obsolete issues
...
#KT-38804 Obsolete
#KT-38801 Obsolete
#KT-38835 Obsolete
#KT-38737 Obsolete
#KT-38664 Obsolete
#KT-38549 Obsolete
#KT-38766 Obsolete
#KT-38714 Obsolete
2020-08-11 12:34:02 +03:00
Georgy Bronnikov
7f4df19dd1
JVM_IR: reorganize throw... functions in Symbols
2020-08-11 10:54:29 +03:00
Denis Zharkov
6a16d6a246
FIR: Simplify delegating constructors call resolution
2020-08-11 10:14:02 +03:00
Denis Zharkov
8b71f5e558
FIR: Do not leave cyclic upper bounds of type parameters
2020-08-11 10:14:02 +03:00
Denis Zharkov
a5a93d00a7
FIR: Rework delegation constructor calls resolution
...
Make it work independently of being called for inner class (as in FE 1.0)
2020-08-11 10:14:02 +03:00
Denis Zharkov
db93b9052b
FIR: Fix incorrect optimization for integer literals
2020-08-11 10:14:02 +03:00
Mikhail Zarechenskiy
e49cdf0ca2
Prohibit using suspend functions as SAM in fun interfaces
...
#KT-40978 Fixed
2020-08-10 22:04:16 +03:00
Mikhael Bogdanov
607f99ed3c
Don't generate implicit overrides delegating to Java defaults
...
#KT-40920 Fixed
2020-08-10 20:03:23 +02:00
Dmitriy Novozhilov
0e53d11dd4
Disable AllowResultInReturnType feature
...
#KT-40843
2020-08-10 17:57:53 +03:00
Nick
0a2f113a24
[FIR] Fix slow string conversions in FirEffectiveVisibilityResolver
2020-08-10 13:46:15 +03:00
Pavel Kirpichenkov
f431da2a66
Reapply "Introduce @FrontendInternals annotation""
...
This reverts commit 9ca4717d11 .
^KT-39643 Fixed
2020-08-10 12:22:55 +03:00
Georgy Bronnikov
ea57b4cccb
IR: add and unmute tests
2020-08-10 10:16:24 +03:00
Georgy Bronnikov
85ba170217
JVM_IR: use IrBasedDescriptors across codegen
2020-08-10 10:16:23 +03:00
Georgy Bronnikov
0b4c43083d
IR: add IrBasedDescriptors
2020-08-10 10:16:23 +03:00
Georgy Bronnikov
dafcdc527d
IR: propagate original declaration info via attributeOwnerId
...
For IrProperty, IrSimpleFunction we need to pass information about
original declaration to JVM_IR codegen. Instead of descriptors, use
the attributeOwnerId field.
2020-08-10 10:16:23 +03:00
Georgy Bronnikov
04d93dfbce
IR: move containerSource from descriptor to IrFunction, IrProperty
2020-08-10 10:16:23 +03:00
Nick
4669e019d1
[FIR] Add diagnostic CONFLICTING_OVERLOADS & REDECLARATION
2020-08-10 10:09:37 +03:00
Ilya Kirillov
f62204fff1
FIR: move getCallableNames/getClassifierNames from scope to FirContainingNamesAwareScope
2020-08-09 12:04:52 +03:00
Ilya Kirillov
b41a5f9f34
FIR: make TypeRegistry thread safe
2020-08-09 12:04:26 +03:00
Ilya Kirillov
5f424ed1ec
FIR IDE: rewrite low level API
...
- Cache ModuleResolveState for module till the world changes
- Resolve every file under a lock
- All creation of raw fir files and resolve of them happens in FirFileBuilder
- Lazy resolve of fir elements happens in FirElementBuilder
Caching works like the following:
- FirModuleResolveState holds PsiToFirCache & DiagnosticsCollector & FileCacheForModuleProvider
- FileCacheForModuleProvider holds a mapping from ModuleInfo to ModuleFileCache
- ModuleFileCache caches
- KtFile -> FirFile mapping
- ClassId -> FirClassLikeDeclaration, CallableId -> FirCallableSymbol
which used in corresponding FirProvider
- mapping from declaration to it's file
which used in corresponding FirProvider
- locks for fir file resolving
- PsiToFirCache provides mapping from KtElement to FirElement
- DiagnosticsCollector collects diagnostics for file and caches them
2020-08-09 12:04:11 +03:00
Ilya Kirillov
34aa848b15
FIR: do not allow getting PSI text in RawFirBuilder in stub mode
2020-08-09 12:04:03 +03:00
Ilya Kirillov
0870ded054
FIR IDE: introduce KtFirArrayAccessReference
2020-08-09 12:03:47 +03:00
Ilya Kirillov
d10e3f91fa
FIR IDE: store FirScope strong references only in KtFirAnalysisSession
2020-08-09 12:03:33 +03:00
Ilya Kirillov
dee58e1d86
FIR IDE: handle importing scopes in completion in HL API
...
Co-authored-by: Roman Golyshev <roman.golyshev@jetbrains.com >
2020-08-09 12:02:11 +03:00
Roman Golyshev
2eb439899e
Use index to get symbols from importing scopes
2020-08-09 12:01:25 +03:00
Dmitriy Novozhilov
cefecdef25
fixup! Iterate on symbols, not on scopes
2020-08-09 12:01:23 +03:00
Roman Golyshev
ffb907150a
Use information about receivers in completion
...
- Found few problems during resolving a single functon; disabled
assertions and marked them with TODO
- Add simple completion tests to simplify development
2020-08-09 12:01:00 +03:00
Roman Golyshev
0f5fc1fa99
Add FirSymbolProvider::getAllCallableNamesInPackage function
...
- Also, fix implementation of `getCallableNames` in few cases
2020-08-09 12:00:59 +03:00
Denis Zharkov
97d4918ed3
Expose local scopes to use in completion
2020-08-09 12:00:52 +03:00
Roman Golyshev
6129f4bcef
Partial raw FIR building
2020-08-09 12:00:45 +03:00
Ilya Kirillov
1d92fbaa7f
FIR IDE: correctly set symbol origin for fake overridden ones
2020-08-09 12:00:24 +03:00
Ilya Kirillov
88548d988a
FIR IDE: implement getCallableNames/getClassifierNames in more scopes
2020-08-09 12:00:18 +03:00
Dmitriy Novozhilov
6596dc359b
fixup! Completion with FIR (prototype, work-in-progress)
2020-08-09 12:00:04 +03:00
Ilya Kirillov
d62500531b
FIR: add getClassifierNames for FirScope
2020-08-09 11:59:57 +03:00
Roman Golyshev
656086f90a
Add FirScope::getCallableNames function
2020-08-09 11:59:50 +03:00
Mikhail Zarechenskiy
0c13a7f89a
Fix accessibility check for experimental declarations from default scope
...
#KT-40919 Fixed
2020-08-07 17:49:15 +03:00
Ilmir Usmanov
b403b63f48
Ease field initialization check
...
Since there is already VAL_REASSIGNMENT diagnostics, we can safely only
for direct assignments.
#KT-40893 Fixed
2020-08-07 14:22:18 +02:00
Nick
6c0abe7e48
[FIR] Fix CliTestGenerated$Jvm.testFirError
2020-08-07 13:27:29 +03:00
Pavel Kirpichenkov
9ca4717d11
Revert "Introduce @FrontendInternals annotation"
...
Revert due to Mobile IDE Trunk IJ TC configuration
This reverts commits:
ffc3d8bdfc
c0e713980b
^KT-39643 In Progress
2020-08-07 12:10:03 +03:00
Mads Ager
7f2efabe6a
[JVM_IR]: Improve stepping for when.
...
Additionally, use the line number of the class for default interface
dispatch methods.
2020-08-07 09:16:01 +02:00
Steven Schäfer
ca6e430e89
JVM IR: Handle nested classes in DelegatedPropertyOptimizer
2020-08-06 21:01:59 +02:00
Steven Schäfer
da9bff40f0
JVM IR: Don't remove stores to visible locals in DelegatedPropertyOptimizer
2020-08-06 21:01:59 +02:00
Alexander Udalov
e4cd7cdbcf
IR: remove unused code, cleanup
2020-08-06 17:08:04 +02:00
Alexander Udalov
b30b2e0179
IR: minor, render duplicate IR node in checker
2020-08-06 17:08:04 +02:00
Alexander Udalov
8db1c3611b
IR: introduce abstract class IrDeclarationBase
...
The main purpose of this class is to improve performance of IR visitors
and transformers. `IrElementVisitor.visitDeclaration` now takes
IrDeclarationBase as a parameter, and therefore the call to `accept`
there is now a virtual class call, instead of an interface call.
2020-08-06 17:08:04 +02:00
Alexander Udalov
771e7574f4
IR: make subtypes of IrDeclaration classes
2020-08-06 17:08:03 +02:00
Alexander Udalov
3cecf81176
IR: transform base classes of lazy IR to interfaces
2020-08-06 17:08:02 +02:00
Alexander Udalov
b02653a524
IR: remove base classes IrDeclarationBase and IrFunctionBase
...
They introduce a diamond class hierarchy which prevents IR element
hierarchy from being transformed to classes.
2020-08-06 16:46:26 +02:00
Alexander Udalov
9152df4702
PIR: transform base implementation classes to interfaces
...
Unfortunately this requires a lot of boilerplate, but is a requirement
for transforming the main IR element hierarchy interfaces
(IrDeclaration, IrClass, ...) to classes.
2020-08-06 16:46:26 +02:00