mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
"Accessibility" has a different meaning for app developers, so we've already deliberately excised it from our diagnostics in favor of terms like "access control" and "access level". Do the same in the compiler now that we aren't constantly pulling things into the release branch. This commit changes the 'Accessibility' enum to be named 'AccessLevel'.
66 lines
1.9 KiB
C++
66 lines
1.9 KiB
C++
//===--- TestContext.h - Helper for setting up ASTContexts ------*- 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
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "swift/AST/ASTContext.h"
|
|
#include "swift/AST/ASTScope.h"
|
|
#include "swift/AST/DiagnosticEngine.h"
|
|
#include "swift/AST/Module.h"
|
|
#include "swift/Basic/LangOptions.h"
|
|
#include "swift/Basic/SourceManager.h"
|
|
|
|
namespace swift {
|
|
namespace unittest {
|
|
|
|
/// Helper class used to set the LangOpts target before initializing the
|
|
/// ASTContext.
|
|
///
|
|
/// \see TestContext
|
|
class TestContextBase {
|
|
public:
|
|
LangOptions LangOpts;
|
|
SearchPathOptions SearchPathOpts;
|
|
SourceManager SourceMgr;
|
|
DiagnosticEngine Diags;
|
|
|
|
TestContextBase() : Diags(SourceMgr) {
|
|
LangOpts.Target = llvm::Triple(llvm::sys::getProcessTriple());
|
|
}
|
|
};
|
|
|
|
enum ShouldDeclareOptionalTypes : bool {
|
|
DoNotDeclareOptionalTypes,
|
|
DeclareOptionalTypes
|
|
};
|
|
|
|
/// Owns an ASTContext and the associated types.
|
|
class TestContext : public TestContextBase {
|
|
SourceFile *FileForLookups;
|
|
|
|
public:
|
|
ASTContext Ctx;
|
|
|
|
TestContext(ShouldDeclareOptionalTypes optionals = DoNotDeclareOptionalTypes);
|
|
|
|
template <typename Nominal>
|
|
Nominal *makeNominal(StringRef name,
|
|
GenericParamList *genericParams = nullptr) {
|
|
auto result = new (Ctx) Nominal(SourceLoc(), Ctx.getIdentifier(name),
|
|
SourceLoc(), /*inherited*/{},
|
|
genericParams, FileForLookups);
|
|
result->setAccess(AccessLevel::Internal);
|
|
return result;
|
|
}
|
|
};
|
|
|
|
} // end namespace unittest
|
|
} // end namespace swift
|