help.lint.checks: Save lint disposables in hash.

vm-warnings
Doug Coleman 2018-07-07 11:14:16 -05:00
parent 79db3ca594
commit e5bd5f6719
1 changed files with 11 additions and 7 deletions

View File

@ -4,10 +4,10 @@ USING: accessors arrays assocs classes classes.struct
classes.tuple combinators combinators.short-circuit
combinators.smart continuations debugger definitions effects
eval formatting fry grouping help help.markup help.topics io
io.streams.string kernel macros math namespaces parser.notes
prettyprint sequences sequences.deep sets splitting strings
summary tools.destructors unicode vocabs vocabs.loader words
words.constant words.symbol ;
io.streams.string kernel macros math math.statistics namespaces
parser.notes prettyprint sequences sequences.deep sets splitting
strings summary tools.destructors unicode vocabs vocabs.loader
words words.constant words.symbol ;
IN: help.lint.checks
ERROR: simple-lint-error message ;
@ -50,9 +50,13 @@ SYMBOL: vocab-articles
] keep
last assert=
] vocabs-quot get call( quot -- )
] leaks members no-ui-disposables length [
"%d disposable(s) leaked in example" sprintf simple-lint-error
] unless-zero ;
] leaks members no-ui-disposables
dup length 0 > [
dup [ class-of ] histogram-by
[ "Leaked resources: " write ... ] with-string-writer simple-lint-error
] [
drop
] if ;
: check-examples ( element -- )
\ $example swap elements [ check-example ] each ;