public static DiagnosticInfo ReportNullableReferenceTypesIfNeeded(CSharpCompilation compilation, bool isNullableEnabled) { var featureID = MessageID.IDS_FeatureNullableReferenceTypes; if (!compilation.IsFeatureEnabled(featureID)) { LanguageVersion availableVersion = compilation.LanguageVersion; LanguageVersion requiredVersion = featureID.RequiredVersion(); return(new CSDiagnosticInfo(availableVersion.GetErrorCode(), featureID.Localize(), new CSharpRequiredLanguageVersion(requiredVersion))); } else if (!isNullableEnabled) { return(new CSDiagnosticInfo(ErrorCode.WRN_MissingNonNullTypesContextForAnnotation)); } return(null); }