@Override public boolean isTemplateBased() { return type.isTemplateBased(); }
@Override public boolean isTemplateBased() { return type.isTemplateBased(); }
@Override public boolean isTemplateBased() { return delegate.isTemplateBased(); }
@Override public boolean isTemplateBased(Set<CsmType> visited) { if (instantiatedType == null) { return true; } if (visited.contains(this)) { return false; } visited.add(this); if (instantiatedType instanceof SafeTemplateBasedProvider) { return ((SafeTemplateBasedProvider)instantiatedType).isTemplateBased(visited); } return instantiatedType.isTemplateBased(); }
@Override public boolean isTemplateBased(Set<CsmType> visited) { if (parentType instanceof SafeTemplateBasedProvider) { if (visited.contains(this)) { return false; } // Fixed IZ#155112 : False positive error highlighting errors on inner types of templates // Check for isTemplateBased parent type and then this HashSet<CsmType> t = new HashSet<>(visited); t.add(this); boolean result = ((SafeTemplateBasedProvider)parentType).isTemplateBased(t); if (!result) { result = super.isTemplateBased(visited); } visited.add(this); return result; } else if (parentType != null && parentType.isTemplateBased()) { return true; } else { return super.isTemplateBased(visited); } }
@Override public boolean isTemplateBased(Set<CsmType> visited) { CsmClassifier classifier = getClassifier(); if (CsmKindUtilities.isTypedef(classifier) || CsmKindUtilities.isTypeAlias(classifier)) { if (visited.contains(this)) { return false; } visited.add(this); CsmType type = ((CsmTypedef)classifier).getType(); if (type instanceof SafeTemplateBasedProvider) { return ((SafeTemplateBasedProvider)type).isTemplateBased(visited); } else { return type.isTemplateBased(); } } return false; }
final CsmType returnType = ((CsmFunction)item).getReturnType(); type = returnType.getText().toString()+" "; //NOI18N if (!returnType.isTemplateBased()) { if (type.indexOf("::") < 0) { //NOI18N CsmClassifier classifier = returnType.getClassifier();
protected CsmClassifier getCastOperatorCastEntity(CsmFunction operator) { assert CsmKindUtilities.isCastOperator(operator) : "Must be cast operator!"; // NOI18N CsmType retType = operator.getReturnType(); CsmClassifier castClassifier = retType != null ? CsmClassifierResolver.getDefault().getTypeClassifier(retType, retType.getContainingFile(), retType.getStartOffset(), true) : null; if (!checkResolvedClassifier(castClassifier) || (CsmKindUtilities.isTemplateParameter(castClassifier) && !retType.isTemplateBased())) { retType = CsmExpressionResolver.resolveType(retType.getText(), retType.getContainingFile(), retType.getStartOffset(), null); castClassifier = retType != null ? CsmClassifierResolver.getDefault().getTypeClassifier(retType, retType.getContainingFile(), retType.getStartOffset(), true) : null; } if (!checkResolvedClassifier(castClassifier)) { castClassifier = null; } return castClassifier; }
if (lastType != null && instantiations != null && lastType.isTemplateBased()) { assert !instantiations.isEmpty() : "Instantiations must not be empty"; //NOI18N CsmClassifier cls = getClassifier(lastType, contextFile, endOffset); if ((result == null || result.getItems().isEmpty()) && lastType != null) { if (last) { if(lastType.isTemplateBased() || CsmFileReferences.isTemplateParameterInvolved(lastType) || CsmFileReferences.hasTemplateBasedAncestors(lastType)) { Collection<CsmObject> data = new ArrayList<CsmObject>(); if(CsmKindUtilities.isTypeBasedSpecalizationParameter(specParam)) { CsmType type = ((CsmTypeBasedSpecializationParameter)specParam).getType(); if(type != null && type.isTemplateBased()) { instantiatedByTemplateParam = true; break;