Linker.Steps\MarkStep.cs (124)
333 using MarkScopeStack.LocalScope? _ = ScopeStack.CurrentScope.Origin.Provider == null ? ScopeStack.PushLocalScope (new MessageOrigin (type)) : null;
343 MarkTypeVisibleToReflection (type, type, reason, ScopeStack.CurrentScope.Origin);
356 MarkFieldVisibleToReflection (field, new DependencyInfo (DependencyKind.MemberOfType, type), ScopeStack.CurrentScope.Origin);
364 MarkMethodVisibleToReflection (method, new DependencyInfo (DependencyKind.MemberOfType, type), ScopeStack.CurrentScope.Origin);
370 MarkPropertyVisibleToReflection (property, new DependencyInfo (DependencyKind.MemberOfType, type), ScopeStack.CurrentScope.Origin);
376 MarkEventVisibleToReflection (ev, new DependencyInfo (DependencyKind.MemberOfType, ScopeStack.CurrentScope.Origin), ScopeStack.CurrentScope.Origin);
431 using var localScope = ScopeStack.PushLocalScope (new MessageOrigin ((ICustomAttributeProvider?) null));
468 using var emptyScope = ScopeStack.PushLocalScope (new MessageOrigin (null as ICustomAttributeProvider));
478 using var localScope = ScopeStack.PushLocalScope (pending.Value);
485 MarkMethod (method, DependencyInfo.AlreadyMarked, ScopeStack.CurrentScope.Origin);
489 MarkField (field, DependencyInfo.AlreadyMarked, ScopeStack.CurrentScope.Origin);
534 using (ScopeStack.PushLocalScope (scope)) {
557 using (ScopeStack.PushLocalScope (scope)) {
569 MarkMethodAsVirtual (ov.Base, ScopeStack.CurrentScope);
645 using (ScopeStack.PushLocalScope (scope))
669 MarkMethod (dimInfo.Override, new DependencyInfo (DependencyKind.Override, dimInfo.Base), ScopeStack.CurrentScope.Origin);
677 MarkMethod (ov.Override, new DependencyInfo (DependencyKind.Override, ov.Base), ScopeStack.CurrentScope.Origin);
721 MarkMethod (overrideInformation.Override, new DependencyInfo (DependencyKind.OverrideOnInstantiatedType, overrideInformation.Override.DeclaringType), ScopeStack.CurrentScope.Origin);
725 MarkMethod (overrideInformation.Override, new DependencyInfo (DependencyKind.Override, overrideInformation.Base), ScopeStack.CurrentScope.Origin);
819 _lateMarkedAttributes.Enqueue ((new AttributeProviderPair (ca, provider), reason, ScopeStack.CurrentScope));
839 using (ScopeStack.PushLocalScope (new MessageOrigin (providerMember)))
898 Context.LogWarning (ScopeStack.CurrentScope.Origin, DiagnosticId.UnresolvedAssemblyInDynamicDependencyAttribute, dynamicDependency.AssemblyName);
910 Context.LogWarning (ScopeStack.CurrentScope.Origin, DiagnosticId.UnresolvedTypeInDynamicDependencyAttribute, typeName);
914 MarkingHelpers.MarkMatchingExportedType (type, assembly, new DependencyInfo (DependencyKind.DynamicDependency, type), ScopeStack.CurrentScope.Origin);
918 Context.LogWarning (ScopeStack.CurrentScope.Origin, DiagnosticId.UnresolvedTypeInDynamicDependencyAttribute, typeReference.GetDisplayName ());
933 Context.LogWarning (ScopeStack.CurrentScope.Origin, DiagnosticId.NoMembersResolvedForMemberSignatureOrType, memberSignature, type.GetDisplayName ());
940 Context.LogWarning (ScopeStack.CurrentScope.Origin, DiagnosticId.NoMembersResolvedForMemberSignatureOrType, memberTypes.ToString (), type.GetDisplayName ());
953 MarkTypeVisibleToReflection (type, type, reason, ScopeStack.CurrentScope.Origin);
956 MarkMethodVisibleToReflection (method, reason, ScopeStack.CurrentScope.Origin);
959 MarkFieldVisibleToReflection (field, reason, ScopeStack.CurrentScope.Origin);
962 MarkPropertyVisibleToReflection (property, reason, ScopeStack.CurrentScope.Origin);
965 MarkEventVisibleToReflection (@event, reason, ScopeStack.CurrentScope.Origin);
1008 MarkingHelpers.MarkMatchingExportedType (td, assemblyDef, new DependencyInfo (DependencyKind.PreservedDependency, ca), ScopeStack.CurrentScope.Origin);
1063 MarkMethodVisibleToReflection (m, reason, ScopeStack.CurrentScope.Origin);
1082 MarkMethodVisibleToReflection (m, reason, ScopeStack.CurrentScope.Origin);
1103 MarkMethod (ca.Constructor, new DependencyInfo (DependencyKind.AttributeConstructor, ca), ScopeStack.CurrentScope.Origin);
1239 MarkMethod (property.SetMethod, reason, ScopeStack.CurrentScope.Origin);
1244 var scanner = new AttributeDataFlow (Context, this, ScopeStack.CurrentScope.Origin);
1276 MarkField (field, new DependencyInfo (DependencyKind.CustomAttributeField, ca), ScopeStack.CurrentScope.Origin);
1281 var scanner = new AttributeDataFlow (Context, this, ScopeStack.CurrentScope.Origin);
1324 var scanner = new AttributeDataFlow (Context, this, ScopeStack.CurrentScope.Origin);
1371 Annotations.Mark (assembly, reason, ScopeStack.CurrentScope.Origin);
1375 using var assemblyScope = ScopeStack.PushLocalScope (new MessageOrigin (assembly));
1505 using var assemblyScope = ScopeStack.PushLocalScope (new MessageOrigin (assembly));
1572 using (ScopeStack.PushLocalScope (scope)) {
1753 using var fieldScope = ScopeStack.PushLocalScope (new MessageOrigin (field));
1784 MarkStaticConstructor (parent, cctorReason, ScopeStack.CurrentScope.Origin);
1813 if (origin.Provider != ScopeStack.CurrentScope.Origin.Provider) {
1878 Annotations.Mark (module, reason, ScopeStack.CurrentScope.Origin);
1895 MarkMethodsIf (type.Methods, IsSpecialSerializationConstructor, new DependencyInfo (DependencyKind.SerializationMethodForType, type), ScopeStack.CurrentScope.Origin);
1898 MarkMethodsIf (type.Methods, HasOnSerializeOrDeserializeAttribute, new DependencyInfo (DependencyKind.SerializationMethodForType, type), ScopeStack.CurrentScope.Origin);
1973 using MarkScopeStack.LocalScope? localScope = origin.HasValue ? ScopeStack.PushLocalScope (origin.Value) : null;
1994 Annotations.Mark (type, reason, ScopeStack.CurrentScope.Origin);
2000 MarkStaticConstructor (type, new DependencyInfo (DependencyKind.TriggersCctorForCalledMethod, reason.Source), ScopeStack.CurrentScope.Origin);
2010 Context.LogWarning (ScopeStack.CurrentScope.Origin, DiagnosticId.AttributeIsReferencedButTrimmerRemoveAllInstances, type.GetDisplayName ());
2025 using var typeScope = ScopeStack.PushLocalScope (new MessageOrigin (type));
2046 var currentOrigin = ScopeStack.CurrentScope.Origin;
2059 MarkMethodIf (type.Methods, static m => m.Name == "Finalize", new DependencyInfo (DependencyKind.MethodForSpecialType, type), ScopeStack.CurrentScope.Origin);
2101 _typesWithInterfaces.Add ((type, ScopeStack.CurrentScope));
2109 MarkMethod (method, new DependencyInfo (DependencyKind.VirtualNeededDueToPreservedScope, type), ScopeStack.CurrentScope.Origin);
2113 MarkStaticConstructor (type, new DependencyInfo (DependencyKind.CctorForType, type), ScopeStack.CurrentScope.Origin);
2208 if (MarkMethodsIf (type.Methods, MethodDefinitionExtensions.IsPublicInstancePropertyMethod, new DependencyInfo (DependencyKind.ReferencedBySpecialAttribute, type), ScopeStack.CurrentScope.Origin))
2288 MarkMethod (method, new DependencyInfo (DependencyKind.ReferencedBySpecialAttribute, attribute), ScopeStack.CurrentScope.Origin);
2294 MarkField (field, new DependencyInfo (DependencyKind.ReferencedBySpecialAttribute, attribute), ScopeStack.CurrentScope.Origin);
2301 MarkMethod (property.GetMethod, new DependencyInfo (DependencyKind.ReferencedBySpecialAttribute, attribute), ScopeStack.CurrentScope.Origin);
2304 MarkMethod (property.SetMethod, new DependencyInfo (DependencyKind.ReferencedBySpecialAttribute, attribute), ScopeStack.CurrentScope.Origin);
2370 MarkMethod (method, reason, ScopeStack.CurrentScope.Origin);
2395 MarkField (field, reason, ScopeStack.CurrentScope.Origin);
2411 using (ScopeStack.PushLocalScope (new MessageOrigin (property))) {
2413 MarkMethod (property.GetMethod, reason, ScopeStack.CurrentScope.Origin);
2414 MarkMethod (property.SetMethod, reason, ScopeStack.CurrentScope.Origin);
2600 return MarkMethodIf (type.Methods, MethodDefinitionExtensions.IsDefaultConstructor, reason, ScopeStack.CurrentScope.Origin) != null;
2615 ScopeStack.CurrentScope.Origin);
2639 MarkMethodsIf (tdef.Methods, m => !m.IsStatic, reason, ScopeStack.CurrentScope.Origin);
2709 MarkMethodsIf (type.Methods, m => m.Name == ".ctor" || m.Name == "Invoke", new DependencyInfo (DependencyKind.MethodForSpecialType, type), ScopeStack.CurrentScope.Origin);
2770 var argumentTypeDef = MarkType (argument, new DependencyInfo (DependencyKind.GenericArgumentType, instance), ScopeStack.CurrentScope.Origin);
2776 using MarkScopeStack.LocalScope? _ = ScopeStack.CurrentScope.Origin.Provider == null ? ScopeStack.PushLocalScope (new MessageOrigin (((MemberReference) instance).Resolve ())) : null;
2777 var scanner = new GenericArgumentDataFlow (Context, this, ScopeStack.CurrentScope.Origin);
2804 using var typeScope = ScopeStack.PushLocalScope (new MessageOrigin (type));
2835 MarkMethod (m, di, ScopeStack.CurrentScope.Origin);
2840 MarkMethod (m, di, ScopeStack.CurrentScope.Origin);
2846 MarkMethod (m, di, ScopeStack.CurrentScope.Origin);
2856 MarkField (f, di, ScopeStack.CurrentScope.Origin);
2861 MarkField (f, di, ScopeStack.CurrentScope.Origin);
2930 MarkField (field, reason, ScopeStack.CurrentScope.Origin);
2959 MarkField (field, reason, ScopeStack.CurrentScope.Origin);
2975 MarkMethod (method, reason, ScopeStack.CurrentScope.Origin);
3066 if (origin.Provider != ScopeStack.CurrentScope.Origin.Provider) {
3175 ScopeStack.AssertIsEmpty ();
3176 using var methodScope = ScopeStack.PushLocalScope (new MessageOrigin (method));
3197 Context.LogWarning (ScopeStack.CurrentScope.Origin, DiagnosticId.RequiresUnreferencedCodeOnStaticConstructor, method.GetDisplayName ());
3230 MarkMethod (@base, new DependencyInfo (DependencyKind.MethodImplOverride, method), ScopeStack.CurrentScope.Origin);
3238 MarkMethodAsVirtual (method, ScopeStack.CurrentScope);
3275 MarkMethodIf (declaringType.Methods, m => m.Name == methodPair, new DependencyInfo (DependencyKind.MethodForSpecialType, declaringType), ScopeStack.CurrentScope.Origin);
3333 using var typeScope = ScopeStack.PushLocalScope (new MessageOrigin (type));
3378 throw new LinkerFatalErrorException (MessageContainer.CreateErrorMessage (ScopeStack.CurrentScope.Origin, DiagnosticId.CannotStubConstructorWhenBaseTypeDoesNotHaveConstructor, method.DeclaringType.GetDisplayName ()));
3399 var nseCtor = MarkMethodIf (nse.Methods, KnownMembers.IsNotSupportedExceptionCtorString, reason, ScopeStack.CurrentScope.Origin);
3409 var objectCtor = MarkMethodIf (objectType.Methods, MethodDefinitionExtensions.IsDefaultConstructor, reason, ScopeStack.CurrentScope.Origin);
3423 using (ScopeStack.PushLocalScope (new MessageOrigin (null as ICustomAttributeProvider))) {
3426 var ctor = MarkMethodIf (disablePrivateReflection.Methods, MethodDefinitionExtensions.IsDefaultConstructor, new DependencyInfo (DependencyKind.DisablePrivateReflectionRequirement, disablePrivateReflection), ScopeStack.CurrentScope.Origin);
3446 MarkMethodAsVirtual (ov.Base, ScopeStack.CurrentScope);
3450 MarkMethod (ov.Base, new DependencyInfo (DependencyKind.BaseMethod, method), ScopeStack.CurrentScope.Origin);
3543 using var propertyScope = ScopeStack.PushLocalScope (new MessageOrigin (prop));
3555 var origin = reason.Source is IMemberDefinition member ? new MessageOrigin (member) : ScopeStack.CurrentScope.Origin;
3561 using var eventScope = ScopeStack.PushLocalScope (new MessageOrigin (evt));
3581 _unreachableBodies.Add ((body, ScopeStack.CurrentScope));
3654 using var _ = ScopeStack.PushLocalScope (new MessageOrigin (methodIL.Method));
3714 ScopeStack.UpdateCurrentScopeInstructionOffset (instruction.Offset);
3715 MarkField ((FieldReference) instruction.Operand, new DependencyInfo (DependencyKind.FieldAccess, method), ScopeStack.CurrentScope.Origin);
3734 ScopeStack.UpdateCurrentScopeInstructionOffset (instruction.Offset);
3736 MarkMethodVisibleToReflection (methodReference, new DependencyInfo (dependencyKind, method), ScopeStack.CurrentScope.Origin);
3738 MarkMethod (methodReference, new DependencyInfo (dependencyKind, method), ScopeStack.CurrentScope.Origin);
3747 ScopeStack.UpdateCurrentScopeInstructionOffset (instruction.Offset);
3752 MarkTypeVisibleToReflection (typeReference, type, reason, ScopeStack.CurrentScope.Origin);
3754 MarkMethodVisibleToReflection (methodReference, reason, ScopeStack.CurrentScope.Origin);
3756 MarkFieldVisibleToReflection ((FieldReference) token, reason, ScopeStack.CurrentScope.Origin);
3791 ScopeStack.UpdateCurrentScopeInstructionOffset (instruction.Offset);
3808 Annotations.MarkProcessed (iface, reason ?? new DependencyInfo (DependencyKind.InterfaceImplementationOnType, ScopeStack.CurrentScope.Origin.Provider));
3810 using MarkScopeStack.LocalScope? localScope = origin.HasValue ? ScopeStack.PushLocalScope (origin.Value) : null;
3858 Debug.Assert (ScopeStack.CurrentScope.Origin.Provider == methodIL.Method);
3859 var scanner = new ReflectionMethodBodyScanner (Context, this, ScopeStack.CurrentScope.Origin);