From 0c0ac09d4b0b3a9302e8b9f5e742c4e51fa4d78f Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Fri, 8 Mar 2024 23:47:01 +0000 Subject: [PATCH 01/15] Testing --- .../src/linker/CompatibilitySuppressions.xml | 1540 ----------------- 1 file changed, 1540 deletions(-) delete mode 100644 src/tools/illink/src/linker/CompatibilitySuppressions.xml diff --git a/src/tools/illink/src/linker/CompatibilitySuppressions.xml b/src/tools/illink/src/linker/CompatibilitySuppressions.xml deleted file mode 100644 index 7bf0a1e0ce6974..00000000000000 --- a/src/tools/illink/src/linker/CompatibilitySuppressions.xml +++ /dev/null @@ -1,1540 +0,0 @@ - - - - - CP0001 - T:ILLink.Shared.DataFlow.Box`1 - - - CP0001 - T:ILLink.Shared.DataFlow.ConditionKind - - - CP0001 - T:ILLink.Shared.DataFlow.DefaultValueDictionary`2 - - - CP0001 - T:ILLink.Shared.DataFlow.DictionaryLattice`3 - - - CP0001 - T:ILLink.Shared.DataFlow.ForwardDataFlowAnalysis`8 - - - CP0001 - T:ILLink.Shared.DataFlow.IBlock`1 - - - CP0001 - T:ILLink.Shared.DataFlow.IControlFlowGraph`2 - - - CP0001 - T:ILLink.Shared.DataFlow.IDataFlowState`2 - - - CP0001 - T:ILLink.Shared.DataFlow.IDeepCopyValue`1 - - - CP0001 - T:ILLink.Shared.DataFlow.ILattice`1 - - - CP0001 - T:ILLink.Shared.DataFlow.INegate`1 - - - CP0001 - T:ILLink.Shared.DataFlow.IRegion`1 - - - CP0001 - T:ILLink.Shared.DataFlow.ITransfer`5 - - - CP0001 - T:ILLink.Shared.DataFlow.Maybe`1 - - - CP0001 - T:ILLink.Shared.DataFlow.MaybeLattice`2 - - - CP0001 - T:ILLink.Shared.DataFlow.RegionKind - - - CP0001 - T:ILLink.Shared.DataFlow.SingleValue - - - CP0001 - T:ILLink.Shared.DataFlow.ValueSet`1 - - - CP0001 - T:ILLink.Shared.DataFlow.ValueSetLattice`1 - - - CP0001 - T:ILLink.Shared.DiagnosticId - - - CP0001 - T:ILLink.Shared.DiagnosticIdExtensions - - - CP0001 - T:ILLink.Shared.DiagnosticString - - - CP0001 - T:ILLink.Shared.MessageSubCategory - - - CP0001 - T:ILLink.Shared.TrimAnalysis.FieldReferenceValue - - - CP0001 - T:ILLink.Shared.TrimAnalysis.LocalVariableReferenceValue - - - CP0001 - T:ILLink.Shared.TrimAnalysis.ReferenceValue - - - CP0001 - T:ILLink.Shared.TrimAnalysis.ValueWithDynamicallyAccessedMembers - - - CP0001 - T:ILLink.Shared.TypeSystemProxy.ParameterIndex - - - CP0001 - T:ILLink.Shared.TypeSystemProxy.ReferenceKind - - - CP0001 - T:ILLink.Shared.TypeSystemProxy.WellKnownType - - - CP0001 - T:ILLink.Shared.TypeSystemProxy.WellKnownTypeExtensions - - - CP0001 - T:Mono.Linker.AssemblyDefinitionExtensions - - - CP0001 - T:Mono.Linker.AssemblyResolver - - - CP0001 - T:Mono.Linker.AssemblyRootMode - - - CP0001 - T:Mono.Linker.AttributeInfo - - - CP0001 - T:Mono.Linker.BannedApiExtensions - - - CP0001 - T:Mono.Linker.BCL - - - CP0001 - T:Mono.Linker.CodeOptimizations - - - CP0001 - T:Mono.Linker.CodeOptimizationsSettings - - - CP0001 - T:Mono.Linker.ConsoleLogger - - - CP0001 - T:Mono.Linker.CustomAttributeArgumentExtensions - - - CP0001 - T:Mono.Linker.CustomAttributeSource - - - CP0001 - T:Mono.Linker.Dataflow.AttributeDataFlow - - - CP0001 - T:Mono.Linker.Dataflow.CompilerGeneratedState - - - CP0001 - T:Mono.Linker.Dataflow.GenericArgumentDataFlow - - - CP0001 - T:Mono.Linker.Dataflow.HoistedLocalKey - - - CP0001 - T:Mono.Linker.Dataflow.ReflectionMarker - - - CP0001 - T:Mono.Linker.Dataflow.TrimAnalysisAssignmentPattern - - - CP0001 - T:Mono.Linker.Dataflow.TrimAnalysisMethodCallPattern - - - CP0001 - T:Mono.Linker.Dataflow.TrimAnalysisPatternStore - - - CP0001 - T:Mono.Linker.Dataflow.ValueBasicBlockPair - - - CP0001 - T:Mono.Linker.Dataflow.ValueNodeList - - - CP0001 - T:Mono.Linker.DependencyInfo - - - CP0001 - T:Mono.Linker.DependencyKind - - - CP0001 - T:Mono.Linker.DependencyRecorderHelper - - - CP0001 - T:Mono.Linker.DgmlDependencyRecorder - - - CP0001 - T:Mono.Linker.DocumentationSignatureGenerator - - - CP0001 - T:Mono.Linker.DocumentationSignatureParser - - - CP0001 - T:Mono.Linker.Driver - - - CP0001 - T:Mono.Linker.EmbeddedXmlInfo - - - CP0001 - T:Mono.Linker.FeatureSettings - - - CP0001 - T:Mono.Linker.IDependencyRecorder - - - CP0001 - T:Mono.Linker.ILogger - - - CP0001 - T:Mono.Linker.InterfaceImplementor - - - CP0001 - T:Mono.Linker.InternalErrorException - - - CP0001 - T:Mono.Linker.ITryResolveMetadata - - - CP0001 - T:Mono.Linker.IXApiVisitor - - - CP0001 - T:Mono.Linker.KnownMembers - - - CP0001 - T:Mono.Linker.LinkerFatalErrorException - - - CP0001 - T:Mono.Linker.LinkerILProcessor - - - CP0001 - T:Mono.Linker.MarkingHelpers - - - CP0001 - T:Mono.Linker.MemberActionStore - - - CP0001 - T:Mono.Linker.MemberReferenceExtensions - - - CP0001 - T:Mono.Linker.MetadataTrimming - - - CP0001 - T:Mono.Linker.MethodBodyScanner - - - CP0001 - T:Mono.Linker.MethodDefinitionExtensions - - - CP0001 - T:Mono.Linker.MethodIL - - - CP0001 - T:Mono.Linker.MethodReferenceExtensions - - - CP0001 - T:Mono.Linker.ModuleDefinitionExtensions - - - CP0001 - T:Mono.Linker.OverrideInformation.OverridePair - - - CP0001 - T:Mono.Linker.ParameterHelpers - - - CP0001 - T:Mono.Linker.PInvokeInfo - - - CP0001 - T:Mono.Linker.Pipeline - - - CP0001 - T:Mono.Linker.PlatformAssemblies - - - CP0001 - T:Mono.Linker.RemoveAttributeInstancesAttribute - - - CP0001 - T:Mono.Linker.SerializationMarker - - - CP0001 - T:Mono.Linker.SerializerKind - - - CP0001 - T:Mono.Linker.Steps.AddBypassNGenStep - - - CP0001 - T:Mono.Linker.Steps.AllowedAssemblies - - - CP0001 - T:Mono.Linker.Steps.BodySubstituterStep - - - CP0001 - T:Mono.Linker.Steps.BodySubstitutionParser - - - CP0001 - T:Mono.Linker.Steps.CheckSuppressionsDispatcher - - - CP0001 - T:Mono.Linker.Steps.CheckSuppressionsStep - - - CP0001 - T:Mono.Linker.Steps.CleanStep - - - CP0001 - T:Mono.Linker.Steps.CodeRewriterStep - - - CP0001 - T:Mono.Linker.Steps.DescriptorMarker - - - CP0001 - T:Mono.Linker.Steps.DiscoverOperatorsHandler - - - CP0001 - T:Mono.Linker.Steps.DiscoverSerializationHandler - - - CP0001 - T:Mono.Linker.Steps.LinkAttributesParser - - - CP0001 - T:Mono.Linker.Steps.LinkAttributesStep - - - CP0001 - T:Mono.Linker.Steps.MarkExportedTypesTarget - - - CP0001 - T:Mono.Linker.Steps.MarkScopeStack - - - CP0001 - T:Mono.Linker.Steps.MarkStep - - - CP0001 - T:Mono.Linker.Steps.MarkStepContext - - - CP0001 - T:Mono.Linker.Steps.OutputStep - - - CP0001 - T:Mono.Linker.Steps.OutputWarningSuppressions - - - CP0001 - T:Mono.Linker.Steps.ProcessLinkerXmlBase - - - CP0001 - T:Mono.Linker.Steps.ProcessLinkerXmlStepBase - - - CP0001 - T:Mono.Linker.Steps.ProcessReferencesStep - - - CP0001 - T:Mono.Linker.Steps.ProcessWarningsStep - - - CP0001 - T:Mono.Linker.Steps.ReflectionBlockedStep - - - CP0001 - T:Mono.Linker.Steps.RegenerateGuidStep - - - CP0001 - T:Mono.Linker.Steps.RemoveResourcesStep - - - CP0001 - T:Mono.Linker.Steps.RemoveSecurity - - - CP0001 - T:Mono.Linker.Steps.ResolveFromXmlStep - - - CP0001 - T:Mono.Linker.Steps.RootAssemblyInput - - - CP0001 - T:Mono.Linker.Steps.SealerStep - - - CP0001 - T:Mono.Linker.Steps.SweepStep - - - CP0001 - T:Mono.Linker.Steps.UnreachableBlocksOptimizer - - - CP0001 - T:Mono.Linker.Steps.ValidateVirtualMethodAnnotationsStep - - - CP0001 - T:Mono.Linker.SubstitutionInfo - - - CP0001 - T:Mono.Linker.SuppressMessageInfo - - - CP0001 - T:Mono.Linker.TargetRuntimeVersion - - - CP0001 - T:Mono.Linker.Tracer - - - CP0001 - T:Mono.Linker.TypeDefinitionExtensions - - - CP0001 - T:Mono.Linker.TypeMapInfo - - - CP0001 - T:Mono.Linker.TypePreserveMembers - - - CP0001 - T:Mono.Linker.TypeReferenceExtensions - - - CP0001 - T:Mono.Linker.UnconditionalSuppressMessageAttributeState - - - CP0001 - T:Mono.Linker.UnintializedContextFactory - - - CP0001 - T:Mono.Linker.WarningSuppressionWriter - - - CP0001 - T:Mono.Linker.XmlDependencyRecorder - - - CP0001 - T:System.Reflection.AssemblyNameHelpers - - - CP0001 - T:System.Reflection.Runtime.TypeParsing.AssemblyQualifiedTypeName - - - CP0001 - T:System.Reflection.Runtime.TypeParsing.NonQualifiedTypeName - - - CP0001 - T:System.Reflection.Runtime.TypeParsing.TypeName - - - CP0001 - T:System.Reflection.Runtime.TypeParsing.TypeParser - - - CP0001 - T:System.Reflection.RuntimeAssemblyName - - - CP0002 - F:Mono.Linker.AnnotationStore.assembly_actions - - - CP0002 - F:Mono.Linker.AnnotationStore.context - - - CP0002 - F:Mono.Linker.AnnotationStore.fieldType_init - - - CP0002 - F:Mono.Linker.AnnotationStore.indirectly_called - - - CP0002 - F:Mono.Linker.AnnotationStore.marked_attributes - - - CP0002 - F:Mono.Linker.AnnotationStore.marked_instantiated - - - CP0002 - F:Mono.Linker.AnnotationStore.marked_pending - - - CP0002 - F:Mono.Linker.AnnotationStore.pending_preserve - - - CP0002 - F:Mono.Linker.AnnotationStore.preserved_exportedtype_members - - - CP0002 - F:Mono.Linker.AnnotationStore.preserved_methods - - - CP0002 - F:Mono.Linker.AnnotationStore.preserved_type_members - - - CP0002 - F:Mono.Linker.AnnotationStore.preserved_types - - - CP0002 - F:Mono.Linker.AnnotationStore.processed - - - CP0002 - F:Mono.Linker.AnnotationStore.public_api - - - CP0002 - F:Mono.Linker.AnnotationStore.resources_to_remove - - - CP0002 - F:Mono.Linker.AnnotationStore.symbol_readers - - - CP0002 - F:Mono.Linker.AnnotationStore.types_relevant_to_variant_casting - - - CP0002 - F:Mono.Linker.LinkContext.PInvokesListFile - - - CP0002 - F:Mono.Linker.MessageCategory.WarningAsError - - - CP0002 - F:Mono.Linker.MessageContainer.Empty - - - CP0002 - M:Mono.Linker.AnnotationStore.#ctor(Mono.Linker.LinkContext) - - - CP0002 - M:Mono.Linker.AnnotationStore.AddResourceToRemove(Mono.Cecil.AssemblyDefinition,Mono.Cecil.EmbeddedResource) - - - CP0002 - M:Mono.Linker.AnnotationStore.AddSymbolReader(Mono.Cecil.AssemblyDefinition,Mono.Cecil.Cil.ISymbolReader) - - - CP0002 - M:Mono.Linker.AnnotationStore.ChoosePreserveActionWhichPreservesTheMost(Mono.Linker.TypePreserve,Mono.Linker.TypePreserve) - - - CP0002 - M:Mono.Linker.AnnotationStore.ClearPreservedMethods(Mono.Cecil.MethodDefinition) - - - CP0002 - M:Mono.Linker.AnnotationStore.ClearPreservedMethods(Mono.Cecil.TypeDefinition) - - - CP0002 - M:Mono.Linker.AnnotationStore.CloseSymbolReader(Mono.Cecil.AssemblyDefinition) - - - CP0002 - M:Mono.Linker.AnnotationStore.EnqueueVirtualMethod(Mono.Cecil.MethodDefinition) - - - CP0002 - M:Mono.Linker.AnnotationStore.get_MemberActions - - - CP0002 - M:Mono.Linker.AnnotationStore.get_ProcessSatelliteAssemblies - - - CP0002 - M:Mono.Linker.AnnotationStore.get_Tracer - - - CP0002 - M:Mono.Linker.AnnotationStore.get_TypeMapInfo - - - CP0002 - M:Mono.Linker.AnnotationStore.GetAction(Mono.Cecil.MethodDefinition) - - - CP0002 - M:Mono.Linker.AnnotationStore.GetAssemblies - - - CP0002 - M:Mono.Linker.AnnotationStore.GetBaseMethods(Mono.Cecil.MethodDefinition) - - - CP0002 - M:Mono.Linker.AnnotationStore.GetDefaultInterfaceImplementations(Mono.Cecil.MethodDefinition) - - - CP0002 - M:Mono.Linker.AnnotationStore.GetLinkerAttributes``1(Mono.Cecil.IMemberDefinition) - - - CP0002 - M:Mono.Linker.AnnotationStore.GetMarkedPending - - - CP0002 - M:Mono.Linker.AnnotationStore.GetPendingPreserve - - - CP0002 - M:Mono.Linker.AnnotationStore.GetPreservedMethods(Mono.Cecil.MethodDefinition) - - - CP0002 - M:Mono.Linker.AnnotationStore.GetPreservedMethods(Mono.Cecil.TypeDefinition) - - - CP0002 - M:Mono.Linker.AnnotationStore.GetResourcesToRemove(Mono.Cecil.AssemblyDefinition) - - - CP0002 - M:Mono.Linker.AnnotationStore.HasAppliedPreserve(Mono.Cecil.TypeDefinition,Mono.Linker.TypePreserve) - - - CP0002 - M:Mono.Linker.AnnotationStore.HasLinkerAttribute``1(Mono.Cecil.IMemberDefinition) - - - CP0002 - M:Mono.Linker.AnnotationStore.HasMarkedAnyIndirectlyCalledMethods - - - CP0002 - M:Mono.Linker.AnnotationStore.HasPreservedStaticCtor(Mono.Cecil.TypeDefinition) - - - CP0002 - M:Mono.Linker.AnnotationStore.HasSubstitutedInit(Mono.Cecil.FieldDefinition) - - - CP0002 - M:Mono.Linker.AnnotationStore.HasSubstitutedInit(Mono.Cecil.TypeDefinition) - - - CP0002 - M:Mono.Linker.AnnotationStore.IsIndirectlyCalled(Mono.Cecil.MethodDefinition) - - - CP0002 - M:Mono.Linker.AnnotationStore.IsInstantiated(Mono.Cecil.TypeDefinition) - - - CP0002 - M:Mono.Linker.AnnotationStore.IsProcessed(Mono.Cecil.IMetadataTokenProvider) - - - CP0002 - M:Mono.Linker.AnnotationStore.IsPublic(Mono.Cecil.IMetadataTokenProvider) - - - CP0002 - M:Mono.Linker.AnnotationStore.IsReflectionUsed(Mono.Cecil.IMemberDefinition) - - - CP0002 - M:Mono.Linker.AnnotationStore.IsRelevantToVariantCasting(Mono.Cecil.TypeDefinition) - - - CP0002 - M:Mono.Linker.AnnotationStore.IsRootAssembly(Mono.Cecil.AssemblyDefinition) - - - CP0002 - M:Mono.Linker.AnnotationStore.Mark(Mono.Cecil.CustomAttribute,Mono.Linker.DependencyInfo@) - - - CP0002 - M:Mono.Linker.AnnotationStore.Mark(Mono.Cecil.IMetadataTokenProvider,Mono.Linker.DependencyInfo@,Mono.Linker.MessageOrigin@) - - - CP0002 - M:Mono.Linker.AnnotationStore.MarkIndirectlyCalledMethod(Mono.Cecil.MethodDefinition) - - - CP0002 - M:Mono.Linker.AnnotationStore.MarkInstantiated(Mono.Cecil.TypeDefinition) - - - CP0002 - M:Mono.Linker.AnnotationStore.MarkProcessed(Mono.Cecil.IMetadataTokenProvider,Mono.Linker.DependencyInfo@) - - - CP0002 - M:Mono.Linker.AnnotationStore.MarkReflectionUsed(Mono.Cecil.IMemberDefinition) - - - CP0002 - M:Mono.Linker.AnnotationStore.MarkRelevantToVariantCasting(Mono.Cecil.TypeDefinition) - - - CP0002 - M:Mono.Linker.AnnotationStore.PrepareDependenciesDump - - - CP0002 - M:Mono.Linker.AnnotationStore.PrepareDependenciesDump(System.String) - - - CP0002 - M:Mono.Linker.AnnotationStore.set_ProcessSatelliteAssemblies(System.Boolean) - - - CP0002 - M:Mono.Linker.AnnotationStore.SetAppliedPreserve(Mono.Cecil.TypeDefinition,Mono.Linker.TypePreserve) - - - CP0002 - M:Mono.Linker.AnnotationStore.SetMembersPreserve(Mono.Cecil.ExportedType,Mono.Linker.TypePreserveMembers) - - - CP0002 - M:Mono.Linker.AnnotationStore.SetMembersPreserve(Mono.Cecil.TypeDefinition,Mono.Linker.TypePreserveMembers) - - - CP0002 - M:Mono.Linker.AnnotationStore.SetPreservedStaticCtor(Mono.Cecil.TypeDefinition) - - - CP0002 - M:Mono.Linker.AnnotationStore.SetProcessed(Mono.Cecil.IMetadataTokenProvider) - - - CP0002 - M:Mono.Linker.AnnotationStore.SetPublic(Mono.Cecil.IMetadataTokenProvider) - - - CP0002 - M:Mono.Linker.AnnotationStore.SetRootAssembly(Mono.Cecil.AssemblyDefinition) - - - CP0002 - M:Mono.Linker.AnnotationStore.SetSubstitutedInit(Mono.Cecil.TypeDefinition) - - - CP0002 - M:Mono.Linker.AnnotationStore.TryGetFieldUserValue(Mono.Cecil.FieldDefinition,System.Object@) - - - CP0002 - M:Mono.Linker.AnnotationStore.TryGetLinkerAttribute``1(Mono.Cecil.IMemberDefinition,``0@) - - - CP0002 - M:Mono.Linker.AnnotationStore.TryGetMethodStubValue(Mono.Cecil.MethodDefinition,System.Object@) - - - CP0002 - M:Mono.Linker.AnnotationStore.TryGetPreserve(Mono.Cecil.TypeDefinition,Mono.Linker.TypePreserve@) - - - CP0002 - M:Mono.Linker.AnnotationStore.TryGetPreservedMembers(Mono.Cecil.ExportedType,Mono.Linker.TypePreserveMembers@) - - - CP0002 - M:Mono.Linker.AnnotationStore.TryGetPreservedMembers(Mono.Cecil.TypeDefinition,Mono.Linker.TypePreserveMembers@) - - - CP0002 - M:Mono.Linker.LinkContext.#ctor(Mono.Linker.Pipeline,Mono.Linker.ILogger,System.String,Mono.Linker.UnintializedContextFactory) - - - CP0002 - M:Mono.Linker.LinkContext.#ctor(Mono.Linker.Pipeline,Mono.Linker.ILogger,System.String) - - - CP0002 - M:Mono.Linker.LinkContext.CalculateAssemblyAction(Mono.Cecil.AssemblyDefinition) - - - CP0002 - M:Mono.Linker.LinkContext.CanApplyOptimization(Mono.Linker.CodeOptimizations,Mono.Cecil.AssemblyDefinition) - - - CP0002 - M:Mono.Linker.LinkContext.Dispose - - - CP0002 - M:Mono.Linker.LinkContext.FatalError(System.String,System.Int32,System.Exception,System.String,System.Nullable{Mono.Linker.MessageOrigin}) - - - CP0002 - M:Mono.Linker.LinkContext.FatalError(System.String,System.Int32,System.String,System.Nullable{Mono.Linker.MessageOrigin}) - - - CP0002 - M:Mono.Linker.LinkContext.FlushCachedWarnings - - - CP0002 - M:Mono.Linker.LinkContext.get_Actions - - - CP0002 - M:Mono.Linker.LinkContext.get_AddReflectionAnnotations - - - CP0002 - M:Mono.Linker.LinkContext.get_AssembliesWithGeneratedSingleWarning - - - CP0002 - M:Mono.Linker.LinkContext.get_AssemblyListFile - - - CP0002 - M:Mono.Linker.LinkContext.get_CompilerGeneratedState - - - CP0002 - M:Mono.Linker.LinkContext.get_CustomAttributes - - - CP0002 - M:Mono.Linker.LinkContext.get_DefaultAction - - - CP0002 - M:Mono.Linker.LinkContext.get_DeterministicOutput - - - CP0002 - M:Mono.Linker.LinkContext.get_DisableEventSourceSpecialHandling - - - CP0002 - M:Mono.Linker.LinkContext.get_DisableOperatorDiscovery - - - CP0002 - M:Mono.Linker.LinkContext.get_EmbeddedXmlInfo - - - CP0002 - M:Mono.Linker.LinkContext.get_EnableReducedTracing - - - CP0002 - M:Mono.Linker.LinkContext.get_EnableSerializationDiscovery - - - CP0002 - M:Mono.Linker.LinkContext.get_ErrorsCount - - - CP0002 - M:Mono.Linker.LinkContext.get_FeatureSettings - - - CP0002 - M:Mono.Linker.LinkContext.get_GeneralSingleWarn - - - CP0002 - M:Mono.Linker.LinkContext.get_GeneralWarnAsError - - - CP0002 - M:Mono.Linker.LinkContext.get_IgnoreDescriptors - - - CP0002 - M:Mono.Linker.LinkContext.get_IgnoreLinkAttributes - - - CP0002 - M:Mono.Linker.LinkContext.get_IgnoreSubstitutions - - - CP0002 - M:Mono.Linker.LinkContext.get_IgnoreUnresolved - - - CP0002 - M:Mono.Linker.LinkContext.get_KeepMembersForDebugger - - - CP0002 - M:Mono.Linker.LinkContext.get_KeepUsedAttributeTypesOnly - - - CP0002 - M:Mono.Linker.LinkContext.get_LinkSymbols - - - CP0002 - M:Mono.Linker.LinkContext.get_LogMessages - - - CP0002 - M:Mono.Linker.LinkContext.get_MarkedKnownMembers - - - CP0002 - M:Mono.Linker.LinkContext.get_MarkHandlers - - - CP0002 - M:Mono.Linker.LinkContext.get_MarkingHelpers - - - CP0002 - M:Mono.Linker.LinkContext.get_MetadataTrimming - - - CP0002 - M:Mono.Linker.LinkContext.get_NoTrimWarn - - - CP0002 - M:Mono.Linker.LinkContext.get_NoWarn - - - CP0002 - M:Mono.Linker.LinkContext.get_Optimizations - - - CP0002 - M:Mono.Linker.LinkContext.get_OutputDirectory - - - CP0002 - M:Mono.Linker.LinkContext.get_PInvokes - - - CP0002 - M:Mono.Linker.LinkContext.get_Pipeline - - - CP0002 - M:Mono.Linker.LinkContext.get_Resolver - - - CP0002 - M:Mono.Linker.LinkContext.get_SerializationMarker - - - CP0002 - M:Mono.Linker.LinkContext.get_SingleWarn - - - CP0002 - M:Mono.Linker.LinkContext.get_StripSecurity - - - CP0002 - M:Mono.Linker.LinkContext.get_Suppressions - - - CP0002 - M:Mono.Linker.LinkContext.get_SymbolReaderProvider - - - CP0002 - M:Mono.Linker.LinkContext.get_Tracer - - - CP0002 - M:Mono.Linker.LinkContext.get_TrimAction - - - CP0002 - M:Mono.Linker.LinkContext.get_WarnAsError - - - CP0002 - M:Mono.Linker.LinkContext.get_WarningSuppressionWriter - - - CP0002 - M:Mono.Linker.LinkContext.get_WarnVersion - - - CP0002 - M:Mono.Linker.LinkContext.GetAssemblies - - - CP0002 - M:Mono.Linker.LinkContext.GetMethodIL(Mono.Cecil.Cil.MethodBody) - - - CP0002 - M:Mono.Linker.LinkContext.GetMethodIL(Mono.Cecil.MethodDefinition) - - - CP0002 - M:Mono.Linker.LinkContext.GetReferencedAssemblies - - - CP0002 - M:Mono.Linker.LinkContext.GetTargetRuntimeVersion - - - CP0002 - M:Mono.Linker.LinkContext.HasFeatureValue(System.String,System.Boolean) - - - CP0002 - M:Mono.Linker.LinkContext.IsOptimizationEnabled(Mono.Linker.CodeOptimizations,Mono.Cecil.AssemblyDefinition) - - - CP0002 - M:Mono.Linker.LinkContext.IsOptimizationEnabled(Mono.Linker.CodeOptimizations,Mono.Cecil.MemberReference) - - - CP0002 - M:Mono.Linker.LinkContext.IsSingleWarn(System.String) - - - CP0002 - M:Mono.Linker.LinkContext.IsTrimmable(Mono.Cecil.AssemblyDefinition) - - - CP0002 - M:Mono.Linker.LinkContext.IsWarningAsError(System.Int32) - - - CP0002 - M:Mono.Linker.LinkContext.IsWarningSuppressed(System.Int32,System.String,Mono.Linker.MessageOrigin) - - - CP0002 - M:Mono.Linker.LinkContext.LogDiagnostic(System.String) - - - CP0002 - M:Mono.Linker.LinkContext.LogError(System.Nullable{Mono.Linker.MessageOrigin},ILLink.Shared.DiagnosticId,System.String[]) - - - CP0002 - M:Mono.Linker.LinkContext.LogError(System.String,System.Int32,System.String,System.Nullable{Mono.Linker.MessageOrigin}) - - - CP0002 - M:Mono.Linker.LinkContext.LogMessage(System.String) - - - CP0002 - M:Mono.Linker.LinkContext.LogWarning(Mono.Cecil.IMemberDefinition,ILLink.Shared.DiagnosticId,System.Nullable{System.Int32},System.String[]) - - - CP0002 - M:Mono.Linker.LinkContext.LogWarning(Mono.Cecil.IMemberDefinition,ILLink.Shared.DiagnosticId,System.String[]) - - - CP0002 - M:Mono.Linker.LinkContext.LogWarning(Mono.Linker.MessageOrigin,ILLink.Shared.DiagnosticId,System.String[]) - - - CP0002 - M:Mono.Linker.LinkContext.LogWarning(System.String,ILLink.Shared.DiagnosticId,System.String[]) - - - CP0002 - M:Mono.Linker.LinkContext.LogWarning(System.String,System.Int32,Mono.Cecil.IMemberDefinition,System.Nullable{System.Int32},System.String) - - - CP0002 - M:Mono.Linker.LinkContext.LogWarning(System.String,System.Int32,Mono.Linker.MessageOrigin,System.String) - - - CP0002 - M:Mono.Linker.LinkContext.LogWarning(System.String,System.Int32,System.String,System.String) - - - CP0002 - M:Mono.Linker.LinkContext.RegisterAssembly(Mono.Cecil.AssemblyDefinition) - - - CP0002 - M:Mono.Linker.LinkContext.RegisterAssemblyAction(System.String,Mono.Linker.AssemblyAction) - - - CP0002 - M:Mono.Linker.LinkContext.ReportUnresolved(Mono.Cecil.ExportedType) - - - CP0002 - M:Mono.Linker.LinkContext.ReportUnresolved(Mono.Cecil.FieldReference) - - - CP0002 - M:Mono.Linker.LinkContext.ReportUnresolved(Mono.Cecil.MethodReference) - - - CP0002 - M:Mono.Linker.LinkContext.ReportUnresolved(Mono.Cecil.TypeReference) - - - CP0002 - M:Mono.Linker.LinkContext.Resolve(Mono.Cecil.ExportedType) - - - CP0002 - M:Mono.Linker.LinkContext.Resolve(Mono.Cecil.IMetadataScope) - - - CP0002 - M:Mono.Linker.LinkContext.ResolveReferences(Mono.Cecil.AssemblyDefinition) - - - CP0002 - M:Mono.Linker.LinkContext.SafeReadSymbols(Mono.Cecil.AssemblyDefinition) - - - CP0002 - M:Mono.Linker.LinkContext.SeenFirstTime(Mono.Cecil.AssemblyDefinition) - - - CP0002 - M:Mono.Linker.LinkContext.set_AddReflectionAnnotations(System.Boolean) - - - CP0002 - M:Mono.Linker.LinkContext.set_AssembliesWithGeneratedSingleWarning(System.Collections.Generic.HashSet{System.String}) - - - CP0002 - M:Mono.Linker.LinkContext.set_AssemblyListFile(System.String) - - - CP0002 - M:Mono.Linker.LinkContext.set_DefaultAction(Mono.Linker.AssemblyAction) - - - CP0002 - M:Mono.Linker.LinkContext.set_DeterministicOutput(System.Boolean) - - - CP0002 - M:Mono.Linker.LinkContext.set_DisableEventSourceSpecialHandling(System.Boolean) - - - CP0002 - M:Mono.Linker.LinkContext.set_DisableOperatorDiscovery(System.Boolean) - - - CP0002 - M:Mono.Linker.LinkContext.set_EnableReducedTracing(System.Boolean) - - - CP0002 - M:Mono.Linker.LinkContext.set_EnableSerializationDiscovery(System.Boolean) - - - CP0002 - M:Mono.Linker.LinkContext.set_FeatureSettings(System.Collections.Generic.Dictionary{System.String,System.Boolean}) - - - CP0002 - M:Mono.Linker.LinkContext.set_GeneralSingleWarn(System.Boolean) - - - CP0002 - M:Mono.Linker.LinkContext.set_GeneralWarnAsError(System.Boolean) - - - CP0002 - M:Mono.Linker.LinkContext.set_IgnoreDescriptors(System.Boolean) - - - CP0002 - M:Mono.Linker.LinkContext.set_IgnoreLinkAttributes(System.Boolean) - - - CP0002 - M:Mono.Linker.LinkContext.set_IgnoreSubstitutions(System.Boolean) - - - CP0002 - M:Mono.Linker.LinkContext.set_IgnoreUnresolved(System.Boolean) - - - CP0002 - M:Mono.Linker.LinkContext.set_KeepMembersForDebugger(System.Boolean) - - - CP0002 - M:Mono.Linker.LinkContext.set_KeepUsedAttributeTypesOnly(System.Boolean) - - - CP0002 - M:Mono.Linker.LinkContext.set_LinkSymbols(System.Boolean) - - - CP0002 - M:Mono.Linker.LinkContext.set_LogMessages(System.Boolean) - - - CP0002 - M:Mono.Linker.LinkContext.set_MetadataTrimming(Mono.Linker.MetadataTrimming) - - - CP0002 - M:Mono.Linker.LinkContext.set_NoTrimWarn(System.Boolean) - - - CP0002 - M:Mono.Linker.LinkContext.set_NoWarn(System.Collections.Generic.HashSet{System.Int32}) - - - CP0002 - M:Mono.Linker.LinkContext.set_Optimizations(Mono.Linker.CodeOptimizationsSettings) - - - CP0002 - M:Mono.Linker.LinkContext.set_OutputDirectory(System.String) - - - CP0002 - M:Mono.Linker.LinkContext.set_SingleWarn(System.Collections.Generic.Dictionary{System.String,System.Boolean}) - - - CP0002 - M:Mono.Linker.LinkContext.set_StripSecurity(System.Boolean) - - - CP0002 - M:Mono.Linker.LinkContext.set_Suppressions(Mono.Linker.UnconditionalSuppressMessageAttributeState) - - - CP0002 - M:Mono.Linker.LinkContext.set_SymbolReaderProvider(Mono.Cecil.Cil.ISymbolReaderProvider) - - - CP0002 - M:Mono.Linker.LinkContext.set_TrimAction(Mono.Linker.AssemblyAction) - - - CP0002 - M:Mono.Linker.LinkContext.set_WarnAsError(System.Collections.Generic.Dictionary{System.Int32,System.Boolean}) - - - CP0002 - M:Mono.Linker.LinkContext.set_WarningSuppressionWriter(Mono.Linker.WarningSuppressionWriter) - - - CP0002 - M:Mono.Linker.LinkContext.set_WarnVersion(Mono.Linker.WarnVersion) - - - CP0002 - M:Mono.Linker.LinkContext.SetAction(Mono.Cecil.AssemblyDefinition,Mono.Linker.AssemblyAction) - - - CP0002 - M:Mono.Linker.LinkContext.SetCustomData(System.String,System.String) - - - CP0002 - M:Mono.Linker.LinkContext.SetFeatureValue(System.String,System.Boolean) - - - CP0002 - M:Mono.Linker.LinkContext.TryResolve(Mono.Cecil.AssemblyDefinition,System.String) - - - CP0002 - M:Mono.Linker.LinkContext.TryResolve(Mono.Cecil.AssemblyNameReference) - - - CP0002 - M:Mono.Linker.LinkContext.TryResolve(Mono.Cecil.ExportedType) - - - CP0002 - M:Mono.Linker.LinkContext.TryResolve(System.String) - - - CP0002 - M:Mono.Linker.MessageContainer.CompareTo(Mono.Linker.MessageContainer) - - - CP0002 - M:Mono.Linker.MessageContainer.get_Category - - - CP0002 - M:Mono.Linker.MessageContainer.get_Code - - - CP0002 - M:Mono.Linker.MessageContainer.get_Origin - - - CP0002 - M:Mono.Linker.MessageContainer.get_SubCategory - - - CP0002 - M:Mono.Linker.MessageContainer.get_Text - - - CP0002 - M:Mono.Linker.MessageContainer.IsWarningMessage(System.Nullable{System.Int32}@) - - - CP0002 - M:Mono.Linker.MessageContainer.op_Equality(Mono.Linker.MessageContainer,Mono.Linker.MessageContainer) - - - CP0002 - M:Mono.Linker.MessageContainer.op_Inequality(Mono.Linker.MessageContainer,Mono.Linker.MessageContainer) - - - CP0002 - M:Mono.Linker.MessageContainer.ToMSBuildString - - - CP0002 - M:Mono.Linker.MessageOrigin.#ctor(Mono.Cecil.ICustomAttributeProvider,System.Nullable{System.Int32}) - - - CP0002 - M:Mono.Linker.MessageOrigin.#ctor(Mono.Cecil.ICustomAttributeProvider) - - - CP0002 - M:Mono.Linker.MessageOrigin.#ctor(Mono.Linker.MessageOrigin,System.Int32) - - - CP0002 - M:Mono.Linker.MessageOrigin.#ctor(Mono.Linker.MessageOrigin) - - - CP0002 - M:Mono.Linker.MessageOrigin.#ctor(System.String,System.Int32,System.Int32,Mono.Cecil.AssemblyDefinition) - - - CP0002 - M:Mono.Linker.MessageOrigin.CompareTo(Mono.Linker.MessageOrigin) - - - CP0002 - M:Mono.Linker.MessageOrigin.get_FileName - - - CP0002 - M:Mono.Linker.MessageOrigin.get_ILOffset - - - CP0002 - M:Mono.Linker.MessageOrigin.get_Provider - - - CP0002 - M:Mono.Linker.MessageOrigin.get_SourceColumn - - - CP0002 - M:Mono.Linker.MessageOrigin.get_SourceLine - - - CP0002 - M:Mono.Linker.MessageOrigin.op_Equality(Mono.Linker.MessageOrigin,Mono.Linker.MessageOrigin) - - - CP0002 - M:Mono.Linker.MessageOrigin.op_Inequality(Mono.Linker.MessageOrigin,Mono.Linker.MessageOrigin) - - - CP0002 - M:Mono.Linker.MessageOrigin.WithInstructionOffset(System.Int32) - - - CP0002 - M:Mono.Linker.OverrideInformation.#ctor(Mono.Cecil.MethodDefinition,Mono.Cecil.MethodDefinition,Mono.Linker.ITryResolveMetadata,Mono.Cecil.InterfaceImplementation) - - - CP0002 - M:Mono.Linker.OverrideInformation.get_IsOverrideOfInterfaceMember - - - CP0002 - M:Mono.Linker.Steps.BaseStep.get_MarkingHelpers - - - CP0002 - M:Mono.Linker.Steps.BaseStep.get_Tracer - - - CP0002 - M:Mono.Linker.Steps.SubStepsDispatcher.Process(Mono.Linker.LinkContext) - - - CP0008 - T:Mono.Linker.LinkContext - - - CP0008 - T:Mono.Linker.MessageContainer - - - CP0008 - T:Mono.Linker.MessageOrigin - - - CP0009 - T:Mono.Linker.AnnotationStore - - - CP0009 - T:Mono.Linker.LinkContext - - - CP0009 - T:Mono.Linker.OverrideInformation - - - CP0016 - M:Mono.Linker.AnnotationStore.Mark(Mono.Cecil.CustomAttribute):[T:System.ObsoleteAttribute] - - - CP0016 - M:Mono.Linker.AnnotationStore.Mark(Mono.Cecil.IMetadataTokenProvider):[T:System.ObsoleteAttribute] - - - CP0016 - M:Mono.Linker.LinkContext.TryGetCustomData(System.String,System.String@)$1:[T:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute] - - - CP0017 - M:Mono.Linker.LinkContext.Resolve(Mono.Cecil.AssemblyNameReference)$0 - - From 9ad14fe58a9039fe1de2f7fd61f4ef4bc7d1247a Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Mon, 11 Mar 2024 17:35:54 +0000 Subject: [PATCH 02/15] Make some types internal --- .../DataFlow/FeatureChecksVisitor.cs | 4 +- .../DataFlow/InterproceduralState.cs | 4 +- .../DataFlow/LocalDataFlowAnalysis.cs | 2 +- .../DataFlow/LocalDataFlowState.cs | 2 +- .../DataFlow/LocalDataFlowVisitor.cs | 2 +- .../DataFlow/LocalStateAndContextLattice.cs | 2 +- .../DataFlow/LocalStateLattice.cs | 2 +- .../TrimAnalysis/TrimAnalysisVisitor.cs | 2 +- .../TrimAnalysis/TrimDataFlowAnalysis.cs | 2 +- .../DataFlow/DictionaryLattice.cs | 2 +- .../Linker.Dataflow/AttributeDataFlow.cs | 2 +- .../Linker.Dataflow/CompilerGeneratedState.cs | 2 +- .../GenericArgumentDataFlow.cs | 2 +- .../Linker.Dataflow/ReflectionMarker.cs | 2 +- .../TrimAnalysisAssignmentPattern.cs | 2 +- .../TrimAnalysisMethodCallPattern.cs | 2 +- .../TrimAnalysisPatternStore.cs | 2 +- .../src/linker/Linker.Dataflow/ValueNode.cs | 4 +- .../linker/Linker.Steps/AddBypassNGenStep.cs | 3 +- .../src/linker/Linker.Steps/BaseStep.cs | 4 +- .../Linker.Steps/BodySubstituterStep.cs | 2 +- .../Linker.Steps/BodySubstitutionParser.cs | 2 +- .../CheckSuppressionsDispatcher.cs | 2 +- .../Linker.Steps/CheckSuppressionsStep.cs | 2 +- .../src/linker/Linker.Steps/CleanStep.cs | 3 +- .../linker/Linker.Steps/CodeRewriterStep.cs | 5 ++- .../linker/Linker.Steps/DescriptorMarker.cs | 5 ++- .../DiscoverCustomOperatorsHandler.cs | 2 +- .../DiscoverSerializationHandler.cs | 2 +- .../Linker.Steps/LinkAttributesParser.cs | 2 +- .../linker/Linker.Steps/LinkAttributesStep.cs | 2 +- .../src/linker/Linker.Steps/MarkScopeStack.cs | 2 +- .../src/linker/Linker.Steps/MarkStep.cs | 8 ++-- .../linker/Linker.Steps/MarkStepContext.cs | 2 +- .../src/linker/Linker.Steps/OutputStep.cs | 6 ++- .../Linker.Steps/OutputWarningSuppressions.cs | 2 +- .../Linker.Steps/ProcessLinkerXmlStepBase.cs | 2 +- .../Linker.Steps/ProcessReferencesStep.cs | 2 +- .../Linker.Steps/ProcessWarningsStep.cs | 2 +- .../Linker.Steps/ReflectionBlockedStep.cs | 2 +- .../linker/Linker.Steps/RegenerateGuidStep.cs | 2 +- .../Linker.Steps/RemoveResourcesStep.cs | 2 +- .../linker/Linker.Steps/ResolveFromXmlStep.cs | 2 +- .../Linker.Steps/RootAssemblyInputStep.cs | 2 +- .../src/linker/Linker.Steps/SealerStep.cs | 6 +-- .../src/linker/Linker.Steps/SweepStep.cs | 5 ++- .../UnreachableBlocksOptimizer.cs | 2 +- .../ValidateVirtualMethodAnnotationsStep.cs | 2 +- .../illink/src/linker/Linker/Annotations.cs | 6 +-- .../Linker/AssemblyDefinitionExtensions.cs | 2 +- .../src/linker/Linker/AssemblyResolver.cs | 6 ++- .../src/linker/Linker/AssemblyRootMode.cs | 2 +- .../illink/src/linker/Linker/AttributeInfo.cs | 2 +- src/tools/illink/src/linker/Linker/BCL.cs | 2 +- .../src/linker/Linker/BannedApiExtensions.cs | 2 +- .../illink/src/linker/Linker/ConsoleLogger.cs | 2 +- .../linker/Linker/CustomAttributeSource.cs | 2 +- .../linker/Linker/DependencyRecorderHelper.cs | 2 +- .../linker/Linker/DgmlDependencyRecorder.cs | 2 +- src/tools/illink/src/linker/Linker/Driver.cs | 8 ++-- .../src/linker/Linker/EmbeddedXmlInfo.cs | 5 ++- .../src/linker/Linker/InterfaceImplementor.cs | 2 +- .../linker/Linker/InternalErrorException.cs | 2 +- .../illink/src/linker/Linker/KnownMembers.cs | 2 +- .../illink/src/linker/Linker/LinkContext.cs | 38 ++++++++++--------- .../Linker/LinkerFatalErrorException.cs | 2 +- .../src/linker/Linker/MarkingHelpers.cs | 4 +- .../src/linker/Linker/MemberActionStore.cs | 2 +- .../illink/src/linker/Linker/PInvokeInfo.cs | 2 +- .../illink/src/linker/Linker/Pipeline.cs | 6 ++- .../src/linker/Linker/SerializationMarker.cs | 2 +- .../src/linker/Linker/SubstitutionInfo.cs | 2 +- .../src/linker/Linker/SuppressMessageInfo.cs | 2 +- src/tools/illink/src/linker/Linker/Tracer.cs | 4 +- .../illink/src/linker/Linker/TypeMapInfo.cs | 6 ++- ...onditionalSuppressMessageAttributeState.cs | 4 +- .../linker/Linker/WarningSuppressionWriter.cs | 2 +- .../linker/Linker/XmlDependencyRecorder.cs | 2 +- .../TestCasesRunner/TrimmingDriver.cs | 2 +- 79 files changed, 142 insertions(+), 116 deletions(-) diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/FeatureChecksVisitor.cs b/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/FeatureChecksVisitor.cs index 6a927f74fd15b7..912e7fc60b9b3e 100644 --- a/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/FeatureChecksVisitor.cs +++ b/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/FeatureChecksVisitor.cs @@ -24,7 +24,7 @@ namespace ILLink.RoslynAnalyzer.DataFlow // (a set features that are checked to be enabled or disabled). // The visitor takes a LocalDataFlowState as an argument, allowing for checks that // depend on the current dataflow state. - public class FeatureChecksVisitor : OperationVisitor + internal sealed class FeatureChecksVisitor : OperationVisitor { DataFlowAnalyzerContext _dataFlowAnalyzerContext; @@ -77,7 +77,7 @@ public override FeatureChecksValue VisitLiteral (ILiteralOperation operation, St return FeatureChecksValue.None; } - public bool? GetLiteralBool (IOperation operation) + static bool? GetLiteralBool (IOperation operation) { if (operation is not ILiteralOperation literal) return null; diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/InterproceduralState.cs b/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/InterproceduralState.cs index 2fac8f0540adc2..9a897cec54e6ed 100644 --- a/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/InterproceduralState.cs +++ b/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/InterproceduralState.cs @@ -11,7 +11,7 @@ namespace ILLink.RoslynAnalyzer.DataFlow { // Tracks the set of methods which get analyzed together during interprocedural analysis, // and the possible states of hoisted locals in state machine methods and lambdas/local functions. - public struct InterproceduralState : IEquatable> + internal struct InterproceduralState : IEquatable> where TValue : struct, IEquatable where TValueLattice : ILattice { @@ -85,7 +85,7 @@ public bool TryGetHoistedLocal (LocalKey key, [NotNullWhen (true)] out TValue? v => (value = HoistedLocals.Get (key).MaybeValue) != null; } - public struct InterproceduralStateLattice : ILattice> + internal struct InterproceduralStateLattice : ILattice> where TValue : struct, IEquatable where TValueLattice : ILattice { diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/LocalDataFlowAnalysis.cs b/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/LocalDataFlowAnalysis.cs index 1a8f3cdef36355..8652f5db23eb30 100644 --- a/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/LocalDataFlowAnalysis.cs +++ b/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/LocalDataFlowAnalysis.cs @@ -16,7 +16,7 @@ namespace ILLink.RoslynAnalyzer.DataFlow // It substitutes type arguments into the generic forward dataflow analysis, // creating a simpler abstraction that can track the values of local variables using Roslyn APIs. // The kinds of values tracked are still left as unspecified generic parameters TValue and TLattice. - public abstract class LocalDataFlowAnalysis + internal abstract class LocalDataFlowAnalysis : ForwardDataFlowAnalysis< LocalStateAndContext, LocalDataFlowState, diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/LocalDataFlowState.cs b/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/LocalDataFlowState.cs index 8bccab4a8267e3..06c0fefd2b9e91 100644 --- a/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/LocalDataFlowState.cs +++ b/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/LocalDataFlowState.cs @@ -6,7 +6,7 @@ namespace ILLink.RoslynAnalyzer.DataFlow { - public class LocalDataFlowState + internal sealed class LocalDataFlowState : IDataFlowState, LocalStateAndContextLattice> where TValue : struct, IEquatable where TContext : struct, IEquatable diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/LocalDataFlowVisitor.cs b/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/LocalDataFlowVisitor.cs index 84065ecc25fe8f..51f9642e38cd0a 100644 --- a/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/LocalDataFlowVisitor.cs +++ b/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/LocalDataFlowVisitor.cs @@ -18,7 +18,7 @@ namespace ILLink.RoslynAnalyzer.DataFlow // - field // - parameter // - method return - public abstract class LocalDataFlowVisitor : + internal abstract class LocalDataFlowVisitor : OperationWalker, TValue>, ITransfer< BlockProxy, diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/LocalStateAndContextLattice.cs b/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/LocalStateAndContextLattice.cs index ff82a040b263b3..1a9789babc5997 100644 --- a/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/LocalStateAndContextLattice.cs +++ b/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/LocalStateAndContextLattice.cs @@ -28,7 +28,7 @@ public bool Equals (LocalStateAndContext other) => public override int GetHashCode () => HashUtils.Combine (LocalState, Context); } - public readonly struct LocalStateAndContextLattice : ILattice> + internal readonly struct LocalStateAndContextLattice : ILattice> where TValue : struct, IEquatable where TContext : struct, IEquatable where TValueLattice : ILattice diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/LocalStateLattice.cs b/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/LocalStateLattice.cs index 84270212ec5e5f..76a0e2ec791f37 100644 --- a/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/LocalStateLattice.cs +++ b/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/LocalStateLattice.cs @@ -78,7 +78,7 @@ public override int GetHashCode () } // Wrapper struct exists purely to substitute a concrete LocalKey for TKey of DictionaryLattice - public readonly struct LocalStateLattice : ILattice> + internal readonly struct LocalStateLattice : ILattice> where TValue : struct, IEquatable where TValueLattice : ILattice { diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimAnalysisVisitor.cs b/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimAnalysisVisitor.cs index 7c9b1bbfaf957d..98131889c8f8db 100644 --- a/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimAnalysisVisitor.cs +++ b/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimAnalysisVisitor.cs @@ -25,7 +25,7 @@ namespace ILLink.RoslynAnalyzer.TrimAnalysis { - public class TrimAnalysisVisitor : LocalDataFlowVisitor< + internal sealed class TrimAnalysisVisitor : LocalDataFlowVisitor< MultiValue, FeatureContext, ValueSetLattice, diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimDataFlowAnalysis.cs b/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimDataFlowAnalysis.cs index 60cbe85649932a..e1cf43256cd75e 100644 --- a/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimDataFlowAnalysis.cs +++ b/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimDataFlowAnalysis.cs @@ -21,7 +21,7 @@ namespace ILLink.RoslynAnalyzer.TrimAnalysis { - public class TrimDataFlowAnalysis : LocalDataFlowAnalysis< + internal sealed class TrimDataFlowAnalysis : LocalDataFlowAnalysis< MultiValue, FeatureContext, ValueSetLattice, diff --git a/src/tools/illink/src/ILLink.Shared/DataFlow/DictionaryLattice.cs b/src/tools/illink/src/ILLink.Shared/DataFlow/DictionaryLattice.cs index 77732b28f4c7ad..cd0739eb492555 100644 --- a/src/tools/illink/src/ILLink.Shared/DataFlow/DictionaryLattice.cs +++ b/src/tools/illink/src/ILLink.Shared/DataFlow/DictionaryLattice.cs @@ -9,7 +9,7 @@ namespace ILLink.Shared.DataFlow { // A lattice over dictionaries where the stored values are also from a lattice. - public readonly struct DictionaryLattice : ILattice> + internal readonly struct DictionaryLattice : ILattice> where TKey : IEquatable where TValue : IEquatable where TValueLattice : ILattice diff --git a/src/tools/illink/src/linker/Linker.Dataflow/AttributeDataFlow.cs b/src/tools/illink/src/linker/Linker.Dataflow/AttributeDataFlow.cs index fa2aa697d9dba2..667f4328ccae26 100644 --- a/src/tools/illink/src/linker/Linker.Dataflow/AttributeDataFlow.cs +++ b/src/tools/illink/src/linker/Linker.Dataflow/AttributeDataFlow.cs @@ -11,7 +11,7 @@ namespace Mono.Linker.Dataflow { - public readonly struct AttributeDataFlow + internal readonly struct AttributeDataFlow { readonly LinkContext _context; readonly MarkStep _markStep; diff --git a/src/tools/illink/src/linker/Linker.Dataflow/CompilerGeneratedState.cs b/src/tools/illink/src/linker/Linker.Dataflow/CompilerGeneratedState.cs index 04055bcc6d63d8..265ed8ff8567fb 100644 --- a/src/tools/illink/src/linker/Linker.Dataflow/CompilerGeneratedState.cs +++ b/src/tools/illink/src/linker/Linker.Dataflow/CompilerGeneratedState.cs @@ -13,7 +13,7 @@ namespace Mono.Linker.Dataflow { // Currently this is implemented using heuristics - public class CompilerGeneratedState + internal sealed class CompilerGeneratedState { readonly LinkContext _context; readonly Dictionary _compilerGeneratedTypeToUserCodeMethod; diff --git a/src/tools/illink/src/linker/Linker.Dataflow/GenericArgumentDataFlow.cs b/src/tools/illink/src/linker/Linker.Dataflow/GenericArgumentDataFlow.cs index 9d358a339ef70d..355b889e28d9c9 100644 --- a/src/tools/illink/src/linker/Linker.Dataflow/GenericArgumentDataFlow.cs +++ b/src/tools/illink/src/linker/Linker.Dataflow/GenericArgumentDataFlow.cs @@ -10,7 +10,7 @@ namespace Mono.Linker.Dataflow { - public readonly struct GenericArgumentDataFlow + internal readonly struct GenericArgumentDataFlow { readonly LinkContext _context; readonly MarkStep _markStep; diff --git a/src/tools/illink/src/linker/Linker.Dataflow/ReflectionMarker.cs b/src/tools/illink/src/linker/Linker.Dataflow/ReflectionMarker.cs index 6dbd6e7ca8c648..b586aebb31d16c 100644 --- a/src/tools/illink/src/linker/Linker.Dataflow/ReflectionMarker.cs +++ b/src/tools/illink/src/linker/Linker.Dataflow/ReflectionMarker.cs @@ -11,7 +11,7 @@ namespace Mono.Linker.Dataflow { - public readonly struct ReflectionMarker + internal readonly struct ReflectionMarker { readonly LinkContext _context; readonly MarkStep _markStep; diff --git a/src/tools/illink/src/linker/Linker.Dataflow/TrimAnalysisAssignmentPattern.cs b/src/tools/illink/src/linker/Linker.Dataflow/TrimAnalysisAssignmentPattern.cs index 90e742381e5572..78732ee63f0c7c 100644 --- a/src/tools/illink/src/linker/Linker.Dataflow/TrimAnalysisAssignmentPattern.cs +++ b/src/tools/illink/src/linker/Linker.Dataflow/TrimAnalysisAssignmentPattern.cs @@ -9,7 +9,7 @@ namespace Mono.Linker.Dataflow { - public readonly record struct TrimAnalysisAssignmentPattern + internal readonly record struct TrimAnalysisAssignmentPattern { public MultiValue Source { get; init; } public MultiValue Target { get; init; } diff --git a/src/tools/illink/src/linker/Linker.Dataflow/TrimAnalysisMethodCallPattern.cs b/src/tools/illink/src/linker/Linker.Dataflow/TrimAnalysisMethodCallPattern.cs index a7b42a048c7c04..86f6103f970683 100644 --- a/src/tools/illink/src/linker/Linker.Dataflow/TrimAnalysisMethodCallPattern.cs +++ b/src/tools/illink/src/linker/Linker.Dataflow/TrimAnalysisMethodCallPattern.cs @@ -12,7 +12,7 @@ namespace Mono.Linker.Dataflow { - public readonly record struct TrimAnalysisMethodCallPattern + internal readonly record struct TrimAnalysisMethodCallPattern { public readonly Instruction Operation; public readonly MethodReference CalledMethod; diff --git a/src/tools/illink/src/linker/Linker.Dataflow/TrimAnalysisPatternStore.cs b/src/tools/illink/src/linker/Linker.Dataflow/TrimAnalysisPatternStore.cs index 169656ca74ddfc..f4671136a0c400 100644 --- a/src/tools/illink/src/linker/Linker.Dataflow/TrimAnalysisPatternStore.cs +++ b/src/tools/illink/src/linker/Linker.Dataflow/TrimAnalysisPatternStore.cs @@ -8,7 +8,7 @@ namespace Mono.Linker.Dataflow { - public readonly struct TrimAnalysisPatternStore + internal readonly struct TrimAnalysisPatternStore { readonly Dictionary<(MessageOrigin, bool), TrimAnalysisAssignmentPattern> AssignmentPatterns; readonly Dictionary MethodCallPatterns; diff --git a/src/tools/illink/src/linker/Linker.Dataflow/ValueNode.cs b/src/tools/illink/src/linker/Linker.Dataflow/ValueNode.cs index b52e7ba9fcbaa6..b177bbc04a0658 100644 --- a/src/tools/illink/src/linker/Linker.Dataflow/ValueNode.cs +++ b/src/tools/illink/src/linker/Linker.Dataflow/ValueNode.cs @@ -8,7 +8,7 @@ namespace Mono.Linker.Dataflow { - public class ValueNodeList : List + internal sealed class ValueNodeList : List { public ValueNodeList () { @@ -48,7 +48,7 @@ public override bool Equals (object? other) } } - public struct ValueBasicBlockPair : IEquatable + internal struct ValueBasicBlockPair : IEquatable { public ValueBasicBlockPair (MultiValue value, int basicBlockIndex) { diff --git a/src/tools/illink/src/linker/Linker.Steps/AddBypassNGenStep.cs b/src/tools/illink/src/linker/Linker.Steps/AddBypassNGenStep.cs index affbf4e164bd61..ce3c91403a13ed 100644 --- a/src/tools/illink/src/linker/Linker.Steps/AddBypassNGenStep.cs +++ b/src/tools/illink/src/linker/Linker.Steps/AddBypassNGenStep.cs @@ -8,8 +8,7 @@ namespace Mono.Linker.Steps { - - public class AddBypassNGenStep : BaseStep + internal sealed class AddBypassNGenStep : BaseStep { AssemblyDefinition? coreLibAssembly; diff --git a/src/tools/illink/src/linker/Linker.Steps/BaseStep.cs b/src/tools/illink/src/linker/Linker.Steps/BaseStep.cs index 7bf5b4bf26b27f..b2928789db8d38 100644 --- a/src/tools/illink/src/linker/Linker.Steps/BaseStep.cs +++ b/src/tools/illink/src/linker/Linker.Steps/BaseStep.cs @@ -51,11 +51,11 @@ public AnnotationStore Annotations { get { return Context.Annotations; } } - public Tracer Tracer { + internal Tracer Tracer { get { return Context.Tracer; } } - public MarkingHelpers MarkingHelpers => Context.MarkingHelpers; + internal MarkingHelpers MarkingHelpers => Context.MarkingHelpers; public void Process (LinkContext context) { diff --git a/src/tools/illink/src/linker/Linker.Steps/BodySubstituterStep.cs b/src/tools/illink/src/linker/Linker.Steps/BodySubstituterStep.cs index 0f53aa2eee7eb5..b4b645d12015dd 100644 --- a/src/tools/illink/src/linker/Linker.Steps/BodySubstituterStep.cs +++ b/src/tools/illink/src/linker/Linker.Steps/BodySubstituterStep.cs @@ -5,7 +5,7 @@ namespace Mono.Linker.Steps { - public class BodySubstituterStep : ProcessLinkerXmlStepBase + internal sealed class BodySubstituterStep : ProcessLinkerXmlStepBase { public BodySubstituterStep (Stream documentStream, string xmlDocumentLocation) : base (documentStream, xmlDocumentLocation) diff --git a/src/tools/illink/src/linker/Linker.Steps/BodySubstitutionParser.cs b/src/tools/illink/src/linker/Linker.Steps/BodySubstitutionParser.cs index 17315ac322ff8f..10b108ce790206 100644 --- a/src/tools/illink/src/linker/Linker.Steps/BodySubstitutionParser.cs +++ b/src/tools/illink/src/linker/Linker.Steps/BodySubstitutionParser.cs @@ -11,7 +11,7 @@ namespace Mono.Linker.Steps { - public class BodySubstitutionParser : ProcessLinkerXmlBase + internal sealed class BodySubstitutionParser : ProcessLinkerXmlBase { SubstitutionInfo? _substitutionInfo; diff --git a/src/tools/illink/src/linker/Linker.Steps/CheckSuppressionsDispatcher.cs b/src/tools/illink/src/linker/Linker.Steps/CheckSuppressionsDispatcher.cs index be73c8628be750..208e2c3d3afef1 100644 --- a/src/tools/illink/src/linker/Linker.Steps/CheckSuppressionsDispatcher.cs +++ b/src/tools/illink/src/linker/Linker.Steps/CheckSuppressionsDispatcher.cs @@ -8,7 +8,7 @@ namespace Mono.Linker.Steps { - public class CheckSuppressionsDispatcher : SubStepsDispatcher + internal sealed class CheckSuppressionsDispatcher : SubStepsDispatcher { public CheckSuppressionsDispatcher () : base (new List { new CheckSuppressionsStep () }) { diff --git a/src/tools/illink/src/linker/Linker.Steps/CheckSuppressionsStep.cs b/src/tools/illink/src/linker/Linker.Steps/CheckSuppressionsStep.cs index 466d42177582be..e8bc7b0b466fc4 100644 --- a/src/tools/illink/src/linker/Linker.Steps/CheckSuppressionsStep.cs +++ b/src/tools/illink/src/linker/Linker.Steps/CheckSuppressionsStep.cs @@ -5,7 +5,7 @@ namespace Mono.Linker.Steps { - public class CheckSuppressionsStep : BaseSubStep + internal sealed class CheckSuppressionsStep : BaseSubStep { public override SubStepTargets Targets { get { diff --git a/src/tools/illink/src/linker/Linker.Steps/CleanStep.cs b/src/tools/illink/src/linker/Linker.Steps/CleanStep.cs index 374a7b9b85d632..a2c7afb9f4c564 100644 --- a/src/tools/illink/src/linker/Linker.Steps/CleanStep.cs +++ b/src/tools/illink/src/linker/Linker.Steps/CleanStep.cs @@ -33,8 +33,7 @@ namespace Mono.Linker.Steps { - - public class CleanStep : BaseStep + internal sealed class CleanStep : BaseStep { protected override void ProcessAssembly (AssemblyDefinition assembly) diff --git a/src/tools/illink/src/linker/Linker.Steps/CodeRewriterStep.cs b/src/tools/illink/src/linker/Linker.Steps/CodeRewriterStep.cs index 566a7ab1ae13e5..37c286f1eecb99 100644 --- a/src/tools/illink/src/linker/Linker.Steps/CodeRewriterStep.cs +++ b/src/tools/illink/src/linker/Linker.Steps/CodeRewriterStep.cs @@ -9,7 +9,10 @@ namespace Mono.Linker.Steps { - public class CodeRewriterStep : BaseStep + // Unity extension point +#pragma warning disable CA1852 // Seal internal types + internal class CodeRewriterStep : BaseStep +#pragma warning restore CA1852 { AssemblyDefinition? assembly; AssemblyDefinition Assembly { diff --git a/src/tools/illink/src/linker/Linker.Steps/DescriptorMarker.cs b/src/tools/illink/src/linker/Linker.Steps/DescriptorMarker.cs index a527ca2e0df60b..2b013a1c6bc61c 100644 --- a/src/tools/illink/src/linker/Linker.Steps/DescriptorMarker.cs +++ b/src/tools/illink/src/linker/Linker.Steps/DescriptorMarker.cs @@ -12,7 +12,10 @@ namespace Mono.Linker.Steps { - public class DescriptorMarker : ProcessLinkerXmlBase + // Unity extension point +#pragma warning disable CA1852 // Seal internal types + internal class DescriptorMarker : ProcessLinkerXmlBase +#pragma warning restore CA1852 { const string NamespaceElementName = "namespace"; diff --git a/src/tools/illink/src/linker/Linker.Steps/DiscoverCustomOperatorsHandler.cs b/src/tools/illink/src/linker/Linker.Steps/DiscoverCustomOperatorsHandler.cs index b6ecb134c2165f..6b22e3d824b04f 100644 --- a/src/tools/illink/src/linker/Linker.Steps/DiscoverCustomOperatorsHandler.cs +++ b/src/tools/illink/src/linker/Linker.Steps/DiscoverCustomOperatorsHandler.cs @@ -8,7 +8,7 @@ namespace Mono.Linker.Steps { - public class DiscoverOperatorsHandler : IMarkHandler + internal sealed class DiscoverOperatorsHandler : IMarkHandler { LinkContext? _context; LinkContext Context { diff --git a/src/tools/illink/src/linker/Linker.Steps/DiscoverSerializationHandler.cs b/src/tools/illink/src/linker/Linker.Steps/DiscoverSerializationHandler.cs index 771e1d6470c3b6..674bce49ed488e 100644 --- a/src/tools/illink/src/linker/Linker.Steps/DiscoverSerializationHandler.cs +++ b/src/tools/illink/src/linker/Linker.Steps/DiscoverSerializationHandler.cs @@ -11,7 +11,7 @@ namespace Mono.Linker.Steps // of xamarin-android. It is not meant to be complete. Unlike xamarin-andorid: // - this will only discover attributed types that are marked // - this will discover types in non-"link" assemblies as well - public class DiscoverSerializationHandler : IMarkHandler + internal sealed class DiscoverSerializationHandler : IMarkHandler { LinkContext? _context; LinkContext Context { diff --git a/src/tools/illink/src/linker/Linker.Steps/LinkAttributesParser.cs b/src/tools/illink/src/linker/Linker.Steps/LinkAttributesParser.cs index 2d2fed251ac8f6..76aa9afbb90c6b 100644 --- a/src/tools/illink/src/linker/Linker.Steps/LinkAttributesParser.cs +++ b/src/tools/illink/src/linker/Linker.Steps/LinkAttributesParser.cs @@ -15,7 +15,7 @@ namespace Mono.Linker.Steps { - public class LinkAttributesParser : ProcessLinkerXmlBase + internal sealed class LinkAttributesParser : ProcessLinkerXmlBase { AttributeInfo? _attributeInfo; diff --git a/src/tools/illink/src/linker/Linker.Steps/LinkAttributesStep.cs b/src/tools/illink/src/linker/Linker.Steps/LinkAttributesStep.cs index ae96a30f119356..a1878726f7257b 100644 --- a/src/tools/illink/src/linker/Linker.Steps/LinkAttributesStep.cs +++ b/src/tools/illink/src/linker/Linker.Steps/LinkAttributesStep.cs @@ -5,7 +5,7 @@ namespace Mono.Linker.Steps { - public class LinkAttributesStep : ProcessLinkerXmlStepBase + internal sealed class LinkAttributesStep : ProcessLinkerXmlStepBase { public LinkAttributesStep (Stream documentStream, string xmlDocumentLocation) : base (documentStream, xmlDocumentLocation) diff --git a/src/tools/illink/src/linker/Linker.Steps/MarkScopeStack.cs b/src/tools/illink/src/linker/Linker.Steps/MarkScopeStack.cs index ab1ad448754fcc..1b7346488a41c8 100644 --- a/src/tools/illink/src/linker/Linker.Steps/MarkScopeStack.cs +++ b/src/tools/illink/src/linker/Linker.Steps/MarkScopeStack.cs @@ -8,7 +8,7 @@ namespace Mono.Linker.Steps { - public class MarkScopeStack + internal sealed class MarkScopeStack { public readonly struct Scope { diff --git a/src/tools/illink/src/linker/Linker.Steps/MarkStep.cs b/src/tools/illink/src/linker/Linker.Steps/MarkStep.cs index 32fd98cbe039ca..1c7412f076aa36 100644 --- a/src/tools/illink/src/linker/Linker.Steps/MarkStep.cs +++ b/src/tools/illink/src/linker/Linker.Steps/MarkStep.cs @@ -48,8 +48,10 @@ namespace Mono.Linker.Steps { - - public partial class MarkStep : IStep + // Unity extension point +#pragma warning disable CA1852 // Seal internal types + internal partial class MarkStep : IStep +#pragma warning restore CA1852 { LinkContext? _context; protected LinkContext Context { @@ -3885,7 +3887,7 @@ protected virtual void MarkReflectionLikeDependencies (MethodIL methodIL, bool r scanner.InterproceduralScan (methodIL); } - protected class AttributeProviderPair + protected sealed class AttributeProviderPair { public AttributeProviderPair (CustomAttribute attribute, ICustomAttributeProvider provider) { diff --git a/src/tools/illink/src/linker/Linker.Steps/MarkStepContext.cs b/src/tools/illink/src/linker/Linker.Steps/MarkStepContext.cs index e65bf6eb03be70..dd4780624fd883 100644 --- a/src/tools/illink/src/linker/Linker.Steps/MarkStepContext.cs +++ b/src/tools/illink/src/linker/Linker.Steps/MarkStepContext.cs @@ -7,7 +7,7 @@ namespace Mono.Linker.Steps { - public class MarkStepContext : MarkContext + internal sealed class MarkStepContext : MarkContext { public List> MarkAssemblyActions { get; } diff --git a/src/tools/illink/src/linker/Linker.Steps/OutputStep.cs b/src/tools/illink/src/linker/Linker.Steps/OutputStep.cs index 5cf6f0e3f1e918..edf18944e7e965 100644 --- a/src/tools/illink/src/linker/Linker.Steps/OutputStep.cs +++ b/src/tools/illink/src/linker/Linker.Steps/OutputStep.cs @@ -39,8 +39,10 @@ namespace Mono.Linker.Steps { - - public class OutputStep : BaseStep + // Unity extension point +#pragma warning disable CA1852 // Seal internal types + internal class OutputStep : BaseStep +#pragma warning restore CA1852 { private Dictionary? architectureMap; diff --git a/src/tools/illink/src/linker/Linker.Steps/OutputWarningSuppressions.cs b/src/tools/illink/src/linker/Linker.Steps/OutputWarningSuppressions.cs index f9c65d99280bf1..2406b935e3782b 100644 --- a/src/tools/illink/src/linker/Linker.Steps/OutputWarningSuppressions.cs +++ b/src/tools/illink/src/linker/Linker.Steps/OutputWarningSuppressions.cs @@ -5,7 +5,7 @@ namespace Mono.Linker.Steps { - public class OutputWarningSuppressions : BaseStep + internal sealed class OutputWarningSuppressions : BaseStep { protected override bool ConditionToProcess () { diff --git a/src/tools/illink/src/linker/Linker.Steps/ProcessLinkerXmlStepBase.cs b/src/tools/illink/src/linker/Linker.Steps/ProcessLinkerXmlStepBase.cs index 60bc2959c9f6c0..209676123c6266 100644 --- a/src/tools/illink/src/linker/Linker.Steps/ProcessLinkerXmlStepBase.cs +++ b/src/tools/illink/src/linker/Linker.Steps/ProcessLinkerXmlStepBase.cs @@ -5,7 +5,7 @@ namespace Mono.Linker.Steps { - public class ProcessLinkerXmlStepBase : BaseStep + internal class ProcessLinkerXmlStepBase : BaseStep { protected readonly string _xmlDocumentLocation; protected readonly Stream _documentStream; diff --git a/src/tools/illink/src/linker/Linker.Steps/ProcessReferencesStep.cs b/src/tools/illink/src/linker/Linker.Steps/ProcessReferencesStep.cs index 15e0e67a605061..df126641b0baf5 100644 --- a/src/tools/illink/src/linker/Linker.Steps/ProcessReferencesStep.cs +++ b/src/tools/illink/src/linker/Linker.Steps/ProcessReferencesStep.cs @@ -7,7 +7,7 @@ namespace Mono.Linker.Steps { - public class ProcessReferencesStep : BaseStep + internal sealed class ProcessReferencesStep : BaseStep { protected override void Process () { diff --git a/src/tools/illink/src/linker/Linker.Steps/ProcessWarningsStep.cs b/src/tools/illink/src/linker/Linker.Steps/ProcessWarningsStep.cs index 6ed59590b6fe26..a9cbf41ed1f8a9 100644 --- a/src/tools/illink/src/linker/Linker.Steps/ProcessWarningsStep.cs +++ b/src/tools/illink/src/linker/Linker.Steps/ProcessWarningsStep.cs @@ -3,7 +3,7 @@ namespace Mono.Linker.Steps { - public class ProcessWarningsStep : BaseStep + internal sealed class ProcessWarningsStep : BaseStep { protected override void Process () { diff --git a/src/tools/illink/src/linker/Linker.Steps/ReflectionBlockedStep.cs b/src/tools/illink/src/linker/Linker.Steps/ReflectionBlockedStep.cs index 575e11539bd6b6..598765c8e05e3f 100644 --- a/src/tools/illink/src/linker/Linker.Steps/ReflectionBlockedStep.cs +++ b/src/tools/illink/src/linker/Linker.Steps/ReflectionBlockedStep.cs @@ -7,7 +7,7 @@ namespace Mono.Linker.Steps { - public class ReflectionBlockedStep : BaseStep + internal sealed class ReflectionBlockedStep : BaseStep { AssemblyDefinition? assembly; AssemblyDefinition Assembly { diff --git a/src/tools/illink/src/linker/Linker.Steps/RegenerateGuidStep.cs b/src/tools/illink/src/linker/Linker.Steps/RegenerateGuidStep.cs index bf5430bc5cd4f1..ea0f8a70232630 100644 --- a/src/tools/illink/src/linker/Linker.Steps/RegenerateGuidStep.cs +++ b/src/tools/illink/src/linker/Linker.Steps/RegenerateGuidStep.cs @@ -36,7 +36,7 @@ namespace Mono.Linker.Steps { - public class RegenerateGuidStep : BaseStep + internal sealed class RegenerateGuidStep : BaseStep { protected override void ProcessAssembly (AssemblyDefinition assembly) diff --git a/src/tools/illink/src/linker/Linker.Steps/RemoveResourcesStep.cs b/src/tools/illink/src/linker/Linker.Steps/RemoveResourcesStep.cs index 3e7b25ebd1977b..6553f165de6198 100644 --- a/src/tools/illink/src/linker/Linker.Steps/RemoveResourcesStep.cs +++ b/src/tools/illink/src/linker/Linker.Steps/RemoveResourcesStep.cs @@ -7,7 +7,7 @@ namespace Mono.Linker.Steps { - public class RemoveResourcesStep : BaseStep + internal sealed class RemoveResourcesStep : BaseStep { protected override void ProcessAssembly (AssemblyDefinition assembly) { diff --git a/src/tools/illink/src/linker/Linker.Steps/ResolveFromXmlStep.cs b/src/tools/illink/src/linker/Linker.Steps/ResolveFromXmlStep.cs index 737e0d168b93b6..973fd186387bae 100644 --- a/src/tools/illink/src/linker/Linker.Steps/ResolveFromXmlStep.cs +++ b/src/tools/illink/src/linker/Linker.Steps/ResolveFromXmlStep.cs @@ -35,7 +35,7 @@ namespace Mono.Linker.Steps { - public class ResolveFromXmlStep : ProcessLinkerXmlStepBase + internal sealed class ResolveFromXmlStep : ProcessLinkerXmlStepBase { public ResolveFromXmlStep (Stream documentStream, string xmlDocumentLocation) : base (documentStream, xmlDocumentLocation) diff --git a/src/tools/illink/src/linker/Linker.Steps/RootAssemblyInputStep.cs b/src/tools/illink/src/linker/Linker.Steps/RootAssemblyInputStep.cs index d29432e8b60cec..9f5cc675f36866 100644 --- a/src/tools/illink/src/linker/Linker.Steps/RootAssemblyInputStep.cs +++ b/src/tools/illink/src/linker/Linker.Steps/RootAssemblyInputStep.cs @@ -7,7 +7,7 @@ namespace Mono.Linker.Steps { - public class RootAssemblyInput : BaseStep + internal sealed class RootAssemblyInput : BaseStep { readonly string fileName; readonly AssemblyRootMode rootMode; diff --git a/src/tools/illink/src/linker/Linker.Steps/SealerStep.cs b/src/tools/illink/src/linker/Linker.Steps/SealerStep.cs index dbc64f0f1669de..8af190bd2579d0 100644 --- a/src/tools/illink/src/linker/Linker.Steps/SealerStep.cs +++ b/src/tools/illink/src/linker/Linker.Steps/SealerStep.cs @@ -8,7 +8,7 @@ namespace Mono.Linker.Steps { - public class SealerStep : BaseStep + internal sealed class SealerStep : BaseStep { HashSet? referencedBaseTypeCache; @@ -113,12 +113,12 @@ void ProcessType (TypeDefinition type) } } - protected virtual void SealType (TypeDefinition type) + static void SealType (TypeDefinition type) { type.IsSealed = true; } - protected virtual void SealMethod (MethodDefinition method) + static void SealMethod (MethodDefinition method) { method.IsFinal = true; } diff --git a/src/tools/illink/src/linker/Linker.Steps/SweepStep.cs b/src/tools/illink/src/linker/Linker.Steps/SweepStep.cs index 794ef60ea19a76..9747cbaae80b07 100644 --- a/src/tools/illink/src/linker/Linker.Steps/SweepStep.cs +++ b/src/tools/illink/src/linker/Linker.Steps/SweepStep.cs @@ -40,7 +40,10 @@ namespace Mono.Linker.Steps { - public class SweepStep : BaseStep + // Unity extension point +#pragma warning disable CA1852 // Seal internal types + internal class SweepStep : BaseStep +#pragma warning restore CA1852 { readonly bool sweepSymbols; diff --git a/src/tools/illink/src/linker/Linker.Steps/UnreachableBlocksOptimizer.cs b/src/tools/illink/src/linker/Linker.Steps/UnreachableBlocksOptimizer.cs index 295d740874cb91..d689ca34204feb 100644 --- a/src/tools/illink/src/linker/Linker.Steps/UnreachableBlocksOptimizer.cs +++ b/src/tools/illink/src/linker/Linker.Steps/UnreachableBlocksOptimizer.cs @@ -19,7 +19,7 @@ namespace Mono.Linker.Steps // then uses this information to remove unreachable conditional blocks and // inline collected constants. // - public class UnreachableBlocksOptimizer + internal sealed class UnreachableBlocksOptimizer { readonly LinkContext _context; readonly Dictionary _cache_method_results = new (2048); diff --git a/src/tools/illink/src/linker/Linker.Steps/ValidateVirtualMethodAnnotationsStep.cs b/src/tools/illink/src/linker/Linker.Steps/ValidateVirtualMethodAnnotationsStep.cs index 807a9b03b8a818..7b8cec2b0313ef 100644 --- a/src/tools/illink/src/linker/Linker.Steps/ValidateVirtualMethodAnnotationsStep.cs +++ b/src/tools/illink/src/linker/Linker.Steps/ValidateVirtualMethodAnnotationsStep.cs @@ -7,7 +7,7 @@ namespace Mono.Linker.Steps { - public class ValidateVirtualMethodAnnotationsStep : BaseStep + internal sealed class ValidateVirtualMethodAnnotationsStep : BaseStep { protected override void Process () { diff --git a/src/tools/illink/src/linker/Linker/Annotations.cs b/src/tools/illink/src/linker/Linker/Annotations.cs index a7b3198265e812..24f1c47be3a897 100644 --- a/src/tools/illink/src/linker/Linker/Annotations.cs +++ b/src/tools/illink/src/linker/Linker/Annotations.cs @@ -83,7 +83,7 @@ public AnnotationStore (LinkContext context) public bool ProcessSatelliteAssemblies { get; set; } - protected Tracer Tracer { + internal Tracer Tracer { get { return context.Tracer; } @@ -93,9 +93,9 @@ protected Tracer Tracer { internal HashSet VirtualMethodsWithAnnotationsToValidate { get; } - public TypeMapInfo TypeMapInfo { get; } + internal TypeMapInfo TypeMapInfo { get; } - public MemberActionStore MemberActions { get; } + internal MemberActionStore MemberActions { get; } [Obsolete ("Use Tracer in LinkContext directly")] public void PrepareDependenciesDump () diff --git a/src/tools/illink/src/linker/Linker/AssemblyDefinitionExtensions.cs b/src/tools/illink/src/linker/Linker/AssemblyDefinitionExtensions.cs index 6fa4adb644d00e..4c394cc1694a30 100644 --- a/src/tools/illink/src/linker/Linker/AssemblyDefinitionExtensions.cs +++ b/src/tools/illink/src/linker/Linker/AssemblyDefinitionExtensions.cs @@ -5,7 +5,7 @@ namespace Mono.Linker { - public static class AssemblyDefinitionExtensions + internal static class AssemblyDefinitionExtensions { public static EmbeddedResource? FindEmbeddedResource (this AssemblyDefinition assembly, string name) { diff --git a/src/tools/illink/src/linker/Linker/AssemblyResolver.cs b/src/tools/illink/src/linker/Linker/AssemblyResolver.cs index 98a593aabdb311..a6613b59219dc5 100644 --- a/src/tools/illink/src/linker/Linker/AssemblyResolver.cs +++ b/src/tools/illink/src/linker/Linker/AssemblyResolver.cs @@ -38,7 +38,11 @@ namespace Mono.Linker { - public class AssemblyResolver : IAssemblyResolver + // Unity extension point +#pragma warning disable CA1852 // Seal internal types + + internal class AssemblyResolver : IAssemblyResolver +#pragma warning restore CA1852 { readonly List _references = new (); readonly LinkContext _context; diff --git a/src/tools/illink/src/linker/Linker/AssemblyRootMode.cs b/src/tools/illink/src/linker/Linker/AssemblyRootMode.cs index c9a3d98a604ce0..4ac91cba61a7ee 100644 --- a/src/tools/illink/src/linker/Linker/AssemblyRootMode.cs +++ b/src/tools/illink/src/linker/Linker/AssemblyRootMode.cs @@ -3,7 +3,7 @@ namespace Mono.Linker { - public enum AssemblyRootMode + internal enum AssemblyRootMode { AllMembers = 0, EntryPoint, diff --git a/src/tools/illink/src/linker/Linker/AttributeInfo.cs b/src/tools/illink/src/linker/Linker/AttributeInfo.cs index 876dfcfaa63953..a5b59245614b57 100644 --- a/src/tools/illink/src/linker/Linker/AttributeInfo.cs +++ b/src/tools/illink/src/linker/Linker/AttributeInfo.cs @@ -9,7 +9,7 @@ namespace Mono.Linker { - public class AttributeInfo + internal sealed class AttributeInfo { public Dictionary CustomAttributes { get; } diff --git a/src/tools/illink/src/linker/Linker/BCL.cs b/src/tools/illink/src/linker/Linker/BCL.cs index a14cbc780d06cd..92dfd19a8b108e 100644 --- a/src/tools/illink/src/linker/Linker/BCL.cs +++ b/src/tools/illink/src/linker/Linker/BCL.cs @@ -6,7 +6,7 @@ namespace Mono.Linker { - public static class BCL + internal static class BCL { public static class EventTracingForWindows { diff --git a/src/tools/illink/src/linker/Linker/BannedApiExtensions.cs b/src/tools/illink/src/linker/Linker/BannedApiExtensions.cs index 6c05a041cc3db7..f5d07b54f185d8 100644 --- a/src/tools/illink/src/linker/Linker/BannedApiExtensions.cs +++ b/src/tools/illink/src/linker/Linker/BannedApiExtensions.cs @@ -10,7 +10,7 @@ namespace Mono.Linker; /// /// Extension methods to help make working with banned apis easier and more discoverable /// -public static class BannedApiExtensions +internal static class BannedApiExtensions { public static Collection Instructions (this MethodBody body, LinkContext context) => context.GetMethodIL(body.Method).Instructions; diff --git a/src/tools/illink/src/linker/Linker/ConsoleLogger.cs b/src/tools/illink/src/linker/Linker/ConsoleLogger.cs index 018bb8ae829816..d8de9057114d5c 100644 --- a/src/tools/illink/src/linker/Linker/ConsoleLogger.cs +++ b/src/tools/illink/src/linker/Linker/ConsoleLogger.cs @@ -5,7 +5,7 @@ namespace Mono.Linker { - public class ConsoleLogger : ILogger + internal sealed class ConsoleLogger : ILogger { public void LogMessage (MessageContainer message) { diff --git a/src/tools/illink/src/linker/Linker/CustomAttributeSource.cs b/src/tools/illink/src/linker/Linker/CustomAttributeSource.cs index f11419de4b4b2e..3d5d080a5c3a38 100644 --- a/src/tools/illink/src/linker/Linker/CustomAttributeSource.cs +++ b/src/tools/illink/src/linker/Linker/CustomAttributeSource.cs @@ -8,7 +8,7 @@ namespace Mono.Linker { - public class CustomAttributeSource + internal sealed class CustomAttributeSource { public AttributeInfo PrimaryAttributeInfo { get; } private readonly Dictionary _embeddedXmlInfos; diff --git a/src/tools/illink/src/linker/Linker/DependencyRecorderHelper.cs b/src/tools/illink/src/linker/Linker/DependencyRecorderHelper.cs index 6780a893954b61..3762f07e426914 100644 --- a/src/tools/illink/src/linker/Linker/DependencyRecorderHelper.cs +++ b/src/tools/illink/src/linker/Linker/DependencyRecorderHelper.cs @@ -9,7 +9,7 @@ namespace Mono.Linker /// /// Class which implements IDependencyRecorder and writes the dependencies into an DGML file. /// - public class DependencyRecorderHelper + internal static class DependencyRecorderHelper { static bool IsAssemblyBound (TypeDefinition td) { diff --git a/src/tools/illink/src/linker/Linker/DgmlDependencyRecorder.cs b/src/tools/illink/src/linker/Linker/DgmlDependencyRecorder.cs index 0e862b62b73cd7..dfadcafaaab508 100644 --- a/src/tools/illink/src/linker/Linker/DgmlDependencyRecorder.cs +++ b/src/tools/illink/src/linker/Linker/DgmlDependencyRecorder.cs @@ -12,7 +12,7 @@ namespace Mono.Linker /// /// Class which implements IDependencyRecorder and writes the dependencies into an DGML file. /// - public class DgmlDependencyRecorder : IDependencyRecorder, IDisposable + internal sealed class DgmlDependencyRecorder : IDependencyRecorder, IDisposable { public const string DefaultDependenciesFileName = "linker-dependencies.dgml"; public Dictionary nodeList = new (); diff --git a/src/tools/illink/src/linker/Linker/Driver.cs b/src/tools/illink/src/linker/Linker/Driver.cs index 742ee2140b9ce0..0a5a655d56f777 100644 --- a/src/tools/illink/src/linker/Linker/Driver.cs +++ b/src/tools/illink/src/linker/Linker/Driver.cs @@ -43,8 +43,10 @@ namespace Mono.Linker { - - public partial class Driver : IDisposable + // Extensible for testing purposes +#pragma warning disable CA1852 // Seal internal types + internal partial class Driver : IDisposable +#pragma warning restore CA1852 { const string resolvers = "-a|-x"; const string _linker = "IL Linker"; @@ -185,7 +187,7 @@ public enum DependenciesFileFormat // 0 => successfully set up context with all arguments // 1 => argument processing stopped early without errors // -1 => error setting up context - protected int SetupContext (ILogger? customLogger = null) + int SetupContext (ILogger? customLogger = null) { Pipeline p = GetStandardPipeline (); context = GetDefaultContext (p, customLogger); diff --git a/src/tools/illink/src/linker/Linker/EmbeddedXmlInfo.cs b/src/tools/illink/src/linker/Linker/EmbeddedXmlInfo.cs index 5e45539ac81cc3..267b539b87ed3b 100644 --- a/src/tools/illink/src/linker/Linker/EmbeddedXmlInfo.cs +++ b/src/tools/illink/src/linker/Linker/EmbeddedXmlInfo.cs @@ -10,7 +10,10 @@ namespace Mono.Linker { - public class EmbeddedXmlInfo + // Unity extension point +#pragma warning disable CA1852 // Seal internal types + internal class EmbeddedXmlInfo +#pragma warning restore CA1852 { static EmbeddedResource? GetEmbeddedXml (AssemblyDefinition assembly, Func predicate) { diff --git a/src/tools/illink/src/linker/Linker/InterfaceImplementor.cs b/src/tools/illink/src/linker/Linker/InterfaceImplementor.cs index e981ce872703f7..731bb014da353d 100644 --- a/src/tools/illink/src/linker/Linker/InterfaceImplementor.cs +++ b/src/tools/illink/src/linker/Linker/InterfaceImplementor.cs @@ -9,7 +9,7 @@ namespace Mono.Linker { - public class InterfaceImplementor + internal sealed class InterfaceImplementor { /// /// The type that implements . diff --git a/src/tools/illink/src/linker/Linker/InternalErrorException.cs b/src/tools/illink/src/linker/Linker/InternalErrorException.cs index 97e90aeeda6687..b767d981c1bf8c 100644 --- a/src/tools/illink/src/linker/Linker/InternalErrorException.cs +++ b/src/tools/illink/src/linker/Linker/InternalErrorException.cs @@ -5,7 +5,7 @@ namespace Mono.Linker { - public class InternalErrorException : Exception + internal sealed class InternalErrorException : Exception { /// /// Represents an internal fatal error. Should be used in places that are not expected to be hit by ILLink. diff --git a/src/tools/illink/src/linker/Linker/KnownMembers.cs b/src/tools/illink/src/linker/Linker/KnownMembers.cs index 6e2a3777a69ae6..e8d1fceb58db22 100644 --- a/src/tools/illink/src/linker/Linker/KnownMembers.cs +++ b/src/tools/illink/src/linker/Linker/KnownMembers.cs @@ -6,7 +6,7 @@ namespace Mono.Linker { - public class KnownMembers + internal sealed class KnownMembers { public MethodDefinition? NotSupportedExceptionCtorString { get; set; } public MethodDefinition? DisablePrivateReflectionAttributeCtor { get; set; } diff --git a/src/tools/illink/src/linker/Linker/LinkContext.cs b/src/tools/illink/src/linker/Linker/LinkContext.cs index 41fcba1a6f05b2..e6452dff4b8d24 100644 --- a/src/tools/illink/src/linker/Linker/LinkContext.cs +++ b/src/tools/illink/src/linker/Linker/LinkContext.cs @@ -43,8 +43,10 @@ namespace Mono.Linker { - - public class UnintializedContextFactory + // Unity extension point +#pragma warning disable CA1852 // Seal internal types + internal class UnintializedContextFactory +#pragma warning restore CA1852 { public virtual AnnotationStore CreateAnnotationStore (LinkContext context) => new AnnotationStore (context); public virtual MarkingHelpers CreateMarkingHelpers (LinkContext context) => new MarkingHelpers (context); @@ -84,13 +86,13 @@ public class LinkContext : IMetadataResolver, ITryResolveMetadata, IDisposable readonly Dictionary _isTrimmable; readonly UnreachableBlocksOptimizer _unreachableBlocksOptimizer; - public Pipeline Pipeline { + internal Pipeline Pipeline { get { return _pipeline; } } - public CustomAttributeSource CustomAttributes => _customAttributes; + internal CustomAttributeSource CustomAttributes => _customAttributes; - public CompilerGeneratedState CompilerGeneratedState => _compilerGeneratedState; + internal CompilerGeneratedState CompilerGeneratedState => _compilerGeneratedState; public AnnotationStore Annotations => _annotations; @@ -134,7 +136,7 @@ public Pipeline Pipeline { public Dictionary FeatureSettings { get; init; } - public List PInvokes { get; private set; } + internal List PInvokes { get; private set; } public string? PInvokesListFile; @@ -144,7 +146,7 @@ public Dictionary Actions { get { return _actions; } } - public AssemblyResolver Resolver { + internal AssemblyResolver Resolver { get { return _resolver; } } @@ -156,11 +158,11 @@ internal TypeNameResolver TypeNameResolver { public bool LogMessages { get; set; } - public MarkingHelpers MarkingHelpers { get; private set; } + internal MarkingHelpers MarkingHelpers { get; private set; } - public KnownMembers MarkedKnownMembers { get; private set; } + internal KnownMembers MarkedKnownMembers { get; private set; } - public WarningSuppressionWriter? WarningSuppressionWriter { get; set; } + internal WarningSuppressionWriter? WarningSuppressionWriter { get; set; } public HashSet NoWarn { get; set; } @@ -172,13 +174,13 @@ internal TypeNameResolver TypeNameResolver { public WarnVersion WarnVersion { get; set; } - public UnconditionalSuppressMessageAttributeState Suppressions { get; set; } + internal UnconditionalSuppressMessageAttributeState Suppressions { get; set; } - public Tracer Tracer { get; private set; } + internal Tracer Tracer { get; private set; } - public EmbeddedXmlInfo EmbeddedXmlInfo { get; private set; } + internal EmbeddedXmlInfo EmbeddedXmlInfo { get; private set; } - public CodeOptimizationsSettings Optimizations { get; set; } + internal CodeOptimizationsSettings Optimizations { get; set; } public bool AddReflectionAnnotations { get; set; } @@ -192,14 +194,14 @@ internal TypeNameResolver TypeNameResolver { public HashSet AssembliesWithGeneratedSingleWarning { get; set; } - public SerializationMarker SerializationMarker { get; } + internal SerializationMarker SerializationMarker { get; } - public LinkContext (Pipeline pipeline, ILogger logger, string outputDirectory) + internal LinkContext (Pipeline pipeline, ILogger logger, string outputDirectory) : this(pipeline, logger, outputDirectory, new UnintializedContextFactory ()) { } - protected LinkContext (Pipeline pipeline, ILogger logger, string outputDirectory, UnintializedContextFactory factory) + private LinkContext (Pipeline pipeline, ILogger logger, string outputDirectory, UnintializedContextFactory factory) { _pipeline = pipeline; _logger = logger ?? throw new ArgumentNullException (nameof (logger)); @@ -1019,7 +1021,7 @@ protected virtual void ReportUnresolved (ExportedType et) } } - public class CodeOptimizationsSettings + internal sealed class CodeOptimizationsSettings { sealed class Pair { diff --git a/src/tools/illink/src/linker/Linker/LinkerFatalErrorException.cs b/src/tools/illink/src/linker/Linker/LinkerFatalErrorException.cs index 74529d4cdaf16f..e8a7c1acdc6e64 100644 --- a/src/tools/illink/src/linker/Linker/LinkerFatalErrorException.cs +++ b/src/tools/illink/src/linker/Linker/LinkerFatalErrorException.cs @@ -9,7 +9,7 @@ namespace Mono.Linker /// Represents a known error that occurred during link time which is not solvable by the user. /// This is used when we want to present the non-recoverable error with a specific error code. /// - public class LinkerFatalErrorException : Exception + internal sealed class LinkerFatalErrorException : Exception { public MessageContainer MessageContainer { get; } diff --git a/src/tools/illink/src/linker/Linker/MarkingHelpers.cs b/src/tools/illink/src/linker/Linker/MarkingHelpers.cs index 746722625ecd88..8f3ac0b816eab0 100644 --- a/src/tools/illink/src/linker/Linker/MarkingHelpers.cs +++ b/src/tools/illink/src/linker/Linker/MarkingHelpers.cs @@ -5,9 +5,9 @@ namespace Mono.Linker { - public class MarkingHelpers + internal sealed class MarkingHelpers { - protected readonly LinkContext _context; + readonly LinkContext _context; public MarkingHelpers (LinkContext context) { diff --git a/src/tools/illink/src/linker/Linker/MemberActionStore.cs b/src/tools/illink/src/linker/Linker/MemberActionStore.cs index 84f2cfd7fb4675..9c617493801815 100644 --- a/src/tools/illink/src/linker/Linker/MemberActionStore.cs +++ b/src/tools/illink/src/linker/Linker/MemberActionStore.cs @@ -7,7 +7,7 @@ namespace Mono.Linker { - public class MemberActionStore + internal sealed class MemberActionStore { public SubstitutionInfo PrimarySubstitutionInfo { get; } private readonly Dictionary _embeddedXmlInfos; diff --git a/src/tools/illink/src/linker/Linker/PInvokeInfo.cs b/src/tools/illink/src/linker/Linker/PInvokeInfo.cs index 1df88461cbf423..b7057f9b8c49a4 100644 --- a/src/tools/illink/src/linker/Linker/PInvokeInfo.cs +++ b/src/tools/illink/src/linker/Linker/PInvokeInfo.cs @@ -7,7 +7,7 @@ namespace Mono.Linker { [DataContract] - public class PInvokeInfo : IComparable + internal sealed class PInvokeInfo : IComparable { [DataMember (Name = "assembly")] internal string AssemblyName { get; set; } diff --git a/src/tools/illink/src/linker/Linker/Pipeline.cs b/src/tools/illink/src/linker/Linker/Pipeline.cs index d0307b342d7f29..814009253e61e5 100644 --- a/src/tools/illink/src/linker/Linker/Pipeline.cs +++ b/src/tools/illink/src/linker/Linker/Pipeline.cs @@ -35,8 +35,10 @@ namespace Mono.Linker { - - public class Pipeline + // Unity extension point +#pragma warning disable CA1852 // Seal internal types + internal class Pipeline +#pragma warning restore CA1852 { readonly List _steps; diff --git a/src/tools/illink/src/linker/Linker/SerializationMarker.cs b/src/tools/illink/src/linker/Linker/SerializationMarker.cs index 0f13544ea47fb3..167da301570638 100644 --- a/src/tools/illink/src/linker/Linker/SerializationMarker.cs +++ b/src/tools/illink/src/linker/Linker/SerializationMarker.cs @@ -49,7 +49,7 @@ public enum SerializerKind DataContractSerializer = 2, } - public class SerializationMarker + internal sealed class SerializationMarker { readonly LinkContext _context; diff --git a/src/tools/illink/src/linker/Linker/SubstitutionInfo.cs b/src/tools/illink/src/linker/Linker/SubstitutionInfo.cs index 7f92d75c6429f1..1bfdcf937efce5 100644 --- a/src/tools/illink/src/linker/Linker/SubstitutionInfo.cs +++ b/src/tools/illink/src/linker/Linker/SubstitutionInfo.cs @@ -6,7 +6,7 @@ namespace Mono.Linker { - public class SubstitutionInfo + internal sealed class SubstitutionInfo { public Dictionary MethodActions { get; } public Dictionary MethodStubValues { get; } diff --git a/src/tools/illink/src/linker/Linker/SuppressMessageInfo.cs b/src/tools/illink/src/linker/Linker/SuppressMessageInfo.cs index 4e7eabf4679e87..fcbe77093d92f5 100644 --- a/src/tools/illink/src/linker/Linker/SuppressMessageInfo.cs +++ b/src/tools/illink/src/linker/Linker/SuppressMessageInfo.cs @@ -3,7 +3,7 @@ namespace Mono.Linker { - public struct SuppressMessageInfo + internal struct SuppressMessageInfo { public int Id; public string Scope; diff --git a/src/tools/illink/src/linker/Linker/Tracer.cs b/src/tools/illink/src/linker/Linker/Tracer.cs index 854f2ecdced049..1dff23bcd52219 100644 --- a/src/tools/illink/src/linker/Linker/Tracer.cs +++ b/src/tools/illink/src/linker/Linker/Tracer.cs @@ -35,9 +35,9 @@ namespace Mono.Linker { - public class Tracer + internal sealed class Tracer { - protected readonly LinkContext context; + readonly LinkContext context; List? recorders; diff --git a/src/tools/illink/src/linker/Linker/TypeMapInfo.cs b/src/tools/illink/src/linker/Linker/TypeMapInfo.cs index 7e68b71bcb7d08..ce9b95cb5bc0e1 100644 --- a/src/tools/illink/src/linker/Linker/TypeMapInfo.cs +++ b/src/tools/illink/src/linker/Linker/TypeMapInfo.cs @@ -38,8 +38,10 @@ namespace Mono.Linker { - - public class TypeMapInfo + // Unity extension point +#pragma warning disable CA1852 // Seal internal types + internal class TypeMapInfo +#pragma warning restore CA1852 { readonly HashSet assemblies = new HashSet (); readonly LinkContext context; diff --git a/src/tools/illink/src/linker/Linker/UnconditionalSuppressMessageAttributeState.cs b/src/tools/illink/src/linker/Linker/UnconditionalSuppressMessageAttributeState.cs index 6dac894accc815..7589c8bb6d0fc7 100644 --- a/src/tools/illink/src/linker/Linker/UnconditionalSuppressMessageAttributeState.cs +++ b/src/tools/illink/src/linker/Linker/UnconditionalSuppressMessageAttributeState.cs @@ -10,13 +10,13 @@ namespace Mono.Linker { - public class UnconditionalSuppressMessageAttributeState + internal sealed class UnconditionalSuppressMessageAttributeState { internal const string ScopeProperty = "Scope"; internal const string TargetProperty = "Target"; internal const string MessageIdProperty = "MessageId"; - public class Suppression + internal sealed class Suppression { public SuppressMessageInfo SuppressMessageInfo { get; } public bool Used { get; set; } diff --git a/src/tools/illink/src/linker/Linker/WarningSuppressionWriter.cs b/src/tools/illink/src/linker/Linker/WarningSuppressionWriter.cs index d7a33b87cdcf8f..41145992b3705e 100644 --- a/src/tools/illink/src/linker/Linker/WarningSuppressionWriter.cs +++ b/src/tools/illink/src/linker/Linker/WarningSuppressionWriter.cs @@ -11,7 +11,7 @@ namespace Mono.Linker { - public class WarningSuppressionWriter + internal sealed class WarningSuppressionWriter { private readonly Dictionary> _warnings; private readonly FileOutputKind _fileOutputKind; diff --git a/src/tools/illink/src/linker/Linker/XmlDependencyRecorder.cs b/src/tools/illink/src/linker/Linker/XmlDependencyRecorder.cs index 189e6fa274efa4..d1569ef8c5c090 100644 --- a/src/tools/illink/src/linker/Linker/XmlDependencyRecorder.cs +++ b/src/tools/illink/src/linker/Linker/XmlDependencyRecorder.cs @@ -37,7 +37,7 @@ namespace Mono.Linker /// /// Class which implements IDependencyRecorder and writes the dependencies into an XML file. /// - public class XmlDependencyRecorder : IDependencyRecorder, IDisposable + internal sealed class XmlDependencyRecorder : IDependencyRecorder, IDisposable { public const string DefaultDependenciesFileName = "linker-dependencies.xml"; diff --git a/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TrimmingDriver.cs b/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TrimmingDriver.cs index d6f0e9aadb1e87..c42535dfed1e75 100644 --- a/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TrimmingDriver.cs +++ b/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TrimmingDriver.cs @@ -32,4 +32,4 @@ public virtual TrimmingResults Trim (string[] args, TrimmingCustomizations custo } } } -} \ No newline at end of file +} From be9e176b7942418069661323becec2c8c8221a24 Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Mon, 11 Mar 2024 17:42:40 +0000 Subject: [PATCH 03/15] Fix linker build --- .../src/ILLink.Shared/DataFlow/DefaultValueDictionary.cs | 2 +- .../illink/src/ILLink.Shared/DataFlow/MaybeLattice.cs | 4 ++-- src/tools/illink/src/ILLink.Shared/DataFlow/ValueSet.cs | 8 +++++--- .../illink/src/ILLink.Shared/DataFlow/ValueSetLattice.cs | 2 +- .../ILLink.Shared/TypeSystemProxy/ParameterCollection.cs | 2 +- 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/tools/illink/src/ILLink.Shared/DataFlow/DefaultValueDictionary.cs b/src/tools/illink/src/ILLink.Shared/DataFlow/DefaultValueDictionary.cs index 49dc72f2b14a08..c0e0504dfb2804 100644 --- a/src/tools/illink/src/ILLink.Shared/DataFlow/DefaultValueDictionary.cs +++ b/src/tools/illink/src/ILLink.Shared/DataFlow/DefaultValueDictionary.cs @@ -16,7 +16,7 @@ namespace ILLink.Shared.DataFlow // the default value, or another value. The default value is never explicitly stored in the dictionary, // and the empty dictionary (where all possible keys have the default value) is represented without // actually allocating a dictionary. - public struct DefaultValueDictionary : IEquatable>, + internal struct DefaultValueDictionary : IEquatable>, IEnumerable> where TKey : IEquatable where TValue : IEquatable diff --git a/src/tools/illink/src/ILLink.Shared/DataFlow/MaybeLattice.cs b/src/tools/illink/src/ILLink.Shared/DataFlow/MaybeLattice.cs index 65726b205539c3..4ff6f92e890a0d 100644 --- a/src/tools/illink/src/ILLink.Shared/DataFlow/MaybeLattice.cs +++ b/src/tools/illink/src/ILLink.Shared/DataFlow/MaybeLattice.cs @@ -10,7 +10,7 @@ namespace ILLink.Shared.DataFlow // Wrapper for Nullable which implements IEquatable so that this may // be used as a lattice value. Nullable types can't satisfy interface constraints; // see for example https://docs.microsoft.com/dotnet/csharp/misc/cs0313. - public struct Maybe : IEquatable>, IDeepCopyValue> + internal struct Maybe : IEquatable>, IDeepCopyValue> where T : struct, IEquatable { public T? MaybeValue; @@ -31,7 +31,7 @@ public Maybe DeepCopy () public static bool operator != (Maybe left, Maybe right) => !(left == right); } - public struct MaybeLattice : ILattice> + internal struct MaybeLattice : ILattice> where T : struct, IEquatable where TValueLattice : ILattice { diff --git a/src/tools/illink/src/ILLink.Shared/DataFlow/ValueSet.cs b/src/tools/illink/src/ILLink.Shared/DataFlow/ValueSet.cs index ca1e5e0f07daef..14ae4fcf98ff68 100644 --- a/src/tools/illink/src/ILLink.Shared/DataFlow/ValueSet.cs +++ b/src/tools/illink/src/ILLink.Shared/DataFlow/ValueSet.cs @@ -13,12 +13,14 @@ namespace ILLink.Shared.DataFlow { - public readonly struct ValueSet : IEquatable>, IDeepCopyValue> + internal readonly struct ValueSet : IEquatable>, IDeepCopyValue> where TValue : notnull { const int MaxValuesInSet = 256; +#pragma warning disable CS0649 // Field is never assigned to, and will always have its default value public static readonly ValueSet Empty; +#pragma warning restore CS0649 private sealed class ValueSetSentinel { @@ -76,7 +78,7 @@ public bool Equals (TValue other) } } - public struct Enumerator : IEnumerator, IDisposable, IEnumerator + internal struct Enumerator : IEnumerator, IDisposable, IEnumerator { private readonly object? _value; private int _state; // 0 before beginning, 1 at item, 2 after end @@ -128,7 +130,7 @@ public void Reset () } } - public readonly struct Enumerable : IEnumerable + internal readonly struct Enumerable : IEnumerable { private readonly object? _values; diff --git a/src/tools/illink/src/ILLink.Shared/DataFlow/ValueSetLattice.cs b/src/tools/illink/src/ILLink.Shared/DataFlow/ValueSetLattice.cs index 8558fe8402f9d2..b68b7324a80935 100644 --- a/src/tools/illink/src/ILLink.Shared/DataFlow/ValueSetLattice.cs +++ b/src/tools/illink/src/ILLink.Shared/DataFlow/ValueSetLattice.cs @@ -9,7 +9,7 @@ namespace ILLink.Shared.DataFlow { // A lattice over ValueSets where the Meet operation is just set union. - public readonly struct ValueSetLattice : ILattice> + internal readonly struct ValueSetLattice : ILattice> where TValue : IEquatable { public ValueSet Top => default; diff --git a/src/tools/illink/src/ILLink.Shared/TypeSystemProxy/ParameterCollection.cs b/src/tools/illink/src/ILLink.Shared/TypeSystemProxy/ParameterCollection.cs index a7a4310cda135e..de8b16029b1be2 100644 --- a/src/tools/illink/src/ILLink.Shared/TypeSystemProxy/ParameterCollection.cs +++ b/src/tools/illink/src/ILLink.Shared/TypeSystemProxy/ParameterCollection.cs @@ -34,7 +34,7 @@ public ParameterProxyEnumerable (int start, int end, MethodProxy method) IEnumerator IEnumerable.GetEnumerator () => new ParameterEnumerator (_start, _end, _method); - public struct ParameterEnumerator : IEnumerator + internal struct ParameterEnumerator : IEnumerator { private readonly int _start; private int _current; From 5174c59a04c4dcdb4d38ffba8883deee6386c795 Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Mon, 11 Mar 2024 17:49:04 +0000 Subject: [PATCH 04/15] Fix analyzer build --- .../ILLink.RoslynAnalyzer/DataFlow/FeatureChecksValue.cs | 2 +- .../ILLink.RoslynAnalyzer/DataFlow/FeatureContextLattice.cs | 4 ++-- .../DataFlow/LocalStateAndContextLattice.cs | 2 +- .../src/ILLink.RoslynAnalyzer/DataFlow/LocalStateLattice.cs | 2 +- .../TrimAnalysis/FeatureCheckReturnValuePattern.cs | 2 +- .../TrimAnalysis/TrimAnalysisAssignmentPattern.cs | 2 +- .../TrimAnalysis/TrimAnalysisFieldAccessPattern.cs | 3 +-- .../TrimAnalysis/TrimAnalysisGenericInstantiationPattern.cs | 2 +- .../TrimAnalysis/TrimAnalysisMethodCallPattern.cs | 2 +- .../TrimAnalysis/TrimAnalysisPatternStore.cs | 6 +++--- .../TrimAnalysis/TrimAnalysisReflectionAccessPattern.cs | 3 +-- 11 files changed, 14 insertions(+), 16 deletions(-) diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/FeatureChecksValue.cs b/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/FeatureChecksValue.cs index 028628f2dd5934..91daafef659a1d 100644 --- a/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/FeatureChecksValue.cs +++ b/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/FeatureChecksValue.cs @@ -13,7 +13,7 @@ namespace ILLink.RoslynAnalyzer.DataFlow // For now, this is only designed to track the built-in "features"/"capabilities" // like RuntimeFeatures.IsDynamicCodeSupported, where a true return value // indicates that a feature/capability is available. - public record struct FeatureChecksValue : INegate, IDeepCopyValue + internal record struct FeatureChecksValue : INegate, IDeepCopyValue { public ValueSet EnabledFeatures; public ValueSet DisabledFeatures; diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/FeatureContextLattice.cs b/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/FeatureContextLattice.cs index 319730629e90a9..88755aeee035c5 100644 --- a/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/FeatureContextLattice.cs +++ b/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/FeatureContextLattice.cs @@ -11,7 +11,7 @@ namespace ILLink.RoslynAnalyzer.DataFlow { - public struct FeatureContext : IEquatable, IDeepCopyValue + internal struct FeatureContext : IEquatable, IDeepCopyValue { // The set of features known to be enabled in this context. // Unknown represents "all possible features". @@ -54,7 +54,7 @@ public FeatureContext Union (FeatureContext other) } } - public readonly struct FeatureContextLattice : ILattice + internal readonly struct FeatureContextLattice : ILattice { public FeatureContextLattice () { } diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/LocalStateAndContextLattice.cs b/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/LocalStateAndContextLattice.cs index 1a9789babc5997..821f20caa28993 100644 --- a/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/LocalStateAndContextLattice.cs +++ b/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/LocalStateAndContextLattice.cs @@ -8,7 +8,7 @@ namespace ILLink.RoslynAnalyzer.DataFlow { // A lattice value that holds both a local state, and a context - public struct LocalStateAndContext : IEquatable> + internal struct LocalStateAndContext : IEquatable> where TValue : IEquatable where TContext : IEquatable { diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/LocalStateLattice.cs b/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/LocalStateLattice.cs index 76a0e2ec791f37..368c478bedfb97 100644 --- a/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/LocalStateLattice.cs +++ b/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/LocalStateLattice.cs @@ -35,7 +35,7 @@ public override string ToString () } } - public struct LocalState : IEquatable> + internal struct LocalState : IEquatable> where TValue : IEquatable { public DefaultValueDictionary Dictionary; diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/FeatureCheckReturnValuePattern.cs b/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/FeatureCheckReturnValuePattern.cs index 1428b8cb4dbf8b..6c5e9085767e01 100644 --- a/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/FeatureCheckReturnValuePattern.cs +++ b/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/FeatureCheckReturnValuePattern.cs @@ -10,7 +10,7 @@ namespace ILLink.RoslynAnalyzer.TrimAnalysis { - public readonly record struct FeatureCheckReturnValuePattern + internal readonly record struct FeatureCheckReturnValuePattern { public FeatureChecksValue ReturnValue { get; init; } public ValueSet FeatureCheckAnnotations { get; init; } diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimAnalysisAssignmentPattern.cs b/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimAnalysisAssignmentPattern.cs index 2ffcbc43ae8846..3517ee4ddc5a21 100644 --- a/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimAnalysisAssignmentPattern.cs +++ b/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimAnalysisAssignmentPattern.cs @@ -15,7 +15,7 @@ namespace ILLink.RoslynAnalyzer.TrimAnalysis { - public readonly record struct TrimAnalysisAssignmentPattern + internal readonly record struct TrimAnalysisAssignmentPattern { public MultiValue Source { get; init; } public MultiValue Target { get; init; } diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimAnalysisFieldAccessPattern.cs b/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimAnalysisFieldAccessPattern.cs index 61a925bef7e330..fbd2f7eca57cd9 100644 --- a/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimAnalysisFieldAccessPattern.cs +++ b/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimAnalysisFieldAccessPattern.cs @@ -11,7 +11,7 @@ namespace ILLink.RoslynAnalyzer.TrimAnalysis { - public readonly record struct TrimAnalysisFieldAccessPattern + internal readonly record struct TrimAnalysisFieldAccessPattern { public IFieldSymbol Field { get; init; } public IFieldReferenceOperation Operation { get; init; } @@ -31,7 +31,6 @@ public TrimAnalysisFieldAccessPattern ( } public TrimAnalysisFieldAccessPattern Merge ( - ValueSetLattice lattice, FeatureContextLattice featureContextLattice, TrimAnalysisFieldAccessPattern other) { diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimAnalysisGenericInstantiationPattern.cs b/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimAnalysisGenericInstantiationPattern.cs index 26f275085fa8bf..82d48c54618f86 100644 --- a/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimAnalysisGenericInstantiationPattern.cs +++ b/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimAnalysisGenericInstantiationPattern.cs @@ -9,7 +9,7 @@ namespace ILLink.RoslynAnalyzer.TrimAnalysis { - public readonly record struct TrimAnalysisGenericInstantiationPattern + internal readonly record struct TrimAnalysisGenericInstantiationPattern { public ISymbol GenericInstantiation { get; init; } public IOperation Operation { get; init; } diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimAnalysisMethodCallPattern.cs b/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimAnalysisMethodCallPattern.cs index 3dfd7fa285521a..8163182f00a7f3 100644 --- a/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimAnalysisMethodCallPattern.cs +++ b/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimAnalysisMethodCallPattern.cs @@ -15,7 +15,7 @@ namespace ILLink.RoslynAnalyzer.TrimAnalysis { - public readonly record struct TrimAnalysisMethodCallPattern + internal readonly record struct TrimAnalysisMethodCallPattern { public IMethodSymbol CalledMethod { get; init; } public MultiValue Instance { get; init; } diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimAnalysisPatternStore.cs b/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimAnalysisPatternStore.cs index dd66d802934be6..17f2e755f90834 100644 --- a/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimAnalysisPatternStore.cs +++ b/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimAnalysisPatternStore.cs @@ -10,7 +10,7 @@ namespace ILLink.RoslynAnalyzer.TrimAnalysis { - public readonly struct TrimAnalysisPatternStore + internal readonly struct TrimAnalysisPatternStore { readonly Dictionary<(IOperation, bool), TrimAnalysisAssignmentPattern> AssignmentPatterns; readonly Dictionary FieldAccessPatterns; @@ -60,7 +60,7 @@ public void Add (TrimAnalysisFieldAccessPattern pattern) return; } - FieldAccessPatterns[pattern.Operation] = pattern.Merge (Lattice, FeatureContextLattice, existingPattern); + FieldAccessPatterns[pattern.Operation] = pattern.Merge (FeatureContextLattice, existingPattern); } public void Add (TrimAnalysisGenericInstantiationPattern pattern) @@ -90,7 +90,7 @@ public void Add (TrimAnalysisReflectionAccessPattern pattern) return; } - ReflectionAccessPatterns[pattern.Operation] = pattern.Merge (Lattice, FeatureContextLattice, existingPattern); + ReflectionAccessPatterns[pattern.Operation] = pattern.Merge (FeatureContextLattice, existingPattern); } public void Add (FeatureCheckReturnValuePattern pattern) diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimAnalysisReflectionAccessPattern.cs b/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimAnalysisReflectionAccessPattern.cs index 85897420596f49..7711d6ade39771 100644 --- a/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimAnalysisReflectionAccessPattern.cs +++ b/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/TrimAnalysisReflectionAccessPattern.cs @@ -10,7 +10,7 @@ namespace ILLink.RoslynAnalyzer.TrimAnalysis { - public readonly record struct TrimAnalysisReflectionAccessPattern + internal readonly record struct TrimAnalysisReflectionAccessPattern { public IMethodSymbol ReferencedMethod { get; init; } public IOperation Operation { get; init; } @@ -30,7 +30,6 @@ public TrimAnalysisReflectionAccessPattern ( } public TrimAnalysisReflectionAccessPattern Merge ( - ValueSetLattice lattice, FeatureContextLattice featureContextLattice, TrimAnalysisReflectionAccessPattern other) { From 8b7295ad3af19e7a62e2f3c7cff2e5ebdc380e05 Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Mon, 11 Mar 2024 19:57:52 +0000 Subject: [PATCH 05/15] Make static classes internal --- src/tools/illink/src/ILLink.Shared/DiagnosticId.cs | 2 ++ src/tools/illink/src/ILLink.Shared/MessageSubCategory.cs | 2 +- src/tools/illink/src/ILLink.Tasks/Utils.cs | 2 +- .../src/linker/Linker.Steps/MarkExportedTypesTargetStep.cs | 2 +- src/tools/illink/src/linker/Linker.Steps/RemoveSecurityStep.cs | 2 +- src/tools/illink/src/linker/Linker/BCL.cs | 2 +- .../src/linker/Linker/CustomAttributeArgumentExtensions.cs | 2 +- .../illink/src/linker/Linker/DocumentationSignatureParser.cs | 2 +- src/tools/illink/src/linker/Linker/FeatureSettings.cs | 2 +- src/tools/illink/src/linker/Linker/LinkContext.cs | 2 +- src/tools/illink/src/linker/Linker/LinkerEventSource.cs | 2 +- src/tools/illink/src/linker/Linker/MemberReferenceExtensions.cs | 2 +- src/tools/illink/src/linker/Linker/MethodBodyScanner.cs | 2 +- .../illink/src/linker/Linker/MethodDefinitionExtensions.cs | 2 +- src/tools/illink/src/linker/Linker/MethodReferenceExtensions.cs | 2 +- .../illink/src/linker/Linker/ModuleDefinitionExtensions.cs | 2 +- src/tools/illink/src/linker/Linker/ParameterHelpers.cs | 2 +- src/tools/illink/src/linker/Linker/PlatformAssemblies.cs | 2 +- src/tools/illink/src/linker/Linker/TypeDefinitionExtensions.cs | 2 +- src/tools/illink/src/linker/Linker/TypeReferenceExtensions.cs | 2 +- 20 files changed, 21 insertions(+), 19 deletions(-) diff --git a/src/tools/illink/src/ILLink.Shared/DiagnosticId.cs b/src/tools/illink/src/ILLink.Shared/DiagnosticId.cs index 5d40efbbaaf994..2eec703dc6bf53 100644 --- a/src/tools/illink/src/ILLink.Shared/DiagnosticId.cs +++ b/src/tools/illink/src/ILLink.Shared/DiagnosticId.cs @@ -208,6 +208,8 @@ public enum DiagnosticId InvalidFeatureGuard = 4001 } + // Must be public, because code fixer references the AsString extension. + // Or, could use InternalsVisibleto. public static class DiagnosticIdExtensions { public static string AsString (this DiagnosticId diagnosticId) => $"IL{(int) diagnosticId}"; diff --git a/src/tools/illink/src/ILLink.Shared/MessageSubCategory.cs b/src/tools/illink/src/ILLink.Shared/MessageSubCategory.cs index 4b47d266681156..b571f3c95ee049 100644 --- a/src/tools/illink/src/ILLink.Shared/MessageSubCategory.cs +++ b/src/tools/illink/src/ILLink.Shared/MessageSubCategory.cs @@ -6,7 +6,7 @@ namespace ILLink.Shared { - public static class MessageSubCategory + internal static class MessageSubCategory { public const string None = ""; public const string TrimAnalysis = "Trim analysis"; diff --git a/src/tools/illink/src/ILLink.Tasks/Utils.cs b/src/tools/illink/src/ILLink.Tasks/Utils.cs index 87c802b301b235..8b78758a4d695e 100644 --- a/src/tools/illink/src/ILLink.Tasks/Utils.cs +++ b/src/tools/illink/src/ILLink.Tasks/Utils.cs @@ -7,7 +7,7 @@ namespace ILLink.Tasks { - public static class Utils + internal static class Utils { public static bool IsManagedAssembly (string fileName) { diff --git a/src/tools/illink/src/linker/Linker.Steps/MarkExportedTypesTargetStep.cs b/src/tools/illink/src/linker/Linker.Steps/MarkExportedTypesTargetStep.cs index 6b10b0659f8381..99a38c2559dbaa 100644 --- a/src/tools/illink/src/linker/Linker.Steps/MarkExportedTypesTargetStep.cs +++ b/src/tools/illink/src/linker/Linker.Steps/MarkExportedTypesTargetStep.cs @@ -6,7 +6,7 @@ namespace Mono.Linker.Steps { - public static class MarkExportedTypesTarget + internal static class MarkExportedTypesTarget { public static void ProcessAssembly (AssemblyDefinition assembly, LinkContext context) { diff --git a/src/tools/illink/src/linker/Linker.Steps/RemoveSecurityStep.cs b/src/tools/illink/src/linker/Linker.Steps/RemoveSecurityStep.cs index 3512ad799a59e7..afd55c4a30f705 100644 --- a/src/tools/illink/src/linker/Linker.Steps/RemoveSecurityStep.cs +++ b/src/tools/illink/src/linker/Linker.Steps/RemoveSecurityStep.cs @@ -6,7 +6,7 @@ namespace Mono.Linker.Steps { - public static class RemoveSecurity + internal static class RemoveSecurity { public static void ProcessAssembly (AssemblyDefinition assembly, LinkContext context) { diff --git a/src/tools/illink/src/linker/Linker/BCL.cs b/src/tools/illink/src/linker/Linker/BCL.cs index 92dfd19a8b108e..0d457411e9cb66 100644 --- a/src/tools/illink/src/linker/Linker/BCL.cs +++ b/src/tools/illink/src/linker/Linker/BCL.cs @@ -8,7 +8,7 @@ namespace Mono.Linker { internal static class BCL { - public static class EventTracingForWindows + internal static class EventTracingForWindows { public static bool IsEventSourceImplementation (TypeDefinition type, LinkContext context) { diff --git a/src/tools/illink/src/linker/Linker/CustomAttributeArgumentExtensions.cs b/src/tools/illink/src/linker/Linker/CustomAttributeArgumentExtensions.cs index 5754d2cafa8211..387c24201f4060 100644 --- a/src/tools/illink/src/linker/Linker/CustomAttributeArgumentExtensions.cs +++ b/src/tools/illink/src/linker/Linker/CustomAttributeArgumentExtensions.cs @@ -5,7 +5,7 @@ namespace Mono.Linker { - public static class CustomAttributeArgumentExtensions + internal static class CustomAttributeArgumentExtensions { public static bool IsEqualTo (this CustomAttributeArgument A, CustomAttributeArgument B) { diff --git a/src/tools/illink/src/linker/Linker/DocumentationSignatureParser.cs b/src/tools/illink/src/linker/Linker/DocumentationSignatureParser.cs index 6b7d96ad5b09ab..eb2a3f4629e242 100644 --- a/src/tools/illink/src/linker/Linker/DocumentationSignatureParser.cs +++ b/src/tools/illink/src/linker/Linker/DocumentationSignatureParser.cs @@ -24,7 +24,7 @@ namespace Mono.Linker /// This API instead works with the Cecil OM. It can be used to refer to IL definitions /// where the signature of a member can contain references to instantiated generics. /// - public static class DocumentationSignatureParser + internal static class DocumentationSignatureParser { [Flags] public enum MemberType diff --git a/src/tools/illink/src/linker/Linker/FeatureSettings.cs b/src/tools/illink/src/linker/Linker/FeatureSettings.cs index 84bc8d2393ca7a..cc18b03fdfbbdc 100644 --- a/src/tools/illink/src/linker/Linker/FeatureSettings.cs +++ b/src/tools/illink/src/linker/Linker/FeatureSettings.cs @@ -7,7 +7,7 @@ namespace Mono.Linker { - public static class FeatureSettings + internal static class FeatureSettings { public static bool ShouldProcessElement (XPathNavigator nav, LinkContext context, string documentLocation) { diff --git a/src/tools/illink/src/linker/Linker/LinkContext.cs b/src/tools/illink/src/linker/Linker/LinkContext.cs index e6452dff4b8d24..560f42caa16e0a 100644 --- a/src/tools/illink/src/linker/Linker/LinkContext.cs +++ b/src/tools/illink/src/linker/Linker/LinkContext.cs @@ -55,7 +55,7 @@ internal class UnintializedContextFactory public virtual AssemblyResolver CreateResolver (LinkContext context) => new AssemblyResolver (context, new ReaderParameters ()); } - public static class TargetRuntimeVersion + internal static class TargetRuntimeVersion { public const int NET5 = 5; public const int NET6 = 6; diff --git a/src/tools/illink/src/linker/Linker/LinkerEventSource.cs b/src/tools/illink/src/linker/Linker/LinkerEventSource.cs index b939f9bfd3b5bf..d3fac0f2720b86 100644 --- a/src/tools/illink/src/linker/Linker/LinkerEventSource.cs +++ b/src/tools/illink/src/linker/Linker/LinkerEventSource.cs @@ -22,7 +22,7 @@ sealed class LinkerEventSource : EventSource [Event (4, Keywords = Keywords.Step)] public void LinkerStepStop (string stepName) => WriteEvent (4, stepName); - public static class Keywords + internal static class Keywords { public const EventKeywords Step = (EventKeywords) (1 << 1); } diff --git a/src/tools/illink/src/linker/Linker/MemberReferenceExtensions.cs b/src/tools/illink/src/linker/Linker/MemberReferenceExtensions.cs index c2ff6d453d6478..3596d1f593a993 100644 --- a/src/tools/illink/src/linker/Linker/MemberReferenceExtensions.cs +++ b/src/tools/illink/src/linker/Linker/MemberReferenceExtensions.cs @@ -7,7 +7,7 @@ namespace Mono.Linker { - public static class MemberReferenceExtensions + internal static class MemberReferenceExtensions { public static string GetDisplayName (this MemberReference member) { diff --git a/src/tools/illink/src/linker/Linker/MethodBodyScanner.cs b/src/tools/illink/src/linker/Linker/MethodBodyScanner.cs index b3a230f1947959..f6f50494625ac7 100644 --- a/src/tools/illink/src/linker/Linker/MethodBodyScanner.cs +++ b/src/tools/illink/src/linker/Linker/MethodBodyScanner.cs @@ -9,7 +9,7 @@ namespace Mono.Linker { - public static class MethodBodyScanner + internal static class MethodBodyScanner { public static bool IsWorthConvertingToThrow (MethodIL body) { diff --git a/src/tools/illink/src/linker/Linker/MethodDefinitionExtensions.cs b/src/tools/illink/src/linker/Linker/MethodDefinitionExtensions.cs index aa598577bc74b8..45a30895838b34 100644 --- a/src/tools/illink/src/linker/Linker/MethodDefinitionExtensions.cs +++ b/src/tools/illink/src/linker/Linker/MethodDefinitionExtensions.cs @@ -9,7 +9,7 @@ namespace Mono.Linker { [SuppressMessage ("ApiDesign", "RS0030:Do not used banned APIs", Justification = "This class provides wrapper methods around the banned Parameters property")] - public static class MethodDefinitionExtensions + internal static class MethodDefinitionExtensions { public static bool IsDefaultConstructor (this MethodDefinition method) { diff --git a/src/tools/illink/src/linker/Linker/MethodReferenceExtensions.cs b/src/tools/illink/src/linker/Linker/MethodReferenceExtensions.cs index 4240d3277a0028..aae0266c6ae8fc 100644 --- a/src/tools/illink/src/linker/Linker/MethodReferenceExtensions.cs +++ b/src/tools/illink/src/linker/Linker/MethodReferenceExtensions.cs @@ -8,7 +8,7 @@ namespace Mono.Linker { - public static class MethodReferenceExtensions + internal static class MethodReferenceExtensions { public static string GetDisplayName (this MethodReference method) { diff --git a/src/tools/illink/src/linker/Linker/ModuleDefinitionExtensions.cs b/src/tools/illink/src/linker/Linker/ModuleDefinitionExtensions.cs index 64ad1df836f6f0..7b68a5d3fafe2c 100644 --- a/src/tools/illink/src/linker/Linker/ModuleDefinitionExtensions.cs +++ b/src/tools/illink/src/linker/Linker/ModuleDefinitionExtensions.cs @@ -6,7 +6,7 @@ namespace Mono.Linker { - public static class ModuleDefinitionExtensions + internal static class ModuleDefinitionExtensions { public static bool IsCrossgened (this ModuleDefinition module) diff --git a/src/tools/illink/src/linker/Linker/ParameterHelpers.cs b/src/tools/illink/src/linker/Linker/ParameterHelpers.cs index ba4bec06e18b64..60b83f3aa1f277 100644 --- a/src/tools/illink/src/linker/Linker/ParameterHelpers.cs +++ b/src/tools/illink/src/linker/Linker/ParameterHelpers.cs @@ -8,7 +8,7 @@ namespace Mono.Linker { - public static class ParameterHelpers + internal static class ParameterHelpers { public static ParameterIndex GetParameterIndex (MethodDefinition thisMethod, Instruction operation) { diff --git a/src/tools/illink/src/linker/Linker/PlatformAssemblies.cs b/src/tools/illink/src/linker/Linker/PlatformAssemblies.cs index b93f120844e051..1a3e1506155943 100644 --- a/src/tools/illink/src/linker/Linker/PlatformAssemblies.cs +++ b/src/tools/illink/src/linker/Linker/PlatformAssemblies.cs @@ -3,7 +3,7 @@ namespace Mono.Linker { - public static class PlatformAssemblies + internal static class PlatformAssemblies { public const string CoreLib = "System.Private.CoreLib"; } diff --git a/src/tools/illink/src/linker/Linker/TypeDefinitionExtensions.cs b/src/tools/illink/src/linker/Linker/TypeDefinitionExtensions.cs index 939c8f52668541..0abeb46795d167 100644 --- a/src/tools/illink/src/linker/Linker/TypeDefinitionExtensions.cs +++ b/src/tools/illink/src/linker/Linker/TypeDefinitionExtensions.cs @@ -6,7 +6,7 @@ namespace Mono.Linker { - public static class TypeDefinitionExtensions + internal static class TypeDefinitionExtensions { public static TypeReference GetEnumUnderlyingType (this TypeDefinition enumType) { diff --git a/src/tools/illink/src/linker/Linker/TypeReferenceExtensions.cs b/src/tools/illink/src/linker/Linker/TypeReferenceExtensions.cs index 5092fe1158e34b..a5a3c7ebddc849 100644 --- a/src/tools/illink/src/linker/Linker/TypeReferenceExtensions.cs +++ b/src/tools/illink/src/linker/Linker/TypeReferenceExtensions.cs @@ -11,7 +11,7 @@ namespace Mono.Linker { - public static class TypeReferenceExtensions + internal static class TypeReferenceExtensions { public static string GetDisplayName (this TypeReference type) { From f4d29e3320af3368591c0df4f8037f2916edc60a Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Mon, 11 Mar 2024 22:19:35 +0000 Subject: [PATCH 06/15] Address more apicompat diffs --- .../DataFlow/ControlFlowGraphProxy.cs | 6 +- .../DiagnosticDescriptors.cs | 3 +- .../TrimAnalysis/SingleValueExtensions.cs | 2 +- .../DataFlow/ForwardDataFlowAnalysis.cs | 2 +- .../DataFlow/IControlFlowGraph.cs | 10 +- .../ILLink.Shared/DataFlow/IDataFlowState.cs | 4 +- .../ILLink.Shared/DataFlow/IDeepCopyValue.cs | 2 +- .../src/ILLink.Shared/DataFlow/ILattice.cs | 2 +- .../src/ILLink.Shared/DataFlow/ITransfer.cs | 4 +- .../src/ILLink.Shared/DataFlow/SingleValue.cs | 2 +- .../illink/src/ILLink.Shared/DiagnosticId.cs | 1 + .../src/ILLink.Shared/DiagnosticString.cs | 2 +- .../src/ILLink.Shared/ParameterIndex.cs | 2 +- .../TrimAnalysis/ReferenceKind.cs | 2 +- .../ValueWithDynamicallyAccessedMembers.cs | 2 +- .../TypeSystemProxy/WellKnownType.cs | 4 +- .../src/linker/CompatibilitySuppressions.xml | 155 +++++++++++++++++ .../Linker.Dataflow/FieldReferenceValue.cs | 2 +- .../linker/Linker.Dataflow/HoistedLocalKey.cs | 2 +- .../LocalVariableReferenceValue.cs | 2 +- .../linker/Linker.Dataflow/ReferenceValue.cs | 2 +- .../CheckSuppressionsDispatcher.cs | 2 +- .../Linker.Steps/ProcessLinkerXmlBase.cs | 4 +- .../linker/Linker.Steps/SubStepsDispatcher.cs | 4 +- .../illink/src/linker/Linker/Annotations.cs | 140 ++++++++-------- .../src/linker/Linker/DependencyInfo.cs | 4 +- ...mentationSignatureGenerator.PartVisitor.cs | 2 +- .../Linker/DocumentationSignatureGenerator.cs | 2 +- .../Linker/DocumentationSignatureParser.cs | 2 +- src/tools/illink/src/linker/Linker/Driver.cs | 2 +- .../src/linker/Linker/IDependencyRecorder.cs | 2 +- src/tools/illink/src/linker/Linker/ILogger.cs | 2 +- .../illink/src/linker/Linker/IXApiVisitor.cs | 2 +- .../illink/src/linker/Linker/LinkContext.cs | 158 +++++++++--------- .../src/linker/Linker/LinkerILProcessor.cs | 2 +- .../src/linker/Linker/MessageContainer.cs | 18 +- .../illink/src/linker/Linker/MessageOrigin.cs | 22 +-- .../src/linker/Linker/MetadataTrimming.cs | 2 +- .../illink/src/linker/Linker/MethodIL.cs | 2 +- .../src/linker/Linker/OverrideInformation.cs | 2 +- .../RemoveAttributeInstancesAttribute.cs | 2 +- .../src/linker/Linker/SerializationMarker.cs | 2 +- .../src/linker/Linker/TypeNameResolver.cs | 2 +- .../src/linker/Linker/TypePreserveMembers.cs | 2 +- .../linker/Linker/WarningSuppressionWriter.cs | 2 +- 45 files changed, 379 insertions(+), 218 deletions(-) create mode 100644 src/tools/illink/src/linker/CompatibilitySuppressions.xml diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/ControlFlowGraphProxy.cs b/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/ControlFlowGraphProxy.cs index 16cb190a08a596..a98c384cfc27c6 100644 --- a/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/ControlFlowGraphProxy.cs +++ b/src/tools/illink/src/ILLink.RoslynAnalyzer/DataFlow/ControlFlowGraphProxy.cs @@ -23,7 +23,7 @@ namespace ILLink.RoslynAnalyzer.DataFlow // any kind of value equality for different block instances. In practice // this should be fine as long as we consistently use block instances from // a single ControlFlowGraph. - public readonly record struct BlockProxy (BasicBlock Block) : IBlock + internal readonly record struct BlockProxy (BasicBlock Block) : IBlock { public override string ToString () { @@ -33,7 +33,7 @@ public override string ToString () public ConditionKind ConditionKind => (ConditionKind) Block.ConditionKind; } - public readonly record struct RegionProxy (ControlFlowRegion Region) : IRegion + internal readonly record struct RegionProxy (ControlFlowRegion Region) : IRegion { public RegionKind Kind => Region.Kind switch { ControlFlowRegionKind.Try => RegionKind.Try, @@ -44,7 +44,7 @@ public readonly record struct RegionProxy (ControlFlowRegion Region) : IRegion + internal readonly record struct ControlFlowGraphProxy (ControlFlowGraph ControlFlowGraph) : IControlFlowGraph { public IEnumerable Blocks { get { diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/DiagnosticDescriptors.cs b/src/tools/illink/src/ILLink.RoslynAnalyzer/DiagnosticDescriptors.cs index db6ef69c446e4c..ada3e8cdaf1472 100644 --- a/src/tools/illink/src/ILLink.RoslynAnalyzer/DiagnosticDescriptors.cs +++ b/src/tools/illink/src/ILLink.RoslynAnalyzer/DiagnosticDescriptors.cs @@ -6,6 +6,7 @@ namespace ILLink.RoslynAnalyzer { + // Used by codefix assembly public static class DiagnosticDescriptors { public static DiagnosticDescriptor GetDiagnosticDescriptor (DiagnosticId diagnosticId) @@ -20,7 +21,7 @@ public static DiagnosticDescriptor GetDiagnosticDescriptor (DiagnosticId diagnos diagnosticId.GetHelpUri()); } - public static DiagnosticDescriptor GetDiagnosticDescriptor (DiagnosticId diagnosticId, DiagnosticString diagnosticString) + internal static DiagnosticDescriptor GetDiagnosticDescriptor (DiagnosticId diagnosticId, DiagnosticString diagnosticString) => new DiagnosticDescriptor (diagnosticId.AsString (), diagnosticString.GetTitle (), diagnosticString.GetMessage (), diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/SingleValueExtensions.cs b/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/SingleValueExtensions.cs index 5362f267afa531..9b4a33c4050e23 100644 --- a/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/SingleValueExtensions.cs +++ b/src/tools/illink/src/ILLink.RoslynAnalyzer/TrimAnalysis/SingleValueExtensions.cs @@ -9,7 +9,7 @@ namespace ILLink.RoslynAnalyzer.TrimAnalysis { - public static class SingleValueExtensions + internal static class SingleValueExtensions { public static SingleValue? FromTypeSymbol (ITypeSymbol type) { diff --git a/src/tools/illink/src/ILLink.Shared/DataFlow/ForwardDataFlowAnalysis.cs b/src/tools/illink/src/ILLink.Shared/DataFlow/ForwardDataFlowAnalysis.cs index 807f0c46b9b5f4..e36f75255b25c3 100644 --- a/src/tools/illink/src/ILLink.Shared/DataFlow/ForwardDataFlowAnalysis.cs +++ b/src/tools/illink/src/ILLink.Shared/DataFlow/ForwardDataFlowAnalysis.cs @@ -13,7 +13,7 @@ namespace ILLink.Shared.DataFlow // A generic implementation of a forward dataflow analysis. Forward means that it flows facts // across code in the order of execution, starting from the beginning of a method, // and merging values from predecessors. - public abstract class ForwardDataFlowAnalysis + internal abstract class ForwardDataFlowAnalysis where TValue : struct, IEquatable where TState : class, IDataFlowState, new() where TLattice : ILattice diff --git a/src/tools/illink/src/ILLink.Shared/DataFlow/IControlFlowGraph.cs b/src/tools/illink/src/ILLink.Shared/DataFlow/IControlFlowGraph.cs index d7b6a45b9ae0c4..d785b45e8998bc 100644 --- a/src/tools/illink/src/ILLink.Shared/DataFlow/IControlFlowGraph.cs +++ b/src/tools/illink/src/ILLink.Shared/DataFlow/IControlFlowGraph.cs @@ -11,7 +11,7 @@ namespace ILLink.Shared.DataFlow { - public enum RegionKind + internal enum RegionKind { Try, Catch, @@ -19,24 +19,24 @@ public enum RegionKind Finally } - public enum ConditionKind + internal enum ConditionKind { None, WhenFalse, WhenTrue, } - public interface IRegion : IEquatable + internal interface IRegion : IEquatable { RegionKind Kind { get; } } - public interface IBlock : IEquatable + internal interface IBlock : IEquatable { ConditionKind ConditionKind { get; } } - public interface IControlFlowGraph + internal interface IControlFlowGraph where TBlock : struct, IBlock where TRegion : IRegion { diff --git a/src/tools/illink/src/ILLink.Shared/DataFlow/IDataFlowState.cs b/src/tools/illink/src/ILLink.Shared/DataFlow/IDataFlowState.cs index 26f056be835e03..9cc23230bde8ce 100644 --- a/src/tools/illink/src/ILLink.Shared/DataFlow/IDataFlowState.cs +++ b/src/tools/illink/src/ILLink.Shared/DataFlow/IDataFlowState.cs @@ -8,14 +8,14 @@ namespace ILLink.Shared.DataFlow { - public sealed class Box where T : struct + internal sealed class Box where T : struct { public Box (T value) => Value = value; public T Value { get; set; } } - public interface IDataFlowState + internal interface IDataFlowState where TValue : struct, IEquatable where TValueLattice : ILattice { diff --git a/src/tools/illink/src/ILLink.Shared/DataFlow/IDeepCopyValue.cs b/src/tools/illink/src/ILLink.Shared/DataFlow/IDeepCopyValue.cs index da127809495263..3b5dd2da89da00 100644 --- a/src/tools/illink/src/ILLink.Shared/DataFlow/IDeepCopyValue.cs +++ b/src/tools/illink/src/ILLink.Shared/DataFlow/IDeepCopyValue.cs @@ -7,7 +7,7 @@ namespace ILLink.Shared.DataFlow { // Adds ability to deep copy a value - public interface IDeepCopyValue + internal interface IDeepCopyValue { public TSingleValue DeepCopy (); } diff --git a/src/tools/illink/src/ILLink.Shared/DataFlow/ILattice.cs b/src/tools/illink/src/ILLink.Shared/DataFlow/ILattice.cs index 07f31c4e5ed356..7427e0970cd394 100644 --- a/src/tools/illink/src/ILLink.Shared/DataFlow/ILattice.cs +++ b/src/tools/illink/src/ILLink.Shared/DataFlow/ILattice.cs @@ -24,7 +24,7 @@ namespace ILLink.Shared.DataFlow // virtual interface method. This would avoid the need to pass around multiple generic arguments // (TValue and TLattice). However, we can't use static virtual interface methods in the analyzer // so the lattice instance provides the Top value. - public interface ILattice where TValue : IEquatable + internal interface ILattice where TValue : IEquatable { // We require that the lattice has a "Top" or maximum element. // Top is >= a for every element a of the lattice. diff --git a/src/tools/illink/src/ILLink.Shared/DataFlow/ITransfer.cs b/src/tools/illink/src/ILLink.Shared/DataFlow/ITransfer.cs index b7e12cd6928f6b..abfa880866c748 100644 --- a/src/tools/illink/src/ILLink.Shared/DataFlow/ITransfer.cs +++ b/src/tools/illink/src/ILLink.Shared/DataFlow/ITransfer.cs @@ -23,7 +23,7 @@ namespace ILLink.Shared.DataFlow // TLattice isn't typically used in the implementation except to provide the "Top" value. // This expresses the conceptual constraint that the transferred values are part of a lattice. - public interface ITransfer + internal interface ITransfer where TValue : struct, IEquatable where TState : class, IDataFlowState where TLattice : ILattice @@ -44,7 +44,7 @@ public interface ITransfer + internal interface INegate { TValue Negate (); } diff --git a/src/tools/illink/src/ILLink.Shared/DataFlow/SingleValue.cs b/src/tools/illink/src/ILLink.Shared/DataFlow/SingleValue.cs index 79963757b9346a..a8712ff9b9e5f6 100644 --- a/src/tools/illink/src/ILLink.Shared/DataFlow/SingleValue.cs +++ b/src/tools/illink/src/ILLink.Shared/DataFlow/SingleValue.cs @@ -12,7 +12,7 @@ namespace ILLink.Shared.DataFlow // - known strings // - known integers - public abstract record SingleValue : IDeepCopyValue + internal abstract record SingleValue : IDeepCopyValue { // All values must explicitely declare their ability to deep copy itself. // If the value is immutable, it can "return this" as an optimization. diff --git a/src/tools/illink/src/ILLink.Shared/DiagnosticId.cs b/src/tools/illink/src/ILLink.Shared/DiagnosticId.cs index 2eec703dc6bf53..649edee9d3ee46 100644 --- a/src/tools/illink/src/ILLink.Shared/DiagnosticId.cs +++ b/src/tools/illink/src/ILLink.Shared/DiagnosticId.cs @@ -8,6 +8,7 @@ namespace ILLink.Shared { + // Must be public, or visible to codefix assembly. public enum DiagnosticId { // Trimming error ids. diff --git a/src/tools/illink/src/ILLink.Shared/DiagnosticString.cs b/src/tools/illink/src/ILLink.Shared/DiagnosticString.cs index ce505e1c7727b1..81cd4952efe7c7 100644 --- a/src/tools/illink/src/ILLink.Shared/DiagnosticString.cs +++ b/src/tools/illink/src/ILLink.Shared/DiagnosticString.cs @@ -8,7 +8,7 @@ namespace ILLink.Shared { - public readonly struct DiagnosticString + internal readonly struct DiagnosticString { private readonly string _titleFormat; private readonly string _messageFormat; diff --git a/src/tools/illink/src/ILLink.Shared/ParameterIndex.cs b/src/tools/illink/src/ILLink.Shared/ParameterIndex.cs index 7a6ea68084143e..05dfcf9e5726d7 100644 --- a/src/tools/illink/src/ILLink.Shared/ParameterIndex.cs +++ b/src/tools/illink/src/ILLink.Shared/ParameterIndex.cs @@ -27,7 +27,7 @@ namespace ILLink.Shared.TypeSystemProxy /// 1 refers to b, /// 2 refers to c. /// - public readonly struct ParameterIndex : System.IEquatable + internal readonly struct ParameterIndex : System.IEquatable { public readonly int Index; diff --git a/src/tools/illink/src/ILLink.Shared/TrimAnalysis/ReferenceKind.cs b/src/tools/illink/src/ILLink.Shared/TrimAnalysis/ReferenceKind.cs index 7355ef8f4ec457..e25016000fbe9f 100644 --- a/src/tools/illink/src/ILLink.Shared/TrimAnalysis/ReferenceKind.cs +++ b/src/tools/illink/src/ILLink.Shared/TrimAnalysis/ReferenceKind.cs @@ -4,7 +4,7 @@ namespace ILLink.Shared.TypeSystemProxy { - public enum ReferenceKind + internal enum ReferenceKind { Ref, In, diff --git a/src/tools/illink/src/ILLink.Shared/TrimAnalysis/ValueWithDynamicallyAccessedMembers.cs b/src/tools/illink/src/ILLink.Shared/TrimAnalysis/ValueWithDynamicallyAccessedMembers.cs index c67d30040d2a73..4c38dda5a18000 100644 --- a/src/tools/illink/src/ILLink.Shared/TrimAnalysis/ValueWithDynamicallyAccessedMembers.cs +++ b/src/tools/illink/src/ILLink.Shared/TrimAnalysis/ValueWithDynamicallyAccessedMembers.cs @@ -10,7 +10,7 @@ namespace ILLink.Shared.TrimAnalysis { - public abstract record ValueWithDynamicallyAccessedMembers : SingleValue + internal abstract record ValueWithDynamicallyAccessedMembers : SingleValue { public abstract DynamicallyAccessedMemberTypes DynamicallyAccessedMemberTypes { get; } diff --git a/src/tools/illink/src/ILLink.Shared/TypeSystemProxy/WellKnownType.cs b/src/tools/illink/src/ILLink.Shared/TypeSystemProxy/WellKnownType.cs index d673f5c0b3e242..aa1680b7de4d81 100644 --- a/src/tools/illink/src/ILLink.Shared/TypeSystemProxy/WellKnownType.cs +++ b/src/tools/illink/src/ILLink.Shared/TypeSystemProxy/WellKnownType.cs @@ -9,7 +9,7 @@ namespace ILLink.Shared.TypeSystemProxy { [Closed] - public enum WellKnownType + internal enum WellKnownType { System_String, System_Nullable_T, @@ -23,7 +23,7 @@ public enum WellKnownType System_Void } - public static partial class WellKnownTypeExtensions + internal static partial class WellKnownTypeExtensions { public static (string Namespace, string Name) GetNamespaceAndName (this WellKnownType type) { diff --git a/src/tools/illink/src/linker/CompatibilitySuppressions.xml b/src/tools/illink/src/linker/CompatibilitySuppressions.xml new file mode 100644 index 00000000000000..c353e98e739f17 --- /dev/null +++ b/src/tools/illink/src/linker/CompatibilitySuppressions.xml @@ -0,0 +1,155 @@ + + + + + + CP0002 + F:Mono.Linker.AnnotationStore.assembly_actions + + + CP0002 + F:Mono.Linker.AnnotationStore.context + + + CP0002 + F:Mono.Linker.AnnotationStore.fieldType_init + + + CP0002 + F:Mono.Linker.AnnotationStore.indirectly_called + + + CP0002 + F:Mono.Linker.AnnotationStore.marked_attributes + + + CP0002 + F:Mono.Linker.AnnotationStore.marked_instantiated + + + CP0002 + F:Mono.Linker.AnnotationStore.marked_pending + + + CP0002 + F:Mono.Linker.AnnotationStore.pending_preserve + + + CP0002 + F:Mono.Linker.AnnotationStore.preserved_exportedtype_members + + + CP0002 + F:Mono.Linker.AnnotationStore.preserved_methods + + + CP0002 + F:Mono.Linker.AnnotationStore.preserved_type_members + + + CP0002 + F:Mono.Linker.AnnotationStore.preserved_types + + + CP0002 + F:Mono.Linker.AnnotationStore.processed + + + CP0002 + F:Mono.Linker.AnnotationStore.public_api + + + CP0002 + F:Mono.Linker.AnnotationStore.resources_to_remove + + + CP0002 + F:Mono.Linker.AnnotationStore.symbol_readers + + + CP0002 + F:Mono.Linker.AnnotationStore.types_relevant_to_variant_casting + + + CP0001 + T:Mono.Linker.LinkerILProcessor + ref/net8.0/illink.dll + lib/net8.0/illink.dll + + + + + CP0001 + T:System.Reflection.Runtime.TypeParsing.AssemblyQualifiedTypeName + + + CP0001 + T:System.Reflection.Runtime.TypeParsing.NonQualifiedTypeName + + + CP0001 + T:System.Reflection.Runtime.TypeParsing.TypeName + + + CP0001 + T:System.Reflection.Runtime.TypeParsing.TypeParser + + + CP0001 + T:System.Reflection.AssemblyNameHelpers + + + CP0001 + T:System.Reflection.RuntimeAssemblyName + + + + + CP0001 + T:ILLink.Shared.DiagnosticId + + + CP0001 + T:ILLink.Shared.DiagnosticIdExtensions + + + + CP0016 + M:Mono.Linker.AnnotationStore.Mark(Mono.Cecil.CustomAttribute):[T:System.ObsoleteAttribute] + + + CP0016 + M:Mono.Linker.AnnotationStore.Mark(Mono.Cecil.IMetadataTokenProvider):[T:System.ObsoleteAttribute] + + + + CP0008 + T:Mono.Linker.MessageContainer + + + CP0008 + T:Mono.Linker.MessageOrigin + + + + + CP0002 + M:Mono.Linker.MessageContainer.CompareTo(Mono.Linker.MessageContainer) + + + + + CP0002 + M:Mono.Linker.LinkContext.Dispose + + + + CP0016 + M:Mono.Linker.LinkContext.TryGetCustomData(System.String,System.String@)$1:[T:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute] + + + + CP0002 + F:Mono.Linker.MessageCategory.WarningAsError + + \ No newline at end of file diff --git a/src/tools/illink/src/linker/Linker.Dataflow/FieldReferenceValue.cs b/src/tools/illink/src/linker/Linker.Dataflow/FieldReferenceValue.cs index 37f7771c31478a..76130630128f22 100644 --- a/src/tools/illink/src/linker/Linker.Dataflow/FieldReferenceValue.cs +++ b/src/tools/illink/src/linker/Linker.Dataflow/FieldReferenceValue.cs @@ -5,7 +5,7 @@ namespace ILLink.Shared.TrimAnalysis { - public partial record FieldReferenceValue (FieldDefinition FieldDefinition) + internal sealed partial record FieldReferenceValue (FieldDefinition FieldDefinition) : ReferenceValue (FieldDefinition.FieldType) { public override SingleValue DeepCopy () => this; diff --git a/src/tools/illink/src/linker/Linker.Dataflow/HoistedLocalKey.cs b/src/tools/illink/src/linker/Linker.Dataflow/HoistedLocalKey.cs index 6e7173d0edf815..9d39fb4ddc39d0 100644 --- a/src/tools/illink/src/linker/Linker.Dataflow/HoistedLocalKey.cs +++ b/src/tools/illink/src/linker/Linker.Dataflow/HoistedLocalKey.cs @@ -11,7 +11,7 @@ namespace Mono.Linker.Dataflow // storage location for a hoisted local (a local variable which is lifted to a // field on a state machine type, or to a field on a closure accessed by lambdas // or local functions). - public readonly struct HoistedLocalKey : IEquatable + internal readonly struct HoistedLocalKey : IEquatable { readonly FieldDefinition Field; diff --git a/src/tools/illink/src/linker/Linker.Dataflow/LocalVariableReferenceValue.cs b/src/tools/illink/src/linker/Linker.Dataflow/LocalVariableReferenceValue.cs index 2c405beb138faf..118ee660dbcc7e 100644 --- a/src/tools/illink/src/linker/Linker.Dataflow/LocalVariableReferenceValue.cs +++ b/src/tools/illink/src/linker/Linker.Dataflow/LocalVariableReferenceValue.cs @@ -5,7 +5,7 @@ namespace ILLink.Shared.TrimAnalysis { - public partial record LocalVariableReferenceValue (VariableDefinition LocalDefinition) + internal sealed partial record LocalVariableReferenceValue (VariableDefinition LocalDefinition) : ReferenceValue (LocalDefinition.VariableType) { public override SingleValue DeepCopy () diff --git a/src/tools/illink/src/linker/Linker.Dataflow/ReferenceValue.cs b/src/tools/illink/src/linker/Linker.Dataflow/ReferenceValue.cs index 2ea8d379b1d869..be954d12e43c38 100644 --- a/src/tools/illink/src/linker/Linker.Dataflow/ReferenceValue.cs +++ b/src/tools/illink/src/linker/Linker.Dataflow/ReferenceValue.cs @@ -8,5 +8,5 @@ namespace ILLink.Shared.TrimAnalysis /// /// Acts as the base class for all values that represent a reference to another value. These should only be held in a ref type or on the stack as a result of a 'load address' instruction (e.g. ldloca). /// - public abstract record ReferenceValue (TypeReference ReferencedType) : SingleValue { } + internal abstract record ReferenceValue (TypeReference ReferencedType) : SingleValue { } } diff --git a/src/tools/illink/src/linker/Linker.Steps/CheckSuppressionsDispatcher.cs b/src/tools/illink/src/linker/Linker.Steps/CheckSuppressionsDispatcher.cs index 208e2c3d3afef1..c3bab0845c6cab 100644 --- a/src/tools/illink/src/linker/Linker.Steps/CheckSuppressionsDispatcher.cs +++ b/src/tools/illink/src/linker/Linker.Steps/CheckSuppressionsDispatcher.cs @@ -15,7 +15,7 @@ internal sealed class CheckSuppressionsDispatcher : SubStepsDispatcher } - public override void Process (LinkContext context) + internal override void Process (LinkContext context) { base.Process (context); var redundantSuppressions = context.Suppressions.GetUnusedSuppressions (); diff --git a/src/tools/illink/src/linker/Linker.Steps/ProcessLinkerXmlBase.cs b/src/tools/illink/src/linker/Linker.Steps/ProcessLinkerXmlBase.cs index e96ce5a22f5250..e45c43508e497b 100644 --- a/src/tools/illink/src/linker/Linker.Steps/ProcessLinkerXmlBase.cs +++ b/src/tools/illink/src/linker/Linker.Steps/ProcessLinkerXmlBase.cs @@ -17,14 +17,14 @@ namespace Mono.Linker.Steps { [Flags] - public enum AllowedAssemblies + internal enum AllowedAssemblies { ContainingAssembly = 0x1, AnyAssembly = 0x2 | ContainingAssembly, AllAssemblies = 0x4 | AnyAssembly } - public abstract class ProcessLinkerXmlBase + internal abstract class ProcessLinkerXmlBase { const string FullNameAttributeName = "fullname"; const string LinkerElementName = "linker"; diff --git a/src/tools/illink/src/linker/Linker.Steps/SubStepsDispatcher.cs b/src/tools/illink/src/linker/Linker.Steps/SubStepsDispatcher.cs index 31c704c4d26cb2..8f5d641137e182 100644 --- a/src/tools/illink/src/linker/Linker.Steps/SubStepsDispatcher.cs +++ b/src/tools/illink/src/linker/Linker.Steps/SubStepsDispatcher.cs @@ -51,7 +51,9 @@ public void Add (ISubStep substep) substeps.Add (substep); } - public virtual void Process (LinkContext context) + void IStep.Process (LinkContext context) => Process (context); + + internal virtual void Process (LinkContext context) { InitializeSubSteps (context); diff --git a/src/tools/illink/src/linker/Linker/Annotations.cs b/src/tools/illink/src/linker/Linker/Annotations.cs index 24f1c47be3a897..179ac5632939f6 100644 --- a/src/tools/illink/src/linker/Linker/Annotations.cs +++ b/src/tools/illink/src/linker/Linker/Annotations.cs @@ -44,35 +44,35 @@ namespace Mono.Linker public partial class AnnotationStore { - protected readonly LinkContext context; + private protected readonly LinkContext context; - protected readonly Dictionary assembly_actions = new Dictionary (); - protected readonly HashSet fieldType_init = new HashSet (); + private protected readonly Dictionary assembly_actions = new Dictionary (); + private protected readonly HashSet fieldType_init = new HashSet (); // Annotations.Mark will add unmarked items to marked_pending, to be fully marked later ("processed") by MarkStep. // Items go through state changes from "unmarked" -> "pending" -> "processed". "pending" items are only tracked // once, and once "processed", an item never becomes "pending" again. - protected readonly Dictionary marked_pending = new Dictionary (); - protected readonly HashSet processed = new HashSet (); - protected readonly Dictionary preserved_types = new Dictionary (); - protected readonly HashSet pending_preserve = new HashSet (); - protected readonly Dictionary preserved_type_members = new (); - protected readonly Dictionary preserved_exportedtype_members = new (); - protected readonly Dictionary> preserved_methods = new Dictionary> (); + private protected readonly Dictionary marked_pending = new Dictionary (); + private protected readonly HashSet processed = new HashSet (); + private protected readonly Dictionary preserved_types = new Dictionary (); + private protected readonly HashSet pending_preserve = new HashSet (); + private protected readonly Dictionary preserved_type_members = new (); + private protected readonly Dictionary preserved_exportedtype_members = new (); + private protected readonly Dictionary> preserved_methods = new Dictionary> (); readonly HashSet assemblies_with_root_all_members = new (); protected readonly HashSet public_api = new HashSet (); protected readonly Dictionary symbol_readers = new Dictionary (); readonly Dictionary linker_attributes = new Dictionary (); readonly Dictionary> custom_annotations = new Dictionary> (); - protected readonly Dictionary> resources_to_remove = new Dictionary> (); - protected readonly HashSet marked_attributes = new HashSet (); + private protected readonly Dictionary> resources_to_remove = new Dictionary> (); + private protected readonly HashSet marked_attributes = new HashSet (); readonly HashSet marked_types_with_cctor = new HashSet (); - protected readonly HashSet marked_instantiated = new HashSet (); - protected readonly HashSet indirectly_called = new HashSet (); - protected readonly HashSet types_relevant_to_variant_casting = new HashSet (); + private protected readonly HashSet marked_instantiated = new HashSet (); + private protected readonly HashSet indirectly_called = new HashSet (); + private protected readonly HashSet types_relevant_to_variant_casting = new HashSet (); readonly HashSet reflection_used = new (); - public AnnotationStore (LinkContext context) + internal AnnotationStore (LinkContext context) { this.context = context; FlowAnnotations = new FlowAnnotations (context); @@ -81,7 +81,7 @@ public AnnotationStore (LinkContext context) MemberActions = new MemberActionStore (context); } - public bool ProcessSatelliteAssemblies { get; set; } + internal bool ProcessSatelliteAssemblies { get; set; } internal Tracer Tracer { get { @@ -98,18 +98,18 @@ internal Tracer Tracer { internal MemberActionStore MemberActions { get; } [Obsolete ("Use Tracer in LinkContext directly")] - public void PrepareDependenciesDump () + internal void PrepareDependenciesDump () { Tracer.AddRecorder (new XmlDependencyRecorder (context)); } [Obsolete ("Use Tracer in LinkContext directly")] - public void PrepareDependenciesDump (string filename) + internal void PrepareDependenciesDump (string filename) { Tracer.AddRecorder (new XmlDependencyRecorder (context, filename)); } - public ICollection GetAssemblies () + internal ICollection GetAssemblies () { return assembly_actions.Keys; } @@ -122,7 +122,7 @@ public AssemblyAction GetAction (AssemblyDefinition assembly) throw new InvalidOperationException ($"No action for the assembly {assembly.Name} defined"); } - public MethodAction GetAction (MethodDefinition method) + internal MethodAction GetAction (MethodDefinition method) { return MemberActions.GetAction (method); } @@ -147,17 +147,17 @@ public void SetStubValue (MethodDefinition method, object value) MemberActions.PrimarySubstitutionInfo.SetMethodStubValue (method, value); } - public bool HasSubstitutedInit (FieldDefinition field) + internal bool HasSubstitutedInit (FieldDefinition field) { return MemberActions.HasSubstitutedInit (field); } - public void SetSubstitutedInit (TypeDefinition type) + internal void SetSubstitutedInit (TypeDefinition type) { fieldType_init.Add (type); } - public bool HasSubstitutedInit (TypeDefinition type) + internal bool HasSubstitutedInit (TypeDefinition type) { return fieldType_init.Contains (type); } @@ -170,7 +170,7 @@ public void Mark (IMetadataTokenProvider provider) marked_pending.TryAdd (provider, new MessageOrigin (provider as ICustomAttributeProvider)); } - public void Mark (IMetadataTokenProvider provider, in DependencyInfo reason, in MessageOrigin origin) + internal void Mark (IMetadataTokenProvider provider, in DependencyInfo reason, in MessageOrigin origin) { Debug.Assert (!(reason.Kind == DependencyKind.AlreadyMarked)); if (!processed.Contains (provider)) @@ -184,14 +184,14 @@ public void Mark (CustomAttribute attribute) marked_attributes.Add (attribute); } - public void Mark (CustomAttribute attribute, in DependencyInfo reason) + internal void Mark (CustomAttribute attribute, in DependencyInfo reason) { Debug.Assert (!(reason.Kind == DependencyKind.AlreadyMarked)); marked_attributes.Add (attribute); Tracer.AddDirectDependency (attribute, reason, marked: true); } - public KeyValuePair[] GetMarkedPending () + internal KeyValuePair[] GetMarkedPending () { return marked_pending.ToArray (); } @@ -206,7 +206,7 @@ public bool IsMarked (CustomAttribute attribute) return marked_attributes.Contains (attribute); } - public void MarkIndirectlyCalledMethod (MethodDefinition method) + internal void MarkIndirectlyCalledMethod (MethodDefinition method) { if (!context.AddReflectionAnnotations) return; @@ -214,48 +214,48 @@ public void MarkIndirectlyCalledMethod (MethodDefinition method) indirectly_called.Add (method); } - public bool HasMarkedAnyIndirectlyCalledMethods () + internal bool HasMarkedAnyIndirectlyCalledMethods () { return indirectly_called.Count != 0; } - public bool IsIndirectlyCalled (MethodDefinition method) + internal bool IsIndirectlyCalled (MethodDefinition method) { return indirectly_called.Contains (method); } - public void MarkReflectionUsed (IMemberDefinition member) + internal void MarkReflectionUsed (IMemberDefinition member) { reflection_used.Add (member); } - public bool IsReflectionUsed (IMemberDefinition method) + internal bool IsReflectionUsed (IMemberDefinition method) { return reflection_used.Contains (method); } - public void MarkInstantiated (TypeDefinition type) + internal void MarkInstantiated (TypeDefinition type) { marked_instantiated.Add (type); } - public bool IsInstantiated (TypeDefinition type) + internal bool IsInstantiated (TypeDefinition type) { return marked_instantiated.Contains (type); } - public void MarkRelevantToVariantCasting (TypeDefinition type) + internal void MarkRelevantToVariantCasting (TypeDefinition type) { if (type != null) types_relevant_to_variant_casting.Add (type); } - public bool IsRelevantToVariantCasting (TypeDefinition type) + internal bool IsRelevantToVariantCasting (TypeDefinition type) { return types_relevant_to_variant_casting.Contains (type); } - public bool SetProcessed (IMetadataTokenProvider provider) + internal bool SetProcessed (IMetadataTokenProvider provider) { if (processed.Add (provider)) { if (!marked_pending.Remove (provider)) @@ -266,12 +266,12 @@ public bool SetProcessed (IMetadataTokenProvider provider) return false; } - public bool IsProcessed (IMetadataTokenProvider provider) + internal bool IsProcessed (IMetadataTokenProvider provider) { return processed.Contains (provider); } - public bool MarkProcessed (IMetadataTokenProvider provider, in DependencyInfo reason) + internal bool MarkProcessed (IMetadataTokenProvider provider, in DependencyInfo reason) { Tracer.AddDirectDependency (provider, reason, marked: true); // The item may or may not be pending. @@ -279,12 +279,12 @@ public bool MarkProcessed (IMetadataTokenProvider provider, in DependencyInfo re return processed.Add (provider); } - public TypeDefinition[] GetPendingPreserve () + internal TypeDefinition[] GetPendingPreserve () { return pending_preserve.ToArray (); } - public bool SetAppliedPreserve (TypeDefinition type, TypePreserve preserve) + internal bool SetAppliedPreserve (TypeDefinition type, TypePreserve preserve) { if (!preserved_types.TryGetValue (type, out (TypePreserve preserve, bool applied) existing)) throw new InternalErrorException ($"Type {type} must have a TypePreserve before it can be applied."); @@ -302,7 +302,7 @@ public bool SetAppliedPreserve (TypeDefinition type, TypePreserve preserve) return true; } - public bool HasAppliedPreserve (TypeDefinition type, TypePreserve preserve) + internal bool HasAppliedPreserve (TypeDefinition type, TypePreserve preserve) { if (!preserved_types.TryGetValue (type, out (TypePreserve preserve, bool applied) existing)) throw new InternalErrorException ($"Type {type} must have a TypePreserve before it can be applied."); @@ -337,7 +337,7 @@ public void SetPreserve (TypeDefinition type, TypePreserve preserve) } } - public static TypePreserve ChoosePreserveActionWhichPreservesTheMost (TypePreserve leftPreserveAction, TypePreserve rightPreserveAction) + internal static TypePreserve ChoosePreserveActionWhichPreservesTheMost (TypePreserve leftPreserveAction, TypePreserve rightPreserveAction) { if (leftPreserveAction == rightPreserveAction) return leftPreserveAction; @@ -358,7 +358,7 @@ public static TypePreserve ChoosePreserveActionWhichPreservesTheMost (TypePreser return rightPreserveAction; } - public bool TryGetPreserve (TypeDefinition type, out TypePreserve preserve) + internal bool TryGetPreserve (TypeDefinition type, out TypePreserve preserve) { if (preserved_types.TryGetValue (type, out (TypePreserve preserve, bool _applied) existing)) { preserve = existing.preserve; @@ -369,7 +369,7 @@ public bool TryGetPreserve (TypeDefinition type, out TypePreserve preserve) return false; } - public void SetMembersPreserve (TypeDefinition type, TypePreserveMembers preserve) + internal void SetMembersPreserve (TypeDefinition type, TypePreserveMembers preserve) { if (preserved_type_members.TryGetValue (type, out TypePreserveMembers existing)) preserved_type_members[type] = CombineMembers (existing, preserve); @@ -382,7 +382,7 @@ static TypePreserveMembers CombineMembers (TypePreserveMembers left, TypePreserv return left | right; } - public void SetMembersPreserve (ExportedType type, TypePreserveMembers preserve) + internal void SetMembersPreserve (ExportedType type, TypePreserveMembers preserve) { if (preserved_exportedtype_members.TryGetValue (type, out TypePreserveMembers existing)) preserved_exportedtype_members[type] = CombineMembers (existing, preserve); @@ -390,37 +390,37 @@ public void SetMembersPreserve (ExportedType type, TypePreserveMembers preserve) preserved_exportedtype_members.Add (type, preserve); } - public bool TryGetPreservedMembers (TypeDefinition type, out TypePreserveMembers preserve) + internal bool TryGetPreservedMembers (TypeDefinition type, out TypePreserveMembers preserve) { return preserved_type_members.TryGetValue (type, out preserve); } - public bool TryGetPreservedMembers (ExportedType type, out TypePreserveMembers preserve) + internal bool TryGetPreservedMembers (ExportedType type, out TypePreserveMembers preserve) { return preserved_exportedtype_members.TryGetValue (type, out preserve); } - public void SetRootAssembly (AssemblyDefinition assembly) + internal void SetRootAssembly (AssemblyDefinition assembly) { assemblies_with_root_all_members.Add (assembly); } - public bool IsRootAssembly (AssemblyDefinition assembly) + internal bool IsRootAssembly (AssemblyDefinition assembly) { return assemblies_with_root_all_members.Contains (assembly); } - public bool TryGetMethodStubValue (MethodDefinition method, out object? value) + internal bool TryGetMethodStubValue (MethodDefinition method, out object? value) { return MemberActions.TryGetMethodStubValue (method, out value); } - public bool TryGetFieldUserValue (FieldDefinition field, out object? value) + internal bool TryGetFieldUserValue (FieldDefinition field, out object? value) { return MemberActions.TryGetFieldUserValue (field, out value); } - public HashSet? GetResourcesToRemove (AssemblyDefinition assembly) + internal HashSet? GetResourcesToRemove (AssemblyDefinition assembly) { if (resources_to_remove.TryGetValue (assembly, out HashSet? resources)) return resources; @@ -428,7 +428,7 @@ public bool TryGetFieldUserValue (FieldDefinition field, out object? value) return null; } - public void AddResourceToRemove (AssemblyDefinition assembly, EmbeddedResource resource) + internal void AddResourceToRemove (AssemblyDefinition assembly, EmbeddedResource resource) { if (!resources_to_remove.TryGetValue (assembly, out HashSet? resources)) resources = resources_to_remove[assembly] = new HashSet (); @@ -436,12 +436,12 @@ public void AddResourceToRemove (AssemblyDefinition assembly, EmbeddedResource r resources.Add (resource); } - public void SetPublic (IMetadataTokenProvider provider) + internal void SetPublic (IMetadataTokenProvider provider) { public_api.Add (provider); } - public bool IsPublic (IMetadataTokenProvider provider) + internal bool IsPublic (IMetadataTokenProvider provider) { return public_api.Contains (provider); } @@ -462,7 +462,7 @@ public bool IsPublic (IMetadataTokenProvider provider) /// DefaultInterfaceMethod is the method that implements . /// /// The interface method to find default implementations for - public IEnumerable? GetDefaultInterfaceImplementations (MethodDefinition method) + internal IEnumerable? GetDefaultInterfaceImplementations (MethodDefinition method) { return TypeMapInfo.GetDefaultInterfaceImplementations (method); } @@ -474,17 +474,17 @@ public bool IsPublic (IMetadataTokenProvider provider) /// and methods an interface implemented by a derived type of 's declaring type if the derived type uses as the implementing method. /// The list may be incomplete if there are derived types in assemblies that havent been processed yet that use to implement an interface. /// - public List? GetBaseMethods (MethodDefinition method) + internal List? GetBaseMethods (MethodDefinition method) { return TypeMapInfo.GetBaseMethods (method); } - public List? GetPreservedMethods (TypeDefinition type) + internal List? GetPreservedMethods (TypeDefinition type) { return GetPreservedMethods (type as IMemberDefinition); } - public bool ClearPreservedMethods (TypeDefinition type) + internal bool ClearPreservedMethods (TypeDefinition type) { return preserved_methods.Remove (type); } @@ -494,12 +494,12 @@ public void AddPreservedMethod (TypeDefinition type, MethodDefinition method) AddPreservedMethod (type as IMemberDefinition, method); } - public List? GetPreservedMethods (MethodDefinition method) + internal List? GetPreservedMethods (MethodDefinition method) { return GetPreservedMethods (method as IMemberDefinition); } - public bool ClearPreservedMethods (MethodDefinition key) + internal bool ClearPreservedMethods (MethodDefinition key) { return preserved_methods.Remove (key); } @@ -534,12 +534,12 @@ void AddPreservedMethod (IMemberDefinition definition, MethodDefinition method) methods.Add (method); } - public void AddSymbolReader (AssemblyDefinition assembly, ISymbolReader symbolReader) + internal void AddSymbolReader (AssemblyDefinition assembly, ISymbolReader symbolReader) { symbol_readers[assembly] = symbolReader; } - public void CloseSymbolReader (AssemblyDefinition assembly) + internal void CloseSymbolReader (AssemblyDefinition assembly) { if (!symbol_readers.TryGetValue (assembly, out ISymbolReader? symbolReader)) return; @@ -569,17 +569,17 @@ public void SetCustomAnnotation (object key, IMetadataTokenProvider item, object slots[item] = value; } - public bool HasPreservedStaticCtor (TypeDefinition type) + internal bool HasPreservedStaticCtor (TypeDefinition type) { return marked_types_with_cctor.Contains (type); } - public bool SetPreservedStaticCtor (TypeDefinition type) + internal bool SetPreservedStaticCtor (TypeDefinition type) { return marked_types_with_cctor.Add (type); } - public bool HasLinkerAttribute (IMemberDefinition member) where T : Attribute + internal bool HasLinkerAttribute (IMemberDefinition member) where T : Attribute { // Avoid setting up and inserting LinkerAttributesInformation for members without attributes. if (!context.CustomAttributes.HasAny (member)) @@ -593,7 +593,7 @@ public bool HasLinkerAttribute (IMemberDefinition member) where T : Attribute return linkerAttributeInformation.HasAttribute (); } - public IEnumerable GetLinkerAttributes (IMemberDefinition member) where T : Attribute + internal IEnumerable GetLinkerAttributes (IMemberDefinition member) where T : Attribute { // Avoid setting up and inserting LinkerAttributesInformation for members without attributes. if (!context.CustomAttributes.HasAny (member)) @@ -607,7 +607,7 @@ public IEnumerable GetLinkerAttributes (IMemberDefinition member) where T return linkerAttributeInformation.GetAttributes (); } - public bool TryGetLinkerAttribute (IMemberDefinition member, [NotNullWhen (returnValue: true)] out T? attribute) where T : Attribute + internal bool TryGetLinkerAttribute (IMemberDefinition member, [NotNullWhen (returnValue: true)] out T? attribute) where T : Attribute { var attributes = GetLinkerAttributes (member); // This should only be called for attribute types which don't allow multiple attributes. @@ -696,7 +696,7 @@ internal bool DoesFieldRequireUnreferencedCode (FieldDefinition field, [NotNullW /// /// Adds a virtual method to the queue if it is annotated and must have matching annotations on its bases and overrides. It does not check if the method is marked before producing a warning about mismatched annotations. /// - public void EnqueueVirtualMethod (MethodDefinition method) + internal void EnqueueVirtualMethod (MethodDefinition method) { if (!method.IsVirtual) return; diff --git a/src/tools/illink/src/linker/Linker/DependencyInfo.cs b/src/tools/illink/src/linker/Linker/DependencyInfo.cs index 7eb0681c5a9347..ca38bd9d5053d2 100644 --- a/src/tools/illink/src/linker/Linker/DependencyInfo.cs +++ b/src/tools/illink/src/linker/Linker/DependencyInfo.cs @@ -5,7 +5,7 @@ namespace Mono.Linker { - public enum DependencyKind + internal enum DependencyKind { // For tracking any other kinds of dependencies in extensions to the core logic Custom = -1, // the source is reserved to carry any dependency information tracked by the extender @@ -147,7 +147,7 @@ public enum DependencyKind UnsafeAccessorTarget = 89, // the member is referenced via UnsafeAccessor attribute } - public readonly struct DependencyInfo : IEquatable + internal readonly struct DependencyInfo : IEquatable { public DependencyKind Kind { get; } public object? Source { get; } diff --git a/src/tools/illink/src/linker/Linker/DocumentationSignatureGenerator.PartVisitor.cs b/src/tools/illink/src/linker/Linker/DocumentationSignatureGenerator.PartVisitor.cs index 60e87246c7d0d7..92c36a8a9fdd13 100644 --- a/src/tools/illink/src/linker/Linker/DocumentationSignatureGenerator.PartVisitor.cs +++ b/src/tools/illink/src/linker/Linker/DocumentationSignatureGenerator.PartVisitor.cs @@ -10,7 +10,7 @@ namespace Mono.Linker { - public sealed partial class DocumentationSignatureGenerator + internal sealed partial class DocumentationSignatureGenerator { /// /// A visitor that generates the part of the documentation comment after the initial type diff --git a/src/tools/illink/src/linker/Linker/DocumentationSignatureGenerator.cs b/src/tools/illink/src/linker/Linker/DocumentationSignatureGenerator.cs index b76f714d520c62..8a13a977cf5014 100644 --- a/src/tools/illink/src/linker/Linker/DocumentationSignatureGenerator.cs +++ b/src/tools/illink/src/linker/Linker/DocumentationSignatureGenerator.cs @@ -12,7 +12,7 @@ namespace Mono.Linker /// Adapted from Roslyn's DocumentationCommentIDVisitor: /// https://github.com/dotnet/roslyn/blob/master/src/Compilers/CSharp/Portable/DocumentationComments/DocumentationCommentIDVisitor.cs /// - public sealed partial class DocumentationSignatureGenerator + internal sealed partial class DocumentationSignatureGenerator { internal const string MethodPrefix = "M:"; internal const string FieldPrefix = "F:"; diff --git a/src/tools/illink/src/linker/Linker/DocumentationSignatureParser.cs b/src/tools/illink/src/linker/Linker/DocumentationSignatureParser.cs index eb2a3f4629e242..2f188dea880271 100644 --- a/src/tools/illink/src/linker/Linker/DocumentationSignatureParser.cs +++ b/src/tools/illink/src/linker/Linker/DocumentationSignatureParser.cs @@ -27,7 +27,7 @@ namespace Mono.Linker internal static class DocumentationSignatureParser { [Flags] - public enum MemberType + internal enum MemberType { Method = 0x0001, Field = 0x0002, diff --git a/src/tools/illink/src/linker/Linker/Driver.cs b/src/tools/illink/src/linker/Linker/Driver.cs index 0a5a655d56f777..f4c3bf3d893949 100644 --- a/src/tools/illink/src/linker/Linker/Driver.cs +++ b/src/tools/illink/src/linker/Linker/Driver.cs @@ -176,7 +176,7 @@ void ErrorMissingArgument (string optionName) Context.LogError (null, DiagnosticId.MissingArgumentForCommanLineOptionName, optionName); } - public enum DependenciesFileFormat + internal enum DependenciesFileFormat { Xml, Dgml diff --git a/src/tools/illink/src/linker/Linker/IDependencyRecorder.cs b/src/tools/illink/src/linker/Linker/IDependencyRecorder.cs index 021dca837b5ddf..f1c2f8db2b655d 100644 --- a/src/tools/illink/src/linker/Linker/IDependencyRecorder.cs +++ b/src/tools/illink/src/linker/Linker/IDependencyRecorder.cs @@ -32,7 +32,7 @@ namespace Mono.Linker /// Abstraction exposed by ILLink(mostly MarkStep, but not only) - it will call this interface /// every time it finds a dependency between two parts of the dependency graph. /// - public interface IDependencyRecorder + internal interface IDependencyRecorder { /// /// Reports a dependency detected by ILLink. diff --git a/src/tools/illink/src/linker/Linker/ILogger.cs b/src/tools/illink/src/linker/Linker/ILogger.cs index 2c1736843d734f..15345045306e21 100644 --- a/src/tools/illink/src/linker/Linker/ILogger.cs +++ b/src/tools/illink/src/linker/Linker/ILogger.cs @@ -3,7 +3,7 @@ namespace Mono.Linker { - public interface ILogger + internal interface ILogger { void LogMessage (MessageContainer message); } diff --git a/src/tools/illink/src/linker/Linker/IXApiVisitor.cs b/src/tools/illink/src/linker/Linker/IXApiVisitor.cs index bf0c6a5c72a592..8a68ee7fb3e7bf 100644 --- a/src/tools/illink/src/linker/Linker/IXApiVisitor.cs +++ b/src/tools/illink/src/linker/Linker/IXApiVisitor.cs @@ -36,7 +36,7 @@ namespace Mono.Linker { - public interface IXApiVisitor + internal interface IXApiVisitor { void OnAssembly (XPathNavigator nav, AssemblyDefinition assembly); diff --git a/src/tools/illink/src/linker/Linker/LinkContext.cs b/src/tools/illink/src/linker/Linker/LinkContext.cs index 560f42caa16e0a..6732be2371177e 100644 --- a/src/tools/illink/src/linker/Linker/LinkContext.cs +++ b/src/tools/illink/src/linker/Linker/LinkContext.cs @@ -61,7 +61,7 @@ internal static class TargetRuntimeVersion public const int NET6 = 6; } - public interface ITryResolveMetadata + internal interface ITryResolveMetadata { MethodDefinition? TryResolve (MethodReference methodReference); TypeDefinition? TryResolve (TypeReference typeReference); @@ -96,53 +96,53 @@ internal Pipeline Pipeline { public AnnotationStore Annotations => _annotations; - public bool DeterministicOutput { get; set; } + internal bool DeterministicOutput { get; set; } - public int ErrorsCount { get; private set; } + internal int ErrorsCount { get; private set; } - public string OutputDirectory { get; set; } + internal string OutputDirectory { get; set; } - public MetadataTrimming MetadataTrimming { get; set; } + internal MetadataTrimming MetadataTrimming { get; set; } - public AssemblyAction TrimAction { get; set; } + internal AssemblyAction TrimAction { get; set; } - public AssemblyAction DefaultAction { get; set; } + internal AssemblyAction DefaultAction { get; set; } - public bool LinkSymbols { get; set; } + internal bool LinkSymbols { get; set; } - public bool KeepMembersForDebugger { get; set; } = true; + internal bool KeepMembersForDebugger { get; set; } = true; - public bool IgnoreUnresolved { get; set; } = true; + internal bool IgnoreUnresolved { get; set; } = true; - public bool EnableReducedTracing { get; set; } + internal bool EnableReducedTracing { get; set; } - public bool KeepUsedAttributeTypesOnly { get; set; } + internal bool KeepUsedAttributeTypesOnly { get; set; } - public bool EnableSerializationDiscovery { get; set; } + internal bool EnableSerializationDiscovery { get; set; } - public bool DisableOperatorDiscovery { get; set; } + internal bool DisableOperatorDiscovery { get; set; } /// /// Option to not special case EventSource. /// Currently, values are hard-coded and does not have a command line option to control /// - public bool DisableEventSourceSpecialHandling { get; set; } + internal bool DisableEventSourceSpecialHandling { get; set; } - public bool IgnoreDescriptors { get; set; } + internal bool IgnoreDescriptors { get; set; } - public bool IgnoreSubstitutions { get; set; } + internal bool IgnoreSubstitutions { get; set; } - public bool IgnoreLinkAttributes { get; set; } + internal bool IgnoreLinkAttributes { get; set; } - public Dictionary FeatureSettings { get; init; } + internal Dictionary FeatureSettings { get; init; } internal List PInvokes { get; private set; } - public string? PInvokesListFile; + internal string? PInvokesListFile; - public bool StripSecurity { get; set; } + internal bool StripSecurity { get; set; } - public Dictionary Actions { + internal Dictionary Actions { get { return _actions; } } @@ -154,9 +154,9 @@ internal TypeNameResolver TypeNameResolver { get { return _typeNameResolver; } } - public ISymbolReaderProvider SymbolReaderProvider { get; set; } + internal ISymbolReaderProvider SymbolReaderProvider { get; set; } - public bool LogMessages { get; set; } + internal bool LogMessages { get; set; } internal MarkingHelpers MarkingHelpers { get; private set; } @@ -164,15 +164,15 @@ internal TypeNameResolver TypeNameResolver { internal WarningSuppressionWriter? WarningSuppressionWriter { get; set; } - public HashSet NoWarn { get; set; } + internal HashSet NoWarn { get; set; } - public bool NoTrimWarn { get; set; } + internal bool NoTrimWarn { get; set; } - public Dictionary WarnAsError { get; set; } + internal Dictionary WarnAsError { get; set; } - public bool GeneralWarnAsError { get; set; } + internal bool GeneralWarnAsError { get; set; } - public WarnVersion WarnVersion { get; set; } + internal WarnVersion WarnVersion { get; set; } internal UnconditionalSuppressMessageAttributeState Suppressions { get; set; } @@ -182,17 +182,17 @@ internal TypeNameResolver TypeNameResolver { internal CodeOptimizationsSettings Optimizations { get; set; } - public bool AddReflectionAnnotations { get; set; } + internal bool AddReflectionAnnotations { get; set; } - public string? AssemblyListFile { get; set; } + internal string? AssemblyListFile { get; set; } - public List MarkHandlers { get; } + internal List MarkHandlers { get; } - public Dictionary SingleWarn { get; set; } + internal Dictionary SingleWarn { get; set; } - public bool GeneralSingleWarn { get; set; } + internal bool GeneralSingleWarn { get; set; } - public HashSet AssembliesWithGeneratedSingleWarning { get; set; } + internal HashSet AssembliesWithGeneratedSingleWarning { get; set; } internal SerializationMarker SerializationMarker { get; } @@ -255,13 +255,13 @@ private LinkContext (Pipeline pipeline, ILogger logger, string outputDirectory, Optimizations = new CodeOptimizationsSettings (defaultOptimizations); } - public void SetFeatureValue (string feature, bool value) + internal void SetFeatureValue (string feature, bool value) { Debug.Assert (!string.IsNullOrEmpty (feature)); FeatureSettings[feature] = value; } - public bool HasFeatureValue (string feature, bool value) + internal bool HasFeatureValue (string feature, bool value) { return FeatureSettings.TryGetValue (feature, out bool fvalue) && value == fvalue; } @@ -286,28 +286,28 @@ public bool HasFeatureValue (string feature, bool value) return assembly?.MainModule.GetType (fullName); } - public AssemblyDefinition? TryResolve (string name) + internal AssemblyDefinition? TryResolve (string name) { return TryResolve (new AssemblyNameReference (name, new Version ())); } - public AssemblyDefinition? TryResolve (AssemblyNameReference name) + internal AssemblyDefinition? TryResolve (AssemblyNameReference name) { return _resolver.Resolve (name, probing: true); } - public AssemblyDefinition? Resolve (IMetadataScope scope) + internal AssemblyDefinition? Resolve (IMetadataScope scope) { AssemblyNameReference reference = GetReference (scope); return _resolver.Resolve (reference); } - public AssemblyDefinition? Resolve (AssemblyNameReference name) + public AssemblyDefinition? Resolve (AssemblyNameReference nameReference) { - return _resolver.Resolve (name); + return _resolver.Resolve (nameReference); } - public void RegisterAssembly (AssemblyDefinition assembly) + internal void RegisterAssembly (AssemblyDefinition assembly) { if (SeenFirstTime (assembly)) { SafeReadSymbols (assembly); @@ -320,7 +320,7 @@ protected bool SeenFirstTime (AssemblyDefinition assembly) return !_annotations.HasAction (assembly); } - public virtual void SafeReadSymbols (AssemblyDefinition assembly) + internal virtual void SafeReadSymbols (AssemblyDefinition assembly) { if (assembly.MainModule.HasSymbols) return; @@ -348,7 +348,7 @@ public virtual void SafeReadSymbols (AssemblyDefinition assembly) } catch { } } - public virtual ICollection ResolveReferences (AssemblyDefinition assembly) + internal virtual ICollection ResolveReferences (AssemblyDefinition assembly) { List references = new List (); if (assembly == null) @@ -375,13 +375,13 @@ static AssemblyNameReference GetReference (IMetadataScope scope) return reference; } - public void RegisterAssemblyAction (string assemblyName, AssemblyAction action) + internal void RegisterAssemblyAction (string assemblyName, AssemblyAction action) { _actions[assemblyName] = action; } #if !FEATURE_ILLINK - public void SetAction (AssemblyDefinition assembly, AssemblyAction defaultAction) + internal void SetAction (AssemblyDefinition assembly, AssemblyAction defaultAction) { if (!_actions.TryGetValue (assembly.Name.Name, out AssemblyAction action)) action = defaultAction; @@ -389,7 +389,7 @@ public void SetAction (AssemblyDefinition assembly, AssemblyAction defaultAction Annotations.SetAction (assembly, action); } #endif - public AssemblyAction CalculateAssemblyAction (AssemblyDefinition assembly) + internal AssemblyAction CalculateAssemblyAction (AssemblyDefinition assembly) { if (_actions.TryGetValue (assembly.Name.Name, out AssemblyAction action)) { if (IsCPPCLIAssembly (assembly.MainModule) && action != AssemblyAction.Copy && action != AssemblyAction.Skip) { @@ -419,7 +419,7 @@ static bool IsCPPCLIAssembly (ModuleDefinition module) } } - public bool IsTrimmable (AssemblyDefinition assembly) + internal bool IsTrimmable (AssemblyDefinition assembly) { if (_isTrimmable.TryGetValue (assembly, out bool isTrimmable)) return isTrimmable; @@ -452,7 +452,7 @@ public bool IsTrimmable (AssemblyDefinition assembly) return isTrimmable; } - public virtual AssemblyDefinition[] GetAssemblies () + internal virtual AssemblyDefinition[] GetAssemblies () { var cache = _resolver.AssemblyCache; AssemblyDefinition[] asms = new AssemblyDefinition[cache.Count]; @@ -473,7 +473,7 @@ public string GetAssemblyLocation (AssemblyDefinition assembly) return Resolver.GetAssemblyLocation (assembly); } - public IEnumerable GetReferencedAssemblies () + internal IEnumerable GetReferencedAssemblies () { var assemblies = GetAssemblies (); @@ -494,7 +494,7 @@ public IEnumerable GetReferencedAssemblies () } } - public void SetCustomData (string key, string value) + internal void SetCustomData (string key, string value) { _parameters[key] = value; } @@ -514,17 +514,17 @@ public void Dispose () _resolver.Dispose (); } - public bool IsOptimizationEnabled (CodeOptimizations optimization, MemberReference context) + internal bool IsOptimizationEnabled (CodeOptimizations optimization, MemberReference context) { return Optimizations.IsEnabled (optimization, context?.Module.Assembly); } - public bool IsOptimizationEnabled (CodeOptimizations optimization, AssemblyDefinition? context) + internal bool IsOptimizationEnabled (CodeOptimizations optimization, AssemblyDefinition? context) { return Optimizations.IsEnabled (optimization, context); } - public bool CanApplyOptimization (CodeOptimizations optimization, AssemblyDefinition context) + internal bool CanApplyOptimization (CodeOptimizations optimization, AssemblyDefinition context) { return Annotations.GetAction (context) == AssemblyAction.Link && IsOptimizationEnabled (optimization, context); @@ -550,7 +550,7 @@ public void LogMessage (MessageContainer message) _logger.LogMessage (message); } - public void LogMessage (string message) + internal void LogMessage (string message) { if (!LogMessages) return; @@ -558,7 +558,7 @@ public void LogMessage (string message) LogMessage (MessageContainer.CreateInfoMessage (message)); } - public void LogDiagnostic (string message) + internal void LogDiagnostic (string message) { if (!LogMessages) return; @@ -576,7 +576,7 @@ public void LogDiagnostic (string message) /// Unique warning ID. Please see https://github.com/dotnet/runtime/blob/main/docs/tools/illink/error-codes.md for the list of warnings and possibly add a new one /// Filename or member where the warning is coming from /// Optionally, further categorize this warning - public void LogWarning (string text, int code, MessageOrigin origin, string subcategory = MessageSubCategory.None) + internal void LogWarning (string text, int code, MessageOrigin origin, string subcategory = MessageSubCategory.None) { WarnVersion version = GetWarningVersion (); MessageContainer warning = MessageContainer.CreateWarningMessage (this, text, code, origin, version, subcategory); @@ -591,7 +591,7 @@ public void LogWarning (string text, int code, MessageOrigin origin, string subc /// Filename or member where the warning is coming from /// Unique warning ID. Please see https://github.com/dotnet/runtime/blob/main/docs/tools/illink/error-codes.md for the list of warnings and possibly add a new one /// Additional arguments to form a humanly readable message describing the warning - public void LogWarning (MessageOrigin origin, DiagnosticId id, params string[] args) + internal void LogWarning (MessageOrigin origin, DiagnosticId id, params string[] args) { WarnVersion version = GetWarningVersion (); MessageContainer warning = MessageContainer.CreateWarningMessage (this, origin, id, version, args); @@ -607,7 +607,7 @@ public void LogWarning (MessageOrigin origin, DiagnosticId id, params string[] a /// Unique warning ID. Please see https://github.com/dotnet/runtime/blob/main/docs/tools/illink/error-codes.md for the list of warnings and possibly add a new one /// Type or member where the warning is coming from /// Optionally, further categorize this warning - public void LogWarning (string text, int code, IMemberDefinition origin, int? ilOffset = null, string subcategory = MessageSubCategory.None) + internal void LogWarning (string text, int code, IMemberDefinition origin, int? ilOffset = null, string subcategory = MessageSubCategory.None) { MessageOrigin _origin = new MessageOrigin (origin, ilOffset); LogWarning (text, code, _origin, subcategory); @@ -621,7 +621,7 @@ public void LogWarning (string text, int code, IMemberDefinition origin, int? il /// Type or member where the warning is coming from /// Unique warning ID. Please see https://github.com/dotnet/runtime/blob/main/docs/tools/illink/error-codes.md for the list of warnings and possibly add a new one /// Additional arguments to form a humanly readable message describing the warning - public void LogWarning (IMemberDefinition origin, DiagnosticId id, int? ilOffset = null, params string[] args) + internal void LogWarning (IMemberDefinition origin, DiagnosticId id, int? ilOffset = null, params string[] args) { MessageOrigin _origin = new MessageOrigin (origin, ilOffset); LogWarning (_origin, id, args); @@ -635,7 +635,7 @@ public void LogWarning (IMemberDefinition origin, DiagnosticId id, int? ilOffset /// Type or member where the warning is coming from /// Unique warning ID. Please see https://github.com/dotnet/runtime/blob/main/docs/tools/illink/error-codes.md for the list of warnings and possibly add a new one /// Additional arguments to form a humanly readable message describing the warning - public void LogWarning (IMemberDefinition origin, DiagnosticId id, params string[] args) + internal void LogWarning (IMemberDefinition origin, DiagnosticId id, params string[] args) { MessageOrigin _origin = new MessageOrigin (origin); LogWarning (_origin, id, args); @@ -650,7 +650,7 @@ public void LogWarning (IMemberDefinition origin, DiagnosticId id, params string /// Unique warning ID. Please see https://github.com/dotnet/runtime/blob/main/docs/tools/illink/error-codes.md for the list of warnings and possibly add a new one /// Filename where the warning is coming from /// Optionally, further categorize this warning - public void LogWarning (string text, int code, string origin, string subcategory = MessageSubCategory.None) + internal void LogWarning (string text, int code, string origin, string subcategory = MessageSubCategory.None) { MessageOrigin _origin = new MessageOrigin (origin); LogWarning (text, code, _origin, subcategory); @@ -664,7 +664,7 @@ public void LogWarning (string text, int code, string origin, string subcategory /// Filename where the warning is coming from /// Unique warning ID. Please see https://github.com/dotnet/runtime/blob/main/docs/tools/illink/error-codes.md for the list of warnings and possibly add a new one /// Additional arguments to form a humanly readable message describing the warning - public void LogWarning (string origin, DiagnosticId id, params string[] args) + internal void LogWarning (string origin, DiagnosticId id, params string[] args) { MessageOrigin _origin = new MessageOrigin (origin); LogWarning (_origin, id, args); @@ -677,7 +677,7 @@ public void LogWarning (string origin, DiagnosticId id, params string[] args) /// Unique error ID. Please see https://github.com/dotnet/runtime/blob/main/docs/tools/illink/error-codes.md for the list of errors and possibly add a new one /// Optionally, further categorize this error /// Filename, line, and column where the error was found - public void LogError (string text, int code, string subcategory = MessageSubCategory.None, MessageOrigin? origin = null) + internal void LogError (string text, int code, string subcategory = MessageSubCategory.None, MessageOrigin? origin = null) { var error = MessageContainer.CreateErrorMessage (text, code, subcategory, origin); LogMessage (error); @@ -689,7 +689,7 @@ public void LogError (string text, int code, string subcategory = MessageSubCate /// Filename, line, and column where the error was found /// Unique error ID. Please see https://github.com/dotnet/runtime/blob/main/docs/tools/illink/error-codes.md and https://github.com/dotnet/runtime/blob/main/src/tools/illink/src/ILLink.Shared/DiagnosticId.cs for the list of errors and possibly add a new one /// Additional arguments to form a humanly readable message describing the warning - public void LogError (MessageOrigin? origin, DiagnosticId id, params string[] args) + internal void LogError (MessageOrigin? origin, DiagnosticId id, params string[] args) { var error = MessageContainer.CreateErrorMessage (origin, id, args); LogMessage (error); @@ -703,7 +703,7 @@ public void LogError (MessageOrigin? origin, DiagnosticId id, params string[] ar /// for the list of errors and possibly add a new one /// Optionally, further categorize this error /// Filename, line, and column where the error was found - public static void FatalError (string text, int code, string subcategory = MessageSubCategory.None, MessageOrigin? origin = null) + internal static void FatalError (string text, int code, string subcategory = MessageSubCategory.None, MessageOrigin? origin = null) { throw new LinkerFatalErrorException (MessageContainer.CreateErrorMessage (text, code, subcategory, origin)); } @@ -717,12 +717,12 @@ public static void FatalError (string text, int code, string subcategory = Messa /// Optionally, further categorize this error /// Filename, line, and column where the error was found /// Optional, an inner exception - public static void FatalError (string text, int code, Exception innerException, string subcategory = MessageSubCategory.None, MessageOrigin? origin = null) + internal static void FatalError (string text, int code, Exception innerException, string subcategory = MessageSubCategory.None, MessageOrigin? origin = null) { throw new LinkerFatalErrorException (MessageContainer.CreateErrorMessage (text, code, subcategory, origin), innerException); } - public void FlushCachedWarnings () + internal void FlushCachedWarnings () { _cachedWarningMessageContainers.Sort (); foreach (var warning in _cachedWarningMessageContainers) @@ -731,7 +731,7 @@ public void FlushCachedWarnings () _cachedWarningMessageContainers.Clear (); } - public bool IsWarningSuppressed (int warningCode, string subcategory, MessageOrigin origin) + internal bool IsWarningSuppressed (int warningCode, string subcategory, MessageOrigin origin) { if (subcategory == MessageSubCategory.TrimAnalysis && NoTrimWarn) return true; @@ -746,7 +746,7 @@ public bool IsWarningSuppressed (int warningCode, string subcategory, MessageOri return Suppressions.IsSuppressed (warningCode, origin, out _); } - public bool IsWarningAsError (int warningCode) + internal bool IsWarningAsError (int warningCode) { bool value; if (GeneralWarnAsError) @@ -755,7 +755,7 @@ public bool IsWarningAsError (int warningCode) return WarnAsError.TryGetValue (warningCode, out value) && value; } - public bool IsSingleWarn (string assemblyName) + internal bool IsSingleWarn (string assemblyName) { bool value; if (GeneralSingleWarn) @@ -770,7 +770,7 @@ static WarnVersion GetWarningVersion () return WarnVersion.ILLink5; } - public int GetTargetRuntimeVersion () + internal int GetTargetRuntimeVersion () { if (_targetRuntime != null) return _targetRuntime.Value; @@ -938,7 +938,7 @@ public int GetTargetRuntimeVersion () /// /// Tries to resolve the ExportedType to a TypeDefinition and logs a warning if it can't /// - public TypeDefinition? Resolve (ExportedType et) + internal TypeDefinition? Resolve (ExportedType et) { if (TryResolve (et) is not TypeDefinition td) { ReportUnresolved (et); @@ -950,7 +950,7 @@ public int GetTargetRuntimeVersion () /// /// Tries to resolve the ExportedType to a TypeDefinition and returns null if it can't /// - public TypeDefinition? TryResolve (ExportedType et) + internal TypeDefinition? TryResolve (ExportedType et) { if (exportedTypeResolveCache.TryGetValue (et, out var td)) { return td; @@ -962,7 +962,7 @@ public int GetTargetRuntimeVersion () return td; } - public TypeDefinition? TryResolve (AssemblyDefinition assembly, string typeNameString) + internal TypeDefinition? TryResolve (AssemblyDefinition assembly, string typeNameString) { // It could be cached if it shows up on fast path return _typeNameResolver.TryResolveTypeName (assembly, typeNameString, out TypeReference? typeReference, out _) @@ -980,10 +980,10 @@ public int GetTargetRuntimeVersion () /// instead all accesses to method body should go through the ILProvider here /// which will make sure the IL of the method is fully optimized before it's handed out. /// - public MethodIL GetMethodIL (Cecil.Cil.MethodBody methodBody) + internal MethodIL GetMethodIL (Cecil.Cil.MethodBody methodBody) => GetMethodIL (methodBody.Method); - public MethodIL GetMethodIL (MethodDefinition method) + internal MethodIL GetMethodIL (MethodDefinition method) { if (_processed_bodies_for_method.Add (method)) { _unreachableBlocksOptimizer.ProcessMethod (method); @@ -1097,7 +1097,7 @@ public void Disable (CodeOptimizations optimizations, string? assemblyContext = } [Flags] - public enum CodeOptimizations + internal enum CodeOptimizations { BeforeFieldInit = 1 << 0, diff --git a/src/tools/illink/src/linker/Linker/LinkerILProcessor.cs b/src/tools/illink/src/linker/Linker/LinkerILProcessor.cs index bfe280325454c0..cffd4664c1d02a 100644 --- a/src/tools/illink/src/linker/Linker/LinkerILProcessor.cs +++ b/src/tools/illink/src/linker/Linker/LinkerILProcessor.cs @@ -8,7 +8,7 @@ namespace Mono.Linker { #pragma warning disable RS0030 - public sealed class LinkerILProcessor + internal sealed class LinkerILProcessor { readonly ILProcessor _ilProcessor; diff --git a/src/tools/illink/src/linker/Linker/MessageContainer.cs b/src/tools/illink/src/linker/Linker/MessageContainer.cs index eb1fe94a53cfdf..792a0dc8f33e45 100644 --- a/src/tools/illink/src/linker/Linker/MessageContainer.cs +++ b/src/tools/illink/src/linker/Linker/MessageContainer.cs @@ -13,30 +13,32 @@ namespace Mono.Linker { public readonly struct MessageContainer : IComparable, IEquatable { - public static readonly MessageContainer Empty; +#pragma warning disable CS0649 // Field is never assigned to, and will always have its default value + internal static readonly MessageContainer Empty; +#pragma warning restore CS0649 /// /// Optional data with a filename, line and column that triggered /// to output an error (or warning) message. /// - public MessageOrigin? Origin { get; } + internal MessageOrigin? Origin { get; } - public MessageCategory Category { get; } + internal MessageCategory Category { get; } /// /// Further categorize the message. /// - public string SubCategory { get; } + internal string SubCategory { get; } /// /// Code identifier for errors and warnings. /// - public int? Code { get; } + internal int? Code { get; } /// /// User friendly text describing the error or warning. /// - public string Text { get; } + internal string Text { get; } /// /// Create an error message. @@ -197,7 +199,7 @@ private static MessageContainer CreateWarningMessageContainer (LinkContext conte return new MessageContainer (MessageCategory.Warning, id, subcategory, origin, args); } - public bool IsWarningMessage ([NotNullWhen (true)] out int? code) + internal bool IsWarningMessage ([NotNullWhen (true)] out int? code) { code = null; @@ -283,7 +285,7 @@ private MessageContainer (MessageCategory category, DiagnosticId id, string subc public override string ToString () => ToMSBuildString (); - public string ToMSBuildString () + internal string ToMSBuildString () { const string originApp = Constants.ILLink; string origin = Origin?.ToString () ?? originApp; diff --git a/src/tools/illink/src/linker/Linker/MessageOrigin.cs b/src/tools/illink/src/linker/Linker/MessageOrigin.cs index 6cc13521faaf36..d71a913cc7c6b3 100644 --- a/src/tools/illink/src/linker/Linker/MessageOrigin.cs +++ b/src/tools/illink/src/linker/Linker/MessageOrigin.cs @@ -12,12 +12,12 @@ namespace Mono.Linker { public readonly struct MessageOrigin : IComparable, IEquatable { - public string? FileName { get; } - public ICustomAttributeProvider? Provider { get; } + internal string? FileName { get; } + internal ICustomAttributeProvider? Provider { get; } - public int SourceLine { get; } - public int SourceColumn { get; } - public int? ILOffset { get; } + internal int SourceLine { get; } + internal int SourceColumn { get; } + internal int? ILOffset { get; } const int HiddenLineNumber = 0xfeefee; @@ -26,7 +26,7 @@ public MessageOrigin (IMemberDefinition? memberDefinition, int? ilOffset = null) { } - public MessageOrigin (ICustomAttributeProvider? provider) + internal MessageOrigin (ICustomAttributeProvider? provider) : this (provider, null) { } @@ -38,7 +38,7 @@ public MessageOrigin (string fileName, int sourceLine = 0, int sourceColumn = 0) // The assembly attribute should be specified if available as it allows assigning the diagnostic // to a an assembly (we group based on assembly). - public MessageOrigin (string fileName, int sourceLine, int sourceColumn, AssemblyDefinition? assembly) + internal MessageOrigin (string fileName, int sourceLine, int sourceColumn, AssemblyDefinition? assembly) { FileName = fileName; SourceLine = sourceLine; @@ -47,7 +47,7 @@ public MessageOrigin (string fileName, int sourceLine, int sourceColumn, Assembl ILOffset = null; } - public MessageOrigin (ICustomAttributeProvider? provider, int? ilOffset) + internal MessageOrigin (ICustomAttributeProvider? provider, int? ilOffset) { Debug.Assert (provider == null || provider is IMemberDefinition || provider is AssemblyDefinition); FileName = null; @@ -57,7 +57,7 @@ public MessageOrigin (ICustomAttributeProvider? provider, int? ilOffset) ILOffset = ilOffset; } - public MessageOrigin (MessageOrigin other) + internal MessageOrigin (MessageOrigin other) { FileName = other.FileName; Provider = other.Provider; @@ -66,7 +66,7 @@ public MessageOrigin (MessageOrigin other) ILOffset = other.ILOffset; } - public MessageOrigin (MessageOrigin other, int ilOffset) + internal MessageOrigin (MessageOrigin other, int ilOffset) { FileName = other.FileName; Provider = other.Provider; @@ -75,7 +75,7 @@ public MessageOrigin (MessageOrigin other, int ilOffset) ILOffset = ilOffset; } - public MessageOrigin WithInstructionOffset (int ilOffset) => new MessageOrigin (this, ilOffset); + internal MessageOrigin WithInstructionOffset (int ilOffset) => new MessageOrigin (this, ilOffset); public override string? ToString () { diff --git a/src/tools/illink/src/linker/Linker/MetadataTrimming.cs b/src/tools/illink/src/linker/Linker/MetadataTrimming.cs index 283986b4aaf04f..89f21bdb508a7e 100644 --- a/src/tools/illink/src/linker/Linker/MetadataTrimming.cs +++ b/src/tools/illink/src/linker/Linker/MetadataTrimming.cs @@ -6,7 +6,7 @@ namespace Mono.Linker { [Flags] - public enum MetadataTrimming + internal enum MetadataTrimming { None = 0, ParameterName = 1, diff --git a/src/tools/illink/src/linker/Linker/MethodIL.cs b/src/tools/illink/src/linker/Linker/MethodIL.cs index fc97a6e2433483..80a8e88fb0c93d 100644 --- a/src/tools/illink/src/linker/Linker/MethodIL.cs +++ b/src/tools/illink/src/linker/Linker/MethodIL.cs @@ -12,7 +12,7 @@ namespace Mono.Linker /// Any accesses made throught this wrapper are considered "safe"/OK since the wrapper is only created /// once all of the optimizations are applied. /// - public readonly record struct MethodIL + internal readonly record struct MethodIL { MethodIL (MethodBody body) => this.Body = body; diff --git a/src/tools/illink/src/linker/Linker/OverrideInformation.cs b/src/tools/illink/src/linker/Linker/OverrideInformation.cs index 0727d5d25c19a0..910000a760a7d1 100644 --- a/src/tools/illink/src/linker/Linker/OverrideInformation.cs +++ b/src/tools/illink/src/linker/Linker/OverrideInformation.cs @@ -35,7 +35,7 @@ public TypeDefinition? InterfaceType => InterfaceImplementor?.InterfaceType; [MemberNotNullWhen (true, nameof (InterfaceImplementor), nameof (MatchingInterfaceImplementation))] - public bool IsOverrideOfInterfaceMember + internal bool IsOverrideOfInterfaceMember => InterfaceImplementor != null; } } diff --git a/src/tools/illink/src/linker/Linker/RemoveAttributeInstancesAttribute.cs b/src/tools/illink/src/linker/Linker/RemoveAttributeInstancesAttribute.cs index 9bac74619bf979..a7e624d7c74fe2 100644 --- a/src/tools/illink/src/linker/Linker/RemoveAttributeInstancesAttribute.cs +++ b/src/tools/illink/src/linker/Linker/RemoveAttributeInstancesAttribute.cs @@ -14,7 +14,7 @@ namespace Mono.Linker /// [AttributeUsage ( AttributeTargets.Class, Inherited = false)] - public sealed class RemoveAttributeInstancesAttribute : Attribute + internal sealed class RemoveAttributeInstancesAttribute : Attribute { public RemoveAttributeInstancesAttribute (Collection args) { diff --git a/src/tools/illink/src/linker/Linker/SerializationMarker.cs b/src/tools/illink/src/linker/Linker/SerializationMarker.cs index 167da301570638..4a446161777a9d 100644 --- a/src/tools/illink/src/linker/Linker/SerializationMarker.cs +++ b/src/tools/illink/src/linker/Linker/SerializationMarker.cs @@ -42,7 +42,7 @@ namespace Mono.Linker // mark the type and its public instance {fields, properties, and parameterless constructors} [Flags] - public enum SerializerKind + internal enum SerializerKind { None = 0, XmlSerializer = 1, diff --git a/src/tools/illink/src/linker/Linker/TypeNameResolver.cs b/src/tools/illink/src/linker/Linker/TypeNameResolver.cs index cd429719b891a5..4c3fa350318c16 100644 --- a/src/tools/illink/src/linker/Linker/TypeNameResolver.cs +++ b/src/tools/illink/src/linker/Linker/TypeNameResolver.cs @@ -16,7 +16,7 @@ internal sealed class TypeNameResolver { readonly LinkContext _context; - public readonly record struct TypeResolutionRecord (AssemblyDefinition ReferringAssembly, TypeDefinition ResolvedType); + internal readonly record struct TypeResolutionRecord (AssemblyDefinition ReferringAssembly, TypeDefinition ResolvedType); public TypeNameResolver (LinkContext context) { diff --git a/src/tools/illink/src/linker/Linker/TypePreserveMembers.cs b/src/tools/illink/src/linker/Linker/TypePreserveMembers.cs index 0f71b61d306f85..9c527fd7a85dd1 100644 --- a/src/tools/illink/src/linker/Linker/TypePreserveMembers.cs +++ b/src/tools/illink/src/linker/Linker/TypePreserveMembers.cs @@ -6,7 +6,7 @@ namespace Mono.Linker { [Flags] - public enum TypePreserveMembers + internal enum TypePreserveMembers { Visible = 1 << 1, Internal = 1 << 2, diff --git a/src/tools/illink/src/linker/Linker/WarningSuppressionWriter.cs b/src/tools/illink/src/linker/Linker/WarningSuppressionWriter.cs index 41145992b3705e..ab23ddcc87fa74 100644 --- a/src/tools/illink/src/linker/Linker/WarningSuppressionWriter.cs +++ b/src/tools/illink/src/linker/Linker/WarningSuppressionWriter.cs @@ -120,7 +120,7 @@ static string GetWarningSuppressionScopeString (string memberDocumentationSignat return "member"; } - public enum FileOutputKind + internal enum FileOutputKind { CSharp, Xml From d75ad333feb059f23002bdc7a8334a1c7acaf2f1 Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Mon, 11 Mar 2024 22:29:49 +0000 Subject: [PATCH 07/15] Reorganize and complete suppressions --- .../src/linker/CompatibilitySuppressions.xml | 119 +++++++++++------- 1 file changed, 74 insertions(+), 45 deletions(-) diff --git a/src/tools/illink/src/linker/CompatibilitySuppressions.xml b/src/tools/illink/src/linker/CompatibilitySuppressions.xml index c353e98e739f17..8ddadc64ac8d2d 100644 --- a/src/tools/illink/src/linker/CompatibilitySuppressions.xml +++ b/src/tools/illink/src/linker/CompatibilitySuppressions.xml @@ -1,7 +1,49 @@ + + + CP0001 + T:ILLink.Shared.DiagnosticId + + + CP0001 + T:ILLink.Shared.DiagnosticIdExtensions + + + + + CP0001 + T:System.Reflection.AssemblyNameHelpers + + + CP0001 + T:System.Reflection.Runtime.TypeParsing.AssemblyQualifiedTypeName + + + CP0001 + T:System.Reflection.Runtime.TypeParsing.NonQualifiedTypeName + + + CP0001 + T:System.Reflection.Runtime.TypeParsing.TypeName + + + CP0001 + T:System.Reflection.Runtime.TypeParsing.TypeParser + + + CP0001 + T:System.Reflection.RuntimeAssemblyName + + + + CP0001 + T:Mono.Linker.LinkerILProcessor + ref/net8.0/illink.dll + lib/net8.0/illink.dll + CP0002 F:Mono.Linker.AnnotationStore.assembly_actions @@ -70,57 +112,50 @@ CP0002 F:Mono.Linker.AnnotationStore.types_relevant_to_variant_casting - - CP0001 - T:Mono.Linker.LinkerILProcessor - ref/net8.0/illink.dll - lib/net8.0/illink.dll - - - - CP0001 - T:System.Reflection.Runtime.TypeParsing.AssemblyQualifiedTypeName - + - CP0001 - T:System.Reflection.Runtime.TypeParsing.NonQualifiedTypeName + CP0002 + F:Mono.Linker.MessageCategory.WarningAsError + + - CP0001 - T:System.Reflection.Runtime.TypeParsing.TypeName + CP0002 + M:Mono.Linker.LinkContext.Dispose + + - CP0001 - T:System.Reflection.Runtime.TypeParsing.TypeParser + CP0002 + M:Mono.Linker.MessageContainer.CompareTo(Mono.Linker.MessageContainer) + + - CP0001 - T:System.Reflection.AssemblyNameHelpers + CP0002 + M:Mono.Linker.MessageContainer.op_Equality(Mono.Linker.MessageContainer,Mono.Linker.MessageContainer) - CP0001 - T:System.Reflection.RuntimeAssemblyName + CP0002 + M:Mono.Linker.MessageContainer.op_Inequality(Mono.Linker.MessageContainer,Mono.Linker.MessageContainer) - + - CP0001 - T:ILLink.Shared.DiagnosticId - - - CP0001 - T:ILLink.Shared.DiagnosticIdExtensions + CP0002 + M:Mono.Linker.MessageOrigin.CompareTo(Mono.Linker.MessageOrigin) - + - CP0016 - M:Mono.Linker.AnnotationStore.Mark(Mono.Cecil.CustomAttribute):[T:System.ObsoleteAttribute] + CP0002 + M:Mono.Linker.MessageOrigin.op_Equality(Mono.Linker.MessageOrigin,Mono.Linker.MessageOrigin) - CP0016 - M:Mono.Linker.AnnotationStore.Mark(Mono.Cecil.IMetadataTokenProvider):[T:System.ObsoleteAttribute] + CP0002 + M:Mono.Linker.MessageOrigin.op_Inequality(Mono.Linker.MessageOrigin,Mono.Linker.MessageOrigin) + CP0008 @@ -131,25 +166,19 @@ T:Mono.Linker.MessageOrigin - + - CP0002 - M:Mono.Linker.MessageContainer.CompareTo(Mono.Linker.MessageContainer) + CP0016 + M:Mono.Linker.AnnotationStore.Mark(Mono.Cecil.CustomAttribute):[T:System.ObsoleteAttribute] - - - CP0002 - M:Mono.Linker.LinkContext.Dispose + CP0016 + M:Mono.Linker.AnnotationStore.Mark(Mono.Cecil.IMetadataTokenProvider):[T:System.ObsoleteAttribute] + CP0016 M:Mono.Linker.LinkContext.TryGetCustomData(System.String,System.String@)$1:[T:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute] - - - CP0002 - F:Mono.Linker.MessageCategory.WarningAsError - \ No newline at end of file From 91b32114688e4bae87681d68e064e932fcd437b6 Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Mon, 11 Mar 2024 22:39:41 +0000 Subject: [PATCH 08/15] Cleanup --- .../DiagnosticDescriptors.cs | 1 - .../illink/src/ILLink.Shared/DiagnosticId.cs | 3 --- .../src/linker/CompatibilitySuppressions.xml | 25 ++++++++----------- .../linker/Linker.Steps/CodeRewriterStep.cs | 2 +- .../linker/Linker.Steps/DescriptorMarker.cs | 2 +- .../src/linker/Linker.Steps/MarkStep.cs | 2 +- .../src/linker/Linker.Steps/OutputStep.cs | 2 +- .../src/linker/Linker.Steps/SweepStep.cs | 2 +- .../illink/src/linker/Linker/Annotations.cs | 4 +-- .../src/linker/Linker/AssemblyResolver.cs | 3 +-- .../src/linker/Linker/EmbeddedXmlInfo.cs | 2 +- .../illink/src/linker/Linker/LinkContext.cs | 2 +- .../illink/src/linker/Linker/Pipeline.cs | 2 +- .../illink/src/linker/Linker/TypeMapInfo.cs | 2 +- 14 files changed, 22 insertions(+), 32 deletions(-) diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/DiagnosticDescriptors.cs b/src/tools/illink/src/ILLink.RoslynAnalyzer/DiagnosticDescriptors.cs index ada3e8cdaf1472..7f53e2e34d832a 100644 --- a/src/tools/illink/src/ILLink.RoslynAnalyzer/DiagnosticDescriptors.cs +++ b/src/tools/illink/src/ILLink.RoslynAnalyzer/DiagnosticDescriptors.cs @@ -6,7 +6,6 @@ namespace ILLink.RoslynAnalyzer { - // Used by codefix assembly public static class DiagnosticDescriptors { public static DiagnosticDescriptor GetDiagnosticDescriptor (DiagnosticId diagnosticId) diff --git a/src/tools/illink/src/ILLink.Shared/DiagnosticId.cs b/src/tools/illink/src/ILLink.Shared/DiagnosticId.cs index 649edee9d3ee46..5d40efbbaaf994 100644 --- a/src/tools/illink/src/ILLink.Shared/DiagnosticId.cs +++ b/src/tools/illink/src/ILLink.Shared/DiagnosticId.cs @@ -8,7 +8,6 @@ namespace ILLink.Shared { - // Must be public, or visible to codefix assembly. public enum DiagnosticId { // Trimming error ids. @@ -209,8 +208,6 @@ public enum DiagnosticId InvalidFeatureGuard = 4001 } - // Must be public, because code fixer references the AsString extension. - // Or, could use InternalsVisibleto. public static class DiagnosticIdExtensions { public static string AsString (this DiagnosticId diagnosticId) => $"IL{(int) diagnosticId}"; diff --git a/src/tools/illink/src/linker/CompatibilitySuppressions.xml b/src/tools/illink/src/linker/CompatibilitySuppressions.xml index 8ddadc64ac8d2d..c457496285acd1 100644 --- a/src/tools/illink/src/linker/CompatibilitySuppressions.xml +++ b/src/tools/illink/src/linker/CompatibilitySuppressions.xml @@ -1,7 +1,8 @@ - + + CP0001 T:ILLink.Shared.DiagnosticId @@ -11,7 +12,7 @@ T:ILLink.Shared.DiagnosticIdExtensions - + CP0001 T:System.Reflection.AssemblyNameHelpers @@ -113,25 +114,21 @@ F:Mono.Linker.AnnotationStore.types_relevant_to_variant_casting - + CP0002 F:Mono.Linker.MessageCategory.WarningAsError - + CP0002 M:Mono.Linker.LinkContext.Dispose - - CP0002 M:Mono.Linker.MessageContainer.CompareTo(Mono.Linker.MessageContainer) - - CP0002 M:Mono.Linker.MessageContainer.op_Equality(Mono.Linker.MessageContainer,Mono.Linker.MessageContainer) @@ -140,13 +137,10 @@ CP0002 M:Mono.Linker.MessageContainer.op_Inequality(Mono.Linker.MessageContainer,Mono.Linker.MessageContainer) - - CP0002 M:Mono.Linker.MessageOrigin.CompareTo(Mono.Linker.MessageOrigin) - CP0002 M:Mono.Linker.MessageOrigin.op_Equality(Mono.Linker.MessageOrigin,Mono.Linker.MessageOrigin) @@ -156,7 +150,7 @@ M:Mono.Linker.MessageOrigin.op_Inequality(Mono.Linker.MessageOrigin,Mono.Linker.MessageOrigin) - + CP0008 T:Mono.Linker.MessageContainer @@ -166,7 +160,7 @@ T:Mono.Linker.MessageOrigin - + CP0016 M:Mono.Linker.AnnotationStore.Mark(Mono.Cecil.CustomAttribute):[T:System.ObsoleteAttribute] @@ -176,9 +170,10 @@ M:Mono.Linker.AnnotationStore.Mark(Mono.Cecil.IMetadataTokenProvider):[T:System.ObsoleteAttribute] - + CP0016 M:Mono.Linker.LinkContext.TryGetCustomData(System.String,System.String@)$1:[T:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute] - \ No newline at end of file + + diff --git a/src/tools/illink/src/linker/Linker.Steps/CodeRewriterStep.cs b/src/tools/illink/src/linker/Linker.Steps/CodeRewriterStep.cs index 37c286f1eecb99..2259a04dbee20c 100644 --- a/src/tools/illink/src/linker/Linker.Steps/CodeRewriterStep.cs +++ b/src/tools/illink/src/linker/Linker.Steps/CodeRewriterStep.cs @@ -9,7 +9,7 @@ namespace Mono.Linker.Steps { - // Unity extension point + // UnityLinker extension point #pragma warning disable CA1852 // Seal internal types internal class CodeRewriterStep : BaseStep #pragma warning restore CA1852 diff --git a/src/tools/illink/src/linker/Linker.Steps/DescriptorMarker.cs b/src/tools/illink/src/linker/Linker.Steps/DescriptorMarker.cs index 2b013a1c6bc61c..fb2389c0a83769 100644 --- a/src/tools/illink/src/linker/Linker.Steps/DescriptorMarker.cs +++ b/src/tools/illink/src/linker/Linker.Steps/DescriptorMarker.cs @@ -12,7 +12,7 @@ namespace Mono.Linker.Steps { - // Unity extension point + // UnityLinker extension point #pragma warning disable CA1852 // Seal internal types internal class DescriptorMarker : ProcessLinkerXmlBase #pragma warning restore CA1852 diff --git a/src/tools/illink/src/linker/Linker.Steps/MarkStep.cs b/src/tools/illink/src/linker/Linker.Steps/MarkStep.cs index 1c7412f076aa36..2577bce17581db 100644 --- a/src/tools/illink/src/linker/Linker.Steps/MarkStep.cs +++ b/src/tools/illink/src/linker/Linker.Steps/MarkStep.cs @@ -48,7 +48,7 @@ namespace Mono.Linker.Steps { - // Unity extension point + // UnityLinker extension point #pragma warning disable CA1852 // Seal internal types internal partial class MarkStep : IStep #pragma warning restore CA1852 diff --git a/src/tools/illink/src/linker/Linker.Steps/OutputStep.cs b/src/tools/illink/src/linker/Linker.Steps/OutputStep.cs index edf18944e7e965..f77f759ab10a17 100644 --- a/src/tools/illink/src/linker/Linker.Steps/OutputStep.cs +++ b/src/tools/illink/src/linker/Linker.Steps/OutputStep.cs @@ -39,7 +39,7 @@ namespace Mono.Linker.Steps { - // Unity extension point + // UnityLinker extension point #pragma warning disable CA1852 // Seal internal types internal class OutputStep : BaseStep #pragma warning restore CA1852 diff --git a/src/tools/illink/src/linker/Linker.Steps/SweepStep.cs b/src/tools/illink/src/linker/Linker.Steps/SweepStep.cs index 9747cbaae80b07..154491c9726ab7 100644 --- a/src/tools/illink/src/linker/Linker.Steps/SweepStep.cs +++ b/src/tools/illink/src/linker/Linker.Steps/SweepStep.cs @@ -40,7 +40,7 @@ namespace Mono.Linker.Steps { - // Unity extension point + // UnityLinker extension point #pragma warning disable CA1852 // Seal internal types internal class SweepStep : BaseStep #pragma warning restore CA1852 diff --git a/src/tools/illink/src/linker/Linker/Annotations.cs b/src/tools/illink/src/linker/Linker/Annotations.cs index 179ac5632939f6..5c9b31adcccd12 100644 --- a/src/tools/illink/src/linker/Linker/Annotations.cs +++ b/src/tools/illink/src/linker/Linker/Annotations.cs @@ -60,8 +60,8 @@ public partial class AnnotationStore private protected readonly Dictionary preserved_exportedtype_members = new (); private protected readonly Dictionary> preserved_methods = new Dictionary> (); readonly HashSet assemblies_with_root_all_members = new (); - protected readonly HashSet public_api = new HashSet (); - protected readonly Dictionary symbol_readers = new Dictionary (); + private protected readonly HashSet public_api = new HashSet (); + private protected readonly Dictionary symbol_readers = new Dictionary (); readonly Dictionary linker_attributes = new Dictionary (); readonly Dictionary> custom_annotations = new Dictionary> (); private protected readonly Dictionary> resources_to_remove = new Dictionary> (); diff --git a/src/tools/illink/src/linker/Linker/AssemblyResolver.cs b/src/tools/illink/src/linker/Linker/AssemblyResolver.cs index a6613b59219dc5..736f972ba3b0c4 100644 --- a/src/tools/illink/src/linker/Linker/AssemblyResolver.cs +++ b/src/tools/illink/src/linker/Linker/AssemblyResolver.cs @@ -38,9 +38,8 @@ namespace Mono.Linker { - // Unity extension point + // UnityLinker extension point #pragma warning disable CA1852 // Seal internal types - internal class AssemblyResolver : IAssemblyResolver #pragma warning restore CA1852 { diff --git a/src/tools/illink/src/linker/Linker/EmbeddedXmlInfo.cs b/src/tools/illink/src/linker/Linker/EmbeddedXmlInfo.cs index 267b539b87ed3b..f9cd23d882e32e 100644 --- a/src/tools/illink/src/linker/Linker/EmbeddedXmlInfo.cs +++ b/src/tools/illink/src/linker/Linker/EmbeddedXmlInfo.cs @@ -10,7 +10,7 @@ namespace Mono.Linker { - // Unity extension point + // UnityLinker extension point #pragma warning disable CA1852 // Seal internal types internal class EmbeddedXmlInfo #pragma warning restore CA1852 diff --git a/src/tools/illink/src/linker/Linker/LinkContext.cs b/src/tools/illink/src/linker/Linker/LinkContext.cs index 6732be2371177e..963c321840ce8a 100644 --- a/src/tools/illink/src/linker/Linker/LinkContext.cs +++ b/src/tools/illink/src/linker/Linker/LinkContext.cs @@ -43,7 +43,7 @@ namespace Mono.Linker { - // Unity extension point + // UnityLinker extension point #pragma warning disable CA1852 // Seal internal types internal class UnintializedContextFactory #pragma warning restore CA1852 diff --git a/src/tools/illink/src/linker/Linker/Pipeline.cs b/src/tools/illink/src/linker/Linker/Pipeline.cs index 814009253e61e5..589be9a5c8b5f9 100644 --- a/src/tools/illink/src/linker/Linker/Pipeline.cs +++ b/src/tools/illink/src/linker/Linker/Pipeline.cs @@ -35,7 +35,7 @@ namespace Mono.Linker { - // Unity extension point + // UnityLinker extension point #pragma warning disable CA1852 // Seal internal types internal class Pipeline #pragma warning restore CA1852 diff --git a/src/tools/illink/src/linker/Linker/TypeMapInfo.cs b/src/tools/illink/src/linker/Linker/TypeMapInfo.cs index ce9b95cb5bc0e1..25492e9ab50cf2 100644 --- a/src/tools/illink/src/linker/Linker/TypeMapInfo.cs +++ b/src/tools/illink/src/linker/Linker/TypeMapInfo.cs @@ -38,7 +38,7 @@ namespace Mono.Linker { - // Unity extension point + // UnityLinker extension point #pragma warning disable CA1852 // Seal internal types internal class TypeMapInfo #pragma warning restore CA1852 From a971cdb3fc3be2a849c0eee5773daa5949ffcdf4 Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Mon, 11 Mar 2024 22:45:33 +0000 Subject: [PATCH 09/15] Fix ILC build --- .../Compiler/Dataflow/FieldReferenceValue.cs | 2 +- .../Compiler/Dataflow/LocalVariableReferenceValue.cs | 2 +- .../ILCompiler.Compiler/Compiler/Dataflow/ReferenceValue.cs | 2 +- .../Compiler/Dataflow/TrimAnalysisAssignmentPattern.cs | 2 +- .../Compiler/Dataflow/TrimAnalysisMethodCallPattern.cs | 2 +- .../Compiler/Dataflow/TrimAnalysisPatternStore.cs | 2 +- .../aot/ILCompiler.Compiler/Compiler/Dataflow/ValueNode.cs | 4 ++-- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/Dataflow/FieldReferenceValue.cs b/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/Dataflow/FieldReferenceValue.cs index e5af9a84dcb3b2..dbd83ea9becbe1 100644 --- a/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/Dataflow/FieldReferenceValue.cs +++ b/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/Dataflow/FieldReferenceValue.cs @@ -9,7 +9,7 @@ namespace ILLink.Shared.TrimAnalysis { - public partial record FieldReferenceValue(FieldDesc FieldDefinition) + internal sealed partial record FieldReferenceValue(FieldDesc FieldDefinition) : ReferenceValue(FieldDefinition.FieldType) { public override SingleValue DeepCopy() => this; diff --git a/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/Dataflow/LocalVariableReferenceValue.cs b/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/Dataflow/LocalVariableReferenceValue.cs index 40301b01b8f39c..ba190ae9b4b95b 100644 --- a/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/Dataflow/LocalVariableReferenceValue.cs +++ b/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/Dataflow/LocalVariableReferenceValue.cs @@ -8,7 +8,7 @@ namespace ILLink.Shared.TrimAnalysis { - public partial record LocalVariableReferenceValue : ReferenceValue + internal sealed partial record LocalVariableReferenceValue : ReferenceValue { public int LocalIndex { get; } diff --git a/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/Dataflow/ReferenceValue.cs b/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/Dataflow/ReferenceValue.cs index 87c7e09697b515..c0010aa3d4419f 100644 --- a/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/Dataflow/ReferenceValue.cs +++ b/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/Dataflow/ReferenceValue.cs @@ -11,5 +11,5 @@ namespace ILLink.Shared.TrimAnalysis /// /// Acts as the base class for all values that represent a reference to another value. These should only be held in a ref type or on the stack as a result of a 'load address' instruction (e.g. ldloca). /// - public abstract record ReferenceValue(TypeDesc ReferencedType) : SingleValue { } + internal abstract record ReferenceValue(TypeDesc ReferencedType) : SingleValue { } } diff --git a/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/Dataflow/TrimAnalysisAssignmentPattern.cs b/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/Dataflow/TrimAnalysisAssignmentPattern.cs index afb09e131a31de..368ee3abee6405 100644 --- a/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/Dataflow/TrimAnalysisAssignmentPattern.cs +++ b/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/Dataflow/TrimAnalysisAssignmentPattern.cs @@ -13,7 +13,7 @@ namespace ILCompiler.Dataflow { - public readonly record struct TrimAnalysisAssignmentPattern + internal readonly record struct TrimAnalysisAssignmentPattern { public MultiValue Source { get; init; } public MultiValue Target { get; init; } diff --git a/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/Dataflow/TrimAnalysisMethodCallPattern.cs b/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/Dataflow/TrimAnalysisMethodCallPattern.cs index 9f2caf292999b4..50e5bd5666bbcc 100644 --- a/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/Dataflow/TrimAnalysisMethodCallPattern.cs +++ b/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/Dataflow/TrimAnalysisMethodCallPattern.cs @@ -14,7 +14,7 @@ namespace ILCompiler.Dataflow { - public readonly record struct TrimAnalysisMethodCallPattern + internal readonly record struct TrimAnalysisMethodCallPattern { public readonly MethodIL MethodBody; public readonly ILOpcode Operation; diff --git a/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/Dataflow/TrimAnalysisPatternStore.cs b/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/Dataflow/TrimAnalysisPatternStore.cs index 258f2bcfef26cc..eb5f21305687e8 100644 --- a/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/Dataflow/TrimAnalysisPatternStore.cs +++ b/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/Dataflow/TrimAnalysisPatternStore.cs @@ -11,7 +11,7 @@ namespace ILCompiler.Dataflow { - public readonly struct TrimAnalysisPatternStore + internal readonly struct TrimAnalysisPatternStore { private readonly Dictionary<(MessageOrigin, bool), TrimAnalysisAssignmentPattern> AssignmentPatterns; private readonly Dictionary MethodCallPatterns; diff --git a/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/Dataflow/ValueNode.cs b/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/Dataflow/ValueNode.cs index 41f89f35a8cf3e..1fcf8c358efb63 100644 --- a/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/Dataflow/ValueNode.cs +++ b/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/Dataflow/ValueNode.cs @@ -10,7 +10,7 @@ namespace ILCompiler.Dataflow { - public class ValueNodeList : List + internal sealed class ValueNodeList : List { public ValueNodeList() { @@ -51,7 +51,7 @@ public override bool Equals(object? other) } } - public struct ValueBasicBlockPair : IEquatable + internal struct ValueBasicBlockPair : IEquatable { public ValueBasicBlockPair(MultiValue value, int basicBlockIndex) { From a8ac4435a3d24c28046f4b7dbd395bf015849f9e Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Mon, 11 Mar 2024 22:52:04 +0000 Subject: [PATCH 10/15] Fix ILC build --- src/tools/illink/src/ILLink.Shared/MessageSubCategory.cs | 2 +- src/tools/illink/src/linker/CompatibilitySuppressions.xml | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/tools/illink/src/ILLink.Shared/MessageSubCategory.cs b/src/tools/illink/src/ILLink.Shared/MessageSubCategory.cs index b571f3c95ee049..4b47d266681156 100644 --- a/src/tools/illink/src/ILLink.Shared/MessageSubCategory.cs +++ b/src/tools/illink/src/ILLink.Shared/MessageSubCategory.cs @@ -6,7 +6,7 @@ namespace ILLink.Shared { - internal static class MessageSubCategory + public static class MessageSubCategory { public const string None = ""; public const string TrimAnalysis = "Trim analysis"; diff --git a/src/tools/illink/src/linker/CompatibilitySuppressions.xml b/src/tools/illink/src/linker/CompatibilitySuppressions.xml index c457496285acd1..c85d00704e3d3d 100644 --- a/src/tools/illink/src/linker/CompatibilitySuppressions.xml +++ b/src/tools/illink/src/linker/CompatibilitySuppressions.xml @@ -12,6 +12,12 @@ T:ILLink.Shared.DiagnosticIdExtensions + + + CP0001 + T:ILLink.Shared.MessageSubCategory + + CP0001 From ae050067c0a28753f45cffc14415a836c78f879c Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Tue, 12 Mar 2024 20:23:32 +0000 Subject: [PATCH 11/15] Use InternalsVisibleTo for ILLink tests --- src/tools/illink/src/linker/Mono.Linker.csproj | 1 + .../illink/test/Mono.Linker.Tests/TestCases/IndividualTests.cs | 2 +- .../TestCasesRunner/ILVerification/ILChecker.cs | 2 +- .../test/Mono.Linker.Tests/TestCasesRunner/ResultChecker.cs | 2 +- .../test/Mono.Linker.Tests/TestCasesRunner/TestCaseCompiler.cs | 2 +- .../TestCasesRunner/TestCaseMetadataProvider.cs | 2 +- .../Mono.Linker.Tests/TestCasesRunner/TestDependencyRecorder.cs | 2 +- .../TestCasesRunner/TrimmingArgumentBuilder.cs | 2 +- .../Mono.Linker.Tests/TestCasesRunner/TrimmingCustomizations.cs | 2 +- .../test/Mono.Linker.Tests/TestCasesRunner/TrimmingDriver.cs | 2 +- src/tools/illink/test/Trimming.Tests.Shared/AssemblyChecker.cs | 2 +- src/tools/illink/test/Trimming.Tests.Shared/ObjectFactory.cs | 2 +- src/tools/illink/test/Trimming.Tests.Shared/TestCaseSandbox.cs | 2 +- src/tools/illink/test/Trimming.Tests.Shared/TestRunner.cs | 2 +- .../illink/test/Trimming.Tests.Shared/TrimmedTestCaseResult.cs | 2 +- 15 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/tools/illink/src/linker/Mono.Linker.csproj b/src/tools/illink/src/linker/Mono.Linker.csproj index d1a4bdbf0570ca..27bc28d15d286f 100644 --- a/src/tools/illink/src/linker/Mono.Linker.csproj +++ b/src/tools/illink/src/linker/Mono.Linker.csproj @@ -73,6 +73,7 @@ + diff --git a/src/tools/illink/test/Mono.Linker.Tests/TestCases/IndividualTests.cs b/src/tools/illink/test/Mono.Linker.Tests/TestCases/IndividualTests.cs index 1b6ee0ff116fe5..fb038184923fb2 100644 --- a/src/tools/illink/test/Mono.Linker.Tests/TestCases/IndividualTests.cs +++ b/src/tools/illink/test/Mono.Linker.Tests/TestCases/IndividualTests.cs @@ -20,7 +20,7 @@ namespace Mono.Linker.Tests.TestCases { [TestFixture] - public class IndividualTests + internal class IndividualTests { private static NPath TestsDirectory => TestDatabase.TestCasesRootDirectory.Parent.Combine ("Mono.Linker.Tests"); diff --git a/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/ILVerification/ILChecker.cs b/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/ILVerification/ILChecker.cs index dbced87b9c84ec..bf1bea85cac6d7 100644 --- a/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/ILVerification/ILChecker.cs +++ b/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/ILVerification/ILChecker.cs @@ -13,7 +13,7 @@ namespace Mono.Linker.Tests.TestCasesRunner.ILVerification; -public class ILChecker +internal class ILChecker { public virtual void Check (TrimmedTestCaseResult linkResult, AssemblyDefinition original) { diff --git a/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/ResultChecker.cs b/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/ResultChecker.cs index 7e730cb0b59211..622841df37a93c 100644 --- a/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/ResultChecker.cs +++ b/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/ResultChecker.cs @@ -20,7 +20,7 @@ namespace Mono.Linker.Tests.TestCasesRunner { - public class ResultChecker + internal class ResultChecker { readonly BaseAssemblyResolver _originalsResolver; readonly BaseAssemblyResolver _linkedResolver; diff --git a/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TestCaseCompiler.cs b/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TestCaseCompiler.cs index ec427ebdbc4858..5d50fefc614805 100644 --- a/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TestCaseCompiler.cs +++ b/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TestCaseCompiler.cs @@ -18,7 +18,7 @@ namespace Mono.Linker.Tests.TestCasesRunner { - public class TestCaseCompiler + internal class TestCaseCompiler { protected readonly TestCaseCompilationMetadataProvider _metadataProvider; protected readonly TestCaseSandbox _sandbox; diff --git a/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TestCaseMetadataProvider.cs b/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TestCaseMetadataProvider.cs index b134310fe79704..c71921229abc34 100644 --- a/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TestCaseMetadataProvider.cs +++ b/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TestCaseMetadataProvider.cs @@ -13,7 +13,7 @@ namespace Mono.Linker.Tests.TestCasesRunner { - public class TestCaseMetadataProvider : BaseMetadataProvider + internal class TestCaseMetadataProvider : BaseMetadataProvider { public TestCaseMetadataProvider (TestCase testCase, AssemblyDefinition fullTestCaseAssemblyDefinition) : base (testCase, fullTestCaseAssemblyDefinition) diff --git a/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TestDependencyRecorder.cs b/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TestDependencyRecorder.cs index 643832414e3e09..9e5f5343156926 100644 --- a/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TestDependencyRecorder.cs +++ b/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TestDependencyRecorder.cs @@ -5,7 +5,7 @@ namespace Mono.Linker.Tests.TestCasesRunner { - public class TestDependencyRecorder : IDependencyRecorder + internal class TestDependencyRecorder : IDependencyRecorder { public record struct Dependency { diff --git a/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TrimmingArgumentBuilder.cs b/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TrimmingArgumentBuilder.cs index cdb59e6571130d..1d8ab1a15fb9b2 100644 --- a/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TrimmingArgumentBuilder.cs +++ b/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TrimmingArgumentBuilder.cs @@ -6,7 +6,7 @@ namespace Mono.Linker.Tests.TestCasesRunner { - public class TrimmingArgumentBuilder + internal class TrimmingArgumentBuilder { private readonly List _arguments = new List (); private readonly TestCaseMetadataProvider _metadataProvider; diff --git a/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TrimmingCustomizations.cs b/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TrimmingCustomizations.cs index 600084cbfd5f02..7695cee155e4db 100644 --- a/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TrimmingCustomizations.cs +++ b/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TrimmingCustomizations.cs @@ -9,7 +9,7 @@ namespace Mono.Linker.Tests.TestCasesRunner /// Stores various customizations which can be added to ILLink at runtime, /// for example test implementations of certain interfaces. /// - public class TrimmingCustomizations + internal class TrimmingCustomizations { public TestDependencyRecorder DependencyRecorder { get; set; } diff --git a/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TrimmingDriver.cs b/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TrimmingDriver.cs index c42535dfed1e75..0496fd60bd96ea 100644 --- a/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TrimmingDriver.cs +++ b/src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TrimmingDriver.cs @@ -5,7 +5,7 @@ namespace Mono.Linker.Tests.TestCasesRunner { - public class TrimmingDriver + internal class TrimmingDriver { protected class TestDriver : Driver { diff --git a/src/tools/illink/test/Trimming.Tests.Shared/AssemblyChecker.cs b/src/tools/illink/test/Trimming.Tests.Shared/AssemblyChecker.cs index be36e97e8967dc..eb4a0b0f2e53d9 100644 --- a/src/tools/illink/test/Trimming.Tests.Shared/AssemblyChecker.cs +++ b/src/tools/illink/test/Trimming.Tests.Shared/AssemblyChecker.cs @@ -5,7 +5,7 @@ namespace Mono.Linker.Tests.TestCasesRunner { - public partial class AssemblyChecker + internal partial class AssemblyChecker { static bool IsCompilerGeneratedMemberName (string memberName) { diff --git a/src/tools/illink/test/Trimming.Tests.Shared/ObjectFactory.cs b/src/tools/illink/test/Trimming.Tests.Shared/ObjectFactory.cs index ba479510264601..ee17d30d7e8e7c 100644 --- a/src/tools/illink/test/Trimming.Tests.Shared/ObjectFactory.cs +++ b/src/tools/illink/test/Trimming.Tests.Shared/ObjectFactory.cs @@ -6,7 +6,7 @@ namespace Mono.Linker.Tests.TestCasesRunner { - public class ObjectFactory + internal class ObjectFactory { public virtual TestCaseSandbox CreateSandbox (TestCase testCase) { diff --git a/src/tools/illink/test/Trimming.Tests.Shared/TestCaseSandbox.cs b/src/tools/illink/test/Trimming.Tests.Shared/TestCaseSandbox.cs index 74a0cf665c7e04..9d44c2ed12a0ac 100644 --- a/src/tools/illink/test/Trimming.Tests.Shared/TestCaseSandbox.cs +++ b/src/tools/illink/test/Trimming.Tests.Shared/TestCaseSandbox.cs @@ -10,7 +10,7 @@ namespace Mono.Linker.Tests.TestCasesRunner { - public partial class TestCaseSandbox + internal partial class TestCaseSandbox { protected readonly TestCase _testCase; protected readonly NPath _directory; diff --git a/src/tools/illink/test/Trimming.Tests.Shared/TestRunner.cs b/src/tools/illink/test/Trimming.Tests.Shared/TestRunner.cs index 64385463ac2b3e..30e0f63fbf29d0 100644 --- a/src/tools/illink/test/Trimming.Tests.Shared/TestRunner.cs +++ b/src/tools/illink/test/Trimming.Tests.Shared/TestRunner.cs @@ -12,7 +12,7 @@ namespace Mono.Linker.Tests.TestCasesRunner { - public partial class TestRunner + internal partial class TestRunner { private readonly ObjectFactory _factory; diff --git a/src/tools/illink/test/Trimming.Tests.Shared/TrimmedTestCaseResult.cs b/src/tools/illink/test/Trimming.Tests.Shared/TrimmedTestCaseResult.cs index 677e1794099d4f..6644ac8a940515 100644 --- a/src/tools/illink/test/Trimming.Tests.Shared/TrimmedTestCaseResult.cs +++ b/src/tools/illink/test/Trimming.Tests.Shared/TrimmedTestCaseResult.cs @@ -8,7 +8,7 @@ namespace Mono.Linker.Tests.TestCasesRunner { - public partial class TrimmedTestCaseResult + internal partial class TrimmedTestCaseResult { public readonly TestCase TestCase; public readonly NPath InputAssemblyPath; From dc9251254bd152b911c72d7d4e8450c3e85bc9d5 Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Wed, 13 Mar 2024 20:50:47 +0000 Subject: [PATCH 12/15] Fix tests --- .../Extensibility/Dependencies/PreserveMethodsSubStep.cs | 8 +++----- .../Extensibility/Dependencies/ResolveTypesSubStep.cs | 8 +++----- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/tools/illink/test/Mono.Linker.Tests.Cases/Extensibility/Dependencies/PreserveMethodsSubStep.cs b/src/tools/illink/test/Mono.Linker.Tests.Cases/Extensibility/Dependencies/PreserveMethodsSubStep.cs index f67df3119724e4..afc73bc590e462 100644 --- a/src/tools/illink/test/Mono.Linker.Tests.Cases/Extensibility/Dependencies/PreserveMethodsSubStep.cs +++ b/src/tools/illink/test/Mono.Linker.Tests.Cases/Extensibility/Dependencies/PreserveMethodsSubStep.cs @@ -5,12 +5,10 @@ class PreserveMethodsSubStep : BaseStep { - protected override void Process () + protected override void ProcessAssembly (AssemblyDefinition assembly) { - foreach (var assembly in Context.GetAssemblies ()) { - foreach (var type in assembly.MainModule.Types) - ProcessType (type); - } + foreach (var type in assembly.MainModule.Types) + ProcessType (type); } void ProcessType (TypeDefinition type) diff --git a/src/tools/illink/test/Mono.Linker.Tests.Cases/Extensibility/Dependencies/ResolveTypesSubStep.cs b/src/tools/illink/test/Mono.Linker.Tests.Cases/Extensibility/Dependencies/ResolveTypesSubStep.cs index 9327d2152dee1a..dd14ec492f7633 100644 --- a/src/tools/illink/test/Mono.Linker.Tests.Cases/Extensibility/Dependencies/ResolveTypesSubStep.cs +++ b/src/tools/illink/test/Mono.Linker.Tests.Cases/Extensibility/Dependencies/ResolveTypesSubStep.cs @@ -5,12 +5,10 @@ class ResolveTypesSubStep : BaseStep { - protected override void Process () + protected override void ProcessAssembly (AssemblyDefinition assembly) { - foreach (var assembly in Context.GetAssemblies ()) { - foreach (var type in assembly.MainModule.Types) - ProcessType (type); - } + foreach (var type in assembly.MainModule.Types) + ProcessType (type); } void ProcessType (TypeDefinition type) From 9bb8cf3cb3029a3bc1cb416ac601245e001dda20 Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Thu, 21 Mar 2024 23:13:38 +0000 Subject: [PATCH 13/15] Fix ILLink.Tasks test build --- src/tools/illink/src/linker/Mono.Linker.csproj | 1 + 1 file changed, 1 insertion(+) diff --git a/src/tools/illink/src/linker/Mono.Linker.csproj b/src/tools/illink/src/linker/Mono.Linker.csproj index 27bc28d15d286f..78450483c501b8 100644 --- a/src/tools/illink/src/linker/Mono.Linker.csproj +++ b/src/tools/illink/src/linker/Mono.Linker.csproj @@ -74,6 +74,7 @@ + From f82baa757430b9c18784932dc8da0b32f22921b6 Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Fri, 22 Mar 2024 16:59:10 +0000 Subject: [PATCH 14/15] Actually fix it --- src/tools/illink/src/linker/Linker/Driver.cs | 2 +- src/tools/illink/test/ILLink.Tasks.Tests/Mock.cs | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/tools/illink/src/linker/Linker/Driver.cs b/src/tools/illink/src/linker/Linker/Driver.cs index f4c3bf3d893949..f50165d55f695e 100644 --- a/src/tools/illink/src/linker/Linker/Driver.cs +++ b/src/tools/illink/src/linker/Linker/Driver.cs @@ -187,7 +187,7 @@ internal enum DependenciesFileFormat // 0 => successfully set up context with all arguments // 1 => argument processing stopped early without errors // -1 => error setting up context - int SetupContext (ILogger? customLogger = null) + protected int SetupContext (ILogger? customLogger = null) { Pipeline p = GetStandardPipeline (); context = GetDefaultContext (p, customLogger); diff --git a/src/tools/illink/test/ILLink.Tasks.Tests/Mock.cs b/src/tools/illink/test/ILLink.Tasks.Tests/Mock.cs index 979d62b1448ac4..abcf76d8217db2 100644 --- a/src/tools/illink/test/ILLink.Tasks.Tests/Mock.cs +++ b/src/tools/illink/test/ILLink.Tasks.Tests/Mock.cs @@ -13,7 +13,7 @@ namespace ILLink.Tasks.Tests { - public class MockTask : ILLink + internal class MockTask : ILLink { public List<(MessageImportance Importance, string Line)> Messages { get; } = new List<(MessageImportance Importance, string Line)> (); @@ -82,7 +82,7 @@ public void LogCustomEvent (CustomBuildEventArgs e) { } public string ProjectFileOfTaskNode => null; } - public class MockDriver : Driver + internal class MockDriver : Driver { public class CustomLogger : Mono.Linker.ILogger { @@ -183,7 +183,7 @@ protected override List CreateDefaultResolvers () } } - public class MockXmlDependencyRecorder : IDependencyRecorder + internal class MockXmlDependencyRecorder : IDependencyRecorder { public static MockXmlDependencyRecorder Singleton { get; } = new MockXmlDependencyRecorder (); public void RecordDependency (object source, object arget, bool marked) { } @@ -191,7 +191,7 @@ public void RecordDependency (object target, in DependencyInfo reason, bool mark public void FinishRecording () { } } - public class MockDgmlDependencyRecorder : IDependencyRecorder + internal class MockDgmlDependencyRecorder : IDependencyRecorder { public static MockXmlDependencyRecorder Singleton { get; } = new MockXmlDependencyRecorder (); public void RecordDependency (object source, object arget, bool marked) { } From d8515153e427d9869ea6b14cc24031c8e3d29507 Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Wed, 22 May 2024 23:36:11 +0000 Subject: [PATCH 15/15] Fix build --- .../src/linker/Linker.Steps/MarkStep.MethodDefinitionNode.cs | 2 +- .../illink/src/linker/Linker.Steps/MarkStep.NodeFactory.cs | 2 +- .../src/linker/Linker.Steps/MarkStep.ProcessCallbackNode.cs | 2 +- .../src/linker/Linker.Steps/MarkStep.PropertyDefinitionNode.cs | 2 +- .../src/linker/Linker.Steps/MarkStep.TypeDefinitionNode.cs | 2 +- .../Linker.Steps/MarkStep.TypeIsRelevantToVariantCastingNode.cs | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/tools/illink/src/linker/Linker.Steps/MarkStep.MethodDefinitionNode.cs b/src/tools/illink/src/linker/Linker.Steps/MarkStep.MethodDefinitionNode.cs index 34dd6e8a8d03e4..2daf4e59e350b9 100644 --- a/src/tools/illink/src/linker/Linker.Steps/MarkStep.MethodDefinitionNode.cs +++ b/src/tools/illink/src/linker/Linker.Steps/MarkStep.MethodDefinitionNode.cs @@ -8,7 +8,7 @@ namespace Mono.Linker.Steps { - public partial class MarkStep + internal partial class MarkStep { internal sealed class MethodDefinitionNode : DependencyNodeCore { diff --git a/src/tools/illink/src/linker/Linker.Steps/MarkStep.NodeFactory.cs b/src/tools/illink/src/linker/Linker.Steps/MarkStep.NodeFactory.cs index 61d1e806209f43..bfdd402d2c4deb 100644 --- a/src/tools/illink/src/linker/Linker.Steps/MarkStep.NodeFactory.cs +++ b/src/tools/illink/src/linker/Linker.Steps/MarkStep.NodeFactory.cs @@ -8,7 +8,7 @@ namespace Mono.Linker.Steps { - public partial class MarkStep + internal partial class MarkStep { internal sealed class NodeFactory (MarkStep markStep) { diff --git a/src/tools/illink/src/linker/Linker.Steps/MarkStep.ProcessCallbackNode.cs b/src/tools/illink/src/linker/Linker.Steps/MarkStep.ProcessCallbackNode.cs index 9fe4821f44381c..69a6b3a402e7af 100644 --- a/src/tools/illink/src/linker/Linker.Steps/MarkStep.ProcessCallbackNode.cs +++ b/src/tools/illink/src/linker/Linker.Steps/MarkStep.ProcessCallbackNode.cs @@ -7,7 +7,7 @@ namespace Mono.Linker.Steps { - public partial class MarkStep + internal partial class MarkStep { sealed class ProcessCallbackNode : DependencyNodeCore { diff --git a/src/tools/illink/src/linker/Linker.Steps/MarkStep.PropertyDefinitionNode.cs b/src/tools/illink/src/linker/Linker.Steps/MarkStep.PropertyDefinitionNode.cs index 68e86ba7edca25..8a1591d64a4e59 100644 --- a/src/tools/illink/src/linker/Linker.Steps/MarkStep.PropertyDefinitionNode.cs +++ b/src/tools/illink/src/linker/Linker.Steps/MarkStep.PropertyDefinitionNode.cs @@ -8,7 +8,7 @@ namespace Mono.Linker.Steps { - public partial class MarkStep + internal partial class MarkStep { internal sealed class PropertyDefinitionNode : DependencyNodeCore { diff --git a/src/tools/illink/src/linker/Linker.Steps/MarkStep.TypeDefinitionNode.cs b/src/tools/illink/src/linker/Linker.Steps/MarkStep.TypeDefinitionNode.cs index d26467930afce0..dbb8e71598da77 100644 --- a/src/tools/illink/src/linker/Linker.Steps/MarkStep.TypeDefinitionNode.cs +++ b/src/tools/illink/src/linker/Linker.Steps/MarkStep.TypeDefinitionNode.cs @@ -7,7 +7,7 @@ namespace Mono.Linker.Steps { - public partial class MarkStep + internal partial class MarkStep { internal sealed class TypeDefinitionNode : DependencyNodeCore { diff --git a/src/tools/illink/src/linker/Linker.Steps/MarkStep.TypeIsRelevantToVariantCastingNode.cs b/src/tools/illink/src/linker/Linker.Steps/MarkStep.TypeIsRelevantToVariantCastingNode.cs index 00f790b5d9d472..a2cd17bc785bcb 100644 --- a/src/tools/illink/src/linker/Linker.Steps/MarkStep.TypeIsRelevantToVariantCastingNode.cs +++ b/src/tools/illink/src/linker/Linker.Steps/MarkStep.TypeIsRelevantToVariantCastingNode.cs @@ -7,7 +7,7 @@ namespace Mono.Linker.Steps { - public partial class MarkStep + internal partial class MarkStep { internal sealed class TypeIsRelevantToVariantCastingNode : DependencyNodeCore {