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?

Reply via email to