Fusion
Fusion copied to clipboard
Explicit destruction changes, part 1 (critical, blocking)
Not finished yet. Will eventually implement the following:
- [x] Removal of
SemiWeakRef,onDestroy,isAccessible - [x] Changed
SpecialKey:applyandapplyInstancePropsto useInstanceinstead ofSemiWeakRef - [x] The above changes imply that instances returned from
Newno longer have implicit garbage collection semantics. As such, removed the unit tests for inhibiting garbage collection. - [x] A
needsDestructionutility method, which returns true if a given value needs an associated destructor. Currently only true for instances. - [ ] Adding destructors to Value and Computed, which are called when an old value is dropped from these objects.
- [x] Warnings when Value, Computed, ForKeys, ForValues or ForPairs receives a value which
needsDestructionbut no destructor is provided. The default destructors provided by ForKeys, ForValues and ForPairs are considered deprecated, and will print these warnings, but will still function for the time being. - [ ] New unit tests for these features