Skip to content

Commit 5352ab6

Browse files
committed
If e1 Then s1 'Else skip' adaptation
1 parent bb89aec commit 5352ab6

1 file changed

Lines changed: 15 additions & 5 deletions

File tree

latte/src/main/java/typechecking/LatteTypeChecker.java

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -532,11 +532,21 @@ public void visitCtIf(CtIf ifElement) {
532532
PermissionEnvironment thenPermEnv = permEnv.cloneLast();
533533
exitScopes();
534534

535-
enterScopes();
536-
super.visitCtBlock(ifElement.getElseStatement());
537-
SymbolicEnvironment elseSymbEnv = symbEnv.cloneLast();
538-
PermissionEnvironment elsePermEnv = permEnv.cloneLast();
539-
exitScopes();
535+
SymbolicEnvironment elseSymbEnv;
536+
PermissionEnvironment elsePermEnv;
537+
538+
if (ifElement.getElseStatement() != null) {
539+
//Else statement
540+
enterScopes();
541+
super.visitCtBlock(ifElement.getElseStatement());
542+
elseSymbEnv = symbEnv.cloneLast();
543+
elsePermEnv = permEnv.cloneLast();
544+
exitScopes();
545+
} else {
546+
//No Else statement
547+
elseSymbEnv = symbEnv.cloneLast();
548+
elsePermEnv = permEnv.cloneLast();
549+
}
540550

541551
joining(thenSymbEnv, thenPermEnv, elseSymbEnv, elsePermEnv);
542552
}

0 commit comments

Comments
 (0)