[xtro] Improve enum check. (#13396)
* Unify the signed and unsigned implementations. We lose some type-safety (because we have to use 'object' as the unifying type between long and ulong), but we minimize code duplication, so the code becomes easier to maintain. * Add an additional check for managed enum values that show up in the native header, but aren't available on the current platform.
This commit is contained in:
Родитель
6302878ad5
Коммит
b55ee6d521
|
@ -8,13 +8,15 @@ using Clang.Ast;
|
|||
namespace Extrospection {
|
||||
|
||||
class EnumCheck : BaseVisitor {
|
||||
class ManagedValue {
|
||||
public FieldDefinition Field;
|
||||
public EnumConstantDecl Decl;
|
||||
}
|
||||
|
||||
Dictionary<string,TypeDefinition> enums = new Dictionary<string, TypeDefinition> (StringComparer.InvariantCultureIgnoreCase);
|
||||
Dictionary<string,TypeDefinition> obsoleted_enums = new Dictionary<string,TypeDefinition> ();
|
||||
Dictionary<long, FieldDefinition> managed_signed_values = new Dictionary<long, FieldDefinition> ();
|
||||
Dictionary<ulong, FieldDefinition> managed_unsigned_values = new Dictionary<ulong, FieldDefinition> ();
|
||||
Dictionary<long, (string Name, bool Deprecated)> native_signed_values = new Dictionary<long, (string Name, bool Deprecated)> ();
|
||||
Dictionary<ulong, (string Name, bool Deprecated)> native_unsigned_values = new Dictionary<ulong,(string Name, bool Deprecated)> ();
|
||||
Dictionary<object, ManagedValue> managed_values = new Dictionary<object, ManagedValue> ();
|
||||
Dictionary<object, (string Name, EnumConstantDecl Decl)> native_values = new Dictionary<object, (string Name, EnumConstantDecl Decl)> ();
|
||||
|
||||
public override void VisitManagedType (TypeDefinition type)
|
||||
{
|
||||
|
@ -175,88 +177,100 @@ namespace Extrospection {
|
|||
throw new NotImplementedException ();
|
||||
}
|
||||
|
||||
native_values.Clear ();
|
||||
managed_values.Clear ();
|
||||
|
||||
// collect all the native enum values
|
||||
var nativeConstant = signed ? (object) 0L : (object) 0UL;
|
||||
foreach (var value in decl.Values) {
|
||||
if ((value.InitExpr != null) && value.InitExpr.EvaluateAsInt (decl.AstContext, out var integer)) {
|
||||
if (signed) {
|
||||
nativeConstant = integer.SExtValue;
|
||||
} else {
|
||||
nativeConstant = integer.ZExtValue;
|
||||
}
|
||||
}
|
||||
|
||||
if (native_values.TryGetValue (nativeConstant, out var entry)) {
|
||||
// the same constant might be used for multiple values - some deprecated and some not,
|
||||
// only overwrite if the current value isn't deprecated
|
||||
if (!value.IsDeprecated ())
|
||||
native_values [nativeConstant] = new (value.ToString (), value);
|
||||
} else {
|
||||
native_values [nativeConstant] = new (value.ToString (), value);
|
||||
}
|
||||
// assume, sequentially assigned (in case next `value.InitExpr` is null)
|
||||
var t = nativeConstant.GetType ();
|
||||
if (signed) {
|
||||
nativeConstant = 1L + (long) nativeConstant;
|
||||
} else {
|
||||
nativeConstant = 1UL + (ulong) nativeConstant;
|
||||
}
|
||||
}
|
||||
|
||||
// collect all the managed enum values
|
||||
var fields = type.Fields;
|
||||
if (signed) {
|
||||
managed_signed_values.Clear ();
|
||||
native_signed_values.Clear ();
|
||||
foreach (var f in fields) {
|
||||
// skip special `value__`
|
||||
if (f.IsRuntimeSpecialName && !f.IsStatic)
|
||||
foreach (var f in fields) {
|
||||
// skip special `value__`
|
||||
if (f.IsRuntimeSpecialName && !f.IsStatic)
|
||||
continue;
|
||||
if (f.IsObsolete ())
|
||||
continue;
|
||||
|
||||
object managedValue;
|
||||
if (signed) {
|
||||
managedValue = Convert.ToInt64 (f.Constant);
|
||||
} else {
|
||||
managedValue = Convert.ToUInt64 (f.Constant);
|
||||
}
|
||||
managed_values [managedValue] = new ManagedValue { Field = f };
|
||||
}
|
||||
|
||||
foreach (var kvp in native_values) {
|
||||
var value = kvp.Key;
|
||||
var valueDecl = kvp.Value.Decl;
|
||||
var valueName = kvp.Value.Name;
|
||||
|
||||
if (managed_values.TryGetValue (value, out var entry)) {
|
||||
entry.Decl = valueDecl;
|
||||
} else {
|
||||
// only for unsigned (flags) native enums we allow all bits set on 32 bits (UInt32.MaxValue)
|
||||
// to be equal to all bit set on 64 bits (UInt64.MaxValue) since the MaxValue differs between
|
||||
// 32bits (e.g. watchOS) and 64bits (all others) platforms
|
||||
if (!signed && native && (ulong) value == UInt32.MaxValue && managed_values.Remove (UInt64.MaxValue))
|
||||
continue;
|
||||
if (!f.IsObsolete ())
|
||||
managed_signed_values [Convert.ToInt64 (f.Constant)] = f;
|
||||
|
||||
// couldn't find a matching managed enum value for the native enum value
|
||||
// don't report deprecated native enum values (or if the native enum itself is deprecated) as missing
|
||||
if (!valueDecl.IsDeprecated () && !decl.IsDeprecated ())
|
||||
Log.On (framework).Add ($"!missing-enum-value! {type.Name} native value {valueName} = {value} not bound");
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var kvp in managed_values) {
|
||||
var value = kvp.Key;
|
||||
var valueField = kvp.Value.Field;
|
||||
var valueDecl = kvp.Value.Decl;
|
||||
var fieldName = valueField.Name;
|
||||
|
||||
// A 0 might be a valid extra value sometimes
|
||||
var isZero = signed ? (long) value == 0 : (ulong) value == 0;
|
||||
if (isZero && IsExtraZeroValid (type.Name, fieldName))
|
||||
continue;
|
||||
|
||||
if (valueDecl is null) {
|
||||
// we have a managed enum value, but no corresponding native value
|
||||
// this is only an issue if the managed enum value is available and not obsoleted
|
||||
if (valueField.IsAvailable () && !valueField.IsObsolete ())
|
||||
Log.On (framework).Add ($"!extra-enum-value! Managed value {value} for {type.Name}.{fieldName} not found in native headers");
|
||||
continue;
|
||||
}
|
||||
|
||||
long n = 0;
|
||||
foreach (var value in decl.Values) {
|
||||
if ((value.InitExpr != null) && value.InitExpr.EvaluateAsInt (decl.AstContext, out var integer))
|
||||
n = integer.SExtValue;
|
||||
|
||||
native_signed_values [n] = new (value.ToString (), value.IsDeprecated ());
|
||||
// assume, sequentially assigned (in case next `value.InitExpr` is null)
|
||||
n++;
|
||||
}
|
||||
|
||||
foreach (var value in native_signed_values.Keys) {
|
||||
if (!managed_signed_values.ContainsKey (value)) {
|
||||
if (!native_signed_values [value].Deprecated && !decl.IsDeprecated ())
|
||||
Log.On (framework).Add ($"!missing-enum-value! {type.Name} native value {native_signed_values [value].Name} = {value} not bound");
|
||||
} else
|
||||
managed_signed_values.Remove (value);
|
||||
}
|
||||
|
||||
foreach (var value in managed_signed_values.Keys) {
|
||||
if ((value == 0) && IsExtraZeroValid (type.Name, managed_signed_values [0].Name))
|
||||
continue;
|
||||
// value could be decorated with `[No*]` and those should not be reported
|
||||
if (managed_signed_values [value].IsAvailable ())
|
||||
Log.On (framework).Add ($"!extra-enum-value! Managed value {value} for {type.Name}.{managed_signed_values [value].Name} not found in native headers");
|
||||
}
|
||||
} else {
|
||||
managed_unsigned_values.Clear ();
|
||||
native_unsigned_values.Clear ();
|
||||
foreach (var f in fields) {
|
||||
// skip special `value__`
|
||||
if (f.IsRuntimeSpecialName && !f.IsStatic)
|
||||
continue;
|
||||
if (!f.IsObsolete ())
|
||||
managed_unsigned_values [Convert.ToUInt64 (f.Constant)] = f;
|
||||
}
|
||||
|
||||
ulong n = 0;
|
||||
foreach (var value in decl.Values) {
|
||||
if ((value.InitExpr != null) && value.InitExpr.EvaluateAsInt (decl.AstContext, out var integer))
|
||||
n = integer.ZExtValue;
|
||||
|
||||
native_unsigned_values [n] = new (value.ToString (), value.IsDeprecated ());
|
||||
// assume, sequentially assigned (in case next `value.InitExpr` is null)
|
||||
n++;
|
||||
}
|
||||
|
||||
foreach (var value in native_unsigned_values.Keys) {
|
||||
if (!managed_unsigned_values.ContainsKey (value)) {
|
||||
// only for unsigned (flags) native enums we allow all bits set on 32 bits (UInt32.MaxValue)
|
||||
// to be equal to all bit set on 64 bits (UInt64.MaxValue) since the MaxValue differs between
|
||||
// 32bits (e.g. watchOS) and 64bits (all others) platforms
|
||||
var log = true;
|
||||
if (native && (value == UInt32.MaxValue)) {
|
||||
log = !managed_unsigned_values.ContainsKey (UInt64.MaxValue);
|
||||
managed_unsigned_values.Remove (UInt64.MaxValue);
|
||||
}
|
||||
if (log)
|
||||
log &= !native_unsigned_values [value].Deprecated && !decl.IsDeprecated ();
|
||||
if (log)
|
||||
Log.On (framework).Add ($"!missing-enum-value! {type.Name} native value {native_unsigned_values [value].Name} = {value} not bound");
|
||||
} else
|
||||
managed_unsigned_values.Remove (value);
|
||||
}
|
||||
|
||||
foreach (var value in managed_unsigned_values.Keys) {
|
||||
if ((value == 0) && IsExtraZeroValid (type.Name, managed_unsigned_values [0].Name))
|
||||
continue;
|
||||
// value could be decorated with `[No*]` and those should not be reported
|
||||
if (managed_unsigned_values [value].IsAvailable ())
|
||||
Log.On (framework).Add ($"!extra-enum-value! Managed value {value} for {type.Name}.{managed_unsigned_values [value].Name} not found in native headers");
|
||||
if (!valueDecl.IsAvailable ()) {
|
||||
// if the native enum value isn't available, the managed one shouldn't be either
|
||||
if (valueField.IsAvailable ())
|
||||
Log.On (framework).Add ($"!extra-enum-value! Managed value {value} for {type.Name}.{fieldName} is available for the current platform while the value in the native header is not");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
!extra-enum-value! Managed value -11860 for AVError.CreateContentKeyRequestFailed is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1 @@
|
|||
!extra-enum-value! Managed value 2 for AudioComponentInstantiationOptions.InProcess is available for the current platform while the value in the native header is not
|
|
@ -1 +1,2 @@
|
|||
!missing-field! kCTFontRegistrationUserInfoAttribute not bound
|
||||
!extra-enum-value! Managed value 3 for CTFontManagerScope.Session is available for the current platform while the value in the native header is not
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
!extra-enum-value! Managed value 128 for NSFileProviderItemCapabilities.ExcludingFromSync is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 64 for NSFileProviderItemCapabilities.Evicting is available for the current platform while the value in the native header is not
|
|
@ -150,3 +150,5 @@
|
|||
!missing-type! NSOrderedCollectionChange not bound
|
||||
!missing-type! NSOrderedCollectionDifference not bound
|
||||
!missing-type! NSPresentationIntent not bound
|
||||
!extra-enum-value! Managed value 2 for NSItemProviderRepresentationVisibility.Group is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 23 for NSSearchPathDirectory.ApplicationScriptsDirectory is available for the current platform while the value in the native header is not
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
!extra-enum-value! Managed value 12 for INStartCallIntentResponseCode.FailureCallRinging is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1,4 @@
|
|||
!extra-enum-value! Managed value -11 for LAStatus.WatchNotAvailable is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value -12 for LAStatus.BiometryNotPaired is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value -13 for LAStatus.BiometryDisconnected is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value -14 for LAStatus.InvalidDimension is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1,31 @@
|
|||
!extra-enum-value! Managed value 0 for MTLFeatureSet.iOS_GPUFamily1_v1 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 1 for MTLFeatureSet.iOS_GPUFamily2_v1 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 10 for MTLFeatureSet.iOS_GPUFamily3_v3 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 10000 for MTLFeatureSet.OSX_GPUFamily1_v1 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 10001 for MTLFeatureSet.OSX_GPUFamily1_v2 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 10002 for MTLFeatureSet.OSX_ReadWriteTextureTier2 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 10003 for MTLFeatureSet.macOS_GPUFamily1_v3 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 10004 for MTLFeatureSet.macOS_GPUFamily1_v4 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 10005 for MTLFeatureSet.macOS_GPUFamily2_v1 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 11 for MTLCommandBufferError.DeviceRemoved is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 11 for MTLFeatureSet.iOS_GPUFamily4_v1 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 12 for MTLFeatureSet.iOS_GPUFamily1_v5 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 13 for MTLFeatureSet.iOS_GPUFamily2_v5 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 14 for MTLFeatureSet.iOS_GPUFamily3_v4 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 15 for MTLFeatureSet.iOS_GPUFamily4_v2 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 16 for MTLFeatureSet.iOS_GPUFamily5_v1 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 2 for MTLFeatureSet.iOS_GPUFamily1_v2 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 3 for MTLFeatureSet.iOS_GPUFamily2_v2 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 30000 for MTLFeatureSet.TVOS_GPUFamily1_v1 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 30001 for MTLFeatureSet.tvOS_GPUFamily1_v2 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 30002 for MTLFeatureSet.tvOS_GPUFamily1_v3 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 30003 for MTLFeatureSet.tvOS_GPUFamily2_v1 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 30004 for MTLFeatureSet.tvOS_GPUFamily1_v4 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 30005 for MTLFeatureSet.tvOS_GPUFamily2_v2 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 4 for MTLFeatureSet.iOS_GPUFamily3_v1 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 5 for MTLFeatureSet.iOS_GPUFamily1_v3 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 6 for MTLFeatureSet.iOS_GPUFamily2_v3 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 65536 for MTLLanguageVersion.v1_0 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 7 for MTLFeatureSet.iOS_GPUFamily3_v2 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 8 for MTLFeatureSet.iOS_GPUFamily1_v4 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 9 for MTLFeatureSet.iOS_GPUFamily2_v4 is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1,3 @@
|
|||
!extra-enum-value! Managed value 1 for NEOnDemandRuleInterfaceType.Ethernet is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 3 for NETunnelProviderRoutingMethod.NetworkRule is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 4 for NEFilterReportEvent.Statistics is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1 @@
|
|||
!extra-enum-value! Managed value 0 for OSLogStoreScope.System is available for the current platform while the value in the native header is not
|
|
@ -409,4 +409,9 @@
|
|||
!missing-selector! UITabBarItemAppearance::copy not bound
|
||||
!missing-selector! UIToolbar::setTintColor: not bound
|
||||
!missing-selector! UIToolbar::tintColor not bound
|
||||
## appended from unclassified file
|
||||
!extra-enum-value! Managed value 1 for UITextFieldDidEndEditingReason.Cancelled is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 3 for UIBlurEffectStyle.ExtraDark is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 30 for UIPressType.PageUp is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 31 for UIPressType.PageDown is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 6 for UIButtonType.Plain is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 8 for UIModalPresentationStyle.BlurOverFullScreen is available for the current platform while the value in the native header is not
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
!extra-enum-value! Managed value -11860 for AVError.CreateContentKeyRequestFailed is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1 @@
|
|||
!extra-enum-value! Managed value 2 for AudioComponentInstantiationOptions.InProcess is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1,7 @@
|
|||
!extra-enum-value! Managed value -1006 for NSFileProviderError.VersionOutOfDate is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value -1007 for NSFileProviderError.DirectoryNotEmpty is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value -2001 for NSFileProviderError.ProviderNotFound is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value -2002 for NSFileProviderError.ProviderTranslocated is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value -2003 for NSFileProviderError.OlderExtensionVersionRunning is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value -2004 for NSFileProviderError.NewerExtensionVersionFound is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value -2005 for NSFileProviderError.CannotSynchronize is available for the current platform while the value in the native header is not
|
|
@ -139,5 +139,7 @@
|
|||
!missing-type! NSOrderedCollectionChange not bound
|
||||
!missing-type! NSOrderedCollectionDifference not bound
|
||||
!missing-type! NSPresentationIntent not bound
|
||||
## appended from unclassified file
|
||||
## appended from unclassified file
|
||||
!extra-enum-value! Managed value 1024 for NSUrlBookmarkResolutionOptions.WithSecurityScope is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 2 for NSItemProviderRepresentationVisibility.Group is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 2048 for NSUrlBookmarkCreationOptions.WithSecurityScope is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 4096 for NSUrlBookmarkCreationOptions.SecurityScopeAllowOnlyReadAccess is available for the current platform while the value in the native header is not
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
!extra-enum-value! Managed value 12 for INStartCallIntentResponseCode.FailureCallRinging is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1,4 @@
|
|||
!extra-enum-value! Managed value -11 for LAStatus.WatchNotAvailable is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value -12 for LAStatus.BiometryNotPaired is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value -13 for LAStatus.BiometryDisconnected is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value -14 for LAStatus.InvalidDimension is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1,5 @@
|
|||
!extra-enum-value! Managed value 10000 for MTLFeatureSet.OSX_GPUFamily1_v1 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 10001 for MTLFeatureSet.OSX_GPUFamily1_v2 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 10002 for MTLFeatureSet.OSX_ReadWriteTextureTier2 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 11 for MTLCommandBufferError.DeviceRemoved is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 30000 for MTLFeatureSet.TVOS_GPUFamily1_v1 is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1 @@
|
|||
!extra-enum-value! Managed value 1 for NEOnDemandRuleInterfaceType.Ethernet is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1 @@
|
|||
!extra-enum-value! Managed value 0 for OSLogStoreScope.System is available for the current platform while the value in the native header is not
|
|
@ -17,3 +17,4 @@
|
|||
!missing-selector! UICollectionViewDiffableDataSourceSectionSnapshotHandlers::snapshotForExpandingParentItemHandler not bound
|
||||
!missing-selector! UICollectionViewDiffableDataSourceSectionSnapshotHandlers::willCollapseItemHandler not bound
|
||||
!missing-selector! UICollectionViewDiffableDataSourceSectionSnapshotHandlers::willExpandItemHandler not bound
|
||||
!extra-enum-value! Managed value 8 for UIModalPresentationStyle.BlurOverFullScreen is available for the current platform while the value in the native header is not
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
!extra-enum-value! Managed value 1 for AVAudioSessionRouteSharingPolicy.LongForm is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value -11872 for AVError.SessionHardwareCostOverage is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value -11873 for AVError.UnsupportedDeviceActiveFormat is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 17 for AVAudioSessionCategoryOptions.InterruptSpokenAudioAndMixWithOthers is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 1936747378 for AVAudioSessionPortOverride.Speaker is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 32 for AVAudioSessionCategoryOptions.AllowBluetoothA2DP is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 4 for AVAudioSessionCategoryOptions.AllowBluetooth is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 64 for AVAudioSessionCategoryOptions.AllowAirPlay is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 8 for AVAudioSessionCategoryOptions.DefaultToSpeaker is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value -11859 for AVError.RecordingAlreadyInProgress is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1 @@
|
|||
!extra-enum-value! Managed value 2147483648 for AudioComponentInstantiationOptions.LoadedRemotely is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1 @@
|
|||
!extra-enum-value! Managed value 3 for CXErrorCode.MissingVoIPBackgroundMode is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1 @@
|
|||
!extra-enum-value! Managed value 4 for CLAuthorizationStatus.AuthorizedWhenInUse is available for the current platform while the value in the native header is not
|
|
@ -142,5 +142,4 @@
|
|||
!missing-type! NSOrderedCollectionChange not bound
|
||||
!missing-type! NSOrderedCollectionDifference not bound
|
||||
!missing-type! NSPresentationIntent not bound
|
||||
## appended from unclassified file
|
||||
## appended from unclassified file
|
||||
!extra-enum-value! Managed value 1 for NSItemProviderRepresentationVisibility.Team is available for the current platform while the value in the native header is not
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
!extra-enum-value! Managed value 2 for MKUserTrackingMode.FollowWithHeading is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1,6 @@
|
|||
!extra-enum-value! Managed value 0 for MTLFeatureSet.iOS_GPUFamily1_v1 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 1 for MTLFeatureSet.iOS_GPUFamily2_v1 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 2 for MTLFeatureSet.iOS_GPUFamily1_v2 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 3 for MTLFeatureSet.iOS_GPUFamily2_v2 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 30000 for MTLFeatureSet.TVOS_GPUFamily1_v1 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 4 for MTLFeatureSet.iOS_GPUFamily3_v1 is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1 @@
|
|||
!extra-enum-value! Managed value 3 for NEOnDemandRuleInterfaceType.Cellular is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1,3 @@
|
|||
!extra-enum-value! Managed value 16 for SKError.OverlayInvalidConfiguration is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 17 for SKError.OverlayTimeout is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 20 for SKError.OverlayPresentedInBackgroundScene is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1 @@
|
|||
!extra-enum-value! Managed value 128 for UNAuthorizationOptions.Announcement is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1,3 @@
|
|||
!extra-enum-value! Managed value -11872 for AVError.SessionHardwareCostOverage is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value -11873 for AVError.UnsupportedDeviceActiveFormat is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value -11860 for AVError.CreateContentKeyRequestFailed is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1 @@
|
|||
!extra-enum-value! Managed value 2 for AudioComponentInstantiationOptions.InProcess is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1 @@
|
|||
!extra-enum-value! Managed value 1005 for ASAuthorizationError.NotInteractive is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1,2 @@
|
|||
!extra-enum-value! Managed value 1 for CTFontTableOptions.ExcludeSynthetic is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 10 for CTParagraphStyleSpecifier.LineSpacing is available for the current platform while the value in the native header is not
|
|
@ -139,5 +139,8 @@
|
|||
!missing-type! NSOrderedCollectionChange not bound
|
||||
!missing-type! NSOrderedCollectionDifference not bound
|
||||
!missing-type! NSPresentationIntent not bound
|
||||
## appended from unclassified file
|
||||
## appended from unclassified file
|
||||
!extra-enum-value! Managed value 102 for NSSearchPathDirectory.TrashDirectory is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 1024 for NSUrlBookmarkResolutionOptions.WithSecurityScope is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 2 for NSItemProviderRepresentationVisibility.Group is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 2048 for NSUrlBookmarkCreationOptions.WithSecurityScope is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 4096 for NSUrlBookmarkCreationOptions.SecurityScopeAllowOnlyReadAccess is available for the current platform while the value in the native header is not
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
!extra-enum-value! Managed value 2 for MKUserTrackingMode.FollowWithHeading is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1,12 @@
|
|||
!extra-enum-value! Managed value 0 for MTLFeatureSet.iOS_GPUFamily1_v1 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 1 for MTLFeatureSet.iOS_GPUFamily2_v1 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 1 for MTLSamplerAddressMode.MirrorClampToEdge is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 10000 for MTLFeatureSet.OSX_GPUFamily1_v1 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 10001 for MTLFeatureSet.OSX_GPUFamily1_v2 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 10002 for MTLFeatureSet.OSX_ReadWriteTextureTier2 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 11 for MTLCommandBufferError.DeviceRemoved is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 2 for MTLFeatureSet.iOS_GPUFamily1_v2 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 3 for MTLFeatureSet.iOS_GPUFamily2_v2 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 4 for MTLFeatureSet.iOS_GPUFamily3_v1 is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 5 for MTLSamplerAddressMode.ClampToBorderColor is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 8 for MTLTextureType.k2DMultisampleArray is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1 @@
|
|||
!extra-enum-value! Managed value 0 for OSLogStoreScope.System is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1,4 @@
|
|||
!extra-enum-value! Managed value 16 for SKError.OverlayInvalidConfiguration is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 17 for SKError.OverlayTimeout is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 19 for SKError.UnsupportedPlatform is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 20 for SKError.OverlayPresentedInBackgroundScene is available for the current platform while the value in the native header is not
|
|
@ -18,5 +18,4 @@
|
|||
!missing-selector! UICollectionViewDiffableDataSourceSectionSnapshotHandlers::snapshotForExpandingParentItemHandler not bound
|
||||
!missing-selector! UICollectionViewDiffableDataSourceSectionSnapshotHandlers::willCollapseItemHandler not bound
|
||||
!missing-selector! UICollectionViewDiffableDataSourceSectionSnapshotHandlers::willExpandItemHandler not bound
|
||||
## appended from unclassified file
|
||||
## appended from unclassified file
|
||||
!extra-enum-value! Managed value 2 for UIActivityIndicatorViewStyle.Gray is available for the current platform while the value in the native header is not
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
!extra-enum-value! Managed value 128 for UNAuthorizationOptions.Announcement is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1,7 @@
|
|||
!extra-enum-value! Managed value -11837 for AVError.DeviceIsNotAvailableInBackground is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value -11872 for AVError.SessionHardwareCostOverage is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value -11873 for AVError.UnsupportedDeviceActiveFormat is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 1936747378 for AVAudioSessionPortOverride.Speaker is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 4 for AVAudioSessionCategoryOptions.AllowBluetooth is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 8 for AVAudioSessionCategoryOptions.DefaultToSpeaker is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value -11860 for AVError.CreateContentKeyRequestFailed is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1,3 @@
|
|||
!extra-enum-value! Managed value 2 for ASWebAuthenticationSessionErrorCode.PresentationContextNotProvided is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 3 for ASWebAuthenticationSessionErrorCode.PresentationContextInvalid is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 1005 for ASAuthorizationError.NotInteractive is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1,2 @@
|
|||
!extra-enum-value! Managed value 1 for CTFontTableOptions.ExcludeSynthetic is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 10 for CTParagraphStyleSpecifier.LineSpacing is available for the current platform while the value in the native header is not
|
|
@ -138,3 +138,8 @@
|
|||
!missing-type! NSPresentationIntent not bound
|
||||
## appended from unclassified file
|
||||
## appended from unclassified file
|
||||
!extra-enum-value! Managed value 102 for NSSearchPathDirectory.TrashDirectory is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 1024 for NSUrlBookmarkResolutionOptions.WithSecurityScope is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 2 for NSItemProviderRepresentationVisibility.Group is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 2048 for NSUrlBookmarkCreationOptions.WithSecurityScope is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 4096 for NSUrlBookmarkCreationOptions.SecurityScopeAllowOnlyReadAccess is available for the current platform while the value in the native header is not
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
!extra-enum-value! Managed value 12 for INStartCallIntentResponseCode.FailureCallRinging is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 4 for INAddMediaIntentResponseCode.HandleInApp is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 5 for INPlayMediaIntentResponseCode.HandleInApp is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 7 for INStartWorkoutIntentResponseCode.HandleInApp is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 8 for INStartWorkoutIntentResponseCode.Success is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1 @@
|
|||
!extra-enum-value! Managed value 0 for OSLogStoreScope.System is available for the current platform while the value in the native header is not
|
|
@ -1,2 +1,4 @@
|
|||
!missing-field! PKPaymentNetworkNanaco not bound
|
||||
!missing-field! PKPaymentNetworkWaon not bound
|
||||
!extra-enum-value! Managed value 4 for PKPaymentErrorCode.CouponCodeInvalid is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 5 for PKPaymentErrorCode.CouponCodeExpired is available for the current platform while the value in the native header is not
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
!extra-enum-value! Managed value 16 for SKError.OverlayInvalidConfiguration is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 17 for SKError.OverlayTimeout is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 20 for SKError.OverlayPresentedInBackgroundScene is available for the current platform while the value in the native header is not
|
|
@ -0,0 +1,2 @@
|
|||
!extra-enum-value! Managed value 4 for UNNotificationCategoryOptions.HiddenPreviewsShowTitle is available for the current platform while the value in the native header is not
|
||||
!extra-enum-value! Managed value 8 for UNNotificationCategoryOptions.HiddenPreviewsShowSubtitle is available for the current platform while the value in the native header is not
|
|
@ -35,7 +35,7 @@
|
|||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(RunConfiguration)' == 'watchOS' ">
|
||||
<StartAction>Project</StartAction>
|
||||
<StartArguments>watchos6.2-armv7.pch ../../_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/32bits/watchOS/Xamarin.WatchOS.dll</StartArguments>
|
||||
<StartArguments>watchos8.0-armv7.pch ../../_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/32bits/watchOS/Xamarin.WatchOS.dll</StartArguments>
|
||||
<StartWorkingDirectory>.</StartWorkingDirectory>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(RunConfiguration)' == 'iOS' ">
|
||||
|
@ -45,12 +45,12 @@
|
|||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(RunConfiguration)' == 'tvOS' ">
|
||||
<StartAction>Project</StartAction>
|
||||
<StartArguments>appletvos13.4-arm64.pch ../../_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/mono/Xamarin.TVOS/Xamarin.TVOS.dll ../../_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/mono/Xamarin.TVOS/OpenTK-1.0.dll</StartArguments>
|
||||
<StartArguments>appletvos15.0-arm64.pch ../../_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/mono/Xamarin.TVOS/Xamarin.TVOS.dll ../../_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/mono/Xamarin.TVOS/OpenTK-1.0.dll</StartArguments>
|
||||
<StartWorkingDirectory>.</StartWorkingDirectory>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(RunConfiguration)' == 'macOS' ">
|
||||
<StartAction>Project</StartAction>
|
||||
<StartArguments>macosx10.15-x86_64.pch ../../_mac-build/Library/Frameworks/Xamarin.Mac.framework/Versions/git/lib/64bits/mobile/Xamarin.Mac.dll</StartArguments>
|
||||
<StartArguments>macosx12.0-x86_64.pch ../../_mac-build/Library/Frameworks/Xamarin.Mac.framework/Versions/git/lib/64bits/mobile/Xamarin.Mac.dll</StartArguments>
|
||||
<StartWorkingDirectory>.</StartWorkingDirectory>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(RunConfiguration)' == 'MacCatalyst' ">
|
||||
|
|
Загрузка…
Ссылка в новой задаче