/** @apilevel internal */
 private boolean castingConversionTo_compute(TypeDecl type) {
   if (type.isArrayDecl()) {
     return type.instanceOf(this);
   } else if (type.isClassDecl()) {
     return !type.isFinal() || type.instanceOf(this);
   } else if (type.isInterfaceDecl()) {
     for (Iterator i1 = methodsIterator(); i1.hasNext(); ) {
       MethodDecl m = (MethodDecl) i1.next();
       for (Iterator iter = type.methodsSignature(m.signature()).iterator(); iter.hasNext(); ) {
         MethodDecl n = (MethodDecl) iter.next();
         if (n.type() != m.type()) return false;
       }
     }
     return true;
   } else return super.castingConversionTo(type);
 }
 /** @apilevel internal */
 private SimpleSet ancestorMethods_compute(String signature) {
   SimpleSet set = SimpleSet.emptySet;
   for (Iterator outerIter = superinterfacesIterator(); outerIter.hasNext(); ) {
     TypeDecl typeDecl = (TypeDecl) outerIter.next();
     for (Iterator iter = typeDecl.methodsSignature(signature).iterator(); iter.hasNext(); ) {
       MethodDecl m = (MethodDecl) iter.next();
       set = set.add(m);
     }
   }
   if (!superinterfacesIterator().hasNext()) {
     for (Iterator iter = typeObject().methodsSignature(signature).iterator(); iter.hasNext(); ) {
       MethodDecl m = (MethodDecl) iter.next();
       if (m.isPublic()) set = set.add(m);
     }
   }
   return set;
 }