Added ad-hoc KtValueArgument.stringTemplateExpression
Use only stub stringTemplateExpression if it is present and don't use ast nodes as it could be unbounded #KT-47034 Fixed
This commit is contained in:
committed by
Space
parent
a383c1ce79
commit
2c8d583d8b
@@ -59,6 +59,10 @@ public class KtValueArgument extends KtElementImplStub<KotlinValueArgumentStub<?
|
||||
KtStubElementTypes.STRING_TEMPLATE
|
||||
);
|
||||
|
||||
private static final TokenSet STRING_TEMPLATE_EXPRESSIONS_TYPES = TokenSet.create(
|
||||
KtStubElementTypes.STRING_TEMPLATE
|
||||
);
|
||||
|
||||
@Override
|
||||
@Nullable @IfNotParsed
|
||||
public KtExpression getArgumentExpression() {
|
||||
@@ -73,6 +77,19 @@ public class KtValueArgument extends KtElementImplStub<KotlinValueArgumentStub<?
|
||||
return findChildByClass(KtExpression.class);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public KtStringTemplateExpression getStringTemplateExpression() {
|
||||
KotlinPlaceHolderStub<? extends KtValueArgument> stub = getStub();
|
||||
KtExpression expression;
|
||||
if (stub != null) {
|
||||
KtExpression[] stringTemplateExpressions = stub.getChildrenByType(STRING_TEMPLATE_EXPRESSIONS_TYPES, KtExpression.EMPTY_ARRAY);
|
||||
expression = stringTemplateExpressions.length != 0 ? stringTemplateExpressions[0] : null;
|
||||
} else {
|
||||
expression = findChildByClass(KtExpression.class);
|
||||
}
|
||||
return expression instanceof KtStringTemplateExpression ? (KtStringTemplateExpression)expression : null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public KtValueArgumentName getArgumentName() {
|
||||
|
||||
Reference in New Issue
Block a user