(root)/
gcc-13.2.0/
gcc/
testsuite/
gdc.dg/
torture/
gdc17.d
// https://bugzilla.gdcproject.org/show_bug.cgi?id=17
// { dg-do run }
// { dg-skip-if "needs gcc/config.d" { ! d_runtime } }

/**
 * Parameters are not copied into a frame to be accessed from
 * the method's __require function.
 */
void contractTest(string path)
{
    assert(path[0] == 't');
    assert(path.length == 9);
    assert(path[8] == 'i');
}

interface ModuleSaver
{
    void save(string str)
    in
    {
        contractTest(str);
    }
}

class ModuleWriter : ModuleSaver
{
    void save (string str)
    in {}
    do
    {
    }
}

void main()
{
  (new ModuleWriter()).save ("test.0.mci");
}