//===--- DefaultArgumentKind.h - Default Argument Kind Enum -----*- C++ -*-===// // // This source file is part of the Swift.org open source project // // Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors // Licensed under Apache License v2.0 with Runtime Library Exception // // See https://swift.org/LICENSE.txt for license information // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// // // This file defines the DefaultArgumentKind enumeration. // //===----------------------------------------------------------------------===// #ifndef SWIFT_DEFAULTARGUMENTKIND_H #define SWIFT_DEFAULTARGUMENTKIND_H #include namespace llvm { class StringRef; } namespace swift { class Expr; /// Describes the kind of default argument a tuple pattern element has. enum class DefaultArgumentKind : uint8_t { /// No default argument. None, /// A normal default argument. Normal, /// The default argument is inherited from the corresponding argument of the /// overridden declaration. Inherited, /// The #file default argument, which is expanded at the call site. File, /// The #filePath default argument, which is expanded at the call site. FilePath, /// The #line default argument, which is expanded at the call site. Line, /// The #column default argument, which is expanded at the call site. Column, /// The #function default argument, which is expanded at the call site. Function, /// The #dsohandle default argument, which is expanded at the call site. DSOHandle, /// The "nil" literal. NilLiteral, /// An empty array literal. EmptyArray, /// An empty dictionary literal. EmptyDictionary, /// A reference to the stored property. This is a special default argument /// kind for the synthesized memberwise constructor to emit a call to the // property's initializer. StoredProperty, }; enum { NumDefaultArgumentKindBits = 4 }; } // end namespace swift #endif // LLVM_SWIFT_DEFAULTARGUMENTKIND_H