clang
20.0.0git
lib
ARCMigrate
Internals.h
Go to the documentation of this file.
1
//===-- Internals.h - Implementation Details---------------------*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
9
#ifndef LLVM_CLANG_LIB_ARCMIGRATE_INTERNALS_H
10
#define LLVM_CLANG_LIB_ARCMIGRATE_INTERNALS_H
11
12
#include "
clang/Basic/LangOptions.h
"
13
#include "
clang/Basic/Diagnostic.h
"
14
#include "
clang/Frontend/MigratorOptions.h
"
15
#include "llvm/ADT/ArrayRef.h"
16
#include <list>
17
#include <optional>
18
19
namespace
clang
{
20
class
ASTContext;
21
class
Sema;
22
class
Stmt;
23
24
namespace
arcmt {
25
26
class
CapturedDiagList
{
27
typedef
std::list<StoredDiagnostic> ListTy;
28
ListTy List;
29
30
public
:
31
void
push_back
(
const
StoredDiagnostic
&diag) { List.push_back(diag); }
32
33
bool
clearDiagnostic
(
ArrayRef<unsigned>
IDs,
SourceRange
range);
34
bool
hasDiagnostic
(
ArrayRef<unsigned>
IDs,
SourceRange
range)
const
;
35
36
void
reportDiagnostics
(
DiagnosticsEngine
&diags)
const
;
37
38
bool
hasErrors
()
const
;
39
40
typedef
ListTy::const_iterator
iterator
;
41
iterator
begin
()
const
{
return
List.begin(); }
42
iterator
end
()
const
{
return
List.end(); }
43
};
44
45
void
writeARCDiagsToPlist
(
const
std::string &outPath,
46
ArrayRef<StoredDiagnostic>
diags,
47
SourceManager
&
SM
,
const
LangOptions
&LangOpts);
48
49
class
TransformActions
{
50
DiagnosticsEngine
&Diags;
51
CapturedDiagList
&CapturedDiags;
52
void
*Impl;
// TransformActionsImpl.
53
54
public
:
55
TransformActions
(
DiagnosticsEngine
&diag,
CapturedDiagList
&capturedDiags,
56
ASTContext
&ctx,
Preprocessor
&PP);
57
~TransformActions
();
58
59
void
startTransaction
();
60
bool
commitTransaction
();
61
void
abortTransaction
();
62
63
void
insert
(
SourceLocation
loc, StringRef text);
64
void
insertAfterToken
(
SourceLocation
loc, StringRef text);
65
void
remove
(
SourceRange
range);
66
void
removeStmt
(
Stmt
*S);
67
void
replace
(
SourceRange
range, StringRef text);
68
void