VisualWorks:ブロックの伝播
2007/03/30 (Fri) 22:07:46 JST
ブロックの伝播
clean block 以外のブロックは、外部コンテキスト (そのブロックを含むメソッドとブロック) すべてに伝播します。これは外部コンテキストの引数や一時変数をブロックに渡すためで、例えば clean block が copying block を含むコードでは、コンパイル後は clean block も copying block になります。
ただし、内部ブロックには伝播しません。full copying block が内部に clean block を持っていても、コンパイル後も clean block のままです。
優先順位
ブロックは次の順序で伝播します。
clean < full = copying < full copying
| 内部ブロック | 外部ブロック | 伝播後の外部ブロック |
| clean | clean | clean |
| clean | full | full |
| clean | copying | copying | |
| clean | full copying | full copying |
| full | clean | full |
| full | full | full |
| full | copying | full copying |
| full | full copying | full copying |
| copying | clean | copying |
| copying | full | full copying |
| copying | copying | copying |
| copying | full copying | full copying |
| full copying | clean | full copying |
| full copying | full | full copying |
| full copying | copying | full copying |
| full copying | full copying | full copying |
Inverse Pages: VisualWorks