Skip to content

Commit

Permalink
Merge branch 'main' into dev/rolf/enum-formatting
Browse files Browse the repository at this point in the history
  • Loading branch information
rolfbjarne authored Jan 10, 2025
2 parents 29ceefc + b5b41b1 commit 89bb3dc
Show file tree
Hide file tree
Showing 174 changed files with 2,008 additions and 724 deletions.
5 changes: 5 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
# EditorConfig is awesome: https://editorconfig.org

# top-most EditorConfig file
root = true

[*.{props,targets}]
indent_style = tab
indent_size = 4
Expand Down
51 changes: 35 additions & 16 deletions docs/api/UIKit/UIAlertView.xml
Original file line number Diff line number Diff line change
@@ -1,36 +1,55 @@
<Documentation>
<Docs DocId="T:UIKit.UIAlertView">
<summary>A <see cref="T:UIKit.UIView" /> that displays a dialog message with one or more buttons. (As of iOS 8, devs should use <see cref="T:UIKit.UIAlertController" /> rather than this class.)</summary>
<summary>
A <see cref="UIView" /> that displays a dialog message with one or more buttons.
(As of iOS 8, devs should use <see cref="UIAlertController" /> rather than this class.)
</summary>
<remarks>
<para>As of iOS 8, app devs should use <see cref="T:UIKit.UIAlertController" /> rather than this class. Extensions may not use this class at all.</para>
<para>
The <see cref="T:UIKit.UIAlertView" /> allows the application user to choose among alternative actions. The following code and image, taken from the "AlertViews" section of the "ios Standard Controls" sample illustrates the simplest use-case:
As of iOS 8, app devs should use <see cref="UIAlertController" /> rather than this class.
Extensions may not use this class at all.
</para>
<para>
The <see cref="UIAlertView" /> allows the application user to choose among alternative actions.
The following code and image, taken from the "AlertViews" section of the "ios Standard Controls"
sample illustrates the simplest use-case:
</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
UIAlertView alert = new UIAlertView () {
Title = "alert title", Message = "this is a simple alert"
var alert = new UIAlertView () {
Title = "alert title",
Message = "this is a simple alert"
};
alert.AddButton("OK");
alert.AddButton ("OK");
alert.Show ();
]]></code>
</example>
<para>
<img href="~/UIKit/_images/UIKit.UIAlertView.png" alt="Screenshot showing the alert view" />
An alternative to the <see cref="UIAlertView" /> is the <see cref="UIActionSheet" />.
</para>
<para>An alternative to the <see cref="T:UIKit.UIAlertView" /> is the <see cref="T:UIKit.UIActionSheet" />.</para>
<para>The application developer can use <see cref="T:UIKit.UIAlertViewStyle" />s such as <see cref="F:UIKit.UIAlertViewStyle.PlainTextInput" /> or <see cref="F:UIKit.UIAlertViewStyle.LoginAndPasswordInput" /> to allow the application user to enter values.</para>
<para>
The Xamarin API supports two styles of event notification: the Objective-C style that uses a delegate class or the C# style using event notifications.
</para>
The application developer can use <see cref="UIAlertViewStyle" />s such as <see cref="UIAlertViewStyle.PlainTextInput" />
or <see cref="UIAlertViewStyle.LoginAndPasswordInput" /> to allow the application user to enter values.
</para>
<para>
The managed API supports two styles of event notification: the Objective-C style that uses a delegate class or the C# style using event notifications.
</para>
<para>
The C# style allows the user to add or remove event handlers at runtime by assigning to the events of properties of this class. Event handlers can be anyone of a method, an anonymous methods or a lambda expression. Using the C# style events or properties will override any manual settings to the Objective-C Delegate or WeakDelegate settings.
</para>
<para>The Objective-C style requires the user to create a new class derived from <see cref="T:UIKit.UIAlertViewDelegate" /> class and assign it to the <format type="text/html"><a href="https://docs.microsoft.com/en-us/search/index?search=UIKit%20Delegate&amp;scope=Xamarin" title="P:UIKit.Delegate">P:UIKit.Delegate</a></format> property. Alternatively, for low-level control, by creating a class derived from <see cref="T:Foundation.NSObject" /> which has every entry point properly decorated with an [Export] attribute. The instance of this object can then be assigned to the <see cref="P:UIKit.UIAlertView.WeakDelegate" /> property.
The C# style allows the user to add or remove event handlers at runtime by assigning to the
events of properties of this class. Event handlers can be anyone of a method, an anonymous method
or a lambda expression. Using the C# style events or properties will override any manual settings
to the Objective-C Delegate or WeakDelegate settings.
</para>
<block subset="none" type="overrides">
<para>
The Objective-C style requires the user to create a new class derived from <see cref="UIAlertViewDelegate" />
class and assign it to the <see cref="Delegate" /> property. Alternatively, for low-level control, by creating
a class derived from <see cref="NSObject" /> which has every entry point properly decorated with an
<see cref="ExportAttribute" /> attribute and assigning an instance of this class to the <see cref="WeakDelegate" />
property.
</para>
<para>
<para>This class should not be subclassed.</para>
</block>
</para>
</remarks>
<related type="externalDocumentation" href="https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIAlertView_Class/index.html">Apple documentation for <c>UIAlertView</c></related>
</Docs>
Expand Down
22 changes: 16 additions & 6 deletions docs/api/UIKit/UIDocument.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,24 @@
<Docs DocId="T:UIKit.UIDocument">
<summary>Abstract base class providing local and cloud-based management of Model data.</summary>
<remarks>
<para>Application developers can subclass <see cref="T:UIKit.UIDocument" /> to create objects that are "Model-Controllers" and relate to Model (domain) objects analogously to how <see cref="T:UIKit.UIViewController" /> relate to <see cref="T:UIKit.UIView" />s. iOS provides a number of functions, including background asynchronous reading and writing of application data, automatic and safe data-saving, storage that is automatically coordinated between the application sandbox and cloud services, etc.</para>
<block subset="none" type="inheritors">
<para>At a minimum, application developers need to implement <see cref="M:UIKit.UIDocument.ContentsForType(System.String,Foundation.NSError@)" /> (for storage) and <see cref="M:UIKit.UIDocument.LoadFromContents(Foundation.NSObject,System.String,Foundation.NSError@)" /> (for retrieval). Additionally, application developers need to manage the lifecyle of the <see cref="T:UIKit.UIDocument" /> and this requires the application developer to set the preferred storage location, create a file URL, and discover, open, and close the file. Application developers should also track changes and resolve conflicts between document versions.</para>
</block>
<para tool="threads">The members of this class can be used from a background thread.</para>
<para>
Application developers can subclass <see cref="UIDocument" /> to create objects that are "Model-Controllers" and
relate to Model (domain) objects analogously to how <see cref="UIViewController" /> relate to <see cref="UIView" />s.
UIKit provides a number of functions, including background asynchronous reading and writing of application data,
automatic and safe data-saving, storage that is automatically coordinated between the application sandbox and cloud services, etc.
</para>
<para>
At a minimum, application developers need to implement <see cref="ContentsForType(string,out NSError)" /> (for storage) and
<see cref="LoadFromContents(NSObject,string,out NSError)" /> (for retrieval). Additionally, application developers need to
manage the lifecyle of the <see cref="UIDocument" /> and this requires the application developer to set the preferred storage
location, create a file URL, and discover, open, and close the file. Application developers should also track changes and resolve
conflicts between document versions.
</para>
<para>
The members of this class can be used from a background thread.
</para>
</remarks>
<related type="article" href="https://github.com/conceptdev/taskcloud">TaskCloud</related>

<related type="externalDocumentation" href="https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIDocument_Class/index.html">Apple documentation for <c>UIDocument</c></related>
</Docs>
</Documentation>
2 changes: 2 additions & 0 deletions src/Foundation/XpcInterfaceAttribute.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,14 @@
using ObjCRuntime;

namespace Foundation {
#if !COREBUILD
/// <summary>
/// Specifies that the decorated interface (which must also be
/// decorated with <see cref="ProtocolAttribute" />) is intended
/// to be used with <see cref="NSXpcInterface" />. This enables
/// mmp optimizations required for the XPC subsystem to work properly.
/// </summary>
#endif
[AttributeUsage (AttributeTargets.Interface)]
public sealed class XpcInterfaceAttribute : Attribute {
public XpcInterfaceAttribute () { }
Expand Down
81 changes: 62 additions & 19 deletions src/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ IOS_DOTNET_BUILD_DIR=$(DOTNET_BUILD_DIR)/ios
TVOS_DOTNET_BUILD_DIR=$(DOTNET_BUILD_DIR)/tvos
MACCATALYST_DOTNET_BUILD_DIR=$(DOTNET_BUILD_DIR)/maccatalyst

GENERATOR_FLAGS=-process-enums -core -nologo -nostdlib -noconfig -native-exception-marshalling --ns:ObjCRuntime
GENERATOR_FLAGS=-process-enums -core -nologo -nostdlib -native-exception-marshalling --ns:ObjCRuntime

GENERATOR_TF_VERSION=$(subst net,,$(DOTNET_TFM))

Expand Down Expand Up @@ -56,7 +56,7 @@ DOTNET_REFERENCES = \
/r:$(DOTNET_BCL_DIR)/System.Xml.ReaderWriter.dll \

DOTNET_OR_GREATER_DEFINES:=$(foreach version,$(shell seq 6 $(firstword $(subst ., ,$(subst net,,$(DOTNET_TFM))))),/define:NET$(version)_0_OR_GREATER)
DOTNET_FLAGS=/warnaserror+ /noconfig /nostdlib+ /deterministic /features:strict /nologo /target:library /debug /unsafe /define:NET /define:NET_TODO $(DOTNET_OR_GREATER_DEFINES) $(DOTNET_REFERENCES)
DOTNET_FLAGS=/warnaserror+ /nostdlib+ /deterministic /features:strict /nologo /target:library /debug /unsafe /define:NET /define:NET_TODO $(DOTNET_OR_GREATER_DEFINES) $(DOTNET_REFERENCES)

ifeq ($(XCODE_IS_STABLE),true)
DOTNET_FLAGS+=/define:XCODE_IS_STABLE
Expand Down Expand Up @@ -135,7 +135,8 @@ IOS_DOTNET_CORE_SOURCES += $(IOS_DOTNET_EXTRA_SOURCES)

IOS_DOTNET_SOURCES += $(IOS_DOTNET_EXTRA_SOURCES) $(IOS_DOTNET_HTTP_SOURCES)

IOS_GENERATOR_FLAGS = -inline-selectors -d:IOS -process-enums $(IOS_GENERATOR_WARNASERROR)
IOS_GENERATOR_DEFINES = -d:IOS
IOS_GENERATOR_FLAGS = -inline-selectors -process-enums $(IOS_GENERATOR_WARNASERROR) $(IOS_GENERATOR_DEFINES)
IOS_DEFINES = -define:IPHONE -define:IOS -define:MONOTOUCH -d:__IOS__ -d:SYSTEM_NET_HTTP

IOS_CORE_DEFINES=-define:COREBUILD $(IOS_DEFINES)
Expand Down Expand Up @@ -168,7 +169,8 @@ $(IOS_DOTNET_BUILD_DIR)/AssemblyInfo.cs: $(TOP)/src/AssemblyInfo.cs.in | $(IOS_D
#

MAC_COMMON_DEFINES = -define:MONOMAC -d:__MACOS__
MACOS_GENERATOR_FLAGS = -d:MONOMAC -d:__MACOS__
MACOS_GENERATOR_DEFINES = -d:MONOMAC -d:__MACOS__
MACOS_GENERATOR_FLAGS = $(MACOS_GENERATOR_DEFINES)
MACOS_CORE_DEFINES = $(MAC_COMMON_DEFINES),COREBUILD
MACOS_DEFINES = $(MAC_COMMON_DEFINES) -D:XAMARIN_MODERN

Expand Down Expand Up @@ -234,7 +236,8 @@ $(MACOS_DOTNET_BUILD_DIR)/AssemblyInfo.cs: $(TOP)/src/AssemblyInfo.cs.in | $(MAC
TVOS_DEFINES = -define:IPHONE -define:MONOTOUCH -d:TVOS -d:__TVOS__ -d:SYSTEM_NET_HTTP

TVOS_CORE_DEFINES=$(TVOS_DEFINES) -d:COREBUILD
TVOS_GENERATOR_FLAGS = -d:TVOS -inline-selectors
TVOS_GENERATOR_DEFINES = -d:TVOS
TVOS_GENERATOR_FLAGS = $(TVOS_GENERATOR_DEFINES) -inline-selectors

TVOS_DOTNET_EXTRA_CORE_SOURCES = \
$(TVOS_DOTNET_BUILD_DIR)/Constants.cs \
Expand Down Expand Up @@ -292,7 +295,8 @@ $(TVOS_DOTNET_BUILD_DIR)/AssemblyInfo.cs: $(TOP)/src/AssemblyInfo.cs.in $(TOP)/M
MACCATALYST_DEFINES = -define:IPHONE -define:IOS -define:MONOTOUCH -d:__IOS__ -d:__MACCATALYST__ -d:SYSTEM_NET_HTTP

MACCATALYST_CORE_DEFINES=$(MACCATALYST_DEFINES) -d:COREBUILD
MACCATALYST_GENERATOR_FLAGS = -d:__MACCATALYST__ -d:IOS -inline-selectors
MACCATALYST_GENERATOR_DEFINES = -d:__MACCATALYST__ -d:IOS
MACCATALYST_GENERATOR_FLAGS = $(MACCATALYST_GENERATOR_DEFINES) -inline-selectors

MACCATALYST_DOTNET_EXTRA_CORE_SOURCES = \
$(MACCATALYST_DOTNET_BUILD_DIR)/Constants.cs \
Expand Down Expand Up @@ -341,19 +345,51 @@ $(MACCATALYST_DOTNET_BUILD_DIR)/AssemblyInfo.cs: $(TOP)/src/AssemblyInfo.cs.in $
include $(TOP)/scripts/generate-sourcelink-json/fragment.mk

define BuildDotNetIntermediateAssembly
$($(2)_DOTNET_BUILD_DIR)/core-$(3).dll: $($(2)_DOTNET_CORE_SOURCES) frameworks.sources $(RSP_DIR)/dotnet/$(3)-defines-dotnet.rsp | $($(2)_DOTNET_BUILD_DIR)
$$(Q_DOTNET_GEN) \
$(DOTNET_CSC) \
rsp:: $($(2)_DOTNET_BUILD_DIR)/core-$(3).rsp
$($(2)_DOTNET_BUILD_DIR)/core-$(3).rsp: Makefile frameworks.sources | $($(2)_DOTNET_BUILD_DIR)
$$(Q_DOTNET_GEN) echo \
$(DOTNET_FLAGS) \
$(DOTNET_CORE_WARNINGS_TO_FIX) \
@$(RSP_DIR)/dotnet/$(3)-defines-dotnet.rsp \
$($(2)_CORE_DEFINES) \
$($(2)_DOTNET_CORE_SOURCES) \
-nullable+ \
-warnaserror+ \
-out:$$@
-nowarn:1591 \
-out:$($(2)_DOTNET_BUILD_DIR)/core-$(3).dll \
-doc:$($(2)_DOTNET_BUILD_DIR)/core-$(3).xml \
> $$@.tmp
$$(Q) mv $$@.tmp $$@

$($(2)_DOTNET_BUILD_DIR)/core-$(3).dll: $($(2)_DOTNET_CORE_SOURCES) $($(2)_DOTNET_BUILD_DIR)/core-$(3).rsp | $($(2)_DOTNET_BUILD_DIR)
$$(Q_DOTNET_GEN) $(DOTNET_CSC) @$($(2)_DOTNET_BUILD_DIR)/core-$(3).rsp

$($(2)_DOTNET_BUILD_DIR)/apidefinition-$(3).rsp: Makefile frameworks.sources
$$(Q_DOTNET_GEN) echo \
-debug \
-unsafe \
-target:library \
-nowarn:436,1591,CA1416,CS8981 \
-warnaserror+ \
-out:$($(2)_DOTNET_BUILD_DIR)/apidefinition-$(3).dll \
-doc:$($(2)_DOTNET_BUILD_DIR)/apidefinition-$(3).xml \
-r:$($(2)_DOTNET_BUILD_DIR)/core-$(3).dll \
-nostdlib \
-nologo \
-r:$(DOTNET_BINDING_ATTRIBUTES) \
$($(2)_APIS) \
$($(2)_GENERATOR_DEFINES) \
@$(RSP_DIR)/dotnet/$(3)-defines-dotnet.rsp \
> $$@.tmp
$$(Q) mv $$@.tmp $$@

$($(2)_DOTNET_BUILD_DIR)/apidefinition-$(3).dll: $($(2)_DOTNET_BUILD_DIR)/apidefinition-$(3).rsp $($(2)_DOTNET_BUILD_DIR)/core-$(3).dll $(DOTNET_BINDING_ATTRIBUTES)
$$(Q_GEN) $(DOTNET_CSC) $(DOTNET_FLAGS) @$$<

$($(2)_DOTNET_BUILD_DIR)/$(3)-generated-sources: $(DOTNET_GENERATOR) $($(2)_DOTNET_APIS) $($(2)_DOTNET_BUILD_DIR)/core-$(3).dll $(DOTNET_BINDING_ATTRIBUTES) $($(2)_DOTNET_BUILD_DIR)/$(3).rsp | $($(2)_DOTNET_BUILD_DIR)/generated-sources
apidefinition:: $(3)-apidefinition
$(3)-apidefinition: $($(2)_DOTNET_BUILD_DIR)/apidefinition-$(3).dll

$($(2)_DOTNET_BUILD_DIR)/$(3)-generated-sources: $(DOTNET_GENERATOR) $($(2)_DOTNET_APIS) $($(2)_DOTNET_BUILD_DIR)/core-$(3).dll $($(2)_DOTNET_BUILD_DIR)/apidefinition-$(3).dll $(DOTNET_BINDING_ATTRIBUTES) $($(2)_DOTNET_BUILD_DIR)/$(3).rsp | $($(2)_DOTNET_BUILD_DIR)/generated-sources
$$(Q_DOTNET_GEN) $$< @$($(2)_DOTNET_BUILD_DIR)/$(3).rsp

$($(2)_DOTNET_BUILD_DIR)/$(3).rsp: Makefile Makefile.generator Makefile.rgenerator frameworks.sources $(ROSLYN_GENERATOR) $(ROSLYN_ANALYZER) $(DOTNET_COMPILER) | $($(2)_DOTNET_BUILD_DIR)
Expand All @@ -365,8 +401,7 @@ $($(2)_DOTNET_BUILD_DIR)/$(3).rsp: Makefile Makefile.generator Makefile.rgenerat
-tmpdir=$($(2)_DOTNET_BUILD_DIR)/generated-sources \
-baselib=$($(2)_DOTNET_BUILD_DIR)/core-$(3).dll \
--target-framework=.NETCoreApp,Version=$(GENERATOR_TF_VERSION),Profile=$(3) \
$($(2)_APIS) \
@$(RSP_DIR)/dotnet/$(3)-defines-dotnet.rsp \
--compiled-api-definition-assembly=$($(2)_DOTNET_BUILD_DIR)/apidefinition-$(3).dll \
> $$@

DOTNET_TARGETS_$(3) += \
Expand Down Expand Up @@ -440,6 +475,7 @@ endif

$(2)_DOTNET_PLATFORM_ASSEMBLY_DEPENDENCIES = \
$($(2)_DOTNET_SOURCES) \
$($(2)_DOTNET_BUILD_DIR)/Microsoft.$(1).rsp \
$($(2)_DOTNET_BUILD_DIR)/$(3)-generated-sources \
$($(2)_DOTNET_BUILD_DIR)/SourceLink.json \
$($(2)_DOTNET_BUILD_DIR)/embed-files.rsp \
Expand All @@ -451,9 +487,11 @@ $(2)_DOTNET_PLATFORM_ASSEMBLY_DIR_DEPENDENCIES = \
$($(2)_DOTNET_BUILD_DIR)/$(4) \
$($(2)_DOTNET_BUILD_DIR)/ref \

$($(2)_DOTNET_BUILD_DIR)/$(4)/Microsoft.$(1)%dll $($(2)_DOTNET_BUILD_DIR)/$(4)/Microsoft.$(1)%pdb $$($(2)_$(4)_REF_TARGET) $$($(2)_$(4)_DOC_TARGET): $$($(2)_DOTNET_PLATFORM_ASSEMBLY_DEPENDENCIES) $$(ROSLYN_GENERATOR) $$(ROSLYN_ANALYZER) | $$($(2)_DOTNET_PLATFORM_ASSEMBLY_DIR_DEPENDENCIES)
$$(call Q_PROF_CSC,dotnet/$(4)-bit) \
$(DOTNET_CSC) \
rsp:: $($(2)_DOTNET_BUILD_DIR)/Microsoft.$(1).rsp

$($(2)_DOTNET_BUILD_DIR)/Microsoft.$(1).rsp: Makefile | $($(2)_DOTNET_BUILD_DIR)
$$(Q) rm -f $$@
$$(Q) echo \
$(DOTNET_FLAGS) \
/analyzer:$(ROSLYN_GENERATOR_COMMON) \
/analyzer:$(ROSLYN_GENERATOR) \
Expand All @@ -468,18 +506,23 @@ $($(2)_DOTNET_BUILD_DIR)/$(4)/Microsoft.$(1)%dll $($(2)_DOTNET_BUILD_DIR)/$(4)/M
$$($(2)_$(4)_REFOUT_ARG) \
$$($(2)_$(4)_DOC_ARG) \
-sourcelink:$($(2)_DOTNET_BUILD_DIR)/SourceLink.json \
@$($(2)_DOTNET_BUILD_DIR)/embed-files.rsp \
@$$(abspath $($(2)_DOTNET_BUILD_DIR)/embed-files.rsp) \
$$($(2)_DEFINES) \
$(ARGS_$(4)) \
$$(DOTNET_WARNINGS_TO_FIX) \
@$(RSP_DIR)/dotnet/$(3)-defines-dotnet.rsp \
@$$(abspath $(RSP_DIR)/dotnet/$(3)-defines-dotnet.rsp) \
-res:$($(2)_DOTNET_BUILD_DIR)/ILLink.LinkAttributes.xml \
-res:$($(2)_DOTNET_BUILD_DIR)/ILLink.Substitutions.xml \
-warnaserror+ \
-nullable+ \
$$($(2)_DOTNET_SOURCES) \
@$($(2)_DOTNET_BUILD_DIR)/$(3)-generated-sources \
@$$(abspath $($(2)_DOTNET_BUILD_DIR)/$(3)-generated-sources) \
-out:$($(2)_DOTNET_BUILD_DIR)/$(4)/Microsoft.$(1).dll \
> $$@.tmp
$$(Q) mv $$@.tmp $$@

$($(2)_DOTNET_BUILD_DIR)/$(4)/Microsoft.$(1)%dll $($(2)_DOTNET_BUILD_DIR)/$(4)/Microsoft.$(1)%pdb $$($(2)_$(4)_REF_TARGET) $$($(2)_$(4)_DOC_TARGET): $$($(2)_DOTNET_PLATFORM_ASSEMBLY_DEPENDENCIES) $$(ROSLYN_GENERATOR) $$(ROSLYN_ANALYZER) | $$($(2)_DOTNET_PLATFORM_ASSEMBLY_DIR_DEPENDENCIES)
$$(call Q_PROF_CSC,dotnet/$(4)-bit) $(DOTNET_CSC) @$($(2)_DOTNET_BUILD_DIR)/Microsoft.$(1).rsp

dotnet-$(3):: $($(2)_DOTNET_BUILD_DIR)/$(4)/Microsoft.$(1).dll

Expand Down
2 changes: 0 additions & 2 deletions src/ObjCRuntime/BlockCallbackAttribute.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@ namespace ObjCRuntime {
/// This attribute is applied to delegate parameters in a delegate to specify
/// that the delegate parameter needs an Objective-C Block-style bridge.
/// </summary>
/// <remarks>
/// <seealso cref='T:ObjCRuntime.CCallbackAttribute' />
/// </remarks>
[AttributeUsage (AttributeTargets.Parameter, AllowMultiple = false)]
public class BlockCallbackAttribute : Attribute {
/// <summary>
Expand Down
2 changes: 0 additions & 2 deletions src/ObjCRuntime/CCallbackAttribute.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@ namespace ObjCRuntime {
/// This attribute is applied to delegate parameters in a delegate to specify
/// that the delegate parameter needs an C-style bridge.
/// </summary>
/// <remarks>
/// <seealso cref='T:ObjCRuntime.BlockCallbackAttribute' />
/// </remarks>
[AttributeUsage (AttributeTargets.Parameter, AllowMultiple = false)]
public class CCallbackAttribute : Attribute {
/// <summary>
Expand Down
3 changes: 1 addition & 2 deletions src/authenticationservices.cs
Original file line number Diff line number Diff line change
Expand Up @@ -279,8 +279,7 @@ interface ASCredentialIdentityStoreState {
/// <summary>Delegate object for completion handlers in methods within <format type="text/html"><a href="https://docs.microsoft.com/en-us/search/index?search=Authentication%20Services%20ASCredential%20Provider%20Extension&amp;scope=Xamarin" title="T:AuthenticationServices.ASCredentialProviderExtension">T:AuthenticationServices.ASCredentialProviderExtension</a></format>.</summary>
delegate void ASCredentialProviderExtensionRequestCompletionHandler (bool expired);

/// <summary>
/// <see cfref="T:Foundation.NSExtensionContext" /> subclass that provides context for a credential provider.</summary>
/// <summary>An <see cref="NSExtensionContext" /> subclass that provides context for a credential provider.</summary>
[Introduced (PlatformName.MacCatalyst, 14, 0)]
[NoTV]
[NoWatch]
Expand Down
Loading

0 comments on commit 89bb3dc

Please sign in to comment.