[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#20193: 25.0.50; declarative type specification for D-Bus args
From: |
Daiki Ueno |
Subject: |
bug#20193: 25.0.50; declarative type specification for D-Bus args |
Date: |
Fri, 04 Sep 2015 11:33:20 +0900 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) |
Michael Albinus <michael.albinus@gmx.de> writes:
> Daiki Ueno <ueno@gnu.org> writes:
>
>>> For the second new test I'm not sure whether this is possible (the
>>> documentation doesn't speak about), but it looks natural to me.
>>
>> Yes, this was actually a bug because of missing checks on the number of
>> required arguments after `:type'. Fixed as:
>> http://git.savannah.gnu.org/cgit/emacs.git/commit/?h=scratch/dbusbind-type-tests&id=def5829c0769b142b3cc0d69a9ad58935a9f237f
>
> Well, dbus-test.el passes now, thanks. But there are still some cases
> I'm not so happy with:
>
> plist-get
> (dbus--test-create-message-with-args
> '(:array)
> '(:array :signature "u")
> :type '(:array :uint32)
> nil)
> :signature)
>
> |- "asauau"
>
> I would expect "asauaub"
Right, thanks for pointing that.
> Maybe you could be a little bit more verbose about, and adapt the code?
> When there is a :type argument, there must *always* be two additional
> arguments?
That makes sense. Moreover, I personally prefer not to mix
implicit and explicit typing. So, I am currently thinking to collect
type specifiers for all arguments as a list and put it in front of the
actual arguments, like this:
(dbus-message-internal ...
:timeout 100
:type '((:array :string) (:array :uint32) (:array :uint32) :boolean)
'("a") '(1) '(2) t)
How does that sound?
> As you see, even I (who has tried to understand the new syntax) am a
> little bit confused.
Yes, I am realizing how helpful it is to write unit tests, to smoke out
such pitfalls before landing the feature :-)
Regards,
--
Daiki Ueno
bug#20193: 25.0.50; declarative type specification for D-Bus args, Stefan Monnier, 2015/09/03