fix a typo
fixed a crash

getCallReturnType fails when the type is of TemplateTypeParmType.
In this case, make the temp var have the same type as the corresponding
TemplateTypeParmDecl.
some comments
fixed one more crash

if callee's type is of ElaboratedType, get its named type
rather than invoking getCallReturnType
handle CXXTemporaryObjectExpr

revert previous commit - the root cause of the crash
is CXXTemporaryObjectExpr
relax restriction on CXXDependentScopeMemberExpr
fixed one more crash

generate a dummy int tmp if we can't resolve a dependent name
try to get template decl from its specialization

if we can't find a cached template decl based on
the ParmDecl, try its specializations
give a unique name to each renamed method