Unused symbol: do not use body of function literal as scope for members

So #KT-10546 Fixed
This commit is contained in:
Mikhail Glukhikh
2017-09-11 13:25:17 +03:00
committed by Mikhail Glukhikh
parent 4b25317ecb
commit 7ae722492f
4 changed files with 50 additions and 2 deletions
@@ -829,12 +829,20 @@ public class KtPsiUtil {
return (KtElement) parent;
}
}
if (current instanceof KtBlockExpression || current instanceof KtParameter) {
if (current instanceof KtParameter) {
return (KtElement) current;
}
if (current instanceof KtValueArgument) {
// for members, value argument is never enough, see KT-10546
if (!isNonLocalCallable) return (KtElement) current;
if (!isNonLocalCallable) {
return (KtElement) current;
}
}
if (current instanceof KtBlockExpression) {
// For members also not applicable if has function literal parent
if (!isNonLocalCallable || !(current.getParent() instanceof KtFunctionLiteral)) {
return (KtElement) current;
}
}
if (current instanceof KtDelegatedSuperTypeEntry) {
PsiElement grandParent = current.getParent().getParent();