aa
com.cliffc.aa.util.Ary< E > Class Template Reference
Inheritance diagram for com.cliffc.aa.util.Ary< E >:
[legend]
Collaboration diagram for com.cliffc.aa.util.Ary< E >:
[legend]

Classes

class  Iter
 

Public Member Functions

 Ary (Class< E > clazz)
 
 Ary (E[] es)
 
 Ary (E[] es, int len)
 
Ary< E > add (E e)
 Add element in amortized constant time. More...
 
Ary< E > addAll (Ary<? extends E > c)
 
Ary< E > addAll (Collection<? extends E > c)
 
E[] asAry ()
 
at (int i)
 
atX (int i)
 
void clear ()
 Remove all elements. More...
 
void clear (int i)
 Clear element. More...
 
Ary< E > deepCopy ()
 
del (E e)
 Element removal, using '=='. More...
 
del (int i)
 Fast, constant-time, element removal. More...
 
boolean equals (Object o)
 
void fill (E e)
 
Ary< E > filter_update (Predicate< E > P)
 
int find (E e)
 Find the first matching element using ==, or -1 if none. More...
 
int find (Predicate< E > P)
 Find the first element matching predicate P, or -1 if none. More...
 
int hashCode ()
 
void insert (int i, E e)
 Slow, linear-time, element insert. More...
 
boolean isEmpty ()
 
Iterator< E > iterator ()
 
last ()
 
int len ()
 
Ary< E > map_update (Function< E, E > f)
 
pop ()
 
push (E e)
 Add element in amortized constant time. More...
 
remove (int i)
 Slow, linear-time, element removal. More...
 
boolean replace (E old, E nnn)
 Find and replace the first matching element using ==. More...
 
set (int i, E e)
 Set existing element. More...
 
Ary< E > set_len (int len)
 
setX (int i, E e)
 
void sort_update (Comparator<? super E > c)
 Sorts in-place. More...
 
String toString ()
 

Static Public Member Functions

static< X extends Comparable< X > Ary< X > merge_and (Ary< X > a0, Ary< X > a1)
 Merge-And. More...
 
static< X extends Comparable< X > Ary< X > merge_or (Ary< X > a0, Ary< X > a1)
 Merge-Or. More...
 
static< X > Ary< X > merge_or (Ary< X > a0, Ary< X > a1, Comparator< X > cmpr, Predicate< X > filter)
 Merge-Or. More...
 

Public Attributes

E[] _es
 
int _len
 

Package Functions

public< F extends E > Ary< E > addAll (F[] es)
 

Private Member Functions

void range_check (int i)
 

Detailed Description

Definition at line 11 of file Ary.java.

Constructor & Destructor Documentation

◆ Ary() [1/3]

com.cliffc.aa.util.Ary< E >.Ary ( E[]  es)

Definition at line 14 of file Ary.java.

14 { this(es,es.length); }

Referenced by com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.equals().

Here is the caller graph for this function:

◆ Ary() [2/3]

com.cliffc.aa.util.Ary< E >.Ary ( E[]  es,
int  len 
)

Definition at line 15 of file Ary.java.

15 { if( es.length==0 ) es=Arrays.copyOf(es,1); _es=es; _len=len; }

◆ Ary() [3/3]

com.cliffc.aa.util.Ary< E >.Ary ( Class< E >  clazz)

Definition at line 17 of file Ary.java.

17 { this((E[]) Array.newInstance(clazz, 1),0); }

Member Function Documentation

◆ add()

Ary<E> com.cliffc.aa.util.Ary< E >.add ( e)

Add element in amortized constant time.

Parameters
eElement to add at end of list
Returns
'this' for flow-coding

Definition at line 49 of file Ary.java.

49  {
50  if( _len >= _es.length ) _es = Arrays.copyOf(_es,Math.max(1,_es.length<<1));
51  _es[_len++] = e;
52  return this;
53  }

Referenced by com.cliffc.aa.node.MemSplitNode.add_alias(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.addAll(), com.cliffc.aa.node.FunNode.find_body(), com.cliffc.aa.Parse.func(), com.cliffc.aa.GVNGCM.gcp(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.merge_and(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.merge_or(), com.cliffc.aa.node.FunNode.split_callers(), com.cliffc.aa.Parse.stmt(), and com.cliffc.aa.Parse.type0().

Here is the caller graph for this function:

◆ addAll() [1/3]

Ary<E> com.cliffc.aa.util.Ary< E >.addAll ( Ary<? extends E >  c)
Parameters
cCollection to be added

Definition at line 163 of file Ary.java.

163  {
164  if( c==null || c._len==0 ) return this;
165  while( _len+c._len > _es.length ) _es = Arrays.copyOf(_es,_es.length<<1);
166  System.arraycopy(c._es,0,_es,_len,c._len);
167  _len += c._len;
168  return this;
169  }

◆ addAll() [2/3]

Ary<E> com.cliffc.aa.util.Ary< E >.addAll ( Collection<? extends E >  c)
Parameters
cCollection to be added

Definition at line 151 of file Ary.java.

151 { if( c!=null ) for( E e : c ) add(e); return this; }

Referenced by com.cliffc.aa.node.ScopeNode.IfScope.check(), com.cliffc.aa.node.FunNode.find_body(), and com.cliffc.aa.GVNGCM.retype_mem().

Here is the caller graph for this function:

◆ addAll() [3/3]

public<F extends E> Ary<E> com.cliffc.aa.util.Ary< E >.addAll ( F[]  es)
package
Parameters
esArray to be added

Definition at line 154 of file Ary.java.

154  {
155  if( es==null || es.length==0 ) return this;
156  while( _len+es.length > _es.length ) _es = Arrays.copyOf(_es,_es.length<<1);
157  System.arraycopy(es,0,_es,_len,es.length);
158  _len += es.length;
159  return this;
160  }

◆ asAry()

E [] com.cliffc.aa.util.Ary< E >.asAry ( )
Returns
compact array version

Definition at line 172 of file Ary.java.

172 { return Arrays.copyOf(_es,_len); }

Referenced by com.cliffc.aa.node.CallNode.err(), com.cliffc.aa.Parse.func(), com.cliffc.aa.node.PrimNode.PRIMS(), com.cliffc.aa.HM.HM8.term(), com.cliffc.aa.HM.HM6.term(), com.cliffc.aa.HM.HM7.term(), com.cliffc.aa.HM.HM9.term(), com.cliffc.aa.HM.HM.term(), com.cliffc.aa.type.TestType.testStructTuple(), com.cliffc.aa.Parse.tuple(), com.cliffc.aa.Parse.type0(), and com.cliffc.aa.type.TypeMem.update().

Here is the caller graph for this function:

◆ at()

◆ atX()

E com.cliffc.aa.util.Ary< E >.atX ( int  i)
Parameters
ielement index
Returns
element being returned, or null if OOB

Definition at line 31 of file Ary.java.

31  {
32  return i < _len ? _es[i] : null;
33  }

◆ clear() [1/2]

void com.cliffc.aa.util.Ary< E >.clear ( )

Remove all elements.

Definition at line 110 of file Ary.java.

110 { _len=0; }

◆ clear() [2/2]

void com.cliffc.aa.util.Ary< E >.clear ( int  i)

Clear element.

Does nothing if element is OOB, since these are clear by default.

Parameters
ielement to clear

Definition at line 126 of file Ary.java.

126 { if( i<_len ) _es[i]=null; }

◆ deepCopy()

Ary<E> com.cliffc.aa.util.Ary< E >.deepCopy ( )

Definition at line 333 of file Ary.java.

333  {
334  return new Ary<>(_es.clone(),_len);
335  }

Referenced by com.cliffc.aa.node.MemSplitNode.copy().

Here is the caller graph for this function:

◆ del() [1/2]

E com.cliffc.aa.util.Ary< E >.del ( e)

Element removal, using '=='.

Does not preserve order.

Parameters
eelement to be removed
Returns
element removed

Definition at line 88 of file Ary.java.

88  {
89  for( int i=0; i<_len; i++ ) {
90  E tmp = _es[i];
91  if( tmp==e ) {
92  _es[i]=_es[--_len];
93  return tmp;
94  }
95  }
96  return null;
97  }

◆ del() [2/2]

E com.cliffc.aa.util.Ary< E >.del ( int  i)

Fast, constant-time, element removal.

Does not preserve order

Parameters
ielement to be removed
Returns
element removed

Definition at line 78 of file Ary.java.

78  {
79  range_check(i);
80  E tmp = _es[i];
81  _es[i]=_es[--_len];
82  return tmp;
83  }

Referenced by com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.filter_update(), and com.cliffc.aa.HM.HM4.hm().

Here is the caller graph for this function:

◆ equals()

boolean com.cliffc.aa.util.Ary< E >.equals ( Object  o)

Definition at line 315 of file Ary.java.

315  {
316  if( this==o ) return true;
317  if( !(o instanceof Ary) ) return false;
318  Ary ary = (Ary)o;
319  if( _len != ary._len ) return false;
320  if( _es == ary._es ) return true;
321  for( int i=0; i<_len; i++ )
322  if( !(_es[i]==null ? (ary._es[i] == null) : _es[i].equals(ary._es[i])) )
323  return false;
324  return true;
325  }

◆ fill()

void com.cliffc.aa.util.Ary< E >.fill ( e)

Definition at line 112 of file Ary.java.

112 { Arrays.fill(_es,0,_len,e); }

◆ filter_update()

Ary<E> com.cliffc.aa.util.Ary< E >.filter_update ( Predicate< E >  P)
Parameters
Pfilter out elements failing to pass the predicate; updates in place and shuffles list.
Returns
this, for flow-coding

Definition at line 179 of file Ary.java.

179  {
180  for( int i=0; i<_len; i++ )
181  if( !P.test(_es[i]) )
182  del(i--);
183  return this;
184  }

◆ find() [1/2]

int com.cliffc.aa.util.Ary< E >.find ( e)

Find the first matching element using ==, or -1 if none.

Note that most del calls shuffle the list, so the first element might be random.

Parameters
eElement to find
Returns
index of first matching element, or -1 if none

Definition at line 192 of file Ary.java.

192  {
193  for( int i=0; i<_len; i++ ) if( _es[i]==e ) return i;
194  return -1;
195  }

Referenced by com.cliffc.aa.node.CallNode.err(), com.cliffc.aa.GVNGCM.gcp(), com.cliffc.aa.Env.lookup_fref(), com.cliffc.aa.HM.HM4.Syntax.more_work_impl(), com.cliffc.aa.type.TypeStruct.push(), and com.cliffc.aa.Parse.type0().

Here is the caller graph for this function:

◆ find() [2/2]

int com.cliffc.aa.util.Ary< E >.find ( Predicate< E >  P)

Find the first element matching predicate P, or -1 if none.

Note that most del calls shuffle the list, so the first element might be random.

Parameters
PPredicate to match
Returns
index of first matching element, or -1 if none

Definition at line 200 of file Ary.java.

200  {
201  for( int i=0; i<_len; i++ ) if( P.test(_es[i]) ) return i;
202  return -1;
203  }

◆ hashCode()

int com.cliffc.aa.util.Ary< E >.hashCode ( )

Definition at line 326 of file Ary.java.

326  {
327  int sum=_len;
328  for( int i=0; i<_len; i++ )
329  sum += _es[i]==null ? 0 : _es[i].hashCode();
330  return sum;
331  }

Referenced by com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.hashCode().

Here is the caller graph for this function:

◆ insert()

void com.cliffc.aa.util.Ary< E >.insert ( int  i,
e 
)

Slow, linear-time, element insert.

Preserves order.

Parameters
iindex to insert at, between 0 and _len inclusive.
eElement to insert

Definition at line 67 of file Ary.java.

67  {
68  if( i < 0 || i>_len )
69  throw new ArrayIndexOutOfBoundsException(""+i+" >= "+_len);
70  if( _len >= _es.length ) _es = Arrays.copyOf(_es,Math.max(1,_es.length<<1));
71  System.arraycopy(_es,i,_es,i+1,(_len++)-i);
72  _es[i] = e;
73  }

◆ isEmpty()

boolean com.cliffc.aa.util.Ary< E >.isEmpty ( )

◆ iterator()

Iterator<E> com.cliffc.aa.util.Ary< E >.iterator ( )
Returns
an iterator

Definition at line 291 of file Ary.java.

291 { return new Iter(); }

◆ last()

E com.cliffc.aa.util.Ary< E >.last ( )
Returns
last element

Definition at line 35 of file Ary.java.

35  {
36  range_check(0);
37  return _es[_len-1];
38  }

Referenced by com.cliffc.aa.Parse.stmt().

Here is the caller graph for this function:

◆ len()

int com.cliffc.aa.util.Ary< E >.len ( )
Returns
active list length

Definition at line 22 of file Ary.java.

22 { return _len; }

Referenced by com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.Ary(), and com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.set_len().

Here is the caller graph for this function:

◆ map_update()

Ary<E> com.cliffc.aa.util.Ary< E >.map_update ( Function< E, E >  f)
Parameters
ffunction to apply to each element. Updates in-place.

Definition at line 175 of file Ary.java.

175 { for( int i = 0; i<_len; i++ ) _es[i] = f.apply(_es[i]); return this; }

◆ merge_and()

static <X extends Comparable<X> Ary<X> com.cliffc.aa.util.Ary< E >.merge_and ( Ary< X >  a0,
Ary< X >  a1 
)
static

Merge-And.

Merge 2 sorted Arys, keeping only duplicates. Return a new sorted Ary with the merged list. Undefined if the original arrays are not sorted. Error if they are not of the same type. Elements must implement Comparable.

Parameters
a0Sorted Ary to merge
a1Sorted Ary to merge
Returns
A new sorted merged Ary

Definition at line 275 of file Ary.java.

275  {
276  int i=0, j=0;
277  Ary<X> res = new Ary<>(Arrays.copyOf(a0._es,Math.min(a0._len,a1._len)),0);
278  while( i<a0._len && j<a1._len ) {
279  X x = a0._es[i];
280  X y = a1._es[j];
281  int cmp = x.compareTo(y);
282  if( cmp<0 ) { i++; }
283  else if( cmp>0 ) { j++; }
284  else { res.add(x); i++; j++; }
285  }
286  return res;
287  }

◆ merge_or() [1/2]

static <X extends Comparable<X> Ary<X> com.cliffc.aa.util.Ary< E >.merge_or ( Ary< X >  a0,
Ary< X >  a1 
)
static

Merge-Or.

Merge 2 sorted Arys, tossing out duplicates. Return a new sorted Ary with the merged list. Undefined if the original arrays are not sorted. Error if they are not of the same type. Elements must implement Comparable.

Parameters
a0Sorted Ary to merge
a1Sorted Ary to merge
Returns
A new sorted merged Ary

Definition at line 222 of file Ary.java.

222  {
223  int i=0, j=0;
224  Ary<X> res = new Ary<>(Arrays.copyOf(a0._es,a0._len+a1._len),0);
225 
226  while( i<a0._len && j<a1._len ) {
227  X x = a0._es[i];
228  X y = a1._es[j];
229  int cmp = x.compareTo(y);
230  if( cmp<0 ) { res.add(x); i++; }
231  else if( cmp>0 ) { res.add(y); j++; }
232  else { res.add(x); i++; j++; }
233  }
234  while( i<a0._len ) res.add(a0._es[i++]);
235  while( j<a1._len ) res.add(a1._es[j++]);
236  return res;
237  }

◆ merge_or() [2/2]

static <X> Ary<X> com.cliffc.aa.util.Ary< E >.merge_or ( Ary< X >  a0,
Ary< X >  a1,
Comparator< X >  cmpr,
Predicate< X >  filter 
)
static

Merge-Or.

Merge two sorted Arys, tossing out duplicates and elements not passing the filter. Return a new sorted Ary with the merged list. Undefined if the original arrays are not sorted. Error if they are not of the same type. Elements must implement Comparable.

Parameters
a0Sorted Ary to merge
a1Sorted Ary to merge
cmprComparator
filterPredicate, null means no filter
Returns
A new sorted merged Ary

Definition at line 249 of file Ary.java.

249  {
250  int i=0, j=0;
251  Ary<X> res = new Ary<>(Arrays.copyOf(a0._es,a0._len+a1._len),0);
252 
253  while( i<a0._len && j<a1._len ) {
254  X x = a0._es[i]; if( !filter.test(x) ) { i++; continue; }
255  X y = a1._es[j]; if( !filter.test(y) ) { j++; continue; }
256  int cmp = cmpr.compare(x,y);
257  if( cmp<0 ) { res.add(x); i++; }
258  else if( cmp>0 ) { res.add(y); j++; }
259  else { res.add(x); i++; j++; }
260  }
261  while( i<a0._len ) if( filter.test(a0._es[i++]) ) res.add(a0._es[i-1]);
262  while( j<a1._len ) if( filter.test(a1._es[j++]) ) res.add(a1._es[j-1]);
263  return res;
264  }

◆ pop()

E com.cliffc.aa.util.Ary< E >.pop ( )
Returns
remove and return last element

Definition at line 41 of file Ary.java.

41  {
42  range_check(0);
43  return _es[--_len];
44  }

Referenced by com.cliffc.aa.type.TypeStruct.ax_impl_struct(), com.cliffc.aa.node.ScopeNode.IfScope.check(), com.cliffc.aa.node.MemJoinNode.combine_splits(), com.cliffc.aa.type.TypeMemPtr.depth(), com.cliffc.aa.node.FunNode.find_body(), com.cliffc.aa.GVNGCM.gcp(), com.cliffc.aa.type.TypeStruct.get_cyclic(), com.cliffc.aa.type.Type< T extends Type< T >.Pool.malloc(), com.cliffc.aa.GVNGCM.retype_mem(), and com.cliffc.aa.Parse.type0().

Here is the caller graph for this function:

◆ push()

◆ range_check()

void com.cliffc.aa.util.Ary< E >.range_check ( int  i)
private

Definition at line 307 of file Ary.java.

307  {
308  if( i < 0 || i>=_len )
309  throw new ArrayIndexOutOfBoundsException(""+i+" >= "+_len);
310  }

Referenced by com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.at(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.del(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.last(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.pop(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.remove(), and com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.set().

Here is the caller graph for this function:

◆ remove()

E com.cliffc.aa.util.Ary< E >.remove ( int  i)

Slow, linear-time, element removal.

Preserves order.

Parameters
ielement to be removed
Returns
element removed

Definition at line 102 of file Ary.java.

102  {
103  range_check(i);
104  E e = _es[i];
105  System.arraycopy(_es,i+1,_es,i,(--_len)-i);
106  return e;
107  }

Referenced by com.cliffc.aa.node.MemSplitNode.remove_alias().

Here is the caller graph for this function:

◆ replace()

boolean com.cliffc.aa.util.Ary< E >.replace ( old,
nnn 
)

Find and replace the first matching element using ==.

Parameters
oldElement to find
nnnElement replacing old
Returns
true if replacement happened

Definition at line 208 of file Ary.java.

208  {
209  for( int i=0; i<_len; i++ ) if( _es[i]==old ) { _es[i]=nnn; return true; }
210  return false;
211  }

◆ set()

E com.cliffc.aa.util.Ary< E >.set ( int  i,
e 
)

Set existing element.

Parameters
ielement to set
evalue to set
Returns
old value

Definition at line 133 of file Ary.java.

133  {
134  range_check(i);
135  E old = _es[i];
136  _es[i] = e;
137  return old;
138  }

Referenced by com.cliffc.aa.node.MemSplitNode._update(), com.cliffc.aa.node.MemSplitNode.add_alias(), com.cliffc.aa.node.MemJoinNode.combine_splits(), com.cliffc.aa.node.MemSplitNode.remove_alias(), com.cliffc.aa.HM.HM9.term(), and com.cliffc.aa.HM.HM.term().

Here is the caller graph for this function:

◆ set_len()

Ary<E> com.cliffc.aa.util.Ary< E >.set_len ( int  len)

Definition at line 140 of file Ary.java.

140  {
141  if( len > _len )
142  while( len>= _es.length ) _es = Arrays.copyOf(_es,_es.length<<1);
143  _len = len;
144  while( _es.length > (len<<1) ) // Shrink if hugely too large
145  _es = Arrays.copyOf(_es,_es.length>>1);
146  Arrays.fill(_es,len,_es.length,null);
147  return this;
148  }

Referenced by com.cliffc.aa.Parse.func().

Here is the caller graph for this function:

◆ setX()

E com.cliffc.aa.util.Ary< E >.setX ( int  i,
e 
)

Definition at line 115 of file Ary.java.

115  {
116  if( i >= _len ) Arrays.fill(_es,_len,_es.length,null);
117  while( i>= _es.length ) _es = Arrays.copyOf(_es,_es.length<<1);
118  if( i >= _len ) _len = i+1;
119  return (_es[i] = e);
120  }

Referenced by com.cliffc.aa.type.TestType.testStructTuple(), and com.cliffc.aa.type.TypeMem.update().

Here is the caller graph for this function:

◆ sort_update()

void com.cliffc.aa.util.Ary< E >.sort_update ( Comparator<? super E >  c)

Sorts in-place.

Parameters
cComparator to sort by

Definition at line 187 of file Ary.java.

187 { Arrays.sort(_es, 0, _len, c); }

Referenced by com.cliffc.aa.tvar.TV2.str().

Here is the caller graph for this function:

◆ toString()

String com.cliffc.aa.util.Ary< E >.toString ( )

Definition at line 298 of file Ary.java.

298  {
299  SB sb = new SB().p('{');
300  for( int i=0; i<_len; i++ ) {
301  if( i>0 ) sb.p(',');
302  if( _es[i] != null ) sb.p(_es[i].toString());
303  }
304  return sb.p('}').toString();
305  }

Referenced by com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.toString().

Here is the caller graph for this function:

Member Data Documentation

◆ _es

E [] com.cliffc.aa.util.Ary< E >._es

Definition at line 12 of file Ary.java.

Referenced by com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.add(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.addAll(), com.cliffc.aa.type.Type< TypeFlt >.ALL_TYPES(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.Ary(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.asAry(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.at(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.atX(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.clear(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.deepCopy(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.del(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.equals(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.fill(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.filter_update(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.find(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.hashCode(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.insert(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.last(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.map_update(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.merge_and(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.merge_or(), com.cliffc.aa.util.Ary< E >.Iter.next(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.pop(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.push(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.remove(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.replace(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.set(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.set_len(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.setX(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.sort_update(), and com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.toString().

◆ _len

int com.cliffc.aa.util.Ary< E >._len

Definition at line 13 of file Ary.java.

Referenced by com.cliffc.aa.Parse._short_circuit_expr(), com.cliffc.aa.node.MemSplitNode._update(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.add(), com.cliffc.aa.node.MemSplitNode.add_alias(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.addAll(), com.cliffc.aa.type.Type< TypeFlt >.ALL_TYPES(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.Ary(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.asAry(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.atX(), com.cliffc.aa.node.MemJoinNode.can_bypass(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.clear(), com.cliffc.aa.node.MemJoinNode.combine_splits(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.deepCopy(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.del(), com.cliffc.aa.node.Node.dumprpo(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.equals(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.fill(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.filter_update(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.find(), com.cliffc.aa.node.MemSplitNode.find_alias_index(), com.cliffc.aa.Parse.func(), com.cliffc.aa.type.TypeStruct.get_cyclic(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.hashCode(), com.cliffc.aa.util.Ary< E >.Iter.hasNext(), com.cliffc.aa.HM.HM4.hm(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.insert(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.isEmpty(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.last(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.len(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.map_update(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.merge_and(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.merge_or(), com.cliffc.aa.HM.HM4.Syntax.more_work_impl(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.pop(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.push(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.range_check(), com.cliffc.aa.type.TypeStruct.reachable(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.remove(), com.cliffc.aa.Parse.remove_unknown_callers(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.replace(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.set_len(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.setX(), com.cliffc.aa.type.TypeStruct.shrink(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.sort_update(), com.cliffc.aa.Parse.stmt(), com.cliffc.aa.node.MemSplitNode.str(), com.cliffc.aa.util.Ary< com.cliffc.aa.HM.HM3.Ident >.toString(), com.cliffc.aa.Parse.type0(), com.cliffc.aa.node.MemSplitNode.unify(), and com.cliffc.aa.node.MemSplitNode.value().


The documentation for this class was generated from the following file:
com.cliffc.aa.util.Ary.range_check
void range_check(int i)
Definition: Ary.java:307
com.cliffc.aa.util.Ary.hashCode
int hashCode()
Definition: Ary.java:326
com.cliffc.aa.util.Ary._len
int _len
Definition: Ary.java:13
com.cliffc.aa.util.Ary._es
E[] _es
Definition: Ary.java:12
com.cliffc.aa.util.Ary.toString
String toString()
Definition: Ary.java:298
com.cliffc.aa.util.Ary.add
Ary< E > add(E e)
Add element in amortized constant time.
Definition: Ary.java:49
com.cliffc.aa.util.Ary.del
E del(int i)
Fast, constant-time, element removal.
Definition: Ary.java:78
com.cliffc.aa.util.Ary.len
int len()
Definition: Ary.java:22
com.cliffc.aa.util.Ary.Ary
Ary(E[] es)
Definition: Ary.java:14