Commit Graph

33841 Commits

Author SHA1 Message Date
Dmitriy Novozhilov 0c0c53cc2e [FE] Don't analyze members with CLASSIFIERS kind filter in AbstractLazyMemberScope
This commit introduces partial support of descriptorKindFilter in
  `AbstractPsiBasedDeclarationProvider`. Without it there may be an error
  in following case:

```
sealed class Base
class Derived : Base()

class Test<out V>(val x: Base) {
    private val y = when (x) {
        is Derived -> null
    }
}
```

Here we start to resolve type of `y`, then go to computation of inheritors
  of sealed class Base, which also may be inside Test, so we need get all
  nested classifiers in Test. But without this filtration we will start
  computing descriptor for `y` again, which leads to ReenteringLazyComputationException

#KT-44316 Fixed
2021-02-10 16:56:49 +03:00
Dmitriy Novozhilov 671ebc6819 [FIR] Fix detecting that if in then branch of outer if used as expression 2021-02-10 14:17:38 +03:00
Alexander Udalov e6588ee8a4 CLI: include META-INF/services/ from kotlin-reflect with -include-runtime
This is an addition to bd205317aa where we
started to add the contents of kotlin-reflect into the resulting jar if
-include-runtime is specified. Apparently kotlin-reflect doesn't work
without some services in META-INF/services/, which didn't satisfy the
condition for inclusion. The existing test didn't catch that because
loading class annotations does not always lead to those services being
loaded.
2021-02-10 12:05:36 +01:00
Alexander Udalov 3dfd2a95fa Minor, do not output "Not changed" for generated FIR checkers on each build 2021-02-10 12:04:40 +01:00
Dmitriy Novozhilov 1216b33593 [Test] Move extracting JVM_TARGET to provideConfigurationKeys 2021-02-10 13:02:07 +03:00
Dmitriy Novozhilov 606ae45f5f [Test] Replace remaining KOTLIN_CONFIGURATION_FLAGS directives with specific ones 2021-02-10 13:02:06 +03:00
Dmitriy Novozhilov 3ee5665746 Parse compiler configuration for android tests using new test infrastructure 2021-02-10 13:02:05 +03:00
Dmitriy Novozhilov a0007bf244 Add analysisFlags of LanguageVersionSettings to toString() method 2021-02-10 13:02:04 +03:00
Dmitriy Novozhilov 7e59e083d3 [Test] Make some functions of environment configurators public
This is needed for using those methods from android tests
2021-02-10 13:02:03 +03:00
Dmitriy Novozhilov 24d6853ead [Test] Cleanup JvmEnvironmentConfigurator 2021-02-10 13:02:01 +03:00
Dmitriy Novozhilov a932f69b8a [Test] Don't pass MockProject to environment configurators 2021-02-10 13:02:00 +03:00
Jinseong Jeon bd37badf29 FIR checker: add diagnostics for backing fields 2021-02-10 12:29:34 +03:00
Mikhail Glukhikh a88b82d8ff Rewrite nasty code with if without else in elvis RHS 2021-02-10 12:19:59 +03:00
Dmitry Petrov d0f26abd18 JVM_IR KT-44798 don't generate multiple stubs with same signature 2021-02-10 09:09:28 +03:00
Mikhael Bogdanov 2673261b10 Use proper jvmArgs syntax, remove -FailOverToOldVerifier from last configurations
`FailOverToOldVerifier` support is removed from JDK 16
2021-02-09 18:51:26 +01:00
Ilya Kirillov c54354f348 FIR: fix memory leak from ConeIntegerLiteralTypeImpl via static NUMBER_TYPE
ConeClassLikeType has a cachedExpanded type which has a strong ref to FirSession
2021-02-09 17:15:46 +01:00
Ilya Kirillov 5cefad1ab3 FIR: use GeneratorsFileUtil for checkers-component-generator 2021-02-09 17:15:38 +01:00
Ilya Kirillov 4cf863e054 FIR: simplify PositioningStrategy checkers generator 2021-02-09 17:15:38 +01:00
Ilya Kirillov 21ac83aba0 FIR: rename Diagnostic to DiagnosticData in checkers generators to avoid conflict with existing Diagnostic class 2021-02-09 17:15:37 +01:00
Ilya Kirillov b2d51dc455 FIR: Update diagnostics list after rebase 2021-02-09 17:15:34 +01:00
Ilya Kirillov e008ad03a2 FIR: add groups to diagnostics DSL 2021-02-09 17:15:11 +01:00
Ilya Kirillov 15ff79830f FIR: remove existingN diagnostic creation functions 2021-02-09 17:14:24 +01:00
Ilya Kirillov b92dce9be4 FIR: introduce DSL to generate diagnostics list
this is needed to generate diagnostic list for IDE
2021-02-09 17:14:22 +01:00
Ilya Kirillov 5ff816127a FIR: extract ConeDiagnostic -> FirDiagnostic to fun to use in IDE code 2021-02-09 17:14:21 +01:00
Dmitriy Novozhilov 6dd331d7e8 [FIR] Add tests for non exhaustive when as last expression of lambda
KT-44810
2021-02-09 16:04:42 +03:00
Dmitriy Novozhilov e54f31cc2f [IR] Remove useless init block from IrLazyFunction
This block was accidentally added in aaa3fa58 in debug purposes
2021-02-09 16:04:42 +03:00
Dmitriy Novozhilov 8f0e1035fa [FIR] Rename KEY and VALUE generics of FirCache to K and V 2021-02-09 16:04:42 +03:00
Dmitriy Novozhilov d7e3e83251 [FIR] Update testdata of FIR spec tests 2021-02-09 16:04:41 +03:00
Dmitriy Novozhilov 18bde2c542 [FIR] Reimplement when exhaustiveness checker to fir it's logic with FE 1.0 2021-02-09 16:04:41 +03:00
Dmitriy Novozhilov 2a1c9283a4 [FIR] Add useful util extensions for cone type 2021-02-09 16:04:41 +03:00
Dmitriy Novozhilov ad677046a8 [FIR] Replace isExhaustive flag with ExhaustivenessStatus object 2021-02-09 16:04:40 +03:00
Dmitriy Novozhilov 96038e4b32 [FIR] Support java sealed class interop 2021-02-09 16:04:40 +03:00
Dmitriy Novozhilov abd1c8fb30 [FIR] Move sealedInheritors declaration data to :fir:tree module 2021-02-09 16:04:40 +03:00
Dmitriy Novozhilov 8dd9d98129 [FIR] Implement checker for exhaustive when's in expression position 2021-02-09 16:04:40 +03:00
Dmitriy Novozhilov 3f715e671d [FIR] Fix checking for null exhaustiveness with expression of Nothing? type 2021-02-09 16:04:40 +03:00
Dmitriy Novozhilov 76f9830b47 [FIR] Fix checking for boolean exhaustiveness with || in branch 2021-02-09 16:04:40 +03:00
Dmitriy Novozhilov 6469900b5e [FIR] Fix forgotten light source element for if expression 2021-02-09 16:04:39 +03:00
Dmitriy Novozhilov 11ab37160e [FIR] Save info that when was used as expression 2021-02-09 16:04:39 +03:00
Dmitriy Novozhilov 490ef210ac [FIR] Support sealed class inheritors in multiple files 2021-02-09 16:04:39 +03:00
Dmitriy Novozhilov c8f9cc33ef [FIR] Pass all FirFiles to FirGlobalResolveProcessor.process 2021-02-09 16:04:39 +03:00
Dmitriy Novozhilov 38437fb036 [FIR] Rename session.firSymbolProvider to session.symbolProvider
to avoid visual conflicts with `session.firProvider`
2021-02-09 16:04:39 +03:00
Andrei Klunnyi e3c1aa599d KT-44487 [Sealed Interfaces]: sealed-inheritors-provider for MPP 2021-02-09 12:54:51 +00:00
Igor Chevdar 6f9bcf249b [IR] Supported inlining of adapted references + tests 2021-02-09 17:23:19 +05:00
Dmitriy Novozhilov 9724d81a49 [FIR] Support boolean elvis bound smartcasts
#KT-44511 Fixed
2021-02-09 15:20:36 +03:00
Dmitriy Novozhilov 2b088f1147 [FIR] Fix generating data class if there is non-property in primary constructor
#KT-44554 Fixed
2021-02-09 15:20:34 +03:00
Mikhael Bogdanov 30b5bfe767 Disable D8 checks for -jvm-target 15 tests 2021-02-09 12:34:56 +01:00
Mikhael Bogdanov 3dff225b98 Aligh test data with JDK 15 reflection output 2021-02-09 12:34:55 +01:00
Mikhael Bogdanov 21e9f67322 Add JvmTargetXOnJvm15 test suites 2021-02-09 12:34:55 +01:00
Mikhael Bogdanov 5c5fb0ae39 Add JvmTarget6OnJvm8 test suite 2021-02-09 12:34:55 +01:00
Ilmir Usmanov 8af9ce1e0b Minor. Ignore test on WASM 2021-02-09 12:31:14 +01:00