Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adjust type of TokenQuantity.pred so that it is a total function. #3039

Merged
merged 3 commits into from
Nov 30, 2021

Conversation

jonathanknowles
Copy link
Contributor

@jonathanknowles jonathanknowles commented Nov 29, 2021

Issue number

None. (Developed while working on other unrelated things.)

Summary

This PR:

  • fixes TokenQuantity.pred so that it is a total function, returning Nothing when applied to TokenQuantity 0.
  • adds the function predZero, which returns:
    • 0 when pred returns Nothing;
    • x when pred returns Just x.
  • uses predZero to simplify various tests.

The name `pred` does not have an `unsafe` prefix, which we typically use
to indicate that a function is not total.

But applying `pred` to `TokenQuantity 0` will cause a run-time error.

This change adjusts `pred` so that it returns `Nothing` when applied to
`TokenQuantity 0`.
@jonathanknowles jonathanknowles self-assigned this Nov 29, 2021
@jonathanknowles jonathanknowles force-pushed the jonathanknowles/fix-token-quantity-warts branch from 5fa65f5 to f02c3f7 Compare November 29, 2021 06:56
@jonathanknowles jonathanknowles force-pushed the jonathanknowles/fix-token-quantity-warts branch from f02c3f7 to defedfd Compare November 29, 2021 06:59
@jonathanknowles jonathanknowles force-pushed the jonathanknowles/fix-token-quantity-warts branch from defedfd to ca90935 Compare November 30, 2021 10:26
@jonathanknowles
Copy link
Contributor Author

bors r+

iohk-bors bot added a commit that referenced this pull request Nov 30, 2021
3039: Adjust type of `TokenQuantity.pred` so that it is a total function. r=jonathanknowles a=jonathanknowles

## Issue number

None. (Developed while working on other unrelated things.)

## Summary

This PR:

- [x] fixes `TokenQuantity.pred` so that it is a total function, returning `Nothing` when applied to `TokenQuantity 0`.
- [x] adds the function `predZero`, which returns:
    - `0` when `pred` returns `Nothing`;
    - `x` when `pred` returns `Just x`.
- [x] uses `predZero` to simplify various tests.



Co-authored-by: Jonathan Knowles <[email protected]>
Copy link
Contributor

@paweljakubas paweljakubas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm!

@iohk-bors
Copy link
Contributor

iohk-bors bot commented Nov 30, 2021

Build failed:

src/Test/Integration/Scenario/CLI/Shelley/Transactions.hs:244:59:
--
  | 1) CLI Specifications, SHELLEY_CLI_TRANSACTIONS, TRANS_CREATE_06 - Invalid amount, no amount
  | uncaught exception: IOException of type ResourceVanished
  | fd:121: hFlush: resource vanished (Broken pipe)

#2500

This problem was supposed to be fixed. Interesting.

@Anviking
Copy link
Member

bors r+

@iohk-bors
Copy link
Contributor

iohk-bors bot commented Nov 30, 2021

Build succeeded:

@iohk-bors iohk-bors bot merged commit 203e5bd into master Nov 30, 2021
@iohk-bors iohk-bors bot deleted the jonathanknowles/fix-token-quantity-warts branch November 30, 2021 12:42
WilliamKingNoel-Bot pushed a commit that referenced this pull request Nov 30, 2021
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.

3 participants