public SubclassRelationship( SubclassType type, Node subclassNode, Node superclassNode) { Preconditions.checkArgument( subclassNode.isQualifiedName(), "Expected qualified name, found: %s", subclassNode); Preconditions.checkArgument( superclassNode.isQualifiedName(), "Expected qualified name, found: %s", superclassNode); this.type = type; this.subclassName = subclassNode.getQualifiedName(); this.superclassName = superclassNode.getQualifiedName(); } }
PropertyWrite(Node assignedAt) { checkArgument(assignedAt.isQualifiedName()); this.assignedAt = assignedAt; this.qualifiedName = assignedAt.getQualifiedName(); }
private static boolean isAssertionMethodName(Node fnName) { if (!fnName.isQualifiedName()) { return false; } String originalQname = fnName.getOriginalQualifiedName(); return originalQname.contains("Asserts") && originalQname.contains(".$assert"); } }
private static boolean isEqualitySameMethodName(Node fnName) { if (!fnName.isQualifiedName()) { return false; } // NOTE: This should be rewritten to use method name + file name of definition site // like other J2CL passes, which is more precise. String originalQname = fnName.getOriginalQualifiedName(); return originalQname.endsWith(".$same") && originalQname.contains("Equality"); } }
private void maybeAddProvidedName(Node n) { Node name = n.getFirstChild(); if (name.isQualifiedName()) { providedNames.add(name.getQualifiedName()); } }
private boolean needsExtendsDecomposing(Node classNode) { checkArgument(classNode.isClass()); Node superClassNode = classNode.getSecondChild(); return !superClassNode.isEmpty() & !superClassNode.isQualifiedName(); }
private boolean isCandidateNode(Node n) { switch(n.getToken()) { case GETPROP: return n.getFirstChild().isQualifiedName(); case NAME: return !n.getString().isEmpty(); default: return false; } }
private static boolean isTypedRhs(Node rhs) { return rhs.isFunction() || rhs.isClass() || NodeUtil.isCallTo(rhs, "goog.defineClass") || (rhs.isQualifiedName() && rhs.matchesQualifiedName("goog.abstractMethod")) || (rhs.isQualifiedName() && rhs.matchesQualifiedName("goog.nullFunction")); }
protected boolean isAssertionCall(Node n) { if (n.isCall() && n.getFirstChild().isQualifiedName()) { Node target = n.getFirstChild(); for (int i = 0; i < assertionsFunctionNames.size(); i++) { if (target.matchesQualifiedName(assertionsFunctionNames.get(i))) { return true; } } } return false; }
private void processDeclarationWithRhs(NodeTraversal t, Node lhs) { checkArgument( lhs.isQualifiedName() || lhs.isStringKey() || lhs.isDestructuringLhs(), lhs); checkState(NodeUtil.getRValueOfLValue(lhs) != null, lhs); if (!PotentialDeclaration.isConstToBeInferred(lhs)) { return; } processConstWithRhs(t, lhs); }
private boolean allowLoosePropertyAccessOnNode(Node n) { Node parent = n.getParent(); return NodeUtil.isPropertyTest(compiler, n) // Stub property declaration || (n.isQualifiedName() && parent.isExprResult()); }
private Node createNewSuperCall(Node superClassQNameNode, Node superCall, JSType thisType) { checkArgument(superClassQNameNode.isQualifiedName(), superClassQNameNode); checkArgument(superCall.isCall(), superCall); Node callee = superCall.getFirstChild(); if (callee.isSuper()) { return createNewSuperCallWithDotCall(superClassQNameNode, superCall, thisType); } else { return createNewSuperCallWithDotApply(superClassQNameNode, superCall, thisType); } }
/** Returns whether of not the given name is valid target for the result of goog.getMsg */ private boolean isValidMsgName(Node nameNode) { if (nameNode.isName() || nameNode.isStringKey()) { return nameNode.getString().startsWith("MSG_"); } else if (nameNode.isQualifiedName()) { return nameNode.getLastChild().getString().startsWith("MSG_"); } else { return false; } }
/** Is this the LHS of a goog.module export? i.e. Either "exports" or "exports.name" */ private boolean isExportLhs(Node lhs) { if (!lhs.isQualifiedName()) { return false; } return lhs.matchesQualifiedName("exports") || (lhs.isGetProp() && lhs.getFirstChild().matchesQualifiedName("exports")); }
static PotentialDeclaration fromName(Node nameNode) { checkArgument(nameNode.isQualifiedName(), nameNode); Node rhs = NodeUtil.getRValueOfLValue(nameNode); if (ClassUtil.isThisProp(nameNode)) { String name = ClassUtil.getPrototypeNameOfThisProp(nameNode); return new ThisPropDeclaration(name, nameNode, rhs); } return new NameDeclaration(nameNode.getQualifiedName(), nameNode, rhs); }
/** * True if targetNode is a qualified name and the valueNode is of the form `targetQualifiedName || * localValue`. */ private static boolean isLocalDefaultValueAssignment(Node targetNode, Node valueNode) { return valueNode.isOr() && targetNode.isQualifiedName() && valueNode.getFirstChild().isEquivalentTo(targetNode) && NodeUtil.evaluatesToLocalValue(valueNode.getLastChild()); }
private static boolean isPossibleMixinApplication(Node lvalue, Node rvalue) { if (isInExternFile(lvalue)) { return true; } JSDocInfo jsdoc = NodeUtil.getBestJSDocInfo(lvalue); return jsdoc != null && jsdoc.isConstructor() && jsdoc.getImplementedInterfaceCount() > 0 && lvalue.isQualifiedName() && rvalue.isCall(); }
private JSTypeExpression getSuperclassFor(Node superNode) { final String superName; if (superNode.isQualifiedName()) { superName = superNode.getQualifiedName(); } else { checkState(NodeUtil.isCallTo(superNode, "goog.module.get")); superName = superNode.getLastChild().getString(); } return new JSTypeExpression(new Node(Token.BANG, IR.string(superName)), VIRTUAL_FILE); }
private boolean isPrivate(Node nameNode) { if (nameNode.isQualifiedName() && compiler.getCodingConvention().isPrivate(nameNode.getQualifiedName())) { return true; } JSDocInfo info = NodeUtil.getBestJSDocInfo(nameNode); return info != null && info.getVisibility().equals(Visibility.PRIVATE); } }
private void identifyNameNode( Node nameNode, JSDocInfo info) { if (info != null && nameNode.isQualifiedName()) { if (info.hasEnumParameterType()) { registry.identifyNonNullableName(nameNode.getQualifiedName()); } else if (info.hasTypedefType()) { registry.identifyNonNullableName(nameNode.getQualifiedName()); } } } }