Skip to content

Commit ba776b7

Browse files
committed
Better tracked_context for lambdas
1 parent 8772f22 commit ba776b7

1 file changed

Lines changed: 7 additions & 5 deletions

File tree

skiplang/compiler/src/skipTyping.sk

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5322,15 +5322,17 @@ fun lambda(
53225322
) {
53235323
throw TUtils.Delay()
53245324
} else {
5325-
(_, lam_tracking) = ml;
5326-
lam_is_untracked =
5327-
lam_tracking.size() == 1 &&
5328-
lam_tracking[0] is N.Funtracked();
5325+
(_lam_purity, lam_tracking) = ml;
5326+
lam_tracked_context = if (lam_tracking.size() >= 1) {
5327+
lam_tracking.any(tracking ~> tracking is N.Ftracked())
5328+
} else {
5329+
env.tracked_context
5330+
};
53295331
!env = env with {
53305332
break_type => None(),
53315333
frozen_level => lam.lam_frozen_level,
53325334
locals => lam_locals,
5333-
tracked_context => if (lam_is_untracked) false else env.tracked_context,
5335+
tracked_context => lam_tracked_context,
53345336
};
53355337
!env = setReturnType(context, next_id, env, acc, rty, lam.yields);
53365338
ordered_args = args.map(t ->

0 commit comments

Comments
 (0)