@aster-cloud/aster-lang-ts 1.2.0 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/dist/src/config/config-service.d.ts +4 -2
- package/dist/src/config/config-service.d.ts.map +1 -1
- package/dist/src/config/config-service.js +9 -6
- package/dist/src/config/config-service.js.map +1 -1
- package/dist/src/lsp/completion.d.ts +0 -23
- package/dist/src/lsp/completion.d.ts.map +1 -1
- package/dist/src/lsp/completion.js +2 -46
- package/dist/src/lsp/completion.js.map +1 -1
- package/dist/src/lsp/diagnostics.d.ts.map +1 -1
- package/dist/src/lsp/diagnostics.js +6 -6
- package/dist/src/lsp/diagnostics.js.map +1 -1
- package/dist/src/lsp/log-sink.d.ts +21 -0
- package/dist/src/lsp/log-sink.d.ts.map +1 -0
- package/dist/src/lsp/log-sink.js +37 -0
- package/dist/src/lsp/log-sink.js.map +1 -0
- package/dist/src/lsp/member-completion.d.ts +59 -0
- package/dist/src/lsp/member-completion.d.ts.map +1 -0
- package/dist/src/lsp/member-completion.js +112 -0
- package/dist/src/lsp/member-completion.js.map +1 -0
- package/dist/src/lsp/parse-document.d.ts +5 -0
- package/dist/src/lsp/parse-document.d.ts.map +1 -1
- package/dist/src/lsp/parse-document.js +8 -1
- package/dist/src/lsp/parse-document.js.map +1 -1
- package/dist/src/lsp/resolution.d.ts +6 -0
- package/dist/src/lsp/resolution.d.ts.map +1 -1
- package/dist/src/lsp/resolution.js +17 -0
- package/dist/src/lsp/resolution.js.map +1 -1
- package/dist/src/lsp/server.js +3 -0
- package/dist/src/lsp/server.js.map +1 -1
- package/dist/src/parser/expr-stmt-parser.d.ts.map +1 -1
- package/dist/src/parser/expr-stmt-parser.js +8 -2
- package/dist/src/parser/expr-stmt-parser.js.map +1 -1
- package/dist/src/utils/logger.d.ts +11 -0
- package/dist/src/utils/logger.d.ts.map +1 -1
- package/dist/src/utils/logger.js +16 -2
- package/dist/src/utils/logger.js.map +1 -1
- package/dist/test/integration/lsp/lsp-member-completion.test.d.ts +2 -0
- package/dist/test/integration/lsp/lsp-member-completion.test.d.ts.map +1 -0
- package/dist/test/integration/lsp/lsp-member-completion.test.js +133 -0
- package/dist/test/integration/lsp/lsp-member-completion.test.js.map +1 -0
- package/dist/test/unit/config/config-service.test.js +13 -0
- package/dist/test/unit/config/config-service.test.js.map +1 -1
- package/dist/test/unit/lsp/log-levels.test.d.ts +2 -0
- package/dist/test/unit/lsp/log-levels.test.d.ts.map +1 -0
- package/dist/test/unit/lsp/log-levels.test.js +152 -0
- package/dist/test/unit/lsp/log-levels.test.js.map +1 -0
- package/dist/test/unit/lsp/resolution-completion.test.js +40 -3
- package/dist/test/unit/lsp/resolution-completion.test.js.map +1 -1
- package/dist/test/unit/parser/parser.test.js +19 -0
- package/dist/test/unit/parser/parser.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lsp-member-completion.test.js","sourceRoot":"","sources":["../../../../test/integration/lsp/lsp-member-completion.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ const ENV_KEYS = [
|
|
|
11
11
|
'ASTER_CAPS',
|
|
12
12
|
'ASTER_DEBUG_TYPES',
|
|
13
13
|
'LOG_LEVEL',
|
|
14
|
+
'ASTER_LOG_LEVEL',
|
|
14
15
|
];
|
|
15
16
|
const ORIGINAL_ENV = Object.fromEntries(ENV_KEYS.map((key) => [key, process.env[key]]));
|
|
16
17
|
const DEFAULT_HTTP_PREFIXES = ['IO.', 'Http.', 'AuthRepo.', 'ProfileSvc.', 'FeedSvc.'];
|
|
@@ -75,6 +76,18 @@ describe('ConfigService', () => {
|
|
|
75
76
|
setEnv('LOG_LEVEL', 'verbose');
|
|
76
77
|
const instance = ConfigService.getInstance();
|
|
77
78
|
assert.strictEqual(instance.logLevel, LogLevel.INFO);
|
|
79
|
+
assert.strictEqual(instance.configuredLogLevel, undefined);
|
|
80
|
+
});
|
|
81
|
+
it('ASTER_LOG_LEVEL 优先于 LOG_LEVEL,并记录为显式配置', () => {
|
|
82
|
+
setEnv('LOG_LEVEL', 'error');
|
|
83
|
+
setEnv('ASTER_LOG_LEVEL', 'debug');
|
|
84
|
+
const instance = ConfigService.getInstance();
|
|
85
|
+
assert.strictEqual(instance.logLevel, LogLevel.DEBUG);
|
|
86
|
+
assert.strictEqual(instance.configuredLogLevel, LogLevel.DEBUG);
|
|
87
|
+
});
|
|
88
|
+
it('数字形式的日志级别视为非法', () => {
|
|
89
|
+
setEnv('ASTER_LOG_LEVEL', '2');
|
|
90
|
+
assert.strictEqual(ConfigService.getInstance().configuredLogLevel, undefined);
|
|
78
91
|
});
|
|
79
92
|
});
|
|
80
93
|
describe('effect_config', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-service.test.js","sourceRoot":"","sources":["../../../../test/unit/config/config-service.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAIxD,MAAM,QAAQ,GAAG;IACf,2BAA2B;IAC3B,qBAAqB;IACrB,YAAY;IACZ,mBAAmB;IACnB,WAAW;
|
|
1
|
+
{"version":3,"file":"config-service.test.js","sourceRoot":"","sources":["../../../../test/unit/config/config-service.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-levels.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/lsp/log-levels.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LSP 日志级别:Logger 按真实级别映射到 window/logMessage 类型,
|
|
3
|
+
* 默认(WARN)不把 INFO / DEBUG 与 [TypecheckCache] 诊断日志推给客户端。
|
|
4
|
+
*/
|
|
5
|
+
import { describe, it, afterEach } from 'node:test';
|
|
6
|
+
import assert from 'node:assert/strict';
|
|
7
|
+
import { LogLevel, Logger, installLogSink } from '../../../src/utils/logger.js';
|
|
8
|
+
import { createLspLogSink, installLspLogSink, LSP_DEFAULT_LOG_LEVEL } from '../../../src/lsp/log-sink.js';
|
|
9
|
+
import { computeDiagnostics, invalidateDiagnosticCache } from '../../../src/lsp/diagnostics.js';
|
|
10
|
+
import { ConfigService } from '../../../src/config/config-service.js';
|
|
11
|
+
import { ZH_CN } from '../../../src/config/lexicons/zh-CN.js';
|
|
12
|
+
import { DECLS, docOf, getOrParseWith } from './resolution-fixture.js';
|
|
13
|
+
/** 记录 logMessage 类型:1=Error 2=Warning 3=Info 4=Log */
|
|
14
|
+
function recordingConsole() {
|
|
15
|
+
const messages = [];
|
|
16
|
+
const push = (type) => (text) => void messages.push({ type, text });
|
|
17
|
+
return { console: { error: push(1), warn: push(2), info: push(3), log: push(4) }, messages };
|
|
18
|
+
}
|
|
19
|
+
const restores = [];
|
|
20
|
+
const envBackup = { ASTER_LOG_LEVEL: process.env.ASTER_LOG_LEVEL, LOG_LEVEL: process.env.LOG_LEVEL };
|
|
21
|
+
function install(sinkFactory) {
|
|
22
|
+
restores.push(sinkFactory());
|
|
23
|
+
}
|
|
24
|
+
afterEach(() => {
|
|
25
|
+
while (restores.length)
|
|
26
|
+
restores.pop()();
|
|
27
|
+
for (const [k, v] of Object.entries(envBackup)) {
|
|
28
|
+
if (v === undefined)
|
|
29
|
+
delete process.env[k];
|
|
30
|
+
else
|
|
31
|
+
process.env[k] = v;
|
|
32
|
+
}
|
|
33
|
+
ConfigService.resetForTesting();
|
|
34
|
+
});
|
|
35
|
+
function withEnv(key, value) {
|
|
36
|
+
if (value === undefined)
|
|
37
|
+
delete process.env[key];
|
|
38
|
+
else
|
|
39
|
+
process.env[key] = value;
|
|
40
|
+
ConfigService.resetForTesting();
|
|
41
|
+
}
|
|
42
|
+
describe('LSP 日志级别映射', () => {
|
|
43
|
+
it('默认 WARN:INFO / DEBUG 不产生 logMessage', () => {
|
|
44
|
+
withEnv('ASTER_LOG_LEVEL', undefined);
|
|
45
|
+
withEnv('LOG_LEVEL', undefined);
|
|
46
|
+
const { console, messages } = recordingConsole();
|
|
47
|
+
install(() => installLspLogSink(console));
|
|
48
|
+
const logger = new Logger('typecheck', LogLevel.DEBUG);
|
|
49
|
+
logger.debug('d');
|
|
50
|
+
logger.info('i');
|
|
51
|
+
assert.deepEqual(messages, []);
|
|
52
|
+
assert.equal(LSP_DEFAULT_LOG_LEVEL, LogLevel.WARN);
|
|
53
|
+
});
|
|
54
|
+
it('WARN 产生 type 2,ERROR 产生 type 1,且内容为 JSON 行', () => {
|
|
55
|
+
withEnv('ASTER_LOG_LEVEL', undefined);
|
|
56
|
+
withEnv('LOG_LEVEL', undefined);
|
|
57
|
+
const { console, messages } = recordingConsole();
|
|
58
|
+
install(() => installLspLogSink(console));
|
|
59
|
+
const logger = new Logger('typecheck');
|
|
60
|
+
logger.warn('w');
|
|
61
|
+
logger.error('e', new Error('boom'));
|
|
62
|
+
assert.deepEqual(messages.map((m) => m.type), [2, 1]);
|
|
63
|
+
assert.equal(JSON.parse(messages[0].text).level, 'WARN');
|
|
64
|
+
assert.equal(JSON.parse(messages[1].text).error, 'boom');
|
|
65
|
+
});
|
|
66
|
+
it('ASTER_LOG_LEVEL 可调高:INFO→3,DEBUG→4', () => {
|
|
67
|
+
withEnv('ASTER_LOG_LEVEL', 'debug');
|
|
68
|
+
const { console, messages } = recordingConsole();
|
|
69
|
+
install(() => installLspLogSink(console));
|
|
70
|
+
const logger = new Logger('typecheck');
|
|
71
|
+
logger.info('i');
|
|
72
|
+
logger.debug('d');
|
|
73
|
+
assert.deepEqual(messages.map((m) => m.type), [3, 4]);
|
|
74
|
+
});
|
|
75
|
+
it('ASTER_LOG_LEVEL=error 压低到只发 ERROR', () => {
|
|
76
|
+
withEnv('ASTER_LOG_LEVEL', 'error');
|
|
77
|
+
const { console, messages } = recordingConsole();
|
|
78
|
+
install(() => installLspLogSink(console));
|
|
79
|
+
const logger = new Logger('x');
|
|
80
|
+
logger.warn('w');
|
|
81
|
+
logger.error('e');
|
|
82
|
+
assert.deepEqual(messages.map((m) => m.type), [1]);
|
|
83
|
+
});
|
|
84
|
+
it('落点恢复后回到 stderr 行为', () => {
|
|
85
|
+
const { console, messages } = recordingConsole();
|
|
86
|
+
const restore = installLogSink(createLspLogSink(console, LogLevel.DEBUG));
|
|
87
|
+
restore();
|
|
88
|
+
const original = globalThis.console.error;
|
|
89
|
+
const seen = [];
|
|
90
|
+
globalThis.console.error = (line) => void seen.push(line);
|
|
91
|
+
try {
|
|
92
|
+
new Logger('x', LogLevel.INFO).info('cli');
|
|
93
|
+
}
|
|
94
|
+
finally {
|
|
95
|
+
globalThis.console.error = original;
|
|
96
|
+
}
|
|
97
|
+
assert.equal(messages.length, 0);
|
|
98
|
+
assert.equal(seen.length, 1);
|
|
99
|
+
});
|
|
100
|
+
it('CLI 默认不安装落点:INFO 仍写 stderr', () => {
|
|
101
|
+
const original = globalThis.console.error;
|
|
102
|
+
const seen = [];
|
|
103
|
+
globalThis.console.error = (line) => void seen.push(String(line));
|
|
104
|
+
try {
|
|
105
|
+
new Logger('cli', LogLevel.INFO).info('hello');
|
|
106
|
+
new Logger('cli', LogLevel.INFO).debug('hidden');
|
|
107
|
+
}
|
|
108
|
+
finally {
|
|
109
|
+
globalThis.console.error = original;
|
|
110
|
+
}
|
|
111
|
+
assert.equal(seen.length, 1);
|
|
112
|
+
assert.equal(JSON.parse(seen[0]).level, 'INFO');
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
describe('[TypecheckCache] 诊断日志', () => {
|
|
116
|
+
const GOOD = ['规则 检查 给定 x 作为 司机,产出 整数:', ' 返回 x.alter。', ''];
|
|
117
|
+
async function runTwice() {
|
|
118
|
+
const doc = docOf([...DECLS, ...GOOD]);
|
|
119
|
+
const getOrParse = getOrParseWith(ZH_CN);
|
|
120
|
+
await computeDiagnostics(doc.document, getOrParse, ZH_CN);
|
|
121
|
+
invalidateDiagnosticCache(doc.document.uri);
|
|
122
|
+
await computeDiagnostics(doc.document, getOrParse, ZH_CN);
|
|
123
|
+
}
|
|
124
|
+
it('默认级别下不输出,也不写 stderr', async () => {
|
|
125
|
+
withEnv('ASTER_LOG_LEVEL', undefined);
|
|
126
|
+
withEnv('LOG_LEVEL', undefined);
|
|
127
|
+
const { console, messages } = recordingConsole();
|
|
128
|
+
install(() => installLspLogSink(console));
|
|
129
|
+
const original = globalThis.console.error;
|
|
130
|
+
const stderr = [];
|
|
131
|
+
globalThis.console.error = (...a) => void stderr.push(a);
|
|
132
|
+
try {
|
|
133
|
+
await runTwice();
|
|
134
|
+
}
|
|
135
|
+
finally {
|
|
136
|
+
globalThis.console.error = original;
|
|
137
|
+
}
|
|
138
|
+
assert.deepEqual(messages.filter((m) => m.text.includes('TypecheckCache')), []);
|
|
139
|
+
assert.deepEqual(stderr.filter((a) => String(a).includes('TypecheckCache')), []);
|
|
140
|
+
});
|
|
141
|
+
it('调到 DEBUG 后以 type 4 输出(缓存写入与命中)', async () => {
|
|
142
|
+
withEnv('ASTER_LOG_LEVEL', 'debug');
|
|
143
|
+
const { console, messages } = recordingConsole();
|
|
144
|
+
install(() => installLspLogSink(console));
|
|
145
|
+
await runTwice();
|
|
146
|
+
const cache = messages.filter((m) => m.text.includes('[TypecheckCache]'));
|
|
147
|
+
assert.ok(cache.length >= 1, '应至少有一条 TypecheckCache 日志');
|
|
148
|
+
assert.ok(cache.every((m) => m.type === 4));
|
|
149
|
+
assert.ok(cache.some((m) => m.text.includes('Cached')));
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
//# sourceMappingURL=log-levels.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-levels.test.js","sourceRoot":"","sources":["../../../../test/unit/lsp/log-levels.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -116,11 +116,48 @@ describe('构造字段补全(`T with …` 的字段名位置,#248)', () =>
|
|
|
116
116
|
assert.deepEqual(labels(items), ['name']);
|
|
117
117
|
});
|
|
118
118
|
});
|
|
119
|
+
describe('成员位置识别(cloud#660 第 5 轮)', () => {
|
|
120
|
+
it('★行中:`x.` 后还有内容,按接收者类型补全,textEdit 为光标处空范围', () => {
|
|
121
|
+
const line = ' 返回 x. 加 1。';
|
|
122
|
+
const at = ' 返回 x.'.length;
|
|
123
|
+
const doc = docOf([...DECLS, '规则 f 给定 x 作为 司机,产出 整数:', line, '']);
|
|
124
|
+
const items = completeAt(doc, DECLS.length + 1, at);
|
|
125
|
+
assert.deepEqual(labels(items), ['alter', 'name']);
|
|
126
|
+
assert.deepEqual(items.find((i) => i.label === 'alter')?.textEdit, {
|
|
127
|
+
range: { start: { line: DECLS.length + 1, character: at }, end: { line: DECLS.length + 1, character: at } }, newText: 'alter',
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
it('★带前缀:`x.al` 的 textEdit 覆盖前缀 al,词汇本地化写法', () => {
|
|
131
|
+
const line = ' 返回 x.al';
|
|
132
|
+
const doc = docOf([...DECLS, '规则 f 给定 x 作为 司机,产出 整数:', line, '']);
|
|
133
|
+
const items = completeAt(doc, DECLS.length + 1, line.length);
|
|
134
|
+
assert.deepEqual(labels(items), ['alter', 'name']);
|
|
135
|
+
assert.equal(items[0].textEdit?.range.start.character, line.length - 2);
|
|
136
|
+
});
|
|
137
|
+
it('★未完成的块头 `如果 x.`(zh 句末为「。」):按参数类型补全', () => {
|
|
138
|
+
for (const line of [' 如果 x.', ' 如果 x.al']) {
|
|
139
|
+
const doc = docOf([...DECLS, '规则 f 给定 x 作为 司机,产出 整数:', line, '']);
|
|
140
|
+
assert.deepEqual(labels(completeAt(doc, DECLS.length + 1, line.length)), ['alter', 'name'], line);
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
it('块头后已有缩进的块体:仍可推断', () => {
|
|
144
|
+
const doc = docOf([...DECLS, '规则 f 给定 x 作为 司机,产出 整数:', ' 如果 x.', ' 返回 1。', ' 返回 0。', '']);
|
|
145
|
+
assert.deepEqual(labels(completeAt(doc, DECLS.length + 1, ' 如果 x.'.length)), ['alter', 'name']);
|
|
146
|
+
});
|
|
147
|
+
it('接收者是数字或光标不在成员位置:不给字段', () => {
|
|
148
|
+
const doc = docOf([...DECLS, '规则 f 给定 x 作为 司机,产出 整数:', ' 返回 1.', '']);
|
|
149
|
+
assert.ok(!labels(completeAt(doc, DECLS.length + 1, ' 返回 1.'.length)).includes('alter'));
|
|
150
|
+
});
|
|
151
|
+
});
|
|
119
152
|
describe('语法不完整时降级', () => {
|
|
120
|
-
it('
|
|
153
|
+
it('★文档其它位置有语法错误:完整声明里的接收者类型仍可信,照常给字段补全(cloud#660 第 5 轮)', () => {
|
|
154
|
+
// 解析器只丢弃未完成的声明;x 所在的函数完整,其参数类型不受影响。诊断仍按原规则降级(见 resolution-diagnostics)。
|
|
121
155
|
const items = labels(completeAfter('x 作为 司机', [' 返回 x.'], ['规则 坏 给定 h 作为 车主,产出 整数:', ' 返回 h.fahrer.al']));
|
|
122
|
-
assert.
|
|
123
|
-
|
|
156
|
+
assert.deepEqual(items, ['alter', 'name']);
|
|
157
|
+
});
|
|
158
|
+
it('★未完成的那一行本身:`h.fahrer.al` 按 fahrer 的类型 Driver 补全(前缀 al)', () => {
|
|
159
|
+
const doc = docOf([...DECLS, '规则 坏 给定 h 作为 车主,产出 整数:', ' 返回 h.fahrer.al', '']);
|
|
160
|
+
assert.deepEqual(labels(completeAt(doc, DECLS.length + 1, ' 返回 h.fahrer.al'.length)), ['alter', 'name']);
|
|
124
161
|
});
|
|
125
162
|
it('半行输入不抛异常', () => {
|
|
126
163
|
for (const tail of [' 返回 x.al', ' 返回 x', ' 令 y 定义为 司机 包含', ' 返回 .']) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolution-completion.test.js","sourceRoot":"","sources":["../../../../test/unit/lsp/resolution-completion.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"resolution-completion.test.js","sourceRoot":"","sources":["../../../../test/unit/lsp/resolution-completion.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1384,6 +1384,25 @@ Rule greet given name as Text, produce Text:
|
|
|
1384
1384
|
assert.equal(letStmt.name, 'result');
|
|
1385
1385
|
});
|
|
1386
1386
|
});
|
|
1387
|
+
/* 2026-10-30 生产复测 B2:`helper with 10`(with 调用后缀)编辑器报 "Expected identifier",
|
|
1388
|
+
* 服务端(Java,AsterParser.g4 malformedConstructField)报 "Expected 'set to' in construction"。
|
|
1389
|
+
* `X with` 一律按构造解析,首个字段位置不是名字时与 Java 同口径:只报一条 set to 诊断。 */
|
|
1390
|
+
describe('构造字段缺名字时与 Java 引擎同一诊断(复测 B2)', () => {
|
|
1391
|
+
const errors = (src) => parseWithDiag(src).diagnostics.filter(d => d.severity === 'error');
|
|
1392
|
+
it('★`helper with 10` → 只报 "Expected \'set to\' in construction"', () => {
|
|
1393
|
+
const errs = errors('Module a.b.\nRule helper given n as Int, produce Int:\n Return n plus 1.\n'
|
|
1394
|
+
+ 'Rule f given x as Int, produce Int:\n Let y be helper with 10.\n Return y.\n');
|
|
1395
|
+
assert.deepEqual(errs.map(d => d.message), ["Expected 'set to' in construction"]);
|
|
1396
|
+
});
|
|
1397
|
+
it('字符串字面量作首个字段位置同样报 set to', () => {
|
|
1398
|
+
const errs = errors('Module a.b.\nDefine Box has v.\nRule f given x, produce:\n Return Box with "v".\n');
|
|
1399
|
+
assert.deepEqual(errs.map(d => d.message), ["Expected 'set to' in construction"]);
|
|
1400
|
+
});
|
|
1401
|
+
it('字段名后用 = 的既有诊断不变', () => {
|
|
1402
|
+
const errs = errors('Module a.b.\nDefine Box has v.\nRule f given x, produce:\n Return Box with v = 1.\n');
|
|
1403
|
+
assert.deepEqual(errs.map(d => d.message), ["Expected 'set to' in construction"]);
|
|
1404
|
+
});
|
|
1405
|
+
});
|
|
1387
1406
|
describe('结构体位置式构造编译期报错', () => {
|
|
1388
1407
|
it('对已声明类型用 TypeName(args) 应报错并提示用 with..set to', () => {
|
|
1389
1408
|
const r = parseWithDiag('Module a.b.\nDefine Box has v, w.\nRule f given x, produce:\n Return Box(5, 6).\n');
|