Visibleプロパティの馬鹿、どういう設計なんだよ…(怒)
TODO:ウィンドウハンドルについて調べる。
とりあえず諦めてBug 3575 - static member on Generic Type is not resolved correctly.投げたので別件を考える。
TODO: MonoDevelopのClassPadはメソッド一覧を表示するが、この時VB.NETだと引数リストが表示されない件の調査→Bug 3618 - ClassPad should show the method's parameter when I use VB.NET
前回のTODOはそれほど正しくないようだ。調べるとしたら、型パラメータTがSystem.Int32に解決されるのはいつなのか、ということを調査する必要があるかもしれない
ToDo: SomeClass(Of T)を表すMono.Cecil.TypeReferenceからSomeClass(Of Integer)を表すMono.Cecil.TypeReferenceを作る方法を調べる。
昨日だかに書いたとおり、つまみ食いで無駄に迷走したが、vbncの動作原理自体はある程度把握したつもり。
一息入れるつもりで、MonoDevelop 2.8.6.4からMonoDevelop 2.8.6.5に入れ替え。まぁ、XCodeへの対応みたいだから、別にやってもいいことないような気もするけど。
俺はディレクトリにバージョン番号を含めているので、自動アップデートとかは使わず、古いアプリをアンインストール→新しいアプリをインストールと手順を踏む。その際、古い方のフォルダに入れたMonoDevelop.VBNetBindingをごと削除しちまった。
フォルダ構成がごちゃごちゃすることを嫌ってバックアップ自体を削除しちゃったからビルドし直し。Mono.Addinsとかその周辺の参照が切れているのを一々指定し直すと時間がかかるんだよなあ
ビルド完了。間違って消さないようにGmailに下書きを保存
GmailからダウンロードしたDllで、元のMonoDevelopのDllを上書き。MonoDevelopを起動したらエラー。ええとナニナニ?「ネットワーク上の場所からアセンブリを読み込もうとしました。これにより、以前のバージョンの .NET Framework で、アセンブリがサンドボックス化された可能性があります。このリリースの .NET Framework では、CAS ポリシーが既定で有効になっていないため、この読み込みは危険な場合があります。この読み込みがアセンブリのサンドボックス化を目的としない場合は、loadFromRemoteSources スイッチを有効にしてください。」だって?初めて見るなあ
以前Alternate Data Streamを知って、AlternateDataStreamViewを使って覗いてみたら、ZoneIdentifierが書かれていたな…もしかして削除すれば治る?→成功。やっと本題を再開できる
気になったコード
If partialType IsNot Nothing Then 'There is already a type with the same name result = partialClassOrStruct result.IsPartial = True result.Modifiers = result.Modifiers.AddModifiers(m_Modifiers.Mask) result.PartialModifierFound = result.Modifiers.Is(ModifierMasks.Partial) OrElse m_Modifiers.Is(ModifierMasks.Partial) ElseIf partialType IsNot Nothing Then 'There is another type with the same name Helper.AddError(tm.Compiler, tm.CurrentLocation, "Two types with the same name: " & m_Identifier.Name) Return Nothing Else 'No type with the same name. If IsClass Then result = New ClassDeclaration(Parent, [Namespace], GenericName, m_TypeParameters) Else result = New StructureDeclaration(Parent, [Namespace], GenericName, m_TypeParameters) End If result.Modifiers = m_Modifiers End If
で。このコードから、vbcとvbncで挙動が異なるコードを考えようとしたんだけど…宣言されている全ての同名クラスにpartial修飾子がついている必要があるC#と違ってVB.NETは必要無いようだ。vbncだけかと思ったらMS謹製コンパイラvbcでも通っちゃってるよ…バグじゃないよね?
少し前に一時的にfreedesktop.orgからlibreofficeのgit repositoryが消えてたなあ…あれは何だったんだろう?メンテか?