mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Switch all request infrastructure to SWIFT_REQUEST
Formally define the Zones in the TypeID header. This is not its final resting place.
This commit is contained in:
@@ -36,10 +36,8 @@ class Type;
|
||||
struct TypePair;
|
||||
enum class AncestryFlags : uint8_t;
|
||||
|
||||
#define SWIFT_AST_TYPEID_ZONE 1
|
||||
|
||||
// Define the AST type zone (zone 1)
|
||||
#define SWIFT_TYPEID_ZONE SWIFT_AST_TYPEID_ZONE
|
||||
#define SWIFT_TYPEID_ZONE AST
|
||||
#define SWIFT_TYPEID_HEADER "swift/AST/ASTTypeIDZone.def"
|
||||
#include "swift/Basic/DefineTypeIDZone.h"
|
||||
|
||||
|
||||
@@ -97,24 +97,21 @@ public:
|
||||
void cacheResult(DefaultAndMax value) const;
|
||||
};
|
||||
|
||||
/// The zone number for access-control requests.
|
||||
#define SWIFT_ACCESS_REQUESTS_TYPEID_ZONE 11
|
||||
|
||||
#define SWIFT_TYPEID_ZONE SWIFT_ACCESS_REQUESTS_TYPEID_ZONE
|
||||
#define SWIFT_TYPEID_ZONE AccessControl
|
||||
#define SWIFT_TYPEID_HEADER "swift/AST/AccessTypeIDZone.def"
|
||||
#include "swift/Basic/DefineTypeIDZone.h"
|
||||
#undef SWIFT_TYPEID_ZONE
|
||||
#undef SWIFT_TYPEID_HEADER
|
||||
|
||||
// Set up reporting of evaluated requests.
|
||||
#define SWIFT_TYPEID(RequestType) \
|
||||
#define SWIFT_REQUEST(Zone, RequestType) \
|
||||
template<> \
|
||||
inline void reportEvaluatedRequest(UnifiedStatsReporter &stats, \
|
||||
const RequestType &request) { \
|
||||
++stats.getFrontendCounters().RequestType; \
|
||||
}
|
||||
#include "swift/AST/AccessTypeIDZone.def"
|
||||
#undef SWIFT_TYPEID
|
||||
#undef SWIFT_REQUEST
|
||||
|
||||
} // end namespace swift
|
||||
|
||||
|
||||
@@ -249,7 +249,7 @@ public:
|
||||
///
|
||||
/// These functions will be called to evaluate any requests within that
|
||||
/// zone.
|
||||
void registerRequestFunctions(uint8_t zoneID,
|
||||
void registerRequestFunctions(Zone zone,
|
||||
ArrayRef<AbstractRequestFunction *> functions);
|
||||
|
||||
/// Evaluate the given request and produce its result,
|
||||
|
||||
@@ -254,10 +254,7 @@ public:
|
||||
void cacheResult(DestructorDecl *value) const;
|
||||
};
|
||||
|
||||
/// The zone number for name-lookup requests.
|
||||
#define SWIFT_NAME_LOOKUP_REQUESTS_TYPEID_ZONE 9
|
||||
|
||||
#define SWIFT_TYPEID_ZONE SWIFT_NAME_LOOKUP_REQUESTS_TYPEID_ZONE
|
||||
#define SWIFT_TYPEID_ZONE NameLookup
|
||||
#define SWIFT_TYPEID_HEADER "swift/AST/NameLookupTypeIDZone.def"
|
||||
#include "swift/Basic/DefineTypeIDZone.h"
|
||||
#undef SWIFT_TYPEID_ZONE
|
||||
@@ -268,14 +265,14 @@ template<typename Request>
|
||||
void reportEvaluatedRequest(UnifiedStatsReporter &stats,
|
||||
const Request &request);
|
||||
|
||||
#define SWIFT_TYPEID(RequestType) \
|
||||
#define SWIFT_REQUEST(Zone, RequestType) \
|
||||
template<> \
|
||||
inline void reportEvaluatedRequest(UnifiedStatsReporter &stats, \
|
||||
const RequestType &request) { \
|
||||
++stats.getFrontendCounters().RequestType; \
|
||||
}
|
||||
#include "swift/AST/NameLookupTypeIDZone.def"
|
||||
#undef SWIFT_TYPEID
|
||||
#undef SWIFT_REQUEST
|
||||
|
||||
} // end namespace swift
|
||||
|
||||
|
||||
@@ -1150,24 +1150,21 @@ inline bool AnyValue::Holder<Type>::equals(const HolderBase &other) const {
|
||||
|
||||
void simple_display(llvm::raw_ostream &out, Type value);
|
||||
|
||||
/// The zone number for the type checker.
|
||||
#define SWIFT_TYPE_CHECKER_REQUESTS_TYPEID_ZONE 10
|
||||
|
||||
#define SWIFT_TYPEID_ZONE SWIFT_TYPE_CHECKER_REQUESTS_TYPEID_ZONE
|
||||
#define SWIFT_TYPEID_ZONE TypeChecker
|
||||
#define SWIFT_TYPEID_HEADER "swift/AST/TypeCheckerTypeIDZone.def"
|
||||
#include "swift/Basic/DefineTypeIDZone.h"
|
||||
#undef SWIFT_TYPEID_ZONE
|
||||
#undef SWIFT_TYPEID_HEADER
|
||||
|
||||
// Set up reporting of evaluated requests.
|
||||
#define SWIFT_TYPEID(RequestType) \
|
||||
#define SWIFT_REQUEST(Zone, RequestType) \
|
||||
template<> \
|
||||
inline void reportEvaluatedRequest(UnifiedStatsReporter &stats, \
|
||||
const RequestType &request) { \
|
||||
++stats.getFrontendCounters().RequestType; \
|
||||
}
|
||||
#include "swift/AST/TypeCheckerTypeIDZone.def"
|
||||
#undef SWIFT_TYPEID
|
||||
#undef SWIFT_REQUEST
|
||||
|
||||
} // end namespace swift
|
||||
|
||||
|
||||
@@ -33,9 +33,10 @@
|
||||
|
||||
// Define a TypeID where the type name and internal name are the same.
|
||||
#define SWIFT_TYPEID(Type) SWIFT_TYPEID_NAMED(Type, Type)
|
||||
#define SWIFT_REQUEST(Zone, Type) SWIFT_TYPEID_NAMED(Type, Type)
|
||||
|
||||
// First pass: put all of the names into an enum so we get values for them.
|
||||
template<> struct TypeIDZoneTypes<SWIFT_TYPEID_ZONE> {
|
||||
template<> struct TypeIDZoneTypes<Zone::SWIFT_TYPEID_ZONE> {
|
||||
enum Types : uint8_t {
|
||||
#define SWIFT_TYPEID_NAMED(Type, Name) Name,
|
||||
#define SWIFT_TYPEID_TEMPLATE1_NAMED(Template, Name, Param1, Arg1) Name,
|
||||
@@ -48,9 +49,10 @@ template<> struct TypeIDZoneTypes<SWIFT_TYPEID_ZONE> {
|
||||
// Second pass: create specializations of TypeID for these types.
|
||||
#define SWIFT_TYPEID_NAMED(Type, Name) \
|
||||
template<> struct TypeID<Type> { \
|
||||
static const uint8_t zoneID = SWIFT_TYPEID_ZONE; \
|
||||
static const uint8_t zoneID = \
|
||||
static_cast<uint8_t>(Zone::SWIFT_TYPEID_ZONE); \
|
||||
static const uint8_t localID = \
|
||||
TypeIDZoneTypes<SWIFT_TYPEID_ZONE>::Name; \
|
||||
TypeIDZoneTypes<Zone::SWIFT_TYPEID_ZONE>::Name; \
|
||||
\
|
||||
static const uint64_t value = formTypeID(zoneID, localID); \
|
||||
\
|
||||
@@ -61,8 +63,8 @@ template<> struct TypeID<Type> { \
|
||||
template<Param1> struct TypeID<Template<Arg1>> { \
|
||||
private: \
|
||||
static const uint64_t templateID = \
|
||||
formTypeID(SWIFT_TYPEID_ZONE, \
|
||||
TypeIDZoneTypes<SWIFT_TYPEID_ZONE>::Name); \
|
||||
formTypeID(static_cast<uint8_t>(Zone::SWIFT_TYPEID_ZONE), \
|
||||
TypeIDZoneTypes<Zone::SWIFT_TYPEID_ZONE>::Name); \
|
||||
\
|
||||
public: \
|
||||
static const uint64_t value = \
|
||||
@@ -76,6 +78,9 @@ public: \
|
||||
template<Param1> const uint64_t TypeID<Template<Arg1>>::value;
|
||||
|
||||
#include SWIFT_TYPEID_HEADER
|
||||
|
||||
#undef SWIFT_REQUEST
|
||||
|
||||
#undef SWIFT_TYPEID_NAMED
|
||||
#undef SWIFT_TYPEID_TEMPLATE1_NAMED
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
#endif
|
||||
|
||||
// Define a TypeID where the type name and internal name are the same.
|
||||
#define SWIFT_REQUEST(Zone, Type) SWIFT_TYPEID_NAMED(Type, Type)
|
||||
#define SWIFT_TYPEID(Type) SWIFT_TYPEID_NAMED(Type, Type)
|
||||
|
||||
// Out-of-line definitions.
|
||||
@@ -43,6 +44,8 @@
|
||||
|
||||
#include SWIFT_TYPEID_HEADER
|
||||
|
||||
#undef SWIFT_REQUEST
|
||||
|
||||
#undef SWIFT_TYPEID_NAMED
|
||||
#undef SWIFT_TYPEID_TEMPLATE1_NAMED
|
||||
|
||||
|
||||
@@ -27,6 +27,22 @@
|
||||
|
||||
namespace swift {
|
||||
|
||||
enum class Zone : uint8_t {
|
||||
C = 0,
|
||||
AST = 1,
|
||||
AccessControl = 11,
|
||||
IDETypes = 136,
|
||||
IDE = 137,
|
||||
IDETypeChecking = 97,
|
||||
NameLookup = 9,
|
||||
TypeChecker = 10,
|
||||
// N.B. This is not a formal zone and exists solely to support the unit tests.
|
||||
ArithmeticEvaluator = 255,
|
||||
};
|
||||
|
||||
static_assert(std::is_same<std::underlying_type<Zone>::type, uint8_t>::value,
|
||||
"underlying type is no longer uint8_t!");
|
||||
|
||||
/// Form a unique 64-bit integer value describing the type `T`.
|
||||
///
|
||||
/// This template needs to be specialized for every type that can
|
||||
@@ -37,7 +53,7 @@ struct TypeID;
|
||||
|
||||
/// Template whose specializations provide the set of type IDs within a
|
||||
/// given zone.
|
||||
template<uint8_t Zone> struct TypeIDZoneTypes;
|
||||
template<Zone Zone> struct TypeIDZoneTypes;
|
||||
|
||||
/// Form a type ID given a zone and type value.
|
||||
constexpr uint64_t formTypeID(uint8_t zone, uint8_t type) {
|
||||
@@ -45,7 +61,7 @@ constexpr uint64_t formTypeID(uint8_t zone, uint8_t type) {
|
||||
}
|
||||
|
||||
// Define the C type zone (zone 0).
|
||||
#define SWIFT_TYPEID_ZONE 0
|
||||
#define SWIFT_TYPEID_ZONE C
|
||||
#define SWIFT_TYPEID_HEADER "swift/Basic/CTypeIDZone.def"
|
||||
#include "swift/Basic/DefineTypeIDZone.h"
|
||||
|
||||
|
||||
@@ -282,22 +282,21 @@ public:
|
||||
};
|
||||
|
||||
/// The zone number for the IDE.
|
||||
#define SWIFT_IDE_REQUESTS_TYPEID_ZONE 137
|
||||
#define SWIFT_TYPEID_ZONE SWIFT_IDE_REQUESTS_TYPEID_ZONE
|
||||
#define SWIFT_TYPEID_ZONE IDE
|
||||
#define SWIFT_TYPEID_HEADER "swift/IDE/IDERequestIDZone.def"
|
||||
#include "swift/Basic/DefineTypeIDZone.h"
|
||||
#undef SWIFT_TYPEID_ZONE
|
||||
#undef SWIFT_TYPEID_HEADER
|
||||
|
||||
// Set up reporting of evaluated requests.
|
||||
#define SWIFT_TYPEID(RequestType) \
|
||||
#define SWIFT_REQUEST(Zone, RequestType) \
|
||||
template<> \
|
||||
inline void reportEvaluatedRequest(UnifiedStatsReporter &stats, \
|
||||
const RequestType &request) { \
|
||||
++stats.getFrontendCounters().RequestType; \
|
||||
}
|
||||
#include "swift/IDE/IDERequestIDZone.def"
|
||||
#undef SWIFT_TYPEID
|
||||
#undef SWIFT_REQUEST
|
||||
|
||||
} // end namespace swift
|
||||
|
||||
|
||||
@@ -20,8 +20,7 @@
|
||||
#include "swift/Basic/TypeID.h"
|
||||
namespace swift {
|
||||
|
||||
#define SWIFT_IDE_TYPEID_ZONE 136
|
||||
#define SWIFT_TYPEID_ZONE SWIFT_IDE_TYPEID_ZONE
|
||||
#define SWIFT_TYPEID_ZONE IDETypes
|
||||
#define SWIFT_TYPEID_HEADER "swift/IDE/IDETypeIDZone.def"
|
||||
#include "swift/Basic/DefineTypeIDZone.h"
|
||||
|
||||
|
||||
@@ -258,22 +258,21 @@ public:
|
||||
};
|
||||
|
||||
/// The zone number for the IDE.
|
||||
#define SWIFT_IDE_TYPE_CHECK_REQUESTS_TYPEID_ZONE 97
|
||||
#define SWIFT_TYPEID_ZONE SWIFT_IDE_TYPE_CHECK_REQUESTS_TYPEID_ZONE
|
||||
#define SWIFT_TYPEID_ZONE IDETypeChecking
|
||||
#define SWIFT_TYPEID_HEADER "swift/Sema/IDETypeCheckingRequestIDZone.def"
|
||||
#include "swift/Basic/DefineTypeIDZone.h"
|
||||
#undef SWIFT_TYPEID_ZONE
|
||||
#undef SWIFT_TYPEID_HEADER
|
||||
|
||||
// Set up reporting of evaluated requests.
|
||||
#define SWIFT_TYPEID(RequestType) \
|
||||
#define SWIFT_REQUEST(Zone, RequestType) \
|
||||
template<> \
|
||||
inline void reportEvaluatedRequest(UnifiedStatsReporter &stats, \
|
||||
const RequestType &request) { \
|
||||
++stats.getFrontendCounters().RequestType; \
|
||||
}
|
||||
#include "swift/Sema/IDETypeCheckingRequestIDZone.def"
|
||||
#undef SWIFT_TYPEID
|
||||
#undef SWIFT_REQUEST
|
||||
|
||||
} // end namespace swift
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ using namespace swift;
|
||||
|
||||
namespace swift {
|
||||
// Implement the access-control type zone.
|
||||
#define SWIFT_TYPEID_ZONE SWIFT_ACCESSS_REQUESTS_TYPEID_ZONE
|
||||
#define SWIFT_TYPEID_ZONE AccessControl
|
||||
#define SWIFT_TYPEID_HEADER "swift/AST/AccessTypeIDZone.def"
|
||||
#include "swift/Basic/ImplementTypeIDZone.h"
|
||||
#undef SWIFT_TYPEID_ZONE
|
||||
@@ -321,13 +321,13 @@ DefaultAndMaxAccessLevelRequest::cacheResult(
|
||||
|
||||
// Define request evaluation functions for each of the access requests.
|
||||
static AbstractRequestFunction *accessRequestFunctions[] = {
|
||||
#define SWIFT_TYPEID(Name) \
|
||||
#define SWIFT_REQUEST(Zone, Name) \
|
||||
reinterpret_cast<AbstractRequestFunction *>(&Name::evaluateRequest),
|
||||
#include "swift/AST/AccessTypeIDZone.def"
|
||||
#undef SWIFT_TYPEID
|
||||
#undef SWIFT_REQUEST
|
||||
};
|
||||
|
||||
void swift::registerAccessRequestFunctions(Evaluator &evaluator) {
|
||||
evaluator.registerRequestFunctions(SWIFT_ACCESS_REQUESTS_TYPEID_ZONE,
|
||||
evaluator.registerRequestFunctions(Zone::AccessControl,
|
||||
accessRequestFunctions);
|
||||
}
|
||||
|
||||
@@ -50,8 +50,9 @@ Evaluator::getAbstractRequestFunction(uint8_t zoneID, uint8_t requestID) const {
|
||||
}
|
||||
|
||||
void Evaluator::registerRequestFunctions(
|
||||
uint8_t zoneID,
|
||||
Zone zone,
|
||||
ArrayRef<AbstractRequestFunction *> functions) {
|
||||
uint8_t zoneID = static_cast<uint8_t>(zone);
|
||||
#ifndef NDEBUG
|
||||
for (const auto &zone : requestFunctionsByZone) {
|
||||
assert(zone.first != zoneID);
|
||||
|
||||
@@ -21,7 +21,7 @@ using namespace swift;
|
||||
|
||||
namespace swift {
|
||||
// Implement the name lookup type zone.
|
||||
#define SWIFT_TYPEID_ZONE SWIFT_NAME_LOOKUP_REQUESTS_TYPEID_ZONE
|
||||
#define SWIFT_TYPEID_ZONE NameLookup
|
||||
#define SWIFT_TYPEID_HEADER "swift/AST/NameLookupTypeIDZone.def"
|
||||
#include "swift/Basic/ImplementTypeIDZone.h"
|
||||
#undef SWIFT_TYPEID_ZONE
|
||||
@@ -113,13 +113,13 @@ void GetDestructorRequest::cacheResult(DestructorDecl *value) const {
|
||||
|
||||
// Define request evaluation functions for each of the name lookup requests.
|
||||
static AbstractRequestFunction *nameLookupRequestFunctions[] = {
|
||||
#define SWIFT_TYPEID(Name) \
|
||||
#define SWIFT_REQUEST(Zone, Name) \
|
||||
reinterpret_cast<AbstractRequestFunction *>(&Name::evaluateRequest),
|
||||
#include "swift/AST/NameLookupTypeIDZone.def"
|
||||
#undef SWIFT_TYPEID
|
||||
#undef SWIFT_REQUEST
|
||||
};
|
||||
|
||||
void swift::registerNameLookupRequestFunctions(Evaluator &evaluator) {
|
||||
evaluator.registerRequestFunctions(SWIFT_NAME_LOOKUP_REQUESTS_TYPEID_ZONE,
|
||||
evaluator.registerRequestFunctions(Zone::NameLookup,
|
||||
nameLookupRequestFunctions);
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ using namespace swift;
|
||||
|
||||
namespace swift {
|
||||
// Implement the type checker type zone (zone 10).
|
||||
#define SWIFT_TYPEID_ZONE SWIFT_TYPE_CHECKER_REQUESTS_TYPEID_ZONE
|
||||
#define SWIFT_TYPEID_ZONE TypeChecker
|
||||
#define SWIFT_TYPEID_HEADER "swift/AST/TypeCheckerTypeIDZone.def"
|
||||
#include "swift/Basic/ImplementTypeIDZone.h"
|
||||
#undef SWIFT_TYPEID_ZONE
|
||||
|
||||
@@ -29,7 +29,7 @@ using namespace swift::ide;
|
||||
|
||||
namespace swift {
|
||||
// Implement the IDE type zone.
|
||||
#define SWIFT_TYPEID_ZONE SWIFT_IDE_REQUESTS_TYPEID_ZONE
|
||||
#define SWIFT_TYPEID_ZONE IDE
|
||||
#define SWIFT_TYPEID_HEADER "swift/IDE/IDERequestIDZone.def"
|
||||
#include "swift/Basic/ImplementTypeIDZone.h"
|
||||
#undef SWIFT_TYPEID_ZONE
|
||||
@@ -38,14 +38,14 @@ namespace swift {
|
||||
|
||||
// Define request evaluation functions for each of the IDE requests.
|
||||
static AbstractRequestFunction *ideRequestFunctions[] = {
|
||||
#define SWIFT_TYPEID(Name) \
|
||||
#define SWIFT_REQUEST(Zone, Name) \
|
||||
reinterpret_cast<AbstractRequestFunction *>(&Name::evaluateRequest),
|
||||
#include "swift/IDE/IDERequestIDZone.def"
|
||||
#undef SWIFT_TYPEID
|
||||
#undef SWIFT_REQUEST
|
||||
};
|
||||
|
||||
void swift::registerIDERequestFunctions(Evaluator &evaluator) {
|
||||
evaluator.registerRequestFunctions(SWIFT_IDE_REQUESTS_TYPEID_ZONE,
|
||||
evaluator.registerRequestFunctions(Zone::IDE,
|
||||
ideRequestFunctions);
|
||||
registerIDETypeCheckRequestFunctions(evaluator);
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ using namespace swift;
|
||||
|
||||
namespace swift {
|
||||
// Implement the IDE type zone.
|
||||
#define SWIFT_TYPEID_ZONE SWIFT_IDE_TYPE_CHECK_REQUESTS_TYPEID_ZONE
|
||||
#define SWIFT_TYPEID_ZONE IDETypeChecking
|
||||
#define SWIFT_TYPEID_HEADER "swift/Sema/IDETypeCheckingRequestIDZone.def"
|
||||
#include "swift/Basic/ImplementTypeIDZone.h"
|
||||
#undef SWIFT_TYPEID_ZONE
|
||||
@@ -34,14 +34,14 @@ namespace swift {
|
||||
|
||||
// Define request evaluation functions for each of the IDE type check requests.
|
||||
static AbstractRequestFunction *ideTypeCheckRequestFunctions[] = {
|
||||
#define SWIFT_TYPEID(Name) \
|
||||
#define SWIFT_REQUEST(Zone, Name) \
|
||||
reinterpret_cast<AbstractRequestFunction *>(&Name::evaluateRequest),
|
||||
#include "swift/Sema/IDETypeCheckingRequestIDZone.def"
|
||||
#undef SWIFT_TYPEID
|
||||
#undef SWIFT_REQUEST
|
||||
};
|
||||
|
||||
void swift::registerIDETypeCheckRequestFunctions(Evaluator &evaluator) {
|
||||
evaluator.registerRequestFunctions(SWIFT_IDE_TYPE_CHECK_REQUESTS_TYPEID_ZONE,
|
||||
evaluator.registerRequestFunctions(Zone::IDETypeChecking,
|
||||
ideTypeCheckRequestFunctions);
|
||||
}
|
||||
|
||||
|
||||
@@ -234,13 +234,13 @@ FunctionBuilderTypeRequest::evaluate(Evaluator &evaluator,
|
||||
|
||||
// Define request evaluation functions for each of the type checker requests.
|
||||
static AbstractRequestFunction *typeCheckerRequestFunctions[] = {
|
||||
#define SWIFT_TYPEID(Name) \
|
||||
#define SWIFT_REQUEST(Zone, Name) \
|
||||
reinterpret_cast<AbstractRequestFunction *>(&Name::evaluateRequest),
|
||||
#include "swift/AST/TypeCheckerTypeIDZone.def"
|
||||
#undef SWIFT_TYPEID
|
||||
#undef SWIFT_REQUEST
|
||||
};
|
||||
|
||||
void swift::registerTypeCheckerRequestFunctions(Evaluator &evaluator) {
|
||||
evaluator.registerRequestFunctions(SWIFT_TYPE_CHECKER_REQUESTS_TYPEID_ZONE,
|
||||
evaluator.registerRequestFunctions(Zone::TypeChecker,
|
||||
typeCheckerRequestFunctions);
|
||||
}
|
||||
|
||||
@@ -174,12 +174,11 @@ struct ExternallyCachedEvaluationRule
|
||||
|
||||
// Define the arithmetic evaluator's zone.
|
||||
namespace swift {
|
||||
#define SWIFT_ARITHMETIC_EVALUATOR_ZONE 255
|
||||
#define SWIFT_TYPEID_ZONE SWIFT_ARITHMETIC_EVALUATOR_ZONE
|
||||
#define SWIFT_TYPEID_ZONE ArithmeticEvaluator
|
||||
#define SWIFT_TYPEID_HEADER "ArithmeticEvaluatorTypeIDZone.def"
|
||||
#include "swift/Basic/DefineTypeIDZone.h"
|
||||
|
||||
#define SWIFT_TYPEID_ZONE SWIFT_ARITHMETIC_EVALUATOR_ZONE
|
||||
#define SWIFT_TYPEID_ZONE ArithmeticEvaluator
|
||||
#define SWIFT_TYPEID_HEADER "ArithmeticEvaluatorTypeIDZone.def"
|
||||
#include "swift/Basic/ImplementTypeIDZone.h"
|
||||
|
||||
@@ -187,10 +186,10 @@ namespace swift {
|
||||
|
||||
/// All of the arithmetic request functions.
|
||||
static AbstractRequestFunction *arithmeticRequestFunctions[] = {
|
||||
#define SWIFT_TYPEID(Name) \
|
||||
#define SWIFT_REQUEST(Zone, Name) \
|
||||
reinterpret_cast<AbstractRequestFunction *>(&Name::evaluateRequest),
|
||||
#include "ArithmeticEvaluatorTypeIDZone.def"
|
||||
#undef SWIFT_TYPEID
|
||||
#undef SWIFT_REQUEST
|
||||
};
|
||||
|
||||
/// Helper to short-circuit errors to NaN.
|
||||
@@ -212,7 +211,7 @@ TEST(ArithmeticEvaluator, Simple) {
|
||||
SourceManager sourceMgr;
|
||||
DiagnosticEngine diags(sourceMgr);
|
||||
Evaluator evaluator(diags);
|
||||
evaluator.registerRequestFunctions(SWIFT_ARITHMETIC_EVALUATOR_ZONE,
|
||||
evaluator.registerRequestFunctions(Zone::ArithmeticEvaluator,
|
||||
arithmeticRequestFunctions);
|
||||
|
||||
const double expectedResult = (3.14159 + 2.71828) * 42.0;
|
||||
@@ -335,7 +334,7 @@ TEST(ArithmeticEvaluator, Cycle) {
|
||||
SourceManager sourceMgr;
|
||||
DiagnosticEngine diags(sourceMgr);
|
||||
Evaluator evaluator(diags);
|
||||
evaluator.registerRequestFunctions(SWIFT_ARITHMETIC_EVALUATOR_ZONE,
|
||||
evaluator.registerRequestFunctions(Zone::ArithmeticEvaluator,
|
||||
arithmeticRequestFunctions);
|
||||
|
||||
// Evaluate when there is a cycle.
|
||||
|
||||
Reference in New Issue
Block a user