@Override public CsmType[] extract(CsmType type) { CsmFunctionPointerType funPtrType = tryGetFunctionPointerType(type); if (funPtrType != null) { Collection<CsmParameter> params = funPtrType.getParameters(); if (params != null && index < params.size()) { int current = 0; Iterator<CsmParameter> paramsIter = params.iterator(); while (index != current) { paramsIter.next(); ++current; } CsmParameter param = paramsIter.next(); return new CsmType[]{param.getType()}; } } return null; }
public static void appendParametersSignature(Collection<CsmParameter> params, StringBuilder sb) { sb.append('('); int limit = 0; for (Iterator<CsmParameter> iter = params.iterator(); iter.hasNext();) { if (limit >= PARAMETERS_LIMIT) { break; } limit++; CsmParameter param = iter.next(); CsmType type = param.getType(); if (type != null) { sb.append(type.getCanonicalText()); if (iter.hasNext()) { sb.append(','); } } else if (param.isVarArgs()) { sb.append("..."); // NOI18N } } sb.append(')'); }
private boolean isCopyConstructor(CsmClass cls, CsmConstructor constructor) { Collection<CsmParameter> parameters = constructor.getParameters(); if (parameters.size() == 1) { CsmParameter p = parameters.iterator().next(); CsmType paramType = p.getType(); if (paramType.isReference()) { if (cls.equals(paramType.getClassifier())) { return true; } } } return false; } }
private boolean isCopyConstructor(CsmClass cls, CsmConstructor constructor) { Collection<CsmParameter> parameters = constructor.getParameters(); if (parameters.size() == 1) { CsmParameter p = parameters.iterator().next(); CsmType paramType = p.getType(); if (paramType.isReference()) { if (cls.equals(paramType.getClassifier())) { return true; } } } return false; } }
private boolean isCopyConstructor(CsmClass cls, CsmConstructor constructor) { Collection<CsmParameter> parameters = constructor.getParameters(); if (parameters.size() == 1) { CsmParameter p = parameters.iterator().next(); CsmType paramType = p.getType(); if (paramType.isReference()) { if (cls.equals(paramType.getClassifier())) { return true; } } } return false; } }
public static boolean hasSetter(CsmField field, Map<String, List<CsmMethod>> methods, boolean isUpperCase) { String setter = computeSetterName(field, isUpperCase); List<CsmMethod> candidates = methods.get(setter); if (candidates != null) { CsmType type = field.getType(); for (CsmMethod candidate : candidates) { Collection<CsmParameter> parameters = candidate.getParameters(); if (getTypeKind(candidate.getReturnType()) == TypeKind.VOID && parameters.size() == 1 && isSameType(parameters.iterator().next().getType(), type)) { return true; } } } return false; } //
private static void addSignature(CsmFunction item, StringBuilder sb) { //sb.append(item.getSignature()); sb.append(item.getName()); //sb.append(parameterList.getText()); sb.append('('); //NOI18N boolean first = true; for(CsmParameter param : ((CsmFunction)item).getParameterList().getParameters()) { if (!first) { sb.append(','); //NOI18N sb.append(' '); //NOI18N } first = false; if (param.isVarArgs()) { sb.append("..."); // NOI18N } else { CsmType type = param.getType(); if (type != null) { sb.append(type.getText()); sb.append(' '); sb.append(param.getName()); } } } sb.append(')'); //NOI18N if(CsmKindUtilities.isMethod(item) && ((CsmMethod)item).isConst()) { sb.append(" const"); // NOI18N } }
public Parameter(CsmParameter parameter, CsmInstantiation instantiation) { super(parameter, instantiation.getMapping()); this.type = parameter.isVarArgs() ? TypeFactory.getVarArgType() : createType(parameter.getType(), instantiation); }
break; CsmType paramType = param.getType(); DefaultCalcTemplateTypeStrategy calcStrategy = new DefaultCalcTemplateTypeStrategy(CalcTemplateTypeStrategy.Error.MatchQualsError); if (CsmKindUtilities.isTemplateParameterType(paramType) && paramIndex == funParams.size() - 1
sb.append(par.getDisplayText()); } else { CsmType type = par.getType(); if (type != null) { sb.append(type.getText());
sb.append("..."); // NOI18N } else { CsmType type = param.getType(); if (type != null) { sb.append(type.getText());
result.append(", "); // NOI18N result.append(parameter.getType().getCanonicalText()); result.append(' '); result.append(parameter.getName());
continue; CsmType mpt = methodParms[j].getType(); CsmType t = (CsmType) parmTypeList.get(j); if (t != null) {
continue; CsmType type = prm.getType(); String paramValue = (prm.getInitialValue() != null) ? " = " + prm.getInitialValue().getText().toString() : ""; // NOI18N if (type == null) {
Iterator<CsmParameter> paramIter = funPtrType.getParameters().iterator(); while (paramIter.hasNext()) { CsmType paramType = paramIter.next().getType(); foundType = findTemplateParam(templateParamName, variadic, paramType, digActions); if (foundType != null) {
CsmType methodParamType = methodParams[j].getType(); CsmType paramType = (CsmType) paramTypes.get(j); if (paramType != null && methodParamType != null) {
private static CsmObject updateAndFindInFunctionType(CsmContext context, CsmFunctionPointerType funType, int offset) { if (CsmOffsetUtilities.isInObject(funType, offset)) { // add scope to context CsmContextUtilities.updateContext(funType, offset, context); Collection<CsmParameter> params = funType.getParameters(); CsmParameter param = CsmOffsetUtilities.findObject(params, context, offset); if (param != null && !CsmOffsetUtilities.sameOffsets(funType, param)) { CsmType type = param.getType(); if (CsmKindUtilities.isFunctionPointerType(type)) { CsmObject inner = updateAndFindInFunctionType(context, (CsmFunctionPointerType) type, offset); if (inner != null) { return inner; } } // if (CsmOffsetUtilities.isInObject(type, offset)) { // context.setLastObject(type); // return type; // } context.setLastObject(param); return param; } } return null; }
if (parameters.size()==1) { CsmParameter par = parameters.iterator().next(); CsmType aType = par.getType(); if (isTypeEquals(aType, rightType)) { primary = member;
context.add(fun); if (param != null) { CsmType type = param.getType(); if (!CsmOffsetUtilities.sameOffsets(param, type) && CsmOffsetUtilities.isInObject(type, offset)) {