本文整理了Java中com.sun.tools.javac.code.Types.isSuperType()
方法的一些代码示例,展示了Types.isSuperType()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Types.isSuperType()
方法的具体详情如下:
包路径:com.sun.tools.javac.code.Types
类名称:Types
方法名:isSuperType
[英]Is t a supertype of s?
[中]t是s的超型吗?
代码示例来源:origin: google/error-prone
/** Return whether the given try-tree will catch the given exception type. */
private boolean tryCatchesException(TryTree tryTree, Type exceptionToCatch, VisitorState state) {
Types types = state.getTypes();
return tryTree.getCatches().stream()
.anyMatch(
(CatchTree catchClause) -> {
Type catchesException = getType(catchClause.getParameter().getType());
// Examine all alternative types of a union type.
if (catchesException != null && catchesException.isUnion()) {
return Streams.stream(((UnionClassType) catchesException).getAlternativeTypes())
.anyMatch(caught -> types.isSuperType(caught, exceptionToCatch));
}
// Simple type, just check superclass.
return types.isSuperType(catchesException, exceptionToCatch);
});
}
代码示例来源:origin: com.google.errorprone/error_prone_core
/** Return whether the given try-tree will catch the given exception type. */
private boolean tryCatchesException(TryTree tryTree, Type exceptionToCatch, VisitorState state) {
Types types = state.getTypes();
return tryTree.getCatches().stream()
.anyMatch(
(CatchTree catchClause) -> {
Type catchesException = getType(catchClause.getParameter().getType());
// Examine all alternative types of a union type.
if (catchesException != null && catchesException.isUnion()) {
return Streams.stream(((UnionClassType) catchesException).getAlternativeTypes())
.anyMatch(caught -> types.isSuperType(caught, exceptionToCatch));
}
// Simple type, just check superclass.
return types.isSuperType(catchesException, exceptionToCatch);
});
}
代码示例来源:origin: org.jvnet.sorcerer/sorcerer-javac
public boolean isSubtype(Type t, Type s, boolean capture) {
if (t == s)
return true;
if (s.tag >= firstPartialTag)
return isSuperType(s, t);
Type lower = lowerBound(s);
if (s != lower)
return isSubtype(capture ? capture(t) : t, lower, false);
return isSubtype.visit(capture ? capture(t) : t, s);
}
// where
代码示例来源:origin: sc.fiji/javac
public boolean isSubtype(Type t, Type s, boolean capture) {
if (t == s)
return true;
if (s.tag >= firstPartialTag)
return isSuperType(s, t);
if (s.isCompound()) {
for (Type s2 : interfaces(s).prepend(supertype(s))) {
if (!isSubtype(t, s2, capture))
return false;
}
return true;
}
Type lower = lowerBound(s);
if (s != lower)
return isSubtype(capture ? capture(t) : t, lower, false);
return isSubtype.visit(capture ? capture(t) : t, s);
}
// where
代码示例来源:origin: org.kohsuke.sorcerer/sorcerer-javac
public boolean isSubtype(Type t, Type s, boolean capture) {
if (t == s)
return true;
t = t.unannotatedType();
s = s.unannotatedType();
if (t == s)
return true;
if (s.isPartial())
return isSuperType(s, t);
if (s.isCompound()) {
for (Type s2 : interfaces(s).prepend(supertype(s))) {
if (!isSubtype(t, s2, capture))
return false;
}
return true;
}
Type lower = lowerBound(s);
if (s != lower)
return isSubtype(capture ? capture(t) : t, lower, false);
return isSubtype.visit(capture ? capture(t) : t, s);
}
// where
代码示例来源:origin: konsoletyper/teavm-javac
public boolean isSubtype(Type t, Type s, boolean capture) {
if (t == s)
return true;
t = t.unannotatedType();
s = s.unannotatedType();
if (t == s)
return true;
if (s.isPartial())
return isSuperType(s, t);
if (s.isCompound()) {
for (Type s2 : interfaces(s).prepend(supertype(s))) {
if (!isSubtype(t, s2, capture))
return false;
}
return true;
}
// Generally, if 's' is a type variable, recur on lower bound; but
// for inference variables and intersections, we need to keep 's'
// (see JLS 4.10.2 for intersections and 18.2.3 for inference vars)
if (!t.hasTag(UNDETVAR) && !t.isCompound()) {
// TODO: JDK-8039198, bounds checking sometimes passes in a wildcard as s
Type lower = cvarLowerBound(wildLowerBound(s));
if (s != lower)
return isSubtype(capture ? capture(t) : t, lower, false);
}
return isSubtype.visit(capture ? capture(t) : t, s);
}
// where
内容来源于网络,如有侵权,请联系作者删除!