use lazy_static::lazy_static; use maplit::hashmap; use crate::ns::*; lazy_static! { pub static ref DATA: HashMap = hashmap! { // FxDiagnosticKind::K.id() => ".".into(), FxDiagnosticKind::EntityIsNotAType.id() => "Entity is not a type.".into(), FxDiagnosticKind::ImplicitCoercionToUnrelatedType.id() => "Implicit coercion of a value of type {1} to an unrelated type {2}.".into(), FxDiagnosticKind::EntityIsReadOnly.id() => "Entity is read-only.".into(), FxDiagnosticKind::EntityIsWriteOnly.id() => "Entity is write-only.".into(), FxDiagnosticKind::EntityMustNotBeDeleted.id() => "Entity must not be deleted.".into(), FxDiagnosticKind::UndefinedProperty.id() => "Access of possibly undefined property {1}.".into(), FxDiagnosticKind::AmbiguousReference.id() => "Ambiguous reference to {1}.".into(), FxDiagnosticKind::AccessOfVoid.id() => "Accessing property of void.".into(), FxDiagnosticKind::AccessOfNullable.id() => "Accessing property of nullable data type.".into(), FxDiagnosticKind::CouldNotExpandInlineConstant.id() => "Could not expand inline constant.".into(), FxDiagnosticKind::ReachedMaximumCycles.id() => "Reached maximum cycles.".into(), FxDiagnosticKind::NullNotExpectedHere.id() => "Null not expected here.".into(), FxDiagnosticKind::CouldNotParseNumber.id() => "Could not parse {1}.".into(), FxDiagnosticKind::NoMatchingEnumMember.id() => "Found no member {1} in {2}.".into(), FxDiagnosticKind::UnexpectedThis.id() => "Unexpected this.".into(), FxDiagnosticKind::ArrayLengthNotEqualsTupleLength.id() => "Array length is not equals length of tuple {1}.".into(), FxDiagnosticKind::UnexpectedElision.id() => "Unexpected elision.".into(), FxDiagnosticKind::UnexpectedArray.id() => "Unexpected array.".into(), FxDiagnosticKind::UnexpectedRest.id() => "Unexpected rest.".into(), FxDiagnosticKind::UnexpectedObject.id() => "Unexpected object.".into(), FxDiagnosticKind::DynamicOptionNotSupported.id() => "Dynamic option name is not supported.".into(), FxDiagnosticKind::UnknownOptionForClass.id() => "Unknown option {1} for {2}.".into(), FxDiagnosticKind::MustSpecifyOption.id() => "Must specify option {1}.".into(), FxDiagnosticKind::UnexpectedFieldName.id() => "Unexpected field name.".into(), FxDiagnosticKind::UnexpectedNewBase.id() => "Unexpected new base.".into(), FxDiagnosticKind::IncorrectNumArguments.id() => "Incorrect number of arguments. Expected {1}".into(), FxDiagnosticKind::IncorrectNumArgumentsNoMoreThan.id() => "Incorrect number of arguments. Expected no more than {1}".into(), FxDiagnosticKind::UndefinedPropertyWithStaticType.id() => "Access of possibly undefined property {1} through a reference with static type {2}.".into(), FxDiagnosticKind::InapplicableFilter.id() => "Attempt to filter through a reference with static type {1}.".into(), FxDiagnosticKind::InapplicableDescendants.id() => "Attempt to search descendants through a reference with static type {1}.".into(), FxDiagnosticKind::ASuperExpCanBeUsedOnlyIn.id() => "A super expression can be used only in class instance methods.".into(), FxDiagnosticKind::ASuperExpCanOnlyBeUsedInSubclasses.id() => "A super expression can be used only in subclasses of Object.".into(), FxDiagnosticKind::CallOnArrayType.id() => "A call on the Array type is equivalent to a new expression.".into(), FxDiagnosticKind::CallOnNonFunction.id() => "Call on non Function object.".into(), FxDiagnosticKind::NonParameterizedType.id() => "Applying types on non parameterized type.".into(), FxDiagnosticKind::AwaitOperandMustBeAPromise.id() => "Await operand must be a Promise.".into(), FxDiagnosticKind::OperandMustBeNumber.id() => "Operand must be a Number.".into(), FxDiagnosticKind::ReferenceIsAlreadyNonNullable.id() => "Reference is already non nullable.".into(), FxDiagnosticKind::YieldIsNotSupported.id() => "Yield operator is currently not supported.".into(), FxDiagnosticKind::UnrelatedMathOperation.id() => "Unrelated mathematical operation using type {1}.".into(), FxDiagnosticKind::ComparisonBetweenUnrelatedTypes.id() => "Comparison between a value of type {1} and an unrelated type {2}.".into(), FxDiagnosticKind::UnrelatedTernaryOperands.id() => "Unrelated ternary operands of types {1} and {2}.".into(), FxDiagnosticKind::SystemNamespaceNotFound.id() => "System namespace not found.".into(), FxDiagnosticKind::RestParameterMustBeArray.id() => "Rest parameter must be an Array.".into(), FxDiagnosticKind::AConflictExistsWithDefinition.id() => "A conflict exists with definition {1} in namespace {2}.".into(), FxDiagnosticKind::DuplicateVariableDefinition.id() => "Duplicate variable definition: {1}.".into(), FxDiagnosticKind::DuplicateClassDefinition.id() => "Duplicate variable definition: {1}.".into(), FxDiagnosticKind::DuplicateInterfaceDefinition.id() => "Duplicate interface definition: {1}.".into(), FxDiagnosticKind::DuplicateFunctionDefinition.id() => "Duplicate function definition: {1}.".into(), FxDiagnosticKind::UnexpectedFieldNameInDestructuring.id() => "Unexpected field name in destructuring.".into(), FxDiagnosticKind::EntityIsNotAConstant.id() => "Entity is not a constant.".into(), FxDiagnosticKind::ReturnValueHasNoTypeDeclaration.id() => "Return value has no type declaration.".into(), FxDiagnosticKind::ReturnTypeDeclarationMustBePromise.id() => "Return type declaration must be Promise.".into(), FxDiagnosticKind::ReturnTypeInferenceIsNotImplemented.id() => "Return type inference is not implemented in the present. Using an untyped type.".into(), FxDiagnosticKind::NanComparison.id() => "Comparison involving NaN. Use isNaN() or !isNaN() instead.".into(), FxDiagnosticKind::NotABooleanConstant.id() => "Not a Boolean constant.".into(), FxDiagnosticKind::EmptyPackage.id() => "Package {1} is empty.".into(), FxDiagnosticKind::ImportOfUndefined.id() => "Import of undefined property {1}.".into(), FxDiagnosticKind::NotANamespaceConstant.id() => "Not a Namespace constant.".into(), FxDiagnosticKind::CannotResolveConfigConstant.id() => "Can not resolve configuration constant: '{1}'".into(), FxDiagnosticKind::ConcatenatingSelfReferentialPackage.id() => "Concatenating a self referential package.".into(), FxDiagnosticKind::CallOnDateType.id() => "'Date(...)' is not a cast. It ignores its arguments and returns a String value equal to 'new Date().toString()'. To cast a value to type Date use 'x as Date' instead of 'Date(x)'.".into(), // FxDiagnosticKind::K.id() => ".".into(), }; }