Dmitriy Novozhilov
317e3edba8
[FIR] Add default upper bound to type parameter in fir deserializer
2019-08-22 10:55:07 +03:00
Ilya Chernikov
315a9d66a0
Refactor more tasks to lazy API
2019-08-21 20:20:08 +02:00
Dmitriy Novozhilov
c3ea0a1e5b
[FIR] Add forgotten visit of annotation for FirAbstractLoop
2019-08-08 15:47:24 +03:00
Mikhail Glukhikh
0c4134bef4
Remove FirResolvePhase from FirElement hierarchy
2019-07-31 12:55:36 +03:00
Mikhail Glukhikh
c3a31dcdf5
Optimize FirSession component storage
2019-07-30 16:28:17 +03:00
Mikhail Glukhikh
7529d557fe
FIR resolution: introduce FirResolvePhase & FirAbstractPhaseTransformer
...
The phase determines which transformers were already applied to declaration.
The transformer controls current resolve phase in phasedFir and
performs additional resolve if necessary.
2019-07-30 16:28:17 +03:00
Mikhail Glukhikh
a38b4756b5
FIR tree refactoring: move FirElement.session to FirDeclaration
...
#KT-30275 Fixed
2019-07-30 16:28:16 +03:00
Dmitriy Novozhilov
43e7f54fae
[FIR] Add string representation for ConeKotlinType
...
`ConeKotlinType.render` moved from `tree` module to `types` module
2019-07-30 16:28:15 +03:00
Dmitriy Novozhilov
6c26fc1943
[FIR] Don't render Any? upper bounds of type parameters
2019-07-30 16:28:14 +03:00
Dmitriy Novozhilov
d3670d4f5f
[FIR] Add Any? as default bound for all type parameters
2019-07-30 16:28:14 +03:00
Dmitriy Novozhilov
8a21785883
[FIR] Add Any? builtin typeref
2019-07-30 16:28:14 +03:00
Mikhail Glukhikh
d32e5065c5
FIR: implementation of delegateProvider in delegate resolve
2019-07-25 09:46:42 +03:00
Mikhail Glukhikh
213f951da3
FIR: partial implementation of delegate resolve #KT-32217 Fixed
2019-07-25 09:46:34 +03:00
Nikolay Krasko
c14f842aa0
Fix dependency between idea core environment and jdom
2019-07-17 23:50:32 +03:00
Mikhail Glukhikh
592cf4f4e8
Make FirNamedReferenceWithCandidate not resolved, fix receiver completion
...
Counting it as resolved provokes a lot of difficult to discover errors
2019-07-17 10:45:06 +03:00
Mikhail Glukhikh
c35d7eab70
Refactor FIR symbols to make them and their FIR element types more clear
...
This commit also fixes work with Java synthetic properties
2019-07-11 12:37:32 +03:00
Mikhail Glukhikh
046c82ab60
FIR: remove unused utility function
2019-06-24 18:51:13 +03:00
Simon Ogorodnik
0e60af95bf
Optimization: make every FIR node extend FirPureAbstractElement
2019-06-24 18:51:12 +03:00
Mikhail Glukhikh
ac730a693a
FIR: don't count implicit built-in type as a kind of implicit type
...
Before this commit, implicit Unit type for function with body and
without type, implicit Boolean type for conditions etc. were 'implicit'
types and resolved types together.
Sometimes this could lead to hard-to-find issues in FIR resolve, because
'implicit' types are usually handled there as 'necessary to resolve'
which is wrong for such effectively-resolved types.
2019-06-24 10:13:26 +03:00
Denis Zharkov
bf0781d790
FIR: Implement fast path for classes subtyping
2019-06-20 15:42:42 +03:00
Mikhail Glukhikh
c8003518a5
FIR: set super type reference properly
2019-06-20 15:26:40 +03:00
Mikhail Glukhikh
65d14ff097
FIR: do not try to calculate annotation call type
...
Annotation type is used instead
2019-06-20 15:26:40 +03:00
Mikhail Glukhikh
16ead49967
FIR: implement backing field references via 'field' synthetic variable
2019-06-20 15:26:39 +03:00
Mikhail Glukhikh
b3c21d6e14
Optimize FirClassSymbol.hashCode()
2019-06-19 22:54:14 +03:00
Mikhail Glukhikh
688c2cf74f
Optimization: make FIR expression an abstract class
...
NB: this commit does significant fir:tree refactoring.
It provides some boost due to faster abstract class dispatching in JVM.
2019-06-19 22:52:44 +03:00
Mikhail Glukhikh
f6f879302f
Optimization: make FirFunctionCall an abstract class
2019-06-19 22:52:13 +03:00
Mikhail Glukhikh
d85ad650d5
Optimization: make FirWrappedArgumentExpression an abstract class
2019-06-19 22:52:04 +03:00
Mikhail Glukhikh
b71de954ff
Forbid manipulations with FirWrappedArgumentExpression type reference
...
The type of this expression is bound to the type of wrapped expression,
so it's better not to change it directly.
2019-06-19 22:51:26 +03:00
Simon Ogorodnik
95409b35ca
[FIR] Use abstract classes for FIR scopes
2019-06-18 11:14:56 +03:00
Simon Ogorodnik
810fa9c171
[FIR] Make session & symbolProvider abstract classes
2019-06-18 11:14:55 +03:00
Simon Ogorodnik
5a06027c53
[FIR] Avoid instanceof List in transformInplace
2019-06-18 11:14:54 +03:00
Vyacheslav Gerasimov
5a39c637c2
Build: Fix intellij dependency leak from ir tree module
2019-06-13 21:03:55 +03:00
Mikhail Glukhikh
309708f433
Do not visit FirBlock type twice
2019-06-10 11:03:10 +03:00
Simon Ogorodnik
146a53f18c
Change lookup tags from interfaces to abstract classes
2019-06-10 11:03:09 +03:00
Mikhail Glukhikh
a10deb5f69
Remove classId from FirClassSymbol equals / hashCode
2019-06-10 11:03:09 +03:00
Mikhail Glukhikh
2db8409d85
FIR: introduce & resolve spread named arguments #KT-31575 Fixed
2019-05-28 10:20:42 +03:00
Mikhail Glukhikh
5c96fa0844
Raw FIR: set enum entry types to kotlin.Enum to avoid their resolve
2019-05-28 10:17:23 +03:00
Mikhail Glukhikh
6589fbbfbb
Raw FIR: set val setter to null instead of default one
2019-05-28 10:17:22 +03:00
Simon Ogorodnik
cef108a5ae
FIR: implement qualifier resolver
2019-05-28 10:17:05 +03:00
Mikhail Glukhikh
f3960c9482
Preliminary implementation of parts & facade in FIR-based compiler
2019-05-23 14:02:11 +03:00
Simon Ogorodnik
6c313895df
[FIR] Do not enhance java fields to firProperty
2019-05-23 14:02:09 +03:00
Simon Ogorodnik
aa96837758
[FIR] Introduce unchecked not-null cast as internal operation for !!, ?:
2019-05-23 14:02:08 +03:00
Simon Ogorodnik
77817cb750
Raw FIR: copy class type-parameters into constructors properly
2019-04-30 18:45:54 +03:00
Simon Ogorodnik
9cef9e4056
Remove isMarkedNullable from FirResolvedTypeRef
2019-04-30 18:45:54 +03:00
Simon Ogorodnik
dc4ccf8d23
FIR resolve: make receiver completion run independent from outer call
2019-04-30 18:45:49 +03:00
Mikhail Glukhikh
7d793f6750
FIR resolve: add handling of companions as objects
2019-04-30 18:45:43 +03:00
Simon Ogorodnik
4cb8faf666
FIR: uniquify scopes to avoid ambiguity on diamond inheritance
2019-04-30 18:45:39 +03:00
Simon Ogorodnik
8d4cbd84e3
FIR resolve: support synthetics discrimination
2019-04-30 18:45:39 +03:00
Simon Ogorodnik
32e941cb53
FIR: keep names for error references
2019-04-30 18:45:38 +03:00
Mikhail Glukhikh
8b718c6822
FIR body resolve: support subject type calculation
2019-04-30 18:45:38 +03:00