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
|
||||
public boolean hasBody() {
|
||||
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
|
||||
public boolean hasBlockBody() {
|
||||
KotlinPropertyAccessorStub stub = getStub();
|
||||
|
||||
Reference in New Issue
Block a user