Commit 901005db authored by John van Groningen's avatar John van Groningen
Browse files

propagate strictness to strict head and/or tail of a strict

list constructor on a cycle
parent a257ead9
......@@ -2262,7 +2262,29 @@ static Bool NodeInASemiStrictContext (Node node,int local_scope)
}
} else
DecrRefCountCopiesOfArgs (node->node_arguments IF_OPTIMIZE_LAZY_TUPLE_RECURSION(local_scope));
} else
}
#if STRICT_LISTS
else if (symb->symb_kind==cons_symb && node->node_arity==2){
ArgP arg_p;
arg_p=node->node_arguments;
if (symb->symb_head_strictness>1){
if (ArgInAStrictContext (arg_p,StrictState,True,local_scope))
parallel = True;
} else
if (ShouldDecrRefCount)
DecrRefCountCopiesOfArg (arg_p IF_OPTIMIZE_LAZY_TUPLE_RECURSION(local_scope));
arg_p=arg_p->arg_next;
if (symb->symb_tail_strictness){
if (ArgInAStrictContext (arg_p,StrictState,True,local_scope))
parallel = True;
} else
if (ShouldDecrRefCount)
DecrRefCountCopiesOfArg (arg_p IF_OPTIMIZE_LAZY_TUPLE_RECURSION(local_scope));
}
#endif
else
DecrRefCountCopiesOfArgs (node->node_arguments IF_OPTIMIZE_LAZY_TUPLE_RECURSION(local_scope));
if (parallel)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment