fix frontend null-safe callsite traversal

This commit is contained in:
bQUARKz 2026-03-07 17:13:15 +00:00
parent f1a621c7fa
commit 57f6e5e97f
Signed by: bquarkz
SSH Key Fingerprint: SHA256:Z7dgqoglWwoK6j6u4QC87OveEq74WOhFN+gitsxtkf8

View File

@ -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);