I usually change this method because if something fails in the block evaluation the warning level remains in 0 because there's no ensure: . Maybe this change can be included in the base version.
Original Code:
- Code: Select all
useWarningLevel0While: aBlock
"Evaluate @aBlock whilst the default warning level is temporarily
set to level 0. Answer the result of evaluating @aBlock."
| level result |
level := self defaultWarningLevel.
self defaultWarningLevel: 0.
result := aBlock value.
self defaultWarningLevel: level.
^result
Changed Code:
- Code: Select all
useWarningLevel0While: aBlock
"Evaluate @aBlock whilst the default warning level is temporarily
set to level 0. Answer the result of evaluating @aBlock."
| level |
level := self defaultWarningLevel.
self defaultWarningLevel: 0.
^[aBlock value] ensure: [self defaultWarningLevel: level]
Regards,
Gabriel