引数名(アサーションをアスペクト&メタデータで実装)

事前条件や事後条件では,メソッドの引数にアクセスできます.引数は名前を持っています.ということで当然,事前事後条件からも引数に名前でアクセスしたい!!
わけですが,これまた難題.
なんせ,リフレクションでは引数の名前を取れませんから,ソースから取得するしかありません.
ソースから名前を取ったとしても,まだ問題が.
基底クラスと派生クラスでは,異なった引数名を使うことができます.
例えば基底クラスのメソッドで引数名がkeyだとすると,その事前条件中でもkeyという名前でアクセスします.
一方,派生クラスでメソッドをオーバーライドして,その引数名がnameだとすると,その事前条件中でもnameという名前でアクセスします.
ということは,検証時には事前事後条件ごとにBindingを変えてあげないといけない? あるいは条件中の引数名を置換する? どっちもいやーん!


ということで,不本意ながら事前・事後条件から引数にアクセスする際には,args配列を使うことにします.
心より恥じる.