�
�ZYc�����������@`�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.win64/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.win64/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.win64/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyt���_parameter_warning/���s$����c���������C`�sd��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�t�j�t�j�f���t�|�_�d��S|�r�t��|�t�j���r�|��j�|�|�d���t�|�_�d��S|�r1t��|�t�j�t�j�f���r1|�j�d��k�r1|�j�r1|�j�t�j�k�r-|��j�|�|�d���t�|�_�n��d��S|�j�d��k�r`|��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���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/vagrant/ruby-gnome2.win64/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyt���_introspectable_param_analysisH���sd����						
	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(���R3���R5���R���R���t���TypeUnknownR9���R8���t���_type_is_introspectableR:���t���Mapt���key_typet
���value_typet���target_foreignt���Truet���target_fundamentalt���is_equivt���TYPE_VALISTt���TYPE_LONG_LONGt���TYPE_LONG_ULONGt���TYPE_LONG_DOUBLER���R1���R6���R2���(���R���t���typevalt���warnRH���(����(����s|���/home/vagrant/ruby-gnome2.win64/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyRK�������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/���R0���R���R���R1���R2���RP���(���R���R%���RE���RH���(����(����s|���/home/vagrant/ruby-gnome2.win64/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���AliasRK���RH���R5���R6���RP���(���R���t���objt���stack(����(����s|���/home/vagrant/ruby-gnome2.win64/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
���parametersRY���t���retvalRP���(���R���R[���R\���R&���(����(����s|���/home/vagrant/ruby-gnome2.win64/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(���R2���R5���R���R���R]���R^���RI���R_���t���Classt	���InterfaceR?���R@���t���fieldsR/���RK���R6���RP���(���R���R[���R\���R&���t���field(����(����s|���/home/vagrant/ruby-gnome2.win64/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(���R2���R5���R���R���R]���R^���RK���R/���R6���RP���R_���(���R���R[���R\���R&���(����(����s|���/home/vagrant/ruby-gnome2.win64/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(���R2���R5���R���R���R`���Ra���R?���R@���Rb���t���anonymous_nodeR6���RK���R/���t
���propertiest���signalsR���RP���(���R���R[���R\���Rc���t���propt���sig(����(����s|���/home/vagrant/ruby-gnome2.win64/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(
���R2���R5���R���R���t���Functiont���moved_toR���R6���RP���t���internal_skipped(���R���R[���R\���(����(����s|���/home/vagrant/ruby-gnome2.win64/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyR�������s����	!	N(���t���__name__t
���__module__R���R���R���R,���RI���R5���RK���RY���R���R���R���R���R���R���(����(����(����s|���/home/vagrant/ruby-gnome2.win64/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.win64/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyt���<module>���s���