diff --git a/tests/sharpie/Tests/Massagers/PlatformTypeMapping.h b/tests/sharpie/Tests/Massagers/PlatformTypeMapping.h index 4ab1a8a53daf..ef789bba8c0c 100644 --- a/tests/sharpie/Tests/Massagers/PlatformTypeMapping.h +++ b/tests/sharpie/Tests/Massagers/PlatformTypeMapping.h @@ -9,4 +9,5 @@ @interface WebFetcher : NSObject @property (nonatomic, readonly, copy) NSURL *url; -(NSURLResponse *)getResponseForUrl:(NSURL *)url withCredential:(NSURLCredential *)credential; +-(void)loadDataWithUrl:(NSURL *)url completionHandler:(void (^)(NSData *, NSURLResponse *))handler; @end diff --git a/tests/sharpie/Tests/Massagers/PlatformTypeMapping.iphoneos.cs b/tests/sharpie/Tests/Massagers/PlatformTypeMapping.iphoneos.cs index bd219fe54ae0..33be4e000f76 100644 --- a/tests/sharpie/Tests/Massagers/PlatformTypeMapping.iphoneos.cs +++ b/tests/sharpie/Tests/Massagers/PlatformTypeMapping.iphoneos.cs @@ -1,3 +1,4 @@ +using System; using Foundation; using ObjCRuntime; @@ -11,4 +12,8 @@ interface WebFetcher : INSUrlConnectionDelegate { // -(NSURLResponse *)getResponseForUrl:(NSURL *)url withCredential:(NSURLCredential *)credential; [Export ("getResponseForUrl:withCredential:")] NSUrlResponse GetResponseForUrl (NSUrl url, NSUrlCredential credential); + + // -(void)loadDataWithUrl:(NSURL *)url completionHandler:(void (^)(NSData *, NSURLResponse *))handler; + [Export ("loadDataWithUrl:completionHandler:")] + void LoadDataWithUrl (NSUrl url, Action handler); } diff --git a/tests/sharpie/Tests/Massagers/PlatformTypeMapping.macosx.cs b/tests/sharpie/Tests/Massagers/PlatformTypeMapping.macosx.cs index bd219fe54ae0..33be4e000f76 100644 --- a/tests/sharpie/Tests/Massagers/PlatformTypeMapping.macosx.cs +++ b/tests/sharpie/Tests/Massagers/PlatformTypeMapping.macosx.cs @@ -1,3 +1,4 @@ +using System; using Foundation; using ObjCRuntime; @@ -11,4 +12,8 @@ interface WebFetcher : INSUrlConnectionDelegate { // -(NSURLResponse *)getResponseForUrl:(NSURL *)url withCredential:(NSURLCredential *)credential; [Export ("getResponseForUrl:withCredential:")] NSUrlResponse GetResponseForUrl (NSUrl url, NSUrlCredential credential); + + // -(void)loadDataWithUrl:(NSURL *)url completionHandler:(void (^)(NSData *, NSURLResponse *))handler; + [Export ("loadDataWithUrl:completionHandler:")] + void LoadDataWithUrl (NSUrl url, Action handler); } diff --git a/tests/sharpie/Tests/ObjCGenerics.iphoneos.cs b/tests/sharpie/Tests/ObjCGenerics.iphoneos.cs index a11273618fde..68ed305d6555 100644 --- a/tests/sharpie/Tests/ObjCGenerics.iphoneos.cs +++ b/tests/sharpie/Tests/ObjCGenerics.iphoneos.cs @@ -6,16 +6,16 @@ interface CNLabeledValue : INSCopying, INSSecureCoding { // @property (readonly, copy, nonatomic) ValueType ValueTypeProperty; [Export ("ValueTypeProperty", ArgumentSemantic.Copy)] - NSObject ValueTypeProperty { get; } + NSObject ValueTypeProperty { get; } // -(ValueType _Nullable)getValueTypeMethod; [NullAllowed, Export ("getValueTypeMethod")] [Verify (MethodToProperty)] - NSObject ValueTypeMethod { get; } + NSObject ValueTypeMethod { get; } // -(void)setValueTypeMethod:(ValueType _Nullable)obj; [Export ("setValueTypeMethod:")] - void SetValueTypeMethod ([NullAllowed] NSObject obj); + void SetValueTypeMethod ([NullAllowed] NSObject obj); } // @protocol A diff --git a/tests/sharpie/Tests/ObjCGenerics.macosx.cs b/tests/sharpie/Tests/ObjCGenerics.macosx.cs index a11273618fde..68ed305d6555 100644 --- a/tests/sharpie/Tests/ObjCGenerics.macosx.cs +++ b/tests/sharpie/Tests/ObjCGenerics.macosx.cs @@ -6,16 +6,16 @@ interface CNLabeledValue : INSCopying, INSSecureCoding { // @property (readonly, copy, nonatomic) ValueType ValueTypeProperty; [Export ("ValueTypeProperty", ArgumentSemantic.Copy)] - NSObject ValueTypeProperty { get; } + NSObject ValueTypeProperty { get; } // -(ValueType _Nullable)getValueTypeMethod; [NullAllowed, Export ("getValueTypeMethod")] [Verify (MethodToProperty)] - NSObject ValueTypeMethod { get; } + NSObject ValueTypeMethod { get; } // -(void)setValueTypeMethod:(ValueType _Nullable)obj; [Export ("setValueTypeMethod:")] - void SetValueTypeMethod ([NullAllowed] NSObject obj); + void SetValueTypeMethod ([NullAllowed] NSObject obj); } // @protocol A diff --git a/tools/sharpie/Sharpie.Bind/Massagers/PlatformTypeMappingMassager.cs b/tools/sharpie/Sharpie.Bind/Massagers/PlatformTypeMappingMassager.cs index 4a357a14f14c..3d36915ccdc2 100644 --- a/tools/sharpie/Sharpie.Bind/Massagers/PlatformTypeMappingMassager.cs +++ b/tools/sharpie/Sharpie.Bind/Massagers/PlatformTypeMappingMassager.cs @@ -207,11 +207,15 @@ public override void VisitTypeOfExpression (TypeOfExpression typeOfExpression) public override void VisitMemberType (MemberType memberType) { + // Visit children first so that type arguments (e.g. inside Action) + // are mapped before the parent type is processed. + base.VisitMemberType (memberType); VisitType (memberType, memberType.MemberName); } public override void VisitSimpleType (SimpleType simpleType) { + base.VisitSimpleType (simpleType); VisitType (simpleType, simpleType.Identifier); }