Mikhail Glukhikh
a9db64989b
FIR deserializer: support enum entries and their annotation usages
2019-04-30 18:45:48 +03:00
Mikhail Glukhikh
b839e50ee2
FIR: deserialize annotations (built-ins only, no enums & arrays yet)
...
Problems: enums aren't deserialized correctly; array aren't done at all;
Target annotation has no arguments in built-in for some reason.
2019-04-30 18:45:47 +03:00
Mikhail Glukhikh
092d10b1a8
FIR Java: fix creation & handling of type parameter symbols
...
Before this commit, we created type parameter symbols each time
when type parameter was referenced or created.
In this commit, we introduced class-bound Java type parameter stack
and use it to find referenced type parameter symbol.
So now they are created only when Java type parameter is created
2019-04-30 18:45:47 +03:00
Mikhail Glukhikh
f8bb1d161a
Fir Java: add type parameters to constructors and their return types
2019-04-30 18:45:47 +03:00
Mikhail Glukhikh
5bf489327d
Minor fix of around flexible and not-null FIR types (by semoro)
2019-04-30 18:45:47 +03:00
Simon Ogorodnik
c487c1443f
FIR deserializer: provide type parameters for type-aliases
2019-04-30 18:45:47 +03:00
Simon Ogorodnik
9d7d358836
FIR deserializer: support properties
2019-04-30 18:45:47 +03:00
Simon Ogorodnik
b02b090bdf
FIR inference: implement simple constraint system properly
2019-04-30 18:45:46 +03:00
Simon Ogorodnik
ddb08777d9
Link type parameters in html fir dump
2019-04-30 18:45:46 +03:00
Simon Ogorodnik
4469fec57b
Enable local functions in fir html dump
2019-04-30 18:45:46 +03:00
Mikhail Glukhikh
f9feeac5e1
Raw FIR: generate data-class component1, component2, ... functions
2019-04-30 18:45:46 +03:00
Mikhail Glukhikh
bb7dcd9945
FIR: protect importing scopes from empty names
2019-04-30 18:45:46 +03:00
Simon Ogorodnik
8324ee7272
FIR deserializer: support type-aliases
2019-04-30 18:45:45 +03:00
Simon Ogorodnik
e6ab38a583
FIR: resolve constructors via type-aliases
2019-04-30 18:45:45 +03:00
Simon Ogorodnik
aa077b42e9
FIR deserializer: provide type-parameters for constructors
2019-04-30 18:45:45 +03:00
Simon Ogorodnik
1512a6ba9a
Support FirAnonymousObject in html fir dump
2019-04-30 18:45:45 +03:00
Simon Ogorodnik
e6b9c41f3a
FIR resolve: use proper argument mapping in FlatSignature for constructor
2019-04-30 18:45:45 +03:00
Simon Ogorodnik
d89913dc8d
FIR: use type of last expression as type of branch, not type of block
2019-04-30 18:45:44 +03:00
Simon Ogorodnik
fd279860f7
FIR resolve: provide unconditional typing for block
2019-04-30 18:45:44 +03:00
Simon Ogorodnik
aa5f0fded5
FIR resolve: provide proper type for super reference
2019-04-30 18:45:44 +03:00
Simon Ogorodnik
9dcf8f836a
FIR: support varargs in resolve
2019-04-30 18:45:44 +03:00
Simon Ogorodnik
fa135bbab0
FIR resolve: properly count used arguments in overload conflict resolver
2019-04-30 18:45:44 +03:00
Mikhail Glukhikh
b4019b0cc1
FIR inference: use generic version of error type in type approximator
2019-04-30 18:45:44 +03:00
Mikhail Glukhikh
7d793f6750
FIR resolve: add handling of companions as objects
2019-04-30 18:45:43 +03:00
Mikhail Glukhikh
ab258767f8
FIR resolve: add extra test & comments to multiple receiver resolve
2019-04-30 18:45:43 +03:00
Simon Ogorodnik
d1b8ca31c0
FIR resolve: add test for firstOrNull
2019-04-30 18:45:43 +03:00
Simon Ogorodnik
a3806a6e2e
Cone (FIR) context: provide proper types instead of todo's
2019-04-30 18:45:43 +03:00
Simon Ogorodnik
dae5822986
FIR: fix nullability loss on substitution
2019-04-30 18:45:43 +03:00
Simon Ogorodnik
572c9e7115
FIR resolve: add test for map and apply
2019-04-30 18:45:42 +03:00
Simon Ogorodnik
206afde9cc
FIR inference: add constraint system from receiver
2019-04-30 18:45:42 +03:00
Simon Ogorodnik
fda777ecae
FIR: detect extension function types by reference annotation
...
Later it should be replaced by cone type annotation analysis
2019-04-30 18:45:42 +03:00
Simon Ogorodnik
3d73c28d1e
FIR: fix receiver not being substituted
2019-04-30 18:45:42 +03:00
Simon Ogorodnik
77efe8b857
FIR resolve: reorder call resolution sequence
2019-04-30 18:45:42 +03:00
Simon Ogorodnik
d82e790405
Cone (FIR) type context: implement supertype substitution properly
2019-04-30 18:45:42 +03:00
Mikhail Glukhikh
f47258c6b1
FIR: make substitution wrapper for class-based type scope
2019-04-30 18:45:41 +03:00
Mikhail Glukhikh
93496f1dee
FIR resolve: add correct receiver tower scopes + check receivers
2019-04-30 18:45:41 +03:00
Simon Ogorodnik
4b5172cda3
FIR (WIP): Initial support for proper lambda analysis
2019-04-30 18:45:41 +03:00
Simon Ogorodnik
8c67ec8c89
FIR resolve: abstract PostponedResolvedAtom & buildCurrentSubstitutor
2019-04-30 18:45:41 +03:00
Simon Ogorodnik
a0de50307a
Raw FIR: generate more trivial tree for lambdas (no explicit return)
2019-04-30 18:45:41 +03:00
Simon Ogorodnik
aaf4645cef
FIR: add return type to functional type's arguments
2019-04-30 18:45:41 +03:00
Simon Ogorodnik
a0176fbde5
Support labels in fir html dump
2019-04-30 18:45:40 +03:00
Simon Ogorodnik
541e1addf9
FIR modularized test: fix date format in report name
2019-04-30 18:45:40 +03:00
Simon Ogorodnik
82fbe4d83d
Support String concatenation and Unit expression in html fir dump
2019-04-30 18:45:40 +03:00
Simon Ogorodnik
a6b2e119f7
FIR resolve: support trivial when typing
2019-04-30 18:45:40 +03:00
Simon Ogorodnik
55467909da
FIR deserializer: optimize KotlinDeserializedJvmSymbolsProvider
2019-04-30 18:45:40 +03:00
Simon Ogorodnik
3a50d2e666
FIR: provide constructors from importing scopes
2019-04-30 18:45:40 +03:00
Simon Ogorodnik
e7ea75fd81
FIR: fix search scope to include kotlin libraries package parts
2019-04-30 18:45:39 +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
49883d1d87
Add root index to fir dump
2019-04-30 18:45:39 +03:00