mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Diagnostic categories are entirely unused and arguably useless as implemented, as they merely denote the sub-component of the compiler. As far as categorizing warnings are concerned, I'm abandoning the effort for now, as the utility is marginal and Swift and the Swift compiler are probalby not ready for these to be nailed down. For the sake of cleanliness, the CATEGORY field is also stripped from WARNINGS. If there's a need for automatic identifying of compiler sub-components for diagnstics in the future, there are better ways to do this. NFC
56 lines
1.5 KiB
C++
56 lines
1.5 KiB
C++
//===--- DiagnosticsCommon.h - Shared Diagnostic Definitions ----*- C++ -*-===//
|
|
//
|
|
// This source file is part of the Swift.org open source project
|
|
//
|
|
// Copyright (c) 2014 - 2016 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
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
/// \file
|
|
/// \brief This file defines common diagnostics for the whole compiler, as well
|
|
/// as some diagnostic infrastructure.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef SWIFT_DIAGNOSTICSCOMMON_H
|
|
#define SWIFT_DIAGNOSTICSCOMMON_H
|
|
|
|
#include "swift/AST/DiagnosticEngine.h"
|
|
#include "swift/Basic/LLVM.h"
|
|
#include "swift/Config.h"
|
|
|
|
namespace swift {
|
|
template<typename ...ArgTypes>
|
|
struct Diag;
|
|
|
|
namespace detail {
|
|
template<typename T>
|
|
struct DiagWithArguments;
|
|
|
|
template<typename ...ArgTypes>
|
|
struct DiagWithArguments<void(ArgTypes...)> {
|
|
typedef Diag<ArgTypes...> type;
|
|
};
|
|
}
|
|
|
|
enum class StaticSpellingKind : uint8_t;
|
|
|
|
namespace diag {
|
|
|
|
enum class RequirementKind : uint8_t;
|
|
|
|
using DeclAttribute = const DeclAttribute *;
|
|
|
|
// Declare common diagnostics objects with their appropriate types.
|
|
#define DIAG(KIND,ID,Options,Text,Signature) \
|
|
extern detail::DiagWithArguments<void Signature>::type ID;
|
|
#include "DiagnosticsCommon.def"
|
|
}
|
|
}
|
|
|
|
#endif
|