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