本文整理汇总了Java中com.sun.tools.javac.code.BoundKind类的典型用法代码示例。如果您正苦于以下问题:Java BoundKind类的具体用法?Java BoundKind怎么用?Java BoundKind使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
BoundKind类属于com.sun.tools.javac.code包,在下文中一共展示了BoundKind类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: Wildcard
import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
public WildcardTree Wildcard(Kind kind, Tree type) {
final BoundKind boundKind;
switch (kind) {
case UNBOUNDED_WILDCARD:
boundKind = BoundKind.UNBOUND;
break;
case EXTENDS_WILDCARD:
boundKind = BoundKind.EXTENDS;
break;
case SUPER_WILDCARD:
boundKind = BoundKind.SUPER;
break;
default:
throw new IllegalArgumentException("Unknown wildcard bound " + kind);
}
TypeBoundKind tbk = make.at(NOPOS).TypeBoundKind(boundKind);
return make.at(NOPOS).Wildcard(tbk, (JCExpression)type);
}
开发者ID:apache,项目名称:incubator-netbeans,代码行数:19,代码来源:TreeFactory.java
示例2: makeWildcard
import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
protected Type makeWildcard(Type upper, Type lower) {
BoundKind bk;
Type bound;
if (upper.hasTag(BOT)) {
upper = syms.objectType;
}
boolean isUpperObject = types.isSameType(upper, syms.objectType);
if (!lower.hasTag(BOT) && isUpperObject) {
bound = lower;
bk = SUPER;
} else {
bound = upper;
bk = isUpperObject ? UNBOUND : EXTENDS;
}
return new WildcardType(bound, bk, syms.boundClass);
}
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:17,代码来源:VarTypePrinter.java
示例3: visitWildcard
import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
@Override public void visitWildcard(JCWildcard tree) {
printNode(tree);
Object o;
// In some javacs (older ones), JCWildcard.kind is a BoundKind, which is an enum. In newer ones its a TypeBoundKind which is a JCTree, i.e. has positions.
try {
o = tree.getClass().getField("kind").get(tree);
} catch (Exception e) {
throw new RuntimeException("There's no field at all named 'kind' in JCWildcard? This is not a javac I understand.", e);
}
if (o instanceof JCTree) {
child("kind", (JCTree)o);
} else if (o instanceof BoundKind) {
property("kind", String.valueOf(o));
}
child("inner", tree.inner);
indent--;
}
开发者ID:evant,项目名称:android-retrolambda-lombok,代码行数:20,代码来源:JcTreePrinter.java
示例4: visitWildcard
import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
@Override
public void visitWildcard(JCWildcard tree) {
if (tree.kind.kind == BoundKind.UNBOUND)
result = tree.kind.toString();
else
result = tree.kind + " " + print(tree.inner);
}
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:8,代码来源:TestProcessor.java
示例5: genericMethodInvocation
import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
@Test
public void genericMethodInvocation() {
compile(
"import java.util.Collections;",
"import java.util.List;",
"class GenericTemplateExample {",
" public <E> List<E> example(List<E> list) {",
" return Collections.unmodifiableList(list);",
" }",
"}");
UTypeVar tVar = UTypeVar.create("T");
UTypeVar eVar = UTypeVar.create("E");
assertEquals(
ExpressionTemplate.create(
ImmutableClassToInstanceMap.<Annotation>builder().build(),
ImmutableList.of(eVar),
ImmutableMap.of("list", UClassType.create("java.util.List", eVar)),
UMethodInvocation.create(
UStaticIdent.create(
"java.util.Collections",
"unmodifiableList",
UForAll.create(
ImmutableList.of(tVar),
UMethodType.create(
UClassType.create("java.util.List", tVar),
UClassType.create(
"java.util.List",
UWildcardType.create(BoundKind.EXTENDS, tVar))))),
UFreeIdent.create("list")),
UClassType.create("java.util.List", eVar)),
UTemplater.createTemplate(context, getMethodDeclaration("example")));
}
开发者ID:sivakumar-kailasam,项目名称:refactor-faster,代码行数:33,代码来源:TemplatingTest.java
示例6: equality
import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
@Test
public void equality() {
UType objectType = UClassType.create("java.lang.Object", ImmutableList.<UType>of());
UType setType = UClassType.create("java.util.Set", ImmutableList.<UType>of(objectType));
new EqualsTester()
.addEqualityGroup(UWildcardType.create(BoundKind.UNBOUND, objectType)) // ?
.addEqualityGroup(UWildcardType.create(BoundKind.EXTENDS, objectType)) // ? extends Object
.addEqualityGroup(UWildcardType.create(BoundKind.EXTENDS, setType)) // ? extends Set<Object>
.addEqualityGroup(UWildcardType.create(BoundKind.SUPER, setType)) // ? super Set<Object>
.testEquals();
}
开发者ID:sivakumar-kailasam,项目名称:refactor-faster,代码行数:13,代码来源:UWildcardTypeTest.java
示例7: visitTypeReference
import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
@Override
public boolean visitTypeReference(TypeReference node) {
WildcardKind wildcard = node.astWildcard();
if (wildcard == WildcardKind.UNBOUND) {
return posSet(node, treeMaker.Wildcard(treeMaker.TypeBoundKind(BoundKind.UNBOUND), null));
}
JCExpression result = plainTypeReference(node);
result = addWildcards(node, result, wildcard);
result = addDimensions(node, result, node.astArrayDimensions());
return set(node, result);
}
开发者ID:evant,项目名称:android-retrolambda-lombok,代码行数:15,代码来源:JcTreeBuilder.java
示例8: addWildcards
import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
private JCExpression addWildcards(Node node, JCExpression type, WildcardKind wildcardKind) {
TypeBoundKind typeBoundKind;
switch (wildcardKind) {
case NONE:
return type;
case EXTENDS:
typeBoundKind = treeMaker.TypeBoundKind(BoundKind.EXTENDS);
Position jcExtendsPos = getConversionPositionInfo(node, "extends");
if (jcExtendsPos == null) {
setPos(posOfStructure(node, "extends", true), posOfStructure(node, "extends", false), typeBoundKind);
} else {
setPos(jcExtendsPos.getStart(), jcExtendsPos.getEnd(), typeBoundKind);
}
return setPos(type.pos, endPosTable.get(type), treeMaker.Wildcard(typeBoundKind, type));
case SUPER:
typeBoundKind = treeMaker.TypeBoundKind(BoundKind.SUPER);
Position jcSuperPos = getConversionPositionInfo(node, "super");
if (jcSuperPos == null) {
setPos(posOfStructure(node, "super", true), posOfStructure(node, "super", false), typeBoundKind);
} else {
setPos(jcSuperPos.getStart(), jcSuperPos.getEnd(), typeBoundKind);
}
return setPos(type.pos, endPosTable.get(type), treeMaker.Wildcard(typeBoundKind, type));
default:
throw new IllegalStateException("Unexpected unbound wildcard: " + wildcardKind);
}
}
开发者ID:evant,项目名称:android-retrolambda-lombok,代码行数:28,代码来源:JcTreeBuilder.java
示例9: visitWildcardType
import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
@Override
public String visitWildcardType(Type.WildcardType t, Void aVoid) {
StringBuilder sb = new StringBuilder();
sb.append(t.kind);
if (t.kind != BoundKind.UNBOUND) {
sb.append(t.type.accept(this, null));
}
return sb.toString();
}
开发者ID:google,项目名称:error-prone,代码行数:10,代码来源:Signatures.java
示例10: genericMethodInvocation
import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
@Test
public void genericMethodInvocation() {
compile(
"import java.util.Collections;",
"import java.util.List;",
"class GenericTemplateExample {",
" public <E> List<E> example(List<E> list) {",
" return Collections.unmodifiableList(list);",
" }",
"}");
UTypeVar tVar = UTypeVar.create("T");
UTypeVar eVar = UTypeVar.create("E");
assertEquals(
ExpressionTemplate.create(
ImmutableClassToInstanceMap.<Annotation>builder().build(),
ImmutableList.of(eVar),
ImmutableMap.of("list", UClassType.create("java.util.List", eVar)),
UMethodInvocation.create(
UStaticIdent.create(
"java.util.Collections",
"unmodifiableList",
UForAll.create(
ImmutableList.of(tVar),
UMethodType.create(
UClassType.create("java.util.List", tVar),
UClassType.create(
"java.util.List", UWildcardType.create(BoundKind.EXTENDS, tVar))))),
UFreeIdent.create("list")),
UClassType.create("java.util.List", eVar)),
UTemplater.createTemplate(context, getMethodDeclaration("example")));
}
开发者ID:google,项目名称:error-prone,代码行数:32,代码来源:TemplatingTest.java
示例11: equality
import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
@Test
public void equality() {
UType objectType = UClassType.create("java.lang.Object", ImmutableList.<UType>of());
UType setType = UClassType.create("java.util.Set", ImmutableList.<UType>of(objectType));
new EqualsTester()
.addEqualityGroup(UWildcardType.create(BoundKind.UNBOUND, objectType)) // ?
.addEqualityGroup(UWildcardType.create(BoundKind.EXTENDS, objectType)) // ? extends Object
.addEqualityGroup(UWildcardType.create(BoundKind.EXTENDS, setType)) // ? extends Set<Object>
.addEqualityGroup(UWildcardType.create(BoundKind.SUPER, setType)) // ? super Set<Object>
.testEquals();
}
开发者ID:google,项目名称:error-prone,代码行数:13,代码来源:UWildcardTypeTest.java
示例12: visitWildcard
import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
@Override
public void visitWildcard(JCWildcard tree) {
try {
print(tree.kind);
if (tree.kind.kind != BoundKind.UNBOUND)
printExpr(tree.inner);
} catch (IOException e) {
throw new UncheckedIOException(e);
}
}
开发者ID:sebastianoe,项目名称:s4j,代码行数:11,代码来源:Pretty.java
示例13: visitWildcard
import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
public void visitWildcard(JCWildcard tree) {
//- System.err.println("visitWildcard("+tree+");");//DEBUG
Type type = (tree.kind.kind == BoundKind.UNBOUND)
? syms.objectType
: attribType(tree.inner, env);
result = check(tree, new WildcardType(chk.checkRefType(tree.pos(), type),
tree.kind.kind,
syms.boundClass),
TYP, pkind, pt);
}
开发者ID:sebastianoe,项目名称:s4j,代码行数:11,代码来源:Attr.java
示例14: TypeBoundKind
import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
protected TypeBoundKind(BoundKind kind) {
this.kind = kind;
}
开发者ID:tranleduy2000,项目名称:javaide,代码行数:4,代码来源:JCTree.java
示例15: Wildcard
import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
public WildcardType Wildcard(BoundKind bk, Type bound) {
return new WildcardType(bound, bk, predef.boundClass);
}
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:4,代码来源:TypeHarness.java
示例16: TypeBoundKind
import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
public TypeBoundKind TypeBoundKind(BoundKind kind) {
return invoke(TypeBoundKind, kind);
}
开发者ID:git03394538,项目名称:lombok-ianchiu,代码行数:4,代码来源:JavacTreeMaker.java
示例17: cloneType0
import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
private static JCExpression cloneType0(JavacTreeMaker maker, JCTree in) {
if (in == null) return null;
if (in instanceof JCPrimitiveTypeTree) return (JCExpression) in;
if (in instanceof JCIdent) {
return maker.Ident(((JCIdent) in).name);
}
if (in instanceof JCFieldAccess) {
JCFieldAccess fa = (JCFieldAccess) in;
return maker.Select(cloneType0(maker, fa.selected), fa.name);
}
if (in instanceof JCArrayTypeTree) {
JCArrayTypeTree att = (JCArrayTypeTree) in;
return maker.TypeArray(cloneType0(maker, att.elemtype));
}
if (in instanceof JCTypeApply) {
JCTypeApply ta = (JCTypeApply) in;
ListBuffer<JCExpression> lb = new ListBuffer<JCExpression>();
for (JCExpression typeArg : ta.arguments) {
lb.append(cloneType0(maker, typeArg));
}
return maker.TypeApply(cloneType0(maker, ta.clazz), lb.toList());
}
if (in instanceof JCWildcard) {
JCWildcard w = (JCWildcard) in;
JCExpression newInner = cloneType0(maker, w.inner);
TypeBoundKind newKind;
switch (w.getKind()) {
case SUPER_WILDCARD:
newKind = maker.TypeBoundKind(BoundKind.SUPER);
break;
case EXTENDS_WILDCARD:
newKind = maker.TypeBoundKind(BoundKind.EXTENDS);
break;
default:
case UNBOUNDED_WILDCARD:
newKind = maker.TypeBoundKind(BoundKind.UNBOUND);
break;
}
return maker.Wildcard(newKind, newInner);
}
// This is somewhat unsafe, but it's better than outright throwing an exception here. Returning null will just cause an exception down the pipeline.
return (JCExpression) in;
}
开发者ID:git03394538,项目名称:lombok-ianchiu,代码行数:51,代码来源:JavacHandlerUtil.java
示例18: ATypeBoundKind
import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
public ATypeBoundKind(BoundKind kind) {
super(kind);
}
开发者ID:pcgomes,项目名称:javaparser2jctree,代码行数:4,代码来源:ATypeBoundKind.java
示例19: createTypeArgs
import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
protected List<JCExpression> createTypeArgs(int count, boolean addExtends, JavacNode node, List<JCExpression> typeArgs, JCTree source) {
JavacTreeMaker maker = node.getTreeMaker();
Context context = node.getContext();
if (count < 0) throw new IllegalArgumentException("count is negative");
if (count == 0) return List.nil();
ListBuffer<JCExpression> arguments = new ListBuffer<JCExpression>();
if (typeArgs != null) for (JCExpression orig : typeArgs) {
if (!addExtends) {
if (orig.getKind() == Kind.UNBOUNDED_WILDCARD || orig.getKind() == Kind.SUPER_WILDCARD) {
arguments.append(genJavaLangTypeRef(node, "Object"));
} else if (orig.getKind() == Kind.EXTENDS_WILDCARD) {
JCExpression inner;
try {
inner = (JCExpression) ((JCWildcard) orig).inner;
} catch (Exception e) {
inner = genJavaLangTypeRef(node, "Object");
}
arguments.append(cloneType(maker, inner, source, context));
} else {
arguments.append(cloneType(maker, orig, source, context));
}
} else {
if (orig.getKind() == Kind.UNBOUNDED_WILDCARD || orig.getKind() == Kind.SUPER_WILDCARD) {
arguments.append(maker.Wildcard(maker.TypeBoundKind(BoundKind.UNBOUND), null));
} else if (orig.getKind() == Kind.EXTENDS_WILDCARD) {
arguments.append(cloneType(maker, orig, source, context));
} else {
arguments.append(maker.Wildcard(maker.TypeBoundKind(BoundKind.EXTENDS), cloneType(maker, orig, source, context)));
}
}
if (--count == 0) break;
}
while (count-- > 0) {
if (addExtends) {
arguments.append(maker.Wildcard(maker.TypeBoundKind(BoundKind.UNBOUND), null));
} else {
arguments.append(genJavaLangTypeRef(node, "Object"));
}
}
return arguments.toList();
}
开发者ID:mobmead,项目名称:EasyMPermission,代码行数:46,代码来源:JavacSingularsRecipes.java
示例20: create
import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
public static UWildcardType create(BoundKind boundKind, UType bound) {
return new AutoValue_UWildcardType(boundKind, bound);
}
开发者ID:sivakumar-kailasam,项目名称:refactor-faster,代码行数:4,代码来源:UWildcardType.java
注:本文中的com.sun.tools.javac.code.BoundKind类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论