From b4cb9ef84b9fba98d777095589c6baae1ab55177 Mon Sep 17 00:00:00 2001 From: Zamiell <5511220+Zamiell@users.noreply.github.com> Date: Fri, 18 Mar 2022 02:02:22 -0400 Subject: [PATCH] better error message for Array.from --- src/transformation/builtins/array.ts | 5 +++++ src/transformation/utils/diagnostics.ts | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/transformation/builtins/array.ts b/src/transformation/builtins/array.ts index 7bbd4cf98..ac48b6409 100644 --- a/src/transformation/builtins/array.ts +++ b/src/transformation/builtins/array.ts @@ -18,6 +18,11 @@ export function transformArrayConstructorCall( switch (expressionName) { case "isArray": return transformLuaLibFunction(context, LuaLibFeature.ArrayIsArray, node, ...params); + case "from": + context.diagnostics.push( + unsupportedProperty(expression.name, "array", expressionName, "Please use the spread operator instead.") + ); + break; default: context.diagnostics.push(unsupportedProperty(expression.name, "Array", expressionName)); } diff --git a/src/transformation/utils/diagnostics.ts b/src/transformation/utils/diagnostics.ts index 25442cdfa..d9788642d 100644 --- a/src/transformation/utils/diagnostics.ts +++ b/src/transformation/utils/diagnostics.ts @@ -91,7 +91,10 @@ export const unsupportedForTarget = createErrorDiagnosticFactory( ); export const unsupportedProperty = createErrorDiagnosticFactory( - (parentName: string, property: string) => `${parentName}.${property} is unsupported.` + (parentName: string, property: string, additionalSuggestion?: string) => { + const msg = `${parentName}.${property} is unsupported.`; + return additionalSuggestion === undefined ? msg : `${msg} ${additionalSuggestion}`; + } ); export const invalidAmbientIdentifierName = createErrorDiagnosticFactory(