@Test
 public void testJoin8() {
   Stamp bExact = StampFactory.exactNonNull(getType(B.class));
   Stamp dExact = StampFactory.exact(getType(D.class));
   Stamp join = join(bExact, dExact);
   Assert.assertFalse(join.isLegal());
 }
 @Test
 public void testJoin6() {
   Stamp dExactNonNull = StampFactory.exactNonNull(getType(D.class));
   Stamp alwaysNull = StampFactory.alwaysNull();
   Stamp join = join(alwaysNull, dExactNonNull);
   Assert.assertFalse(join.isLegal());
   Assert.assertFalse(StampTool.isPointerNonNull(join));
   Assert.assertFalse(StampTool.isPointerAlwaysNull(join));
 }
 public Stamp getReturnStamp() {
   Stamp returnStamp = null;
   for (ReturnNode returnNode : getNodes(ReturnNode.TYPE)) {
     ValueNode result = returnNode.result();
     if (result != null) {
       if (returnStamp == null) {
         returnStamp = result.stamp();
       } else {
         returnStamp = returnStamp.meet(result.stamp());
       }
     }
   }
   return returnStamp;
 }
 @Override
 public boolean inferStamp() {
   return updateStamp(piStamp.improveWith(object().stamp()));
 }