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


Java JSDocInfoBuilder.build方法代码示例

本文整理汇总了Java中com.google.javascript.rhino.JSDocInfoBuilder.build方法的典型用法代码示例。如果您正苦于以下问题:Java JSDocInfoBuilder.build方法的具体用法?Java JSDocInfoBuilder.build怎么用?Java JSDocInfoBuilder.build使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.google.javascript.rhino.JSDocInfoBuilder的用法示例。


在下文中一共展示了JSDocInfoBuilder.build方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: visitMethod

import com.google.javascript.rhino.JSDocInfoBuilder; //导入方法依赖的package包/类
/**
 * Handles transpilation of a standard class member function. Getters, setters, and the
 * constructor are not handled here.
 */
private void visitMethod(Node member, ClassDeclarationMetadata metadata) {
  Node qualifiedMemberAccess = getQualifiedMemberAccess(
      member,
      NodeUtil.newQName(compiler, metadata.fullClassName),
      NodeUtil.newQName(compiler, metadata.fullClassName + ".prototype"));
  Node method = member.getLastChild().detach();

  Node assign = IR.assign(qualifiedMemberAccess, method);
  assign.useSourceInfoIfMissingFromForTree(member);

  JSDocInfo info = member.getJSDocInfo();
  if (member.isStaticMember() && NodeUtil.referencesThis(assign.getLastChild())) {
    JSDocInfoBuilder memberDoc = JSDocInfoBuilder.maybeCopyFrom(info);
    memberDoc.recordThisType(
        new JSTypeExpression(new Node(Token.BANG, new Node(Token.QMARK)),
        member.getSourceFileName()));
    info = memberDoc.build();
  }
  if (info != null) {
    assign.setJSDocInfo(info);
  }

  Node newNode = NodeUtil.newExpr(assign);
  metadata.insertNodeAndAdvance(newNode);
}
 
开发者ID:google,项目名称:closure-compiler,代码行数:30,代码来源:Es6RewriteClass.java

示例2: setFileOverviewJsDoc

import com.google.javascript.rhino.JSDocInfoBuilder; //导入方法依赖的package包/类
private void setFileOverviewJsDoc(Node irNode) {
  // Only after we've seen all @fileoverview entries, attach the
  // last one to the root node, and copy the found license strings
  // to that node.
  JSDocInfo rootNodeJsDoc = fileLevelJsDocBuilder.build();
  if (rootNodeJsDoc != null) {
    irNode.setJSDocInfo(rootNodeJsDoc);
  }

  if (fileOverviewInfo != null) {
    if ((irNode.getJSDocInfo() != null) &&
        (irNode.getJSDocInfo().getLicense() != null)) {
      JSDocInfoBuilder builder = JSDocInfoBuilder.copyFrom(fileOverviewInfo);
      builder.recordLicense(irNode.getJSDocInfo().getLicense());
      fileOverviewInfo = builder.build();
    }
    irNode.setJSDocInfo(fileOverviewInfo);
  }
}
 
开发者ID:google,项目名称:closure-compiler,代码行数:20,代码来源:IRFactory.java

示例3: testGetAndSetJSDocInfoWithNamedType

import com.google.javascript.rhino.JSDocInfoBuilder; //导入方法依赖的package包/类
public void testGetAndSetJSDocInfoWithNamedType() throws Exception {
  JSDocInfoBuilder builder = new JSDocInfoBuilder(false);
  builder.recordDeprecated();
  JSDocInfo info = builder.build();

  assertNull(namedGoogBar.getOwnPropertyJSDocInfo("X"));
  namedGoogBar.setPropertyJSDocInfo("X", info);
  assertTrue(namedGoogBar.getOwnPropertyJSDocInfo("X").isDeprecated());
  assertPropertyTypeInferred(namedGoogBar, "X");
  assertTypeEquals(UNKNOWN_TYPE, namedGoogBar.getPropertyType("X"));
}
 
开发者ID:google,项目名称:closure-compiler,代码行数:12,代码来源:JSTypeTest.java

示例4: testGetAndSetJSDocInfoWithNoType

import com.google.javascript.rhino.JSDocInfoBuilder; //导入方法依赖的package包/类
public void testGetAndSetJSDocInfoWithNoType() throws Exception {
  JSDocInfoBuilder builder = new JSDocInfoBuilder(false);
  builder.recordDeprecated();
  JSDocInfo deprecated = builder.build();

  NO_TYPE.setPropertyJSDocInfo("X", deprecated);
  assertNull(NO_TYPE.getOwnPropertyJSDocInfo("X"));
}
 
开发者ID:google,项目名称:closure-compiler,代码行数:9,代码来源:JSTypeTest.java

示例5: visitReactCreateElement

import com.google.javascript.rhino.JSDocInfoBuilder; //导入方法依赖的package包/类
private void visitReactCreateElement(NodeTraversal t, Node callNode) {
  int paramCount = callNode.getChildCount() - 1;
  if (paramCount == 0) {
    compiler.report(JSError.make(callNode, CREATE_ELEMENT_UNEXPECTED_PARAMS));
    return;
  }

  if (addCreateElementAlias) {
    // If we're adding aliases that means we're doing an optimized build, so
    // there's no need for extra type checks.
    Node functionNameNode = callNode.getFirstChild();
    if (functionNameNode.getToken() == Token.GETPROP) {
      functionNameNode.replaceWith(IR.name(CREATE_ELEMENT_ALIAS_NAME));
    }
    return;
  }

  if (callNode.getParent().getToken() == Token.CAST) {
    // There's already a cast around the call, there's no need to add another.
    return;
  }

  // Add casts of the form /** @type {!ReactElement.<type name>} */ around
  // React.createElement calls, so that the return value of React.render will
  // have the correct type (for string types assume that it's a
  // ReactDOMElement).
  // It's too expensive to know what the type parameter node actually refers
  // to, so instead we assume that it directly references the type (this is
  // the most common case, especially with JSX). This means that we will not
  // add type annotations for cases such as:
  // var typeAlias = SomeType;
  // React.createElement(typeAlias);
  Node typeNode = callNode.getChildAtIndex(1);
  Node elementTypeExpressionNode;
  if (typeNode.isString()) {
    elementTypeExpressionNode = IR.string("ReactDOMElement");
  } else {
    String typeName = typeNode.getQualifiedName();
    if (!reactClassesByName.containsKey(typeName)) {
      return;
    }
    elementTypeExpressionNode =
        createReactElementTypeExpressionNode(typeName);
    PropTypesExtractor propTypesExtractor =
        propTypesExtractorsByName.get(typeName);
    if (propTypesExtractor != null) {
      propTypesExtractor.visitReactCreateElement(callNode);
    }
  }

  JSDocInfoBuilder jsDocBuilder = new JSDocInfoBuilder(true);
  jsDocBuilder.recordType(new JSTypeExpression(
      new Node(Token.BANG, elementTypeExpressionNode),
      callNode.getSourceFileName()));
  JSDocInfo jsDoc = jsDocBuilder.build();
  Node callNodePrevious = callNode.getPrevious();
  Node callNodeParent = callNode.getParent();
  callNode.detach();
  Node castNode = IR.cast(callNode, jsDoc);
  castNode.useSourceInfoFrom(callNode);
  if (callNodePrevious != null) {
    callNodeParent.addChildAfter(castNode, callNodePrevious);
  } else {
    callNodeParent.addChildToFront(castNode);
  }
}
 
开发者ID:mihaip,项目名称:react-closure-compiler,代码行数:67,代码来源:ReactCompilerPass.java

示例6: createConstantJsDoc

import com.google.javascript.rhino.JSDocInfoBuilder; //导入方法依赖的package包/类
private JSDocInfo createConstantJsDoc() {
  JSDocInfoBuilder builder = new JSDocInfoBuilder(false);
  builder.recordConstancy();
  return builder.build(null);
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:6,代码来源:ProcessClosurePrimitives.java

示例7: createConstantJsDoc

import com.google.javascript.rhino.JSDocInfoBuilder; //导入方法依赖的package包/类
static JSDocInfo createConstantJsDoc() {
  JSDocInfoBuilder builder = new JSDocInfoBuilder(false);
  builder.recordConstancy();
  return builder.build();
}
 
开发者ID:google,项目名称:closure-compiler,代码行数:6,代码来源:NodeUtil.java

示例8: buildNamespaceJSDoc

import com.google.javascript.rhino.JSDocInfoBuilder; //导入方法依赖的package包/类
private JSDocInfo buildNamespaceJSDoc() {
  JSDocInfoBuilder builder = new JSDocInfoBuilder(false);
  builder.recordConstancy();
  builder.recordSuppressions(ImmutableSet.of("const", "duplicate"));
  return builder.build();
}
 
开发者ID:google,项目名称:closure-compiler,代码行数:7,代码来源:ExternExportsPass.java

示例9: getConstJSDoc

import com.google.javascript.rhino.JSDocInfoBuilder; //导入方法依赖的package包/类
private static JSDocInfo getConstJSDoc(JSDocInfo oldJSDoc, JSTypeExpression newType) {
  JSDocInfoBuilder builder = JSDocInfoBuilder.maybeCopyFrom(oldJSDoc);
  builder.recordType(newType);
  builder.recordConstancy();
  return builder.build();
}
 
开发者ID:google,项目名称:closure-compiler,代码行数:7,代码来源:JsdocUtil.java

示例10: createUnknownTypeJsDocInfo

import com.google.javascript.rhino.JSDocInfoBuilder; //导入方法依赖的package包/类
private JSDocInfo createUnknownTypeJsDocInfo() {
  JSDocInfoBuilder castToUnknownBuilder = new JSDocInfoBuilder(true);
  castToUnknownBuilder.recordType(
      new JSTypeExpression(JsDocInfoParser.parseTypeString("?"), ""));
  return castToUnknownBuilder.build();
}
 
开发者ID:google,项目名称:closure-compiler,代码行数:7,代码来源:ProcessClosurePrimitives.java

示例11: createConstantJsDoc

import com.google.javascript.rhino.JSDocInfoBuilder; //导入方法依赖的package包/类
static JSDocInfo createConstantJsDoc() {
  JSDocInfoBuilder builder = new JSDocInfoBuilder(false);
  builder.recordConstancy();
  return builder.build(null);
}
 
开发者ID:nicks,项目名称:closure-compiler-old,代码行数:6,代码来源:NodeUtil.java


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