Mikhail Glukhikh
687db20029
FIR: support fake overrides for properties
2019-09-05 16:26:14 +03:00
Alexander Udalov
406462d422
Regenerate FIR tree visitors and transformers
2019-09-03 16:37:53 +02:00
Dmitriy Novozhilov
9508fc60c9
[FIR] Remove FirUncheckedNotNullCastImpl from FIR
2019-09-02 10:43:09 +03:00
Dmitriy Novozhilov
fd84202c08
[FIR] Add fir node for qualified access with smartcast
2019-09-02 10:43:09 +03:00
Dmitriy Novozhilov
e72d8e675a
[FIR] Add invocation kind to anonymous functions
2019-09-02 10:43:07 +03:00
Dmitriy Novozhilov
6e0f4f140f
[FIR] Minor. Add set of type operations to FirOperation
2019-09-02 10:43:06 +03:00
Dmitriy Novozhilov
9f0781c9de
[FIR] Add references to control flow graph to FirFunction and FirProperty
...
Also add updating CFG references anfter data flow analyzer builds graph
That graph is needed for further control flow analysis
2019-09-02 10:43:06 +03:00
Dmitriy Novozhilov
56ac1201b6
[FIR] Add abstract data flow analyzer with callbacks for body resolve transformer
2019-09-02 10:43:06 +03:00
Dmitriy Novozhilov
198599f3c7
[FIR] Add builtins types to FirSession
2019-09-02 10:43:05 +03:00
Dmitriy Novozhilov
7d4c635e85
[FIR] Minor. Add util functions for checks that type is builtin
2019-09-02 10:43:05 +03:00
Mikhail Glukhikh
f2c77c45e9
FIR: simplify rendering of dispatch & extension receivers
2019-08-30 11:47:33 +03:00
Mikhail Glukhikh
e36a75250b
FIR: visit/transform dispatch & extension receivers only once
2019-08-30 11:47:33 +03:00
Mikhail Glukhikh
b531e535b6
FIR call resolve: set values of dispatch & extension receivers
2019-08-30 11:47:31 +03:00
Mikhail Glukhikh
67a7243361
FIR (rename): candidateOwner -> boundSymbol
2019-08-30 11:47:31 +03:00
Mikhail Glukhikh
8633a33108
FIR: add new qualified access implementation (FirThisReceiverExpression)
2019-08-30 11:47:30 +03:00
Mikhail Glukhikh
c63919f224
FIR tree: add dispatch & extension receivers
2019-08-30 11:47:30 +03:00
Mikhail Glukhikh
6604539154
FIR: set bound symbol for explicit this references
2019-08-30 11:47:30 +03:00
Dmitriy Novozhilov
5846db4eab
[FIR] Add symbol to FirFunction and all it's inheritors
2019-08-22 14:14:55 +03:00
Dmitriy Novozhilov
e3e1f3c2aa
[FIR] Fix transforming value parameters of anonymous functions
2019-08-22 14:14:55 +03:00
Dmitriy Novozhilov
ba7a137e74
[FIR] Add fir node for binary && and ||
2019-08-22 10:55:07 +03:00
Dmitriy Novozhilov
908b6ade1d
[FIR] Fix incorrect do-while loop transforming order and IR generating
2019-08-22 10:55:07 +03:00
Dmitriy Novozhilov
b274c7567e
[FIR] Minor. Add transformResult to FirWhenBranch
2019-08-22 10:55:07 +03:00
Dmitriy Novozhilov
a022f85776
[FIR] Minor. Add @BaseTransformedType to FirWhenBranch
2019-08-22 10:55:07 +03:00
Dmitriy Novozhilov
e48959350c
[FIR] Infer type of when expressions and try expressions like it is function call
2019-08-22 10:55:07 +03:00
Dmitriy Novozhilov
741ff958e8
[FIR] Add util function for extracting return arguments from block
2019-08-22 10:55:07 +03:00
Dmitriy Novozhilov
fe3824d796
[FIR] Introduce FirResolvable
...
FirResolvable is an interface representates fir node wit calleeReference
It will be useful for infer `try` and `when` expressions as function call
2019-08-22 10:55:07 +03:00
Dmitriy Novozhilov
e6bf3b3263
[FIR] Render nullability in type renderer, not in fir renderer
2019-08-22 10:55:07 +03:00
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