[unittests] Add a fixture for Sema unit tests

This commit is contained in:
Pavel Yaskevich
2020-10-09 22:49:11 -07:00
parent 0b456ba795
commit 9239692d00
4 changed files with 95 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
//===--- SemaFixture.cpp - Helper for setting up Sema context --------------===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2020 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 "SemaFixture.h"
#include "swift/AST/Module.h"
#include "swift/AST/ParseRequests.h"
#include "swift/Strings.h"
#include "swift/Subsystems.h"
using namespace swift;
using namespace swift::unittest;
SemaTest::SemaTest()
: Context(*ASTContext::get(LangOpts, TypeCheckerOpts, SearchPathOpts,
ClangImporterOpts, SourceMgr, Diags)) {
registerParseRequestFunctions(Context.evaluator);
registerTypeCheckerRequestFunctions(Context.evaluator);
auto stdlibID = Context.getIdentifier(STDLIB_NAME);
auto *module = ModuleDecl::create(stdlibID, Context);
Context.addLoadedModule(module);
FileForLookups = new (Context) SourceFile(*module, SourceFileKind::Library,
/*buffer*/ None);
module->addFile(*FileForLookups);
DC = module;
}