Mikhail Glukhikh
dc4f332c08
[FIR] Implement early calculation of "not SAM" flag for classes
2020-01-27 00:34:17 +03:00
simon.ogorodnik
a3ab763f0b
[FIR] Get rid of processors in FirScope
2020-01-27 00:34:16 +03:00
Mikhail Glukhikh
94ec22762a
Rename: FirLibrarySymbolProviderImpl -> FirBuiltinSymbolProvider
2020-01-23 12:32:41 +03:00
Alexander Udalov
c3d5a88e52
Add -Xno-use-ir to compiler modules where JVM IR currently fails
...
This option has no effect on the production code. But in a custom
scenario of a local bootstrap, where the compiler is replaced with the
one where JVM IR backend is enabled by default, this option allows to
switch back to the old backend.
All of these arguments (except the one for compiling experimental
coroutines) are supposed to go away as soon as we fix related problems
in the JVM IR backend.
2020-01-16 12:21:47 +01:00
Mikhail Glukhikh
7bcd3c4c13
[FIR] Introduce & use FirScopeProvider.getStaticMemberScopeForCallables
2020-01-15 16:52:13 +03:00
Mikhail Glukhikh
1756857237
Rename: FirMemberScopeProvider -> FirDeclaredMemberScopeProvider
2020-01-13 13:26:19 +03:00
simon.ogorodnik
65a44e2e20
Migrate to FirEnumEntry
2020-01-10 10:23:50 +03:00
Simon Ogorodnik
13132e69a3
[FIR] Start enum entries reworking
2020-01-10 10:23:50 +03:00
Simon Ogorodnik
1715f1a864
[FIR] Refactoring: create use-site scopes via scope provider
2019-12-30 12:52:58 +03:00
Michael Kuzmin
254dc8f71c
Build: Drop IntelliJ 2018.3 and Android Studio 3.4 support
...
Delete *.183 and *.as34 bunch-files
2019-12-19 18:31:07 +03:00
Simon Ogorodnik
a3d531e8b4
[FIR] Extract jvm-only call conflict resolver
2019-12-19 17:34:56 +03:00
Simon Ogorodnik
05308a3652
[FIR] Introduce module for all jvm extensions
2019-12-19 17:30:12 +03:00
Mikhail Glukhikh
cb93b25fca
FIR: make possible to use differently typed IDs in ScopeSession
2019-12-19 17:16:14 +03:00
Mikhail Glukhikh
7abb3fc987
Protect FirJavaElementFinder from light tree
2019-12-19 11:19:01 +03:00
Mikhail Glukhikh
37839a181c
Introduce FirIdeModuleDependenciesSymbolProvider #KT-35424 In Progress
...
This solves problems with inter-module dependencies, at least in small projects.
However, Kotlin project still does not see stdlib.
Also, we often have problems with untouched types during expected type checks
(FirUserTypeRef instead of FirResolvedTypeRef)
2019-12-17 10:41:24 +03:00
Simon Ogorodnik
0a2c457f54
[FIR] Properly check typealias fqn matching
2019-12-16 21:21:07 +03:00
Simon Ogorodnik
d0c58be4e9
[FIR] Pass proper use-site session in deserialized provider
2019-12-16 21:21:06 +03:00
Simon Ogorodnik
85ff834fdb
[FIR] Do not create Kotlin scopes for handledByJava classes
2019-12-16 21:21:06 +03:00
Mikhail Glukhikh
737eaebee6
FIR resolve: fold flexible types whenever possible #KT-31528 Fixed
2019-12-16 12:06:10 +03:00
Mikhail Glukhikh
001af68495
FIR: distinguish lazy/non-lazy nested scopes more clear
2019-12-16 10:50:52 +03:00
Mikhail Glukhikh
fea224749b
FIR: introduce symbolProvider.getNestedClassifierScope to choose lazy/non-lazy
...
For some reason this breaks two old FE based tests with member type aliases.
It's not very interesting because member aliases aren't supported.
2019-12-16 10:50:52 +03:00
Mikhail Glukhikh
663d545d79
FIR: get rid of symbolProvider.getClassDeclaredMemberScope at all
2019-12-16 10:50:52 +03:00
Mikhail Glukhikh
af87a183c2
FIR: get rid of symbolProvider.getClassDeclaredMemberScope usages in compiler
2019-12-16 10:50:52 +03:00
Mikhail Glukhikh
f497231acd
FIR: try to use JavaSymbolProvider directly in lazy nested classifier scope
2019-12-16 10:50:52 +03:00
Denis Zharkov
e89c777fc6
FIR: Create DefinitelyNotNull only for annotated types
2019-12-10 14:21:21 +03:00
Mikhail Glukhikh
7d62e3ce56
FIR: fix hasTopLevelClassOf optimization in deserialized provider
...
Before this commit, we answered 'no top level class' if Java class finder
could not calculate known class names. However, it's incorrect,
because this situation means 'don't actually know'.
To precise semantics, function name was also inverted
2019-12-10 12:58:39 +03:00
Mikhail Glukhikh
e07b85ff34
FIR Java providers: insert some protection against ProcessCanceledException
2019-12-10 12:57:57 +03:00
Dmitriy Novozhilov
b76c984b26
[FIR] Support IntegerLiteralTypes
2019-12-09 17:24:26 +03:00
Dmitriy Novozhilov
5577f0f8cb
[TMP] Make context in inference components universal
2019-12-09 15:28:24 +03:00
Mikhail Glukhikh
c1789a0ecc
FIR IDE: synchronous creation/registration of sessions
2019-12-05 18:02:04 +03:00
Denis Zharkov
43aa1f87df
FIR: Optimize supertypes scope structure
2019-12-05 17:35:33 +03:00
Denis Zharkov
91fce215d2
FIR: Simplify super type scopes related code
...
- Get rid of unnecessary subclass
- Use more abstract type where possible
2019-12-05 17:35:33 +03:00
Mikhail Glukhikh
a6f8859a49
FIR Java: generate accessors only in override Kotlin case, make them non-synthetic
2019-11-29 18:11:27 +03:00
Mikhail Glukhikh
5275b4d0fc
Move possibleGetterNamesByPropertyName to FirSyntheticPropertiesScope
2019-11-29 18:11:26 +03:00
Mikhail Glukhikh
d15dae6ac6
FIR: use SyntheticPropertySymbol & synthetic scope instead of FirAccessorSymbol
...
Before this commit, we used FirAccessorSymbol to emulate synthetic properties.
These symbols were generated in Java use-site scope.
Now, we use synthetic scope instead which is above MemberScopeTowerLevel.
This is more performance-friendly and does not require override matching.
However, accessor symbols should be used in situation when Java accessor
overrides Kotlin property which is broken in this commit
(that's why MapEntry test is corrupted here).
Also, we should not create synthetics for pure Kotlin accessors
(that's why javaAccessorConversion test is corrupted here).
2019-11-29 18:11:25 +03:00
Mikhail Glukhikh
8a601b5a0e
FIR accessors: add protection against special names
2019-11-29 18:11:21 +03:00
Mikhail Glukhikh
b48a4ace57
FIR accessor symbols: check all possible getter name variants
2019-11-29 18:11:21 +03:00
Mikhail Glukhikh
ed6238db4b
FIR accessor symbols: support 'is' prefix
2019-11-29 18:11:20 +03:00
Mikhail Glukhikh
eb90bd0e89
FIR: correctly process accessor symbols in derived classes
2019-11-29 18:11:19 +03:00
Mikhail Glukhikh
e43a1ee1c5
FIR JvmMappedScope: substitute type parameters in Java scope with Kotlin ones
...
Without it, override mapping does not work properly.
NB: at this moment Java forEach often supersedes Kotlin forEach,
because call isn't reported as erroneous properly.
2019-11-28 13:18:11 +03:00
Mikhail Glukhikh
4f1167b16f
Move buildDefaultUseSiteMemberScope to FirSymbolProvider
2019-11-28 13:18:10 +03:00
Mikhail Glukhikh
b3056b8bf5
FIR resolve: implement JVM K/J type mapping
...
Declared member scopes are now wrapped in JvmMappedScope
2019-11-28 13:18:10 +03:00
Denis Zharkov
f659dc0bea
FIR: Add synthetic values/valueOf methods to Java classes
2019-11-27 11:20:52 +03:00
Denis Zharkov
256f5ca0a1
FIR: Support inherited default parameters
2019-11-27 11:20:52 +03:00
Denis Zharkov
9dc628bd72
Fix FirJavaElementFinder.kt.183 compilation
2019-11-22 13:01:56 +03:00
Denis Zharkov
159aefd26d
FIR: Refactor Cone types
...
- Get rid of AbbreviatedType
2019-11-20 17:57:35 +03:00
Denis Zharkov
e03162f2dd
FIR: Rename ConeClassTypeImpl -> ConeClassLikeTypeImpl
2019-11-20 17:55:23 +03:00
Denis Zharkov
f178cb6fb3
FIR: Replace trivial usages of ConeClassType with ConeClassLikeType
2019-11-20 17:55:23 +03:00
Mikhail Glukhikh
137e54db05
FIR Java (raw type bounds erasure): make better protection from recursion
2019-11-19 23:22:36 +03:00
Mikhail Glukhikh
fa739f1aae
FIR: optimize classifier scope: don't search for nonexistent symbols
2019-11-19 22:41:19 +03:00