Skip to content

Commit

Permalink
Merge pull request #13 from prakanth97/issue_6296
Browse files Browse the repository at this point in the history
Check module name when checking parse functions
  • Loading branch information
prakanth97 committed Apr 9, 2024
2 parents e71802e + c3d0f00 commit d1e096f
Showing 1 changed file with 12 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,9 @@
import io.ballerina.compiler.syntax.tree.ModuleMemberDeclarationNode;
import io.ballerina.compiler.syntax.tree.ModulePartNode;
import io.ballerina.compiler.syntax.tree.ModuleVariableDeclarationNode;
import io.ballerina.compiler.syntax.tree.NameReferenceNode;
import io.ballerina.compiler.syntax.tree.Node;
import io.ballerina.compiler.syntax.tree.QualifiedNameReferenceNode;
import io.ballerina.compiler.syntax.tree.SyntaxKind;
import io.ballerina.compiler.syntax.tree.TypeDefinitionNode;
import io.ballerina.compiler.syntax.tree.VariableDeclarationNode;
Expand Down Expand Up @@ -386,6 +388,16 @@ private boolean isParseFunctionFromXmldata(ExpressionNode expressionNode) {
if (expressionNode.kind() != SyntaxKind.FUNCTION_CALL) {
return false;
}

NameReferenceNode nameReferenceNode = ((FunctionCallExpressionNode) expressionNode).functionName();
if (nameReferenceNode.kind() != SyntaxKind.QUALIFIED_NAME_REFERENCE) {
return false;
}
String prefix = ((QualifiedNameReferenceNode) nameReferenceNode).modulePrefix().text();
if (!prefix.equals(Constants.XMLDATA)) {
return false;
}

String functionName = ((FunctionCallExpressionNode) expressionNode).functionName().toSourceCode().trim();
return functionName.contains(Constants.PARSE_STRING) || functionName.contains(Constants.PARSE_BYTES)
|| functionName.contains(Constants.PARSE_STREAM) || functionName.contains(Constants.PARSE_AS_TYPE);
Expand Down

0 comments on commit d1e096f

Please sign in to comment.