blob: 68ad426f997da87a447ece9ae38bca4de7ab4b77 [file] [log] [blame]
// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
typedef void (*NamedFunctionProto)();
struct Struct1
{
NamedFunctionProto named;
void (*unnamed)();
};
extern NamedFunctionProto func1(NamedFunctionProto named, void (*unnamed)(int));
typedef struct
{
} AnonymousStructInTypedef;
// These typerefs do not affect the name of AnonymousStructInTypedef.
typedef AnonymousStructInTypedef Typeref1;
typedef AnonymousStructInTypedef Typeref2;
// Name from global namespace is used.
typedef struct _NamedStructInTypedef
{
} NamedStructInTypedef;
// Both these names must be exlucded or this struct will be generated.
typedef struct _ExcludedStruct
{
} ExcludedStruct;
typedef ExcludedStruct NTyperef1;
// Because `struct _ExcludedStruct` is excluded, the type name used
// in this function (the first function) will be used.
// Therefore, _ExcludedStruct will be generated as NTyperef1.
void func2(NTyperef1 *);
typedef enum
{
a=0
} AnonymousEnumInTypedef;
// Name from global namespace is used.
typedef enum _NamedEnumInTypedef
{
b=0
} NamedEnumInTypedef;
// Should be treated as IntPtr when used.
typedef char specified_type_as_IntPtr;
typedef specified_type_as_IntPtr nesting_a_specified_type;
void func3(specified_type_as_IntPtr, nesting_a_specified_type b);