Skip to content

Better flat contract detection while compiling static contracts? #629

Open
@pnwamk

Description

@pnwamk

FYI -- MORE INVESTIGATION REQUIRED -- THIS IS A PACE HOLDER ISSUE FOR ME!

It seems like when we're compiling our static contracts to decide how to protect typed values & modules, our detection of when a static contract is flat could use a little improvement. At the moment I'm looking at the following internal representation of a static contract that's being compiled as a rest argument contract (while working on #623):

(or/c '() (cons/c any/c (cons/c any/c (recursive-contract (or/c '() (cons/c any/c (cons/c any/c g16241585))) #:flat))))

And, unless I'm missing something, this should be a flat contract and optimized (on the trusted side) to any/c, right? Anyway, I'm expecting it to be optimized to any/c and it's not. This issue is a place holder for further investigation into the issue.

Also... I should look into why it unfolded the μ-type once...

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions