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