State { when: true } が動かない問題が修正されました

ちょっとお仕事で技術的に怪しいことを色々試していたところ、Qt Quick の謎のバグを見つけてしまいました。

import QtQuick 2.12

State {
    when: true
}

こんな記述をすると、

when.qml:4 Invalid property assignment: unsupported type "QQmlBinding*"

って怒られます。

あれ? when って bool じゃないの?って感じですね。でも謎の QQmlBinding* 型でした。

他にも同じ型のプロパティあるのかな?と思って調べてみましたが、見つかりませんでした。

なんなんだろう…。まぁ、よくわからないけれど、とりあえずバグを報告しました。

Invalid property assignment: unsupported type “QQmlBinding*” in State

で、一応、落ちているところを適当にいじって、多分修正としてはハズレだけど、問題はこの辺っぽいよパッチ を書いておきました。なんて親切。

結局、その辺の担当者による 謎の QQmlBinding * 型を bool にするパッチ で問題は解決したようです。

ちゃんといろんなこと把握していないとこういう思い切った対応は難しいですね。

State の when に true を即値で書く人なんて世の中に私くらいしかいない訳なのですが、そんなバグでも直るし、なによりも、報告してから半日も経たずに直ったのかなり画期的かもしれない。

あわせて読みたい