mirror of
https://github.com/dlang/dmd.git
synced 2025-04-26 21:21:48 +03:00

This makes the following changes: - Add template `_d_newclassT` to `druntime.src.core.lifetime.d` - Replace lowering of `new C()` to `_d_newclassT!C()` - Add `lowering` member to `NewExp`. This field stores the above lowering to be used by e2ir.d - Keep the old `_d_newclass` hook because it's used by `TypeInfo_Class.create()` - Add dummy `_d_newclassT` hook to tests that redefine the `object` module - Remove `new MinHeap!(TestType)()` from `fail308.d`. Otherwise the errror was changed and printed the local path to druntime - Move `err` to global scope in rt.sections.d to avoid the frontend lowering - Account for the `GC.malloc()` called by the template hook in the `-profile=gc` tests Signed-off-by: Teodor Dutu <teodor.dutu@gmail.com> Signed-off-by: Teodor Dutu <teodor.dutu@gmail.com>
25 lines
399 B
D
25 lines
399 B
D
// https://issues.dlang.org/show_bug.cgi?id=23569
|
|
/*
|
|
TEST_OUTPUT:
|
|
---
|
|
fail_compilation/ice23569.d(24): Error: cannot compare classes for equality because `object.Object` was not declared
|
|
---
|
|
*/
|
|
module object;
|
|
|
|
T _d_newclassT(T)()
|
|
if (is(T == class))
|
|
{
|
|
return null;
|
|
}
|
|
|
|
@safe unittest1()
|
|
{
|
|
class F
|
|
{
|
|
this(int )
|
|
{
|
|
}
|
|
}
|
|
auto ice23569 = new F(0) == new F(0);
|
|
}
|