clang 20.0.0git
Lookup.h
Go to the documentation of this file.
1//===--- Lookup.h - Framework for clang refactoring tools --*- 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// This file defines helper methods for clang tools performing name lookup.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef LLVM_CLANG_TOOLING_REFACTORING_LOOKUP_H
14#define LLVM_CLANG_TOOLING_REFACTORING_LOOKUP_H
15
16#include "clang/Basic/LLVM.h"
18#include <string>
19
20namespace clang {
21
22class DeclContext;
23class NamedDecl;
24class NestedNameSpecifier;
25
26namespace tooling {
27
28/// Emulate a lookup to replace one nested name specifier with another using as
29/// few additional namespace qualifications as possible.
30///
31/// This does not perform a full C++ lookup so ADL will not work.
32///
33/// \param Use The nested name to be replaced.
34/// \param UseLoc The location of name to be replaced.
35/// \param UseContext The context in which the nested name is contained. This
36/// will be used to minimize namespace qualifications.
37/// \param FromDecl The declaration to which the nested name points.
38/// \param ReplacementString The replacement nested name. Must be fully
39/// qualified including a leading "::".
40/// \returns The new name to be inserted in place of the current nested name.
41std::string replaceNestedName(const NestedNameSpecifier *Use,
42 SourceLocation UseLoc,
43 const DeclContext *UseContext,
44 const NamedDecl *FromDecl,
45 StringRef ReplacementString);
46
47} // end namespace tooling
48} // end namespace clang
49
50#endif // LLVM_CLANG_TOOLING_REFACTORING_LOOKUP_H
Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified.
Defines the clang::SourceLocation class and associated facilities.
const NamedDecl * FromDecl
std::string replaceNestedName(const NestedNameSpecifier *Use, SourceLocation UseLoc, const DeclContext *UseContext, const NamedDecl *FromDecl, StringRef ReplacementString)
Emulate a lookup to replace one nested name specifier with another using as few additional namespace ...
Definition: Lookup.cpp:185
The JSON file list parser is used to communicate input to InstallAPI.