Files
swift-mirror/include/swift/Basic/DemangleNodes.def
John McCall cae0f6e3db Add the ability for a owning addressor to return
a non-native owner.  This is required by Slice, which
will use an ObjC immutable array object as the owner
as long as all the elements are contiguous.

As part of this, I decided it was best to encode the
native requirement in the accessor names.  This makes
some of these accessors really long; we can revisit this
if we productize this feature.

Note that pinning addressors still require a native
owner, since pinning as a feature is specific to swift
refcounting.

Swift SVN r24420
2015-01-14 19:14:20 +00:00

146 lines
3.5 KiB
C++

//===-- DemangleNodes.def - Demangling Tree Metaprogramming -----*- C++ -*-===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See http://swift.org/LICENSE.txt for license information
// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
//
// This file defines macros useful for macro-metaprogramming with nodes in
// the demangling tree.
//
//===----------------------------------------------------------------------===//
/// NODE(ID)
/// The node's enumerator value is Node::Kind::ID.
NODE(Failure)
NODE(Allocator)
NODE(ArchetypeAndProtocol)
NODE(ArchetypeRef)
NODE(ArgumentTuple)
NODE(AssociatedTypeRef)
NODE(AutoClosureType)
NODE(BoundGenericClass)
NODE(BoundGenericEnum)
NODE(BoundGenericStructure)
NODE(BuiltinTypeName)
NODE(Class)
NODE(Constructor)
NODE(Deallocator)
NODE(DeclContext)
NODE(DefaultArgumentInitializer)
NODE(DependentGenericSignature)
NODE(DependentGenericParamCount)
NODE(DependentGenericConformanceRequirement)
NODE(DependentGenericSameTypeRequirement)
NODE(DependentGenericType)
NODE(DependentMemberType)
NODE(DependentGenericParamType)
NODE(DependentProtocolWitnessTableGenerator)
NODE(DependentProtocolWitnessTableTemplate)
NODE(Destructor)
NODE(DidSet)
NODE(Directness)
NODE(DynamicAttribute)
NODE(DynamicSelf)
NODE(Enum)
NODE(ErrorType)
NODE(ExistentialMetatype)
NODE(ExplicitClosure)
NODE(Extension)
NODE(FieldOffset)
NODE(Function)
NODE(FunctionType)
NODE(Generics)
NODE(GenericType)
NODE(GenericTypeMetadataPattern)
NODE(Getter)
NODE(Global)
NODE(GlobalGetter)
NODE(Identifier)
NODE(IVarInitializer)
NODE(IVarDestroyer)
NODE(ImplConvention)
NODE(ImplFunctionAttribute)
NODE(ImplFunctionType)
NODE(ImplicitClosure)
NODE(ImplParameter)
NODE(ImplResult)
NODE(InOut)
NODE(InfixOperator)
NODE(Initializer)
NODE(LazyProtocolWitnessTableAccessor)
NODE(LazyProtocolWitnessTableTemplate)
NODE(LocalDeclName)
NODE(MaterializeForSet)
NODE(Metatype)
NODE(MetatypeRepresentation)
NODE(Metaclass)
NODE(Module)
NODE(NativeOwningAddressor)
NODE(NativeOwningMutableAddressor)
NODE(NativePinningAddressor)
NODE(NativePinningMutableAddressor)
NODE(NominalTypeDescriptor)
NODE(NonObjCAttribute)
NODE(NonVariadicTuple)
NODE(Number)
NODE(ObjCAttribute)
NODE(ObjCBlock)
NODE(OwningAddressor)
NODE(OwningMutableAddressor)
NODE(PartialApplyForwarder)
NODE(PartialApplyObjCForwarder)
NODE(PostfixOperator)
NODE(PrefixOperator)
NODE(PrivateDeclName)
NODE(Protocol)
NODE(ProtocolConformance)
NODE(ProtocolList)
NODE(ProtocolWitness)
NODE(ProtocolWitnessTable)
NODE(QualifiedArchetype)
NODE(ReabstractionThunk)
NODE(ReabstractionThunkHelper)
NODE(ReturnType)
NODE(SelfTypeRef)
NODE(Setter)
NODE(SpecializedAttribute)
NODE(SpecializationKind)
NODE(GenericSpecializationParam)
NODE(FunctionSignatureSpecializationParam)
NODE(FunctionSignatureSpecializationParamInfo)
NODE(Structure)
NODE(Subscript)
NODE(Suffix)
NODE(ThinFunctionType)
NODE(TupleElement)
NODE(TupleElementName)
NODE(TupleElementType)
NODE(Type)
NODE(TypeAlias)
NODE(TypeList)
NODE(TypeMetadata)
NODE(TypeMetadataAccessFunction)
NODE(TypeMetadataLazyCache)
NODE(UncurriedFunctionType)
NODE(Unknown)
NODE(Unmanaged)
NODE(Unowned)
NODE(UnsafeAddressor)
NODE(UnsafeMutableAddressor)
NODE(ValueWitness)
NODE(ValueWitnessTable)
NODE(Variable)
NODE(VariadicTuple)
NODE(Weak)
NODE(WillSet)
NODE(WitnessTableOffset)
#undef NODE