Commit Graph

72634 Commits

Author SHA1 Message Date
Dmitriy Novozhilov d696a488b5 [FIR] Report list of conflicting symbols in REDECLARATION and CONFLICTING_OVERLOADS 2021-02-12 14:50:43 +03:00
Roman Golyshev 7a4625b70b FIR IDE: Enable passing completion test 2021-02-12 14:29:22 +03:00
Roman Golyshev d615b6b682 FIR IDE: firSymbolProvider -> symbolProvider fix 2021-02-12 10:53:24 +00:00
Roman Golyshev bc26230392 FIR IDE: Visit only the smallest acceptable declaration if possible 2021-02-12 10:53:23 +00:00
Roman Golyshev c3831baba2 FIR IDE: Refactor ElementsToShortenCollector to be more value-oriented 2021-02-12 10:53:23 +00:00
Roman Golyshev dee4f4345b FIR IDE: Add ElementToShorten sealed classes 2021-02-12 10:53:22 +00:00
Roman Golyshev d202b0feb2 FIR IDE: Refactor addElementToShorten functions 2021-02-12 10:53:21 +00:00
Roman Golyshev 09ba927680 FIR IDE: Decouple ElementsToShortenCollector from KtFirReferenceShortener 2021-02-12 10:53:21 +00:00
Roman Golyshev c89380fc36 FIR IDE: Refactor ElementsToShortenCollector 2021-02-12 10:53:20 +00:00
Roman Golyshev 9a464ae9c4 FIR IDE: Merge all collectors visitors to a single visitor 2021-02-12 10:53:19 +00:00
Roman Golyshev 7478b8d189 FIR IDE: Use single TextRange as selection instead of two ints 2021-02-12 10:53:19 +00:00
Roman Golyshev 798c4d2485 FIR IDE: Create FirResolvedImports without fake PSI 2021-02-12 10:53:18 +00:00
Roman Golyshev c0a4301179 FIR IDE: Enhance check messages in KtFirReferenceShortener 2021-02-12 10:53:17 +00:00
Roman Golyshev 8020424b93 FIR IDE: Remove fake root prefix even when the element is not shortened 2021-02-12 10:53:17 +00:00
Roman Golyshev ee98a76600 FIR IDE: Implement simple importing of the functions
This is not a complete algorithm, but it already works in many cases

Disable some tests that not yet work
2021-02-12 10:53:16 +00:00
Roman Golyshev 88e7d1e5ee FIR: Attach candidate symbol to the ErrorNamedReference
This allows to restore the referenced candidate in cases when there are
no ambiguity

Also, change rendering of named references to be more accurate, so the
diagnostics tests pass: if reference is FirErrorNamedReference, it is
more important than if it has a not-null `candidateSymbol`
2021-02-12 10:53:15 +00:00
Roman Golyshev 51c59e5634 FIR IDE: Check function call before trying to drop the receiver 2021-02-12 10:53:14 +00:00
Roman Golyshev d88fd5bd73 FIR IDE: More strictly navigate to parent KtDotQualifiedExpression 2021-02-12 10:53:14 +00:00
Roman Golyshev e265a78a33 FIR IDE: Implement shortening and import for type qualifiers 2021-02-12 10:53:13 +00:00
Roman Golyshev 0e271b72c7 FIR IDE: Do not try to shorten type without qualifier 2021-02-12 10:53:12 +00:00
Roman Golyshev 534f4a66ad FIR IDE: Add simple shortening for qualified calls and properties 2021-02-12 10:53:12 +00:00
Roman Golyshev f03ca5ea57 FIR IDE: Add import in case when conflicting class comes from * import 2021-02-12 10:53:11 +00:00
Roman Golyshev 0b48416a1e FIR IDE: Unwrap nullable types 2021-02-12 10:53:10 +00:00
Roman Golyshev 08e271411f FIR IDE: Create fake scopes to avoid import duplicates 2021-02-12 10:53:09 +00:00
Roman Golyshev e34370554d FIR IDE: Add simple types importing
Some tests are not passing
2021-02-12 10:53:09 +00:00
Roman Golyshev 0609aa1e2e FIR IDE: Refactor KtFirReferenceShortener 2021-02-12 10:53:08 +00:00
Roman Golyshev 8575ce32d4 FIR IDE: Add more tests for type conflicts 2021-02-12 10:53:07 +00:00
Roman Golyshev e744084c15 FIR IDE: Enable types shortening for nested classes and nested types 2021-02-12 10:53:07 +00:00
Roman Golyshev b9d074051f FIR IDE: Add separate tests for FIR reference shortening 2021-02-12 10:53:06 +00:00
Roman Golyshev c1130f2010 FIR IDE: Add reference shortening service which works over FIR 2021-02-12 10:53:05 +00:00
Roman Golyshev 108395fcfe FIR: Fix bug with incorrect source element for qualifiers 2021-02-12 10:53:04 +00:00
Roman Golyshev 1479388bd5 FIR IDE: Refactor AbstractFirShortenRefsTest
- Use `FIR_COMPARISON` directive
- Move testing utils to `ideaFirTestUtils.kt`
- Ignore `TopLevelFunctionImportWithLotsOfFqName.kt` test for now (it
takes too long to execute)
2021-02-12 10:53:04 +00:00
Roman Golyshev 68b5f2736e FIR: Add fake root prefix for IDE resolution 2021-02-12 10:53:03 +00:00
Roman Golyshev 0de251e50d Add runTestInWriteCommand flag to AbstractImportTest 2021-02-12 10:53:02 +00:00
Dmitriy Novozhilov 2d5b685535 [FIR] Fix processing constructors of sealed classes
- Allow declaring protected constructors in sealed classes
- Make default visibility of sealed class constructor `protected`

KT-44861
KT-44865
2021-02-12 13:36:41 +03:00
Dmitriy Novozhilov 7c61ddc72b [FE] Allow declaring protected constructors in sealed classes
#KT-44865 Fixed
2021-02-12 13:36:39 +03:00
Dmitriy Novozhilov f3a8fcaea6 [FE] Make constructors of sealed classes protected instead of internal 2021-02-12 13:36:38 +03:00
Mikhael Bogdanov e795c2c407 Generate proper hashCode for fun interface wrappers
#KT-44875 Fixed
2021-02-12 11:28:17 +01:00
Vyacheslav Karpukhin f33cad54c5 AndroidDependencyResolver: fixed AAR import on modern AGP plugins 2021-02-11 23:24:19 +01:00
Vyacheslav Karpukhin 7eb5fc7778 AndroidDependencyResolver: fixed NPE 2021-02-11 23:24:18 +01:00
Anton Bannykh abc44fa658 Increase -Xmx for Ant tests 2021-02-11 18:39:34 +03:00
Jinseong Jeon 20f9787c70 FIR checker: report errors in contract description 2021-02-11 17:02:18 +03:00
Jinseong Jeon 3d635b6a94 FIR: unwrap smartcast expression when extracting effects of contract 2021-02-11 17:02:16 +03:00
Jinseong Jeon 70f462781a FIR-IDE: add mappings for backing field diagnostics 2021-02-11 17:02:15 +03:00
Alexander Udalov 510b9e6f2a Move around some codegen box tests
In tests merged from boxAgainstJava in 29b96aa1, some directories were
named slightly differently compared to box, e.g. "property" vs
"properties", "varargs" vs "vararg". This change renames these, moves
some of the tests to more fitting directories, and also renames
"visibility" to "javaVisibility" because it's about Java visibilities
specifically.
2021-02-11 13:50:09 +01:00
Alexander Udalov 2d60fa787d Remove codegen tests on old language and API versions 2021-02-11 13:50:09 +01:00
Alexander Udalov 401f0ac583 Use TARGET_BACKEND instead of DONT_TARGET_EXACT_BACKEND in box against Java tests
"// TARGET_BACKEND: JVM" more clearly says that the test is
JVM-specific, rather than DONT_TARGET_EXACT_BACKEND which excludes all
other backends.
2021-02-11 13:50:08 +01:00
Victor Petukhov f797ee7803 Substitute captured types with inner intersection one (NewTypeSubstitutor)
^KT-44651 Fixed
2021-02-11 14:20:14 +03:00
Alexander Udalov 80daf120e6 Apply illegal-access=permit workaround for JDK 16+
Apparently, the openjdk commit that enabled JEP 396 (encapsulated JDK
defaults) is effective since jdk-16+28:

https://github.com/openjdk/jdk/commit/ed4c4ee7
2021-02-11 12:12:39 +01:00
Yaroslav Chernyshev 4b62b2de0c Use IDEA ASM in kotlin-gradle-plugin-integration-tests module 2021-02-11 13:25:48 +03:00