test: prove ordinary import binding modes
This commit is contained in:
@@ -206,8 +206,8 @@ fn rejectstable(dir: str, label: str, target: str, needle: str) void = {
|
||||
"import dimensions;\n",
|
||||
"def PRIVATE_WIDTH: i32 = 3;\n",
|
||||
"export type Buffer = [PRIVATE_WIDTH]u8;\n",
|
||||
"export type PublicBuffer = [WIDTH]u8;\n",
|
||||
"export type CastBuffer = [(WIDTH: u64)]u8;\n",
|
||||
"export type PublicBuffer = [dimensions.WIDTH]u8;\n",
|
||||
"export type CastBuffer = [(dimensions.WIDTH: u64)]u8;\n",
|
||||
"export type Detail = struct { code: i64, };\n",
|
||||
"export type Member = struct { detail: Detail, payload: i64, };\n",
|
||||
"export type Unused = struct { noise: i32, };\n",
|
||||
@@ -223,7 +223,7 @@ fn rejectstable(dir: str, label: str, target: str, needle: str) void = {
|
||||
"export type Member = struct { local: i32, };\n",
|
||||
"export fn produce(v: i32) implementation.Member = { return implementation.construct(v); };\n",
|
||||
"export fn score(m: implementation.Member) i32 = { return (m.detail.code + m.payload): i32; };\n",
|
||||
"export fn width_of(b: Buffer) i32 = { return len(b): i32; };\n",
|
||||
"export fn width_of(b: implementation.Buffer) i32 = { return len(b): i32; };\n",
|
||||
"export fn public_width_of(b: implementation.PublicBuffer) i32 = { return len(b): i32; };\n",
|
||||
"export fn cast_width_of(b: implementation.CastBuffer) i32 = { return len(b): i32; };\n");
|
||||
let mainsrc: str = strings.concat(
|
||||
@@ -423,7 +423,8 @@ fn writediamond(td: str, reverse: bool) str = {
|
||||
"left.wwi"));
|
||||
let rightiface: str = testenv.readfile(strings.concat(scratch,
|
||||
"right.wwi"));
|
||||
if (testenv.occurrences(leftiface, "import shared;") != 1) {
|
||||
if (testenv.occurrences(leftiface,
|
||||
"import __wwi_736861726564 shared;") != 1) {
|
||||
fail("diamond", "direct import is missing or duplicated in export data");
|
||||
};
|
||||
if (testenv.occurrences(leftiface, "export type token") != 1
|
||||
@@ -907,7 +908,7 @@ fn writediamond(td: str, reverse: bool) str = {
|
||||
"/.wwtool.w6a")), testenv.readfile(assembler))
|
||||
|| !testenv.same(testenv.readfile(strings.concat(work,
|
||||
"/.wwtool.stamp")),
|
||||
"ww workdir fmt 14 mode build asm 0\n")) {
|
||||
"ww workdir fmt 15 mode build asm 0\n")) {
|
||||
fail("driver-identity", "persistent artifacts or identities are incomplete");
|
||||
};
|
||||
let coldwwi: str = testenv.readfile(strings.concat(work, "/dep.wwi"));
|
||||
@@ -1140,7 +1141,7 @@ fn writediamond(td: str, reverse: bool) str = {
|
||||
"package main;\nimport left;\n",
|
||||
"fn main() i32 = { return shared.base(); };\n"));
|
||||
rejectstable(td, "transitive", strings.concat(td, "/transitive.ww"),
|
||||
"package 'shared' is not directly imported");
|
||||
"undefined: shared");
|
||||
testenv.writefile(strings.concat(td, "/transitive-bare-value.ww"),
|
||||
strings.concat("package main;\nimport left;\n",
|
||||
"fn main() i32 = { return base(); };\n"));
|
||||
|
||||
Reference in New Issue
Block a user