Skip to content

Incorrect EPropGuards case in TVars instance for Expr #1569

@qsctr

Description

@qsctr

The EPropGuards case in the TVars instance for Expr does not perform substitution inside the Type field of EPropGuards:

EPropGuards guards ty -> EPropGuards !$ (\(props, e) -> (apSubst su `fmap'` props, apSubst su e)) `fmap'` guards .$ ty

This is causing declarations in prop guards whose type mentions a module type parameter to not get instantiated properly by moduleInstance, which causes the bug in GaloisInc/saw-script#1923.

Metadata

Metadata

Assignees

Labels

bugSomething not working correctlyparameterized modulesRelated to Cryptol's parameterized modulestype-guards

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions