aa
com.cliffc.aa.HM.HM9.Lambda Class Reference
Inheritance diagram for com.cliffc.aa.HM.HM9.Lambda:
[legend]
Collaboration diagram for com.cliffc.aa.HM.HM9.Lambda:
[legend]

Public Member Functions

String p ()
 
final String toString ()
 

Package Functions

 Lambda (Syntax body, String... args)
 
void add_hm_work (Worklist work)
 
void add_val_work (Syntax child, Worklist work)
 
Type apply (Syntax[] args)
 
T2 debug_find ()
 
T2 find ()
 
boolean hm (Worklist work)
 
boolean more_work (Worklist work)
 
final boolean more_work_impl (Worklist work)
 
final SB p0 (SB sb, VBitSet dups)
 
SB p1 (SB sb)
 
SB p2 (SB sb, VBitSet dups)
 
void prep_lookup_deps (Ident id)
 
int prep_tree (Syntax par, VStack nongen, Worklist work)
 
final void prep_tree_impl (Syntax par, VStack nongen, Worklist work, T2 t)
 
SB str (SB sb)
 
T2 targ (int i)
 
Type val (Worklist work)
 

Package Attributes

final String[] _args
 
final Syntax _body
 
final int _fidx
 
Type _flow
 
T2 _hmt
 
VStack _nongen
 
Syntax _par
 
final T2[] _targs
 
final Type[] _types
 

Static Package Attributes

static final NonBlockingHashMapLong< LambdaFUNS = new NonBlockingHashMapLong<>()
 

Detailed Description

Definition at line 456 of file HM9.java.

Constructor & Destructor Documentation

◆ Lambda()

com.cliffc.aa.HM.HM9.Lambda.Lambda ( Syntax  body,
String...  args 
)
package

Definition at line 465 of file HM9.java.

465  {
466  _args=args;
467  _body=body;
468  // Type variables for all arguments
469  _targs = new T2[args.length];
470  for( int i=0; i<args.length; i++ ) _targs[i] = T2.make_leaf();
471  // Flow types for all arguments
472  _types = new Type[args.length];
473  for( int i=0; i<args.length; i++ ) _types[i] = Type.XSCALAR;
474  // A unique FIDX for this Lambda
475  _fidx = BitsFun.new_fidx();
476  FUNS.put(_fidx,this);
477  _flow = val(null);
478  }

References com.cliffc.aa.HM.HM9.Lambda._args, com.cliffc.aa.HM.HM9.Lambda._body, com.cliffc.aa.HM.HM9.Lambda._fidx, com.cliffc.aa.HM.HM9.Syntax._flow, com.cliffc.aa.HM.HM9.Lambda._targs, com.cliffc.aa.HM.HM9.Lambda._types, com.cliffc.aa.HM.HM9.Lambda.FUNS, com.cliffc.aa.HM.HM9.T2.make_leaf(), com.cliffc.aa.type.BitsFun.new_fidx(), com.cliffc.aa.HM.HM9.Lambda.val(), and com.cliffc.aa.type.Type< T extends Type< T >.XSCALAR.

Here is the call graph for this function:

Member Function Documentation

◆ add_hm_work()

void com.cliffc.aa.HM.HM9.Lambda.add_hm_work ( Worklist  work)
package

Reimplemented from com.cliffc.aa.HM.HM9.Syntax.

Reimplemented in com.cliffc.aa.HM.HM9.PrimSyn.

Definition at line 514 of file HM9.java.

514  {
515  work.push(_par );
516  work.push(_body);
517  for( int i=0; i<_targs.length; i++ )
518  if( targ(i).occurs_in_type(find()) ) work.addAll(targ(i)._deps);
519  }

References com.cliffc.aa.HM.HM9.Lambda._body, com.cliffc.aa.HM.HM9.Syntax._par, com.cliffc.aa.HM.HM9.Lambda._targs, com.cliffc.aa.HM.HM9.Worklist.addAll(), com.cliffc.aa.HM.HM9.Syntax.find(), com.cliffc.aa.HM.HM9.Worklist.push(), and com.cliffc.aa.HM.HM9.Lambda.targ().

Here is the call graph for this function:

◆ add_val_work()

void com.cliffc.aa.HM.HM9.Lambda.add_val_work ( Syntax  child,
Worklist  work 
)
package

Reimplemented from com.cliffc.aa.HM.HM9.Syntax.

Reimplemented in com.cliffc.aa.HM.HM9.PrimSyn.

Definition at line 523 of file HM9.java.

523  {
524  // Body changed, all Apply sites need to recompute
525  work.addAll(find()._deps);
526  }

References com.cliffc.aa.HM.HM9.Worklist.addAll(), and com.cliffc.aa.HM.HM9.Syntax.find().

Here is the call graph for this function:

◆ apply()

◆ debug_find()

T2 com.cliffc.aa.HM.HM9.Syntax.debug_find ( )
packageinherited

Definition at line 329 of file HM9.java.

329 { return _hmt.debug_find(); } // Find, without the roll-up

References com.cliffc.aa.HM.HM9.Syntax._hmt, and com.cliffc.aa.HM.HM9.T2.debug_find().

Referenced by com.cliffc.aa.HM.HM9.hm().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ find()

◆ hm()

boolean com.cliffc.aa.HM.HM9.Lambda.hm ( Worklist  work)
package

Reimplemented from com.cliffc.aa.HM.HM9.Syntax.

Reimplemented in com.cliffc.aa.HM.HM9.NotNil, com.cliffc.aa.HM.HM9.If, and com.cliffc.aa.HM.HM9.PrimSyn.

Definition at line 496 of file HM9.java.

496  {
497  boolean progress = false;
498  // The normal lambda work
499  T2 old = find();
500  if( old.is_err() ) return false;
501  if( old.is_fun() ) { // Already a function? Compare-by-parts
502  for( int i=0; i<_targs.length; i++ )
503  if( old.args(i).unify(targ(i),work) )
504  { progress=true; break; }
505  if( !progress && !old.args(_targs.length).unify(_body.find(),work) )
506  return false; // Shortcut: no progress, no allocation
507  }
508  // Make a new T2 for progress
509  T2[] targs = Arrays.copyOf(_targs,_targs.length+1);
510  targs[_targs.length] = _body.find();
511  T2 fun = T2.make_fun(BitsFun.make0(_fidx),targs);
512  return old.unify(fun,work);
513  }

References com.cliffc.aa.HM.HM9.Lambda._body, com.cliffc.aa.HM.HM9.Lambda._fidx, com.cliffc.aa.HM.HM9.Lambda._targs, com.cliffc.aa.HM.HM9.T2.args(), com.cliffc.aa.HM.HM9.Syntax.find(), com.cliffc.aa.HM.HM9.T2.is_err(), com.cliffc.aa.HM.HM9.T2.is_fun(), com.cliffc.aa.type.BitsFun.make0(), com.cliffc.aa.HM.HM9.T2.make_fun(), com.cliffc.aa.HM.HM9.Lambda.targ(), and com.cliffc.aa.HM.HM9.T2.unify().

Here is the call graph for this function:

◆ more_work()

boolean com.cliffc.aa.HM.HM9.Lambda.more_work ( Worklist  work)
package

Reimplemented from com.cliffc.aa.HM.HM9.Syntax.

Reimplemented in com.cliffc.aa.HM.HM9.PrimSyn.

Definition at line 537 of file HM9.java.

537  {
538  if( !more_work_impl(work) ) return false;
539  return _body.more_work(work);
540  }

References com.cliffc.aa.HM.HM9.Lambda._body, com.cliffc.aa.HM.HM9.Syntax.more_work(), and com.cliffc.aa.HM.HM9.Syntax.more_work_impl().

Here is the call graph for this function:

◆ more_work_impl()

final boolean com.cliffc.aa.HM.HM9.Syntax.more_work_impl ( Worklist  work)
packageinherited

Definition at line 362 of file HM9.java.

362  {
363  if( work.has(this) ) return true;
364  if( DO_HM && hm(null) ) // Any more HM work?
365  return false; // Found HM work not on worklist
366  if( DO_GCP && val(null)!=_flow )
367  return false; // Found GCP work not on worklist
368  return true;
369  }

References com.cliffc.aa.HM.HM9.Syntax._flow, com.cliffc.aa.HM.HM9.DO_GCP, com.cliffc.aa.HM.HM9.DO_HM, com.cliffc.aa.HM.HM9.Worklist.has(), com.cliffc.aa.HM.HM9.Syntax.hm(), and com.cliffc.aa.HM.HM9.Syntax.val().

Referenced by com.cliffc.aa.HM.HM9.Con.more_work(), com.cliffc.aa.HM.HM9.Ident.more_work(), com.cliffc.aa.HM.HM9.Lambda.more_work(), com.cliffc.aa.HM.HM9.Let.more_work(), com.cliffc.aa.HM.HM9.Apply.more_work(), com.cliffc.aa.HM.HM9.Struct.more_work(), com.cliffc.aa.HM.HM9.Field.more_work(), and com.cliffc.aa.HM.HM9.PrimSyn.more_work().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ p()

String com.cliffc.aa.HM.HM9.Syntax.p ( )
inherited

Definition at line 374 of file HM9.java.

374 { return p0(new SB(), new VBitSet()).toString(); }

References com.cliffc.aa.HM.HM9.Syntax.p0(), and com.cliffc.aa.util.SB.toString().

Here is the call graph for this function:

◆ p0()

final SB com.cliffc.aa.HM.HM9.Syntax.p0 ( SB  sb,
VBitSet  dups 
)
packageinherited

Definition at line 375 of file HM9.java.

375  {
376  _hmt.get_dups(dups);
377  VBitSet visit = new VBitSet();
378  p1(sb.i());
379  if( DO_HM ) _hmt .str(sb.p(", HM="), visit,dups);
380  if( DO_GCP ) _flow.str(sb.p(", CCP="),visit.clr(),null,false);
381  sb.nl();
382  return p2(sb.ii(1),dups).di(1);
383  }

References com.cliffc.aa.HM.HM9.Syntax._flow, com.cliffc.aa.HM.HM9.Syntax._hmt, com.cliffc.aa.util.VBitSet.clr(), com.cliffc.aa.util.SB.di(), com.cliffc.aa.HM.HM9.DO_GCP, com.cliffc.aa.HM.HM9.DO_HM, com.cliffc.aa.HM.HM9.T2.get_dups(), com.cliffc.aa.util.SB.i(), com.cliffc.aa.util.SB.ii(), com.cliffc.aa.util.SB.nl(), com.cliffc.aa.util.SB.p(), com.cliffc.aa.HM.HM9.Syntax.p1(), com.cliffc.aa.HM.HM9.Syntax.p2(), com.cliffc.aa.type.Type< T extends Type< T >.str(), and com.cliffc.aa.HM.HM9.T2.str().

Referenced by com.cliffc.aa.HM.HM9.Syntax.p(), com.cliffc.aa.HM.HM9.Lambda.p2(), com.cliffc.aa.HM.HM9.Let.p2(), com.cliffc.aa.HM.HM9.Apply.p2(), com.cliffc.aa.HM.HM9.Struct.p2(), and com.cliffc.aa.HM.HM9.Field.p2().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ p1()

SB com.cliffc.aa.HM.HM9.Lambda.p1 ( SB  sb)
package

Reimplemented from com.cliffc.aa.HM.HM9.Syntax.

Reimplemented in com.cliffc.aa.HM.HM9.PrimSyn.

Definition at line 484 of file HM9.java.

484  {
485  sb.p("{ ");
486  for( int i=0; i<_args.length; i++ ) {
487  sb.p(_args[i]);
488  if( DO_HM ) sb.p(", HM=" ).p(targ(i).toString());
489  if( DO_GCP ) sb.p(", CCP=").p(_types[i]);
490  sb.nl().i().p(" ");
491  }
492  return sb.p(" -> ... } ");
493  }

References com.cliffc.aa.HM.HM9.Lambda._args, com.cliffc.aa.HM.HM9.Lambda._types, com.cliffc.aa.HM.HM9.DO_GCP, com.cliffc.aa.HM.HM9.DO_HM, com.cliffc.aa.util.SB.i(), com.cliffc.aa.util.SB.nl(), com.cliffc.aa.util.SB.p(), com.cliffc.aa.HM.HM9.Lambda.targ(), and com.cliffc.aa.HM.HM9.Syntax.toString().

Here is the call graph for this function:

◆ p2()

SB com.cliffc.aa.HM.HM9.Lambda.p2 ( SB  sb,
VBitSet  dups 
)
package

Reimplemented from com.cliffc.aa.HM.HM9.Syntax.

Reimplemented in com.cliffc.aa.HM.HM9.PrimSyn.

Definition at line 494 of file HM9.java.

494 { return _body.p0(sb,dups); }

References com.cliffc.aa.HM.HM9.Lambda._body, and com.cliffc.aa.HM.HM9.Syntax.p0().

Here is the call graph for this function:

◆ prep_lookup_deps()

void com.cliffc.aa.HM.HM9.Lambda.prep_lookup_deps ( Ident  id)
package

Reimplemented from com.cliffc.aa.HM.HM9.Syntax.

Definition at line 533 of file HM9.java.

533  {
534  for( int i=0; i<_args.length; i++ )
535  if( Util.eq(_args[i],id._name) ) _targs[i].push_update(id);
536  }

References com.cliffc.aa.HM.HM9.Lambda._args, com.cliffc.aa.HM.HM9.Lambda._targs, com.cliffc.aa.util.Util.eq(), and com.cliffc.aa.HM.HM9.T2.push_update().

Here is the call graph for this function:

◆ prep_tree()

int com.cliffc.aa.HM.HM9.Lambda.prep_tree ( Syntax  par,
VStack  nongen,
Worklist  work 
)
package

Reimplemented from com.cliffc.aa.HM.HM9.Syntax.

Reimplemented in com.cliffc.aa.HM.HM9.NotNil, and com.cliffc.aa.HM.HM9.PrimSyn.

Definition at line 527 of file HM9.java.

527  {
528  prep_tree_impl(par,nongen,work,T2.make_leaf());
529  VStack vs = nongen;
530  for( T2 targ : _targs ) vs = new VStack(vs, targ);
531  return _body.prep_tree(this,vs,work) + 1;
532  }

References com.cliffc.aa.HM.HM9.Lambda._body, com.cliffc.aa.HM.HM9.Lambda._targs, com.cliffc.aa.HM.HM9.T2.make_leaf(), com.cliffc.aa.HM.HM9.Syntax.prep_tree(), com.cliffc.aa.HM.HM9.Syntax.prep_tree_impl(), and com.cliffc.aa.HM.HM9.Lambda.targ().

Here is the call graph for this function:

◆ prep_tree_impl()

final void com.cliffc.aa.HM.HM9.Syntax.prep_tree_impl ( Syntax  par,
VStack  nongen,
Worklist  work,
T2  t 
)
packageinherited

Definition at line 351 of file HM9.java.

351  {
352  _par = par;
353  _hmt = t;
354  _flow= Type.XSCALAR;
355  _nongen = nongen;
356  work.push(this);
357  }

References com.cliffc.aa.HM.HM9.Syntax._flow, com.cliffc.aa.HM.HM9.Syntax._hmt, com.cliffc.aa.HM.HM9.Syntax._nongen, com.cliffc.aa.HM.HM9.Syntax._par, com.cliffc.aa.HM.HM9.Worklist.push(), and com.cliffc.aa.type.Type< T extends Type< T >.XSCALAR.

Referenced by com.cliffc.aa.HM.HM9.Con.prep_tree(), com.cliffc.aa.HM.HM9.Ident.prep_tree(), com.cliffc.aa.HM.HM9.Lambda.prep_tree(), com.cliffc.aa.HM.HM9.Let.prep_tree(), com.cliffc.aa.HM.HM9.Apply.prep_tree(), com.cliffc.aa.HM.HM9.Struct.prep_tree(), com.cliffc.aa.HM.HM9.Field.prep_tree(), and com.cliffc.aa.HM.HM9.PrimSyn.prep_tree().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ str()

SB com.cliffc.aa.HM.HM9.Lambda.str ( SB  sb)
package

Reimplemented from com.cliffc.aa.HM.HM9.Syntax.

Reimplemented in com.cliffc.aa.HM.HM9.PrimSyn.

Definition at line 479 of file HM9.java.

479  {
480  sb.p("{ ");
481  for( String arg : _args ) sb.p(arg).p(' ');
482  return _body.str(sb.p("-> ")).p(" }");
483  }

References com.cliffc.aa.HM.HM9.Lambda._args, com.cliffc.aa.HM.HM9.Lambda._body, com.cliffc.aa.util.SB.p(), and com.cliffc.aa.HM.HM9.Syntax.str().

Here is the call graph for this function:

◆ targ()

T2 com.cliffc.aa.HM.HM9.Lambda.targ ( int  i)
package

Definition at line 495 of file HM9.java.

495 { T2 targ = _targs[i].find(); return targ==_targs[i] ? targ : (_targs[i]=targ); }

References com.cliffc.aa.HM.HM9.Lambda._targs, com.cliffc.aa.HM.HM9.T2.find(), and com.cliffc.aa.HM.HM9.Lambda.targ().

Referenced by com.cliffc.aa.HM.HM9.Lambda.add_hm_work(), com.cliffc.aa.HM.HM9.Apply.add_val_work(), com.cliffc.aa.HM.HM9.Lambda.hm(), com.cliffc.aa.HM.HM9.PrimSyn.hm(), com.cliffc.aa.HM.HM9.If.hm(), com.cliffc.aa.HM.HM9.NotNil.hm(), com.cliffc.aa.HM.HM9.Lambda.p1(), com.cliffc.aa.HM.HM9.Ident.prep_tree(), com.cliffc.aa.HM.HM9.Lambda.prep_tree(), and com.cliffc.aa.HM.HM9.Lambda.targ().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ toString()

final String com.cliffc.aa.HM.HM9.Syntax.toString ( )
inherited

Definition at line 371 of file HM9.java.

371 { return str(new SB()).toString(); }

References com.cliffc.aa.HM.HM9.Syntax.str(), and com.cliffc.aa.util.SB.toString().

Referenced by com.cliffc.aa.HM.HM9.Lambda.p1().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ val()

Type com.cliffc.aa.HM.HM9.Lambda.val ( Worklist  work)
package

Reimplemented from com.cliffc.aa.HM.HM9.Syntax.

Definition at line 520 of file HM9.java.

520 { return TypeFunPtr.make(_fidx,_args.length,Type.ANY); }

References com.cliffc.aa.HM.HM9.Lambda._args, com.cliffc.aa.HM.HM9.Lambda._fidx, com.cliffc.aa.type.Type< T extends Type< T >.ANY, and com.cliffc.aa.type.TypeFunPtr.make().

Referenced by com.cliffc.aa.HM.HM9.NotNil.apply(), and com.cliffc.aa.HM.HM9.Lambda.Lambda().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ _args

◆ _body

◆ _fidx

final int com.cliffc.aa.HM.HM9.Lambda._fidx
package

◆ _flow

◆ _hmt

◆ _nongen

VStack com.cliffc.aa.HM.HM9.Syntax._nongen
packageinherited

◆ _par

◆ _targs

◆ _types

final Type [] com.cliffc.aa.HM.HM9.Lambda._types
package

◆ FUNS


The documentation for this class was generated from the following file:
com.cliffc.aa.HM.HM9.Syntax.prep_tree_impl
final void prep_tree_impl(Syntax par, VStack nongen, Worklist work, T2 t)
Definition: HM9.java:351
com.cliffc.aa.HM.HM9.Lambda._fidx
final int _fidx
Definition: HM9.java:463
com.cliffc.aa.type.TypeFunPtr
Definition: TypeFunPtr.java:23
com.cliffc.aa.HM.HM9.Lambda._targs
final T2[] _targs
Definition: HM9.java:461
com.cliffc.aa.HM.HM9.Lambda._args
final String[] _args
Definition: HM9.java:459
com.cliffc.aa.type.BitsFun.make0
static BitsFun make0(int bit)
Definition: BitsFun.java:44
com.cliffc.aa.HM.HM9.Syntax.hm
abstract boolean hm(Worklist work)
com.cliffc.aa.util.Util.eq
static boolean eq(String s0, String s1)
Definition: Util.java:16
com.cliffc.aa.HM.HM9.Syntax.more_work
abstract boolean more_work(Worklist work)
com.cliffc.aa.util.SB.ii
SB ii(int i)
Definition: SB.java:44
com.cliffc.aa.HM.HM9.Syntax.find
T2 find()
Definition: HM9.java:325
com.cliffc.aa.HM.HM9.Lambda.val
Type val(Worklist work)
Definition: HM9.java:520
com.cliffc.aa.util.SB.di
SB di(int i)
Definition: SB.java:46
com.cliffc.aa.type.Type.XSCALAR
static final Type XSCALAR
Definition: Type.java:329
com.cliffc.aa.HM.HM9.Lambda.targ
T2 targ(int i)
Definition: HM9.java:495
com.cliffc.aa.HM.HM9.Syntax.p0
final SB p0(SB sb, VBitSet dups)
Definition: HM9.java:375
com.cliffc.aa.type.Type
an implementation of language AA
Definition: Type.java:94
com.cliffc.aa.HM.HM9.Lambda.FUNS
static final NonBlockingHashMapLong< Lambda > FUNS
Definition: HM9.java:458
com.cliffc.aa.util.VBitSet.clr
VBitSet clr()
Definition: VBitSet.java:9
com.cliffc.aa.type.Type.ANY
static final Type ANY
Definition: Type.java:325
com.cliffc.aa.HM.HM9.Syntax.toString
final String toString()
Definition: HM9.java:371
com.cliffc.aa.type.Type.str
SB str(SB sb, VBitSet dups, TypeMem mem, boolean debug)
Definition: Type.java:131
com.cliffc.aa.HM.HM9.Syntax.p1
abstract SB p1(SB sb)
com.cliffc.aa.HM.HM9.T2.find
T2 find()
Definition: HM9.java:1355
com.cliffc.aa.HM.HM9.T2.push_update
T2 push_update(Ary< Syntax > as)
Definition: HM9.java:1995
com.cliffc.aa.HM.HM9.T2.make_fun
static T2 make_fun(BitsFun fidxs, T2... args)
Definition: HM9.java:1305
com.cliffc.aa.util.Util
Definition: Util.java:5
com.cliffc.aa.HM.HM9.Syntax._hmt
T2 _hmt
Definition: HM9.java:324
com.cliffc.aa.HM.HM9.T2.debug_find
T2 debug_find()
Definition: HM9.java:1344
com.cliffc.aa.type.TypeFunPtr.make
static TypeFunPtr make(BitsFun fidxs, int nargs, Type disp)
Definition: TypeFunPtr.java:67
com.cliffc.aa.HM.HM9.Syntax.more_work_impl
final boolean more_work_impl(Worklist work)
Definition: HM9.java:362
com.cliffc.aa.HM.HM9.T2.str
SB str(SB sb, VBitSet visit, VBitSet dups)
Definition: HM9.java:2040
com.cliffc.aa.util.VBitSet
Definition: VBitSet.java:5
com.cliffc.aa.type.BitsFun
Definition: BitsFun.java:7
com.cliffc.aa.util.SB
Tight/tiny StringBuilder wrapper.
Definition: SB.java:8
com.cliffc.aa.HM.HM9.Syntax.str
abstract SB str(SB sb)
com.cliffc.aa.util.SB.nl
SB nl()
Definition: SB.java:48
com.cliffc.aa.util.SB.p
SB p(String s)
Definition: SB.java:13
com.cliffc.aa.HM.HM9.Lambda._body
final Syntax _body
Definition: HM9.java:460
com.cliffc.aa.HM.HM9.Syntax.prep_tree
abstract int prep_tree(Syntax par, VStack nongen, Worklist work)
com.cliffc.aa.HM.HM9.Syntax._nongen
VStack _nongen
Definition: HM9.java:323
com.cliffc.aa.util.SB.i
SB i(int d)
Definition: SB.java:38
com.cliffc.aa.HM.HM9.Lambda._types
final Type[] _types
Definition: HM9.java:462
com.cliffc.aa.HM.HM9.DO_GCP
static final boolean DO_GCP
Definition: HM9.java:79
com.cliffc.aa.HM.HM9.T2.unify
boolean unify(T2 that, Worklist work)
Definition: HM9.java:1528
com.cliffc.aa.HM.HM9.Syntax.p2
abstract SB p2(SB sb, VBitSet dups)
com.cliffc.aa.type.BitsFun.new_fidx
static int new_fidx(int par)
Definition: BitsFun.java:25
com.cliffc.aa.HM.HM9.DO_HM
static final boolean DO_HM
Definition: HM9.java:78
com.cliffc.aa.HM.HM9.Syntax._flow
Type _flow
Definition: HM9.java:332
com.cliffc.aa.util.SB.toString
String toString()
Definition: SB.java:62
com.cliffc.aa.HM.HM9.T2.get_dups
VBitSet get_dups(VBitSet dups)
Definition: HM9.java:2025
com.cliffc.aa.HM.HM9.T2.make_leaf
static T2 make_leaf()
Definition: HM9.java:1303
com.cliffc.aa.HM.HM9.Syntax.val
abstract Type val(Worklist work)
com.cliffc.aa.HM.HM9.Syntax._par
Syntax _par
Definition: HM9.java:322