�
��Qc�����������@���sJ���d��d�l��m�Z�d��d�l��m�Z�d��d�l�m�Z�d�e�f�d�������YZ�d�S(���i���(���t���ast(���t���message(���t���TAG_RETURNSt���IntrospectablePassc�����������B���sz���e��Z�d�����Z�d����Z�d�d���Z�d����Z�e�d���Z�d����Z	�d����Z
�d����Z�d����Z�d	����Z
�d
����Z�d����Z�RS(
���c���������C���s"���|�|��_��|�j�|��_�|�|��_�d��S(���N(���t���_transformert	���namespacet
���_namespacet���_blocks(���t���selft���transformert���blocks(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyt���__init__���s����	c���������C���s����|��j��j�|��j���|��j��j�|��j���|��j��j�|��j���|��j��j�|��j���|��j��j�|��j���|��j��j�|��j���|��j��j�|��j���d��S(���N(���R���t���walkt���_introspectable_alias_analysist���_propagate_callable_skipst
���_analyze_nodet!���_introspectable_callable_analysist���_introspectable_pass3t'���_remove_non_reachable_backcompat_copies(���R���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyt���validate!���s����c���	������C���s����t��|�t�j�t�j�f���r�d��Sd��}�t�|�d���rn�d�|�j�f�}�|��j�j�|�j���}�|�rt�|�j	�}�qt�n�d�}�t��|�t�j
���r��d�|�j�f�}�n0�d�}�|�r��|�j�t
���}�|�r��|�j	�}�q��n��t�j�|�|�|�|�d�|��d��S(���Nt���symbols���%s: t����s
���argument %s: s���return value: t	���positions(���t
���isinstanceR����t	���VFunctiont���Callbackt���Nonet���hasattrR���R���t���gett���positiont	���Parametert���argnamet���get_tagR���R���t	���warn_node(	���R���t���parentt���paramt���textR���t���blockt���prefixt���contextt
���return_tag(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyt���_parameter_warning*���s$����c������
���C���sh��t��|�t�j���}�t��|�t�j���}�|�s6�|�s6�t���|�j�j�d��k	�r`�|��j�j	�|�j���}�n�d��}�|�j
�rs�d��S|�j�j�s��|��j�|�|�d�|�j�j
�f���t�|�_�d��St��|�j�t�j���r��t�|�_�d��St��|�j�t�j�t�j�f���r!|�j�j�t�j�k�r!|��j�|�|�d���t�|�_�d��S|�r�t��|�t�j���r�|�j�j�d
�k�r�|�j�d��k�r�|��j�|�|�d�d�t�j�t�j�f���t�|�_�d��S|�r�t��|�t�j���r�|��j�|�|�d���t�|�_�d��S|�r5t��|�t�j�t�j�f���r5|�j�d��k�r5|�j�r5|�j�t�j�k�r1|��j�|�|�d���t�|�_�n��d��S|�j�d��k�rd|��j�|�|�d	���t�|�_�d��Sd��S(���Ns���Unresolved type: %rs!���Missing (element-type) annotations���GLib.DestroyNotifys���Gio.AsyncReadyCallbacks'���Missing (scope) annotation for callbacks'��� without GDestroyNotify (valid: %s, %s)s-���Callbacks cannot be return values; use (skip)sX���Invalid non-constant return of bare structure or union; register as boxed type or (skip)s���Missing (transfer) annotation(���s���GLib.DestroyNotifys���Gio.AsyncReadyCallback(���R���R����t���ReturnR���t���AssertionErrort���typet
���target_ginameR���R���t���lookup_typenodet���skipt���resolvedR)���t���unresolved_stringt���Falset���introspectablet���Varargst���Listt���Arrayt���element_typet���TYPE_ANYR���t���scopet���PARAM_SCOPE_CALLt���PARAM_SCOPE_ASYNCt���Recordt���Uniont���get_typet���foreignt���transfert���PARAM_TRANSFER_NONE(���R���R"���t���nodet	���is_returnt���is_parametert���target(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyt���_introspectable_param_analysisC���sb����								
	c���������C���s��|�j��s
�t�St�|�t�j���r#�t�St�|�t�j�t�j�f���rN�|��j�|�j���St�|�t�j	���r��|��j�|�j
���o��|��j�|�j���S|�j�r��t
�S|�j�r��|�j�t�j���r��t�S|�j�t�j�t�j�t�j�f���r��t�St
�S|��j�j�|���}�|�s��t�S|�j�o|�j�S(���N(���R0���R2���R���R����t���TypeUnknownR6���R5���t���_type_is_introspectableR7���t���Mapt���key_typet
���value_typet���target_foreignt���Truet���target_fundamentalt���is_equivt���TYPE_VALISTt���TYPE_LONG_LONGt���TYPE_LONG_ULONGt���TYPE_LONG_DOUBLER���R.���R3���R/���(���R���t���typevalt���warnRE���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyRH�������s,����			c���������C���sW���|�j��j�d��k	�r:�|��j�j�|�j����}�|�d��k�r>�d��Sn�d��S|�j�rS�t�|�_�n��d��S(���N(���R,���R-���R���R���R.���R/���RM���(���R���R"���RB���RE���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyt���_propagate_parameter_skip����s����	c���������C���s7���t��|�t�j���r3�|��j�|�j���s3�t�|�_�q3�n��t�S(���N(���R���R����t���AliasRH���RE���R2���R3���RM���(���R���t���objt���stack(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyR
�������s����c���������C���sP���t��|�t�j���rL�x!�|�j�D]�}�|��j�|�|���q�W|��j�|�|�j���n��t�S(���N(���R���R����t���Callablet
���parametersRV���t���retvalRM���(���R���RX���RY���R#���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyR�������s
����c���������C���s����|�j��r
�t�St�|�t�j���rY�x!�|�j�D]�}�|��j�|�|���q)�W|��j�|�|�j���n��t�|�t�j�t�j	�t�j
�t�j�f���r��x>�|�j�D]0�}�|�j
�r��|��j�|�j
���s��t�|�_�q��q��q��Wn��t�S(���N(���R/���R2���R���R����RZ���R[���RF���R\���t���Classt	���InterfaceR<���R=���t���fieldsR,���RH���R3���RM���(���R���RX���RY���R#���t���field(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyR�������s����	'	c���������C���s{���|�j��r
�t�St�|�t�j���rw�x0�|�j�D]%�}�|��j�|�j���s)�t�|�_�t	�Sq)�W|��j�|�j
�j���sw�t�|�_�t	�Sn��t	�S(���N(���R/���R2���R���R����RZ���R[���RH���R,���R3���RM���R\���(���R���RX���RY���R#���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyR�������s����			c���������C���s��|�j��r
�t�St�|�t�j�t�j�t�j�t�j�f���r��xV�|�j�D]H�}�|�j	�rh�|�j	�j
�s��t�|�_
�q��q>�|��j�|�j���s>�t�|�_
�q>�q>�Wn��t�|�t�j�t�j�f���rx/�|�j
�D]$�}�|��j�|�j���s��t�|�_
�q��q��Wx'�|�j�D]�}�|��j�|�|�g���q��Wn��t�S(���N(���R/���R2���R���R����R]���R^���R<���R=���R_���t���anonymous_nodeR3���RH���R,���t
���propertiest���signalsR���RM���(���R���RX���RY���R`���t���propt���sig(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyR�������s ����	'	c���������C���sJ���|�j��r
�t�St�|�t�j���rF�|�j�d��k	�rF�|�j�sF�t�|�_	�qF�n��t�S(���N(
���R/���R2���R���R����t���Functiont���moved_toR���R3���RM���t���internal_skipped(���R���RX���RY���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyR�������s����	!	N(���t���__name__t
���__module__R���R���R���R)���RF���R2���RH���RV���R
���R���R���R���R���R���(����(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyR������s���				=						N(���R���R����R���t���annotationparserR���t���objectR���(����(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyt���<module>���s���