Skip to content

Improve behaviour regarding unsupported constructs#468

Draft
n-osborne wants to merge 10 commits intoocaml-gospel:mainfrom
n-osborne:unsupported
Draft

Improve behaviour regarding unsupported constructs#468
n-osborne wants to merge 10 commits intoocaml-gospel:mainfrom
n-osborne:unsupported

Conversation

@n-osborne
Copy link
Copy Markdown
Contributor

This is a draft.

The proposed behaviour is to ignore unsupported construct that are not annotated with Gospel specification and fail on the one that are annotated.

This draft implements the behaviour, and is build upon #466 in order to demonstrate the behaviour in the tests.
The failure should be made an informative one (with a real error message).

Test is positive as the Gospel type checker doesn't fail.
Gospel type checker doesn't fail.
Test is failing, we may want Gospel type checker to ignore the type
declaration and emit a simple warning.
The Gospel type checker is failing on the type declaration. If we chose
to stop failling on the type declaration, we will have to decide what to
do about the specification.
The Gospel type checker is failing, we may want to ignore the type
declaration.
Gospel type checker fails on value declaration with a first class module
argument. We may want to ignore the value declaration rather than
failing when there is no specification attached to it.
This commit makes Gospel type checker stop failling when it encounters
an unsupported construct.

It also silently ignore the Gospel annotations if any, which is
questionable behaviour.
This is a draft, this should print a proper error message with
informations about the unsupported construct.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant