public static MemberAnalysisResult ArgumentParameterMismatch(ArgumentAnalysisResult argAnalysis)
 {
     switch (argAnalysis.Kind)
     {
         case ArgumentAnalysisResultKind.NoCorrespondingParameter:
             return NoCorrespondingParameter(argAnalysis.ArgumentPosition);
         case ArgumentAnalysisResultKind.NoCorrespondingNamedParameter:
             return NoCorrespondingNamedParameter(argAnalysis.ArgumentPosition);
         case ArgumentAnalysisResultKind.RequiredParameterMissing:
             return RequiredParameterMissing(argAnalysis.ParameterPosition);
         case ArgumentAnalysisResultKind.NameUsedForPositional:
             return NameUsedForPositional(argAnalysis.ArgumentPosition);
         default:
             throw ExceptionUtilities.UnexpectedValue(argAnalysis.Kind);
     }
 }
 public static MemberAnalysisResult ArgumentParameterMismatch(ArgumentAnalysisResult argAnalysis)
 {
     switch (argAnalysis.Kind)
     {
         case ArgumentAnalysisResultKind.NoCorrespondingParameter:
             return NoCorrespondingParameter(argAnalysis.ArgumentPosition);
         case ArgumentAnalysisResultKind.NoCorrespondingNamedParameter:
             return NoCorrespondingNamedParameter(argAnalysis.ArgumentPosition);
         case ArgumentAnalysisResultKind.RequiredParameterMissing:
             return RequiredParameterMissing(argAnalysis.ParameterPosition);
         case ArgumentAnalysisResultKind.NameUsedForPositional:
             return NameUsedForPositional(argAnalysis.ArgumentPosition);
         default:
             Debug.Assert(false, "Missing case in argument parameter mismatch analysis.");
             goto case ArgumentAnalysisResultKind.NoCorrespondingParameter;
     }
 }