1682 Commits

Author SHA1 Message Date
Denis Zharkov c3e900b945 FIR: Make replace function accepting parameter with nullability as-is 2020-02-04 16:24:01 +03:00
Mikhail Glukhikh 4f8d0382f7 Get rid of FirControlFlowGraphOwner 2020-02-04 15:00:11 +03:00
Mikhail Glukhikh f28144ff9c Minor FirRenderer code cleanup 2020-02-04 15:00:10 +03:00
Mikhail Glukhikh e977c1c076 Get rid of name in FirConstructor 2020-02-04 15:00:10 +03:00
Mikhail Glukhikh f20845ba40 Get rid of FirMemberFunction 2020-02-04 15:00:09 +03:00
Mikhail Glukhikh 677129ad20 Get rid of FirNamedDeclaration 2020-02-04 15:00:08 +03:00
Mikhail Glukhikh aeb6f35571 Support nullable callable references in FIR resolve 2020-02-03 16:45:19 +03:00
Mikhail Glukhikh a584589665 Support nullable callable references in raw FIR 2020-02-03 16:45:19 +03:00
Juan Chen 188abc243a [FIR] add vararg arguments support, improve vararg parameters support 2020-01-31 16:41:25 +03:00
Dmitriy Novozhilov f9a4b8f9cb [FIR] Split printer in tree generator to several files
Also use smart printer instead of `PrintWriter`
2020-01-30 14:38:02 +03:00
Dmitriy Novozhilov 075068155b [FIR] Delay configuration of nodes in tree generator 2020-01-30 14:38:02 +03:00
Denis Zharkov c6c773f6f9 FIR: Mark all dependencies' declarations as fully resolved 2020-01-28 17:03:50 +03:00
Denis Zharkov 1cb18a73db FIR: Get rid of old FirImplicitTypeBodyResolveTransformerAdapter 2020-01-28 17:03:50 +03:00
Denis Zharkov 6e8d67b96f FIR: Simplify contract in FirScopeProvider::getUseSiteMemberScope 2020-01-28 17:03:50 +03:00
Denis Zharkov c295f2dc25 FIR: Reimplement implicit types calculator
Make it works through a single component tracking computation status
instead of storing it in the nodes
2020-01-28 17:03:50 +03:00
Dmitriy Novozhilov a882cd98ea [FIR] Drop duplicate edges in fir tree graph 2020-01-28 14:14:20 +03:00
Dmitriy Novozhilov 985b61f925 [FIR] Drop ARRAY_CLASS_NAME and use name from StandardClassIds instead 2020-01-28 14:14:20 +03:00
Mikhail Glukhikh 71d8b41bef [FIR] Remove unused utilities 2020-01-27 00:34:17 +03:00
Mikhail Glukhikh dc4f332c08 [FIR] Implement early calculation of "not SAM" flag for classes 2020-01-27 00:34:17 +03:00
Mikhail Glukhikh 279adae3e4 [FIR] Implement primitive tower for type resolving 2020-01-27 00:34:17 +03:00
Mikhail Glukhikh 14204a842a Refactoring & clarification: implement new FIR tower resolver 2020-01-27 00:34:16 +03:00
simon.ogorodnik a3ab763f0b [FIR] Get rid of processors in FirScope 2020-01-27 00:34:16 +03:00
Dmitriy Novozhilov 3dfad4f0c3 [FIR] Fix generating properties for varargs in primary constructors 2020-01-24 10:57:52 +03:00
Mikhail Glukhikh 7bcd3c4c13 [FIR] Introduce & use FirScopeProvider.getStaticMemberScopeForCallables 2020-01-15 16:52:13 +03:00
Mikhail Glukhikh 97670e5036 [Raw FIR] Fix PSI consistency test (enum entry) + some cleanup 2020-01-10 10:23:51 +03:00
simon.ogorodnik 65a44e2e20 Migrate to FirEnumEntry 2020-01-10 10:23:50 +03:00
simon.ogorodnik 5b5a5292b7 Support FirEnumEntry in FirRenderer 2020-01-10 10:23:50 +03:00
simon.ogorodnik c6e28537ff Create node for FirEnumEntry 2020-01-10 10:23:50 +03:00
Simon Ogorodnik 13132e69a3 [FIR] Start enum entries reworking 2020-01-10 10:23:50 +03:00
Alexander Udalov d73e6c855b Regenerate FIR tree 2020-01-02 10:59:24 +01:00
Simon Ogorodnik 1715f1a864 [FIR] Refactoring: create use-site scopes via scope provider 2019-12-30 12:52:58 +03:00
Mikhail Glukhikh 5f08fe88a5 [FIR] Move ScopeSession to fir:tree 2019-12-30 12:52:53 +03:00
Mikhail Glukhikh 3544bf17f4 ConeIntegerLiteralType: extract COMPARABLE_TAG 2019-12-17 17:28:17 +03:00
Mikhail Glukhikh 684bdc44bb FIR: add implementation of reified type parameter references
This adds support of T::class.java for reified type parameters
2019-12-17 17:28:01 +03:00
Mikhail Glukhikh 37839a181c Introduce FirIdeModuleDependenciesSymbolProvider #KT-35424 In Progress
This solves problems with inter-module dependencies, at least in small projects.
However, Kotlin project still does not see stdlib.
Also, we often have problems with untouched types during expected type checks
(FirUserTypeRef instead of FirResolvedTypeRef)
2019-12-17 10:41:24 +03:00
Dmitriy Novozhilov 4faa2c0c2c [FIR] Replace static cone types for integers with default classIds in ILT 2019-12-12 16:11:47 +03:00
Mark Punzalan f031b47363 [FIR] Fix issue with multiple smartcasts of this. 2019-12-11 16:57:41 +03:00
Mark Punzalan 692a83f7bb [FIR] Add FirCheckNotNullCall converted to CHECK_NOT_NULL intrinsic
function call.
2019-12-11 16:54:15 +03:00
Dmitriy Novozhilov b76c984b26 [FIR] Support IntegerLiteralTypes 2019-12-09 17:24:26 +03:00
Dmitriy Novozhilov 5577f0f8cb [TMP] Make context in inference components universal 2019-12-09 15:28:24 +03:00
Mikhail Glukhikh 9782ec1b1e FIR resolve phases: set BODY_RESOLVE phased properly
Before this commit, we never set this phase to declaration or file
2019-12-05 18:02:03 +03:00
Mikhail Glukhikh 8808c775a4 Introduce FirResolvedTypeRef.delegatedTypeRef to see children types in IDE
This is needed to have access to resolved children types (e.g. type arguments) from IDE
2019-12-05 18:02:02 +03:00
Dmitriy Novozhilov 38c1a50c1d [FIR] Resolve delegating constructor calls 2019-12-05 17:47:15 +03:00
Mikhail Glukhikh a6f8859a49 FIR Java: generate accessors only in override Kotlin case, make them non-synthetic 2019-11-29 18:11:27 +03:00
Mikhail Glukhikh d15dae6ac6 FIR: use SyntheticPropertySymbol & synthetic scope instead of FirAccessorSymbol
Before this commit, we used FirAccessorSymbol to emulate synthetic properties.
These symbols were generated in Java use-site scope.
Now, we use synthetic scope instead which is above MemberScopeTowerLevel.
This is more performance-friendly and does not require override matching.
However, accessor symbols should be used in situation when Java accessor
overrides Kotlin property which is broken in this commit
(that's why MapEntry test is corrupted here).
Also, we should not create synthetics for pure Kotlin accessors
(that's why javaAccessorConversion test is corrupted here).
2019-11-29 18:11:25 +03:00
Mikhail Glukhikh f1eb0dff1f FIR: disable synthetic scope, make accessor symbols synthetic
Before this commit, we had two methods to do generally the same synthetic thing.
It's an attempt to keep only one of them.
Accessor symbols are generated in Java use-site member scopes,
at this place we know better whether we are in Java class or not.
However, we have to do this at every use-site level, which is relatively slow.
Also we could encounter problems when accessor function is overridden in Kotlin,
and accessor symbol can still contain reference to Java accessor.
2019-11-29 18:09:07 +03:00
Simon Ogorodnik e5f60253f7 [FIR] Improve path usages in generator, provide default output 2019-11-29 18:04:48 +03:00
Simon Ogorodnik 5eb5d8e515 [FIR] Separate generated tree files from non-generated sources 2019-11-29 18:04:47 +03:00
Denis Zharkov 3b7ad066fc FIR: Substitute type alias constructors properly 2019-11-27 11:20:52 +03:00
Denis Zharkov f659dc0bea FIR: Add synthetic values/valueOf methods to Java classes 2019-11-27 11:20:52 +03:00