clang-tools
22.0.0git
llvm-project
clang-tools-extra
clangd
unittests
tweaks
SwapIfBranchesTests.cpp
Go to the documentation of this file.
1
//===-- SwapIfBranchesTests.cpp ---------------------------------*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
9
#include "
TweakTesting.h
"
10
#include "gmock/gmock-matchers.h"
11
#include "gmock/gmock.h"
12
#include "gtest/gtest.h"
13
14
namespace
clang
{
15
namespace
clangd
{
16
namespace
{
17
18
TWEAK_TEST
(SwapIfBranches);
19
20
TEST_F
(SwapIfBranchesTest, Test) {
21
Context
=
Function
;
22
EXPECT_EQ(apply(
"^if (true) {return;} else {(void)0;}"
),
23
"if (true) {(void)0;} else {return;}"
);
24
EXPECT_EQ(apply(
"^if (/*error-ok*/) {return;} else {(void)0;}"
),
25
"if (/*error-ok*/) {(void)0;} else {return;}"
)
26
<<
"broken condition"
;
27
EXPECT_AVAILABLE
(
"^i^f^^(^t^r^u^e^) { return; } ^e^l^s^e^ { return; }"
);
28
EXPECT_UNAVAILABLE
(
"if (true) {^return ^;^ } else { ^return^;^ }"
);
29
// Available in subexpressions of the condition;
30
EXPECT_AVAILABLE
(
"if(2 + [[2]] + 2) { return; } else {return;}"
);
31
// But not as part of the branches.
32
EXPECT_UNAVAILABLE
(
"if(2 + 2 + 2) { [[return]]; } else { return; }"
);
33
// Range covers the "else" token, so available.
34
EXPECT_AVAILABLE
(
"if(2 + 2 + 2) { return[[; } else {return;]]}"
);
35
// Not available in compound statements in condition.
36
EXPECT_UNAVAILABLE
(
"if([]{return [[true]];}()) { return; } else { return; }"
);
37
// Not available if both sides aren't braced.
38
EXPECT_UNAVAILABLE
(
"^if (1) return; else { return; }"
);
39
// Only one if statement is supported!
40
EXPECT_UNAVAILABLE
(
"[[if(1){}else{}if(2){}else{}]]"
);
41
}
42
43
}
// namespace
44
}
// namespace clangd
45
}
// namespace clang
TweakTesting.h
TWEAK_TEST
#define TWEAK_TEST(TweakID)
Definition
TweakTesting.h:107
EXPECT_AVAILABLE
#define EXPECT_AVAILABLE(MarkedCode)
Definition
TweakTesting.h:123
EXPECT_UNAVAILABLE
#define EXPECT_UNAVAILABLE(MarkedCode)
Definition
TweakTesting.h:124
clang::clangd::Context
A context is an immutable container for per-request data that must be propagated through layers that ...
Definition
Context.h:69
clang::clangd
FIXME: Skip testing on windows temporarily due to the different escaping code mode.
Definition
AST.cpp:45
clang::clangd::TEST_F
TEST_F(BackgroundIndexTest, NoCrashOnErrorFile)
Definition
BackgroundIndexTests.cpp:94
clang::clangd::CompletionItemKind::Function
@ Function
Definition
Protocol.h:342
clang
===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//
Definition
ApplyReplacements.h:27
Generated on
for clang-tools by
1.14.0