@Override public boolean hasAnyTemplateTypesInternal() { return referencedType.hasAnyTemplateTypes(); }
boolean hasAnyTemplateTypesInternal() { if (resolvedTemplateValues != null) { for (JSType templateValue : resolvedTemplateValues) { if (templateValue.hasAnyTemplateTypes()) { return true; } } } return false; }
@Override public boolean hasAnyTemplateTypesInternal() { for (JSType alternate : alternatesWithoutStucturalTyping) { if (alternate.hasAnyTemplateTypes()) { return true; } } return false; } }
@Override public boolean hasAnyTemplateTypesInternal() { return referencedType.hasAnyTemplateTypes(); }
@Override public boolean hasAnyTemplateTypesInternal() { return returnType.hasAnyTemplateTypes() || hasTemplatedParameterType(); }
boolean hasAnyTemplateTypesInternal() { for (JSType templateValue : addUnknownValues().resolvedTemplateValues) { if (templateValue.hasAnyTemplateTypes()) { return true; } } return false; }
@Override public boolean hasAnyTemplateTypesInternal() { return returnType.hasAnyTemplateTypes() || hasTemplatedParameterType(); }
@Override final boolean hasAnyTemplateTypesInternal() { return getTemplateTypeMap().numUnfilledTemplateKeys() > 0 || typeOfThis.hasAnyTemplateTypes() || call.hasAnyTemplateTypes(); }
private boolean hasTemplatedParameterType() { if (parameters != null) { for (Node paramNode = parameters.getFirstChild(); paramNode != null; paramNode = paramNode.getNext()) { JSType type = paramNode.getJSType(); if (type != null && type.hasAnyTemplateTypes()) { return true; } } } return false; } }
@Override public boolean hasAnyTemplateTypesInternal() { return getTemplateTypeMap().numUnfilledTemplateKeys() > 0 || typeOfThis.hasAnyTemplateTypes() || call.hasAnyTemplateTypes(); }
private boolean hasTemplatedParameterType() { if (parameters != null) { for (Node paramNode = parameters.getFirstChild(); paramNode != null; paramNode = paramNode.getNext()) { JSType type = paramNode.getJSType(); if (type != null && type.hasAnyTemplateTypes()) { return true; } } } return false; } }
/** * Coerces this type to an Object type, then gets the type of the property whose name is given. * * <p>Unlike {@link ObjectType#getPropertyType}, returns null if the property is not found. * * @return The property's type. {@code null} if the current type cannot have properties, or if the * type is not found. */ @Nullable public final JSType findPropertyType(String propertyName) { @Nullable JSType propertyType = findPropertyTypeWithoutConsideringTemplateTypes(propertyName); if (propertyType == null) { return null; } // Do templatized type replacing logic here, and make this method final, to prevent a subclass // from forgetting to replace template types if (getTemplateTypeMap().isEmpty() || !propertyType.hasAnyTemplateTypes()) { return propertyType; } TemplateTypeMap typeMap = getTemplateTypeMap(); TemplateTypeMapReplacer replacer = new TemplateTypeMapReplacer(registry, typeMap); return propertyType.visit(replacer); }
alternate.isNoResolvedType() || current.isNoResolvedType() || alternate.hasAnyTemplateTypes() || current.hasAnyTemplateTypes()) { if (alternate.isEquivalentTo(current, structuralSubtypesAreCollapsed)) {
alternate.isNoResolvedType() || current.isNoResolvedType() || alternate.hasAnyTemplateTypes() || current.hasAnyTemplateTypes()) { if (alternate.isEquivalentTo(current, isStructural)) {
JSType restrictedObjType = objType.restrictByNotNullOrUndefined(); if (!restrictedObjType.getTemplateTypeMap().isEmpty() && propertyType.hasAnyTemplateTypes()) { TemplateTypeMap typeMap = restrictedObjType.getTemplateTypeMap(); TemplateTypeMapReplacer replacer = new TemplateTypeMapReplacer(