I am getting confusing behaviour with some complex type aliases while using
Cxx.jl and I was hoping someone could point out what is going on.
These are the aliases:
typealias CppAWSErrorType{C, I<:Integer} CppTemplate{CppBaseType{Symbol(
"Aws::Client::AWSError")}, Tuple{CppEnum{C, I}}}
typealias CppAWSError{C, I<:Integer, Q} CppRef{CppAWSErrorType{C, I}, Q}
...
aws_raw_error = @cxx list_buckets_outcome->GetError()
thetype = AWSCxx.CppAWSError{Symbol("Aws::S3::S3Errors"), Int32, (false,
false, false)}
@test typeof(aws_raw_error) <: thetype # success
@test typeof(aws_raw_error) == thetype # success
@test isa(aws_raw_error, thetype) # success
@test typeof(aws_raw_error) <: AWSCxx.CppAWSError # failure
@test isa(aws_raw_error, AWSCxx.CppAWSError) # failure
Can anyone help?