Igor Chevdar
e468a347b5
[box-tests] Tests on field init optimization
...
Added tests on all primitive types and a test when the field's type is an inline class
2020-08-15 12:16:33 +05:00
Steven Schäfer
0328fcaf5d
JVM IR: Avoid IMPLICIT_NOTNULL checks on special bridge methods
...
...with dynamic type checks, except for the `@PlatformDependent`
methods, for which the JVM backend adds null checks.
2020-08-14 21:59:33 +02:00
Steven Schäfer
9026f89ba5
JVM IR: Avoid CHECKCASTs on type operators (KT-39520)
...
The type information coming from Java or Kotlin generics may be wrong
due to type erasure and a CHECKCAST instruction could throw an
exception.
2020-08-14 21:58:47 +02:00
Denis Zharkov
5ede37d6ab
Report warnings on safe call + nullable extension operator
...
^KT-41034 In Progress
2020-08-14 11:12:34 +03:00
Mikhail Zarechenskiy
aafe41cf7a
Do not force coercion to Unit for nullable lambda return type
...
#KT-41005 Fixed
2020-08-13 10:40:51 +03:00
Georgy Bronnikov
18ae665d41
IR: make IrCall take IrSimpleFunctionSymbol
2020-08-12 16:31:31 +03:00
Nick
28700ed64c
[FIR] Supertype and inheritance checkers group
2020-08-12 15:38:29 +03:00
Oleg Ivanov
252eb1ad23
[FIR] Fix typo in FirDataFlowAnalyzer
2020-08-12 15:00:54 +03:00
Oleg Ivanov
21b8679799
[FIR] Add ReturnsImplies effect analyzer
2020-08-12 11:06:07 +03:00
Oleg Ivanov
3454ae7ca4
[FIR] Add VariableStorage and flow on nodes into CFG reference
2020-08-12 11:06:07 +03:00
Oleg Ivanov
15598b62c9
[FIR] Add replaceControlFlowGraphReference function for FirFunction
2020-08-12 11:06:07 +03:00
Oleg Ivanov
7da94cc299
[FIR] Fix wrong ConstantReference for returnsNotNull in EffectExtractor
2020-08-12 11:06:07 +03:00
Georgy Bronnikov
d2fda2a07c
Fir2Ir: bug fix
2020-08-12 00:31:33 +03:00
Ilmir Usmanov
00bf07fc41
Force boxing kotlin.Result return type of suspend functions
...
#KT-40843 Fixed
2020-08-11 22:10:47 +02:00
Oleg Ivanov
4367d6631f
[FIR] Add CallsInPlace contract analyzer
2020-08-11 16:17:01 +03:00
Oleg Ivanov
cc9c5b9e3c
[FIR] Add CFG nodes, add multiple subGraphs for CFGOwner
2020-08-11 16:17:01 +03:00
Oleg Ivanov
128075e780
[FIR] Add fir source saving in resolved contract description
2020-08-11 16:17:01 +03:00
Oleg Ivanov
f467dccc68
[FIR] Rename confusing variable in CFGTraverser
2020-08-11 16:17:00 +03:00
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
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
Mikhael Bogdanov
607f99ed3c
Don't generate implicit overrides delegating to Java defaults
...
#KT-40920 Fixed
2020-08-10 20:03:23 +02:00
Nick
0a2f113a24
[FIR] Fix slow string conversions in FirEffectiveVisibilityResolver
2020-08-10 13:46:15 +03:00
Georgy Bronnikov
ea57b4cccb
IR: add and unmute tests
2020-08-10 10:16:24 +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
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