diff options
Diffstat (limited to 'lib/AST/SelectorLocationsKind.cpp')
| -rw-r--r-- | lib/AST/SelectorLocationsKind.cpp | 127 | 
1 files changed, 0 insertions, 127 deletions
diff --git a/lib/AST/SelectorLocationsKind.cpp b/lib/AST/SelectorLocationsKind.cpp deleted file mode 100644 index 2c34c9c60c2b2..0000000000000 --- a/lib/AST/SelectorLocationsKind.cpp +++ /dev/null @@ -1,127 +0,0 @@ -//===--- SelectorLocationsKind.cpp - Kind of selector locations -*- 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 -// -//===----------------------------------------------------------------------===// -// -// Describes whether the identifier locations for a selector are "standard" -// or not. -// -//===----------------------------------------------------------------------===// - -#include "clang/AST/SelectorLocationsKind.h" -#include "clang/AST/Expr.h" - -using namespace clang; - -static SourceLocation getStandardSelLoc(unsigned Index, -                                        Selector Sel, -                                        bool WithArgSpace, -                                        SourceLocation ArgLoc, -                                        SourceLocation EndLoc) { -  unsigned NumSelArgs = Sel.getNumArgs(); -  if (NumSelArgs == 0) { -    assert(Index == 0); -    if (EndLoc.isInvalid()) -      return SourceLocation(); -    IdentifierInfo *II = Sel.getIdentifierInfoForSlot(0); -    unsigned Len = II ? II->getLength() : 0; -    return EndLoc.getLocWithOffset(-Len); -  } - -  assert(Index < NumSelArgs); -  if (ArgLoc.isInvalid()) -    return SourceLocation(); -  IdentifierInfo *II = Sel.getIdentifierInfoForSlot(Index); -  unsigned Len = /* selector id */ (II ? II->getLength() : 0) + /* ':' */ 1; -  if (WithArgSpace) -    ++Len; -  return ArgLoc.getLocWithOffset(-Len); -} - -namespace { - -template <typename T> -SourceLocation getArgLoc(T* Arg); - -template <> -SourceLocation getArgLoc<Expr>(Expr *Arg) { -  return Arg->getBeginLoc(); -} - -template <> -SourceLocation getArgLoc<ParmVarDecl>(ParmVarDecl *Arg) { -  SourceLocation Loc = Arg->getBeginLoc(); -  if (Loc.isInvalid()) -    return Loc; -  // -1 to point to left paren of the method parameter's type. -  return Loc.getLocWithOffset(-1); -} - -template <typename T> -SourceLocation getArgLoc(unsigned Index, ArrayRef<T*> Args) { -  return Index < Args.size() ? getArgLoc(Args[Index]) : SourceLocation(); -} - -template <typename T> -SelectorLocationsKind hasStandardSelLocs(Selector Sel, -                                         ArrayRef<SourceLocation> SelLocs, -                                         ArrayRef<T *> Args, -                                         SourceLocation EndLoc) { -  // Are selector locations in standard position with no space between args ? -  unsigned i; -  for (i = 0; i != SelLocs.size(); ++i) { -    if (SelLocs[i] != getStandardSelectorLoc(i, Sel, /*WithArgSpace=*/false, -                                             Args, EndLoc)) -      break; -  } -  if (i == SelLocs.size()) -    return SelLoc_StandardNoSpace; - -  // Are selector locations in standard position with space between args ? -  for (i = 0; i != SelLocs.size(); ++i) { -    if (SelLocs[i] != getStandardSelectorLoc(i, Sel, /*WithArgSpace=*/true, -                                             Args, EndLoc)) -      return SelLoc_NonStandard; -  } - -  return SelLoc_StandardWithSpace; -} - -} // anonymous namespace - -SelectorLocationsKind -clang::hasStandardSelectorLocs(Selector Sel, -                               ArrayRef<SourceLocation> SelLocs, -                               ArrayRef<Expr *> Args, -                               SourceLocation EndLoc) { -  return hasStandardSelLocs(Sel, SelLocs, Args, EndLoc); -} - -SourceLocation clang::getStandardSelectorLoc(unsigned Index, -                                             Selector Sel, -                                             bool WithArgSpace, -                                             ArrayRef<Expr *> Args, -                                             SourceLocation EndLoc) { -  return getStandardSelLoc(Index, Sel, WithArgSpace, -                           getArgLoc(Index, Args), EndLoc); -} - -SelectorLocationsKind -clang::hasStandardSelectorLocs(Selector Sel, -                               ArrayRef<SourceLocation> SelLocs, -                               ArrayRef<ParmVarDecl *> Args, -                               SourceLocation EndLoc) { -  return hasStandardSelLocs(Sel, SelLocs, Args, EndLoc); -} - -SourceLocation clang::getStandardSelectorLoc(unsigned Index, -                                             Selector Sel, -                                             bool WithArgSpace, -                                             ArrayRef<ParmVarDecl *> Args, -                                             SourceLocation EndLoc) { -  return getStandardSelLoc(Index, Sel, WithArgSpace, -                           getArgLoc(Index, Args), EndLoc); -}  | 
