@@ -334,11 +334,13 @@ namespace pl::core::ast {
334334 addEntries (std::move (patterns));
335335
336336 auto ctrlFlow = evaluator->getCurrentControlFlowStatement ();
337- evaluator->setCurrentControlFlowStatement (ControlFlowStatement::None);
338- if (ctrlFlow == ControlFlowStatement::Break || ctrlFlow == ControlFlowStatement::Return)
337+ if ( ctrlFlow == ControlFlowStatement::Return) {
339338 break ;
340- else if (ctrlFlow == ControlFlowStatement::Continue) {
341-
339+ } else if (ctrlFlow == ControlFlowStatement::Break) {
340+ evaluator->setCurrentControlFlowStatement (ControlFlowStatement::None);
341+ break ;
342+ } else if (ctrlFlow == ControlFlowStatement::Continue) {
343+ evaluator->setCurrentControlFlowStatement (ControlFlowStatement::None);
342344 discardEntries (patternCount);
343345 continue ;
344346 }
@@ -366,10 +368,13 @@ namespace pl::core::ast {
366368
367369
368370 auto ctrlFlow = evaluator->getCurrentControlFlowStatement ();
369- evaluator->setCurrentControlFlowStatement (ControlFlowStatement::None);
370- if (ctrlFlow == ControlFlowStatement::Break || ctrlFlow == ControlFlowStatement::Return)
371+ if ( ctrlFlow == ControlFlowStatement::Return) {
372+ break ;
373+ } else if (ctrlFlow == ControlFlowStatement::Break) {
374+ evaluator->setCurrentControlFlowStatement (ControlFlowStatement::None);
371375 break ;
372- else if (ctrlFlow == ControlFlowStatement::Continue) {
376+ } else if (ctrlFlow == ControlFlowStatement::Continue) {
377+ evaluator->setCurrentControlFlowStatement (ControlFlowStatement::None);
373378 discardEntries (patternCount);
374379 continue ;
375380 }
@@ -417,10 +422,13 @@ namespace pl::core::ast {
417422 }
418423
419424 auto ctrlFlow = evaluator->getCurrentControlFlowStatement ();
420- evaluator->setCurrentControlFlowStatement (ControlFlowStatement::None);
421- if (ctrlFlow == ControlFlowStatement::Break || ctrlFlow == ControlFlowStatement::Return)
425+ if ( ctrlFlow == ControlFlowStatement::Return) {
426+ break ;
427+ } else if (ctrlFlow == ControlFlowStatement::Break) {
428+ evaluator->setCurrentControlFlowStatement (ControlFlowStatement::None);
422429 break ;
423- else if (ctrlFlow == ControlFlowStatement::Continue) {
430+ } else if (ctrlFlow == ControlFlowStatement::Continue) {
431+ evaluator->setCurrentControlFlowStatement (ControlFlowStatement::None);
424432 discardEntries (1 );
425433 continue ;
426434 }
0 commit comments