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(
|
private void collectCallsFromBlock(
|
||||||
final PbsAst.Block block,
|
final PbsAst.Block block,
|
||||||
final List<PbsAst.CallExpr> output) {
|
final List<PbsAst.CallExpr> output) {
|
||||||
|
if (block == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
for (final var statement : block.statements()) {
|
for (final var statement : block.statements()) {
|
||||||
collectCallsFromStatement(statement, output);
|
collectCallsFromStatement(statement, output);
|
||||||
}
|
}
|
||||||
@ -259,6 +262,9 @@ public final class PbsFrontendCompiler {
|
|||||||
private void collectCallsFromStatement(
|
private void collectCallsFromStatement(
|
||||||
final PbsAst.Statement statement,
|
final PbsAst.Statement statement,
|
||||||
final List<PbsAst.CallExpr> output) {
|
final List<PbsAst.CallExpr> output) {
|
||||||
|
if (statement == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
switch (statement) {
|
switch (statement) {
|
||||||
case PbsAst.LetStatement letStatement -> collectCallsFromExpression(letStatement.initializer(), output);
|
case PbsAst.LetStatement letStatement -> collectCallsFromExpression(letStatement.initializer(), output);
|
||||||
case PbsAst.AssignStatement assignStatement -> collectCallsFromExpression(assignStatement.value(), output);
|
case PbsAst.AssignStatement assignStatement -> collectCallsFromExpression(assignStatement.value(), output);
|
||||||
@ -301,6 +307,9 @@ public final class PbsFrontendCompiler {
|
|||||||
private void collectCallsFromExpression(
|
private void collectCallsFromExpression(
|
||||||
final PbsAst.Expression expression,
|
final PbsAst.Expression expression,
|
||||||
final List<PbsAst.CallExpr> output) {
|
final List<PbsAst.CallExpr> output) {
|
||||||
|
if (expression == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
switch (expression) {
|
switch (expression) {
|
||||||
case PbsAst.CallExpr callExpr -> {
|
case PbsAst.CallExpr callExpr -> {
|
||||||
output.add(callExpr);
|
output.add(callExpr);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user