Rimuovi dai verbi le clausole IF di verifica che un prendi-implicito sia andato a buon termine, poiché supeflue.
[ ] Individua tutti i verbi che contengono tali clausole.
[ ] Rimuovi il blocco IF e lascia solo il codice.
[ ] Cerca di trovare altri verbi che utilizzino clausole superfluo di questo tipo, anche se non relative al prendi-implicito.
Spiegazione
Nei vari verbi che impiegano un "prendi implicito" è presente una clausola IF per verificare che esso sia andato in porto. Esempio (tratto da lib_classi.i, verbo dai_a su luquido):
DOES ONLY
-- >>> prendi implicito: >>>
IF THIS NOT IN hero
THEN
IF THIS:recipiente = recipiente_fittizio
OR THIS:recipiente IS NOT prendibile
THEN SAY mia_AT:impossibile_maneggiare_liq1.
ELSE LOCATE recipiente OF THIS IN hero.
"(prima prendi" SAY THE THIS:recipiente. SAY THIS:prep_DI. "$1)$n"
END IF.
END IF.
-- <<< prendi implicito <<<
IF THIS IN hero -- (se il prendi implicito è andato a buon fine)
THEN
"Consegni" SAY THE THIS:recipiente. SAY THIS:prep_DI. "$1"
SAY png:prep_A. "$2."
LOCATE recipiente OF THIS IN png.
END IF.
Questa clausola è inutile dato che se il LOCATE del prendi-implicito dovesse fallire per qualsiasi ragione (e.s. l'oggetto è posseduto da un attore) allora l'esecuzione del verbo si interromperebbe.
Ho eseguito dei test che confermano quanto sopra, quindi è un'operazione sicura.
Rimuovi dai verbi le clausole IF di verifica che un prendi-implicito sia andato a buon termine, poiché supeflue.
IF
e lascia solo il codice.Spiegazione
Nei vari verbi che impiegano un "prendi implicito" è presente una clausola
IF
per verificare che esso sia andato in porto. Esempio (tratto dalib_classi.i
, verbodai_a
suluquido
):Questa clausola è inutile dato che se il
LOCATE
del prendi-implicito dovesse fallire per qualsiasi ragione (e.s. l'oggetto è posseduto da un attore) allora l'esecuzione del verbo si interromperebbe.Ho eseguito dei test che confermano quanto sopra, quindi è un'operazione sicura.