Commit Graph

624 Commits

Author SHA1 Message Date
Mikhail Glukhikh f20845ba40 Get rid of FirMemberFunction 2020-02-04 15:00:09 +03:00
Mikhail Glukhikh 677129ad20 Get rid of FirNamedDeclaration 2020-02-04 15:00:08 +03:00
Mikhail Glukhikh 91b432b4a1 [FIR] Java super-type arguments are now handled as flexible 2020-02-03 16:45:19 +03:00
Mikhail Glukhikh 2bb5740f47 [FIR] Resolve ambiguities in Java static scopes 2020-01-30 16:28:08 +03:00
Mikhail Zarechenskiy e750528551 Fix project compilation against bootstrap compiler
This is needed after e3b6104489
2020-01-29 15:25:22 +03:00
Denis Zharkov c6c773f6f9 FIR: Mark all dependencies' declarations as fully resolved 2020-01-28 17:03:50 +03:00
Denis Zharkov 6e8d67b96f FIR: Simplify contract in FirScopeProvider::getUseSiteMemberScope 2020-01-28 17:03:50 +03:00
Dmitriy Novozhilov 57a1342aac [FIR] Fix creating DefinitelyNotNullTypes
Also fix substitutions to them
2020-01-28 14:14:21 +03:00
Mikhael Bogdanov 6e94eddb71 JVM_IR. Fix bridge generation 2020-01-27 14:53:36 +01:00
Mikhail Glukhikh f949b48b4a [FIR] Swap priority of kotlin libraries / built-ins #KT-35948 Fixed 2020-01-27 13:21:54 +03:00
Mikhael Bogdanov 7e85674c61 Minor. Allow IR compilation of FIR and IR.TREE module 2020-01-27 08:49:15 +01:00
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