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