Page MenuHomePhabricator

In charts, make "min" and "max" into pure functions and formally mark pure functions as pure
ClosedPublic

Authored by epriestley on Sep 16 2019, 6:41 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Mar 22, 2:37 PM
Unknown Object (File)
Wed, Mar 13, 9:43 PM
Unknown Object (File)
Feb 24 2024, 5:12 PM
Unknown Object (File)
Jan 1 2024, 4:55 PM
Unknown Object (File)
Dec 28 2023, 5:05 PM
Unknown Object (File)
Dec 28 2023, 1:03 AM
Unknown Object (File)
Dec 26 2023, 2:42 PM
Unknown Object (File)
Dec 24 2023, 4:26 PM
Subscribers

Details

Summary

Depends on D20814. Currently, "min()" and "max()" are still "min(f, n)". This is no longer consistent with the construction of functions a function-generators that are composed at top level.

Turn them into "min(n)" and "max(n)" (i.e., not higher-order functions).

Then, mark all the functions which are pure mathematical functions and not higher-order as "pure". These functions have no function parameters and do not reference external data. For now, this distinction has no immediate implications, but it will simplify the next change (which tracks where data came from when it originated from an external source -- these pure functions never have any source information, since they only apply pure mathematical transformations to data).

Test Plan

Loaded a burnup chart, nothing seemed obviously broken.

Diff Detail

Repository
rP Phabricator
Branch
chart2
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 23454
Build 32226: Run Core Tests
Build 32225: arc lint + arc unit