diff options
author | Mikhail Maltsev <mikhail.maltsev@arm.com> | 2021-01-27 11:21:01 +0000 |
---|---|---|
committer | Mikhail Maltsev <mikhail.maltsev@arm.com> | 2021-01-27 11:21:01 +0000 |
commit | 30d9ca1bd9de8286539577d0abfc812ad122861c (patch) | |
tree | f7e0af5375b51b310486017c8cc897bc6b955f75 /clang/lib/Sema/SemaLambda.cpp | |
parent | 48ecba350ed6477ae194720b263eff194bf0271c (diff) | |
download | llvm-30d9ca1bd9de8286539577d0abfc812ad122861c.zip llvm-30d9ca1bd9de8286539577d0abfc812ad122861c.tar.gz llvm-30d9ca1bd9de8286539577d0abfc812ad122861c.tar.bz2 |
[clang][AST] Encapsulate DeclarationNameLoc, NFCI
This change makes `DeclarationNameLoc` a proper class and refactors its
users to use getter methods instead of accessing the members directly.
The change also makes `DeclarationNameLoc` immutable (i.e., it cannot
be modified once constructed).
Reviewed By: aprantl
Differential Revision: https://reviews.llvm.org/D94596
Diffstat (limited to 'clang/lib/Sema/SemaLambda.cpp')
-rw-r--r-- | clang/lib/Sema/SemaLambda.cpp | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/clang/lib/Sema/SemaLambda.cpp b/clang/lib/Sema/SemaLambda.cpp index af61c82..f066acf 100644 --- a/clang/lib/Sema/SemaLambda.cpp +++ b/clang/lib/Sema/SemaLambda.cpp @@ -386,11 +386,8 @@ CXXMethodDecl *Sema::startLambdaDefinition(CXXRecordDecl *Class, // trailing-return-type respectively. DeclarationName MethodName = Context.DeclarationNames.getCXXOperatorName(OO_Call); - DeclarationNameLoc MethodNameLoc; - MethodNameLoc.CXXOperatorName.BeginOpNameLoc - = IntroducerRange.getBegin().getRawEncoding(); - MethodNameLoc.CXXOperatorName.EndOpNameLoc - = IntroducerRange.getEnd().getRawEncoding(); + DeclarationNameLoc MethodNameLoc = + DeclarationNameLoc::makeCXXOperatorNameLoc(IntroducerRange); CXXMethodDecl *Method = CXXMethodDecl::Create( Context, Class, EndLoc, DeclarationNameInfo(MethodName, IntroducerRange.getBegin(), @@ -1378,7 +1375,6 @@ static void addFunctionPointerConversion(Sema &S, SourceRange IntroducerRange, DeclarationName ConversionName = S.Context.DeclarationNames.getCXXConversionFunctionName( S.Context.getCanonicalType(PtrToFunctionTy)); - DeclarationNameLoc ConvNameLoc; // Construct a TypeSourceInfo for the conversion function, and wire // all the parameters appropriately for the FunctionProtoTypeLoc // so that everything works during transformation/instantiation of @@ -1397,7 +1393,8 @@ static void addFunctionPointerConversion(Sema &S, SourceRange IntroducerRange, // operators ParmVarDecls below. TypeSourceInfo *ConvNamePtrToFunctionTSI = S.Context.getTrivialTypeSourceInfo(PtrToFunctionTy, Loc); - ConvNameLoc.NamedType.TInfo = ConvNamePtrToFunctionTSI; + DeclarationNameLoc ConvNameLoc = + DeclarationNameLoc::makeNamedTypeLoc(ConvNamePtrToFunctionTSI); // The conversion function is a conversion to a pointer-to-function. TypeSourceInfo *ConvTSI = S.Context.getTrivialTypeSourceInfo(ConvTy, Loc); @@ -1548,8 +1545,8 @@ static void addBlockPointerConversion(Sema &S, DeclarationName Name = S.Context.DeclarationNames.getCXXConversionFunctionName( S.Context.getCanonicalType(BlockPtrTy)); - DeclarationNameLoc NameLoc; - NameLoc.NamedType.TInfo = S.Context.getTrivialTypeSourceInfo(BlockPtrTy, Loc); + DeclarationNameLoc NameLoc = DeclarationNameLoc::makeNamedTypeLoc( + S.Context.getTrivialTypeSourceInfo(BlockPtrTy, Loc)); CXXConversionDecl *Conversion = CXXConversionDecl::Create( S.Context, Class, Loc, DeclarationNameInfo(Name, Loc, NameLoc), ConvTy, S.Context.getTrivialTypeSourceInfo(ConvTy, Loc), |