Mikhail Glukhikh
f2c77c45e9
FIR: simplify rendering of dispatch & extension receivers
2019-08-30 11:47:33 +03:00
Mikhail Glukhikh
62bb127fc9
FIR: add K/J test with getValue() / value fake cycle
2019-08-30 11:47:32 +03:00
Mikhail Glukhikh
b531e535b6
FIR call resolve: set values of dispatch & extension receivers
2019-08-30 11:47:31 +03:00
Dmitriy Novozhilov
ef4ef08b1d
[FIR] Add default upper bound for java type parameters
2019-08-30 11:10:31 +03:00
Dmitriy Novozhilov
e6bf3b3263
[FIR] Render nullability in type renderer, not in fir renderer
2019-08-22 10:55:07 +03:00
Mikhail Glukhikh
2ceffa241b
FIR: make Java default constructor visibility same with class visibility
2019-07-11 12:38:53 +03:00
Mikhail Glukhikh
14bbbb5bf5
FIR: add test for synthetic property access
2019-07-11 12:37:45 +03:00
Mikhail Glukhikh
806d2d628c
FIR Java: correctly handle overridden Kotlin properties in use-site scope
2019-05-28 10:20:41 +03:00
Mikhail Glukhikh
56435fa283
FIR Java: add default constructors
2019-05-28 10:20:40 +03:00
Mikhail Glukhikh
d0404b2c2a
FIR resolve: check number of parameters when handling Java accessors
2019-05-28 10:20:38 +03:00
Mikhail Glukhikh
be18134270
FIR multi-module: minor test data fixes after resolve enhancements
2019-04-30 18:45:54 +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
73b1676a03
Raw FIR: fix unary operators (now convention calls use receivers)
2019-04-23 11:40:32 +03:00
Mikhail Glukhikh
cf72b13d84
Add accessor symbols & test for property overriding in Java
2019-04-23 11:15:24 +03:00
Mikhail Glukhikh
568e831651
FIR: make rendering of type parameters similar to original Kotlin
2019-04-10 13:31:02 +03:00
Mikhail Glukhikh
0c334163ab
FIR: add class type parameters to constructors & change their rendering
2019-04-10 13:31:01 +03:00
Mikhail Glukhikh
33729aaf9b
Raw FIR: add Any/Enum/Annotation to supertypes iff no supertypes exists
2019-04-04 10:30:44 +03:00
Mikhail Glukhikh
4187ea1f86
Raw FIR: add initializers to primary constructor properties
2019-04-04 10:30:40 +03:00
Denis Zharkov
aec5ec89e7
FIR: Support deserialization for built-in classes content
2019-03-27 17:17:59 +03:00
Denis Zharkov
f03c5e0583
FIR: Support loading built-in top-level functions
2019-03-27 17:17:59 +03:00
Mikhail Glukhikh
0546548ff3
Raw FIR: add kotlin.Any super class if no super classes are visible
2019-03-25 17:17:14 +03:00
Simon Ogorodnik
b617c40051
FIR: Update testData for fir multi-module test (rendering+body resolve)
2019-03-22 16:25:24 +03:00
Mikhail Glukhikh
e6bb920a1d
FIR Java: support Kotlin extension overriding: at last, #KT-29937 Fixed
2019-03-14 18:18:40 +03:00
Mikhail Glukhikh
d00d078b4f
FIR Java: implement "appendErasedType" thus adding predefined signatures
...
Related to KT-29937
2019-03-14 18:18:20 +03:00
Mikhail Glukhikh
f5e2cd2ac4
No override check in FirClassUseSiteScope, fix nasty substitution bug
...
This fixes MPP override test
(see mppFakeOverride in FirMultiModuleResolveTestGenerated)
2019-03-14 18:17:44 +03:00
Mikhail Glukhikh
6c12fabf74
FIR: make JavaClassEnhancementScope use-site, get rid of scope providers
...
Related to KT-29937
2019-03-14 18:09:41 +03:00
Mikhail Glukhikh
be412baf9f
FIR type enhancement: fold flexible types when it's possible
...
Related to KT-29937
2019-03-14 18:08:01 +03:00
Mikhail Glukhikh
6c8aba8039
FIR: support callable symbols in dependencies provider
...
This breaks mppFakeOverrides test because of bug in FIR fake overrides
2019-03-14 18:07:32 +03:00
Mikhail Glukhikh
fb788dc4c0
Fix null Java type argument problem & add relevant test
2019-03-14 17:56:23 +03:00
Mikhail Glukhikh
6c79b184c0
FIR Java types: add Kotlin/Java mapping & mutability enhancements
...
Related to KT-29937
2019-03-14 17:55:10 +03:00
Mikhail Glukhikh
f31faafd72
Introduce initial version of FIR Java type enhancement
...
Java type enhancement is performed by a special scope kind
Java FIR dump was added for multiplatform tests to look at enhancements
Overrides, J2K mapping, special cases does not work yet
Related to KT-29937
2019-03-14 17:51:00 +03:00
Denis Zharkov
92defc2ae3
Extract supertypes resolution into a separate FIR phase
2019-03-14 17:06:45 +03:00
Denis Zharkov
2dbe96c853
Extract ConeClassifierLookupTag (aka SearchSymbol)
...
So, for classifiers there are both Symbols and LookupTags
The difference between them is that the former are assumed to have
a reference to the actual FirDeclaration while LookupTags
effectively contain only classId and
something informative may only be obtained by FirSession
#KT-24075 Fixed
2019-03-05 18:23:17 +03:00
Mikhail Glukhikh
f8e165dbe4
Integrate nullability into cone types, add & use FIR flexible type
...
FIR fake overrides are rendered now more precisely to test this process
2019-02-19 09:54:32 +03:00
Simon Ogorodnik
3a237416c9
Implement FIR loading for Java (classes, supertypes, parameters, funs)
...
Properties aren't implemented yet
FIR symbol provider functions return more specialized types now
Related to KT-28918, KT-29636, KT-29218
#KT-28788 Fixed
2019-02-19 09:54:20 +03:00
Simon Ogorodnik
bd769f8fd7
Add multiplatform test with substitution, fix deep supertypes
...
This commit fixes ambiguity problems introduced before
in MPP tests with deep supertypes
#KT-29636 Fixed
2019-02-19 09:54:16 +03:00
Simon Ogorodnik
840750ee40
Implement basic use-site scopes and override mapping
...
This commit also introduces separate scope processors:
processFunctionsByName and processPropertiesByName, in addition to
existing processClassifiersByName
Ad-hock call resolver starts to discover ambiguities, which leads
to some ambiguity problems in MPP tests with deep supertype hierarchy
Related to KT-29636
2019-02-19 09:52:20 +03:00
Mikhail Glukhikh
6ea2abfc46
FIR override resolve: lookup also interfaces
2019-02-19 09:52:20 +03:00
Mikhail Glukhikh
b3c8e83c58
FIR: make override resolve in use-site session (and module)
...
Related to KT-24078
2019-02-19 09:52:19 +03:00
Mikhail Glukhikh
84b3a17e2b
Type resolve transformer: reorder tower scope
...
This commit prioritizes inner scopes above outer scopes
(before this commit, inner scopes had lowest priority).
NB: really it's not precise enough too,
because explicit importing scope should have higher priority
than inner scopes.
Also fixes problem with total Kotlin resolve test introduced
in previous commit.
2019-02-19 09:52:19 +03:00
Mikhail Glukhikh
bec62acf5b
FIR: introduce callable member symbols & initial member scopes
...
Initial member scopes cover top-level, class-level, and supers
Ad-hock version of call resolve was introduced to test them
NB: after this commit, total Kotlin resolve test cannot finish
because of scope problems in type resolve transformer
Related to KT-24078
#KT-24083 Fixed
2019-02-19 09:52:19 +03:00
Mikhail Glukhikh
db2fb86c8e
Raw FIR: implement expression trees & conversions from PSI
...
Testing: total kotlin test controls no stubs in FIR in non-stub-mode
#KT-29002 Fixed
2019-02-06 11:58:59 +03:00
Mikhail Glukhikh
6e369e156d
FIR: implements multi-module resolve, add tests #KT-24093 Fixed
...
This commit introduces FIR session provider, dependency provider,
library session + other infrastructure necessary for multi-module resolve
2019-01-11 09:55:40 +03:00