menu

no-drop-of-trivial-value

Disallow dropping values without destructors

Calling drop for a value that requires no destruction performs no cleanup. Instead, you SHOULD remove the call or use a narrower scope when ownership must end sooner.

Reported

1import { drop } from "destack:memory";2 3function discard(value: int32): void {4    drop(value);5}

Accepted

1import { Drop, drop } from "destack:memory";2 3struct Subscription implements Drop {4    drop(&exclusive this): void {}5}6 7function unsubscribe(value: Subscription): void {8    drop(value);9}