summaryrefslogtreecommitdiff
path: root/libphobos/src
diff options
context:
space:
mode:
Diffstat (limited to 'libphobos/src')
-rw-r--r--libphobos/src/MERGE2
-rw-r--r--libphobos/src/std/algorithm/comparison.d2
-rw-r--r--libphobos/src/std/typecons.d10
3 files changed, 10 insertions, 4 deletions
diff --git a/libphobos/src/MERGE b/libphobos/src/MERGE
index ed9a02e1a0c..f2678185f39 100644
--- a/libphobos/src/MERGE
+++ b/libphobos/src/MERGE
@@ -1,4 +1,4 @@
-604534d7cb29d49a6474f0aaaa5d166057a44f72
+5fef0d28fc873fb5a0dbfb9149759d76a7b9f1b7
The first line of this file holds the git revision number of the last
merge done from the dlang/phobos repository.
diff --git a/libphobos/src/std/algorithm/comparison.d b/libphobos/src/std/algorithm/comparison.d
index 2fcc2bacd5c..b810fbb9258 100644
--- a/libphobos/src/std/algorithm/comparison.d
+++ b/libphobos/src/std/algorithm/comparison.d
@@ -1027,7 +1027,7 @@ template equal(alias pred = "a == b")
}
}
- private bool equalLoop(Rs...)(Rs rs)
+ private bool equalLoop(Rs...)(ref Rs rs)
{
for (; !rs[0].empty; rs[0].popFront)
static foreach (r; rs[1 .. $])
diff --git a/libphobos/src/std/typecons.d b/libphobos/src/std/typecons.d
index 1ee7faaee7b..fb15001233a 100644
--- a/libphobos/src/std/typecons.d
+++ b/libphobos/src/std/typecons.d
@@ -4905,8 +4905,14 @@ if (is(Interface == interface) && is(BaseClass == class))
// - try default first
// - only on a failure run & return fallback
enum fallback = q{
- scope (failure) return fallback.%1$s(args);
- return default_.%1$s(args);
+ try
+ {
+ return default_.%1$s(args);
+ }
+ catch (Exception)
+ {
+ return fallback.%1$s(args);
+ }
}.format(__traits(identifier, func));
}