Simon Ogorodnik
efbf096879
Support ::class in html fir dump
2019-04-30 18:45:51 +03:00
Simon Ogorodnik
cb19a586f4
Fold nullability flexible types in html fir dump
2019-04-30 18:45:51 +03:00
Simon Ogorodnik
3e69838f48
FIR Java: map classes to make java type-parameters have correct bounds
...
Really, this commit implements early J2K mapping for all Java types.
It's questionable and probably wrong at least for super-types,
because, for example, we cannot resolve spliterator() in classes
derived from java.lang.Iterable
2019-04-30 18:45:51 +03:00
Simon Ogorodnik
cb91c6b977
Add abbreviated types rendering to html fir dump
2019-04-30 18:45:50 +03:00
Simon Ogorodnik
6a0e3371ae
FIR: resolve conflicts on multiple inheritance of fun with same signature
2019-04-30 18:45:50 +03:00
Simon Ogorodnik
84fbf4ec25
Partially cache scopes in FIR body resolve transformer
2019-04-30 18:45:50 +03:00
Simon Ogorodnik
861ea6a30f
Provide hashCode and equals for lookup tag based types
2019-04-30 18:45:50 +03:00
Simon Ogorodnik
ce0b482413
FIR resolve: add work-around to support enum entries
2019-04-30 18:45:50 +03:00
Simon Ogorodnik
d22eab680e
FIR: provide nested classes and objects via declared member scope
2019-04-30 18:45:50 +03:00
Simon Ogorodnik
ee73d21d32
Expand type-aliases in cone (FIR) type context
2019-04-30 18:45:49 +03:00
Simon Ogorodnik
6f9f9fc087
FIR types: relax requirements around flexible types
2019-04-30 18:45:49 +03:00
Simon Ogorodnik
0ae2f992fa
Raw FIR: provide receiver to ++, -- operators
2019-04-30 18:45:49 +03:00
Simon Ogorodnik
dc4ccf8d23
FIR resolve: make receiver completion run independent from outer call
2019-04-30 18:45:49 +03:00
Simon Ogorodnik
adb135d036
Provide title to symbol references in html fir dump
2019-04-30 18:45:49 +03:00
Simon Ogorodnik
c1a9fee7e1
Implement break, continue, init in html fir
2019-04-30 18:45:49 +03:00
Simon Ogorodnik
26119f0403
FIR: implement isDenotable on type constructor more accurately
2019-04-30 18:45:48 +03:00
Simon Ogorodnik
21d002ab6f
FIR: add function for copying type-parameters
2019-04-30 18:45:48 +03:00
Simon Ogorodnik
cec10dac85
FIR deserializer: remove cycle in annotations loading
2019-04-30 18:45:48 +03:00
Mikhail Glukhikh
e3e7eea3fe
FIR: support (partially) type annotations in JVM deserialized
2019-04-30 18:45:48 +03:00
Mikhail Glukhikh
48cd9e3251
FIR: support class annotations in JVM deserialized
2019-04-30 18:45:48 +03:00
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