Review code base to find places that do not properly return unchanged expressions

Description

All visitors (and related types, e.g. Resolver) that unwrap + rewrap their input expression must have a guard on the return path to return the original, unchanged expression if the operation that happened between the unwrap + rewrap did not change the wrapped expression. Otherwise, an expression with the same value but a different identity is returned and an infinite recursion (leading to stack overflow) will happen for certain arguments.

Assignee

Unassigned

Reporter

Michael Ketting

Labels

None

Components

Fix versions

Priority

Normal
Configure