dmd/compiler/test/compilable/import_exp.d
Nicholas Wilson 57c5b071af
Rebase stable6 (#16967)
* Document template instance duplication status as part of its field documentation. (#16643)

* Fix Bugzilla 24599 - Wrongly elided TypeInfo emission (#15868)

Reverting #14844, which caused such missing TypeInfos, *and* making
sure the special TypeInfo members are fully analyzed and ready for
codegen (otherwise hitting an assertion for the real-world project).

* Reorganize backend build files to match target and make more similar per line (#16672)

* Remove redundant suggestions on linker errors (#16711)

* Fix bugzilla 24337 - Segfault when printing an int[] cast from a string (#16729)

* Add BitFieldStyle.Gcc_Clang_ARM

Required for 32-bit ARM, and non-Apple 64-bit ARM targets.

The only difference to `Gcc_Clang` is that anonymous and 0-length
bit-fields do contribute to the aggregate alignment.

Caught by existing proper C interop tests in
runnable_cxx/testbitfields.d on such targets. The hardcoded bad tests
in runnable/{bitfieldsposix64.c,dbitfieldsposix64.d} however now fail
after the fix, on such targets again.

* [refactor to `TargetC.contributesToAggregateAlignment(BitFieldDeclaration)` hook]

* Fix Bugzilla Issue 24687 - [REG2.110] Cannot cast string-imports to select overload anymore

* Also make deprecationSupplemental adhere to error limit (#16779)

Co-authored-by: Dennis Korpel <dennis@sarc.nl>

* Fix bugzilla 24699 - [REG2.108] No short-circuit evaluation of mixing template bool argument

* Fix bugzilla 24731 - IFTI cannot handle integer expressions (#16822)

* Fix Bugzilla Issue 24760 - ICE on variadic after default argument

* Fix bugzilla 24790 - -vcg-ast ICE on lowered assign exp (#16914)

Co-authored-by: Dennis Korpel <dennis@sarc.nl>

* Fix bugzilla 24764 - ICE when -vcg-ast prints imported invariant (#16917)

Co-authored-by: Dennis Korpel <dennis@sarc.nl>

* Fix bugzilla 24431 - dmd -vcg-ast crashes printing failed template in… (#16916)

---------

Co-authored-by: Richard (Rikki) Andrew Cattermole <richard@cattermole.co.nz>
Co-authored-by: Martin Kinkelin <kinke@users.noreply.github.com>
Co-authored-by: Dennis <dkorpel@users.noreply.github.com>
Co-authored-by: Martin Kinkelin <mkinkelin@symmetryinvestments.com>
Co-authored-by: Martin Kinkelin <noone@nowhere.com>
Co-authored-by: RazvanN7 <razvan.nitu1305@gmail.com>
Co-authored-by: Dennis Korpel <dennis@sarc.nl>
Co-authored-by: Dennis Korpel <dkorpel@gmail.com>
2024-10-07 12:00:14 +03:00

44 lines
1.2 KiB
D

// REQUIRED_ARGS: -Jcompilable/imports/
// EXTRA_FILES: imports/imp16088.d imports/test21227/a..b.txt imports/test21227/a.txt imports/test21227/..foo/a.txt
// https://issues.dlang.org/show_bug.cgi?id=16088
void bar(string x) {}
auto foo()
{
import("imp16088.d").bar;
}
// https://issues.dlang.org/show_bug.cgi?id=21227
void test21227()
{
import("./test21227/a.txt").bar;
import("test21227//a..b.txt").bar;
import("test21227/..foo/a.txt").bar;
version(Windows)
{
import(r".\test21227\a.txt").bar;
import(r"test21227\\a..b.txt").bar;
import(r"test21227\..foo\a.txt").bar;
}
}
// Test that it's treated like a hex string, allowing implicit conversion to byte array
// Can't test whole contents because line endings may vary
enum expectedStart = "module imports.imp16088;";
immutable ubyte[] s0 = import("imp16088.d");
static assert(s0[0 .. expectedStart.length] == "module imports.imp16088;");
// https://issues.dlang.org/show_bug.cgi?id=24687
void foo(string path);
void foo(const(ubyte[]) data);
void bar1() { foo(import("imp16088.d")); } // matches both
void bar2() { foo(cast(const(ubyte[])) import("imp16088.d")); } // matches both!