Commit Graph

2850 Commits

Author SHA1 Message Date
Jinseong Jeon ab2a2b3a87 FIR2IR: eager conversion of annotations in Library class and members 2020-06-11 10:57:51 +03:00
Jinseong Jeon fd32e918d5 FIR deserializer: signature-aware annotation loading for property accessors 2020-06-11 10:57:51 +03:00
Jinseong Jeon 2d55b8db07 FIR deserializer: build property accessors if non-default ones exist 2020-06-11 10:57:51 +03:00
Mikhail Zarechenskiy 3921a0ed70 Add test for obsolete issue
#KT-17341 Obsolete
 #KT-32958 Obsolete
2020-06-10 16:00:23 +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
Mikhail Zarechenskiy 93e9d3e57d Delay check for possibly deferred return type for reference candidate
This issue appeared after recently added new overload for flatMapTo.
 Before that, we picked candidate returning List<T> and completed
 inference, now we also check one more flatMapTo, which is here is
 incorrect and as a result we go into outer scope. Outer scope contains
 one property with deferred type, which introduced error about
 "typechecker has run into recursive problem" even it isn't applicable
 by receiver.

 So, the fix is to check receiver first and only then check return
 type of a candidate.

 #KT-39470 Fixed
2020-06-09 17:36:58 +03:00
Ilya Kirillov 30eab6c8a3 FIR IDE: Implement search of psi elements for deserialized Kotlin declarations
Fix "FIR IDE: Implement search of psi elements for deserialized Kotlin declarations"
2020-06-09 16:19:29 +03:00
Ilya Kirillov 507fc34c22 FIR: fix incorrect psi for named & spread arguments in FIR builder 2020-06-09 16:19:26 +03: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 3567880303 [FIR] Consider enum entry nested classes as local 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 5603afbd20 FirClassSubstitutionScope: handle fake override local eff. visibility 2020-06-08 12:11:33 +03:00
Mikhail Glukhikh 21498359e4 FirClassSubstitutionScope: extract 'configureAnnotationsAndParameters' 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
Yunir Salimzyanov dce19b0ace Cleanup 191 patchset logic (KTI-267) 2020-06-07 10:49:55 +03:00
Ilya Chernikov 5e33612238 Extract interface from CompilerMessageLocation to ease extension
The CompilerMessageLocation is an implicit part of the binary daemon
protocol so changing it breaks compatibility with older daemons.
This change allows to extend location for non-daemon uses without
breaking the binary protocol.
2020-06-05 21:58:27 +02:00
Ilmir Usmanov f0006f2405 Minor. Add regression test
#KT-39374 Fixed
2020-06-05 21:30:24 +02:00
simon.ogorodnik ab02381a83 [FIR] Make overriding generic callables independent of TP bounds order 2020-06-05 17:46:35 +03:00
simon.ogorodnik 2287435740 [FIR] KT-39033: Fix generic property override detection
#KT-39033 Fixed
2020-06-05 17:46:35 +03:00
Jinseong Jeon 89c87f941f FIR: consider the absence of type arguments when constructing GetClassCall type 2020-06-05 17:00:17 +03:00
Mikhail Zarechenskiy 6c5806f971 Add test for obsolete issue
#KT-38161 Obsolete
2020-06-05 16:30:08 +03:00
Mikhail Zarechenskiy fb812301b2 Add test to preserve behaviour
It's important to have ambiguity in these cases to introduce overload
 resolution by suspend-modifier without breaking changes in future

 Relates to #KT-23610
2020-06-05 14:07:08 +03:00
Mikhail Zarechenskiy bfa648972f Introduce call checker for Unit-conversions 2020-06-05 13:24:21 +03:00
Mikhail Zarechenskiy 71cbe97688 Introduce Unit-conversions for simple arguments 2020-06-05 13:24:20 +03:00
Mikhail Zarechenskiy 718f23b34f Compatibility warning for references to companion via name (KT-13934) 2020-06-05 13:24:18 +03:00
Dmitriy Novozhilov ee3beea327 [FIR] Cache files with plugin annotations 2020-06-05 10:34:01 +03:00
Dmitriy Novozhilov 1f80f35ce6 [FIR] Don't cache importing scopes while resolving plugin's annotations 2020-06-05 10:34:01 +03:00
Dmitriy Novozhilov 514cbc77fc [FIR] Add owners to FirStatusTransformerExtension.transformStatus 2020-06-05 10:34:00 +03:00