@@ -26,10 +26,10 @@ extension FFMSwift2JavaGenerator {
2626 ) throws -> LoweredFunctionSignature {
2727 let signature = try SwiftFunctionSignature (
2828 decl,
29- enclosingType: try enclosingType. map { try SwiftType ( $0, symbolTable : symbolTable ) } ,
30- symbolTable : symbolTable
29+ enclosingType: try enclosingType. map { try SwiftType ( $0, lookupContext : lookupContext ) } ,
30+ lookupContext : lookupContext
3131 )
32- return try CdeclLowering ( symbolTable: symbolTable) . lowerFunctionSignature ( signature)
32+ return try CdeclLowering ( symbolTable: lookupContext . symbolTable) . lowerFunctionSignature ( signature)
3333 }
3434
3535 /// Lower the given initializer to a C-compatible entrypoint,
@@ -42,11 +42,11 @@ extension FFMSwift2JavaGenerator {
4242 ) throws -> LoweredFunctionSignature {
4343 let signature = try SwiftFunctionSignature (
4444 decl,
45- enclosingType: try enclosingType. map { try SwiftType ( $0, symbolTable : symbolTable ) } ,
46- symbolTable : symbolTable
45+ enclosingType: try enclosingType. map { try SwiftType ( $0, lookupContext : lookupContext ) } ,
46+ lookupContext : lookupContext
4747 )
4848
49- return try CdeclLowering ( symbolTable: symbolTable) . lowerFunctionSignature ( signature)
49+ return try CdeclLowering ( symbolTable: lookupContext . symbolTable) . lowerFunctionSignature ( signature)
5050 }
5151
5252 /// Lower the given variable decl to a C-compatible entrypoint,
@@ -66,10 +66,10 @@ extension FFMSwift2JavaGenerator {
6666 let signature = try SwiftFunctionSignature (
6767 decl,
6868 isSet: isSet,
69- enclosingType: try enclosingType. map { try SwiftType ( $0, symbolTable : symbolTable ) } ,
70- symbolTable : symbolTable
69+ enclosingType: try enclosingType. map { try SwiftType ( $0, lookupContext : lookupContext ) } ,
70+ lookupContext : lookupContext
7171 )
72- return try CdeclLowering ( symbolTable: symbolTable) . lowerFunctionSignature ( signature)
72+ return try CdeclLowering ( symbolTable: lookupContext . symbolTable) . lowerFunctionSignature ( signature)
7373 }
7474}
7575
@@ -344,6 +344,9 @@ struct CdeclLowering {
344344
345345 case . optional( let wrapped) :
346346 return try lowerOptionalParameter ( wrapped, convention: convention, parameterName: parameterName)
347+
348+ case . genericParameter:
349+ throw LoweringError . unhandledType ( type)
347350 }
348351 }
349352
@@ -413,7 +416,7 @@ struct CdeclLowering {
413416 }
414417 throw LoweringError . unhandledType ( . optional( wrappedType) )
415418
416- case . function, . metatype, . optional:
419+ case . function, . metatype, . optional, . genericParameter :
417420 throw LoweringError . unhandledType ( . optional( wrappedType) )
418421 }
419422 }
@@ -514,7 +517,7 @@ struct CdeclLowering {
514517 // Custom types are not supported yet.
515518 throw LoweringError . unhandledType ( type)
516519
517- case . function, . metatype, . optional, . tuple, . existential, . opaque:
520+ case . genericParameter , . function, . metatype, . optional, . tuple, . existential, . opaque:
518521 // TODO: Implement
519522 throw LoweringError . unhandledType ( type)
520523 }
@@ -668,7 +671,7 @@ struct CdeclLowering {
668671 conversion: . tupleExplode( conversions, name: outParameterName)
669672 )
670673
671- case . function, . optional, . existential, . opaque:
674+ case . genericParameter , . function, . optional, . existential, . opaque:
672675 throw LoweringError . unhandledType ( type)
673676 }
674677 }
0 commit comments