From dc10926793ef52bed21672167a11542578567547 Mon Sep 17 00:00:00 2001 From: somzzz Date: Tue, 11 Apr 2017 01:52:30 -0700 Subject: [PATCH] Array Literal Overloads --- src/object.d | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/object.d b/src/object.d index 7a16247246..1045923fd2 100644 --- a/src/object.d +++ b/src/object.d @@ -3229,6 +3229,25 @@ template RTInfo(T) enum RTInfo = null; } +bool __equals(T1, T2, size_t n1)(auto ref T1[n1] lhs, T2[] rhs) +{ + T1[] lhs1 = lhs; + return __equals(lhs1, rhs); +} + +bool __equals(T1, T2, size_t n2)(T1[] lhs, auto ref T2[n2] rhs) +{ + T2[] rhs1 = rhs; + return __equals(lhs, rhs1); +} + +bool __equals(T1, T2, size_t n1, size_t n2)(auto ref T1[n1] lhs, auto ref T2[n2] rhs) +{ + T1[] lhs1 = lhs; + T2[] rhs1 = rhs; + return __equals(lhs1, rhs1); +} + // lhs == rhs lowers to __equals(lhs, rhs) for arrays of all struct types. // old path: Typeinfo_array => TypeInfo_struct bool __equals(T1, T2)(T1[] lhs, T2[] rhs)