Dmitriy Novozhilov
cb0b25ea39
[FIR] Replace Deprecated with PrivateForInline in ScopeSession
2020-08-21 15:27:54 +03:00
Dmitriy Novozhilov
b4dc7955b4
[FIR] Avoid collections copying in FirSymbolProvider
2020-08-21 15:27:53 +03:00
Dmitriy Novozhilov
ce36ae64a1
[FIR] Deprecate questionable methods of FirSymbolProvider
2020-08-21 15:27:53 +03:00
Dmitriy Novozhilov
d5bb87cd1f
[FIR] Replace inheritance with delegation for FirProvider and FirSymbolProvider
2020-08-21 15:27:53 +03:00
Dmitriy Novozhilov
ad9e41b828
[FIR] Mark JavaSymbolProvider.getJavaTopLevelClasses as @TestOnly
2020-08-21 15:27:53 +03:00
Dmitriy Novozhilov
1d26ce4a4e
[FIR] Get rid of useless methods in FirSymbolProvider
2020-08-21 15:27:53 +03:00
Denis Zharkov
cee72023fa
Remove TypeSystemContext::mayBeTypeVariable optimization
...
It doesn't work now since anyway it's required to obtain type
constructor
At the same time, now it's not very expensive to obtain the constructor
since it's just a lookup tag
2020-08-21 12:50:33 +03:00
Denis Zharkov
9ac5dd2bce
FIR: Use lookup tags for as type constructors instead of symbols
...
It may help to avoid redundant symbols lookups
2020-08-21 12:50:33 +03:00
Mikhail Glukhikh
85c1505689
[FIR2IR] Copy type parameters for trivial fake overrides
2020-08-20 16:04:02 +03:00
Alexander Udalov
549ee84687
Fix some compiler warnings in FIR modules
2020-08-20 14:57:54 +02:00
Mikhail Zarechenskiy
ced151f3af
Add test for KT-41254
...
It was fixed along with #KT-41005
2020-08-20 15:45:32 +03:00
Mikhail Glukhikh
02e5f140f4
Fir2IrLazyProperty: generate overridden symbols via FirTypeScope
2020-08-20 11:47:35 +03:00
Mikhail Glukhikh
25efad2fd7
[FIR2IR] Extract generateOverriddenAccessorSymbols
2020-08-20 11:47:35 +03:00
Denis Zharkov
7f3f0faa1a
FIR: Rework overridden members processing in FirTypeScope
...
Now, FirTypeScope returns only direct overridden and a base scope
where a client might look for deeper overridden
It's necessary to make the API fast and simple
when only direct overridden are needed
At the same time, while this API looks a bit complicated for most of the clients
there are simple extension helpers that obtain just the direct or all overridden
2020-08-20 11:18:59 +03:00
Ilya Kirillov
9e0bb4ce8e
FIR: save resolvePhase of declaration when creating it fake override copy
2020-08-20 11:07:09 +03:00
Ilya Kirillov
b1d3ab04c2
FIR [IDE]: provide correct node phase when necessary
2020-08-20 09:48:33 +03:00
Mikhail Zarechenskiy
6ed13ef1b6
Fix unresolved reference to catch parameter from lambda expression
...
#KT-41140 Fixed
2020-08-19 12:52:16 +03:00
Mikhail Zarechenskiy
f2fba8a469
Fix delegated property resolve when provideDelegate has this as argument
...
#KT-41135 Fixed
2020-08-19 12:52:16 +03:00
Mikhail Glukhikh
f7cb165fb9
Introduce Fir2IrBuiltIns & move extension function type inside
2020-08-18 21:54:05 +03:00
Simon Ogorodnik
97b10b5ab3
[FIR2IR] Hack-in setting of extension function type annotation
2020-08-18 21:53:55 +03:00
Mikhail Glukhikh
b1c36feef4
Minor: regenerate FIR diagnostic tests
2020-08-18 21:53:35 +03:00
Jinseong Jeon
7e22de1e24
FIR2IR: insert coerce-to-unit expressions in statement containers
2020-08-18 21:53:08 +03:00
pyos
1b3ab53e16
FIR2IR: set superQualifierSymbol for setters too
2020-08-18 21:53:08 +03:00
Jinseong Jeon
e9659d9c8a
FIR2IR: make the scope of body of do-while loop transparent
2020-08-18 21:53:07 +03:00
Jinseong Jeon
1b6c4329d2
FIR2IR: handle unbound reference with adapted arguments
2020-08-18 21:53:07 +03:00
vldf
a26eeb6ee8
[FIR] Add CLI flag for running extended checkers
2020-08-18 21:53:07 +03:00
vldf
2bf1d3fee8
[FIR] Add messages for extended checkers' warnings
2020-08-18 21:53:06 +03:00
Simon Ogorodnik
38477be484
[FIR] Make test fail if profiling requested, but misconfigured
2020-08-18 16:21:48 +03:00
Simon Ogorodnik
15d4333e81
[FIR] Add per-pass profiling support to modularized test
2020-08-18 16:21:48 +03:00
Simon Ogorodnik
83ded9badf
[FIR] Add pass argument to beforePass of modularized test
2020-08-18 16:21:48 +03:00
Alexander Udalov
9b94e073af
Fix warnings related to OptIn/UseExperimental
2020-08-17 21:18:19 +02:00
Alexander Udalov
c3cbcf6d7f
Slightly improve performance measurements rendering
...
Report the input module name and size once before any measurements
instead of duplicating it in all of them. Also, render measurements in a
table to improve readability.
Before:
info: PERF: INIT: Compiler initialized in 467 ms
info: PERF: ANALYZE: 1 files (2 lines) target main-java-production in 277 ms - 7.220 loc/s
info: PERF: IR: Translation 1 files (2 lines) target main-java-production in 291 ms - 6.873 loc/s
info: PERF: GENERATE: 1 files (2 lines) target main-java-production in 513 ms - 3.899 loc/s
info: PERF: IR: Generation 1 files (2 lines) target main-java-production in 142 ms - 14.085 loc/s
After:
info: PERF: main-java-production, 1 files (2 lines)
info: PERF: INIT: Compiler initialized in 421 ms
info: PERF: ANALYZE 342 ms 5.848 loc/s
info: PERF: IR TRANSLATION 296 ms 6.757 loc/s
info: PERF: GENERATE 453 ms 4.415 loc/s
info: PERF: IR GENERATION 137 ms 14.599 loc/s
2020-08-17 19:29:57 +02:00
Ilya Kirillov
b8920114f8
FIR: set resolvePhase to BODY_RESOLVE in deserialized Kotlin declarations
2020-08-17 20:05:52 +03:00
Simon Ogorodnik
c7d6a79c25
FIR IDE: Fix completion in case of function with parameters
2020-08-17 20:05:52 +03:00
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