private boolean isMatchingInvocation(
     @Nullable Object mock,
     @Nonnull String mockClassDesc,
     @Nonnull String mockNameAndDesc,
     boolean constructorInvocation,
     @Nonnull Expectation expectation) {
   ExpectedInvocation invocation = expectation.invocation;
   return invocation.isMatch(mockClassDesc, mockNameAndDesc)
       && isSameMockedClass(mock, invocation.instance)
       && (constructorInvocation || mock == null || isMatchingInstance(mock, expectation));
 }