public static String toEnumTypeString(BaseReference reference) { JSTypeExpression enumParameterType = reference.getComment().getEnumParameterType(); String overrideStringType = transformType(reference.getModel().evaluate(enumParameterType).toAnnotationString()); return overrideStringType; }
public static String toEnumTypeString(BaseReference reference) { JSTypeExpression enumParameterType = reference.getComment().getEnumParameterType(); String overrideStringType = transformType(reference.getModel().evaluate(enumParameterType).toAnnotationString(Nullability.EXPLICIT)); return overrideStringType; }
public static String toEnumTypeString(BaseReference reference) { JSTypeExpression enumParameterType = reference.getComment().getEnumParameterType(); String overrideStringType = transformType(reference.getModel().evaluate(enumParameterType).toAnnotationString()); return overrideStringType; }
@Override public void visit(NodeTraversal t, Node n, Node parent) { switch (n.getToken()) { case VAR: case LET: case CONST: if (n.getJSDocInfo() == null || n.getJSDocInfo().getEnumParameterType() == null) return; JSTypeExpression enumExp = n.getJSDocInfo().getEnumParameterType(); if (!enumExp.getRoot().isString()) return; String enumTypeStr = enumExp.getRoot().getString(); if (!enumTypeStr.equals("number") && !enumTypeStr.equals("string")) return; Node name = n.getFirstChild().detach(); Node members = name.getFirstChild().detach(); Node enumMembers = transformMembers(members, enumTypeStr.equals("number")); Node enumNode = new Node(Token.ENUM, name, enumMembers); parent.replaceChild(n, enumNode); compiler.reportChangeToEnclosingScope(parent); break; default: break; } }
&& Objects.equals(jsDoc1.getFileOverview(), jsDoc2.getFileOverview()) && Objects.equals(jsDoc1.getImplementedInterfaces(), jsDoc2.getImplementedInterfaces()) && Objects.equals(jsDoc1.getEnumParameterType(), jsDoc2.getEnumParameterType()) && Objects.equals(jsDoc1.getExtendedInterfaces(), jsDoc2.getExtendedInterfaces()) && Objects.equals(jsDoc1.getLendsName(), jsDoc2.getLendsName())
parts.add(buildAnnotationWithType("enum", info.getEnumParameterType()));
parts.add(buildAnnotationWithType("enum", info.getEnumParameterType()));
visitTypeExpression(info.getEnumParameterType(), false);
EnumType.make( qnameNode.getQualifiedName(), jsdoc.getEnumParameterType(), ImmutableSet.copyOf(propNames)));
info.getEnumParameterType().evaluate(scope, typeRegistry); enumType = typeRegistry.createEnumType(name, rValue, elementsType);
nodeToWarn, valueEnumPrimitiveType, declInfo.getEnumParameterType().evaluate(t.getTypedScope(), typeRegistry), "incompatible enum element types");
/** * <p>Checks enum aliases. * * <p>We verify that the enum element type of the enum used * for initialization is a subtype of the enum element type of * the enum the value is being copied in.</p> * * <p>Example:</p> * <pre>var myEnum = myOtherEnum;</pre> * * <p>Enum aliases are irregular, so we need special code for this :(</p> * * @param value the value used for initialization of the enum */ private void checkEnumAlias( NodeTraversal t, JSDocInfo declInfo, Node value) { if (declInfo == null || !declInfo.hasEnumParameterType()) { return; } JSType valueType = getJSType(value); if (!valueType.isEnumType()) { return; } EnumType valueEnumType = valueType.toMaybeEnumType(); JSType valueEnumPrimitiveType = valueEnumType.getElementsType().getPrimitiveType(); validator.expectCanAssignTo(t, value, valueEnumPrimitiveType, declInfo.getEnumParameterType().evaluate(t.getTypedScope(), typeRegistry), "incompatible enum element types"); }
JSType elementsType = info.getEnumParameterType().evaluate(currentScope, typeRegistry); enumType = typeRegistry.createEnumType(name, rValue, elementsType);
&& Objects.equals(jsDoc1.getFileOverview(), jsDoc2.getFileOverview()) && Objects.equals(jsDoc1.getImplementedInterfaces(), jsDoc2.getImplementedInterfaces()) && Objects.equals(jsDoc1.getEnumParameterType(), jsDoc2.getEnumParameterType()) && Objects.equals(jsDoc1.getExtendedInterfaces(), jsDoc2.getExtendedInterfaces()) && Objects.equals(jsDoc1.getLendsName(), jsDoc2.getLendsName())
builder.recordEnumParameterType(oldJSDocInfo.getEnumParameterType());
builder.recordEnumParameterType(oldJSDocInfo.getEnumParameterType());