Mikhail Glukhikh
b4cec3fb5d
FIR: introduce BodyResolveContext.forEnumEntry
2021-03-17 12:13:22 +03:00
Mikhail Glukhikh
2db413d535
FIR: enhance (using mode inside) BodyResolveContext.withAnonymousFunction
2021-03-17 12:13:21 +03:00
Mikhail Glukhikh
798d848a91
FirReturnsImpliesAnalyzer: find receiver/variable of accessor properly
2021-03-17 12:13:21 +03:00
Mikhail Glukhikh
a345b81f2a
Use BodyResolveContext.with* functions in FirContractResolveTransformer
2021-03-17 12:13:21 +03:00
Mikhail Glukhikh
4d519f646e
FIR: extract BodyResolveContext.withAnonymousInitializer, withParameter
2021-03-17 12:13:21 +03:00
Mikhail Glukhikh
4235075f35
FIR: extract BodyResolveContext.withAnonymousFunction
2021-03-17 12:13:21 +03:00
Mikhail Glukhikh
d7b2ab6b99
FIR: extract BodyResolveContext.withConstructor in variations
2021-03-17 12:13:21 +03:00
Mikhail Glukhikh
bd2cdf2ec9
FIR: extract BodyResolveContext.withField
2021-03-17 12:13:21 +03:00
Mikhail Glukhikh
64353f34e9
FIR: extract BodyResolveContext.withProperty
2021-03-17 12:13:20 +03:00
Mikhail Glukhikh
06b3a0d57b
FIR: extract BodyResolveContext.withSimpleFunction
2021-03-17 12:13:20 +03:00
Mikhail Glukhikh
db2b6e92e5
FIR: extract BodyResolveContext.withAnonymousObject
2021-03-17 12:13:20 +03:00
Mikhail Glukhikh
e5325e70fc
FIR: extract BodyResolveContext.withRegularClass
2021-03-17 12:13:20 +03:00
Mikhail Glukhikh
4cff6d93be
Get rid of containingClass storage in FirDeclarationsResolveTransformer
2021-03-17 12:13:20 +03:00
Mikhail Glukhikh
91607044d0
FIR: extract BodyResolveContext.withFile
2021-03-17 12:13:20 +03:00
Ilmir Usmanov
a90a5f6dd4
Check for backend when checking for suspend in fun interfaces
2021-03-16 22:37:44 +01:00
Steven Schäfer
bf2942b5cc
JVM IR: Add Object.clone to JvmSymbols
...
The `clone` function is not available in the builtin classes created
from fir.
2021-03-16 21:30:18 +01:00
Steven Schäfer
99a4779c6b
JVM IR: Don't produce line numbers in synthetic Enum members
2021-03-16 21:30:18 +01:00
Steven Schäfer
5be00cfa04
JVM IR: Don't use null checks in Enum.valueOf
2021-03-16 21:30:18 +01:00
Steven Schäfer
bea1a8c422
JVM IR: Use Object.clone in Enum.values
2021-03-16 21:30:18 +01:00
Ilmir Usmanov
e47715f52b
Minor. Add tests with returning inline class from SAM adapter
2021-03-16 20:57:05 +01:00
Mikhail Glukhikh
0e8f8362da
FIR checkers: use isNullableType() instead of isSubtypeOfAny()
2021-03-16 21:56:11 +03:00
Mikhail Glukhikh
599a0d9c2b
Minor fixes in FirTypeParameterInQualifiedAccessChecker
2021-03-16 21:56:10 +03:00
Mikhail Glukhikh
0b9598d880
Minor fixes around FirKClassWithIncorrectTypeArgumentChecker
2021-03-16 21:56:10 +03:00
Jinseong Jeon
4c08d10cce
FIR checker: report expression of nullable type parameter as LHS of class literals
2021-03-16 21:56:10 +03:00
Jinseong Jeon
7fff4108b6
FIR checker: report KClass with incorrect type argument
2021-03-16 21:56:10 +03:00
Jinseong Jeon
bc2228d434
FIR checker: don't report errors on type parameter as LHS of class literals
...
If a type paramter is not reified or nullable, different errors will
be reported by FirGetClassCallChecker.
When determining whether type parameter wrapped in qualified access is a
standalone expression or not, we examine whether the checker context has
other qualified accesses in stack. Class literals (::class) is desugared
to FirGetClassCall, and thus not stacked as qualified access. Since
class literals are a special type of callable reference (a subtype of
qualified access), we should keep track of FirGetClassCall in a similar
way.
2021-03-16 21:56:09 +03:00
Jinseong Jeon
e29b40b07f
FIR checker: report TYPE_PARAMETER_AS_REIFIED
2021-03-16 21:56:09 +03:00
Jinseong Jeon
5ba5b63dee
FIR checker: report nullable expression as LHS of class literals
2021-03-16 21:56:09 +03:00
Jinseong Jeon
33c5b49632
FIR checker: report non-typed LHS of callable references
2021-03-16 21:56:08 +03:00
scaventz
329be4f906
Add a test to for the situation where pathname of destination does not name a parent.
2021-03-16 18:44:12 +01:00
Georgy Bronnikov
bff6e9b972
IR: document lock priority.
2021-03-16 19:49:31 +03:00
Georgy Bronnikov
60f38369f1
JVM_IR: synchronize binary class reloading
2021-03-16 19:49:30 +03:00
Georgy Bronnikov
42279c3b5b
IR: introduce IrLock
...
Use a single lock object for synchronization to avoid deadlocks.
2021-03-16 19:49:30 +03:00
Georgy Bronnikov
215556511e
JVM_IR: synchronization in InlineCodegen
2021-03-16 19:49:30 +03:00
Georgy Bronnikov
be67dacef1
JVM_IR: synchronized getOrPut for SLRUMap
2021-03-16 19:49:30 +03:00
Georgy Bronnikov
78d62dcb1e
JVM_IR: use ConcurrentHashMap in codegen where appropriate
2021-03-16 19:49:30 +03:00
Georgy Bronnikov
c36bc9f312
JVM_IR: use synchronized map in ClassFileFactory
2021-03-16 19:49:30 +03:00
Georgy Bronnikov
3a10ea4f88
JVM_IR: synchronize code generation for inline functions
2021-03-16 19:49:29 +03:00
Georgy Bronnikov
c7feaee8ae
IR: make copying optional in performByIrFile
...
For codegen phases, input files are readonly data. There is no need to
copy them.
2021-03-16 19:49:29 +03:00
Georgy Bronnikov
1383c31caf
JVM_IR: use threadLocal in GlobalInlineContext
2021-03-16 19:49:29 +03:00
Georgy Bronnikov
fe4d33dcb1
JVM_IR: make codegen a phase
2021-03-16 19:49:29 +03:00
Dmitry Petrov
decfaa3ba5
JVM_IR KT-44993 preserve inner expression type when fusing if-null
2021-03-16 15:30:45 +03:00
Jinseong Jeon
922419efb8
FIR CFG: route to exit of try main for throw in try main
...
to make the remaining part of try main marked as dead.
^KT-45475 Fixed
2021-03-16 15:11:56 +03:00
Jinseong Jeon
7a7114f896
FIR CFG: create TryMainBlockExitNode before visiting try main block
...
so that a node that returns Nothing inside try main block can route to
the exit of try main block, instead of exit target for try directly.
2021-03-16 15:11:55 +03:00
Jinseong Jeon
7e5b562b33
Reproduce KT-45475: no smartcast after conditional throw in try expression
2021-03-16 15:11:53 +03:00
Dmitriy Novozhilov
cef859fced
Fix exponential pseudocode size on incorrect prefix increments and decrements
...
#KT-44153 Fixed
2021-03-16 12:25:23 +03:00
Denis.Zharkov
6c5557dae3
FIR2IR: Optimize computation of fake overrides in lazy classes
2021-03-16 09:28:52 +03:00
Denis.Zharkov
fbed88d32d
FIR2IR: Do not unwrap fake override when computing overridden
2021-03-16 09:28:52 +03:00
Denis.Zharkov
74ecae7f6d
IR: Optimize IrSimpleFunction::collectRealOverrides
2021-03-16 09:28:52 +03:00
Denis.Zharkov
1a36ee2110
IR: Postpone computing real fake overrides at SyntheticAccessorLowering
2021-03-16 09:28:52 +03:00