From a1e88fd0824fb5f850163fdbd92da39da303e701 Mon Sep 17 00:00:00 2001 From: Charles Stoner Date: Mon, 15 Aug 2016 10:39:30 -0700 Subject: [PATCH] Ensure string resources are included for all diagnostic ids --- .../Portable/CSharpResources.Designer.cs | 9 +++++ .../CSharp/Portable/CSharpResources.resx | 3 ++ .../CSharp/Portable/Errors/ErrorCode.cs | 6 ++-- .../Test/Syntax/Diagnostics/DiagnosticTest.cs | 25 ++++++++++++- .../VisualBasic/Portable/Errors/Errors.vb | 13 +++---- .../Portable/VBResources.Designer.vb | 18 ++++++++++ .../VisualBasic/Portable/VBResources.resx | 6 ++++ .../Semantic/BasicCompilerSemanticTest.vbproj | 3 +- .../Semantic/Diagnostics/DiagnosticTests.vb | 35 +++++++++++++++++++ 9 files changed, 105 insertions(+), 13 deletions(-) create mode 100644 src/Compilers/VisualBasic/Test/Semantic/Diagnostics/DiagnosticTests.vb diff --git a/src/Compilers/CSharp/Portable/CSharpResources.Designer.cs b/src/Compilers/CSharp/Portable/CSharpResources.Designer.cs index faf12ea6447..9ab3bbdc9fa 100644 --- a/src/Compilers/CSharp/Portable/CSharpResources.Designer.cs +++ b/src/Compilers/CSharp/Portable/CSharpResources.Designer.cs @@ -3706,6 +3706,15 @@ internal class CSharpResources { } } + /// + /// Looks up a localized string similar to Cannot update '{0}'; attribute '{1}' is missing.. + /// + internal static string ERR_EncUpdateFailedMissingAttribute { + get { + return ResourceManager.GetString("ERR_EncUpdateFailedMissingAttribute", resourceCulture); + } + } + /// /// Looks up a localized string similar to #endif directive expected. /// diff --git a/src/Compilers/CSharp/Portable/CSharpResources.resx b/src/Compilers/CSharp/Portable/CSharpResources.resx index d6e30e5f4cd..884ed285dfd 100644 --- a/src/Compilers/CSharp/Portable/CSharpResources.resx +++ b/src/Compilers/CSharp/Portable/CSharpResources.resx @@ -1646,6 +1646,9 @@ If such a class is used as a base class and if the deriving class defines a dest The DllImport attribute must be specified on a method marked 'static' and 'extern' + + Cannot update '{0}'; attribute '{1}' is missing. + The DllImport attribute cannot be applied to a method that is generic or contained in a generic type. diff --git a/src/Compilers/CSharp/Portable/Errors/ErrorCode.cs b/src/Compilers/CSharp/Portable/Errors/ErrorCode.cs index 96b915a3333..f2a35a425f5 100644 --- a/src/Compilers/CSharp/Portable/Errors/ErrorCode.cs +++ b/src/Compilers/CSharp/Portable/Errors/ErrorCode.cs @@ -1006,17 +1006,17 @@ internal enum ErrorCode ERR_BadDynamicQuery = 1979, ERR_DynamicAttributeMissing = 1980, WRN_IsDynamicIsConfusing = 1981, - ERR_DynamicNotAllowedInAttribute = 1982, // Replaced by ERR_BadAttributeParamType in Roslyn. + //ERR_DynamicNotAllowedInAttribute = 1982, // Replaced by ERR_BadAttributeParamType in Roslyn. ERR_BadAsyncReturn = 1983, ERR_BadAwaitInFinally = 1984, ERR_BadAwaitInCatch = 1985, ERR_BadAwaitArg = 1986, ERR_BadAsyncArgType = 1988, ERR_BadAsyncExpressionTree = 1989, - ERR_WindowsRuntimeTypesMissing = 1990, + //ERR_WindowsRuntimeTypesMissing = 1990, // unused in Roslyn ERR_MixingWinRTEventWithRegular = 1991, ERR_BadAwaitWithoutAsync = 1992, - ERR_MissingAsyncTypes = 1993, + //ERR_MissingAsyncTypes = 1993, // unused in Roslyn ERR_BadAsyncLacksBody = 1994, ERR_BadAwaitInQuery = 1995, ERR_BadAwaitInLock = 1996, diff --git a/src/Compilers/CSharp/Test/Syntax/Diagnostics/DiagnosticTest.cs b/src/Compilers/CSharp/Test/Syntax/Diagnostics/DiagnosticTest.cs index f91f6fbf24c..6c6137f4046 100644 --- a/src/Compilers/CSharp/Test/Syntax/Diagnostics/DiagnosticTest.cs +++ b/src/Compilers/CSharp/Test/Syntax/Diagnostics/DiagnosticTest.cs @@ -5,15 +5,38 @@ using System.Globalization; using System.Linq; using Microsoft.CodeAnalysis.CSharp.Test.Utilities; +using Microsoft.CodeAnalysis.Emit; using Microsoft.CodeAnalysis.Text; using Roslyn.Test.Utilities; using Xunit; -using Microsoft.CodeAnalysis.Emit; namespace Microsoft.CodeAnalysis.CSharp.UnitTests { public partial class DiagnosticTest : CSharpTestBase { + /// + /// Ensure string resources are included. + /// + [Fact] + public void Resources() + { + var excludedErrorCodes = new[] + { + ErrorCode.Void, + ErrorCode.Unknown, + ErrorCode.WRN_ALinkWarn, // Not reported, but retained to allow configuring class of related warnings. See CSharpDiagnosticFilter.Filter. + }; + foreach (ErrorCode code in Enum.GetValues(typeof(ErrorCode))) + { + if (Array.IndexOf(excludedErrorCodes, code) >= 0) + { + continue; + } + var message = ErrorFacts.GetMessage(code, CultureInfo.InvariantCulture); + Assert.False(string.IsNullOrEmpty(message)); + } + } + [Fact] public void TestDiagnostic() { diff --git a/src/Compilers/VisualBasic/Portable/Errors/Errors.vb b/src/Compilers/VisualBasic/Portable/Errors/Errors.vb index 2587a1d6279..9a414b0014b 100644 --- a/src/Compilers/VisualBasic/Portable/Errors/Errors.vb +++ b/src/Compilers/VisualBasic/Portable/Errors/Errors.vb @@ -1451,7 +1451,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic ERR_MultilineLambdasCannotContainOnError = 36668 'ERR_BranchOutOfMultilineLambda = 36669 obsolete - was not even reported in Dev10 any more. ERR_LambdaBindingMismatch2 = 36670 - ERR_MultilineLambdaShadowLocal1 = 36671 + 'ERR_MultilineLambdaShadowLocal1 = 36671 'unused in Roslyn ERR_StaticInLambda = 36672 ERR_MultilineLambdaMissingSub = 36673 ERR_MultilineLambdaMissingFunction = 36674 @@ -1468,7 +1468,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic ERR_OverloadCandidate1 = 36712 ERR_AutoPropertyInitializedInStructure = 36713 ERR_InitializedExpandedProperty = 36714 - ERR_NewExpandedProperty = 36715 + 'ERR_NewExpandedProperty = 36715 'unused in Roslyn ERR_LanguageVersion = 36716 ERR_ArrayInitNoType = 36717 @@ -1545,7 +1545,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic ERR_CannotUseGenericBaseTypeAcrossAssemblyBoundaries = 36925 ERR_BadAsyncByRefParam = 36926 ERR_BadIteratorByRefParam = 36927 - ERR_BadAsyncExpressionLambda = 36928 + 'ERR_BadAsyncExpressionLambda = 36928 'unused in Roslyn ERR_BadAsyncInQuery = 36929 ERR_BadGetAwaiterMethod1 = 36930 'ERR_ExpressionTreeContainsAwait = 36931 @@ -1561,7 +1561,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic '// unused 36941 ERR_BadReturnValueInIterator = 36942 ERR_BadAwaitInTryHandler = 36943 - ERR_BadAwaitObject = 36944 + 'ERR_BadAwaitObject = 36944 'unused in Roslyn ERR_BadAsyncReturn = 36945 ERR_BadResumableAccessReturnVariable = 36946 ERR_BadIteratorExpressionLambda = 36947 @@ -1570,7 +1570,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic ERR_ConstructorAsync = 36950 ERR_InvalidLambdaModifier = 36951 ERR_ReturnFromNonGenericTaskAsync = 36952 - ERR_BadAutoPropertyFlags1 = 36953 + 'ERR_BadAutoPropertyFlags1 = 36953 'unused in Roslyn ERR_BadOverloadCandidates2 = 36954 ERR_BadStaticInitializerInResumable = 36955 @@ -1696,9 +1696,6 @@ Namespace Microsoft.CodeAnalysis.VisualBasic ERR_RefReturningCallInExpressionTree = 37263 - ERR_LastPlusOne - - '// WARNINGS BEGIN HERE WRN_UseOfObsoleteSymbol2 = 40000 WRN_MustOverloadBase4 = 40003 diff --git a/src/Compilers/VisualBasic/Portable/VBResources.Designer.vb b/src/Compilers/VisualBasic/Portable/VBResources.Designer.vb index 80d1e76345b..3ed01472216 100644 --- a/src/Compilers/VisualBasic/Portable/VBResources.Designer.vb +++ b/src/Compilers/VisualBasic/Portable/VBResources.Designer.vb @@ -954,6 +954,15 @@ Namespace Microsoft.CodeAnalysis.VisualBasic End Get End Property + ''' + ''' Looks up a localized string similar to Algorithm '{0}' is not supported. + ''' + Friend ReadOnly Property ERR_BadChecksumAlgorithm() As String + Get + Return ResourceManager.GetString("ERR_BadChecksumAlgorithm", resourceCulture) + End Get + End Property + ''' ''' Looks up a localized string similar to Classes cannot be declared '{0}'.. ''' @@ -9829,6 +9838,15 @@ Namespace Microsoft.CodeAnalysis.VisualBasic End Get End Property + ''' + ''' Looks up a localized string similar to /sourcelink switch is only supported when emitting Portable PDB (/debug:portable or /debug:embedded must be specified).. + ''' + Friend ReadOnly Property ERR_SourceLinkRequiresPortablePdb() As String + Get + Return ResourceManager.GetString("ERR_SourceLinkRequiresPortablePdb", resourceCulture) + End Get + End Property + ''' ''' Looks up a localized string similar to Specifiers and attributes are not valid on this statement.. ''' diff --git a/src/Compilers/VisualBasic/Portable/VBResources.resx b/src/Compilers/VisualBasic/Portable/VBResources.resx index 00bbc09f0cd..17cb17d67bc 100644 --- a/src/Compilers/VisualBasic/Portable/VBResources.resx +++ b/src/Compilers/VisualBasic/Portable/VBResources.resx @@ -198,6 +198,9 @@ Command-line syntax error: Missing Guid for option '{1}' + + Algorithm '{0}' is not supported + unrecognized option '{0}'; ignored @@ -5369,6 +5372,9 @@ Option '{0}' must be an absolute path. + + /sourcelink switch is only supported when emitting Portable PDB (/debug:portable or /debug:embedded must be specified). + Tuple member names must be unique. diff --git a/src/Compilers/VisualBasic/Test/Semantic/BasicCompilerSemanticTest.vbproj b/src/Compilers/VisualBasic/Test/Semantic/BasicCompilerSemanticTest.vbproj index 5df7dcb41a6..832a1848937 100644 --- a/src/Compilers/VisualBasic/Test/Semantic/BasicCompilerSemanticTest.vbproj +++ b/src/Compilers/VisualBasic/Test/Semantic/BasicCompilerSemanticTest.vbproj @@ -113,6 +113,7 @@ + @@ -231,4 +232,4 @@ - + \ No newline at end of file diff --git a/src/Compilers/VisualBasic/Test/Semantic/Diagnostics/DiagnosticTests.vb b/src/Compilers/VisualBasic/Test/Semantic/Diagnostics/DiagnosticTests.vb new file mode 100644 index 00000000000..4316157fc5a --- /dev/null +++ b/src/Compilers/VisualBasic/Test/Semantic/Diagnostics/DiagnosticTests.vb @@ -0,0 +1,35 @@ +' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +Imports System.Globalization + +Namespace Microsoft.CodeAnalysis.VisualBasic.UnitTests + + Public Class DiagnosticTests + Inherits BasicTestBase + + ''' + ''' Ensure string resources are included. + ''' + + Public Sub Resources() + Dim excludedIds = { + ERRID.Void, + ERRID.Unknown, + ERRID.ERR_None, + ERRID.ERR_CannotUseGenericBaseTypeAcrossAssemblyBoundaries ' Not reported. See ImportsBinder.ShouldReportUseSiteErrorForAlias. + } + For Each id As ERRID In [Enum].GetValues(GetType(ERRID)) + If id >= ERRID.ERRWRN_Last Then + Continue For + End If + If Array.IndexOf(excludedIds, id) >= 0 Then + Continue For + End If + Dim message = ErrorFactory.IdToString(id, CultureInfo.InvariantCulture) + Assert.False(String.IsNullOrEmpty(message)) + Next + End Sub + + End Class + +End Namespace \ No newline at end of file -- GitLab