本文整理汇总了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);
}
示例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);
}
}
示例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"));
}
示例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"));
}
示例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);
}
}
示例6: createConstantJsDoc
import com.google.javascript.rhino.JSDocInfoBuilder; //导入方法依赖的package包/类
private JSDocInfo createConstantJsDoc() {
JSDocInfoBuilder builder = new JSDocInfoBuilder(false);
builder.recordConstancy();
return builder.build(null);
}
示例7: createConstantJsDoc
import com.google.javascript.rhino.JSDocInfoBuilder; //导入方法依赖的package包/类
static JSDocInfo createConstantJsDoc() {
JSDocInfoBuilder builder = new JSDocInfoBuilder(false);
builder.recordConstancy();
return builder.build();
}
示例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();
}
示例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();
}
示例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();
}
示例11: createConstantJsDoc
import com.google.javascript.rhino.JSDocInfoBuilder; //导入方法依赖的package包/类
static JSDocInfo createConstantJsDoc() {
JSDocInfoBuilder builder = new JSDocInfoBuilder(false);
builder.recordConstancy();
return builder.build(null);
}