Dmitriy Novozhilov
6550bd09b1
[FIR] Ensure class resolve phase in status resolve
2020-10-21 11:53:10 +03:00
Dmitriy Novozhilov
699dd54be9
[FIR] Don't inherit some declaration modifiers (like tailrec)
2020-10-21 11:53:10 +03:00
Dmitriy Novozhilov
bf1a00c73a
[FIR] Rework resolution of declaration statuses
...
There is introduced algorithm of resolution with jumps: before
resolution of some class we resolve all status of members of its
supertypes, so we can properly determine inherited visibility
and modifiers
2020-10-21 11:53:10 +03:00
Mikhail Glukhikh
0b8116dff0
[FIR] Change some phase requirements: STATUS -> DECLARATIONS
...
NB: Also not quite sure this is better. IMO this shows more clearly that
we require results of declarations resolve and not some strange 'STATUS'
2020-10-21 11:53:10 +03:00
Mikhail Glukhikh
275260720d
Add replacePhase in FirTypeResolveTransformer.transformEnumEntry
2020-10-21 11:53:10 +03:00
Mikhail Glukhikh
c171dafd91
FIR serializer: always normalize visibility
...
Without this commit we fail on package-private or so in serializer
2020-10-21 11:53:10 +03:00
Dmitriy Novozhilov
1ff5da5f41
[FIR] Add forgotten fake override type calculation
2020-10-21 11:53:10 +03:00
pyos
5c55f67923
JVM_IR: generate shorter names for classes in delegate initializers
...
#KT-41493 Fixed
2020-10-20 21:14:44 +02:00
LepilkinaElena
b786cf7559
[IR] Made signature nullable ( #3860 )
2020-10-20 21:13:40 +03:00
Alexander Udalov
6a9c72e77c
IR: use one traversal instead of two for DeclarationContainerLoweringPass
2020-10-20 20:03:17 +02:00
Alexander Udalov
b5695188f9
IR: remove FunctionLoweringPass, refactor usages to FileLoweringPass
...
FunctionLoweringPass didn't add much value over FileLoweringPass, but
had a hidden footgun (like ClassLoweringPass) in that if your lowering
pass invoked a visitor/transformer on the function body and you forgot
to override visitFunction to stop visiting nested functions,
runOnFilePostfix would work with the complexity of the squared number of
nesting levels. It looks like this was happening with K/N's
DataClassOperatorsLowering (I haven't measured though).
2020-10-20 20:03:14 +02:00
Alexander Udalov
c110031935
IR: refactor DeclarationTransformer
...
Do not create extra DeclarationTransformer and FileLoweringPass
instances, instead inline all transformations to
DeclarationTransformer.lower.
2020-10-20 20:02:45 +02:00
Alexander Udalov
2be7afc7f9
IR: minor, give names to anonymous lowering visitors
...
To improve stacktraces and make the code a bit more readable.
2020-10-20 19:15:50 +02:00
Dmitry Petrov
3979cde738
Add box and PSI2IR tests for special cases listed in KT-35849
2020-10-20 19:31:40 +03:00
Dmitry Petrov
47c784f023
JVM_IR fix Java wildcard types translation
...
Types such as 'Collection<? extends CharSequence>' are treated as
'(kotlin.collections.MutableCollection<out kotlin.CharSequence!>
..kotlin.collections.Collection<kotlin.CharSequence!>?)'
by the front-end.
When generating generic signatures, JVM BE takes lower bound (which is
'kotlin.collections.MutableCollection<out kotlin.CharSequence!>').
Emulate this behavior in TypeTranslator.
2020-10-19 20:52:53 +03:00
Alexander Udalov
48cd86b717
Add JVM target bytecode version 15
...
#KT-41916 Fixed
2020-10-19 14:47:21 +02:00
Ilmir Usmanov
819d64a2ef
Box inline class returned from suspend lambda non-locally in JVM_IR
...
#KT-41194 Fixed
2020-10-19 14:28:39 +02:00
Ilmir Usmanov
70a4ed3ebc
Box inline class returned from suspend lambda non-locally
...
All inline classes should be boxed coming in and out of lambdas,
however, if the inline class was returned non-locally, it was not boxed.
This change fixes the issue in Old JVM BE.
#KT-41194 In progress
2020-10-19 14:28:36 +02:00
Georgy Bronnikov
b70a173595
Formatting changes
2020-10-19 12:21:13 +03:00
Georgy Bronnikov
44893e09c1
IR: remove unneeded ObsoleteDescriptorBasedAPI uses from backend.common
2020-10-19 12:21:12 +03:00
Georgy Bronnikov
a0a6a4b0f1
JVM_IR: make ObsoleteDescriptorBasedApi use explicit in all of backend.jvm
2020-10-19 12:21:12 +03:00
Georgy Bronnikov
305da8ee10
IR: IrFunctionReference.fromSymbolDescriptor
2020-10-19 12:21:12 +03:00
Georgy Bronnikov
14b3beefb3
IR: IrDelegatingConstructorCall.fromSymbolDescriptor
2020-10-19 12:21:12 +03:00
Georgy Bronnikov
b28c85f5ea
IR: IrCall.fromSymbolDescriptor
2020-10-19 12:21:12 +03:00
Georgy Bronnikov
ab3ef3a7e9
IR: remove descriptor usage
2020-10-19 12:21:12 +03:00
Georgy Bronnikov
065edac64b
IR: remove unused functions
2020-10-19 12:21:12 +03:00
Georgy Bronnikov
726282c1ee
IR: remove a descriptor usage
2020-10-19 12:21:11 +03:00
LepilkinaElena
cc4d93ac71
[IR] Eliminated expensive calculating of fqNames ( #3815 )
2020-10-16 21:07:04 +03:00
Mads Ager
0505bd958a
[JVM] Fix the nop removal optimization.
...
Never remove a nop if that would cause a line number to move
across a local lifetime boundary.
This fixes KT-42725.
2020-10-16 19:21:08 +03:00
pyos
69127445a3
JVM_IR: refine the condition for caching method nodes
...
Don't cache non-inline `suspend fun`s if there is no `$$forInline`;
do cache `invokeSuspend` if there *is* `invokeSuspend$$forInline`.
2020-10-16 18:05:04 +02:00
Roman Artemev
d7db643422
Add box test for KT-33992
2020-10-16 16:02:02 +03:00
Roman Artemev
023a62395a
Add box test for KT-36897
2020-10-16 16:02:01 +03:00
Dmitriy Novozhilov
9f5191f2a1
[FIR-IDE] Regenerate tests
2020-10-16 15:24:57 +03:00
Dmitriy Novozhilov
0e47d32587
[FIR] Properly set type of constants for java declarations
2020-10-16 15:24:57 +03:00
Dmitriy Novozhilov
5f641a2552
[FIR] Add wrapping scopes with forced calculator in checkers and fir2ir
2020-10-16 15:24:57 +03:00
Dmitriy Novozhilov
e75f218f87
[FIR] Rename FirDeclarationOrigin.FakeOverride to SubstitutionOverride
2020-10-16 15:24:57 +03:00
Dmitriy Novozhilov
739ebf772c
[FIR] Add configuring FakeOverrideTypeCalculator into ConeKotlinType.scope
2020-10-16 15:24:57 +03:00
Dmitriy Novozhilov
fc23cf76d4
[FIR] Force calculation of return type of fake overrides in return type calculator
2020-10-16 15:24:57 +03:00
Dmitriy Novozhilov
f9faa5be64
[FIR] Don't force calculation of return type in substitution scope
2020-10-16 15:24:56 +03:00
Dmitriy Novozhilov
06981fc0af
[FIR] Move functions for fake override creating to separate objects
2020-10-16 15:24:56 +03:00
Dmitriy Novozhilov
1c2fdf7e3f
[FIR] Remove scope session from FirClassSubstitutionScope constructor
2020-10-16 15:24:56 +03:00
Dmitriy Novozhilov
9e863c90fc
[FIR] Remove redundant default values for functions in FirClassSubstitutionScope
2020-10-16 15:24:56 +03:00
Dmitriy Novozhilov
e07f63d26c
[FIR] Move declaration attributes to declaration builders
2020-10-16 15:24:56 +03:00
Dmitriy Novozhilov
0b51fd03e2
[FIR] Add failing test for incorrect type calculation of implicit types
2020-10-16 15:24:56 +03:00
Dmitriy Novozhilov
23f1cc6b07
[FIR] Get rid of ReturnTypeCalculator in ScopeSession
2020-10-16 15:24:55 +03:00
Dmitriy Novozhilov
fae1b70605
[FIR] Fix type of this reference in copy funciton of data class
2020-10-16 15:24:55 +03:00
pyos
a9b53adc50
JVM_IR: make primitive == object slightly less lazy.
...
Discarding the value used to leave an unused-but-never-destroyed
temporary variable. It's best to not separate calls to `enterTemp`
and `leaveTemp`.
Not sure what kind of test to add though, since this is minor -- if the
result of the comparison is discarded, then the entire statement is more
or less pointless.
#KT-42251 Fixed
2020-10-16 12:25:55 +02:00
Pavel Kirpichenkov
04a4f9cde6
Minor: cover negative cases with test +m
...
Add case without reported diagnostic on public companion.
Only report diagnostic if @JvmStatic annotation has source in code.
KT-25114
2020-10-16 11:11:59 +03:00
Pavel Kirpichenkov
9669ab1468
Report warning on @JvmStatic in private companion objects
...
Deprecation cycle to prohibit in 1.5.
^KT-25114 In Progress
2020-10-16 11:11:59 +03:00
Pavel Kirpichenkov
d769ca06ab
Add test for KT-25114
2020-10-16 11:11:58 +03:00