Mikhail Bogdanov
9c0b96af71
Report error on missed specialization in compatibility mode
...
#KT-39603 Fixed
2020-06-19 11:57:36 +02:00
Jinseong Jeon
955c7a1e5b
FIR2IR: handle deserialized class reference inside GetClassCall
2020-06-19 10:21:09 +03:00
Abduqodiri Qurbonzoda
194791a168
Introduce minByOrNull and maxByOrNull extension functions #KT-38854
2020-06-19 04:53:51 +03:00
Victor Petukhov
ece61915de
NI: clean calls in coroutine inference before the second analysis of += only for right side
...
^KT-39660 Fixed
2020-06-18 17:09:59 +03:00
Jinseong Jeon
82ef6bf96c
FIR2IR: honor user-contributed members in data class if any
2020-06-18 14:23:52 +03:00
Igor Chevdar
3634ad2d54
Added a test
2020-06-18 12:44:48 +05:00
Jinseong Jeon
9e9ca4953f
FIR2IR: coerce to Unit when "when" expr is not effectively exhaustive
2020-06-18 09:23:32 +03:00
Steven Schäfer
03651f1dd4
IR: Fix inner class type parameters in IrTypeSystemContext
2020-06-17 22:10:00 +03:00
Georgy Bronnikov
c015463926
IR: remove field fake overrides
2020-06-17 20:02:26 +03:00
Alexander Udalov
117aae8a6b
Use experimental javaType in full reflect where it's not supported yet
...
#KT-22936 Fixed
#KT-34344 Fixed
2020-06-17 18:33:08 +02:00
Victor Petukhov
447308dcfc
Revert "Revert "Revert "Completely rewrite reifiedIntTypeAnalysis, making it more streamline"""
...
This reverts commit 5567033b
2020-06-17 13:02:40 +03:00
Ilmir Usmanov
1cccceabb9
Revert "Fix merging two reference values"
...
This reverts commit 85e2392f
2020-06-17 13:02:40 +03:00
Jinseong Jeon
f64f9c2144
FIR: inherit property accessor modifiers from property and vice versa
2020-06-16 19:17:27 +03:00
Mikhail Glukhikh
ab5cb13dae
Rename: DescriptorBasedIr -> ObsoleteDescriptorBasedAPI
2020-06-16 19:17:14 +03:00
Mikhail Glukhikh
cbbb497edf
Make descriptor-based API in ir:tree more granular
2020-06-16 19:17:12 +03:00
Alexander Udalov
3154eca218
IR: use String instead of FqName in IdSignature.PublicSignature
...
FqName/FqNameUnsafe tend to eagerly compute things like
safe/parent/shortName which take a lot of space.
This change helps to lower strongly reachable memory just before codegen
in JVM IR by about 5% on a relatively big project.
2020-06-11 21:42:44 +02:00
Igor Chevdar
8b37a094fe
Added a test on possible name clash for SAM wrappers
2020-06-11 23:00:36 +05:00
Jinseong Jeon
ab2a2b3a87
FIR2IR: eager conversion of annotations in Library class and members
2020-06-11 10:57:51 +03:00
Ilmir Usmanov
85e2392fef
Fix merging two reference values
...
In this case, make the result of value type Object instead of unknown.
2020-06-09 20:52:29 +02:00
Ilmir Usmanov
5567033b33
Revert "Revert "Completely rewrite reifiedIntTypeAnalysis, making it more streamline""
...
This reverts commit 822c14814b .
2020-06-09 20:52:24 +02:00
Alexander Udalov
fc1217ba07
Generate delegates to DefaultImpls in fun interface wrappers
...
#KT-37436 Fixed
2020-06-09 11:44:31 +02:00
Alexander Udalov
2793187bda
Handle IllegalArgumentException in trimMargin intrinsics on JVM
...
#KT-38537 Fixed
2020-06-09 11:11:06 +02:00
Mikhail Glukhikh
261ed46341
IR metadata source: do not require descriptor in property metadata
2020-06-09 11:40:26 +03:00
Mikhail Glukhikh
6f0eeecc64
[FIR2IR] Fix generation of type arguments of delegated constructor calls
2020-06-09 11:40:26 +03:00
Mikhail Glukhikh
5c6f40b34a
IR metadata source: extract & use declaration name
2020-06-09 11:40:26 +03:00
Mikhail Glukhikh
b2c78e490e
[FIR2IR] Remove some descriptor-around calls
2020-06-09 11:40:25 +03:00
Mikhail Glukhikh
89e5e10657
[FIR2IR] Drop effectively unused FirMetadataSource.File.descriptors
...
NB: only FileClassLowering uses this property to check
whether facade is required, and IR-based check is enough in this lowering
2020-06-08 16:19:37 +03:00
Mikhail Glukhikh
6eab6a96cb
[FIR2IR] Support type aliases properly
2020-06-08 16:19:37 +03:00
Mikhail Glukhikh
8677d63003
[FIR2IR] Re-use FakeOverrideGenerator for external classes
2020-06-08 12:11:34 +03:00
Jinseong Jeon
ba1172b3ad
FIR2IR: distinguish substitution case when adding external fake overrides
2020-06-08 12:11:34 +03:00
Mikhail Glukhikh
538535c3b7
[FIR2IR] Introduce & use declaration-based SymbolTable.enter(leave)Scope
2020-06-08 12:11:34 +03:00
Mikhail Glukhikh
e593c7270f
[FIR2IR] Use specific symbols for enum entries
2020-06-08 12:11:34 +03:00
Mikhail Glukhikh
0770a6f848
[FIR2IR] Drop yet-unused local declaration symbols
2020-06-08 12:11:33 +03:00
Mikhail Glukhikh
8a456f578d
[FIR mangler] Handle parent type aliases properly
...
NB: Normally parent class-like must be a class,
but in expect-actual situation it may appear to be an actual type alias.
2020-06-08 12:11:33 +03:00
Mikhail Glukhikh
7bd872b264
[FIR2IR] Restore container source related logic
2020-06-08 12:11:33 +03:00
Mikhail Glukhikh
0c41fcba6a
[FIR2IR] Use signature composer only for non-local declarations
2020-06-08 12:11:32 +03:00
Mikhail Glukhikh
55b7cf0dda
[FIR2IR] Extract declareIr<SomeDeclaration>
2020-06-08 12:11:32 +03:00
Mikhail Glukhikh
6d8b0f5566
[FIR2IR] Provide correct callable ids for fake overrides
2020-06-08 12:11:32 +03:00
Mikhail Glukhikh
de2980e9e5
[FIR2IR] Use specific symbols for class declarations
2020-06-08 12:11:32 +03:00
Mikhail Glukhikh
85801ea62c
[FIR2IR] Use specific symbols for callable declarations
2020-06-08 12:11:32 +03:00
Mikhail Glukhikh
c7041c0f1a
[FIR2IR] Add signature to all symbols
2020-06-08 12:11:31 +03:00
Mikhail Glukhikh
d4cb6b68c4
[FIR2IR] Introduce own symbol implementations
2020-06-08 12:11:31 +03:00
Mikhail Glukhikh
529c73d58d
[FIR2IR] Introduce abstract bindable symbol
2020-06-08 12:11:31 +03:00
Jinseong Jeon
0d2552b0b6
FIR: record and serialize the modifier "fun" for functional interface
2020-06-08 09:42:32 +03:00
Ilmir Usmanov
f0006f2405
Minor. Add regression test
...
#KT-39374 Fixed
2020-06-05 21:30:24 +02:00
Mikhail Zarechenskiy
718f23b34f
Compatibility warning for references to companion via name (KT-13934)
2020-06-05 13:24:18 +03:00
Ilmir Usmanov
8cc5f2abfb
Forbid val field initialization inside EXACLTY_ONCE lambda
...
unless the lambda is inline. This way, final field will remain final.
2020-06-04 21:26:48 +02:00
Dmitry Petrov
202bbdf8dd
Forward compatibility hacks for Result.{success, failure}
...
Don't mangled functions annotated with @JvmName.
Annotate 'Result.success' and 'Result.failure' with @JvmName and
@Suppress("INAPPLICABLE_JVM_NAME").
NB this would require bootstrap.
2020-06-04 12:16:27 +03:00
Pavel Kirpichenkov
7fff8f82e2
Changes after review
...
- Replace leaking ModuleResolverTracker with use of ModuleDescriptor.Capabilies
- Provide API for retrieving ResolverForProject from ResolutionFacade
- Update names
2020-06-03 20:58:07 +03:00
Pavel Kirpichenkov
db1210fc67
Introduce components for library-to-source resolution in IDE
...
#KT-24309 In progress
2020-06-03 20:58:07 +03:00