�
��2Yc�����������@`�s����d��d�l��m�Z�d��d�l��m�Z�d��d�l��m�Z�d��d�l��m�Z�d�d�l�m�Z�d�d�l�m�Z�d�d�l�m	�Z	�d	�e
�f�d
�������YZ�d�S(���i����(���t���absolute_import(���t���division(���t���print_function(���t���unicode_literalsi���(���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/vagrant/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/vagrant/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�}�n3�d�}�|�r��|�j�j�t
���}�|�r��|�j	�}�q��n��t�j�|�|�|�|�d�|��d��S(���Nu���symbolu���%s: u����u
���argument %s: u���return value: t	���positions(���t
���isinstanceR���t	���VFunctiont���Callbackt���Nonet���hasattrt���symbolR���t���gett���positiont	���Parametert���argnamet���tagsR���R���t	���warn_node(	���R���t���parentt���paramt���textR ���t���blockt���prefixt���contextt
���return_tag(����(����s|���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyt���_parameter_warning/���s$����c���������C`�sR��t��|�t�j���}�t��|�t�j���}�|�j�j�d��k	�rN�|��j�j�|�j���}�n�d��}�|�j	�ra�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|�rxt��|�t�j���rx|�j�j�d	�k�rx|�j�d��k�rx|��j�|�|�d�t�j�t�j�f���t
�|�_�d��S|�r�t��|�t�j���r�|��j�|�|�d���t
�|�_�d��S|�rt��|�t�j�t�j�f���r|�j�d��k�r|�j�r|�j�t�j�k�r|��j�|�|�d���t
�|�_�n��d��S|�j�d��k�rN|��j�|�|�d���t
�|�_�d��Sd��S(
���Nu���Unresolved type: %ru!���Missing (element-type) annotationu���GLib.DestroyNotifyu���Gio.AsyncReadyCallbackuN���Missing (scope) annotation for callback without GDestroyNotify (valid: %s, %s)u-���Callbacks cannot be return values; use (skip)uX���Invalid non-constant return of bare structure or union; register as boxed type or (skip)u���Missing (transfer) annotation(���u���GLib.DestroyNotifyu���Gio.AsyncReadyCallback(���R���R���t���ReturnR!���t���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/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyt���_introspectable_param_analysisH���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
�Sn��|��j�j�|���}�|�s��t�S|�j�o|�j�S(���N(���R2���R4���R���R���t���TypeUnknownR8���R7���t���_type_is_introspectableR9���t���Mapt���key_typet
���value_typet���target_foreignt���Truet���target_fundamentalt���is_equivt���TYPE_VALISTt���TYPE_LONG_LONGt���TYPE_LONG_ULONGt���TYPE_LONG_DOUBLER���R0���R5���R1���(���R���t���typevalt���warnRG���(����(����s|���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyRJ�������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���R0���R1���RO���(���R���R%���RD���RG���(����(����s|���/home/vagrant/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���AliasRJ���RG���R4���R5���RO���(���R���t���objt���stack(����(����s|���/home/vagrant/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
���parametersRX���t���retvalRO���(���R���RZ���R[���R&���(����(����s|���/home/vagrant/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(���R1���R4���R���R���R\���R]���RH���R^���t���Classt	���InterfaceR>���R?���t���fieldsR.���RJ���R5���RO���(���R���RZ���R[���R&���t���field(����(����s|���/home/vagrant/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(���R1���R4���R���R���R\���R]���RJ���R.���R5���RO���R^���(���R���RZ���R[���R&���(����(����s|���/home/vagrant/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(���R1���R4���R���R���R_���R`���R>���R?���Ra���t���anonymous_nodeR5���RJ���R.���t
���propertiest���signalsR���RO���(���R���RZ���R[���Rb���t���propt���sig(����(����s|���/home/vagrant/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(
���R1���R4���R���R���t���Functiont���moved_toR���R5���RO���t���internal_skipped(���R���RZ���R[���(����(����s|���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyR�������s����	!	N(���t���__name__t
���__module__R���R���R���R,���RH���R4���RJ���RX���R���R���R���R���R���R���(����(����(����s|���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyR������s���				@						N(���t
���__future__R����R���R���R���t����R���R���t���annotationparserR���t���objectR���(����(����(����s|���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyt���<module>���s���