Exemple #1
0
ASTNodeKind ASTNodeKind::getMostDerivedCommonAncestor(ASTNodeKind Kind1,
                                                      ASTNodeKind Kind2) {
  NodeKindId Parent = Kind1.KindId;
  while (!isBaseOf(Parent, Kind2.KindId, nullptr) && Parent != NKI_None) {
    Parent = AllKindInfo[Parent].ParentId;
  }
  return ASTNodeKind(Parent);
}
Exemple #2
0
TEST(ASTNodeKind, Name) {
  EXPECT_EQ("<None>", ASTNodeKind().asStringRef());
#define VERIFY_NAME(Node) EXPECT_EQ(#Node, DNT<Node>().asStringRef());
  VERIFY_NAME(TemplateArgument);
  VERIFY_NAME(NestedNameSpecifierLoc);
  VERIFY_NAME(QualType);
  VERIFY_NAME(TypeLoc);
  VERIFY_NAME(CXXCtorInitializer);
  VERIFY_NAME(NestedNameSpecifier);
  VERIFY_NAME(Decl);
  VERIFY_NAME(CXXRecordDecl);
  VERIFY_NAME(Stmt);
  VERIFY_NAME(CallExpr);
  VERIFY_NAME(Type);
  VERIFY_NAME(ConstantArrayType);
#undef VERIFY_NAME
}
TEST(ASTNodeKind, Name) {
  EXPECT_EQ("Decl", DNT<Decl>().asStringRef());
  EXPECT_EQ("CallExpr", DNT<CallExpr>().asStringRef());
  EXPECT_EQ("ConstantArrayType", DNT<ConstantArrayType>().asStringRef());
  EXPECT_EQ("<None>", ASTNodeKind().asStringRef());
}
TEST(ASTNodeKind, NoKind) {
  EXPECT_FALSE(ASTNodeKind().isBaseOf(ASTNodeKind()));
  EXPECT_FALSE(ASTNodeKind().isSame(ASTNodeKind()));
}
Exemple #5
0
ASTNodeKind ASTNodeKind::getMostDerivedType(ASTNodeKind Kind1,
                                            ASTNodeKind Kind2) {
  if (Kind1.isBaseOf(Kind2)) return Kind2;
  if (Kind2.isBaseOf(Kind1)) return Kind1;
  return ASTNodeKind();
}
Exemple #6
0
TEST(ASTNodeKind, IsNone) {
  EXPECT_TRUE(ASTNodeKind().isNone());
  EXPECT_FALSE(DNT<Decl>().isNone());
  EXPECT_FALSE(DNT<VarDecl>().isNone());
}