Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions compiler/test/compilable/ddoc23080.d
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// PERMUTE_ARGS:
// REQUIRED_ARGS: -D -Dd${RESULTS_DIR}/compilable -o-
// POST_SCRIPT: compilable/extra-files/ddocAny-postscript.sh
// EXTRA_SOURCES: extra-files/ddoc_minimal.ddoc

// https://issues.dlang.org/show_bug.cgi?id=23080
module ddoc23080;

/// Base class holding the real implementation.
class Base23080
{
/// call doc
final void call() {}
}

/// Derived class forwarding call via a documented alias.
class Derived23080 : Base23080
{
/// call doc
alias call = Base23080.call;
}
142 changes: 142 additions & 0 deletions compiler/test/compilable/extra-files/ddoc23080.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@

<section class="section ddoc_module_members_section">
Comment thread
usefahmed07 marked this conversation as resolved.
Outdated
<div class="ddoc_module_members">
<ul class="ddoc_members">
<li class="ddoc_member">
<div class="ddoc_member_header">
<div class="ddoc_header_anchor">
<a href="#Base23080" id="Base23080"><code class="code">Base23080</code></a>
</div>
</div><div class="ddoc_decl">
<section class="section">
<div class="declaration">
<h4>Declaration</h4>
<div class="dlang">
<p class="para">
<code class="code">
<span class="ddoc_anchor" id="Base23080"></span>class <code class="code">Base23080</code>;

</code>
</p>
</div>
</div>
</section>
</div>
<div class="ddoc_decl">
<section class="section ddoc_sections">
<div class="ddoc_summary">
<p class="para">
Base class holding the real implementation.
</p>
</div>

</section>
<ul class="ddoc_members">
<li class="ddoc_member">
<div class="ddoc_member_header">
<div class="ddoc_header_anchor">
<a href="#Base23080.call" id="Base23080.call"><code class="code">call</code></a>
</div>
</div><div class="ddoc_decl">
<section class="section">
<div class="declaration">
<h4>Declaration</h4>
<div class="dlang">
<p class="para">
<code class="code">
<span class="ddoc_anchor" id="Base23080.call"></span>final void <code class="code">call</code>();

</code>
</p>
</div>
</div>
</section>
</div>
<div class="ddoc_decl">
<section class="section ddoc_sections">
<div class="ddoc_summary">
<p class="para">
<code class="code">call</code> doc
</p>
</div>

</section>

</div>

</li>
</ul>

</div>

</li><li class="ddoc_member">
<div class="ddoc_member_header">
<div class="ddoc_header_anchor">
<a href="#Derived23080" id="Derived23080"><code class="code">Derived23080</code></a>
</div>
</div><div class="ddoc_decl">
<section class="section">
<div class="declaration">
<h4>Declaration</h4>
<div class="dlang">
<p class="para">
<code class="code">
<span class="ddoc_anchor" id="Derived23080"></span>class <code class="code">Derived23080</code>: <span class="ddoc_psuper_symbol">ddoc23080.Base23080</span>;

</code>
</p>
</div>
</div>
</section>
</div>
<div class="ddoc_decl">
<section class="section ddoc_sections">
<div class="ddoc_summary">
<p class="para">
Derived class forwarding call via a documented alias.
</p>
</div>

</section>
<ul class="ddoc_members">
<li class="ddoc_member">
<div class="ddoc_member_header">
<div class="ddoc_header_anchor">
<a href="#Derived23080.call" id="Derived23080.call"><code class="code">call</code></a>
</div>
</div><div class="ddoc_decl">
<section class="section">
<div class="declaration">
<h4>Declaration</h4>
<div class="dlang">
<p class="para">
<code class="code">
<span class="ddoc_anchor" id="Derived23080.call"></span>alias <code class="code">call</code> = .Base23080.<code class="code">call</code>;

</code>
</p>
</div>
</div>
</section>
</div>
<div class="ddoc_decl">
<section class="section ddoc_sections">
<div class="ddoc_summary">
<p class="para">
<code class="code">call</code> doc
</p>
</div>

</section>

</div>

</li>
</ul>

</div>

</li>
</ul>
</div>
</section>
57 changes: 57 additions & 0 deletions druntime/src/core/thread/fiber/package.d
Original file line number Diff line number Diff line change
Expand Up @@ -620,6 +620,63 @@ class Fiber : FiberBase
return cast(Fiber) FiberBase.getThis();
}

///////////////////////////////////////////////////////////////////////////
// Forwarded from FiberBase; keep docs in sync with fiber/base.d.
///////////////////////////////////////////////////////////////////////////

/**
* Transfers execution to this fiber object. The calling context will be
* suspended until the fiber calls Fiber.yield() or until it terminates
* via an unhandled exception.
*
* This fiber must be in state HOLD.
*
* Throws:
* Any exception not handled by the joined thread.
*
* Returns:
* Any exception not handled by this fiber if rethrow = false, null
* otherwise.
*/
alias call = FiberBase.call;

/// Flag to control rethrow behavior of $(REF call, core, thread, fiber)
alias Rethrow = FiberBase.Rethrow;

/**
* Resets this fiber so that it may be re-used, optionally with a
* new function/delegate. This routine should only be called for
* fibers that have terminated, as doing otherwise could result in
* scope-dependent functionality that is not executed.
* Stack-based classes, for example, may not be cleaned up
* properly if a fiber is reset before it has terminated.
*
* In:
* This fiber must be in state TERM or HOLD.
*/
alias reset = FiberBase.reset;

/// A fiber may occupy one of three states: HOLD, EXEC, and TERM.
alias State = FiberBase.State;

/**
* Gets the current state of this fiber.
*
* Returns:
* The state of this fiber as an enumerated value.
*/
alias state = FiberBase.state;

/// Forces a context switch to occur away from the calling fiber.
alias yield = FiberBase.yield;

/**
* Forces a context switch to occur away from the calling fiber and then
* throws obj in the calling fiber. The passed exception must not be null.
*/
alias yieldAndThrow = FiberBase.yieldAndThrow;



///////////////////////////////////////////////////////////////////////////
// Static Initialization
Expand Down
Loading