003 File Manager
Current Path:
/usr/src/contrib/llvm-project/clang/include/clang/Sema
usr
/
src
/
contrib
/
llvm-project
/
clang
/
include
/
clang
/
Sema
/
📁
..
📄
AnalysisBasedWarnings.h
(2.72 KB)
📄
CXXFieldCollector.h
(2.5 KB)
📄
CleanupInfo.h
(1.28 KB)
📄
CodeCompleteConsumer.h
(41.13 KB)
📄
CodeCompleteOptions.h
(1.85 KB)
📄
DeclSpec.h
(98.42 KB)
📄
DelayedDiagnostic.h
(10.8 KB)
📄
Designator.h
(6.43 KB)
📄
ExternalSemaSource.h
(9.7 KB)
📄
IdentifierResolver.h
(6.46 KB)
📄
Initialization.h
(48.15 KB)
📄
Lookup.h
(25.5 KB)
📄
MultiplexExternalSemaSource.h
(15.39 KB)
📄
ObjCMethodList.h
(2.21 KB)
📄
Overload.h
(41.57 KB)
📄
Ownership.h
(9.58 KB)
📄
ParsedAttr.h
(39.62 KB)
📄
ParsedTemplate.h
(9.9 KB)
📄
Scope.h
(17.01 KB)
📄
ScopeInfo.h
(36.31 KB)
📄
Sema.h
(569.19 KB)
📄
SemaConcept.h
(5.51 KB)
📄
SemaConsumer.h
(1.49 KB)
📄
SemaDiagnostic.h
(501 B)
📄
SemaFixItUtils.h
(3.21 KB)
📄
SemaInternal.h
(12.72 KB)
📄
SemaLambda.h
(1.28 KB)
📄
Template.h
(23.11 KB)
📄
TemplateDeduction.h
(12.2 KB)
📄
TemplateInstCallback.h
(2.55 KB)
📄
TypoCorrection.h
(15.04 KB)
📄
Weak.h
(1.54 KB)
Editing: SemaFixItUtils.h
//===--- SemaFixItUtils.h - Sema FixIts -------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This file defines helper classes for generation of Sema FixItHints. // //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_SEMA_SEMAFIXITUTILS_H #define LLVM_CLANG_SEMA_SEMAFIXITUTILS_H #include "clang/AST/Expr.h" namespace clang { enum OverloadFixItKind { OFIK_Undefined = 0, OFIK_Dereference, OFIK_TakeAddress, OFIK_RemoveDereference, OFIK_RemoveTakeAddress }; class Sema; /// The class facilities generation and storage of conversion FixIts. Hints for /// new conversions are added using TryToFixConversion method. The default type /// conversion checker can be reset. struct ConversionFixItGenerator { /// Performs a simple check to see if From type can be converted to To type. static bool compareTypesSimple(CanQualType From, CanQualType To, Sema &S, SourceLocation Loc, ExprValueKind FromVK); /// The list of Hints generated so far. std::vector<FixItHint> Hints; /// The number of Conversions fixed. This can be different from the size /// of the Hints vector since we allow multiple FixIts per conversion. unsigned NumConversionsFixed; /// The type of fix applied. If multiple conversions are fixed, corresponds /// to the kid of the very first conversion. OverloadFixItKind Kind; typedef bool (*TypeComparisonFuncTy) (const CanQualType FromTy, const CanQualType ToTy, Sema &S, SourceLocation Loc, ExprValueKind FromVK); /// The type comparison function used to decide if expression FromExpr of /// type FromTy can be converted to ToTy. For example, one could check if /// an implicit conversion exists. Returns true if comparison exists. TypeComparisonFuncTy CompareTypes; ConversionFixItGenerator(TypeComparisonFuncTy Foo): NumConversionsFixed(0), Kind(OFIK_Undefined), CompareTypes(Foo) {} ConversionFixItGenerator(): NumConversionsFixed(0), Kind(OFIK_Undefined), CompareTypes(compareTypesSimple) {} /// Resets the default conversion checker method. void setConversionChecker(TypeComparisonFuncTy Foo) { CompareTypes = Foo; } /// If possible, generates and stores a fix for the given conversion. bool tryToFixConversion(const Expr *FromExpr, const QualType FromQTy, const QualType ToQTy, Sema &S); void clear() { Hints.clear(); NumConversionsFixed = 0; } bool isNull() { return (NumConversionsFixed == 0); } }; } // endof namespace clang #endif
Upload File
Create Folder