Commit Graph

972 Commits

Author SHA1 Message Date
Dmitriy Novozhilov 615d3aafef [FIR] Automatically generated abstract classes instead of interfaces if possible 2019-10-18 16:45:14 +03:00
Dmitriy Novozhilov cfa9950c22 [FIR] Fix building CFG and resolving when expression without branches 2019-10-17 16:20:59 +03:00
Dmitriy Novozhilov f8f2d8b9a1 [FIR] Add FirAbstractElement as base type for all fir node implementations 2019-10-17 16:20:59 +03:00
Dmitriy Novozhilov f19a878948 [FIR] Add exhaustive checker for when expressions
Also remove generating default else branch introduced in 38fa0122 and 54eb4cf9
2019-10-17 16:20:59 +03:00
Dmitriy Novozhilov 25e853606e [FIR] Add deserialization of inheritors of sealed classes 2019-10-17 16:20:59 +03:00
Dmitriy Novozhilov 3dc49ab1d4 [FIR] Add resolve phase for resolving inheritors of sealed classes 2019-10-17 16:20:59 +03:00
Dmitriy Novozhilov 59fd47bfd0 [FIR] Add special node for sealed classes 2019-10-17 16:20:59 +03:00
Dmitriy Novozhilov d0089c6747 [FIR] Add flag that enables fir dump in modularized test 2019-10-17 16:20:58 +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
Dmitriy Novozhilov f86f582922 [FIR] Automatically make field mutable if it has replace function 2019-10-17 16:20:58 +03:00
Dmitriy Novozhilov 89fc17da41 [FIR] Allow generate boolean fields with replace 2019-10-17 16:20:58 +03:00
Dmitriy Novozhilov 2c2a1cdfe8 [FIR] Fix smartcasts in when expressions with this subject
Also get rid of excess `getOrCreateRealVariable` function.
2019-10-17 16:20:58 +03:00
Mikhael Bogdanov c78dbaf6b3 Initializer default values in 'tailrec' method in proper order
#KT-31540 Fixed
2019-10-17 13:06:36 +02: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
Mikhail Glukhikh 79c0a69219 Add new FIR tests related to KT-31508 problems, replace failing MM testJava...Signature 2019-10-17 13:39:32 +03:00
Mikhael Bogdanov adae629258 Report diagnostic on virtual tailrec function
#KT-18541 Fixed
2019-10-16 13:02:31 +02:00
Mikhail Glukhikh 88bc6b992f Move .gitattributes for generated files from fir:resolve to fir:tree 2019-10-14 11:12:19 +03:00
Dmitriy Novozhilov 29cda7cb24 [FIR] Always use LF line endings in generated fir tree 2019-10-11 10:27:23 +03:00
Dmitriy Novozhilov 8e4e7c4a11 [FIR] Configure IC for fir tree generation task 2019-10-11 10:27:23 +03:00
Dmitriy Novozhilov dc1874af3c [FIR] Add empty line at the end of generated fir tree files 2019-10-10 20:45:21 +03:00
Dmitriy Novozhilov 0c27b863b0 [FIR] Add Readme for tree generator 2019-10-10 17:53:31 +03:00
Dmitriy Novozhilov b8a8a5575b [FIR] Move default visitors from separate sourceset 2019-10-10 17:53:30 +03:00
Dmitriy Novozhilov a8192dba90 [FIR] Remove old visitor generator and configure gradle task for tree generator 2019-10-10 17:53:30 +03:00
Dmitriy Novozhilov cb981919f9 [FIR] Replace FIR tree with generated implementation 2019-10-10 17:53:30 +03:00
Dmitriy Novozhilov d6d4b3329b [FIR] Add FIR tree generator 2019-10-10 17:53:29 +03:00
Mads Ager 92cf521e11 [IR] Deal with forward references in default argument lambdas.
Rely on the frontend weeding out cases that are not supported.

In psi2ir, introduce all the parameters before processing default
values.

Change the DefaultArgumentStubGenerator to generate code that
matches the behavior of the current backend.
2019-10-10 09:00:51 +02:00
Mikhail Glukhikh 07e067102b FIR body resolve: use one scope session per module
Gives significant (~5%) performance boost mainly due to use-site scope caching
2019-10-08 17:59:44 +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 69905ab325 Derive FirClassDeclaredMemberScopeProvider from FirSessionComponent 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 a0ed03a121 FIR: apply overload conflict resolver even for variable (due to receivers) 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 708d914224 FIR: don't recreate tower resolver / conflict resolver / call completer 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 3fee1445b9 Set more precise type in FirQualifiedNameResolver 2019-10-08 16:19:54 +03:00
Mikhail Glukhikh f7d12efc24 Memoize absent classifier names in FIR star importing scopes 2019-10-04 19:05:15 +03:00
Mikhail Glukhikh 6d8aa69878 FIR: rename CallResolver to FirTowerResolver 2019-10-04 19:02:52 +03:00
Mikhail Glukhikh 16de3257d5 FIR abstract importing scope: return NONE when we have no top-level callables 2019-10-04 18:59:12 +03:00
Mikhail Glukhikh 7ba40ac963 Memoize absent function/property names in FirSuperTypeScope 2019-10-04 18:59:12 +03:00
Mikhail Glukhikh 840ecf1a77 Don't enter twice top-level scopes w/out particular name in FIR tower resolver 2019-10-04 18:59:11 +03:00
Mikhail Glukhikh e276e8d9f3 Don't enter twice local scopes w/out particular name in FIR tower resolver 2019-10-04 18:59:11 +03:00
Mikhail Glukhikh e48428d39d FIR ScopeSession: use HashMap instead of LinkedHashMap 2019-10-04 18:59:11 +03:00
Mikhail Glukhikh 813e35643c FIR resolve: fix constructor handling in qualifier scope
Constructors aren't more visited twice in regular scopes
2019-10-04 18:59:10 +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
Pavel Kirpichenkov b7e5d9faae Update annotation rendering in diagnostics
Disable annotation rendering in default type and descriptor renderers.
Preserve annotations in Android and Serialization plugins.
Update error texts in ide tests.
Nullability annotations in Java descriptors are rendered with context-dependent renderer.

#KT-20258 Fixed
2019-10-04 11:18:45 +03:00
Mikhail Glukhikh 7e87357ed0 FIR2IR: fix top-level parent settings thus fixing Cli.testFirHello 2019-10-03 11:47:22 +03:00
Denis Zharkov e54d2c7c32 Support named arguments in their own position
^KT-7745 In Proggress
2019-10-02 11:13:15 +03:00