From 2bbbbac416237b85b499870c554b97aa862d043e Mon Sep 17 00:00:00 2001 From: Mike Bierlee Date: Sun, 11 Dec 2016 02:44:35 +0100 Subject: [PATCH] Add forwards compatibility for older Phobos distributions --- source/poodinis/polyfill.d | 31 +++++++++++++++++++++++++++++++ source/poodinis/valueinjection.d | 1 + 2 files changed, 32 insertions(+) create mode 100644 source/poodinis/polyfill.d diff --git a/source/poodinis/polyfill.d b/source/poodinis/polyfill.d new file mode 100644 index 0000000..1178eb3 --- /dev/null +++ b/source/poodinis/polyfill.d @@ -0,0 +1,31 @@ +/** + * Forward-compatibility module for providing support for Phobos functionality + * not available in older versions of Phobos. + * + * Should not implement functionalitiy which is gone from the latest Phobos. + * + * The baseline compatibility is D/Phobos 2.068.0 + * + * Authors: $(HTTP erdani.org, Andrei Alexandrescu) Jonathan M Davis and Mike Bierlee (m.bierlee@lostmoment.com) + * Copyright: Copyright Andrei Alexandrescu 2008-, Jonathan M Davis 2011-., 2014- Mike Bierlee + * License: $(HTTP boost.org/LICENSE_1_0.txt, Boost License 1.0) + */ + +module poodinis.polyfill; + +import std.exception; + +static if (!__traits(compiles, basicExceptionCtors)) { + mixin template basicExceptionCtors() + { + this(string msg, string file = __FILE__, size_t line = __LINE__, Throwable next = null) @nogc @safe pure nothrow + { + super(msg, file, line, next); + } + + this(string msg, Throwable next, string file = __FILE__, size_t line = __LINE__) @nogc @safe pure nothrow + { + super(msg, file, line, next); + } + } +} diff --git a/source/poodinis/valueinjection.d b/source/poodinis/valueinjection.d index 8d649a7..6c6f4e5 100644 --- a/source/poodinis/valueinjection.d +++ b/source/poodinis/valueinjection.d @@ -13,6 +13,7 @@ module poodinis.valueinjection; import std.exception; import std.string; +import poodinis.polyfill; /** * Thrown when something goes wrong during value injection.