C++: Update captures test for closure fields extractor fix

This commit is contained in:
Dave Bartolomeo
2019-02-05 11:23:16 -08:00
parent 92ba0919cc
commit f2a0a86c6d
3 changed files with 17 additions and 10 deletions

View File

@@ -10,4 +10,10 @@ struct foo {
b(x + 1);
};
}
static void c(int x) {
[x] {
c(0); // `x` is unused, but still captured.
};
}
};

View File

@@ -1,7 +1,6 @@
| captures.cpp:3:6:3:6 | x | explicit |
| captures.cpp:3:9:3:12 | (captured this) | explicit |
| captures.cpp:3:9:3:12 | x | explicit |
| captures.cpp:10:7:10:7 | (captured this) | implicit |
| captures.cpp:10:9:10:9 | (captured this) | implicit |
| captures.cpp:10:9:10:9 | x | implicit |
| end_pos.cpp:9:17:9:18 | ii | explicit |
| captures.cpp:3:6:3:6 | x | explicit | 1 |
| captures.cpp:3:9:3:12 | (captured this) | explicit | 2 |
| captures.cpp:10:7:10:7 | (captured this) | implicit | 1 |
| captures.cpp:10:9:10:9 | x | implicit | 2 |
| captures.cpp:15:6:15:6 | x | explicit | 1 |
| end_pos.cpp:9:17:9:18 | ii | explicit | 1 |

View File

@@ -1,5 +1,7 @@
import cpp
from LambdaCapture lc, string mode
where if lc.isImplicit() then mode = "implicit" else mode = "explicit"
select lc, mode
from LambdaCapture lc, string mode, int index
where
exists(LambdaExpression le | le.getCapture(index) = lc) and
if lc.isImplicit() then mode = "implicit" else mode = "explicit"
select lc, mode, index