1//===--- Rewriters.h - Rewritings     ---------------------------*- 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_EDIT_REWRITERS_H
10#define LLVM_CLANG_EDIT_REWRITERS_H
11
12namespace clang {
13  class ObjCMessageExpr;
14  class ObjCMethodDecl;
15  class ObjCInterfaceDecl;
16  class ObjCProtocolDecl;
17  class NSAPI;
18  class EnumDecl;
19  class TypedefDecl;
20  class ParentMap;
21
22namespace edit {
23  class Commit;
24
25bool rewriteObjCRedundantCallWithLiteral(const ObjCMessageExpr *Msg,
26                                         const NSAPI &NS, Commit &commit);
27
28bool rewriteToObjCLiteralSyntax(const ObjCMessageExpr *Msg,
29                                const NSAPI &NS, Commit &commit,
30                                const ParentMap *PMap);
31
32bool rewriteToObjCSubscriptSyntax(const ObjCMessageExpr *Msg,
33                                  const NSAPI &NS, Commit &commit);
34
35}
36
37}  // end namespace clang
38
39#endif
40