|
|
@ -23,17 +23,18 @@ namespace CppSharp.Passes |
|
|
|
if (pointerType != null && !pointerType.IsReference) |
|
|
|
if (pointerType != null && !pointerType.IsReference) |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
var qualifiedPointee = parameter.Type.SkipPointerRefs(); |
|
|
|
var qualifiedPointee = parameter.Type.GetFinalPointee() ?? parameter.Type; |
|
|
|
Class castFromClass; |
|
|
|
Class castFromClass; |
|
|
|
|
|
|
|
var castToClass = method.OriginalNamespace as Class; |
|
|
|
if (qualifiedPointee.TryGetClass(out castFromClass)) |
|
|
|
if (qualifiedPointee.TryGetClass(out castFromClass)) |
|
|
|
{ |
|
|
|
{ |
|
|
|
var castToClass = method.OriginalNamespace as Class; |
|
|
|
|
|
|
|
if (castToClass == null) |
|
|
|
if (castToClass == null) |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
if (castFromClass == castToClass) |
|
|
|
if (castFromClass == castToClass) |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (castToClass != null && castToClass.IsAbstract) |
|
|
|
|
|
|
|
return false; |
|
|
|
var operatorKind = method.IsExplicit |
|
|
|
var operatorKind = method.IsExplicit |
|
|
|
? CXXOperatorKind.ExplicitConversion |
|
|
|
? CXXOperatorKind.ExplicitConversion |
|
|
|
: CXXOperatorKind.Conversion; |
|
|
|
: CXXOperatorKind.Conversion; |
|
|
|