diff --git a/src/Compilers/CSharp/Portable/CSharpFileSystemExtensions.cs b/src/Compilers/CSharp/Portable/CSharpFileSystemExtensions.cs index f756731db82f0..5c08374d3c392 100644 --- a/src/Compilers/CSharp/Portable/CSharpFileSystemExtensions.cs +++ b/src/Compilers/CSharp/Portable/CSharpFileSystemExtensions.cs @@ -7,6 +7,7 @@ using System.IO; using System.Threading; using Microsoft.CodeAnalysis.Emit; +using Roslyn.Utilities; namespace Microsoft.CodeAnalysis.CSharp { @@ -21,13 +22,14 @@ public static class CSharpFileSystemExtensions /// Also embedded in the output file. Null to forego PDB generation. /// /// Path of the file to which the compilation's XML documentation will be written. Null to forego XML generation. - /// Path of the file from which the compilation's Win32 resources will be read (in RES format). + /// Path of the file from which the compilation's Win32 resources will be read (in RES format). /// Null to indicate that there are none. /// List of the compilation's managed resources. Null to indicate that there are none. /// To cancel the emit process. /// Compilation or path is null. /// Path is empty or invalid. /// An error occurred while reading or writing a file. + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode(TrimWarningMessages.NativePdbsNotSupported)] public static EmitResult Emit( this CSharpCompilation compilation, string outputPath, diff --git a/src/Compilers/CSharp/Portable/CommandLine/CSharpCompiler.cs b/src/Compilers/CSharp/Portable/CommandLine/CSharpCompiler.cs index 4b62175029b82..959a13b857938 100644 --- a/src/Compilers/CSharp/Portable/CommandLine/CSharpCompiler.cs +++ b/src/Compilers/CSharp/Portable/CommandLine/CSharpCompiler.cs @@ -330,6 +330,7 @@ protected override bool TryGetCompilerDiagnosticCode(string diagnosticId, out ui return CommonCompiler.TryGetCompilerDiagnosticCode(diagnosticId, "CS", out code); } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode(TrimWarningMessages.AnalyzerReflectionLoadMessage)] protected override void ResolveAnalyzersFromArguments( List diagnostics, CommonMessageProvider messageProvider, diff --git a/src/Compilers/CSharp/Portable/Compilation/CSharpCompilation.cs b/src/Compilers/CSharp/Portable/Compilation/CSharpCompilation.cs index 64f4f26d066bd..5cefa20203e89 100644 --- a/src/Compilers/CSharp/Portable/Compilation/CSharpCompilation.cs +++ b/src/Compilers/CSharp/Portable/Compilation/CSharpCompilation.cs @@ -3622,6 +3622,7 @@ private IEnumerable AddedModulesResourceNames(DiagnosticBag diagnostics) } } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode(TrimWarningMessages.NativePdbsNotSupported)] internal override EmitDifferenceResult EmitDifference( EmitBaseline baseline, IEnumerable edits, diff --git a/src/Compilers/CSharp/Portable/Emitter/EditAndContinue/EmitHelpers.cs b/src/Compilers/CSharp/Portable/Emitter/EditAndContinue/EmitHelpers.cs index 174ed359247c1..8af5f6386fdad 100644 --- a/src/Compilers/CSharp/Portable/Emitter/EditAndContinue/EmitHelpers.cs +++ b/src/Compilers/CSharp/Portable/Emitter/EditAndContinue/EmitHelpers.cs @@ -19,6 +19,7 @@ namespace Microsoft.CodeAnalysis.CSharp.Emit { internal static class EmitHelpers { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode(TrimWarningMessages.NativePdbsNotSupported)] internal static EmitDifferenceResult EmitDifference( CSharpCompilation compilation, EmitBaseline baseline, diff --git a/src/Compilers/CSharp/Portable/Microsoft.CodeAnalysis.CSharp.csproj b/src/Compilers/CSharp/Portable/Microsoft.CodeAnalysis.CSharp.csproj index 41749fc9389f8..c84b0ff2a8427 100644 --- a/src/Compilers/CSharp/Portable/Microsoft.CodeAnalysis.CSharp.csproj +++ b/src/Compilers/CSharp/Portable/Microsoft.CodeAnalysis.CSharp.csproj @@ -19,6 +19,12 @@ true Generated + + + + true + + diff --git a/src/Compilers/Core/CodeAnalysisTest/ObjectSerializationTests.cs b/src/Compilers/Core/CodeAnalysisTest/ObjectSerializationTests.cs index ee863386965cf..cbbc6bc0be6b4 100644 --- a/src/Compilers/Core/CodeAnalysisTest/ObjectSerializationTests.cs +++ b/src/Compilers/Core/CodeAnalysisTest/ObjectSerializationTests.cs @@ -425,19 +425,6 @@ public void TestUInt32TypeCodes() Assert.Equal(ObjectWriter.TypeCode.UInt32_10, ObjectWriter.TypeCode.UInt32_0 + 10); } - private void TestRoundTripType(Type type) - { - TestRoundTrip(type, (w, v) => w.WriteType(v), r => r.ReadType()); - } - - [Fact] - public void TestTypes() - { - TestRoundTripType(typeof(int)); - TestRoundTripType(typeof(string)); - TestRoundTripType(typeof(ObjectSerializationTests)); - } - private void TestRoundTripCompressedUint(uint value) { TestRoundTrip(value, (w, v) => ((ObjectWriter)w).WriteCompressedUInt(v), r => ((ObjectReader)r).ReadCompressedUInt()); diff --git a/src/Compilers/Core/MSBuildTask/Microsoft.Build.Tasks.CodeAnalysis.csproj b/src/Compilers/Core/MSBuildTask/Microsoft.Build.Tasks.CodeAnalysis.csproj index add856e63337d..6ba568e393beb 100644 --- a/src/Compilers/Core/MSBuildTask/Microsoft.Build.Tasks.CodeAnalysis.csproj +++ b/src/Compilers/Core/MSBuildTask/Microsoft.Build.Tasks.CodeAnalysis.csproj @@ -10,7 +10,7 @@ true + + true + + diff --git a/src/Compilers/Core/Portable/NativePdbWriter/PdbWriter.cs b/src/Compilers/Core/Portable/NativePdbWriter/PdbWriter.cs index e2146c1a9d70d..1daff84ff9d23 100644 --- a/src/Compilers/Core/Portable/NativePdbWriter/PdbWriter.cs +++ b/src/Compilers/Core/Portable/NativePdbWriter/PdbWriter.cs @@ -514,6 +514,7 @@ private void DefineScopeLocals(LocalScope currentScope, StandaloneSignatureHandl } } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode(TrimWarningMessages.NativePdbsNotSupported)] public void SetMetadataEmitter(MetadataWriter metadataWriter) { // Do not look for COM registered diasymreader when determinism is needed as it doesn't support it. diff --git a/src/Compilers/Core/Portable/PEWriter/MetadataWriter.cs b/src/Compilers/Core/Portable/PEWriter/MetadataWriter.cs index 2c6c096f04f26..cb34e7efc577b 100644 --- a/src/Compilers/Core/Portable/PEWriter/MetadataWriter.cs +++ b/src/Compilers/Core/Portable/PEWriter/MetadataWriter.cs @@ -1688,6 +1688,7 @@ internal EntityHandle GetDefinitionHandle(IDefinition definition) }; } + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode(TrimWarningMessages.NativePdbsNotSupported)] public void WriteMetadataAndIL(PdbWriter nativePdbWriterOpt, Stream metadataStream, Stream ilStream, Stream portablePdbStreamOpt, out MetadataSizes metadataSizes) { Debug.Assert(nativePdbWriterOpt == null ^ portablePdbStreamOpt == null); diff --git a/src/Compilers/Core/Portable/PEWriter/PeWriter.cs b/src/Compilers/Core/Portable/PEWriter/PeWriter.cs index aa657c2b15566..ef01bc1164f80 100644 --- a/src/Compilers/Core/Portable/PEWriter/PeWriter.cs +++ b/src/Compilers/Core/Portable/PEWriter/PeWriter.cs @@ -21,6 +21,7 @@ using Microsoft.CodeAnalysis.Emit; using Microsoft.CodeAnalysis.Text; using Microsoft.DiaSymReader; +using Roslyn.Utilities; using static Microsoft.CodeAnalysis.SigningUtilities; using EmitContext = Microsoft.CodeAnalysis.Emit.EmitContext; @@ -35,6 +36,7 @@ public PeWritingException(Exception inner) internal static class PeWriter { + [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode(TrimWarningMessages.NativePdbsNotSupported)] internal static bool WritePeToStream( EmitContext context, CommonMessageProvider messageProvider, @@ -206,8 +208,8 @@ internal static bool WritePeToStream( if (!portablePdbContentHash.IsDefault) { - // Emit PDB Checksum entry for Portable and Embedded PDBs. The checksum is not as useful when the PDB is embedded, - // however it allows the client to efficiently validate a standalone Portable PDB that + // Emit PDB Checksum entry for Portable and Embedded PDBs. The checksum is not as useful when the PDB is embedded, + // however it allows the client to efficiently validate a standalone Portable PDB that // has been extracted from Embedded PDB and placed next to the PE file. debugDirectoryBuilder.AddPdbChecksumEntry(context.Module.PdbChecksumAlgorithm.Name, portablePdbContentHash); } diff --git a/src/Compilers/Core/Portable/Serialization/ObjectReader.cs b/src/Compilers/Core/Portable/Serialization/ObjectReader.cs index 9cc79e692db6f..b274d3e6e577f 100644 --- a/src/Compilers/Core/Portable/Serialization/ObjectReader.cs +++ b/src/Compilers/Core/Portable/Serialization/ObjectReader.cs @@ -657,12 +657,6 @@ private double[] ReadFloat8ArrayElements(double[] array) return array; } - public Type ReadType() - { - _reader.ReadByte(); - return Type.GetType(ReadString()); - } - private Type ReadTypeAfterTag() => _binderSnapshot.GetTypeFromId(this.ReadInt32()); diff --git a/src/ExpressionEvaluator/Core/Source/ResultProvider/Portable/Microsoft.CodeAnalysis.ResultProvider.csproj b/src/ExpressionEvaluator/Core/Source/ResultProvider/Portable/Microsoft.CodeAnalysis.ResultProvider.csproj index 2577513d917e2..120f7986e9136 100644 --- a/src/ExpressionEvaluator/Core/Source/ResultProvider/Portable/Microsoft.CodeAnalysis.ResultProvider.csproj +++ b/src/ExpressionEvaluator/Core/Source/ResultProvider/Portable/Microsoft.CodeAnalysis.ResultProvider.csproj @@ -19,6 +19,9 @@ Compiler\InternalUtilities\Debug.cs + + Compiler\InternalUtilities\DynamicallyAccessedMembersAttribute.cs + Compiler\InternalUtilities\FailFast.cs @@ -37,6 +40,12 @@ Compiler\InternalUtilities\ReflectionUtilities.cs + + Compiler\InternalUtilities\TrimWarningMessages.cs + + + Compiler\InternalUtilities\RequiresUnreferencedCodeAttribute.cs + Compiler\InternalUtilities\ObjectPool`1.cs diff --git a/src/ExpressionEvaluator/Core/Test/ResultProvider/Microsoft.CodeAnalysis.ResultProvider.Utilities.csproj b/src/ExpressionEvaluator/Core/Test/ResultProvider/Microsoft.CodeAnalysis.ResultProvider.Utilities.csproj index cf08b47b2c979..1465bdaa01b3c 100644 --- a/src/ExpressionEvaluator/Core/Test/ResultProvider/Microsoft.CodeAnalysis.ResultProvider.Utilities.csproj +++ b/src/ExpressionEvaluator/Core/Test/ResultProvider/Microsoft.CodeAnalysis.ResultProvider.Utilities.csproj @@ -30,6 +30,9 @@ Compiler\InternalUtilities\Debug.cs + + Compiler\InternalUtilities\DynamicallyAccessedMembersAttribute.cs + Compiler\InternalUtilities\FailFast.cs @@ -48,6 +51,12 @@ Compiler\InternalUtilities\ReflectionUtilities.cs + + Compiler\InternalUtilities\RequiresUnreferencedCodeAttribute.cs + + + Compiler\InternalUtilities\TrimWarningMessages.cs + Compiler\InternalUtilities\ObjectPool`1.cs diff --git a/src/Interactive/Host/Microsoft.CodeAnalysis.InteractiveHost.csproj b/src/Interactive/Host/Microsoft.CodeAnalysis.InteractiveHost.csproj index a17384a557b5d..1fa8d5113abcd 100644 --- a/src/Interactive/Host/Microsoft.CodeAnalysis.InteractiveHost.csproj +++ b/src/Interactive/Host/Microsoft.CodeAnalysis.InteractiveHost.csproj @@ -49,6 +49,8 @@ + + diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CompilerExtensions.projitems b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CompilerExtensions.projitems index 92505d93d0e36..74fe4691436a4 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CompilerExtensions.projitems +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CompilerExtensions.projitems @@ -107,6 +107,9 @@ InternalUtilities\DocumentationCommentXmlNames.cs + + InternalUtilities\DynamicallyAccessedMembersAttribute.cs + InternalUtilities\EncodingExtensions.cs @@ -183,6 +186,12 @@ InternalUtilities\ReflectionUtilities.cs + + InternalUtilities\ReflectionUtilities.cs + + + InternalUtilities\RequiresUnreferencedCodeAttribute.cs + InternalUtilities\UnicodeCharacterUtilities.cs