From: Markus Armbruster <armbru@redhat.com>
To: Kevin Wolf <kwolf@redhat.com>
Cc: jsnow@redhat.com, qemu-devel@nongnu.org
Subject: Re: [PATCH v2 4/6] qapi: Apply aliases in qobject-input-visitor
Date: Fri, 19 Feb 2021 14:07:04 +0100 [thread overview]
Message-ID: <87ft1skxzb.fsf@dusky.pond.sub.org> (raw)
In-Reply-To: <878s7kpglc.fsf@dusky.pond.sub.org> (Markus Armbruster's message of "Fri, 19 Feb 2021 10:11:27 +0100")
Markus Armbruster <armbru@redhat.com> writes:
> Kevin Wolf <kwolf@redhat.com> writes:
[...]
>> Yes, don't use optional objects in the middle of the path of a wildcard
>> alias unless there is no semantic difference between empty object and
>> absent object.
>
> Aha! So my spidey-sense wasn't entirely wrong.
Like optional members, union branches get visited only when the input is
shaped a certain way. Which makes me wonder: does "don't use optional
in the middle" apply to union branches, too?
Hmm, I figure it doesn't because
* If the union is flat, there is no object: the variant members are the
members of the branch struct type.
* If the union is simple, there is, but it's always there: 'data'.
Hope I'm not speaking in riddles.
>> This is documented in the code, but it might actually
>> still be missing from qapi-code-gen.txt.
>
> I can't find it there. Needs fixing, obviously.
"there" = qapi-code-gen.txt
> I guess checking "path of a wildcard alias crosses optional objects" is
> hard (impractical?) for the same reasons checking "alias can't resolve"
> is.
>
> I'd expect "alias can't resolve" to be caused by typos, incomplete
> renames, and such. Basic testing should catch at least the typos. Not
> ideal, but I guess it'll do, at least for now.
>
> Relying on testing to catch "crosses optional objects" mistakes feels
> iffier to me, because it takes more careful tests.
>
> Ham-fisted way to make basic tests catch it: *ignore* optional objects
> when resolving aliases. Is this a bad idea?
[...]
next prev parent reply other threads:[~2021-02-19 13:08 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-11 18:31 [PATCH v2 0/6] qapi: Add support for aliases Kevin Wolf
2021-02-11 18:31 ` [PATCH v2 1/6] qapi: Add interfaces for alias support to Visitor Kevin Wolf
2021-02-16 11:56 ` Markus Armbruster
2021-02-11 18:31 ` [PATCH v2 2/6] qapi: Remember alias definitions in qobject-input-visitor Kevin Wolf
2021-02-16 12:06 ` Markus Armbruster
2021-02-11 18:31 ` [PATCH v2 3/6] qapi: Simplify full_name_nth() " Kevin Wolf
2021-02-16 12:22 ` Markus Armbruster
2021-02-11 18:31 ` [PATCH v2 4/6] qapi: Apply aliases " Kevin Wolf
2021-02-17 15:32 ` Markus Armbruster
2021-02-17 17:50 ` Kevin Wolf
2021-02-18 13:39 ` Markus Armbruster
2021-02-18 16:10 ` Kevin Wolf
2021-02-19 9:11 ` Markus Armbruster
2021-02-19 13:07 ` Markus Armbruster [this message]
2021-02-19 14:42 ` Markus Armbruster
2021-02-24 8:28 ` Markus Armbruster
2021-02-11 18:31 ` [PATCH v2 5/6] qapi: Add support for aliases Kevin Wolf
2021-02-16 15:43 ` Markus Armbruster
2021-02-17 15:23 ` Markus Armbruster
2021-02-17 16:17 ` Kevin Wolf
2021-02-18 10:26 ` Markus Armbruster
2021-02-11 18:31 ` [PATCH v2 6/6] tests/qapi-schema: Test cases " Kevin Wolf
2021-02-16 15:14 ` Markus Armbruster
2021-02-16 15:31 ` Kevin Wolf
2021-02-16 16:14 ` Markus Armbruster
2021-02-17 12:23 ` Markus Armbruster
2021-02-24 8:45 ` [PATCH v2 0/6] qapi: Add support " Markus Armbruster
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87ft1skxzb.fsf@dusky.pond.sub.org \
--to=armbru@redhat.com \
--cc=jsnow@redhat.com \
--cc=kwolf@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.