public ResolvedClass getType() { Expression first = mTargetCall.astArguments().first(); ResolvedClass resolvedClass = mTypes.get(first); if (resolvedClass == null) { ResolvedNode resolved = mContext.resolve(first); if (resolved instanceof ResolvedVariable) { resolvedClass = mVariableTypes.get(resolved); if (resolvedClass == null) { return ((ResolvedVariable)resolved).getType().getTypeClass(); } } } return resolvedClass; }
@Override public void afterVisitConstructorInvocation(@NonNull ConstructorInvocation node) { ResolvedNode resolved = mContext.resolve(node); if (resolved instanceof ResolvedMethod) { ResolvedMethod method = (ResolvedMethod) resolved; mTypes.put(node, method.getContainingClass()); } else { // Implicit constructor? TypeDescriptor type = mContext.getType(node); if (type != null) { ResolvedClass typeClass = type.getTypeClass(); if (typeClass != null) { mTypes.put(node, typeClass); } } } }
TypeDescriptor returnType = method.getReturnType(); if (returnType != null) { resolved = returnType.getTypeClass(); TypeDescriptor type = context.getType(first); if (type != null) { resolved = type.getTypeClass();