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