Пример #1
0
        private static void ProcessReferencePointer(AST ast, NativeType type, CXType cxType, TypeVisitContext context)
        {
            Debug.Assert(type.TypeKind == BasicType.Unknown);
            type.IsConst = ClangTraits.IsConst(cxType);

            CXType     pointeeType = clang.getPointeeType(cxType);
            NativeType nativeType  = GetNativeType(ast, pointeeType, context);

            if (ClangTraits.IsLValueReference(cxType))
            {
                type.SetTypeLValRef(nativeType);
            }
            else if (ClangTraits.IsRValueReference(cxType))
            {
                type.SetTypeRValRef(nativeType);
            }
            else if (ClangTraits.IsPointer(cxType))
            {
                type.SetPointer(nativeType);
            }

            Debug.Assert(type.TypeKind != BasicType.Unknown);
        }