xamarin-macios icon indicating copy to clipboard operation
xamarin-macios copied to clipboard

Xtro Selector Naming Bug

Open tj-devel709 opened this issue 2 years ago • 1 comments

While doing the HealthKit binding updates for Xcode 14 beta 1-3, Xtro produced the following funky selector names:

!missing-selector! +HKUnit::degreeHKUnitUnit not bound
!missing-selector! +HKUnit::radianHKUnitUnit not bound
!missing-selector! +HKUnit::radianHKUnitUnitWithMetricPrefix: not bound

These selector names did not show up in the Xcode headers, Apple web docs, or in the sharpie output. After further examination and help from others, we found that the actual name for these selectors were

degreeAngleUnit
radianAngleUnit
radianAngleUnitWithMetricPrefix:

Somewhere, the word "Angle" was replaced with "HKUnit".

However, after adding in the correct selectors, Xtro did recognize that these selectors were updated and did not complain about them.

Sharpie Output

// @interface Angle (HKUnit)
[Category]
[BaseType (typeof(HKUnit))]
interface HKUnit_Angle
{
	// +(instancetype _Nonnull)radianAngleUnitWithMetricPrefix:(HKMetricPrefix)prefix __attribute__((availability(ios, introduced=16.0))) __attribute__((availability(watchos, introduced=9.0))) __attribute__((availability(maccatalyst, introduced=16.0))) __attribute__((availability(macos, introduced=13.0)));
	[Watch (9,0), MacCatalyst (16,0), Mac (13,0), iOS (16,0)]
	[Static]
	[Export ("radianAngleUnitWithMetricPrefix:")]
	HKUnit RadianAngleUnitWithMetricPrefix (HKMetricPrefix prefix);

	// +(instancetype _Nonnull)radianAngleUnit __attribute__((availability(ios, introduced=16.0))) __attribute__((availability(watchos, introduced=9.0))) __attribute__((availability(maccatalyst, introduced=16.0))) __attribute__((availability(macos, introduced=13.0)));
	[Watch (9,0), MacCatalyst (16,0), Mac (13,0), iOS (16,0)]
	[Static]
	[Export ("radianAngleUnit")]
	HKUnit RadianAngleUnit ();

	// +(instancetype _Nonnull)degreeAngleUnit __attribute__((availability(ios, introduced=16.0))) __attribute__((availability(watchos, introduced=9.0))) __attribute__((availability(maccatalyst, introduced=16.0))) __attribute__((availability(macos, introduced=13.0)));
	[Watch (9,0), MacCatalyst (16,0), Mac (13,0), iOS (16,0)]
	[Static]
	[Export ("degreeAngleUnit")]
	HKUnit DegreeAngleUnit ();
}

tj-devel709 avatar Jul 29 '22 15:07 tj-devel709

@mandel-macaque

tj-devel709 avatar Jul 29 '22 15:07 tj-devel709