1d488daa0SDavid Zarzycki //===- unittest/Tooling/RecursiveASTVisitorTests/IntegerLiteral.cpp -------===//
2d488daa0SDavid Zarzycki //
3*2946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*2946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information.
5*2946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6d488daa0SDavid Zarzycki //
7d488daa0SDavid Zarzycki //===----------------------------------------------------------------------===//
8d488daa0SDavid Zarzycki 
9d488daa0SDavid Zarzycki #include "TestVisitor.h"
10d488daa0SDavid Zarzycki 
11d488daa0SDavid Zarzycki using namespace clang;
12d488daa0SDavid Zarzycki 
13d488daa0SDavid Zarzycki namespace {
14d488daa0SDavid Zarzycki 
15d488daa0SDavid Zarzycki // Check to ensure that implicit default argument expressions are visited.
16d488daa0SDavid Zarzycki class IntegerLiteralVisitor
17d488daa0SDavid Zarzycki     : public ExpectedLocationVisitor<IntegerLiteralVisitor> {
18d488daa0SDavid Zarzycki public:
VisitIntegerLiteral(const IntegerLiteral * IL)19d488daa0SDavid Zarzycki   bool VisitIntegerLiteral(const IntegerLiteral *IL) {
20d488daa0SDavid Zarzycki     Match("literal", IL->getLocation());
21d488daa0SDavid Zarzycki     return true;
22d488daa0SDavid Zarzycki   }
23d488daa0SDavid Zarzycki };
24d488daa0SDavid Zarzycki 
TEST(RecursiveASTVisitor,DefaultArgumentsAreVisited)25d488daa0SDavid Zarzycki TEST(RecursiveASTVisitor, DefaultArgumentsAreVisited) {
26d488daa0SDavid Zarzycki   IntegerLiteralVisitor Visitor;
27d488daa0SDavid Zarzycki   Visitor.ExpectMatch("literal", 1, 15, 2);
28d488daa0SDavid Zarzycki   EXPECT_TRUE(Visitor.runOver("int f(int i = 1);\n"
29d488daa0SDavid Zarzycki                               "static int k = f();\n"));
30d488daa0SDavid Zarzycki }
31d488daa0SDavid Zarzycki 
32d488daa0SDavid Zarzycki } // end anonymous namespace
33