File tree Expand file tree Collapse file tree 2 files changed +16
-2
lines changed Expand file tree Collapse file tree 2 files changed +16
-2
lines changed Original file line number Diff line number Diff line change @@ -1851,7 +1851,8 @@ std::vector<const CXXRecordDecl *> findRecordTypeAt(ParsedAST &AST,
1851
1851
1852
1852
if (const VarDecl *VD = dyn_cast<VarDecl>(D)) {
1853
1853
// If this is a variable, use the type of the variable.
1854
- Records.push_back (VD->getType ().getTypePtr ()->getAsCXXRecordDecl ());
1854
+ if (const auto *RD = VD->getType ().getTypePtr ()->getAsCXXRecordDecl ())
1855
+ Records.push_back (RD);
1855
1856
continue ;
1856
1857
}
1857
1858
Original file line number Diff line number Diff line change @@ -78,6 +78,19 @@ int main() {
78
78
}
79
79
}
80
80
81
+ TEST (FindRecordTypeAt, Nonexistent) {
82
+ Annotations Source (R"cpp(
83
+ int *wa^ldo;
84
+ )cpp" );
85
+ TestTU TU = TestTU::withCode (Source.code ());
86
+ auto AST = TU.build ();
87
+
88
+ for (Position Pt : Source.points ()) {
89
+ auto Records = findRecordTypeAt (AST, Pt);
90
+ ASSERT_THAT (Records, SizeIs (0 ));
91
+ }
92
+ }
93
+
81
94
TEST (FindRecordTypeAt, Method) {
82
95
Annotations Source (R"cpp(
83
96
struct Child2 {
@@ -119,7 +132,7 @@ int main() {
119
132
120
133
for (Position Pt : Source.points ()) {
121
134
// A field does not unambiguously specify a record type
122
- // (possible associated reocrd types could be the field's type,
135
+ // (possible associated record types could be the field's type,
123
136
// or the type of the record that the field is a member of).
124
137
EXPECT_THAT (findRecordTypeAt (AST, Pt), SizeIs (0 ));
125
138
}
You can’t perform that action at this time.
0 commit comments