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

Method meet

chapter24/src/main/java/com/seaofnodes/simple/type/Type.java:256–268  ·  view source on GitHub ↗
(Type t)

Source from the content-addressed store, hash-verified

254
255 // ----------------------------------------------------------
256 public final Type meet(Type t) {
257 // Shortcut for the self case
258 if( t == this ) return this;
259 // Same-type is always safe in the subclasses
260 if( _type==t._type ) return xmeet(t);
261 // TypeNil vs TypeNil meet
262 if( this instanceof TypeNil ptr0 && t instanceof TypeNil ptr1 )
263 return ptr0.nmeet(ptr1);
264 // Reverse; xmeet 2nd arg is never "is_simple" and never equal to "this".
265 if( is_simple() ) return this.xmeet(t );
266 if( t.is_simple() ) return t .xmeet(this);
267 return Type.BOTTOM; // Mixing 2 unrelated types
268 }
269
270 // Compute meet right now. Overridden in subclasses.
271 // 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
imeetMethod · 0.95
isaMethod · 0.95
computeMethod · 0.95
computeMethod · 0.95
computeMethod · 0.95
eqMethod · 0.95
computeMethod · 0.95

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