Dmitriy Novozhilov
bdcb8aecab
[Test] Migrate AbstractFir2IrTextTest to new infrastructure
2021-01-22 13:51:26 +03:00
Dmitriy Novozhilov
aba029237d
[Test] Add handler for comparing pretty kt ir dumps
2021-01-22 13:51:25 +03:00
Dmitriy Novozhilov
87ffbd8206
[IR] Collect all dependencies of module recursively
2021-01-22 13:51:24 +03:00
Dmitriy Novozhilov
aaa3fa5845
[Test] Migrate IrTextTestGenerated to new infrastructure
2021-01-22 13:51:23 +03:00
Dmitriy Novozhilov
5ae5f660f6
[Test] Add ability to explicitly declare default binary kind for test
2021-01-22 13:51:22 +03:00
Dmitriy Novozhilov
a2ae618185
[Test] Introduce IGNORE_ERRORS diagnostic to suppressing backend errors
2021-01-22 13:51:21 +03:00
Dmitriy Novozhilov
acb6d2e196
[Test] Allow facades to return null which indicates that facade can't complete it's job
...
This is needed for cases when test pipeline assumes that some part of
pipeline may be unavailable because of errors on previous stage.
For example, this may occur in some test which check something on IR
but contains backend facade for compiling binary dependencies. In
this case testdata with frontend errors is allowed if test has only
one module which should not be compiled
2021-01-22 13:51:20 +03:00
Dmitriy Novozhilov
6a7cd0c811
[Test] Add ability to specify applicability of diagnostic to module or file
2021-01-22 13:51:19 +03:00
Dmitriy Novozhilov
28cff22cd0
[Test] Add ability to specify directive for test file
...
Rules of directives resolving:
- If no `MODULE` or `FILE` was declared in test then all directives
belongs to module
- If `FILE` is declared, then all directives after it will belong to
file until next `FILE` or `MODULE` directive will be declared
- All directives between `MODULE` and `FILE` directives belongs to module
- All directives before first `MODULE` are global and belongs to each
declared module
2021-01-22 13:51:17 +03:00
Alexander Udalov
e17153fab9
Minor, improve Ant test on includeRuntime
...
Also check that we _do_ include runtime if includeRuntime is true.
2021-01-21 18:29:19 +01:00
scaventz
a13eb4c8e6
Ant task: do not include runtime by default if destination is a jar
2021-01-21 18:29:19 +01:00
Denis.Zharkov
b0b7f39c75
FIR: Do not use return statement for type of a block expression
...
Type of a block is a kind of irrelevant for lambdas: their type is much
more complicated and defined via FirDataFlowAnalyzer#returnExpressionsOfAnonymousFunction
at at FirCallCompleter.LambdaAnalyzerImpl#analyzeAndGetLambdaReturnArguments
2021-01-21 18:53:03 +03:00
Denis.Zharkov
4dc2653736
FIR: Do not complete finally parts of try-finally
...
It's been processed via Body transformer explicitly
2021-01-21 18:53:03 +03:00
Denis.Zharkov
7df4f67f7c
FIR: Minor. Drop unused parameter
2021-01-21 18:53:03 +03:00
Denis.Zharkov
9493e68584
FIR: Do not run completion for lambda's explicit return too early
...
See the test case
Completion for synthetic call: x ?: return@myRun materialize()
makes `materialize()` while it's obviously too early for that
2021-01-21 18:53:03 +03:00
Denis.Zharkov
5afebb4e78
FIR: Transform synthetic calls children even without incomplete candidate
...
It might be necessary for cases like
run @l1{
run {
if (...) return@l1 1
}
}
"if" is a synthetic call, but without candidate since there's just one branch
But return@l1 1 is incomplete because it's resolved in dependent context
and "1" is hang incomplete integer literal
2021-01-21 18:53:03 +03:00
Denis.Zharkov
5f0d00a83f
FIR: Use proper tower data contexts for postponed callable references
...
E.g., it should contain local scopes of containing lambdas
2021-01-21 18:53:03 +03:00
Denis.Zharkov
ad30c6c380
FIR: Fix callable references resolution when they're being returned from lambdas
2021-01-21 18:53:03 +03:00
Denis.Zharkov
0e368cc237
FIR: Analyze return statements for implicit lambda with independent context
2021-01-21 18:53:02 +03:00
Denis.Zharkov
5e83e10a72
FIR: Add callable references nodes to CFG
...
Otherwise, they are not being considered as return expressions from lambdas
2021-01-21 18:53:02 +03:00
Alexander Dudinsky
6dc0440cd0
Remove commented code in previous commit
2021-01-21 18:47:48 +03:00
Alexander Dudinsky
71e74497b5
Use addTestJdk&removeTestJdk methods instead addJdk&removeJdk
2021-01-21 18:38:06 +03:00
Mikhail Glukhikh
20843b6894
Remove error suppression in KotlinChangeSignatureDialog
2021-01-21 18:32:34 +03:00
Pavel Kirpichenkov
628d6a9c30
Don't store logger in instance field
2021-01-21 16:53:09 +03:00
Pavel Kirpichenkov
5003738d29
Fix: use idea caches correctly
...
Instead of using value from cache the first created value
was being saved to field and not invalidated later.
2021-01-21 16:53:09 +03:00
Sergey Igushkin
87c6b6bffc
Revert "Set canBeConsumed = false on the deprecated configurations like compile"
...
This reverts commit dfacccf8
2021-01-21 16:39:00 +03:00
Jinseong Jeon
2e660ef62a
Raw FIR: use lambda parameter type if available
2021-01-21 16:06:23 +03:00
Jinseong Jeon
fa0b933bc8
FIR checker: add diagnostics for missing/ambiguous component calls
2021-01-21 16:06:10 +03:00
Jinseong Jeon
83b9c29495
FIR checker: relocate sealed class ctor call checker
2021-01-21 16:06:10 +03:00
Jinseong Jeon
5f0eb8a401
FIR checker: minor cleanups
2021-01-21 16:06:10 +03:00
Jinseong Jeon
be29b6d64d
FIR checker: use aliased checker when possible (part 2)
2021-01-21 16:06:10 +03:00
Jinseong Jeon
de592f4f67
FIR checker: introduce FunctionChecker alias
...
and use it to add support diagnostic FUNCTION_DECLARATION_WITH_NO_NAME
2021-01-21 16:06:09 +03:00
Mikhail Glukhikh
40bec30393
FIR: implement LT positioning in diagnostic tests, fix LT strategies
2021-01-21 16:06:09 +03:00
Jinseong Jeon
f1d8a6e5d1
FIR checker: introduce DECLARATION_SIGNATURE_OR_DEFAULT positioning strategy
...
and fix CONFLICTING_OVERLOADS to use it
2021-01-21 16:06:09 +03:00
Igor Yakovlev
2e4daee1d4
[FIR] Fix invalid diagnostic fir node sites and improved invalid type parameters count diagnostic report
2021-01-21 15:20:30 +03:00
Simon Ogorodnik
b7d3469819
[FIR] Remove transform/accept from FirResolvedTypeRef.delegateTypeRef
2021-01-21 15:20:30 +03:00
Igor Yakovlev
243f85a4d6
[FIR IDE] Add base support for FIR incomplete types resolve
2021-01-21 15:20:30 +03:00
Ilmir Usmanov
704366e531
JVM: Mark suspend lambda receiver as used if callable reference
...
accesses it.
#KT-44131 Fixed
2021-01-21 12:47:59 +01:00
Mikhael Bogdanov
de00f72fa3
Generate linenumber for inline call site in case of implicit iterator/hasNext/next calls in for loop
...
Otherwise -1 is generated in smap
2021-01-21 12:04:09 +01:00
Sergey Igushkin
dfacccf84f
Set canBeConsumed = false on the deprecated configurations like compile
...
This leads to cleaner error messages in Gradle variant-aware dependency
resolution failures. Gradle has deprecated those configurations since
long ago, and we didn't see much use of them as variant-aware dependency
resolution entities either.
So this commits sets `canBeConsumed` to false on these configuratons:
* compile (+ testCompile, fooCompile in MPP)
* runtime (+ testRuntime, fooRuntime, ...)
* compileOnly (+ testCompileOnly, fooCompileOnly, ...)
* default (+ fooDefault in MPP)
This change replaces the PR #3995
2021-01-21 11:00:21 +00:00
Sergey Igushkin
6e913e16ad
Add integration tests for Kapt + Android Gradle plugin 7.0
2021-01-21 11:00:21 +00:00
Sergey Igushkin
341b87fad0
Use implementation instead of compile in GradleIT, fix versions
2021-01-21 11:00:20 +00:00
Sergey Igushkin
17b71555e0
KT-43944: Don't access Android test source sets' API configurations
...
When dependencies are added to our corresponding configurations,
report errors, as there's no proper way to add those dependencies.
Issue #KT-43944 Fixed
2021-01-21 11:00:19 +00:00
Andrei Klunnyi
77ffc318f2
KT-44250 [Sealed interfaces]: completion fails for 'when' with sealed
2021-01-21 10:53:36 +00:00
Dmitriy Novozhilov
14108011ee
[FIR] Fix inferring arguments of bare types in different situations
...
- argument type is flexible
- supertype has flexible type argument
- type of expression is more specific than bare type
2021-01-21 12:02:01 +03:00
Jinseong Jeon
b99f1a1512
FIR checker: error messages for function diagnostics
...
Also, update error inputs to conform to old FE's
These should have been part of commit 39df3e2b0a
2021-01-21 09:57:55 +03:00
Jinseong Jeon
021395ce39
FIR checker: error message for destructuring declaration diagnostic
...
Also, update error inputs to conform to old FE's
This should have been part of commit 03cb0c3cd1
2021-01-21 09:57:55 +03:00
Jinseong Jeon
35093e0958
FIR checker: error messages for properties/accessors diagnostics
...
Also, update error inputs to conform to old FE's
These should have been part of commit 5167d69b7c
2021-01-21 09:57:55 +03:00
Ilmir Usmanov
952576e98f
JVM_IR: Do not unbox Result parameter if it not only one inline class
...
parameter, since in this case, the compiler generates a bridge, where
the result is unboxed.
2021-01-20 18:30:00 +01:00
Ilmir Usmanov
d48f92775b
JVM_IR: Do not unbox Result parameter in invoke if there is a bridge
...
since the bridge unboxes it.
#KT-44141 Fixed
2021-01-20 18:29:58 +01:00