fix frontend null-safe callsite traversal
This commit is contained in:
parent
f1a621c7fa
commit
57f6e5e97f
@ -248,6 +248,9 @@ public final class PbsFrontendCompiler {
|
||||
private void collectCallsFromBlock(
|
||||
final PbsAst.Block block,
|
||||
final List<PbsAst.CallExpr> output) {
|
||||
if (block == null) {
|
||||
return;
|
||||
}
|
||||
for (final var statement : block.statements()) {
|
||||
collectCallsFromStatement(statement, output);
|
||||
}
|
||||
@ -259,6 +262,9 @@ public final class PbsFrontendCompiler {
|
||||
private void collectCallsFromStatement(
|
||||
final PbsAst.Statement statement,
|
||||
final List<PbsAst.CallExpr> output) {
|
||||
if (statement == null) {
|
||||
return;
|
||||
}
|
||||
switch (statement) {
|
||||
case PbsAst.LetStatement letStatement -> collectCallsFromExpression(letStatement.initializer(), output);
|
||||
case PbsAst.AssignStatement assignStatement -> collectCallsFromExpression(assignStatement.value(), output);
|
||||
@ -301,6 +307,9 @@ public final class PbsFrontendCompiler {
|
||||
private void collectCallsFromExpression(
|
||||
final PbsAst.Expression expression,
|
||||
final List<PbsAst.CallExpr> output) {
|
||||
if (expression == null) {
|
||||
return;
|
||||
}
|
||||
switch (expression) {
|
||||
case PbsAst.CallExpr callExpr -> {
|
||||
output.add(callExpr);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user