当前位置: 首页>>代码示例>>Java>>正文


Java BoundKind类代码示例

本文整理汇总了Java中com.sun.tools.javac.code.BoundKind的典型用法代码示例。如果您正苦于以下问题:Java BoundKind类的具体用法?Java BoundKind怎么用?Java BoundKind使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


BoundKind类属于com.sun.tools.javac.code包,在下文中一共展示了BoundKind类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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


注:本文中的com.sun.tools.javac.code.BoundKind类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。