Files
swift-mirror/lib/AST/StorageImpl.cpp
Nate Chandler a215d726a7 [NFC] AST: Add StorageImpl.cpp.
And move a couple of StorageImplInfo member functions into it. In
preparation for making them use an ASTContext, to avoid importing that
header into StorageImpl.h, a lightweight header.
2024-09-25 21:11:22 -07:00

38 lines
1.2 KiB
C++

//===--- StorageImpl.cpp - Storage declaration access impl ------*- C++ -*-===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2024 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
//
//===----------------------------------------------------------------------===//
//
// This file defines types for describing the implementation of an
// AbstractStorageDecl.
//
//===----------------------------------------------------------------------===//
#include "swift/AST/StorageImpl.h"
using namespace swift;
StorageImplInfo
StorageImplInfo::getMutableOpaque(OpaqueReadOwnership ownership) {
return {getOpaqueReadImpl(ownership), WriteImplKind::Set,
ReadWriteImplKind::Modify};
}
ReadImplKind StorageImplInfo::getOpaqueReadImpl(OpaqueReadOwnership ownership) {
switch (ownership) {
case OpaqueReadOwnership::Owned:
return ReadImplKind::Get;
case OpaqueReadOwnership::OwnedOrBorrowed:
case OpaqueReadOwnership::Borrowed:
return ReadImplKind::Read;
}
llvm_unreachable("bad read-ownership kind");
}