| 6310 | } |
| 6311 | |
| 6312 | void asCCompiler::PrintMatchingFuncs(asCArray<int> &funcs, asCScriptNode *node, asCObjectType *inType) |
| 6313 | { |
| 6314 | int r = 0, c = 0; |
| 6315 | asASSERT( node ); |
| 6316 | if( node ) script->ConvertPosToRowCol(node->tokenPos, &r, &c); |
| 6317 | |
| 6318 | for( unsigned int n = 0; n < funcs.GetLength(); n++ ) |
| 6319 | { |
| 6320 | asCScriptFunction *func = builder->GetFunctionDescription(funcs[n]); |
| 6321 | if( inType && func->funcType == asFUNC_VIRTUAL ) |
| 6322 | func = inType->virtualFunctionTable[func->vfTableIdx]; |
| 6323 | |
| 6324 | builder->WriteInfo(script->name, func->GetDeclaration(true, true, true), r, c, false); |
| 6325 | |
| 6326 | if (func->objectType && (func->objectType->flags & asOBJ_TEMPLATE)) |
| 6327 | { |
| 6328 | // Check for funcdefs in the arguments that may have been generated by the template instance, so these can be shown to user |
| 6329 | for (unsigned int p = 0; p < func->GetParamCount(); p++) |
| 6330 | { |
| 6331 | int typeId = 0; |
| 6332 | func->GetParam(p, &typeId); |
| 6333 | asITypeInfo *ti = engine->GetTypeInfoById(typeId); |
| 6334 | if (ti && (ti->GetFlags() & asOBJ_FUNCDEF)) |
| 6335 | { |
| 6336 | asCString msg; |
| 6337 | msg.Format(TXT_WHERE_s_IS_s, ti->GetName(), ti->GetFuncdefSignature()->GetDeclaration()); |
| 6338 | builder->WriteInfo(script->name, msg.AddressOf(), r, c, false); |
| 6339 | } |
| 6340 | } |
| 6341 | } |
| 6342 | } |
| 6343 | } |
| 6344 | |
| 6345 | int asCCompiler::AllocateVariableNotIn(const asCDataType &type, bool isTemporary, bool forceOnHeap, asCExprContext *ctx) |
| 6346 | { |
nothing calls this directly
no test coverage detected