o
    uJAf'                     @  sT   d dl mZ d dlZddlmZmZmZmZ ej	rddlm
Z
 G dd deeZdS )    )annotationsN   )MesonInterpreterObjectIterableObjectMesonOperatorInvalidArguments)
SubProjectc                      sF   e Zd Zd fd	d
ZdddZdddZdddZdddZ  ZS )RangeHolderstartintstopstep
subproject'SubProject'returnNonec                  s4   t  j|d t|||| _| jtj| ji d S )N)r   )super__init__range	operatorsupdater   INDEXop_index)selfr
   r   r   r   	__class__ L/usr/lib/python3.10/site-packages/mesonbuild/interpreter/primitives/range.pyr      s
   
zRangeHolder.__init__otherc                 C  s,   z| j | W S  ty   td| dw )NzIndex z out of bounds of range.)r   
IndexErrorr   )r   r   r   r   r   r      s
   zRangeHolder.op_indexc                 C  s   d S Nr   r   r   r   r   iter_tuple_size   s   zRangeHolder.iter_tuple_sizeT.Iterator[int]c                 C  
   t | jS r    )iterr   r!   r   r   r   	iter_self"      
zRangeHolder.iter_selfc                 C  r$   r    )lenr   r!   r   r   r   size%   r'   zRangeHolder.size)
r
   r   r   r   r   r   r   r   r   r   )r   r   r   r   )r   r   )r   r#   )r   r   )	__name__
__module____qualname__r   r   r"   r&   r)   __classcell__r   r   r   r   r	      s    


r	   )
__future__r   typingTinterpreterbaser   r   r   r   TYPE_CHECKINGr   r	   r   r   r   r   <module>   s   