com.sun.tools.javac.code.Types.insert()方法的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(4.8k)|赞(0)|评价(0)|浏览(112)

本文整理了Java中com.sun.tools.javac.code.Types.insert()方法的一些代码示例,展示了Types.insert()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Types.insert()方法的具体详情如下:
包路径:com.sun.tools.javac.code.Types
类名称:Types
方法名:insert

Types.insert介绍

[英]Insert a type in a closure
[中]

代码示例

代码示例来源:origin: org.jvnet.sorcerer/sorcerer-javac

/**
 * Insert a type in a closure
 */
public List<Type> insert(List<Type> cl, Type t) {
  if (cl.isEmpty() || t.tsym.precedes(cl.head.tsym, this)) {
    return cl.prepend(t);
  } else if (cl.head.tsym.precedes(t.tsym, this)) {
    return insert(cl.tail, t).prepend(cl.head);
  } else {
    return cl;
  }
}

代码示例来源:origin: org.kohsuke.sorcerer/sorcerer-javac

/**
 * Insert a type in a closure
 */
public List<Type> insert(List<Type> cl, Type t) {
  if (cl.isEmpty() || t.tsym.precedes(cl.head.tsym, this)) {
    return cl.prepend(t);
  } else if (cl.head.tsym.precedes(t.tsym, this)) {
    return insert(cl.tail, t).prepend(cl.head);
  } else {
    return cl;
  }
}

代码示例来源:origin: sc.fiji/javac

/**
 * Insert a type in a closure
 */
public List<Type> insert(List<Type> cl, Type t) {
  if (cl.isEmpty() || t.tsym.precedes(cl.head.tsym, this)) {
    return cl.prepend(t);
  } else if (cl.head.tsym.precedes(t.tsym, this)) {
    return insert(cl.tail, t).prepend(cl.head);
  } else {
    return cl;
  }
}

代码示例来源:origin: konsoletyper/teavm-javac

/**
 * Insert a type in a closure
 */
public List<Type> insert(List<Type> cl, Type t) {
  if (cl.isEmpty()) {
    return cl.prepend(t);
  } else if (t.tsym == cl.head.tsym) {
    return cl;
  } else if (t.tsym.precedes(cl.head.tsym, this)) {
    return cl.prepend(t);
  } else {
    // t comes after head, or the two are unrelated
    return insert(cl.tail, t).prepend(cl.head);
  }
}

代码示例来源:origin: sc.fiji/javac

private List<Type> superClosure(Type t, Type s) {
  List<Type> cl = List.nil();
  for (List<Type> l = interfaces(t); l.nonEmpty(); l = l.tail) {
    if (isSubtype(s, erasure(l.head))) {
      cl = insert(cl, l.head);
    } else {
      cl = union(cl, superClosure(l.head, s));
    }
  }
  return cl;
}

代码示例来源:origin: org.kohsuke.sorcerer/sorcerer-javac

private List<Type> superClosure(Type t, Type s) {
  List<Type> cl = List.nil();
  for (List<Type> l = interfaces(t); l.nonEmpty(); l = l.tail) {
    if (isSubtype(s, erasure(l.head))) {
      cl = insert(cl, l.head);
    } else {
      cl = union(cl, superClosure(l.head, s));
    }
  }
  return cl;
}

代码示例来源:origin: org.jvnet.sorcerer/sorcerer-javac

private List<Type> superClosure(Type t, Type s) {
  List<Type> cl = List.nil();
  for (List<Type> l = interfaces(t); l.nonEmpty(); l = l.tail) {
    if (isSubtype(s, erasure(l.head))) {
      cl = insert(cl, l.head);
    } else {
      cl = union(cl, superClosure(l.head, s));
    }
  }
  return cl;
}

代码示例来源:origin: konsoletyper/teavm-javac

private List<Type> superClosure(Type t, Type s) {
  List<Type> cl = List.nil();
  for (List<Type> l = interfaces(t); l.nonEmpty(); l = l.tail) {
    if (isSubtype(s, erasure(l.head))) {
      cl = insert(cl, l.head);
    } else {
      cl = union(cl, superClosure(l.head, s));
    }
  }
  return cl;
}

代码示例来源:origin: org.jvnet.sorcerer/sorcerer-javac

/**
 * Returns the closure of a class or interface type.
 */
public List<Type> closure(Type t) {
  List<Type> cl = closureCache.get(t);
  if (cl == null) {
    Type st = supertype(t);
    if (!t.isCompound()) {
      if (st.tag == CLASS) {
        cl = insert(closure(st), t);
      } else if (st.tag == TYPEVAR) {
        cl = closure(st).prepend(t);
      } else {
        cl = List.of(t);
      }
    } else {
      cl = closure(supertype(t));
    }
    for (List<Type> l = interfaces(t); l.nonEmpty(); l = l.tail)
      cl = union(cl, closure(l.head));
    closureCache.put(t, cl);
  }
  return cl;
}

代码示例来源:origin: sc.fiji/javac

/**
 * Returns the closure of a class or interface type.
 */
public List<Type> closure(Type t) {
  List<Type> cl = closureCache.get(t);
  if (cl == null) {
    Type st = supertype(t);
    if (!t.isCompound()) {
      if (st.tag == CLASS) {
        cl = insert(closure(st), t);
      } else if (st.tag == TYPEVAR) {
        cl = closure(st).prepend(t);
      } else {
        cl = List.of(t);
      }
    } else {
      cl = closure(supertype(t));
    }
    for (List<Type> l = interfaces(t); l.nonEmpty(); l = l.tail)
      cl = union(cl, closure(l.head));
    closureCache.put(t, cl);
  }
  return cl;
}

代码示例来源:origin: org.kohsuke.sorcerer/sorcerer-javac

/**
 * Returns the closure of a class or interface type.
 */
public List<Type> closure(Type t) {
  List<Type> cl = closureCache.get(t);
  if (cl == null) {
    Type st = supertype(t);
    if (!t.isCompound()) {
      if (st.hasTag(CLASS)) {
        cl = insert(closure(st), t);
      } else if (st.hasTag(TYPEVAR)) {
        cl = closure(st).prepend(t);
      } else {
        cl = List.of(t);
      }
    } else {
      cl = closure(supertype(t));
    }
    for (List<Type> l = interfaces(t); l.nonEmpty(); l = l.tail)
      cl = union(cl, closure(l.head));
    closureCache.put(t, cl);
  }
  return cl;
}

代码示例来源:origin: konsoletyper/teavm-javac

/**
 * Returns the closure of a class or interface type.
 */
public List<Type> closure(Type t) {
  List<Type> cl = closureCache.get(t);
  if (cl == null) {
    Type st = supertype(t);
    if (!t.isCompound()) {
      if (st.hasTag(CLASS)) {
        cl = insert(closure(st), t);
      } else if (st.hasTag(TYPEVAR)) {
        cl = closure(st).prepend(t);
      } else {
        cl = List.of(t);
      }
    } else {
      cl = closure(supertype(t));
    }
    for (List<Type> l = interfaces(t); l.nonEmpty(); l = l.tail)
      cl = union(cl, closure(l.head));
    closureCache.put(t, cl);
  }
  return cl;
}

代码示例来源:origin: konsoletyper/teavm-javac

Type lower = cvarLowerBound(bound);
if (bound != lower && !lower.hasTag(BOT))
  lowers = insert(lowers, lower);

相关文章

Types类方法