Add basic support for variable-length array parameters in cinterop (#2666)

This commit is contained in:
SvyatoslavScherbina
2019-02-18 09:54:41 +03:00
committed by GitHub
parent de65e29fbe
commit 469eede9d3
4 changed files with 53 additions and 5 deletions
@@ -522,14 +522,19 @@ internal class NativeIndexImpl(val library: NativeLibrary, val verbose: Boolean
}
CXType_ConstantArray -> {
val elemType = convertType(clang_getArrayElementType(type))
val elementType = convertType(clang_getArrayElementType(type))
val length = clang_getArraySize(type)
ConstArrayType(elemType, length)
ConstArrayType(elementType, length)
}
CXType_IncompleteArray -> {
val elemType = convertType(clang_getArrayElementType(type))
IncompleteArrayType(elemType)
val elementType = convertType(clang_getArrayElementType(type))
IncompleteArrayType(elementType)
}
CXType_VariableArray -> {
val elementType = convertType(clang_getArrayElementType(type))
VariableArrayType(elementType)
}
CXType_FunctionProto -> {
@@ -266,6 +266,7 @@ interface ArrayType : Type {
data class ConstArrayType(override val elemType: Type, val length: Long) : ArrayType
data class IncompleteArrayType(override val elemType: Type) : ArrayType
data class VariableArrayType(override val elemType: Type) : ArrayType
data class Typedef(val def: TypedefDef) : Type