summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Sashihara <21227491+n8sh@users.noreply.github.com>2019-04-19 09:34:30 -0400
committerNathan Sashihara <21227491+n8sh@users.noreply.github.com>2019-04-19 09:34:30 -0400
commitb2a1a849f84c202618c4f463da5b008085f6cebf (patch)
treef6fd7a54a535810cd45e9917ce5e518815e1710e
parent76bda0ac8df2f9e5d49e126d16d785f5c63c4430 (diff)
downloadtanya-b2a1a849f84c202618c4f463da5b008085f6cebf.tar.gz
Ensure getAndPopFront/getAndPopBack don't promote `system` to `safe`
-rw-r--r--source/tanya/range/primitive.d12
1 files changed, 12 insertions, 0 deletions
diff --git a/source/tanya/range/primitive.d b/source/tanya/range/primitive.d
index 258d5d5..c4cb54a 100644
--- a/source/tanya/range/primitive.d
+++ b/source/tanya/range/primitive.d
@@ -1566,6 +1566,12 @@ in (!range.empty)
{
static if (hasLvalueElements!R)
{
+ if (false)
+ {
+ // This code is removed by the compiler but ensures that
+ // this function isn't @safe if range.front isn't @safe.
+ auto _ = range.front();
+ }
auto el = (() @trusted => &range.front())();
}
else
@@ -1613,6 +1619,12 @@ in (!range.empty)
{
static if (hasLvalueElements!R)
{
+ if (false)
+ {
+ // This code is removed by the compiler but ensures that
+ // this function isn't @safe if range.back isn't @safe.
+ auto _ = range.back();
+ }
auto el = (() @trusted => &range.back())();
}
else