February 19, 2017
https://issues.dlang.org/show_bug.cgi?id=17198

          Issue ID: 17198
           Summary: rdmd does not recompile when --extra-file is added
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P1
         Component: tools
          Assignee: nobody@puremagic.com
          Reporter: dlang@croco-puzzle.com

test.d:

module test;

import std.stdio;

void main()
{
    B tmp = cast(B)Object.factory("test2.BB");
    tmp.m1();
}

interface A   { abstract void m1(); }
interface B:A { abstract void m2(); }
class AA:A    { override void m1() { writeln("A"); } }


test2.d:

module test2;

import std.stdio;
import test;

class BB:AA,B { override void m2() { writeln("B"); } }


And here is what I get when compiling:

$> rdmd test.d
segmentation fault
$> rdmd --extra-file=test2.d test.d
segmentation fault
$> rm -rf /tmp/.rdmd-1000/
$> rdmd --extra-file=test2.d test.d
A

Using --chatty on the second invocation shows, that no recompilation takes place.

$> rdmd --version
rdmd build 20170122
[...]

--