現在のActiveBasicは、TypeDefにより再定義された型と、定義元の型とでは、オーバーロードの解決をすることはできません。
コード: 全て選択
TypeDef newType = baseType
fx(a As baseType)
fx(a As newType)
これのオーバーロードを解決できるようにして欲しいと思っています。
もし解決できるようになれば、例えば次のような、Stringクラスに間違えてLong型を指定したときに、アクセス違反にならずに済みます。
コード: 全て選択
Dim s As String
Dim v As Long
s = v 'LPSTRで解決されるので、警告すら出ない。
もしこの仕様にするのであれば、再定義した型がオーバーロードで見つからなかった場合、定義元の型で解決することもしてほしいです。逆に言えば、もし、再定義した型が見つかれば、優先的にそちらでオーバーロードを解決できるようにしてほしいということです。
特に目立ったデメリットが浮かばないので、何か見落としがあったら指摘していただきたいです。