KT-56221 Gradle KTS: overloaded assignment is not supported

```
java.docsDir = file("src/docs")
```
is a `KtBinaryExpression`. Decision on the assignment validity involves
`AbstractAssignPluginResolutionAltererExtension.hasSpecialAnnotation()`.
The function requires a parent declaration, which in case of a script
is `KtScriptInitializer`.

^KT-56221 fixed
This commit is contained in:
Andrei Klunnyi
2023-02-21 15:04:32 +01:00
parent a51ae33e4d
commit e3d5affe5c
@@ -18,9 +18,10 @@ val KtElement.containingDeclarationForPseudocode: KtDeclaration?
get() = getParentOfType(this, KtDeclarationWithBody::class.java, KtClassOrObject::class.java, KtScript::class.java)
?: getNonStrictParentOfType<KtProperty>()
// Should return KtDeclarationWithBody, KtClassOrObject, or KtClassInitializer
// Should return KtDeclarationWithBody, KtClassOrObject, KtClassInitializer or KtScriptInitializer
fun KtElement.getElementParentDeclaration(): KtDeclaration? =
getParentOfType(this, KtDeclarationWithBody::class.java, KtClassOrObject::class.java, KtClassInitializer::class.java)
getParentOfType(this, KtDeclarationWithBody::class.java, KtClassOrObject::class.java, KtClassInitializer::class.java,
KtScriptInitializer::class.java)
fun KtDeclaration?.getDeclarationDescriptorIncludingConstructors(context: BindingContext): DeclarationDescriptor? {
val descriptor = context.get(DECLARATION_TO_DESCRIPTOR, (this as? KtClassInitializer)?.containingDeclaration ?: this)