Re-implement getBodyBlockExpression() in stubbed elements
Avoid delegation to getBodyExpression() to monitor AST loading abuses.
This commit is contained in:
@@ -133,6 +133,22 @@ public class KtNamedFunction extends KtTypeParameterListOwnerStub<KotlinFunction
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@Override
|
||||||
|
public KtBlockExpression getBodyBlockExpression() {
|
||||||
|
KotlinFunctionStub stub = getStub();
|
||||||
|
if (stub != null && !(stub.hasBlockBody() && stub.hasBody())) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
KtExpression bodyExpression = findChildByClass(KtExpression.class);
|
||||||
|
if (bodyExpression instanceof KtBlockExpression) {
|
||||||
|
return (KtBlockExpression) bodyExpression;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasBody() {
|
public boolean hasBody() {
|
||||||
KotlinFunctionStub stub = getStub();
|
KotlinFunctionStub stub = getStub();
|
||||||
|
|||||||
@@ -97,6 +97,22 @@ public class KtPropertyAccessor extends KtDeclarationStub<KotlinPropertyAccessor
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@Override
|
||||||
|
public KtBlockExpression getBodyBlockExpression() {
|
||||||
|
KotlinPropertyAccessorStub stub = getStub();
|
||||||
|
if (stub != null && !(stub.hasBlockBody() && stub.hasBody())) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
KtExpression bodyExpression = findChildByClass(KtExpression.class);
|
||||||
|
if (bodyExpression instanceof KtBlockExpression) {
|
||||||
|
return (KtBlockExpression) bodyExpression;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasBlockBody() {
|
public boolean hasBlockBody() {
|
||||||
KotlinPropertyAccessorStub stub = getStub();
|
KotlinPropertyAccessorStub stub = getStub();
|
||||||
|
|||||||
Reference in New Issue
Block a user