mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Teach TuplePatternElt to keep track of the kind of the default argument: none, normal (provided by calling into the appropriate callee generator), __FILE__, __LINE__, or __COLUMN__. For the latter three cases, the type checker forms the appropriate argument as part of the call. The actual default argument expression will only be held in the tuple pattern element when we've parsed it; it won't be serialized or deserialized, because only the defining module cares. This is a step toward eliminate the initialization expression from tuple types. The extension to TupleShuffleExpr is a hack, which will also be replicated in ScalarToTupleExpr, until we finally rework the representation of TupleShuffleExpr (<rdar://problem/12340004>). Swift SVN r6299
40 lines
1.2 KiB
C++
40 lines
1.2 KiB
C++
//===--- DefaultArgumentKind.h - Default Argument Kind Enum -----*- 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 the DefaultArgumentKind enumeration.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef SWIFT_DEFAULTARGUMENTKIND_H
|
|
#define SWIFT_DEFAULTARGUMENTKIND_H
|
|
|
|
namespace swift {
|
|
|
|
/// Describes the kind of default argument a tuple pattern element has.
|
|
enum class DefaultArgumentKind {
|
|
/// No default argument.
|
|
None,
|
|
/// A normal default argument.
|
|
Normal,
|
|
/// The __FILE__ default argument, which is expanded at the call site.
|
|
File,
|
|
/// The __LINE__ default argument, which is expanded at the call site.
|
|
Line,
|
|
/// The __COLUMN__ default argument, which is expanded at the call site.
|
|
Column
|
|
};
|
|
|
|
} // end namespace swift
|
|
|
|
#endif // LLVM_SWIFT_DEFAULTARGUMENTKIND_H
|
|
|