MCPcopy Create free account
hub / github.com/SeaOfNodes/Simple / meet

Method meet

chapter21/src/main/java/com/seaofnodes/simple/type/Type.java:137–149  ·  view source on GitHub ↗
(Type t)

Source from the content-addressed store, hash-verified

135
136 // ----------------------------------------------------------
137 public final Type meet(Type t) {
138 // Shortcut for the self case
139 if( t == this ) return this;
140 // Same-type is always safe in the subclasses
141 if( _type==t._type ) return xmeet(t);
142 // TypeNil vs TypeNil meet
143 if( this instanceof TypeNil ptr0 && t instanceof TypeNil ptr1 )
144 return ptr0.nmeet(ptr1);
145 // Reverse; xmeet 2nd arg is never "is_simple" and never equal to "this".
146 if( is_simple() ) return this.xmeet(t );
147 if( t.is_simple() ) return t .xmeet(this);
148 return Type.BOTTOM; // Mixing 2 unrelated types
149 }
150
151 // Compute meet right now. Overridden in subclasses.
152 // Handle cases where 'this.is_simple()' and unequal to 't'.

Callers 15

testMeetMethod · 0.95
testTypeAdHocMethod · 0.95
testLatticeTheoryMethod · 0.95
check_symmetricMethod · 0.95
assocMethod · 0.95
isaMethod · 0.95
computeMethod · 0.95
computeMethod · 0.95
computeMethod · 0.95
check_commuteMethod · 0.45
typeMethod · 0.45
parseTrinaryMethod · 0.45

Calls 3

xmeetMethod · 0.95
is_simpleMethod · 0.95
nmeetMethod · 0.45

Tested by 6

testMeetMethod · 0.76
testTypeAdHocMethod · 0.76
testLatticeTheoryMethod · 0.76
check_symmetricMethod · 0.76
assocMethod · 0.76
check_commuteMethod · 0.36