Remove unneeded .dup of arrays

See comments from #2974, specifically
https://github.com/D-Programming-Language/phobos/pull/2974#discussion_r24388654
This commit is contained in:
Matt Kline 2015-02-12 22:18:32 -08:00
parent 1129a2cd7f
commit a15d9be6fd
3 changed files with 27 additions and 27 deletions

View file

@ -1871,9 +1871,9 @@ unittest
return result; return result;
} }
auto lowEnt = ([ 1.0, 0, 0 ]).dup, auto lowEnt = [ 1.0, 0, 0 ],
midEnt = ([ 0.1, 0.1, 0.8 ]).dup, midEnt = [ 0.1, 0.1, 0.8 ],
highEnt = ([ 0.31, 0.29, 0.4 ]).dup; highEnt = [ 0.31, 0.29, 0.4 ];
auto arr = new double[][3]; auto arr = new double[][3];
arr[0] = midEnt; arr[0] = midEnt;
arr[1] = lowEnt; arr[1] = lowEnt;
@ -1904,9 +1904,9 @@ unittest
return result; return result;
} }
auto lowEnt = ([ 1.0, 0, 0 ]).dup, auto lowEnt = [ 1.0, 0, 0 ],
midEnt = ([ 0.1, 0.1, 0.8 ]).dup, midEnt = [ 0.1, 0.1, 0.8 ],
highEnt = ([ 0.31, 0.29, 0.4 ]).dup; highEnt = [ 0.31, 0.29, 0.4 ];
auto arr = new double[][3]; auto arr = new double[][3];
arr[0] = midEnt; arr[0] = midEnt;
arr[1] = lowEnt; arr[1] = lowEnt;
@ -2020,31 +2020,31 @@ void topN(alias less = "a < b",
debug(std_algorithm) scope(success) debug(std_algorithm) scope(success)
writeln("unittest @", __FILE__, ":", __LINE__, " done."); writeln("unittest @", __FILE__, ":", __LINE__, " done.");
//scope(failure) writeln(stderr, "Failure testing algorithm"); //scope(failure) writeln(stderr, "Failure testing algorithm");
//auto v = ([ 25, 7, 9, 2, 0, 5, 21 ]).dup; //auto v = [ 25, 7, 9, 2, 0, 5, 21 ];
int[] v = [ 7, 6, 5, 4, 3, 2, 1, 0 ]; int[] v = [ 7, 6, 5, 4, 3, 2, 1, 0 ];
ptrdiff_t n = 3; ptrdiff_t n = 3;
topN!("a < b")(v, n); topN!("a < b")(v, n);
assert(reduce!max(v[0 .. n]) <= v[n]); assert(reduce!max(v[0 .. n]) <= v[n]);
assert(reduce!min(v[n + 1 .. $]) >= v[n]); assert(reduce!min(v[n + 1 .. $]) >= v[n]);
// //
v = ([3, 4, 5, 6, 7, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5]).dup; v = [3, 4, 5, 6, 7, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5];
n = 3; n = 3;
topN(v, n); topN(v, n);
assert(reduce!max(v[0 .. n]) <= v[n]); assert(reduce!max(v[0 .. n]) <= v[n]);
assert(reduce!min(v[n + 1 .. $]) >= v[n]); assert(reduce!min(v[n + 1 .. $]) >= v[n]);
// //
v = ([3, 4, 5, 6, 7, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5]).dup; v = [3, 4, 5, 6, 7, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5];
n = 1; n = 1;
topN(v, n); topN(v, n);
assert(reduce!max(v[0 .. n]) <= v[n]); assert(reduce!max(v[0 .. n]) <= v[n]);
assert(reduce!min(v[n + 1 .. $]) >= v[n]); assert(reduce!min(v[n + 1 .. $]) >= v[n]);
// //
v = ([3, 4, 5, 6, 7, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5]).dup; v = [3, 4, 5, 6, 7, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5];
n = v.length - 1; n = v.length - 1;
topN(v, n); topN(v, n);
assert(v[n] == 7); assert(v[n] == 7);
// //
v = ([3, 4, 5, 6, 7, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5]).dup; v = [3, 4, 5, 6, 7, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5];
n = 0; n = 0;
topN(v, n); topN(v, n);
assert(v[n] == 1); assert(v[n] == 1);

View file

@ -243,7 +243,7 @@ arrays as long as keys and values can in turn be converted.
Example: Example:
------------------------- -------------------------
int[] a = ([1, 2, 3]).dup; int[] a = [1, 2, 3];
auto b = to!(float[])(a); auto b = to!(float[])(a);
assert(b == [1.0f, 2, 3]); assert(b == [1.0f, 2, 3]);
string str = "1 2 3 4 5 6"; string str = "1 2 3 4 5 6";
@ -1432,7 +1432,7 @@ T toImpl(T, S)(S value)
import std.exception; import std.exception;
// array to array conversions // array to array conversions
uint[] a = ([ 1u, 2, 3 ]).dup; uint[] a = [ 1u, 2, 3 ];
auto b = to!(float[])(a); auto b = to!(float[])(a);
assert(b == [ 1.0f, 2, 3 ]); assert(b == [ 1.0f, 2, 3 ]);

View file

@ -981,12 +981,12 @@ unittest
enum Color { no, yes } enum Color { no, yes }
Color color; Color color;
args = (["program.name", "--color=yes",]).dup; args = ["program.name", "--color=yes",];
getopt(args, "color", &color); getopt(args, "color", &color);
assert(color, to!(string)(color)); assert(color, to!(string)(color));
color = Color.no; color = Color.no;
args = (["program.name", "--color", "yes",]).dup; args = ["program.name", "--color", "yes",];
getopt(args, "color", &color); getopt(args, "color", &color);
assert(color, to!(string)(color)); assert(color, to!(string)(color));
@ -1015,7 +1015,7 @@ unittest
outputFiles = []; outputFiles = [];
arraySep = ","; arraySep = ",";
args = (["program.name", "--output", "myfile.txt,yourfile.txt"]).dup; args = ["program.name", "--output", "myfile.txt,yourfile.txt"];
getopt(args, "output", &outputFiles); getopt(args, "output", &outputFiles);
assert(outputFiles.length == 2 assert(outputFiles.length == 2
&& outputFiles[0] == "myfile.txt" && outputFiles[1] == "yourfile.txt"); && outputFiles[0] == "myfile.txt" && outputFiles[1] == "yourfile.txt");
@ -1049,10 +1049,10 @@ unittest
verbosityLevel = 2; verbosityLevel = 2;
} }
} }
args = (["program.name", "--quiet"]).dup; args = ["program.name", "--quiet"];
getopt(args, "verbose", &myHandler, "quiet", &myHandler); getopt(args, "verbose", &myHandler, "quiet", &myHandler);
assert(verbosityLevel == 0); assert(verbosityLevel == 0);
args = (["program.name", "--verbose"]).dup; args = ["program.name", "--verbose"];
getopt(args, "verbose", &myHandler, "quiet", &myHandler); getopt(args, "verbose", &myHandler, "quiet", &myHandler);
assert(verbosityLevel == 2); assert(verbosityLevel == 2);
@ -1062,7 +1062,7 @@ unittest
assert(option == "verbose"); assert(option == "verbose");
verbosityLevel = 2; verbosityLevel = 2;
} }
args = (["program.name", "--verbose", "2"]).dup; args = ["program.name", "--verbose", "2"];
getopt(args, "verbose", &myHandler2); getopt(args, "verbose", &myHandler2);
assert(verbosityLevel == 2); assert(verbosityLevel == 2);
@ -1071,12 +1071,12 @@ unittest
{ {
verbosityLevel = 2; verbosityLevel = 2;
} }
args = (["program.name", "--verbose"]).dup; args = ["program.name", "--verbose"];
getopt(args, "verbose", &myHandler3); getopt(args, "verbose", &myHandler3);
assert(verbosityLevel == 2); assert(verbosityLevel == 2);
bool foo, bar; bool foo, bar;
args = (["program.name", "--foo", "--bAr"]).dup; args = ["program.name", "--foo", "--bAr"];
getopt(args, getopt(args,
std.getopt.config.caseSensitive, std.getopt.config.caseSensitive,
std.getopt.config.passThrough, std.getopt.config.passThrough,
@ -1086,7 +1086,7 @@ unittest
// test stopOnFirstNonOption // test stopOnFirstNonOption
args = (["program.name", "--foo", "nonoption", "--bar"]).dup; args = ["program.name", "--foo", "nonoption", "--bar"];
foo = bar = false; foo = bar = false;
getopt(args, getopt(args,
std.getopt.config.stopOnFirstNonOption, std.getopt.config.stopOnFirstNonOption,
@ -1094,7 +1094,7 @@ unittest
"bar", &bar); "bar", &bar);
assert(foo && !bar && args[1] == "nonoption" && args[2] == "--bar"); assert(foo && !bar && args[1] == "nonoption" && args[2] == "--bar");
args = (["program.name", "--foo", "nonoption", "--zab"]).dup; args = ["program.name", "--foo", "nonoption", "--zab"];
foo = bar = false; foo = bar = false;
getopt(args, getopt(args,
std.getopt.config.stopOnFirstNonOption, std.getopt.config.stopOnFirstNonOption,
@ -1102,7 +1102,7 @@ unittest
"bar", &bar); "bar", &bar);
assert(foo && !bar && args[1] == "nonoption" && args[2] == "--zab"); assert(foo && !bar && args[1] == "nonoption" && args[2] == "--zab");
args = (["program.name", "--fb1", "--fb2=true", "--tb1=false"]).dup; args = ["program.name", "--fb1", "--fb2=true", "--tb1=false"];
bool fb1, fb2; bool fb1, fb2;
bool tb1 = true; bool tb1 = true;
getopt(args, "fb1", &fb1, "fb2", &fb2, "tb1", &tb1); getopt(args, "fb1", &fb1, "fb2", &fb2, "tb1", &tb1);
@ -1138,17 +1138,17 @@ unittest
} }
static void myStaticHandler1() { throw new MyEx(); } static void myStaticHandler1() { throw new MyEx(); }
args = (["program.name", "--verbose"]).dup; args = ["program.name", "--verbose"];
try { getopt(args, "verbose", &myStaticHandler1); assert(0); } try { getopt(args, "verbose", &myStaticHandler1); assert(0); }
catch (MyEx ex) { assert(ex.option is null && ex.value is null); } catch (MyEx ex) { assert(ex.option is null && ex.value is null); }
static void myStaticHandler2(string option) { throw new MyEx(option); } static void myStaticHandler2(string option) { throw new MyEx(option); }
args = (["program.name", "--verbose"]).dup; args = ["program.name", "--verbose"];
try { getopt(args, "verbose", &myStaticHandler2); assert(0); } try { getopt(args, "verbose", &myStaticHandler2); assert(0); }
catch (MyEx ex) { assert(ex.option == "verbose" && ex.value is null); } catch (MyEx ex) { assert(ex.option == "verbose" && ex.value is null); }
static void myStaticHandler3(string option, string value) { throw new MyEx(option, value); } static void myStaticHandler3(string option, string value) { throw new MyEx(option, value); }
args = (["program.name", "--verbose", "2"]).dup; args = ["program.name", "--verbose", "2"];
try { getopt(args, "verbose", &myStaticHandler3); assert(0); } try { getopt(args, "verbose", &myStaticHandler3); assert(0); }
catch (MyEx ex) { assert(ex.option == "verbose" && ex.value == "2"); } catch (MyEx ex) { assert(ex.option == "verbose" && ex.value == "2"); }
} }