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

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

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

Types.disjointTypes介绍

暂无

代码示例

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

private boolean sideCastFinal(Type from, Type to, Warner warn) {
  // We are casting from type $from$ to type $to$, which are
  // unrelated types one of which is final and the other of
  // which is an interface.  This method
  // tries to reject a cast by transferring type parameters
  // from the final class to the interface.
  boolean reverse = false;
  Type target = to;
  if ((to.tsym.flags() & INTERFACE) == 0) {
    assert (from.tsym.flags() & INTERFACE) != 0;
    reverse = true;
    to = from;
    from = target;
  }
  assert (from.tsym.flags() & FINAL) != 0;
  Type t1 = asSuper(from, to.tsym);
  if (t1 == null) return false;
  Type t2 = to;
  if (disjointTypes(t1.getTypeArguments(), t2.getTypeArguments()))
    return false;
  if (!source.allowCovariantReturns())
    // reject if there is a common method signature with
    // incompatible return types.
    chk.checkCompatibleAbstracts(warn.pos(), from, to);
  if (!isReifiable(target) &&
    (reverse ? giveWarning(t2, t1) : giveWarning(t1, t2)))
    warn.warnUnchecked();
  return true;
}

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

private boolean sideCastFinal(Type from, Type to, Warner warn) {
  // We are casting from type $from$ to type $to$, which are
  // unrelated types one of which is final and the other of
  // which is an interface.  This method
  // tries to reject a cast by transferring type parameters
  // from the final class to the interface.
  boolean reverse = false;
  Type target = to;
  if ((to.tsym.flags() & INTERFACE) == 0) {
    assert (from.tsym.flags() & INTERFACE) != 0;
    reverse = true;
    to = from;
    from = target;
  }
  assert (from.tsym.flags() & FINAL) != 0;
  Type t1 = asSuper(from, to.tsym);
  if (t1 == null) return false;
  Type t2 = to;
  if (disjointTypes(t1.getTypeArguments(), t2.getTypeArguments()))
    return false;
  if (!source.allowCovariantReturns())
    // reject if there is a common method signature with
    // incompatible return types.
    chk.checkCompatibleAbstracts(warn.pos(), from, to);
  if (!isReifiable(target) &&
    (reverse ? giveWarning(t2, t1) : giveWarning(t1, t2)))
    warn.warnUnchecked();
  return true;
}

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

private boolean sideCastFinal(Type from, Type to, Warner warn) {
  // We are casting from type $from$ to type $to$, which are
  // unrelated types one of which is final and the other of
  // which is an interface.  This method
  // tries to reject a cast by transferring type parameters
  // from the final class to the interface.
  boolean reverse = false;
  Type target = to;
  if ((to.tsym.flags() & INTERFACE) == 0) {
    Assert.check((from.tsym.flags() & INTERFACE) != 0);
    reverse = true;
    to = from;
    from = target;
  }
  Assert.check((from.tsym.flags() & FINAL) != 0);
  Type t1 = asSuper(from, to.tsym);
  if (t1 == null) return false;
  Type t2 = to;
  if (disjointTypes(t1.getTypeArguments(), t2.getTypeArguments()))
    return false;
  if (!allowCovariantReturns)
    // reject if there is a common method signature with
    // incompatible return types.
    chk.checkCompatibleAbstracts(warn.pos(), from, to);
  if (!isReifiable(target) &&
    (reverse ? giveWarning(t2, t1) : giveWarning(t1, t2)))
    warn.warn(LintCategory.UNCHECKED);
  return true;
}

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

private boolean sideCastFinal(Type from, Type to, Warner warn) {
  // We are casting from type $from$ to type $to$, which are
  // unrelated types one of which is final and the other of
  // which is an interface.  This method
  // tries to reject a cast by transferring type parameters
  // from the final class to the interface.
  boolean reverse = false;
  Type target = to;
  if ((to.tsym.flags() & INTERFACE) == 0) {
    Assert.check((from.tsym.flags() & INTERFACE) != 0);
    reverse = true;
    to = from;
    from = target;
  }
  Assert.check((from.tsym.flags() & FINAL) != 0);
  Type t1 = asSuper(from, to.tsym);
  if (t1 == null) return false;
  Type t2 = to;
  if (disjointTypes(t1.getTypeArguments(), t2.getTypeArguments()))
    return false;
  if (!allowCovariantReturns)
    // reject if there is a common method signature with
    // incompatible return types.
    chk.checkCompatibleAbstracts(warn.pos(), from, to);
  if (!isReifiable(target) &&
    (reverse ? giveWarning(t2, t1) : giveWarning(t1, t2)))
    warn.warn(LintCategory.UNCHECKED);
  return true;
}

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

assert a.tsym == highSub.tsym && a.tsym == lowSub.tsym
  : a.tsym + " != " + highSub.tsym + " != " + lowSub.tsym;
if (!disjointTypes(aHigh.getTypeArguments(), highSub.getTypeArguments())
  && !disjointTypes(aHigh.getTypeArguments(), lowSub.getTypeArguments())
  && !disjointTypes(aLow.getTypeArguments(), highSub.getTypeArguments())
  && !disjointTypes(aLow.getTypeArguments(), lowSub.getTypeArguments())) {
  if (upcast ? giveWarning(a, highSub) || giveWarning(a, lowSub)
        : giveWarning(highSub, a) || giveWarning(lowSub, a))

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

assert a.tsym == highSub.tsym && a.tsym == lowSub.tsym
  : a.tsym + " != " + highSub.tsym + " != " + lowSub.tsym;
if (!disjointTypes(aHigh.getTypeArguments(), highSub.getTypeArguments())
  && !disjointTypes(aHigh.getTypeArguments(), lowSub.getTypeArguments())
  && !disjointTypes(aLow.getTypeArguments(), highSub.getTypeArguments())
  && !disjointTypes(aLow.getTypeArguments(), lowSub.getTypeArguments())) {
  if (upcast ? giveWarning(a, highSub) || giveWarning(a, lowSub)
        : giveWarning(highSub, a) || giveWarning(lowSub, a))

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

Type t1 = asSuper(from, commonSupers.head.tsym);
if (disjointTypes(t1.getTypeArguments(), t2.getTypeArguments()))
  return false;
giveWarning = giveWarning || (reverse ? giveWarning(t2, t1) : giveWarning(t1, t2));

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

Type t1 = asSuper(from, commonSupers.head.tsym);
if (disjointTypes(t1.getTypeArguments(), t2.getTypeArguments()))
  return false;
giveWarning = giveWarning || (reverse ? giveWarning(t2, t1) : giveWarning(t1, t2));

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

Type t1 = asSuper(from, commonSupers.head.tsym);
if (disjointTypes(t1.getTypeArguments(), t2.getTypeArguments()))
  return false;
giveWarning = giveWarning || (reverse ? giveWarning(t2, t1) : giveWarning(t1, t2));

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

Assert.error(a.tsym + " != " + highSub.tsym + " != " + lowSub.tsym);
if (!disjointTypes(aHigh.allparams(), highSub.allparams())
  && !disjointTypes(aHigh.allparams(), lowSub.allparams())
  && !disjointTypes(aLow.allparams(), highSub.allparams())
  && !disjointTypes(aLow.allparams(), lowSub.allparams())) {
  if (upcast ? giveWarning(a, b) :
    giveWarning(b, a))

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

Type t1 = asSuper(from, commonSupers.head.tsym);
if (disjointTypes(t1.getTypeArguments(), t2.getTypeArguments()))
  return false;
giveWarning = giveWarning || (reverse ? giveWarning(t2, t1) : giveWarning(t1, t2));

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

Assert.error(a.tsym + " != " + highSub.tsym + " != " + lowSub.tsym);
if (!disjointTypes(aHigh.allparams(), highSub.allparams())
  && !disjointTypes(aHigh.allparams(), lowSub.allparams())
  && !disjointTypes(aLow.allparams(), highSub.allparams())
  && !disjointTypes(aLow.allparams(), lowSub.allparams())) {
  if (upcast ? giveWarning(a, b) :
    giveWarning(b, a))

相关文章

Types类方法