@@ -59,13 +59,13 @@ public List<ICodeElement> MarshalFromLambdaReceiverToCSFunc (CSType thisType, st
59
59
60
60
61
61
if ( isSetter ) {
62
- var valueID = delegateParams [ 1 ] . Name ;
62
+ var valueID = delegateParams [ 2 ] . Name ;
63
63
valueExpr = valueID ;
64
64
var swiftNewValue = funcDecl . ParameterLists [ 1 ] [ 0 ] ;
65
65
bool newValueIsGeneric = funcDecl . IsTypeSpecGeneric ( funcDecl . PropertyType ) ;
66
66
entity = ! newValueIsGeneric ? typeMapper . GetEntityForTypeSpec ( swiftNewValue . TypeSpec ) : null ;
67
67
entityType = ! newValueIsGeneric ? typeMapper . GetEntityTypeForTypeSpec ( swiftNewValue . TypeSpec ) : EntityType . None ;
68
- var isUnusualNewValue = IsUnusualParameter ( entity , delegateParams [ 1 ] ) ;
68
+ var isUnusualNewValue = IsUnusualParameter ( entity , delegateParams [ 2 ] ) ;
69
69
var newValueIsBool = entityType == EntityType . Scalar && swiftNewValue . TypeName == "Swift.Bool" ;
70
70
71
71
if ( entityType == EntityType . Class || entity != null && entity . IsObjCProtocol ) {
@@ -129,7 +129,7 @@ public List<ICodeElement> MarshalFromLambdaReceiverToCSFunc (CSType thisType, st
129
129
130
130
int j = 0 ;
131
131
int k = isSetter ? 1 : 0 ;
132
- for ( int i = ( funcDecl . HasThrows || returnIsStruct || returnIsProtocol || isSetter || returnIsGeneric || returnIsSelf ) ? 2 : 1 ; i < delegateParams . Count ; i ++ , j ++ , k ++ ) {
132
+ for ( int i = ( funcDecl . HasThrows || returnIsStruct || returnIsProtocol || isSetter || returnIsGeneric || returnIsSelf ) ? 3 : 2 ; i < delegateParams . Count ; i ++ , j ++ , k ++ ) {
133
133
var swiftParm = funcDecl . ParameterLists [ 1 ] [ k ] ;
134
134
bool parmIsGeneric = funcDecl . IsTypeSpecGeneric ( swiftParm ) ;
135
135
entity = ! parmIsGeneric ? typeMapper . GetEntityForTypeSpec ( swiftParm . TypeSpec ) : null ;
@@ -149,7 +149,7 @@ public List<ICodeElement> MarshalFromLambdaReceiverToCSFunc (CSType thisType, st
149
149
use . AddIfNotPresent ( typeof ( SwiftObjectRegistry ) ) ;
150
150
151
151
var fullClassName = entity . Type . ToFullyQualifiedName ( true ) ;
152
- var retrievecall = NewClassCompiler . SafeMarshalClassFromIntPtr ( delegateParams [ 0 ] . Name , csParmType , use , fullClassName , typeMapper , entity . IsObjCProtocol ) ;
152
+ var retrievecall = NewClassCompiler . SafeMarshalClassFromIntPtr ( delegateParams [ 1 ] . Name , csParmType , use , fullClassName , typeMapper , entity . IsObjCProtocol ) ;
153
153
if ( csParm . ParameterKind == CSParameterKind . Out || csParm . ParameterKind == CSParameterKind . Ref ) {
154
154
string id = MarshalEngine . Uniqueify ( delegateParams [ i ] . Name . Name , identifiersUsed ) ;
155
155
identifiersUsed . Add ( id ) ;
@@ -331,25 +331,25 @@ public List<ICodeElement> MarshalFromLambdaReceiverToCSFunc (CSType thisType, st
331
331
postMarshalCode . Add ( CSFunctionCall . FunctionCallLine ( "StructMarshal.Marshaler.ToSwift" , false ,
332
332
methodType . Typeof ( ) ,
333
333
retvalId ,
334
- delegateParams [ 0 ] . Name ) ) ;
334
+ delegateParams [ 1 ] . Name ) ) ;
335
335
altBody . Add ( CSFunctionCall . FunctionCallLine ( "StructMarshal.Marshaler.SetErrorNotThrown" , false ,
336
- delegateParams [ 0 ] . Name , returnTuple . Typeof ( ) ) ) ;
336
+ delegateParams [ 1 ] . Name , returnTuple . Typeof ( ) ) ) ;
337
337
} else {
338
338
if ( isSetter ) {
339
339
altBody . Add ( CSAssignment . Assign ( invoker , CSAssignmentOperator . Assign , valueExpr ) ) ;
340
340
} else {
341
341
altBody . Add ( new CSLine ( invoker ) ) ;
342
342
}
343
343
altBody . Add ( CSFunctionCall . FunctionCallLine ( "StructMarshal.Marshaler.SetErrorNotThrown" , false ,
344
- delegateParams [ 0 ] . Name , returnTuple . Typeof ( ) ) ) ;
344
+ delegateParams [ 1 ] . Name , returnTuple . Typeof ( ) ) ) ;
345
345
346
346
}
347
347
string swiftError = MarshalEngine . Uniqueify ( "err" , identifiersUsed ) ;
348
348
var swiftErrorIdentifier = new CSIdentifier ( swiftError ) ;
349
349
catchBlock . Add ( CSFieldDeclaration . VarLine ( new CSSimpleType ( typeof ( SwiftError ) ) , swiftErrorIdentifier ,
350
350
new CSFunctionCall ( "SwiftError.FromException" , false , catchID ) ) ) ;
351
351
catchBlock . Add ( CSFunctionCall . FunctionCallLine ( "StructMarshal.Marshaler.SetErrorThrown" , false ,
352
- delegateParams [ 0 ] . Name ,
352
+ delegateParams [ 1 ] . Name ,
353
353
swiftErrorIdentifier ,
354
354
returnTuple . Typeof ( ) ) ) ;
355
355
} else {
@@ -369,43 +369,43 @@ public List<ICodeElement> MarshalFromLambdaReceiverToCSFunc (CSType thisType, st
369
369
var returnContainerId = new CSIdentifier ( returnContainer ) ;
370
370
var protoGetter = new CSFunctionCall ( $ "SwiftObjectRegistry.Registry.ExistentialContainerForProtocols", false , retvalId , methodType . Typeof ( ) ) ;
371
371
var protoDecl = CSVariableDeclaration . VarLine ( CSSimpleType . Var , returnContainerId , protoGetter ) ;
372
- var marshalBack = CSFunctionCall . FunctionCallLine ( $ "{ returnContainer } .CopyTo", delegateParams [ 0 ] . Name ) ;
372
+ var marshalBack = CSFunctionCall . FunctionCallLine ( $ "{ returnContainer } .CopyTo", delegateParams [ 1 ] . Name ) ;
373
373
postMarshalCode . Add ( protoDecl ) ;
374
374
postMarshalCode . Add ( marshalBack ) ;
375
375
} else if ( returnIsStruct ) {
376
376
// non-blitable means that the parameter is an IntPtr and we can call the
377
377
// marshaler to copy into it
378
378
use . AddIfNotPresent ( typeof ( StructMarshal ) ) ;
379
379
var marshalCall = CSFunctionCall . FunctionCallLine ( "StructMarshal.Marshaler.ToSwift" , false ,
380
- invoker , delegateParams [ 0 ] . Name ) ;
380
+ invoker , delegateParams [ 1 ] . Name ) ;
381
381
altBody . Add ( marshalCall ) ;
382
382
} else if ( returnIsTuple ) {
383
383
// non-blitable means that the parameter is an IntPtr and we can call the
384
384
// marshaler to copy into it
385
385
use . AddIfNotPresent ( typeof ( StructMarshal ) ) ;
386
386
var marshalCall = CSFunctionCall . FunctionCallLine ( "StructMarshal.Marshaler.ToSwift" , false ,
387
- invoker , delegateParams [ 0 ] . Name ) ;
387
+ invoker , delegateParams [ 1 ] . Name ) ;
388
388
altBody . Add ( marshalCall ) ;
389
389
} else if ( returnIsGeneric ) {
390
390
// T retval = invoker();
391
391
// if (retval is ISwiftObject) {
392
- // Marshal.WriteIntPtr(delegateParams [0 ].Name, ((ISwiftObject)retval).SwiftObject);
392
+ // Marshal.WriteIntPtr(delegateParams [1 ].Name, ((ISwiftObject)retval).SwiftObject);
393
393
// }
394
394
// else {
395
- // StructMarshal.Marshaler.ToSwift(typeof(T), retval, delegateParams[0 ].Name);
395
+ // StructMarshal.Marshaler.ToSwift(typeof(T), retval, delegateParams[1 ].Name);
396
396
// }
397
397
string retvalName = MarshalEngine . Uniqueify ( "retval" , identifiersUsed ) ;
398
398
var retvalId = new CSIdentifier ( retvalName ) ;
399
399
altBody . Add ( CSFieldDeclaration . VarLine ( methodType , retvalId , invoker ) ) ;
400
400
var ifClause = new CSCodeBlock ( ) ;
401
401
ifClause . Add ( CSFunctionCall . FunctionCallLine ( "Marshal.WriteIntPtr" , false ,
402
- delegateParams [ 0 ] . Name ,
402
+ delegateParams [ 1 ] . Name ,
403
403
new CSParenthesisExpression ( new CSCastExpression ( "ISwiftObject" , retvalId ) ) . Dot ( NewClassCompiler . kSwiftObjectGetter ) ) ) ;
404
404
var elseClause = new CSCodeBlock ( ) ;
405
405
elseClause . Add ( CSFunctionCall . FunctionCallLine ( "StructMarshal.Marshaler.ToSwift" , false ,
406
406
methodType . Typeof ( ) ,
407
407
retvalId ,
408
- delegateParams [ 0 ] . Name ) ) ;
408
+ delegateParams [ 1 ] . Name ) ) ;
409
409
CSBaseExpression ifExpr = new CSSimpleType ( "ISwiftObject" ) . Typeof ( ) . Dot ( new CSFunctionCall ( "IsAssignableFrom" , false ,
410
410
methodType . Typeof ( ) ) ) ;
411
411
@@ -515,10 +515,10 @@ public List<ICodeElement> MarshalFromLambdaReceiverToCSProp (CSProperty prop, CS
515
515
body . Add ( CSFieldDeclaration . VarLine ( methodType , retvalId , csharpCall ) ) ;
516
516
if ( returnIsGeneric ) {
517
517
body . Add ( CSFunctionCall . FunctionCallLine ( "StructMarshal.Marshaler.ToSwift" , false ,
518
- methodType . Typeof ( ) , retvalId , delegateParams [ 0 ] . Name ) ) ;
518
+ methodType . Typeof ( ) , retvalId , delegateParams [ 1 ] . Name ) ) ;
519
519
} else {
520
520
body . Add ( CSFunctionCall . FunctionCallLine ( "StructMarshal.Marshaler.ToSwift" , false ,
521
- retvalId , delegateParams [ 0 ] . Name ) ) ;
521
+ retvalId , delegateParams [ 1 ] . Name ) ) ;
522
522
}
523
523
} else if ( returnIsProtocol ) {
524
524
string retvalName = MarshalEngine . Uniqueify ( "retval" , identifiersUsed ) ;
@@ -550,7 +550,7 @@ public List<ICodeElement> MarshalFromLambdaReceiverToCSProp (CSProperty prop, CS
550
550
var returnContainerId = new CSIdentifier ( returnContainerName ) ;
551
551
body . Add ( CSVariableDeclaration . VarLine ( CSSimpleType . Var , returnContainerId , new CSFunctionCall ( "SwiftObjectRegistry.Registry.ExistentialContainerForProtocols" , false , containerExprs . ToArray ( ) ) ) ) ;
552
552
body . Add ( CSFunctionCall . FunctionCallLine ( $ "{ returnContainerName } .CopyTo", false ,
553
- new CSFunctionCall ( "IntPtr" , true , delegateParams [ 0 ] . Name ) ) ) ;
553
+ new CSFunctionCall ( "IntPtr" , true , delegateParams [ 1 ] . Name ) ) ) ;
554
554
555
555
} else {
556
556
if ( returnIsClosure ) {
@@ -571,16 +571,16 @@ public List<ICodeElement> MarshalFromLambdaReceiverToCSProp (CSProperty prop, CS
571
571
entity = ! valueIsGeneric ? typeMapper . GetEntityForTypeSpec ( valueTypeSpec ) : null ;
572
572
entityType = ! valueIsGeneric ? typeMapper . GetEntityTypeForTypeSpec ( funcDecl . ParameterLists [ 1 ] [ 0 ] . TypeSpec ) : EntityType . None ;
573
573
var isBoolNewValue = entityType == EntityType . Scalar && valueTypeName == "Swift.Bool" ;
574
- var isUnusualNewValue = IsUnusualParameter ( entity , delegateParams [ 1 ] ) ;
574
+ var isUnusualNewValue = IsUnusualParameter ( entity , delegateParams [ 2 ] ) ;
575
575
576
576
if ( entityType == EntityType . Class || ( entity != null && entity . IsObjCProtocol ) ) {
577
- var csParmType = delegateParams [ 1 ] . CSType as CSSimpleType ;
577
+ var csParmType = delegateParams [ 2 ] . CSType as CSSimpleType ;
578
578
if ( csParmType == null )
579
579
throw ErrorHelper . CreateError ( ReflectorError . kTypeMapBase + 42 , "Inconceivable! The class type for a method was a CSSimpleType!" ) ;
580
580
var valueIsDynamicSelf = forProtocol && methodType . ToString ( ) == NewClassCompiler . kGenericSelfName ;
581
581
if ( valueIsDynamicSelf ) {
582
582
// code generated:
583
- // var obj = SwiftObjectRegistry.Registry.CSObjectForSwiftObject<thisTypeName> (delegateParams [1 ].Name);
583
+ // var obj = SwiftObjectRegistry.Registry.CSObjectForSwiftObject<thisTypeName> (delegateParams [2 ].Name);
584
584
// callSite = (TSelf)(obj.xamarinImpl ?? obj)
585
585
var proxObjName = MarshalEngine . Uniqueify ( "proxyObj" , identifiersUsed ) ;
586
586
identifiersUsed . Add ( proxObjName ) ;
@@ -591,7 +591,7 @@ public List<ICodeElement> MarshalFromLambdaReceiverToCSProp (CSProperty prop, CS
591
591
} else {
592
592
use . AddIfNotPresent ( typeof ( SwiftObjectRegistry ) ) ;
593
593
var fullClassName = entity . Type . ToFullyQualifiedName ( true ) ;
594
- var retrievecall = NewClassCompiler . SafeMarshalClassFromIntPtr ( delegateParams [ 1 ] . Name , csParmType , use , fullClassName , typeMapper , entity . IsObjCProtocol ) ;
594
+ var retrievecall = NewClassCompiler . SafeMarshalClassFromIntPtr ( delegateParams [ 2 ] . Name , csParmType , use , fullClassName , typeMapper , entity . IsObjCProtocol ) ;
595
595
valueExpr = retrievecall ;
596
596
}
597
597
} else if ( entityType == EntityType . Protocol ) {
@@ -602,9 +602,9 @@ public List<ICodeElement> MarshalFromLambdaReceiverToCSProp (CSProperty prop, CS
602
602
var ntb = typeMapper . MapType ( funcDecl , funcDecl . ParameterLists [ 1 ] [ 0 ] . TypeSpec , false ) ;
603
603
var valType = ntb . ToCSType ( use ) ;
604
604
if ( entityType == EntityType . TrivialEnum ) {
605
- valueExpr = new CSCastExpression ( valType , new CSCastExpression ( CSSimpleType . Long , delegateParams [ 1 ] . Name ) ) ;
605
+ valueExpr = new CSCastExpression ( valType , new CSCastExpression ( CSSimpleType . Long , delegateParams [ 2 ] . Name ) ) ;
606
606
} else {
607
- var marshalCall = new CSFunctionCall ( "StructMarshal.Marshaler.ToNet" , false , delegateParams [ 1 ] . Name , valType . Typeof ( ) ) ;
607
+ var marshalCall = new CSFunctionCall ( "StructMarshal.Marshaler.ToNet" , false , delegateParams [ 2 ] . Name , valType . Typeof ( ) ) ;
608
608
valueExpr = new CSCastExpression ( valType , marshalCall ) ;
609
609
}
610
610
} else if ( valueIsGeneric ) {
@@ -614,12 +614,12 @@ public List<ICodeElement> MarshalFromLambdaReceiverToCSProp (CSProperty prop, CS
614
614
var genRef = new CSGenericReferenceType ( depthIndex . Item1 , depthIndex . Item2 ) ;
615
615
genRef . ReferenceNamer = GenericRenamer ;
616
616
use . AddIfNotPresent ( typeof ( StructMarshal ) ) ;
617
- string valMarshalName = MarshalEngine . Uniqueify ( delegateParams [ 1 ] . Name + "Temp" , identifiersUsed ) ;
617
+ string valMarshalName = MarshalEngine . Uniqueify ( delegateParams [ 2 ] . Name + "Temp" , identifiersUsed ) ;
618
618
var valMarshalId = new CSIdentifier ( valMarshalName ) ;
619
619
620
620
var valDecl = CSVariableDeclaration . VarLine ( genRef , valMarshalId ,
621
621
new CSCastExpression ( genRef , new CSFunctionCall ( "StructMarshal.Marshaler.ToNet" , false ,
622
- delegateParams [ 1 ] . Name ,
622
+ delegateParams [ 2 ] . Name ,
623
623
genRef . Typeof ( ) ) ) ) ;
624
624
body . Add ( valDecl ) ;
625
625
valueExpr = valMarshalId ;
@@ -631,9 +631,9 @@ public List<ICodeElement> MarshalFromLambdaReceiverToCSProp (CSProperty prop, CS
631
631
flags |= ClosureFlags . Throws ;
632
632
if ( closureReturn . IsAsync )
633
633
flags |= ClosureFlags . Async ;
634
- valueExpr = MarshalEngine . BuildWrappedClosureCall ( delegateParams [ 1 ] . Name , methodType as CSSimpleType , flags ) ;
634
+ valueExpr = MarshalEngine . BuildWrappedClosureCall ( delegateParams [ 2 ] . Name , methodType as CSSimpleType , flags ) ;
635
635
} else {
636
- valueExpr = delegateParams [ 1 ] . Name ;
636
+ valueExpr = delegateParams [ 2 ] . Name ;
637
637
if ( isBoolNewValue ) {
638
638
valueExpr = NIntToBool ( valueExpr ) ;
639
639
}
0 commit comments