| // PERMUTE_ARGS: |
| // REQUIRED_ARGS: -D -Dd${RESULTS_DIR}/compilable -o- |
| // POST_SCRIPT: compilable/extra-files/ddocAny-postscript.sh |
| |
| // https://issues.dlang.org/show_bug.cgi?id=294 |
| |
| /// The foo |
| struct Foo(T) { } |
| /// ditto |
| struct Foo(T,U) { } |
| |
| /** This basic case doesn't work very well. The template signature is |
| * documented twice, but the function signature (argument names and return |
| * type) is not documented at all. This comment is also repeated twice. */ |
| int func1(T)(T x) {} |
| |
| |
| |
| /** This comment is also repeated twice, and the second function signature is |
| * not very well documented. */ |
| int func2(T,U)(T x, U y) {} |
| |
| /// ditto |
| int func2(T)(T x) {} |
| |
| /// Separate overload item. |
| int func2()() {} |
| |
| |
| /// |
| template func3(T,U) { |
| /** This used to work adequately and documented both func3 templates |
| * simultaneously. Now, it documents the first template twice and |
| * no longer documents the function argument and return types.*/ |
| int func3(T x, U y) {} |
| } |
| |
| /// ditto |
| deprecated template func3(T, U=int, V:long) { |
| private int func3(T x) {} |
| } |
| |
| |
| |
| /** |
| * blah |
| */ |
| |
| void map(char rs) |
| { |
| } |
| |
| /// Ditto |
| void map(int rs) |
| { |
| } |
| |
| |
| |
| /** |
| * blah |
| */ |
| |
| void map2()(char rs) |
| { |
| } |
| |
| /// Ditto |
| void map2()(int rs) |
| { |
| } |
| |
| |
| |
| /** |
| * blah http://www.map3.com map3 |
| */ |
| |
| void map3(char rs) |
| { |
| } |
| |
| |
| |
| |
| /** |
| * blah http://www.map.com map |
| */ |
| |
| void map4(string s)(char rs) |
| { |
| } |
| |
| |
| |
| /** |
| * blah http://www.map.com map |
| */ |
| |
| template map5(string s) |
| { |
| } |
| |
| |
| /** blah */ |
| struct bar6 { |
| int blah; |
| } |
| |
| |
| /** template bodies */ |
| struct Foo7(T) { |
| |
| /**Attempt one: Doc outside static if.*/ |
| static if(is(T == uint)) { |
| /**Attempt two: Inside.*/ |
| void bar() {} |
| } |
| else { |
| /**Attempt two: else.*/ |
| void bar() {} |
| } |
| |
| /** the abc function should be static */ |
| static void abc() { } |
| } |
| |
| |
| /** show abstract */ |
| abstract class Foo8 { } |
| |
| /// a stray $(RPAREN) mustn't foul the macros |
| void bug4878(string a = ")") {} |
| |
| /**** |
| */ |
| struct S |
| { |
| /**** |
| */ |
| this(long ticks) const pure nothrow { } |
| |
| /**** |
| */ |
| pure nothrow this(this) { } |
| |
| /**** |
| */ |
| const pure nothrow ~this() { } |
| |
| /**** |
| */ |
| void foo(long ticks) const pure nothrow { } |
| } |
| |
| |
| /** Produces something in (a;b] */ |
| float f10(float a, float b) { return (a+b)/2.0; } |
| /** Produces something in [a;b) */ |
| float h10(float a, float b) { return (a+b)/2.0; } |
| |
| |
| /// |
| void bug6090(string f="$(B b)", char g=')')(string h="$(", string i="$)") {} |
| |
| |
| /**** |
| */ |
| struct T |
| { |
| /**** |
| */ |
| this(A...)(A args) { } |
| |
| /// |
| this(int){} |
| } |
| |
| |
| // https://issues.dlang.org/show_bug.cgi?id=14547 |
| |
| /// doc-comment |
| int x14547 = 1; |
| |
| /// ditto |
| enum int y14547 = 2; |
| |
| /// doc-comment |
| enum isInt14547(T) = is(T == int); |
| |
| /// ditto |
| enum bool isString14547(T) = is(T == string); |
| |
| /// ditto |
| static immutable typeName14547(T) = T.stringof; |
| |
| /// ditto |
| int storageFor14547(T) = 0; |
| |
| /// doc-comment |
| template foo14547(T) |
| { |
| enum int foo14547 = T.stringof.length; |
| } |
| |
| /// ditto |
| template bar14547(T) if (is(T == int)) |
| { |
| enum int bar14547 = T.stringof.length; |
| } |