brighterscript 1.0.0-alpha.25 → 1.0.0-alpha.27
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 +44 -0
- package/bsconfig.schema.json +5 -0
- package/dist/AstValidationSegmenter.d.ts +1 -1
- package/dist/AstValidationSegmenter.js +6 -7
- package/dist/AstValidationSegmenter.js.map +1 -1
- package/dist/BsConfig.d.ts +1 -0
- package/dist/DiagnosticMessages.d.ts +1 -3
- package/dist/DiagnosticMessages.js +5 -8
- package/dist/DiagnosticMessages.js.map +1 -1
- package/dist/Program.d.ts +1 -1
- package/dist/Program.js +40 -42
- package/dist/Program.js.map +1 -1
- package/dist/Scope.d.ts +2 -13
- package/dist/Scope.js +27 -35
- package/dist/Scope.js.map +1 -1
- package/dist/SymbolTable.d.ts +1 -8
- package/dist/SymbolTable.js +1 -10
- package/dist/SymbolTable.js.map +1 -1
- package/dist/SymbolTableFlag.d.ts +8 -0
- package/dist/SymbolTableFlag.js +13 -0
- package/dist/SymbolTableFlag.js.map +1 -0
- package/dist/XmlScope.d.ts +1 -6
- package/dist/XmlScope.js +6 -25
- package/dist/XmlScope.js.map +1 -1
- package/dist/astUtils/CachedLookups.d.ts +1 -2
- package/dist/astUtils/CachedLookups.js +3 -14
- package/dist/astUtils/CachedLookups.js.map +1 -1
- package/dist/astUtils/Editor.spec.js +1 -1
- package/dist/astUtils/Editor.spec.js.map +1 -1
- package/dist/astUtils/creators.js +77 -18
- package/dist/astUtils/creators.js.map +1 -1
- package/dist/astUtils/creators.spec.js +4 -4
- package/dist/astUtils/creators.spec.js.map +1 -1
- package/dist/astUtils/reflection.d.ts +3 -1
- package/dist/astUtils/reflection.js +12 -4
- package/dist/astUtils/reflection.js.map +1 -1
- package/dist/astUtils/reflection.spec.js +59 -42
- package/dist/astUtils/reflection.spec.js.map +1 -1
- package/dist/astUtils/visitors.spec.js +30 -19
- package/dist/astUtils/visitors.spec.js.map +1 -1
- package/dist/bscPlugin/BscPlugin.d.ts +2 -1
- package/dist/bscPlugin/BscPlugin.js +7 -3
- package/dist/bscPlugin/BscPlugin.js.map +1 -1
- package/dist/bscPlugin/CallExpressionInfo.js +7 -7
- package/dist/bscPlugin/CallExpressionInfo.js.map +1 -1
- package/dist/bscPlugin/SignatureHelpUtil.js +5 -4
- package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -1
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +2 -2
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.js +23 -23
- package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
- package/dist/bscPlugin/definition/DefinitionProvider.d.ts +13 -0
- package/dist/bscPlugin/definition/DefinitionProvider.js +210 -0
- package/dist/bscPlugin/definition/DefinitionProvider.js.map +1 -0
- package/dist/bscPlugin/definition/DefinitionProvider.spec.d.ts +1 -0
- package/dist/bscPlugin/definition/DefinitionProvider.spec.js +88 -0
- package/dist/bscPlugin/definition/DefinitionProvider.spec.js.map +1 -0
- package/dist/bscPlugin/hover/HoverProcessor.d.ts +1 -0
- package/dist/bscPlugin/hover/HoverProcessor.js +28 -8
- package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
- package/dist/bscPlugin/hover/HoverProcessor.spec.js +74 -2
- package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +2 -5
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +8 -6
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -1
- package/dist/bscPlugin/validation/BrsFileValidator.js +46 -47
- package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.d.ts +10 -0
- package/dist/bscPlugin/validation/ScopeValidator.js +120 -39
- package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.spec.js +165 -10
- package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -1
- package/dist/diagnosticUtils.d.ts +1 -1
- package/dist/files/BrsFile.Class.spec.js +7 -6
- package/dist/files/BrsFile.Class.spec.js.map +1 -1
- package/dist/files/BrsFile.d.ts +7 -15
- package/dist/files/BrsFile.js +49 -309
- package/dist/files/BrsFile.js.map +1 -1
- package/dist/files/BrsFile.spec.js +111 -157
- package/dist/files/BrsFile.spec.js.map +1 -1
- package/dist/files/XmlFile.d.ts +2 -3
- package/dist/files/XmlFile.js +0 -2
- package/dist/files/XmlFile.js.map +1 -1
- package/dist/interfaces.d.ts +109 -84
- package/dist/interfaces.js +9 -9
- package/dist/interfaces.js.map +1 -1
- package/dist/parser/AstNode.spec.js +6 -6
- package/dist/parser/AstNode.spec.js.map +1 -1
- package/dist/parser/Expression.d.ts +301 -164
- package/dist/parser/Expression.js +355 -294
- package/dist/parser/Expression.js.map +1 -1
- package/dist/parser/Parser.Class.spec.js +26 -27
- package/dist/parser/Parser.Class.spec.js.map +1 -1
- package/dist/parser/Parser.d.ts +6 -2
- package/dist/parser/Parser.js +361 -160
- package/dist/parser/Parser.js.map +1 -1
- package/dist/parser/Parser.spec.js +69 -213
- package/dist/parser/Parser.spec.js.map +1 -1
- package/dist/parser/SGParser.js +49 -35
- package/dist/parser/SGParser.js.map +1 -1
- package/dist/parser/SGTypes.d.ts +36 -24
- package/dist/parser/SGTypes.js +26 -55
- package/dist/parser/SGTypes.js.map +1 -1
- package/dist/parser/Statement.d.ts +381 -238
- package/dist/parser/Statement.js +510 -386
- package/dist/parser/Statement.js.map +1 -1
- package/dist/parser/Statement.spec.js +2 -2
- package/dist/parser/Statement.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/For.spec.js +1 -1
- package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/ForEach.spec.js +2 -2
- package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
- package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +1 -1
- package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
- package/dist/parser/tests/expression/Call.spec.js +11 -11
- package/dist/parser/tests/expression/Call.spec.js.map +1 -1
- package/dist/parser/tests/expression/Indexing.spec.js +30 -5
- package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +2 -2
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/TernaryExpression.spec.js +2 -2
- package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/TypeExpression.spec.js +8 -9
- package/dist/parser/tests/expression/TypeExpression.spec.js.map +1 -1
- package/dist/parser/tests/statement/ConstStatement.spec.js +1 -1
- package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/Dim.spec.js +8 -8
- package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
- package/dist/parser/tests/statement/Enum.spec.js +2 -2
- package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
- package/dist/parser/tests/statement/LibraryStatement.spec.js +2 -2
- package/dist/parser/tests/statement/LibraryStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/Misc.spec.js +2 -2
- package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
- package/dist/parser/tests/statement/PrintStatement.spec.js +1 -1
- package/dist/parser/tests/statement/TryCatch.spec.js +10 -3
- package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
- package/dist/roku-types/data.json +70 -52
- package/dist/roku-types/index.d.ts +43 -21
- package/dist/types/ArrayType.js +1 -2
- package/dist/types/ArrayType.js.map +1 -1
- package/dist/types/ArrayType.spec.js +7 -8
- package/dist/types/ArrayType.spec.js.map +1 -1
- package/dist/types/AssociativeArrayType.js +2 -3
- package/dist/types/AssociativeArrayType.js.map +1 -1
- package/dist/types/BscType.d.ts +1 -1
- package/dist/types/BscType.js +2 -3
- package/dist/types/BscType.js.map +1 -1
- package/dist/types/BuiltInInterfaceAdder.js +15 -9
- package/dist/types/BuiltInInterfaceAdder.js.map +1 -1
- package/dist/types/BuiltInInterfaceAdder.spec.js +31 -32
- package/dist/types/BuiltInInterfaceAdder.spec.js.map +1 -1
- package/dist/types/ClassType.spec.js +10 -11
- package/dist/types/ClassType.spec.js.map +1 -1
- package/dist/types/ComponentType.d.ts +2 -1
- package/dist/types/ComponentType.js.map +1 -1
- package/dist/types/EnumType.js +2 -3
- package/dist/types/EnumType.js.map +1 -1
- package/dist/types/InheritableType.js +3 -4
- package/dist/types/InheritableType.js.map +1 -1
- package/dist/types/InterfaceType.js +2 -3
- package/dist/types/InterfaceType.js.map +1 -1
- package/dist/types/InterfaceType.spec.js +3 -4
- package/dist/types/InterfaceType.spec.js.map +1 -1
- package/dist/types/ObjectType.js +1 -2
- package/dist/types/ObjectType.js.map +1 -1
- package/dist/types/ReferenceType.d.ts +1 -1
- package/dist/types/ReferenceType.spec.js +21 -22
- package/dist/types/ReferenceType.spec.js.map +1 -1
- package/dist/types/UnionType.js +3 -3
- package/dist/types/UnionType.js.map +1 -1
- package/dist/types/UnionType.spec.js +37 -38
- package/dist/types/UnionType.spec.js.map +1 -1
- package/dist/types/helper.spec.js +4 -5
- package/dist/types/helper.spec.js.map +1 -1
- package/dist/util.d.ts +16 -7
- package/dist/util.js +89 -43
- package/dist/util.js.map +1 -1
- package/dist/validators/ClassValidator.d.ts +0 -9
- package/dist/validators/ClassValidator.js +9 -52
- package/dist/validators/ClassValidator.js.map +1 -1
- package/package.json +1 -1
|
@@ -6,9 +6,9 @@ const reflection_1 = require("../../astUtils/reflection");
|
|
|
6
6
|
const Cache_1 = require("../../Cache");
|
|
7
7
|
const DiagnosticMessages_1 = require("../../DiagnosticMessages");
|
|
8
8
|
const interfaces_1 = require("../../interfaces");
|
|
9
|
-
const SymbolTable_1 = require("../../SymbolTable");
|
|
10
9
|
const util_1 = require("../../util");
|
|
11
10
|
const roku_types_1 = require("../../roku-types");
|
|
11
|
+
const AstNode_1 = require("../../parser/AstNode");
|
|
12
12
|
const Expression_1 = require("../../parser/Expression");
|
|
13
13
|
const visitors_1 = require("../../astUtils/visitors");
|
|
14
14
|
const AstValidationSegmenter_1 = require("../../AstValidationSegmenter");
|
|
@@ -50,7 +50,7 @@ class ScopeValidator {
|
|
|
50
50
|
let thisFileRequiresChangedSymbol = false;
|
|
51
51
|
for (let requiredSymbol of file.requiredSymbols) {
|
|
52
52
|
// eslint-disable-next-line no-bitwise
|
|
53
|
-
for (const flag of [
|
|
53
|
+
for (const flag of [1 /* SymbolTypeFlag.runtime */, 2 /* SymbolTypeFlag.typetime */]) {
|
|
54
54
|
// eslint-disable-next-line no-bitwise
|
|
55
55
|
if (flag & requiredSymbol.flags) {
|
|
56
56
|
const changeSymbolSetForFlag = this.event.changedSymbols.get(flag);
|
|
@@ -90,6 +90,12 @@ class ScopeValidator {
|
|
|
90
90
|
},
|
|
91
91
|
UnaryExpression: (unaryExpr) => {
|
|
92
92
|
this.validateUnaryExpression(file, unaryExpr);
|
|
93
|
+
},
|
|
94
|
+
AssignmentStatement: (assignStmt) => {
|
|
95
|
+
this.validateAssignmentStatement(file, assignStmt);
|
|
96
|
+
},
|
|
97
|
+
NewExpression: (newExpr) => {
|
|
98
|
+
this.validateNewExpression(file, newExpr);
|
|
93
99
|
}
|
|
94
100
|
});
|
|
95
101
|
const segmentsToWalkForValidation = (thisFileHasChanges || !hasChangeInfo)
|
|
@@ -119,15 +125,15 @@ class ScopeValidator {
|
|
|
119
125
|
return false;
|
|
120
126
|
}
|
|
121
127
|
let assignmentAncestor;
|
|
122
|
-
if ((0, reflection_1.isAssignmentStatement)(definingNode) && definingNode.equals.kind === TokenKind_1.TokenKind.Equal) {
|
|
128
|
+
if ((0, reflection_1.isAssignmentStatement)(definingNode) && definingNode.tokens.equals.kind === TokenKind_1.TokenKind.Equal) {
|
|
123
129
|
// this symbol was defined in a "normal" assignment (eg. not a compound assignment)
|
|
124
130
|
assignmentAncestor = definingNode;
|
|
125
|
-
return ((_a = assignmentAncestor === null || assignmentAncestor === void 0 ? void 0 : assignmentAncestor.name) === null || _a === void 0 ? void 0 : _a.text.toLowerCase()) === ((_b = expression === null || expression === void 0 ? void 0 : expression.name) === null || _b === void 0 ? void 0 : _b.text.toLowerCase());
|
|
131
|
+
return ((_a = assignmentAncestor === null || assignmentAncestor === void 0 ? void 0 : assignmentAncestor.tokens.name) === null || _a === void 0 ? void 0 : _a.text.toLowerCase()) === ((_b = expression === null || expression === void 0 ? void 0 : expression.tokens.name) === null || _b === void 0 ? void 0 : _b.text.toLowerCase());
|
|
126
132
|
}
|
|
127
133
|
else {
|
|
128
134
|
assignmentAncestor = expression === null || expression === void 0 ? void 0 : expression.findAncestor(reflection_1.isAssignmentStatement);
|
|
129
135
|
}
|
|
130
|
-
return (assignmentAncestor === null || assignmentAncestor === void 0 ? void 0 : assignmentAncestor.name) === (expression === null || expression === void 0 ? void 0 : expression.name) && (0, reflection_1.isUnionType)(exprType);
|
|
136
|
+
return (assignmentAncestor === null || assignmentAncestor === void 0 ? void 0 : assignmentAncestor.tokens.name) === (expression === null || expression === void 0 ? void 0 : expression.tokens.name) && (0, reflection_1.isUnionType)(exprType);
|
|
131
137
|
}
|
|
132
138
|
/**
|
|
133
139
|
* Flag duplicate enums
|
|
@@ -181,23 +187,27 @@ class ScopeValidator {
|
|
|
181
187
|
* do this manually for now.
|
|
182
188
|
*/
|
|
183
189
|
validateCreateObjectCall(file, call) {
|
|
184
|
-
var _a, _b, _c, _d, _e, _f;
|
|
190
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
185
191
|
//skip non CreateObject function calls
|
|
186
192
|
const callName = (_a = util_1.default.getAllDottedGetPartsAsString(call.callee)) === null || _a === void 0 ? void 0 : _a.toLowerCase();
|
|
187
193
|
if (callName !== 'createobject' || !(0, reflection_1.isLiteralExpression)(call === null || call === void 0 ? void 0 : call.args[0])) {
|
|
188
194
|
return;
|
|
189
195
|
}
|
|
190
|
-
const firstParamToken = (_b = call === null || call === void 0 ? void 0 : call.args[0]) === null || _b === void 0 ? void 0 : _b.
|
|
191
|
-
const firstParamStringValue = (
|
|
196
|
+
const firstParamToken = (_c = (_b = call === null || call === void 0 ? void 0 : call.args[0]) === null || _b === void 0 ? void 0 : _b.tokens) === null || _c === void 0 ? void 0 : _c.value;
|
|
197
|
+
const firstParamStringValue = (_d = firstParamToken === null || firstParamToken === void 0 ? void 0 : firstParamToken.text) === null || _d === void 0 ? void 0 : _d.replace(/"/g, '');
|
|
198
|
+
if (!firstParamStringValue) {
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
const firstParamStringValueLower = firstParamStringValue.toLowerCase();
|
|
192
202
|
//if this is a `createObject('roSGNode'` call, only support known sg node types
|
|
193
|
-
if (
|
|
194
|
-
const componentName = (
|
|
203
|
+
if (firstParamStringValueLower === 'rosgnode' && (0, reflection_1.isLiteralExpression)(call === null || call === void 0 ? void 0 : call.args[1])) {
|
|
204
|
+
const componentName = (_e = call === null || call === void 0 ? void 0 : call.args[1]) === null || _e === void 0 ? void 0 : _e.tokens.value;
|
|
195
205
|
//don't validate any components with a colon in their name (probably component libraries, but regular components can have them too).
|
|
196
|
-
if ((
|
|
206
|
+
if (!componentName || ((_f = componentName === null || componentName === void 0 ? void 0 : componentName.text) === null || _f === void 0 ? void 0 : _f.includes(':'))) {
|
|
197
207
|
return;
|
|
198
208
|
}
|
|
199
209
|
//add diagnostic for unknown components
|
|
200
|
-
const unquotedComponentName = (
|
|
210
|
+
const unquotedComponentName = (_g = componentName === null || componentName === void 0 ? void 0 : componentName.text) === null || _g === void 0 ? void 0 : _g.replace(/"/g, '');
|
|
201
211
|
if (unquotedComponentName && !platformNodeNames.has(unquotedComponentName.toLowerCase()) && !this.event.program.getComponent(unquotedComponentName)) {
|
|
202
212
|
this.addDiagnosticOnce(Object.assign(Object.assign({ file: file }, DiagnosticMessages_1.DiagnosticMessages.unknownRoSGNode(unquotedComponentName)), { range: componentName.range }));
|
|
203
213
|
}
|
|
@@ -206,15 +216,15 @@ class ScopeValidator {
|
|
|
206
216
|
this.addDiagnosticOnce(Object.assign(Object.assign({ file: file }, DiagnosticMessages_1.DiagnosticMessages.mismatchCreateObjectArgumentCount(firstParamStringValue, [2], call === null || call === void 0 ? void 0 : call.args.length)), { range: call.range }));
|
|
207
217
|
}
|
|
208
218
|
}
|
|
209
|
-
else if (!platformComponentNames.has(
|
|
219
|
+
else if (!platformComponentNames.has(firstParamStringValueLower)) {
|
|
210
220
|
this.addDiagnosticOnce(Object.assign(Object.assign({ file: file }, DiagnosticMessages_1.DiagnosticMessages.unknownBrightScriptComponent(firstParamStringValue)), { range: firstParamToken.range }));
|
|
211
221
|
}
|
|
212
222
|
else {
|
|
213
223
|
// This is valid brightscript component
|
|
214
224
|
// Test for invalid arg counts
|
|
215
|
-
const brightScriptComponent = roku_types_1.components[
|
|
225
|
+
const brightScriptComponent = roku_types_1.components[firstParamStringValueLower];
|
|
216
226
|
// Valid arg counts for createObject are 1+ number of args for constructor
|
|
217
|
-
let validArgCounts = brightScriptComponent.constructors.map(cnstr => cnstr.params.length + 1);
|
|
227
|
+
let validArgCounts = brightScriptComponent === null || brightScriptComponent === void 0 ? void 0 : brightScriptComponent.constructors.map(cnstr => cnstr.params.length + 1);
|
|
218
228
|
if (validArgCounts.length === 0) {
|
|
219
229
|
// no constructors for this component, so createObject only takes 1 arg
|
|
220
230
|
validArgCounts = [1];
|
|
@@ -224,7 +234,7 @@ class ScopeValidator {
|
|
|
224
234
|
this.addDiagnosticOnce(Object.assign(Object.assign({ file: file }, DiagnosticMessages_1.DiagnosticMessages.mismatchCreateObjectArgumentCount(firstParamStringValue, validArgCounts, call === null || call === void 0 ? void 0 : call.args.length)), { range: call.range }));
|
|
225
235
|
}
|
|
226
236
|
// Test for deprecation
|
|
227
|
-
if (brightScriptComponent.isDeprecated) {
|
|
237
|
+
if (brightScriptComponent === null || brightScriptComponent === void 0 ? void 0 : brightScriptComponent.isDeprecated) {
|
|
228
238
|
this.addDiagnosticOnce(Object.assign(Object.assign({ file: file }, DiagnosticMessages_1.DiagnosticMessages.deprecatedBrightScriptComponent(firstParamStringValue, brightScriptComponent.deprecatedDescription)), { range: call.range }));
|
|
229
239
|
}
|
|
230
240
|
}
|
|
@@ -234,7 +244,7 @@ class ScopeValidator {
|
|
|
234
244
|
*/
|
|
235
245
|
validateFunctionCall(file, expression) {
|
|
236
246
|
var _a, _b;
|
|
237
|
-
const getTypeOptions = { flags:
|
|
247
|
+
const getTypeOptions = { flags: 1 /* SymbolTypeFlag.runtime */, data: {} };
|
|
238
248
|
let funcType = (_a = expression === null || expression === void 0 ? void 0 : expression.callee) === null || _a === void 0 ? void 0 : _a.getType(getTypeOptions);
|
|
239
249
|
if ((funcType === null || funcType === void 0 ? void 0 : funcType.isResolvable()) && (0, reflection_1.isClassType)(funcType)) {
|
|
240
250
|
// We're calling a class - get the constructor
|
|
@@ -267,7 +277,7 @@ class ScopeValidator {
|
|
|
267
277
|
let paramIndex = 0;
|
|
268
278
|
for (let arg of expression.args) {
|
|
269
279
|
const data = {};
|
|
270
|
-
let argType = arg.getType({ flags:
|
|
280
|
+
let argType = arg.getType({ flags: 1 /* SymbolTypeFlag.runtime */, data: data });
|
|
271
281
|
const paramType = (_b = funcType.params[paramIndex]) === null || _b === void 0 ? void 0 : _b.type;
|
|
272
282
|
if (!paramType) {
|
|
273
283
|
// unable to find a paramType -- maybe there are more args than params
|
|
@@ -295,8 +305,8 @@ class ScopeValidator {
|
|
|
295
305
|
*/
|
|
296
306
|
validateReturnStatement(file, returnStmt) {
|
|
297
307
|
var _a;
|
|
298
|
-
const getTypeOptions = { flags:
|
|
299
|
-
let funcType = returnStmt.findAncestor(reflection_1.isFunctionExpression).getType({ flags:
|
|
308
|
+
const getTypeOptions = { flags: 1 /* SymbolTypeFlag.runtime */ };
|
|
309
|
+
let funcType = returnStmt.findAncestor(reflection_1.isFunctionExpression).getType({ flags: 2 /* SymbolTypeFlag.typetime */ });
|
|
300
310
|
if ((0, reflection_1.isTypedFunctionType)(funcType)) {
|
|
301
311
|
const actualReturnType = (_a = returnStmt.value) === null || _a === void 0 ? void 0 : _a.getType(getTypeOptions);
|
|
302
312
|
const compatibilityData = {};
|
|
@@ -311,11 +321,17 @@ class ScopeValidator {
|
|
|
311
321
|
validateDottedSetStatement(file, dottedSetStmt) {
|
|
312
322
|
var _a;
|
|
313
323
|
const typeChainExpectedLHS = [];
|
|
314
|
-
const getTypeOpts = { flags:
|
|
324
|
+
const getTypeOpts = { flags: 1 /* SymbolTypeFlag.runtime */ };
|
|
315
325
|
const expectedLHSType = dottedSetStmt === null || dottedSetStmt === void 0 ? void 0 : dottedSetStmt.getType(Object.assign(Object.assign({}, getTypeOpts), { data: {}, typeChain: typeChainExpectedLHS }));
|
|
316
326
|
const actualRHSType = (_a = dottedSetStmt === null || dottedSetStmt === void 0 ? void 0 : dottedSetStmt.value) === null || _a === void 0 ? void 0 : _a.getType(getTypeOpts);
|
|
317
327
|
const compatibilityData = {};
|
|
318
328
|
const typeChainScan = util_1.default.processTypeChain(typeChainExpectedLHS);
|
|
329
|
+
// check if anything in typeChain is an AA - if so, just allow it
|
|
330
|
+
if (typeChainExpectedLHS.find(typeChainItem => (0, reflection_1.isAssociativeArrayType)(typeChainItem.type))) {
|
|
331
|
+
// something in the chain is an AA
|
|
332
|
+
// treat members as dynamic - they could have been set without the type system's knowledge
|
|
333
|
+
return;
|
|
334
|
+
}
|
|
319
335
|
if (!(expectedLHSType === null || expectedLHSType === void 0 ? void 0 : expectedLHSType.isResolvable())) {
|
|
320
336
|
this.addMultiScopeDiagnostic(Object.assign(Object.assign({ file: file }, DiagnosticMessages_1.DiagnosticMessages.cannotFindName(typeChainScan.itemName, typeChainScan.fullNameOfItem)), { range: typeChainScan.range }));
|
|
321
337
|
return;
|
|
@@ -325,11 +341,29 @@ class ScopeValidator {
|
|
|
325
341
|
this.addMultiScopeDiagnostic(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.assignmentTypeMismatch(actualRHSType.toString(), expectedLHSType.toString(), compatibilityData)), { range: dottedSetStmt.range, file: file }));
|
|
326
342
|
}
|
|
327
343
|
}
|
|
344
|
+
/**
|
|
345
|
+
* Detect when declared type does not match rhs type
|
|
346
|
+
*/
|
|
347
|
+
validateAssignmentStatement(file, assignStmt) {
|
|
348
|
+
var _a;
|
|
349
|
+
if (!(assignStmt === null || assignStmt === void 0 ? void 0 : assignStmt.typeExpression)) {
|
|
350
|
+
// nothing to check
|
|
351
|
+
return;
|
|
352
|
+
}
|
|
353
|
+
const typeChainExpectedLHS = [];
|
|
354
|
+
const getTypeOpts = { flags: 1 /* SymbolTypeFlag.runtime */ };
|
|
355
|
+
const expectedLHSType = assignStmt.typeExpression.getType(Object.assign(Object.assign({}, getTypeOpts), { data: {}, typeChain: typeChainExpectedLHS }));
|
|
356
|
+
const actualRHSType = (_a = assignStmt.value) === null || _a === void 0 ? void 0 : _a.getType(getTypeOpts);
|
|
357
|
+
const compatibilityData = {};
|
|
358
|
+
if (!(expectedLHSType === null || expectedLHSType === void 0 ? void 0 : expectedLHSType.isTypeCompatible(actualRHSType, compatibilityData))) {
|
|
359
|
+
this.addMultiScopeDiagnostic(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.assignmentTypeMismatch(actualRHSType.toString(), expectedLHSType.toString(), compatibilityData)), { range: assignStmt.range, file: file }));
|
|
360
|
+
}
|
|
361
|
+
}
|
|
328
362
|
/**
|
|
329
363
|
* Detect invalid use of a binary operator
|
|
330
364
|
*/
|
|
331
365
|
validateBinaryExpression(file, binaryExpr) {
|
|
332
|
-
const getTypeOpts = { flags:
|
|
366
|
+
const getTypeOpts = { flags: 1 /* SymbolTypeFlag.runtime */ };
|
|
333
367
|
if (util_1.default.isInTypeExpression(binaryExpr)) {
|
|
334
368
|
return;
|
|
335
369
|
}
|
|
@@ -364,17 +398,17 @@ class ScopeValidator {
|
|
|
364
398
|
// one operand is basically "any" type... ignore;
|
|
365
399
|
return;
|
|
366
400
|
}
|
|
367
|
-
const opResult = util_1.default.binaryOperatorResultType(leftTypeToTest, binaryExpr.operator, rightTypeToTest);
|
|
401
|
+
const opResult = util_1.default.binaryOperatorResultType(leftTypeToTest, binaryExpr.tokens.operator, rightTypeToTest);
|
|
368
402
|
if ((0, reflection_1.isDynamicType)(opResult)) {
|
|
369
403
|
// if the result was dynamic, that means there wasn't a valid operation
|
|
370
|
-
this.addMultiScopeDiagnostic(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.operatorTypeMismatch(binaryExpr.operator.text, leftType.toString(), rightType.toString())), { range: binaryExpr.range, file: file }));
|
|
404
|
+
this.addMultiScopeDiagnostic(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.operatorTypeMismatch(binaryExpr.tokens.operator.text, leftType.toString(), rightType.toString())), { range: binaryExpr.range, file: file }));
|
|
371
405
|
}
|
|
372
406
|
}
|
|
373
407
|
/**
|
|
374
408
|
* Detect invalid use of a Unary operator
|
|
375
409
|
*/
|
|
376
410
|
validateUnaryExpression(file, unaryExpr) {
|
|
377
|
-
const getTypeOpts = { flags:
|
|
411
|
+
const getTypeOpts = { flags: 1 /* SymbolTypeFlag.runtime */ };
|
|
378
412
|
let rightType = unaryExpr.right.getType(getTypeOpts);
|
|
379
413
|
if (!rightType.isResolvable()) {
|
|
380
414
|
// Can not find the type. error handled elsewhere
|
|
@@ -392,24 +426,24 @@ class ScopeValidator {
|
|
|
392
426
|
// operand is basically "any" type... ignore;
|
|
393
427
|
}
|
|
394
428
|
else if ((0, reflection_1.isPrimitiveType)(rightType)) {
|
|
395
|
-
const opResult = util_1.default.unaryOperatorResultType(unaryExpr.operator, rightTypeToTest);
|
|
429
|
+
const opResult = util_1.default.unaryOperatorResultType(unaryExpr.tokens.operator, rightTypeToTest);
|
|
396
430
|
if ((0, reflection_1.isDynamicType)(opResult)) {
|
|
397
|
-
this.addMultiScopeDiagnostic(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.operatorTypeMismatch(unaryExpr.operator.text, rightType.toString())), { range: unaryExpr.range, file: file }));
|
|
431
|
+
this.addMultiScopeDiagnostic(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.operatorTypeMismatch(unaryExpr.tokens.operator.text, rightType.toString())), { range: unaryExpr.range, file: file }));
|
|
398
432
|
}
|
|
399
433
|
}
|
|
400
434
|
else {
|
|
401
435
|
// rhs is not a primitive, so no binary operator is allowed
|
|
402
|
-
this.addMultiScopeDiagnostic(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.operatorTypeMismatch(unaryExpr.operator.text, rightType.toString())), { range: unaryExpr.range, file: file }));
|
|
436
|
+
this.addMultiScopeDiagnostic(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.operatorTypeMismatch(unaryExpr.tokens.operator.text, rightType.toString())), { range: unaryExpr.range, file: file }));
|
|
403
437
|
}
|
|
404
438
|
}
|
|
405
439
|
validateVariableAndDottedGetExpressions(file, expression) {
|
|
406
|
-
var _a, _b;
|
|
440
|
+
var _a, _b, _c, _d;
|
|
407
441
|
if ((0, reflection_1.isDottedGetExpression)(expression.parent)) {
|
|
408
442
|
// We validate dottedGetExpressions at the top-most level
|
|
409
443
|
return;
|
|
410
444
|
}
|
|
411
445
|
if ((0, reflection_1.isVariableExpression)(expression)) {
|
|
412
|
-
if ((0, reflection_1.isAssignmentStatement)(expression.parent) && expression.parent.name === expression.name) {
|
|
446
|
+
if ((0, reflection_1.isAssignmentStatement)(expression.parent) && expression.parent.tokens.name === expression.tokens.name) {
|
|
413
447
|
// Don't validate LHS of assignments
|
|
414
448
|
return;
|
|
415
449
|
}
|
|
@@ -417,13 +451,13 @@ class ScopeValidator {
|
|
|
417
451
|
return;
|
|
418
452
|
}
|
|
419
453
|
}
|
|
420
|
-
let symbolType =
|
|
421
|
-
let oppositeSymbolType =
|
|
454
|
+
let symbolType = 1 /* SymbolTypeFlag.runtime */;
|
|
455
|
+
let oppositeSymbolType = 2 /* SymbolTypeFlag.typetime */;
|
|
422
456
|
const isUsedAsType = util_1.default.isInTypeExpression(expression);
|
|
423
457
|
if (isUsedAsType) {
|
|
424
458
|
// This is used in a TypeExpression - only look up types from SymbolTable
|
|
425
|
-
symbolType =
|
|
426
|
-
oppositeSymbolType =
|
|
459
|
+
symbolType = 2 /* SymbolTypeFlag.typetime */;
|
|
460
|
+
oppositeSymbolType = 1 /* SymbolTypeFlag.runtime */;
|
|
427
461
|
}
|
|
428
462
|
// Do a complete type check on all DottedGet and Variable expressions
|
|
429
463
|
// this will create a diagnostic if an invalid member is accessed
|
|
@@ -455,6 +489,14 @@ class ScopeValidator {
|
|
|
455
489
|
if (isUsedAsType) {
|
|
456
490
|
return;
|
|
457
491
|
}
|
|
492
|
+
const containingNamespaceName = (_b = expression.findAncestor(reflection_1.isNamespaceStatement)) === null || _b === void 0 ? void 0 : _b.getName(Parser_1.ParseMode.BrighterScript);
|
|
493
|
+
if (!((0, reflection_1.isCallExpression)(expression.parent) && (0, reflection_1.isNewExpression)((_c = expression.parent) === null || _c === void 0 ? void 0 : _c.parent))) {
|
|
494
|
+
const classUsedAsVarEntry = this.checkTypeChainForClassUsedAsVar(typeChain, containingNamespaceName);
|
|
495
|
+
if (classUsedAsVarEntry) {
|
|
496
|
+
this.addMultiScopeDiagnostic(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.itemCannotBeUsedAsVariable(classUsedAsVarEntry.toString())), { range: expression.range, file: file }));
|
|
497
|
+
return;
|
|
498
|
+
}
|
|
499
|
+
}
|
|
458
500
|
const lastTypeInfo = typeChain[typeChain.length - 1];
|
|
459
501
|
const parentTypeInfo = typeChain[typeChain.length - 2];
|
|
460
502
|
this.checkMemberAccessibility(file, expression, typeChain);
|
|
@@ -474,11 +516,35 @@ class ScopeValidator {
|
|
|
474
516
|
if (enumFileLink) {
|
|
475
517
|
this.addMultiScopeDiagnostic(Object.assign(Object.assign({ file: file }, DiagnosticMessages_1.DiagnosticMessages.unknownEnumValue(lastTypeInfo === null || lastTypeInfo === void 0 ? void 0 : lastTypeInfo.name, typeChainScanForParent.fullChainName)), { range: lastTypeInfo === null || lastTypeInfo === void 0 ? void 0 : lastTypeInfo.range, relatedInformation: [{
|
|
476
518
|
message: 'Enum declared here',
|
|
477
|
-
location: util_1.default.createLocation(vscode_uri_1.URI.file(enumFileLink === null || enumFileLink === void 0 ? void 0 : enumFileLink.file.srcPath).toString(), (
|
|
519
|
+
location: util_1.default.createLocation(vscode_uri_1.URI.file(enumFileLink === null || enumFileLink === void 0 ? void 0 : enumFileLink.file.srcPath).toString(), (_d = enumFileLink === null || enumFileLink === void 0 ? void 0 : enumFileLink.item) === null || _d === void 0 ? void 0 : _d.tokens.name.range)
|
|
478
520
|
}] }));
|
|
479
521
|
}
|
|
480
522
|
}
|
|
481
523
|
}
|
|
524
|
+
checkTypeChainForClassUsedAsVar(typeChain, containingNamespaceName) {
|
|
525
|
+
const ignoreKinds = [AstNode_1.AstNodeKind.TypeCastExpression, AstNode_1.AstNodeKind.NewExpression];
|
|
526
|
+
let lowerNameSoFar = '';
|
|
527
|
+
let classUsedAsVar;
|
|
528
|
+
let isFirst = true;
|
|
529
|
+
for (let i = 0; i < typeChain.length - 1; i++) { // do not look at final entry - we CAN use the constructor as a variable
|
|
530
|
+
const tce = typeChain[i];
|
|
531
|
+
lowerNameSoFar += `${lowerNameSoFar ? '.' : ''}${tce.name.toLowerCase()}`;
|
|
532
|
+
if (!(0, reflection_1.isNamespaceType)(tce.type)) {
|
|
533
|
+
if (isFirst && containingNamespaceName) {
|
|
534
|
+
lowerNameSoFar = `${containingNamespaceName.toLowerCase()}.${lowerNameSoFar}`;
|
|
535
|
+
}
|
|
536
|
+
if (!tce.kind || ignoreKinds.includes(tce.kind)) {
|
|
537
|
+
break;
|
|
538
|
+
}
|
|
539
|
+
else if ((0, reflection_1.isClassType)(tce.type) && lowerNameSoFar.toLowerCase() === tce.type.name.toLowerCase()) {
|
|
540
|
+
classUsedAsVar = tce.type;
|
|
541
|
+
}
|
|
542
|
+
break;
|
|
543
|
+
}
|
|
544
|
+
isFirst = false;
|
|
545
|
+
}
|
|
546
|
+
return classUsedAsVar;
|
|
547
|
+
}
|
|
482
548
|
/**
|
|
483
549
|
* Adds diagnostics for accibility mismatches
|
|
484
550
|
*
|
|
@@ -499,7 +565,7 @@ class ScopeValidator {
|
|
|
499
565
|
const definingClassName = classStmtThatDefinesChildMember.getName(Parser_1.ParseMode.BrighterScript);
|
|
500
566
|
const inMatchingClassStmt = (containingClassStmt === null || containingClassStmt === void 0 ? void 0 : containingClassStmt.getName(Parser_1.ParseMode.BrighterScript).toLowerCase()) === parentChainItem.type.name.toLowerCase();
|
|
501
567
|
// eslint-disable-next-line no-bitwise
|
|
502
|
-
if (childChainItem.data.flags &
|
|
568
|
+
if (childChainItem.data.flags & 8 /* SymbolTypeFlag.private */) {
|
|
503
569
|
if (!inMatchingClassStmt || childChainItem.data.memberOfAncestor) {
|
|
504
570
|
this.addMultiScopeDiagnostic(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.memberAccessibilityMismatch(childChainItem.name, childChainItem.data.flags, definingClassName)), { range: expression.range, file: file }));
|
|
505
571
|
// there's an error... don't worry about the rest of the chain
|
|
@@ -507,7 +573,7 @@ class ScopeValidator {
|
|
|
507
573
|
}
|
|
508
574
|
}
|
|
509
575
|
// eslint-disable-next-line no-bitwise
|
|
510
|
-
if (childChainItem.data.flags &
|
|
576
|
+
if (childChainItem.data.flags & 16 /* SymbolTypeFlag.protected */) {
|
|
511
577
|
const containingClassName = containingClassStmt === null || containingClassStmt === void 0 ? void 0 : containingClassStmt.getName(Parser_1.ParseMode.BrighterScript);
|
|
512
578
|
const containingNamespaceName = (_c = expression.findAncestor(reflection_1.isNamespaceStatement)) === null || _c === void 0 ? void 0 : _c.getName(Parser_1.ParseMode.BrighterScript);
|
|
513
579
|
const ancestorClasses = this.event.scope.getClassHierarchy(containingClassName, containingNamespaceName).map(link => link.item);
|
|
@@ -523,12 +589,27 @@ class ScopeValidator {
|
|
|
523
589
|
}
|
|
524
590
|
return true;
|
|
525
591
|
}
|
|
592
|
+
/**
|
|
593
|
+
* Find all "new" statements in the program,
|
|
594
|
+
* and make sure we can find a class with that name
|
|
595
|
+
*/
|
|
596
|
+
validateNewExpression(file, newExpression) {
|
|
597
|
+
var _a;
|
|
598
|
+
let potentialClassName = newExpression.className.getName(Parser_1.ParseMode.BrighterScript);
|
|
599
|
+
const namespaceName = (_a = newExpression.findAncestor(reflection_1.isNamespaceStatement)) === null || _a === void 0 ? void 0 : _a.getName(Parser_1.ParseMode.BrighterScript);
|
|
600
|
+
let newableClass = this.event.scope.getClass(potentialClassName, namespaceName);
|
|
601
|
+
if (!newableClass) {
|
|
602
|
+
//try and find functions with this name.
|
|
603
|
+
let fullName = util_1.default.getFullyQualifiedClassName(potentialClassName, namespaceName);
|
|
604
|
+
this.addMultiScopeDiagnostic(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expressionIsNotConstructable(fullName)), { file: file, range: newExpression.className.range }));
|
|
605
|
+
}
|
|
606
|
+
}
|
|
526
607
|
/**
|
|
527
608
|
* Adds a diagnostic to the first scope for this key. Prevents duplicate diagnostics
|
|
528
609
|
* for diagnostics where scope isn't important. (i.e. CreateObject validations)
|
|
529
610
|
*/
|
|
530
611
|
addDiagnosticOnce(diagnostic) {
|
|
531
|
-
this.onceCache.getOrAdd(`${diagnostic.code}-${diagnostic.message}-${util_1.default.rangeToString(diagnostic.range)}`, () => {
|
|
612
|
+
this.onceCache.getOrAdd(`${diagnostic.code} -${diagnostic.message} -${util_1.default.rangeToString(diagnostic.range)} `, () => {
|
|
532
613
|
const diagnosticWithOrigin = Object.assign({}, diagnostic);
|
|
533
614
|
if (!diagnosticWithOrigin.origin) {
|
|
534
615
|
// diagnostic does not have origin.
|
|
@@ -555,7 +636,7 @@ class ScopeValidator {
|
|
|
555
636
|
*/
|
|
556
637
|
addMultiScopeDiagnostic(diagnostic) {
|
|
557
638
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
558
|
-
diagnostic = this.multiScopeCache.getOrAdd(`${(_a = diagnostic.file) === null || _a === void 0 ? void 0 : _a.srcPath}-${diagnostic.code}-${diagnostic.message}-${util_1.default.rangeToString(diagnostic.range)}`, () => {
|
|
639
|
+
diagnostic = this.multiScopeCache.getOrAdd(`${(_a = diagnostic.file) === null || _a === void 0 ? void 0 : _a.srcPath} -${diagnostic.code} -${diagnostic.message} -${util_1.default.rangeToString(diagnostic.range)} `, () => {
|
|
559
640
|
if (!diagnostic.relatedInformation) {
|
|
560
641
|
diagnostic.relatedInformation = [];
|
|
561
642
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScopeValidator.js","sourceRoot":"","sources":["../../../src/bscPlugin/validation/ScopeValidator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ScopeValidator.js","sourceRoot":"","sources":["../../../src/bscPlugin/validation/ScopeValidator.ts"],"names":[],"mappings":"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"}
|