Commit Graph

283 Commits

Author SHA1 Message Date
Dmitriy Novozhilov f8f2d8b9a1 [FIR] Add FirAbstractElement as base type for all fir node implementations 2019-10-17 16:20:59 +03:00
Dmitriy Novozhilov 2ec305b34e [FIR] Don't generate replace and transform in implementations with kind = Interface 2019-10-17 16:20:58 +03:00
Mikhail Glukhikh b3d8f2d677 Introduce AbstractFirUseSiteScope and store common J/K code there 2019-10-17 13:39:33 +03:00
Mikhail Glukhikh fb22a31976 JavaClassUseSiteScope is made not-provider based
Before this commit, Java use-site scope was provider based for some reason.
In fact, provider was not used in this scope anyway,
so this can be safely removed
2019-10-17 13:39:33 +03:00
Dmitriy Novozhilov cb981919f9 [FIR] Replace FIR tree with generated implementation 2019-10-10 17:53:30 +03:00
Mikhail Glukhikh 58f2348647 FIR buildJavaUseSiteScope: fix visited symbols handling 2019-10-08 16:19:55 +03:00
Mikhail Glukhikh 1e8003e9a8 Use use-site session in buildJavaUseSiteScope 2019-10-08 16:19:55 +03:00
Mikhail Glukhikh 75a3d2fb97 FirClassDeclaredMemberScope: keep cache in provider but not in ScopeSession 2019-10-08 16:19:55 +03:00
Mikhail Glukhikh dfa494a21e FIR: remove duplicate of 'wrapSubstitutionScopeIfNeed' 2019-10-08 16:19:55 +03:00
Mikhail Glukhikh 4cd8b78779 FIR: eliminate most usages of FirSession.service() and getService() 2019-10-08 16:19:54 +03:00
Mikhail Glukhikh 9801e06eac Use .firSymbolProvider instead of service, deprecate FirSession.service 2019-10-08 16:19:54 +03:00
Mikhail Glukhikh 7ba40ac963 Memoize absent function/property names in FirSuperTypeScope 2019-10-04 18:59:12 +03:00
Mikhail Glukhikh 26e8202771 FIR: add 'isInner' parameter to constructors
This is helpful because inner class constructors are resolved in a bit
different way (like non-static vs static)
2019-10-04 18:59:10 +03:00
Mikhail Glukhikh 0493432723 Remove some usages of FirBasedSymbol 2019-09-17 10:10:06 +03:00
Mikhail Glukhikh 20c45a8382 FIR general refactoring: get rid of ConeSymbols 2019-09-16 16:55:42 +03:00
Denis Zharkov 3569eaabcf Rename FirJavaElementFinder.kt.as34 to FirJavaElementFinder.kt.183 2019-09-09 10:14:19 +03:00
Denis Zharkov 8c52ff31b3 Add bunch for AS34: FirJavaElementFinder 2019-09-06 13:45:28 +03:00
Denis Zharkov 3f0887dc0c FIR: Do not try building light classes for invalid names 2019-09-06 13:45:28 +03:00
Denis Zharkov 106b6c901d FIR: Get rid of FirRegularClass::setCallbackOnSupertypesComputed 2019-09-06 13:45:28 +03:00
Denis Zharkov 122c229a8b FIR: Add possibility to run SupertypeResolverTransformer ad-hoc 2019-09-06 13:45:28 +03:00
Denis Zharkov d9d6c38c2b FIR: Introduce FirClassLikeDeclaration::supertypesComputationStatus 2019-09-06 13:44:32 +03:00
Denis Zharkov 6058f9d286 FIR: Avoid recursions while building Java enhancement scopes 2019-09-06 13:44:32 +03:00
Denis Zharkov bf610323cf Support basic light-classes basic with FIR for CLI 2019-09-06 13:44:32 +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 ef4ef08b1d [FIR] Add default upper bound for java type parameters 2019-08-30 11:10:31 +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
Mikhail Glukhikh 10e42a55c9 FIR: set PSI elements in JavaSymbolProvider / enhancement scope
Related to KT-24351
2019-07-31 13:24:20 +03:00
Mikhail Glukhikh 760fb668bb Introduce FIR resolution API with lazy resolve to use in IDE
Now lazy resolve atomic element is a file (declaration-level resolve)
or a callable declaration (expression-level resolve)

#KT-24351 In Progress
2019-07-30 16:28:17 +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
Mikhail Glukhikh 213f951da3 FIR: partial implementation of delegate resolve #KT-32217 Fixed 2019-07-25 09:46:34 +03:00
Simon Ogorodnik 3da11cc85b Use no-op substitutor instead of substitutor with empty map 2019-07-17 10:45:05 +03:00
Mikhail Glukhikh c6a09dba4e FIR: consider Java default constructors as primary ones 2019-07-11 12:40:29 +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 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
Denis Zharkov bf0781d790 FIR: Implement fast path for classes subtyping 2019-06-20 15:42:42 +03:00
Simon Ogorodnik 2995e9fcac FIR deserializer optimization: avoid calling findKotlinClass twice
This commit influences enum entries deserialization.
In particular, now we don't deserialize enum entry members,
but deserialize its supertype correctly (see test data changes).
2019-06-19 23:04:41 +03:00
Simon Ogorodnik 2c5bd46a97 [FIR] Handle non-kotlin class results from findKotlinClassOrContent 2019-06-18 11:36:42 +03:00
Simon Ogorodnik 2f53bd24dd [FIR] Reorder providers to make builtins load first 2019-06-18 11:34:18 +03:00
Simon Ogorodnik 03c3469a14 [FIR] Enhance caches in providers 2019-06-18 11:33:11 +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 df9479b607 Cache declared member scope 2019-06-10 11:03:09 +03:00
Simon Ogorodnik 146a53f18c Change lookup tags from interfaces to abstract classes 2019-06-10 11:03:09 +03:00
Denis Zharkov 91d8f1fc88 FIR: Optimize access to FirSymbolProvider via session 2019-06-10 11:03:08 +03:00
Mikhail Glukhikh 2db8409d85 FIR: introduce & resolve spread named arguments #KT-31575 Fixed 2019-05-28 10:20:42 +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