diff --git a/ets2panda/BUILD.gn b/ets2panda/BUILD.gn index 62b92c6fff7782a70450b8b20a3147070e9ead08..dc95bac79ac2b55eb8d81d4bed9bdcb558a24adf 100644 --- a/ets2panda/BUILD.gn +++ b/ets2panda/BUILD.gn @@ -1154,7 +1154,7 @@ if (ark_standalone_build || ark_static_standalone_build) { libes2panda_configs += [ "$ark_root/assembler:arkassembler_public_config", "$ark_root/libpandabase:arkbase_public_config", - "$ark_root/libpandafile:arkfile_public_config", + "$ark_root/libarkfile:arkfile_public_config", "$ark_root/abc2program:arkts_abc2program_public_config", ] } @@ -1168,7 +1168,7 @@ if (ark_standalone_build || ark_static_standalone_build) { libes2panda_public_configs += [ "$ark_root/assembler:arkassembler_public_config", "$ark_root/libpandabase:arkbase_public_config", - "$ark_root/libpandafile:arkfile_public_config", + "$ark_root/libarkfile:arkfile_public_config", "$ark_root/bytecode_optimizer:bytecodeopt_public_config", "$ark_root/runtime:arkruntime_public_config", "$ark_root/compiler:arkcompiler_public_config", @@ -1287,7 +1287,7 @@ ohos_source_set("libes2panda_public_frontend_static") { "$ark_root/bytecode_optimizer:libarktsbytecodeopt_package", "$ark_root/compiler:libarktscompiler", "$ark_root/libpandabase:libarktsbase", - "$ark_root/libpandafile:libarktsfile", + "$ark_root/libarkfile:libarktsfile", ] } else { external_deps += [ diff --git a/ets2panda/aot/BUILD.gn b/ets2panda/aot/BUILD.gn index a3a533b320f2393e94521c43ace7559dde162b22..55f5f3e98d6100c3bdcf6e7ecf99ae3ec4c8c81c 100644 --- a/ets2panda/aot/BUILD.gn +++ b/ets2panda/aot/BUILD.gn @@ -44,7 +44,7 @@ ohos_executable("ets2panda") { if (ark_standalone_build || ark_static_standalone_build) { configs += [ "$ark_root/assembler:arkassembler_public_config", - "$ark_root/libpandafile:arkfile_public_config", + "$ark_root/libarkfile:arkfile_public_config", "$ark_root/libpandabase:arkbase_public_config", "$ark_root/bytecode_optimizer:bytecodeopt_public_config", "$ark_root/runtime:arkruntime_public_config", @@ -65,7 +65,7 @@ ohos_executable("ets2panda") { deps += [ "$ark_root/bytecode_optimizer:libarktsbytecodeopt_package", "$ark_root/libpandabase:libarktsbase_package", - "$ark_root/libpandafile:libarktsfile_package", + "$ark_root/libarkfile:libarktsfile_package", ] } diff --git a/ets2panda/bindings/BUILD.gn b/ets2panda/bindings/BUILD.gn index f8b677b05edda1530520959ef719ac080c719154..80c318d66ab980c54db5741bcfd4105516df79bd 100644 --- a/ets2panda/bindings/BUILD.gn +++ b/ets2panda/bindings/BUILD.gn @@ -46,7 +46,7 @@ shared_library("ts_bindings") { "../:libes2panda_public_config", "../:libes2panda_config", "$ark_root/libpandabase:arkbase_public_config", - "$ark_root/libpandafile:arkfile_public_config", + "$ark_root/libarkfile:arkfile_public_config", ] deps = [ @@ -208,7 +208,7 @@ shared_library("public") { "../:libes2panda_public_config", "../:libes2panda_config", "$ark_root/libpandabase:arkbase_public_config", - "$ark_root/libpandafile:arkfile_public_config", + "$ark_root/libarkfile:arkfile_public_config", ] include_dirs = [ diff --git a/ets2panda/bindings/native/src/bridges.cpp b/ets2panda/bindings/native/src/bridges.cpp index 1fd2af18dd83bf6edb696ca60c14d5cb6d9ea034..d318f9816184aa75c2308a5e2c9b30744103363c 100644 --- a/ets2panda/bindings/native/src/bridges.cpp +++ b/ets2panda/bindings/native/src/bridges.cpp @@ -45,13 +45,14 @@ KNativePointer impl_CreateContextFromStringWithHistory(KNativePointer configPtr, TS_INTEROP_3(CreateContextFromStringWithHistory, KNativePointer, KNativePointer, KStringPtr, KStringPtr) KInt impl_GenerateTsDeclarationsFromContext(KNativePointer contextPtr, KStringPtr &outputDeclEts, KStringPtr &outputEts, - KBoolean exportAll, KBoolean isolated) + KBoolean exportAll, KBoolean isolated, KStringPtr &recordFile) { auto context = reinterpret_cast(contextPtr); return static_cast(GetPublicImpl()->GenerateTsDeclarationsFromContext( - context, outputDeclEts.data(), outputEts.data(), exportAll != 0, isolated != 0)); + context, outputDeclEts.data(), outputEts.data(), exportAll != 0, isolated != 0, recordFile.data())); } -TS_INTEROP_5(GenerateTsDeclarationsFromContext, KInt, KNativePointer, KStringPtr, KStringPtr, KBoolean, KBoolean) +TS_INTEROP_6(GenerateTsDeclarationsFromContext, KInt, KNativePointer, KStringPtr, KStringPtr, KBoolean, KBoolean, + KStringPtr) KNativePointer impl_CreateContextFromFile(KNativePointer configPtr, KStringPtr &filenamePtr) { diff --git a/ets2panda/bindings/src/common/Es2pandaNativeModule.ts b/ets2panda/bindings/src/common/Es2pandaNativeModule.ts index 823bb00b0834a55e9c947b91273eb7c3eb157993..8d04990823d8281b5a571c4713ccc417224e91ff 100644 --- a/ets2panda/bindings/src/common/Es2pandaNativeModule.ts +++ b/ets2panda/bindings/src/common/Es2pandaNativeModule.ts @@ -82,7 +82,8 @@ export class Es2pandaNativeModule { outputDeclEts: String, outputEts: String, exportAll: KBoolean, - isolated: KBoolean + isolated: KBoolean, + recordFile: String ): KPtr { throw new Error('Not implemented'); } diff --git a/ets2panda/bindings/src/common/driver_helper.ts b/ets2panda/bindings/src/common/driver_helper.ts index 4bd68da844cfb88951afb8fa9b857efc8856deeb..18809ce73691e1e4ce14c6125997ceeb3e2d2ec7 100644 --- a/ets2panda/bindings/src/common/driver_helper.ts +++ b/ets2panda/bindings/src/common/driver_helper.ts @@ -77,10 +77,10 @@ export class DriverHelper { global.destroyCfg(); } - public generateTsDecl(declOutPath: string, etsOutPath: string, exportAll: boolean, isolated: boolean): void { + public generateTsDecl(declOutPath: string, etsOutPath: string, exportAll: boolean, isolated: boolean, recordFile: string): void { let exportAll_: KBoolean = exportAll ? 1 : 0; let isolated_: KBoolean = isolated ? 1 : 0; - global.es2panda._GenerateTsDeclarationsFromContext(this._cfg.peer, declOutPath, etsOutPath, exportAll_, isolated_); + global.es2panda._GenerateTsDeclarationsFromContext(this._cfg.peer, declOutPath, etsOutPath, exportAll_, isolated_, recordFile); } } diff --git a/ets2panda/bindings/src/lsp/lsp_helper.ts b/ets2panda/bindings/src/lsp/lsp_helper.ts index 3b8999ce90b036de8a8c84427e78ee3b66b876bf..aa72ccb120854eb0f89929914505a49acaf8a0a1 100644 --- a/ets2panda/bindings/src/lsp/lsp_helper.ts +++ b/ets2panda/bindings/src/lsp/lsp_helper.ts @@ -232,7 +232,7 @@ export class Lsp { ); ensurePathExists(declEtsOutputPath); ensurePathExists(etsOutputPath); - global.es2pandaPublic._GenerateTsDeclarationsFromContext(ctx, declEtsOutputPath, etsOutputPath, 1, 0); + global.es2pandaPublic._GenerateTsDeclarationsFromContext(ctx, declEtsOutputPath, etsOutputPath, 1, 0, ''); } finally { this.destroyContext(cfg, ctx); } @@ -297,7 +297,7 @@ export class Lsp { ); ensurePathExists(declEtsOutputPath); ensurePathExists(etsOutputPath); - global.es2pandaPublic._GenerateTsDeclarationsFromContext(ctx, declEtsOutputPath, etsOutputPath, 1, 0); + global.es2pandaPublic._GenerateTsDeclarationsFromContext(ctx, declEtsOutputPath, etsOutputPath, 1, 0, ''); } finally { this.destroyContext(cfg, ctx); } diff --git a/ets2panda/bindings/test/cases.ts b/ets2panda/bindings/test/cases.ts index 6194db0a25f945cd6056e3a5b66196b4ee5dc7f0..2174a4d07f581da044ee87ad796c40ac97c60578 100644 --- a/ets2panda/bindings/test/cases.ts +++ b/ets2panda/bindings/test/cases.ts @@ -44,7 +44,8 @@ export const basicCases: TestCases = { '7': [resolveTestPath('test/testcases/getDefinitionAtPosition/getDefinitionAtPosition13.ets'), 664], '8': [resolveTestPath('test/testcases/getDefinitionAtPosition/getDefinitionAtPosition15.ets'), 617], '9': [resolveTestPath('test/testcases/getDefinitionAtPosition/getDefinitionAtPosition17.ets'), 677], - '11': [resolveTestPath('test/testcases/getDefinitionAtPosition/getDefinitionAtPosition19.ets'), 634] + '11': [resolveTestPath('test/testcases/getDefinitionAtPosition/getDefinitionAtPosition19.ets'), 634], + '12': [resolveTestPath('test/testcases/getDefinitionAtPosition/getDefinitionAtPosition2.ets'), 637] }, getSemanticDiagnostics: { expectedFilePath: resolveTestPath('test/expected/getSemanticDiagnostics.json'), diff --git a/ets2panda/bindings/test/expected/getDefinitionAtPosition.json b/ets2panda/bindings/test/expected/getDefinitionAtPosition.json index 0463704db90962380049cb3bc31643843cdd5015..ad5c03a79633e1347a01634b8e2db2d8fcd65824 100644 --- a/ets2panda/bindings/test/expected/getDefinitionAtPosition.json +++ b/ets2panda/bindings/test/expected/getDefinitionAtPosition.json @@ -53,5 +53,10 @@ "fileName": "taskpool.ets", "start": 686, "length": 4 + }, + "12": { + "fileName": "getDefinitionAtPosition1.ets", + "start": 0, + "length": 0 } } diff --git a/ets2panda/checker/ETSAnalyzer.cpp b/ets2panda/checker/ETSAnalyzer.cpp index db0b14f5547accc17033ee1b0b560c0629804620..11bae600fe11939cf078b6458438db054cd0b2e1 100644 --- a/ets2panda/checker/ETSAnalyzer.cpp +++ b/ets2panda/checker/ETSAnalyzer.cpp @@ -415,7 +415,7 @@ checker::Type *ETSAnalyzer::Check(ir::SpreadElement *expr) const return expr->SetTsType(exprType->AsETSObjectType()->TypeArguments().front()); } - if (!exprType->IsETSArrayType() && !exprType->IsETSTupleType()) { + if (!exprType->IsETSArrayType() && !exprType->IsETSTupleType() && !exprType->IsETSReadonlyArrayType()) { if (!exprType->IsTypeError()) { // Don't duplicate error messages for the same error checker->LogError(diagnostic::SPREAD_OF_INVALID_TYPE, {exprType}, expr->Start()); @@ -3099,7 +3099,7 @@ checker::Type *ETSAnalyzer::Check(ir::AnnotationDeclaration *st) const } auto baseName = st->GetBaseName(); - if (!baseName->IsErrorPlaceHolder()) { + if (!baseName->IsErrorPlaceHolder() && baseName->Variable()->Declaration()->Node()->IsAnnotationDeclaration()) { auto *annoDecl = baseName->Variable()->Declaration()->Node()->AsAnnotationDeclaration(); if (annoDecl != st && annoDecl->IsDeclare()) { checker->CheckAmbientAnnotation(st, annoDecl); diff --git a/ets2panda/checker/ETSAnalyzerHelpers.cpp b/ets2panda/checker/ETSAnalyzerHelpers.cpp index fbba8ecfda8ff65845fcc3a0696bf65dbe9a74d7..2075563dcdcb51dd0e0c1ee36fc41d6a775046e7 100644 --- a/ets2panda/checker/ETSAnalyzerHelpers.cpp +++ b/ets2panda/checker/ETSAnalyzerHelpers.cpp @@ -217,7 +217,7 @@ void DoBodyTypeChecking(ETSChecker *checker, ir::MethodDefinition *node, ir::Scr checker->AddStatus(checker::CheckerStatus::IN_CONSTRUCTOR); } - if (node->IsExtensionMethod()) { + if (node->IsExtensionMethod() && scriptFunc->Signature() != nullptr) { CheckExtensionMethod(checker, scriptFunc, node); } diff --git a/ets2panda/checker/ETSchecker.h b/ets2panda/checker/ETSchecker.h index 334a634c907970ab7380b3d1027494a36399aaaa..076eba0be40b98db38df1ff464f2be2b5003adb9 100644 --- a/ets2panda/checker/ETSchecker.h +++ b/ets2panda/checker/ETSchecker.h @@ -447,6 +447,9 @@ public: Type *argumentType, Substitution *substitution); [[nodiscard]] bool EnhanceSubstitutionForReadonly(const ArenaVector &typeParams, ETSReadonlyType *paramType, Type *argumentType, Substitution *substitution); + [[nodiscard]] bool EnhanceSubstitutionForPartialTypeParam(const ArenaVector &typeParams, + ETSPartialTypeParameter *paramType, Type *argumentType, + Substitution *substitution); [[nodiscard]] bool EnhanceSubstitutionForObject(const ArenaVector &typeParams, ETSObjectType *paramType, Type *argumentType, Substitution *substitution); [[nodiscard]] bool EnhanceSubstitutionForFunction(const ArenaVector &typeParams, ETSFunctionType *paramType, diff --git a/ets2panda/checker/ets/function.cpp b/ets2panda/checker/ets/function.cpp index 317fc2afcbd80ce89cacd11494ebb3b23deb6e3b..ff31328770830bd658d89f0b7a29592df73bd69e 100644 --- a/ets2panda/checker/ets/function.cpp +++ b/ets2panda/checker/ets/function.cpp @@ -23,6 +23,7 @@ #include "checker/ets/typeRelationContext.h" #include "checker/types/ets/etsAsyncFuncReturnType.h" #include "checker/types/ets/etsObjectType.h" +#include "checker/types/ets/etsPartialTypeParameter.h" #include "checker/types/gradualType.h" #include "compiler/lowering/scopesInit/scopesInitPhase.h" #include "ir/base/catchClause.h" @@ -118,6 +119,10 @@ bool ETSChecker::EnhanceSubstitutionForType(const ArenaVector &typeParam if (paramType->IsETSReadonlyType()) { return EnhanceSubstitutionForReadonly(typeParams, paramType->AsETSReadonlyType(), argumentType, substitution); } + if (paramType->IsETSPartialTypeParameter()) { + return EnhanceSubstitutionForPartialTypeParam(typeParams, paramType->AsETSPartialTypeParameter(), argumentType, + substitution); + } if (paramType->IsGradualType()) { return EnhanceSubstitutionForType(typeParams, paramType->AsGradualType()->GetBaseType(), argumentType, substitution); @@ -135,9 +140,6 @@ bool ETSChecker::EnhanceSubstitutionForType(const ArenaVector &typeParam if (paramType->IsETSArrayType()) { return EnhanceSubstitutionForArray(typeParams, paramType->AsETSArrayType(), argumentType, substitution); } - if (paramType->IsETSFunctionType()) { - return EnhanceSubstitutionForFunction(typeParams, paramType->AsETSFunctionType(), argumentType, substitution); - } return true; } @@ -294,6 +296,18 @@ bool ETSChecker::EnhanceSubstitutionForFunction(const ArenaVector &typeP return res; } +bool ETSChecker::EnhanceSubstitutionForPartialTypeParam(const ArenaVector &typeParams, + ETSPartialTypeParameter *paramType, Type *argumentType, + Substitution *substitution) +{ + if (!argumentType->IsETSObjectType() || !argumentType->AsETSObjectType()->IsPartial()) { + return false; + } + ES2PANDA_ASSERT(argumentType->AsETSObjectType()->GetBaseType() != nullptr); + return EnhanceSubstitutionForType(typeParams, paramType->GetUnderlying(), + argumentType->AsETSObjectType()->GetBaseType(), substitution); +} + // Try to find the base type somewhere in object subtypes. Incomplete, yet safe static ETSObjectType *FindEnhanceTargetInSupertypes(ETSObjectType *object, ETSObjectType *base) { @@ -437,6 +451,34 @@ static bool HasTransferredTrailingLambda(const ArenaVector &ar arguments.back()->AsArrowFunctionExpression()->Function()->IsTrailingLambda(); } +bool ValidateRestParameter(ETSChecker *checker, Signature *signature, const ArenaVector &arguments, + const lexer::SourcePosition &pos, TypeRelationFlag flags) +{ + size_t const argCount = arguments.size(); + size_t compareCount = argCount; + auto const hasRestParameter = signature->HasRestParameter(); + auto const reportError = (flags & TypeRelationFlag::NO_THROW) == 0; + if ((flags & TypeRelationFlag::NO_CHECK_TRAILING_LAMBDA) != 0 && !signature->Params().empty() && + signature->Params().back()->Declaration()->Node()->AsETSParameterExpression()->IsOptional()) { + compareCount = compareCount - 1; + } + + if (!hasRestParameter && argCount > 0 && arguments[argCount - 1]->IsSpreadElement()) { + if (reportError) { + checker->LogError(diagnostic::ERROR_ARKTS_SPREAD_ONLY_WITH_REST, {}, pos); + } + return false; + } + if (compareCount < signature->MinArgCount() || (argCount > signature->ArgCount() && !hasRestParameter)) { + if (reportError) { + checker->LogError(diagnostic::PARAM_COUNT_MISMATCH, {signature->MinArgCount(), argCount}, pos); + } + return false; + } + return !(argCount > signature->ArgCount() && hasRestParameter && + (flags & TypeRelationFlag::IGNORE_REST_PARAM) != 0); +} + // CC-OFFNXT(huge_method[C++], G.FUN.01-CPP, G.FUD.05) solid logic bool ETSChecker::ValidateSignatureRequiredParams(Signature *substitutedSig, const ArenaVector &arguments, TypeRelationFlag flags, @@ -526,6 +568,9 @@ bool ETSChecker::IsValidRestArgument(ir::Expression *const argument, Signature * const TypeRelationFlag flags, const std::size_t index) { auto *restParamType = substitutedSig->RestVar()->TsType(); + if (restParamType->IsETSTupleType()) { + return false; + } if (argument->IsObjectExpression()) { argument->SetPreferredType(GetElementTypeOfArray(restParamType)); // Object literals should be checked separately afterwards after call resolution @@ -540,9 +585,6 @@ bool ETSChecker::IsValidRestArgument(ir::Expression *const argument, Signature * } const auto argumentType = argument->Check(this); - if (restParamType->IsETSTupleType()) { - return false; - } if (argument->HasAstNodeFlags(ir::AstNodeFlags::RESIZABLE_REST)) { return true; } @@ -619,7 +661,8 @@ bool ETSChecker::ValidateSignatureRestParams(Signature *substitutedSig, const Ar // backing out of check that results in a signature mismatch would be difficult // so only attempt it if there is only one candidate signature restArgument->SetPreferredType(targetType); - auto const argumentType = restArgument->Check(this); + argument->Check(this); + auto const argumentType = restArgument->TsType(); auto const invocationCtx = checker::InvocationContext( Relation(), restArgument, argumentType, substitutedSig->RestVar()->TsType(), argument->Start(), @@ -656,23 +699,10 @@ Signature *ETSChecker::ValidateSignature( size_t const argCount = arguments.size(); auto const hasRestParameter = signature->RestVar() != nullptr; auto const reportError = (flags & TypeRelationFlag::NO_THROW) == 0; - size_t compareCount = argCount; - if ((flags & TypeRelationFlag::NO_CHECK_TRAILING_LAMBDA) != 0 && !signature->Params().empty() && - signature->Params().back()->Declaration()->Node()->AsETSParameterExpression()->IsOptional()) { - compareCount = compareCount - 1; - } - if (compareCount < signature->MinArgCount() || (argCount > signature->ArgCount() && !hasRestParameter)) { - if (reportError) { - LogError(diagnostic::PARAM_COUNT_MISMATCH, {signature->MinArgCount(), argCount}, pos); - } + if (!ValidateRestParameter(this, signature, arguments, pos, flags)) { return nullptr; } - - if (argCount > signature->ArgCount() && hasRestParameter && (flags & TypeRelationFlag::IGNORE_REST_PARAM) != 0) { - return nullptr; - } - auto count = std::min(signature->ArgCount(), argCount); // Check all required formal parameter(s) first // SUPPRESS_CSA_NEXTLINE(alpha.core.AllocatorETSCheckerHint) @@ -1435,7 +1465,11 @@ static bool CollectOverload(checker::ETSChecker *checker, ir::MethodDefinition * ArenaVector overloads(checker->ProgramAllocator()->Adapter()); for (ir::MethodDefinition *const currentFunc : method->Overloads()) { - ldInfo.isDeclare &= currentFunc->IsDeclare(); + if (currentFunc->IsDeclare() != ldInfo.isDeclare) { + checker->LogError(diagnostic::AMBIGUOUS_AMBIENT, {currentFunc->Id()->Name()}, currentFunc->Start()); + method->Id()->Variable()->SetTsType(checker->GlobalTypeError()); + return false; + } ES2PANDA_ASSERT(currentFunc->Function() != nullptr); ES2PANDA_ASSERT(currentFunc->Id() != nullptr); currentFunc->Function()->Id()->SetVariable(currentFunc->Id()->Variable()); @@ -1491,6 +1525,9 @@ checker::Type *ETSChecker::BuildMethodSignature(ir::MethodDefinition *method) auto *methodId = method->Id(); ES2PANDA_ASSERT(methodId != nullptr); ES2PANDA_ASSERT(method->Function() != nullptr); + if (methodId->AsIdentifier()->IsErrorPlaceHolder()) { + return methodId->Variable()->SetTsType(GlobalTypeError()); + } method->Function()->Id()->SetVariable(methodId->Variable()); BuildFunctionSignature(method->Function(), method->IsConstructor()); if (method->Function()->Signature() == nullptr) { diff --git a/ets2panda/checker/ets/object.cpp b/ets2panda/checker/ets/object.cpp index e42f1d760e2d23ca7e2974b775b2e9e8dc29a780..6bd7718a43e5df73b400ebfeb26c130a764dc256 100644 --- a/ets2panda/checker/ets/object.cpp +++ b/ets2panda/checker/ets/object.cpp @@ -1893,15 +1893,15 @@ void ETSChecker::ValidateNamespaceProperty(varbinder::Variable *property, const { ir::AstNode *parent = nullptr; if (property->TsType() != nullptr && !property->TsType()->IsTypeError()) { - if (property->TsType()->IsETSMethodType() && !property->HasFlag(varbinder::VariableFlags::OVERLOAD)) { + if (property->TsType()->IsETSMethodType()) { auto funcType = property->TsType()->AsETSFunctionType(); - property = funcType->CallSignatures()[0]->OwnerVar(); + property = !property->HasFlag(varbinder::VariableFlags::OVERLOAD) + ? funcType->CallSignatures()[0]->OwnerVar() + : property; ES2PANDA_ASSERT(property != nullptr); - } else { - if (ident->Parent()->IsMemberExpression() && - ident->Parent()->AsMemberExpression()->Object()->IsSuperExpression()) { - LogError(diagnostic::SUPER_NOT_ACCESSIBLE, {ident->Name()}, ident->Start()); - } + } else if (ident->Parent()->IsMemberExpression() && + ident->Parent()->AsMemberExpression()->Object()->IsSuperExpression()) { + LogError(diagnostic::SUPER_NOT_ACCESSIBLE, {ident->Name()}, ident->Start()); } } diff --git a/ets2panda/checker/ets/typeCheckingHelpers.cpp b/ets2panda/checker/ets/typeCheckingHelpers.cpp index 534203ded5bac9a87d4b97ff82fd894fedc66d40..345bd6ce974ab2da9dfe9b6e497fc1ab070057fe 100644 --- a/ets2panda/checker/ets/typeCheckingHelpers.cpp +++ b/ets2panda/checker/ets/typeCheckingHelpers.cpp @@ -1605,6 +1605,9 @@ bool ETSChecker::ResolveLambdaArgumentType(Signature *signature, ir::Expression bool ETSChecker::TrailingLambdaTypeInference(Signature *signature, const ArenaVector &arguments) { + if (arguments.empty() || signature->GetSignatureInfo()->params.empty()) { + return false; + } ES2PANDA_ASSERT(arguments.back()->IsArrowFunctionExpression()); const size_t lastParamPos = signature->GetSignatureInfo()->params.size() - 1; const size_t lastArgPos = arguments.size() - 1; diff --git a/ets2panda/checker/types/ets/etsFunctionType.cpp b/ets2panda/checker/types/ets/etsFunctionType.cpp index 133c53eee87cf54b4f8942c4cc2f37457b5baf8b..2a963cb7376fdc0ce957b0575b2f83dad1e79a5b 100644 --- a/ets2panda/checker/types/ets/etsFunctionType.cpp +++ b/ets2panda/checker/types/ets/etsFunctionType.cpp @@ -84,7 +84,7 @@ static ETSObjectType *FunctionTypeToFunctionalInterfaceType(ETSChecker *checker, } auto substitution = Substitution {}; - ES2PANDA_ASSERT(functionN != nullptr); + ES2PANDA_ASSERT(functionN != nullptr && nPosParams <= functionN->TypeArguments().size()); for (size_t i = 0; i < nPosParams; i++) { substitution.emplace(functionN->TypeArguments()[i]->AsETSTypeParameter(), checker->MaybeBoxType(signature->Params()[i]->TsType())); diff --git a/ets2panda/compiler/core/ETSemitter.cpp b/ets2panda/compiler/core/ETSemitter.cpp index 4da7d669bffc01517c9a77c6411698abc5df42e5..1151febda86663cf246872e802c7f7cee77ad1ef 100644 --- a/ets2panda/compiler/core/ETSemitter.cpp +++ b/ets2panda/compiler/core/ETSemitter.cpp @@ -1121,20 +1121,16 @@ ir::MethodDefinition *ETSEmitter::FindAsyncImpl(ir::ScriptFunction *asyncFunc) return nullptr; } - auto *checker = static_cast(Context()->GetChecker()); - checker::TypeRelation *typeRel = checker->Relation(); - checker::SavedTypeRelationFlagsContext savedFlagsCtx(typeRel, checker::TypeRelationFlag::NO_RETURN_TYPE_CHECK); - ES2PANDA_ASSERT(method->Function() != nullptr); - method->Function()->Signature()->IsSubtypeOf(typeRel, asyncFunc->Signature()); - if (typeRel->IsTrue()) { + if (asyncFunc->AsyncPairMethod() == method->Function()) { return method; } + for (auto overload : method->Overloads()) { - overload->Function()->Signature()->IsSubtypeOf(typeRel, asyncFunc->Signature()); - if (typeRel->IsTrue()) { + if (asyncFunc->AsyncPairMethod() == overload->Function()) { return overload; } } + return nullptr; } diff --git a/ets2panda/compiler/lowering/ets/ambientLowering.cpp b/ets2panda/compiler/lowering/ets/ambientLowering.cpp index 9609e91605fdf3c17e7490f11d3246f749883e0b..42a817dfe66ba4d7456c8df16b9c9a9ad682a7c1 100644 --- a/ets2panda/compiler/lowering/ets/ambientLowering.cpp +++ b/ets2panda/compiler/lowering/ets/ambientLowering.cpp @@ -21,6 +21,8 @@ #include "compiler/lowering/util.h" namespace ark::es2panda::compiler { +constexpr size_t MAX_ALLOWED_INDEXERS = 1; + std::string_view AmbientLowering::Name() const { static std::string const NAME = "AmbientLowering"; @@ -97,10 +99,16 @@ ir::AstNode *AmbientLowering::CreateIndexerMethodIfNeeded(ir::AstNode *ast, publ const ArenaVector &classBodyConst = ast->IsClassDefinition() ? ast->AsClassDefinition()->Body() : ast->AsTSInterfaceBody()->Body(); - + size_t dummyCount = std::count_if(classBodyConst.cbegin(), classBodyConst.cend(), + [](const ir::AstNode *node) { return node->IsDummyNode(); }); + if (dummyCount > MAX_ALLOWED_INDEXERS) { + ctx->diagnosticEngine->LogSemanticError("Only one index signature is allowed in a class or interface.", + ast->Start()); + RemoveRedundantIndexerDeclarations(ast); + return ast; + } // Only one DummyNode is allowed in classBody for now - ES2PANDA_ASSERT(std::count_if(classBodyConst.cbegin(), classBodyConst.cend(), - [](const ir::AstNode *node) { return node->IsDummyNode(); }) <= 1); + ES2PANDA_ASSERT(dummyCount <= MAX_ALLOWED_INDEXERS); if (!std::any_of(classBodyConst.cbegin(), classBodyConst.cend(), [](const ir::AstNode *node) { return node->IsDummyNode() && node->AsDummyNode()->IsDeclareIndexer(); })) { @@ -130,4 +138,15 @@ ir::AstNode *AmbientLowering::CreateIndexerMethodIfNeeded(ir::AstNode *ast, publ return ast; } + +void AmbientLowering::RemoveRedundantIndexerDeclarations(ir::AstNode *ast) +{ + ArenaVector &body = + ast->IsClassDefinition() ? ast->AsClassDefinition()->BodyForUpdate() : ast->AsTSInterfaceBody()->Body(); + auto dummyStart = std::remove_if(body.begin(), body.end(), [](ir::AstNode *node) { + return node->IsDummyNode() && node->AsDummyNode()->IsDeclareIndexer(); + }); + body.erase(dummyStart, body.end()); +} + } // namespace ark::es2panda::compiler diff --git a/ets2panda/compiler/lowering/ets/ambientLowering.h b/ets2panda/compiler/lowering/ets/ambientLowering.h index 2afbdb0d6e02b1b4659c8cad9f2ee969596a0f0e..87808d47f5c993d09a31502506bdadcd4e90fd8f 100644 --- a/ets2panda/compiler/lowering/ets/ambientLowering.h +++ b/ets2panda/compiler/lowering/ets/ambientLowering.h @@ -26,6 +26,7 @@ public: private: ir::AstNode *CreateIndexerMethodIfNeeded(ir::AstNode *ast, public_lib::Context *ctx); + void RemoveRedundantIndexerDeclarations(ir::AstNode *ast); }; } // namespace ark::es2panda::compiler diff --git a/ets2panda/compiler/lowering/ets/asyncMethodLowering.cpp b/ets2panda/compiler/lowering/ets/asyncMethodLowering.cpp index be15ae71a728ab845bcecc16c3347c18d2a49559..a86ecfec9b85739dccd22137e91b85bec89229d0 100644 --- a/ets2panda/compiler/lowering/ets/asyncMethodLowering.cpp +++ b/ets2panda/compiler/lowering/ets/asyncMethodLowering.cpp @@ -170,6 +170,7 @@ void ComposeAsyncImplMethod(checker::ETSChecker *checker, ir::MethodDefinition * implMethod->Check(checker); node->SetAsyncPairMethod(implMethod); + node->Function()->SetAsyncPairMethod(implMethod->Function()); ES2PANDA_ASSERT(node->Function() != nullptr); if (node->Function()->IsOverload()) { diff --git a/ets2panda/compiler/lowering/ets/constantExpressionLowering.cpp b/ets2panda/compiler/lowering/ets/constantExpressionLowering.cpp index d70dd6580e128c896032c0d83853498d75726e41..b4e2564600c00278927a68aea848542bbe935a39 100644 --- a/ets2panda/compiler/lowering/ets/constantExpressionLowering.cpp +++ b/ets2panda/compiler/lowering/ets/constantExpressionLowering.cpp @@ -18,6 +18,7 @@ #include #include "checker/ETSchecker.h" +#include "checker/types/typeError.h" #include "compiler/lowering/util.h" #include "ir/expressions/literals/undefinedLiteral.h" #include "compiler/lowering/scopesInit/scopesInitPhase.h" @@ -1169,6 +1170,7 @@ static varbinder::Variable *ResolveIdentifier(const ir::Identifier *ident) varbinder::ResolveBindingOptions::ALL_DECLARATION | varbinder::ResolveBindingOptions::ALL_VARIABLES; varbinder::Scope *scope = NearestScope(ident); + ES2PANDA_ASSERT(scope != nullptr); auto *resolved = scope->Find(ident->Name(), option).variable; return resolved; } @@ -1395,6 +1397,9 @@ ir::AstNode *ConstantExpressionLowering::Fold(ir::AstNode *constantNode) if (node->IsBinaryExpression()) { auto binop = node->AsBinaryExpression(); if (IsSupportedLiteral(binop->Left()) && IsSupportedLiteral(binop->Right())) { + ERROR_SANITY_CHECK(context_->diagnosticEngine, + binop->OperatorType() != lexer::TokenType::PUNCTUATOR_NULLISH_COALESCING, + return node); return FoldBinaryExpression(binop, context_); } } diff --git a/ets2panda/compiler/lowering/ets/lambdaLowering.cpp b/ets2panda/compiler/lowering/ets/lambdaLowering.cpp index 753115eafd1faf593d72cb569aff0ef05ebb03d2..2e42d9bb9cfac8e1c311efe0e54889a25e899625 100644 --- a/ets2panda/compiler/lowering/ets/lambdaLowering.cpp +++ b/ets2panda/compiler/lowering/ets/lambdaLowering.cpp @@ -511,6 +511,9 @@ static ir::MethodDefinition *CreateCallee(public_lib::Context *ctx, ir::ArrowFun cmInfo.calleeName = calleeName; cmInfo.body = body; cmInfo.forcedReturnType = forcedReturnType; + if (lambda->Function()->IsAsyncFunc()) { + cmInfo.auxFunctionFlags = ir::ScriptFunctionFlags::ASYNC_IMPL; + } auto *method = CreateCalleeMethod(ctx, lambda, info, &cmInfo); if (lambda->Function()->IsAsyncFunc()) { @@ -521,6 +524,7 @@ static ir::MethodDefinition *CreateCallee(public_lib::Context *ctx, ir::ArrowFun cmInfoAsync.auxModifierFlags = ir::ModifierFlags::NATIVE; cmInfoAsync.auxFunctionFlags = ir::ScriptFunctionFlags::ASYNC; auto *asyncMethod = CreateCalleeMethod(ctx, lambda, info, &cmInfoAsync); + asyncMethod->Function()->SetAsyncPairMethod(method->Function()); return asyncMethod; } diff --git a/ets2panda/compiler/lowering/ets/topLevelStmts/globalClassHandler.cpp b/ets2panda/compiler/lowering/ets/topLevelStmts/globalClassHandler.cpp index 7beb4a70d526bff4f796db7f25a532d13ef63e15..88a4c1ab28c97163a0cbfac3cb8f5ec7499b8fbe 100644 --- a/ets2panda/compiler/lowering/ets/topLevelStmts/globalClassHandler.cpp +++ b/ets2panda/compiler/lowering/ets/topLevelStmts/globalClassHandler.cpp @@ -620,7 +620,10 @@ GlobalDeclTransformer::ResultT GlobalClassHandler::CollectProgramGlobalStatement auto globalDecl = GlobalDeclTransformer(allocator_, stmt, parser_); auto statements = globalDecl.TransformStatements(stmts); if (globalDecl.IsMultiInitializer() && stmt->IsETSModule() && stmt->AsETSModule()->IsNamespace()) { - parser_->LogError(diagnostic::MULTIPLE_STATIC_BLOCK, {}, statements.initializerBlocks[0][0]->Start()); + auto fristStaticBlock = + std::find_if(stmts.cbegin(), stmts.cend(), [](auto *prop) { return prop->IsClassStaticBlock(); }); + ES2PANDA_ASSERT(fristStaticBlock != stmts.cend()); + parser_->LogError(diagnostic::MULTIPLE_STATIC_BLOCK, {}, (*fristStaticBlock)->Start()); } if (stmt->IsETSModule() && !stmt->AsETSModule()->IsNamespace() && stmt->AsETSModule()->Program()->IsPackage()) { diff --git a/ets2panda/compiler/lowering/scopesInit/scopesInitPhase.cpp b/ets2panda/compiler/lowering/scopesInit/scopesInitPhase.cpp index d02274ff1f13745ccda4c8c013f8aaffb699c180..dfbbd7fd9dbfdf48d5cc8d76abb3a5f36c0ea0c7 100644 --- a/ets2panda/compiler/lowering/scopesInit/scopesInitPhase.cpp +++ b/ets2panda/compiler/lowering/scopesInit/scopesInitPhase.cpp @@ -294,7 +294,7 @@ void ScopesInitPhase::VisitAnnotationUsage(ir::AnnotationUsage *annoUsage) auto annoCtx = LexicalScopeCreateOrEnter(VarBinder(), annoUsage); auto *curScope = annoCtx.GetScope(); BindScopeNode(curScope, annoUsage); - CallNode(annoUsage->Properties()); + Iterate(annoUsage); } void ScopesInitPhase::VisitDoWhileStatement(ir::DoWhileStatement *doWhileStmt) @@ -1251,8 +1251,7 @@ void InitScopesPhaseETS::VisitTSTypeParameter(ir::TSTypeParameter *typeParam) var->SetScope(VarBinder()->GetScope()); var->AddFlag(varbinder::VariableFlags::TYPE_PARAMETER); decl->BindNode(typeParam); - CallNode(typeParam->Annotations()); - CallNode(typeParam->DefaultType()); + Iterate(typeParam); } void InitScopesPhaseETS::VisitTSInterfaceDeclaration(ir::TSInterfaceDeclaration *interfaceDecl) diff --git a/ets2panda/declgen_ets2ts/BUILD.gn b/ets2panda/declgen_ets2ts/BUILD.gn index 8cc3dabeefbebe8fcf39fd6acfec1e2d60410661..6fdca2dbfb45ed3f26ba8ca3421a2dc8248957aa 100644 --- a/ets2panda/declgen_ets2ts/BUILD.gn +++ b/ets2panda/declgen_ets2ts/BUILD.gn @@ -39,7 +39,7 @@ ohos_executable("declgen_ets2ts") { configs += [ "$ark_es2panda_root:libes2panda_public_config", "$ark_root/assembler:arkassembler_public_config", - "$ark_root/libpandafile:arkfile_public_config", + "$ark_root/libarkfile:arkfile_public_config", "$ark_root/libpandabase:arkbase_public_config", "$ark_root/bytecode_optimizer:bytecodeopt_public_config", "$ark_root/compiler:arkcompiler_public_config", diff --git a/ets2panda/declgen_ets2ts/declgenEts2Ts.cpp b/ets2panda/declgen_ets2ts/declgenEts2Ts.cpp index bb3dcc37c3b1bfc76fd4f5daccb7b8e20d62d5e5..40b69aa39daaa3a2b331df1e613b79c5ce05df60 100644 --- a/ets2panda/declgen_ets2ts/declgenEts2Ts.cpp +++ b/ets2panda/declgen_ets2ts/declgenEts2Ts.cpp @@ -32,6 +32,7 @@ #include "ir/ts/tsInterfaceBody.h" #include "ir/ts/tsTypeAliasDeclaration.h" #include "ir/ts/tsTypeParameter.h" +#include "compiler/lowering/util.h" #define DEBUG_PRINT 0 @@ -52,7 +53,6 @@ bool TSDeclGen::Generate() CollectIndirectExportDependencies(); CollectGlueCodeImportSet(); GenDeclarations(); - GenOtherDeclarations(); return true; } @@ -143,6 +143,8 @@ void TSDeclGen::CollectIndirectExportDependencies() ProcessTypeAliasDependencies(stmt->AsTSTypeAliasDeclaration()); } else if (stmt->IsClassDeclaration()) { ProcessClassDependencies(stmt->AsClassDeclaration()); + } else if (stmt->IsTSInterfaceDeclaration()) { + ProcessInterfaceDependencies(stmt->AsTSInterfaceDeclaration()); } } } @@ -211,11 +213,12 @@ void TSDeclGen::ProcessClassDependencies(const ir::ClassDeclaration *classDecl) if (!classDef->IsExported() && !classDef->IsDefaultExported()) { return; } - state_.super = classDef->Super(); + state_.super = classDef->Super(); if (state_.super != nullptr) { AddSuperType(state_.super); } + if (classDef->TsType() != nullptr && classDef->TsType()->IsETSObjectType()) { ProcessInterfacesDependencies(classDef->TsType()->AsETSObjectType()->Interfaces()); } @@ -275,6 +278,57 @@ void TSDeclGen::ProcessClassMethodDependencies(const ir::MethodDefinition *metho AddSuperType(sig->ReturnType()); } +void TSDeclGen::ProcessInterfaceDependencies(const ir::TSInterfaceDeclaration *interfaceDecl) +{ + if (interfaceDecl->Id()->Name().Mutf8().find('#') != std::string::npos) { + return; + } + + if (!interfaceDecl->IsExported() && !interfaceDecl->IsExportedType()) { + return; + } + + if (interfaceDecl->TsType() != nullptr && interfaceDecl->TsType()->IsETSObjectType()) { + ProcessInterfacesDependencies(interfaceDecl->TsType()->AsETSObjectType()->Interfaces()); + } + + if (interfaceDecl->TypeParams() != nullptr) { + GenSeparated( + interfaceDecl->TypeParams()->Params(), + [this](ir::TSTypeParameter *param) { + if (param->Constraint() == nullptr) { + return; + } + AddSuperType(param->Constraint()); + }, + ""); + } + + ProcessInterfacePropDependencies(interfaceDecl); +} + +void TSDeclGen::ProcessInterfacePropDependencies(const ir::TSInterfaceDeclaration *interfaceDecl) +{ + for (const auto *prop : interfaceDecl->Body()->Body()) { + if (prop->IsMethodDefinition()) { + ProcessInterfaceMethodDependencies(prop->AsMethodDefinition()); + } + } +} + +void TSDeclGen::ProcessInterfaceMethodDependencies(const ir::MethodDefinition *methodDef) +{ + auto methDefFunc = methodDef->Function(); + if (methDefFunc == nullptr) { + return; + } + auto sig = methDefFunc->Signature(); + GenSeparated( + sig->Params(), [this](varbinder::LocalVariable *param) { AddSuperType(param->TsType()); }, ""); + + AddSuperType(sig->ReturnType()); +} + void TSDeclGen::AddSuperType(const ir::Expression *super) { if (super->TsType() == nullptr) { @@ -325,7 +379,10 @@ void TSDeclGen::GenDeclarations() for (auto *globalStatement : program_->Ast()->Statements()) { ResetState(); ResetClassNode(); - if (globalStatement->IsClassDeclaration()) { + const auto jsdoc = compiler::JsdocStringFromDeclaration(globalStatement); + if (jsdoc.Utf8().find(NON_INTEROP_FLAG) != std::string_view::npos) { + continue; + } else if (globalStatement->IsClassDeclaration()) { GenClassDeclaration(globalStatement->AsClassDeclaration()); } else if (globalStatement->IsTSInterfaceDeclaration()) { GenInterfaceDeclaration(globalStatement->AsTSInterfaceDeclaration()); @@ -337,20 +394,6 @@ void TSDeclGen::GenDeclarations() } } -void TSDeclGen::GenOtherDeclarations() -{ - const std::string recordKey = "Record"; - const std::string recordStr = R"( -// generated for static Record -type Record = { - [P in K]: T; -}; -)"; - if (indirectDependencyObjects_.find(recordKey) != indirectDependencyObjects_.end()) { - OutDts(recordStr); - } -} - void TSDeclGen::GenExportNamedDeclarations() { for (auto *globalStatement : program_->Ast()->Statements()) { @@ -369,6 +412,11 @@ void TSDeclGen::GenImportDeclarations() } } +void TSDeclGen::GenImportRecordDeclarations(const std::string &source) +{ + OutDts("import type { Record } from \"", source, "\";\n"); +} + template void TSDeclGen::GenSeparated(const T &container, const CB &cb, const char *separator, bool isReExport, bool isDtsExport) { @@ -436,14 +484,6 @@ void TSDeclGen::GenType(const checker::Type *checkerType) if (HandleBasicTypes(checkerType)) { return; } - if (checkerType->HasTypeFlag(checker::TypeFlag::ETS_CONVERTIBLE_TO_NUMERIC)) { - OutDts("number"); - return; - } - if (checkerType->IsETSStringEnumType()) { - OutDts("string"); - return; - } if (checkerType->IsETSFunctionType()) { HandleFunctionType(checkerType); @@ -1804,8 +1844,6 @@ void TSDeclGen::ProcessInterfaceBody(const ir::TSInterfaceBody *body) for (auto *prop : body->Body()) { if (prop->IsMethodDefinition()) { ProcessInterfaceMethodDefinition(prop->AsMethodDefinition()); - } else if (prop->IsClassProperty()) { - GenPropDeclaration(prop->AsClassProperty()); } } } @@ -1975,6 +2013,8 @@ void TSDeclGen::GenPartName(std::string &partName) partName = "Error"; } else if (partName == "Any") { partName = "ESObject"; + } else if (partName == "Floating" || partName == "Integral") { + partName = "number"; } } @@ -2012,14 +2052,14 @@ void TSDeclGen::HandleClassDeclarationTypeInfo(const ir::ClassDefinition *classD HandleClassInherit(super); } - if (classDef->TsType() != nullptr && classDef->TsType()->IsETSObjectType() && - !classDef->TsType()->AsETSObjectType()->Interfaces().empty()) { + if (!classDef->Implements().empty()) { + OutDts(" implements "); + GenSeparated(classDef->Implements(), [this](ir::TSClassImplements *impl) { HandleClassInherit(impl->Expr()); }); + } else if (classDef->TsType() != nullptr && classDef->TsType()->IsETSObjectType() && + !classDef->TsType()->AsETSObjectType()->Interfaces().empty()) { OutDts(" implements "); const auto &interfaces = classDef->TsType()->AsETSObjectType()->Interfaces(); GenSeparated(interfaces, [this](checker::ETSObjectType *interface) { GenType(interface); }); - } else if (!classDef->Implements().empty()) { - OutDts(" implements "); - GenSeparated(classDef->Implements(), [this](ir::TSClassImplements *impl) { HandleClassInherit(impl->Expr()); }); } OutDts(" {"); @@ -2077,7 +2117,10 @@ void TSDeclGen::ProcessClassBody(const ir::ClassDefinition *classDef) state_.inClass = true; std::unordered_set processedMethods; for (const auto *prop : classDef->Body()) { - if (classDef->IsEnumTransformed()) { + const auto jsdoc = compiler::JsdocStringFromDeclaration(prop); + if (jsdoc.Utf8().find(NON_INTEROP_FLAG) != std::string_view::npos) { + continue; + } else if (classDef->IsEnumTransformed()) { if (prop->IsClassProperty()) { state_.inEnum = true; GenPropDeclaration(prop->AsClassProperty()); @@ -2429,10 +2472,14 @@ void TSDeclGen::GenPropAccessor(const ir::ClassProperty *classProp, const std::s const auto propName = GetKeyIdent(classProp->Key())->Name().Mutf8(); OutDts(accessorKind, propName, accessorKind == "set " ? "(value: " : "(): "); - if (classProp->TypeAnnotation() != nullptr) { - ProcessTypeAnnotationType(classProp->TypeAnnotation(), classProp->TsType()); + auto typeAnnotation = classProp->TypeAnnotation(); + auto tsType = classProp->TsType(); + if (tsType != nullptr && tsType->IsETSTypeParameter()) { + OutDts("ESObject"); + } else if (typeAnnotation != nullptr) { + ProcessTypeAnnotationType(typeAnnotation, tsType); } else { - GenType(classProp->TsType()); + GenType(tsType); } OutDts(accessorKind == "set " ? ");" : ";"); OutEndlDts(); @@ -2445,7 +2492,11 @@ void TSDeclGen::GenGlobalVarDeclaration(const ir::ClassProperty *globalVar) } const auto symbol = GetKeyIdent(globalVar->Key()); - const auto varName = symbol->Name().Mutf8(); + auto varName = symbol->Name().Mutf8(); + const std::string prefix = "gensym%%_"; + if (varName.rfind(prefix, 0) == 0) { + varName = varName.substr(prefix.size()); + } const bool isConst = globalVar->IsConst(); const bool isDefaultExported = globalVar->IsDefaultExported(); DebugPrint("GenGlobalVarDeclaration: " + varName); @@ -2526,6 +2577,13 @@ bool GenerateTsDeclarations(checker::ETSChecker *checker, const ark::es2panda::p std::string combineEts = importOutputEts + outputEts + exportOutputEts; std::string combinedDEts = importOutputDEts + outputDEts + exportOutputDEts; + if (!declBuilder.GetDeclgenOptions().recordFile.empty()) { + declBuilder.ResetDtsOutput(); + declBuilder.GenImportRecordDeclarations(declBuilder.GetDeclgenOptions().recordFile); + std::string recordImportOutputDEts = declBuilder.GetDtsOutput(); + combinedDEts = recordImportOutputDEts + combinedDEts; + } + return WriteOutputFiles(declBuilder.GetDeclgenOptions(), combineEts, combinedDEts, checker); } diff --git a/ets2panda/declgen_ets2ts/declgenEts2Ts.h b/ets2panda/declgen_ets2ts/declgenEts2Ts.h index fbe26acd058e816c26ad5e076827b37eefffb6c3..6f868df50dca1621f15cdd045fe0c7ef0998ef66 100644 --- a/ets2panda/declgen_ets2ts/declgenEts2Ts.h +++ b/ets2panda/declgen_ets2ts/declgenEts2Ts.h @@ -27,11 +27,14 @@ namespace ark::es2panda::declgen_ets2ts { +constexpr const char *NON_INTEROP_FLAG = "@noninterop"; + struct DeclgenOptions { bool exportAll = false; bool isolated = false; std::string outputDeclEts; std::string outputEts; + std::string recordFile; }; // Consume program after checker stage and generate out_path typescript file with declarations @@ -72,6 +75,7 @@ public: bool Generate(); void GenImportDeclarations(); void GenExportNamedDeclarations(); + void GenImportRecordDeclarations(const std::string &source); std::string GetDtsOutput() const { @@ -219,13 +223,15 @@ private: void ProcessClassDependencies(const ir::ClassDeclaration *classDecl); void ProcessClassPropDependencies(const ir::ClassDefinition *classDef); void ProcessClassMethodDependencies(const ir::MethodDefinition *methodDef); + void ProcessInterfaceDependencies(const ir::TSInterfaceDeclaration *interfaceDecl); + void ProcessInterfacePropDependencies(const ir::TSInterfaceDeclaration *interfaceDecl); + void ProcessInterfaceMethodDependencies(const ir::MethodDefinition *methodDef); void ProcessETSTypeReferenceDependencies(const ir::ETSTypeReference *typeReference); void AddSuperType(const ir::Expression *super); void AddSuperType(const checker::Type *tsType); void ProcessInterfacesDependencies(const ArenaVector &interfaces); void AddObjectDependencies(const util::StringView &typeName, const std::string &alias = ""); void GenDeclarations(); - void GenOtherDeclarations(); void CloseClassBlock(const bool isDts); void EmitDeclarationPrefix(const ir::ClassDefinition *classDef, const std::string &typeName, diff --git a/ets2panda/driver/build_system/README.md b/ets2panda/driver/build_system/README.md index 414e8efc043ff59b3442d22236ee37d7897808f3..667ca25c5d897c40e3a10b307808eaeeda619e87 100644 --- a/ets2panda/driver/build_system/README.md +++ b/ets2panda/driver/build_system/README.md @@ -2,6 +2,11 @@ The build system is designed to compile ArkTS1.2 source files. It takes source files and build configurations as input, compiles the source files, invokes plugins for transformation, and generates a merged bytecode file. +## env +USE_KOALA_LIBARKTS - use libarkts from koala_mirror +USE_KOALA_UI_PLUGIN - use ui-plugin from koala_mirror +USE_KOALA_MEMO_PLUGIN - use memo-plugin from koala_mirror + ## How to Run The build system has two usage scenarios: diff --git a/ets2panda/driver/build_system/src/build/base_mode.ts b/ets2panda/driver/build_system/src/build/base_mode.ts index c208585be1336a5715ff9c94976c59c4610408a4..d2d975d3b4a6c9e2477f59a54a927afe022ef4ab 100644 --- a/ets2panda/driver/build_system/src/build/base_mode.ts +++ b/ets2panda/driver/build_system/src/build/base_mode.ts @@ -30,17 +30,21 @@ import { ARKTSCONFIG_JSON_FILE, DEFAULT_WOKER_NUMS, DECL_ETS_SUFFIX, + DECL_TS_SUFFIX, + DEPENDENCY_INPUT_FILE, DEPENDENCY_JSON_FILE, LANGUAGE_VERSION, LINKER_INPUT_FILE, MERGED_ABC_FILE, - TS_SUFFIX, - DEPENDENCY_INPUT_FILE, MERGED_INTERMEDIATE_FILE, + STATIC_RECORD_FILE, + STATIC_RECORD_FILE_CONTENT, + TS_SUFFIX } from '../pre_define'; import { changeDeclgenFileExtension, changeFileExtension, + createFileIfNotExists, ensurePathExists, getFileHash, isMac @@ -169,6 +173,18 @@ export abstract class BaseMode { const arkts: ArkTS = this.buildConfig.arkts; let errorStatus = false; try { + const staticRecordPath = path.join( + moduleInfo.declgenV1OutPath as string, + STATIC_RECORD_FILE + ) + const declEtsOutputDir = path.dirname(declEtsOutputPath); + const staticRecordRelativePath = changeFileExtension( + path.relative(declEtsOutputDir, staticRecordPath).replaceAll(/\\/g, '\/'), + "", + DECL_TS_SUFFIX + ); + createFileIfNotExists(staticRecordPath, STATIC_RECORD_FILE_CONTENT); + arktsGlobal.filePath = fileInfo.filePath; arktsGlobal.config = arkts.Config.create([ '_', @@ -197,7 +213,8 @@ export abstract class BaseMode { declEtsOutputPath, etsOutputPath, false, - false + false, + staticRecordRelativePath ); // Generate 1.0 declaration files & 1.0 glue code this.logger.printInfo('declaration files generated'); } catch (error) { @@ -235,6 +252,7 @@ export abstract class BaseMode { if (this.isDebug) { ets2pandaCmd.push('--debug-info'); + ets2pandaCmd.push('--opt-level=0'); } ets2pandaCmd.push(fileInfo.filePath); this.logger.printInfo('ets2pandaCmd: ' + ets2pandaCmd.join(' ')); @@ -270,7 +288,7 @@ export abstract class BaseMode { if (this.hasMainModule && (this.byteCodeHar || this.moduleType === OHOS_MODULE_TYPE.SHARED)) { let filePathFromModuleRoot: string = path.relative(this.moduleRootPath, fileInfo.filePath); let declEtsOutputPath: string = changeFileExtension( - path.join(this.declgenV2OutPath as string, this.packageName, filePathFromModuleRoot), + path.join(this.declgenV2OutPath as string, filePathFromModuleRoot), DECL_ETS_SUFFIX ); ensurePathExists(declEtsOutputPath); @@ -325,6 +343,7 @@ export abstract class BaseMode { ensurePathExists(intermediateFilePath); if (this.isDebug) { ets2pandaCmd.push('--debug-info'); + ets2pandaCmd.push('--opt-level=0'); } ets2pandaCmd.push(this.buildConfig.compileFiles[0]); this.logger.printInfo('ets2pandaCmd: ' + ets2pandaCmd.join(' ')); @@ -375,7 +394,7 @@ export abstract class BaseMode { linkerInputContent += abcFile + os.EOL; }); fs.writeFileSync(linkerInputFile, linkerInputContent); - + this.abcLinkerCmd.push('--strip-unused'); this.abcLinkerCmd.push('--output'); this.abcLinkerCmd.push('"' + this.mergedAbcFile + '"'); this.abcLinkerCmd.push('--'); @@ -1381,6 +1400,7 @@ export abstract class BaseMode { if (this.isDebug) { ets2pandaCmd.push('--debug-info'); + ets2pandaCmd.push('--opt-level=0'); } ets2pandaCmd.push(fileInfo.filePath); diff --git a/ets2panda/driver/build_system/src/build/compile_thread_worker.ts b/ets2panda/driver/build_system/src/build/compile_thread_worker.ts index 49644a1a6db1d0c9e2c79a468765f33728b6982d..ab98fac0c5d670bfd9c6c71e6474745e7e00e192 100644 --- a/ets2panda/driver/build_system/src/build/compile_thread_worker.ts +++ b/ets2panda/driver/build_system/src/build/compile_thread_worker.ts @@ -62,6 +62,7 @@ function compileAbc(jobInfo: JobInfo): void { if (isDebug) { ets2pandaCmd.push('--debug-info'); + ets2pandaCmd.push('--opt-level=0'); } ets2pandaCmd.push(fileInfo.filePath); @@ -134,6 +135,7 @@ function compileExternalProgram(jobInfo: JobInfo): void { if (isDebug) { ets2pandaCmd.push('--debug-info'); + ets2pandaCmd.push('--opt-level=0'); } ets2pandaCmd.push(fileInfo.filePath); diff --git a/ets2panda/driver/build_system/src/build/compile_worker.ts b/ets2panda/driver/build_system/src/build/compile_worker.ts index d9f719d3eb8b8abf84170b9983cfe4667b82f497..1ae817d7d03b710f5eedc669d1713972c75c6aa8 100644 --- a/ets2panda/driver/build_system/src/build/compile_worker.ts +++ b/ets2panda/driver/build_system/src/build/compile_worker.ts @@ -62,6 +62,7 @@ process.on('message', (message: { ]; if (isDebug) { ets2pandaCmd.push('--debug-info'); + ets2pandaCmd.push('--opt-level=0'); } ets2pandaCmd.push(fileInfo.filePath); @@ -86,7 +87,7 @@ process.on('message', (message: { if (buildConfig.hasMainModule && (buildConfig.byteCodeHar || buildConfig.moduleType === OHOS_MODULE_TYPE.SHARED)) { let filePathFromModuleRoot: string = path.relative(buildConfig.moduleRootPath, fileInfo.filePath); let declEtsOutputPath: string = changeFileExtension( - path.join(buildConfig.declgenV2OutPath as string, buildConfig.packageName, filePathFromModuleRoot), + path.join(buildConfig.declgenV2OutPath as string, filePathFromModuleRoot), DECL_ETS_SUFFIX ); ensurePathExists(declEtsOutputPath); diff --git a/ets2panda/driver/build_system/src/build/declgen_worker.ts b/ets2panda/driver/build_system/src/build/declgen_worker.ts index 6acecb94e3fa045dbf76735c9b19974bc454f4d3..e25cdff91d5cae4ea0c394572c7d12827aaf852c 100644 --- a/ets2panda/driver/build_system/src/build/declgen_worker.ts +++ b/ets2panda/driver/build_system/src/build/declgen_worker.ts @@ -18,11 +18,19 @@ import { BuildConfig } from '../types'; import { Logger } from '../logger'; import * as fs from 'fs'; import * as path from 'path'; -import { changeDeclgenFileExtension, ensurePathExists } from '../utils'; -import { - DECL_ETS_SUFFIX, - TS_SUFFIX, - KOALA_WRAPPER_PATH_FROM_SDK +import { + changeDeclgenFileExtension, + changeFileExtension, + createFileIfNotExists, + ensurePathExists +} from '../utils'; +import { + DECL_ETS_SUFFIX, + DECL_TS_SUFFIX, + KOALA_WRAPPER_PATH_FROM_SDK, + STATIC_RECORD_FILE, + STATIC_RECORD_FILE_CONTENT, + TS_SUFFIX } from '../pre_define'; import { PluginDriver, PluginHook } from '../plugins/plugins_driver'; @@ -67,6 +75,18 @@ process.on('message', (message: { ensurePathExists(declEtsOutputPath); ensurePathExists(etsOutputPath); + const staticRecordPath = path.join( + moduleInfo.declgenV1OutPath as string, + STATIC_RECORD_FILE + ) + const declEtsOutputDir = path.dirname(declEtsOutputPath); + const staticRecordRelativePath = changeFileExtension( + path.relative(declEtsOutputDir, staticRecordPath).replaceAll(/\\/g, '\/'), + "", + DECL_TS_SUFFIX + ); + createFileIfNotExists(staticRecordPath, STATIC_RECORD_FILE_CONTENT); + arktsGlobal.filePath = fileInfo.filePath; arktsGlobal.config = arkts.Config.create([ '_', @@ -96,7 +116,8 @@ process.on('message', (message: { declEtsOutputPath, etsOutputPath, false, - false + false, + staticRecordRelativePath ); // Generate 1.0 declaration files & 1.0 glue code logger.printInfo('declaration files generated'); diff --git a/ets2panda/driver/build_system/src/plugins/plugins_driver.ts b/ets2panda/driver/build_system/src/plugins/plugins_driver.ts index 67203f601dcc973398d5469c3ae58a5e26159fc7..9213df98d63bc2e8fc9a040064d974c048dd9902 100644 --- a/ets2panda/driver/build_system/src/plugins/plugins_driver.ts +++ b/ets2panda/driver/build_system/src/plugins/plugins_driver.ts @@ -21,6 +21,8 @@ import { import { BuildConfig } from '../types'; import { ErrorCode } from '../error_code'; import { FileManager } from './FileManager'; +import path from 'path' +import { MEMO_PLUGIN_PATH_FROM_SDK, UI_PLUGIN_PATH_FROM_SDK } from '../pre_define'; export enum PluginHook { NEW = 'afterNew', @@ -149,11 +151,28 @@ export class PluginDriver { PluginDriver.instance = undefined; } + private initKoalaPlugins(projectConfig: BuildConfig): void { + + const uiPluginPath = path.resolve(projectConfig.buildSdkPath, UI_PLUGIN_PATH_FROM_SDK); + const memoPluginPath = path.resolve(projectConfig.buildSdkPath, MEMO_PLUGIN_PATH_FROM_SDK); + + // TODO: need change in hvigor + if (process.env.USE_KOALA_UI_PLUGIN) { + projectConfig.plugins['ArkUI'] = uiPluginPath + } + + if (process.env.USE_KOALA_MEMO_PLUGIN) { + projectConfig.plugins['ArkUI-Memo'] = memoPluginPath + } + } + public initPlugins(projectConfig: BuildConfig): void { if (!projectConfig || !projectConfig.plugins) { return; } + this.initKoalaPlugins(projectConfig) + const pluginResults: RawPlugins[] = Object.entries(projectConfig.plugins).map(([key, value]) => { try { let pluginObject = require(value as string); diff --git a/ets2panda/driver/build_system/src/pre_define.ts b/ets2panda/driver/build_system/src/pre_define.ts index 4b071957de20a1d748de11e4aaf81f0852aa2c9c..10a3dc54191d25c2133bc76de730e01c03a599f8 100644 --- a/ets2panda/driver/build_system/src/pre_define.ts +++ b/ets2panda/driver/build_system/src/pre_define.ts @@ -20,8 +20,10 @@ export const LINKER_INPUT_FILE: string = 'fileInfo.txt'; export const DEPENDENCY_INPUT_FILE: string = 'dependencyFileInfo.txt'; export const DEPENDENCY_JSON_FILE: string = 'dependency.json'; export const PROJECT_BUILD_CONFIG_FILE: string = 'projectionConfig.json'; +export const STATIC_RECORD_FILE: string = 'static.Record.d.ts'; export const DECL_ETS_SUFFIX: string = '.d.ets'; +export const DECL_TS_SUFFIX: string = '.d.ts'; export const ETS_SUFFIX: string = '.ets'; export const TS_SUFFIX: string = '.ts'; export const ABC_SUFFIX: string = '.abc'; @@ -34,7 +36,6 @@ export enum LANGUAGE_VERSION { export const PANDA_SDK_PATH_FROM_SDK: string = './build-tools/ets2panda'; export const SYSTEM_SDK_PATH_FROM_SDK: string = './'; -export const KOALA_WRAPPER_PATH_FROM_SDK: string = './build-tools/koala-wrapper/build/lib/es2panda'; export const KIT_CONFIGS_PATH_FROM_SDK: string = '../ets1.1/build-tools/ets-loader/kit_configs'; export const DEFAULT_WOKER_NUMS: number = 4; @@ -53,4 +54,14 @@ export const API: string = 'api'; export const ARKTS:string = 'arkts'; export const COMPONENT:string = 'component'; -export const DYNAMIC_PREFIX:string = 'dynamic/'; \ No newline at end of file +export const DYNAMIC_PREFIX:string = 'dynamic/'; + +export const STATIC_RECORD_FILE_CONTENT: string = `// generated for static Record +export type Record = { + [P in K]: T; +}; +`; +// Koala experimental variables +export const KOALA_WRAPPER_PATH_FROM_SDK: string = process.env.USE_KOALA_LIBARKTS ? './build-tools/ui2abc/libarkts/lib/libarkts.js' : './build-tools/koala-wrapper/build/lib/es2panda' +export const UI_PLUGIN_PATH_FROM_SDK: string = './build-tools/ui2abc/ui-plugin/lib/entry.js' +export const MEMO_PLUGIN_PATH_FROM_SDK: string = './build-tools/ui2abc/memo-plugin/lib/entry.js' diff --git a/ets2panda/driver/build_system/src/utils.ts b/ets2panda/driver/build_system/src/utils.ts index 3ac40a0f819f7479a416a1261a249da6edbc8018..e3a7a2bc37bded3628572266173df97059b5cb17 100644 --- a/ets2panda/driver/build_system/src/utils.ts +++ b/ets2panda/driver/build_system/src/utils.ts @@ -182,3 +182,22 @@ export function hasEntry(moduleInfo: ModuleInfo): boolean { return false; } } + +export function createFileIfNotExists(filePath: string, content: string): boolean { + try { + const normalizedPath = path.normalize(filePath); + if (fs.existsSync(normalizedPath)) { + return false; + } + + const dir = path.dirname(normalizedPath); + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir, { recursive: true }); + } + + fs.writeFileSync(normalizedPath, content, { encoding: 'utf-8' }); + return true; + } catch (error) { + return false; + } +} diff --git a/ets2panda/driver/build_system/test/ut/compile_WorkerTest/compile_worker.test.ts b/ets2panda/driver/build_system/test/ut/compile_WorkerTest/compile_worker.test.ts index 7530394c7fc6803c60db29d37e312428a63823cd..da01ed9b341899e20ef22cbb3eb2c0524ade9019 100755 --- a/ets2panda/driver/build_system/test/ut/compile_WorkerTest/compile_worker.test.ts +++ b/ets2panda/driver/build_system/test/ut/compile_WorkerTest/compile_worker.test.ts @@ -83,6 +83,8 @@ afterEach(() => { }); // Test the functions of the compile_worker.ts file +import { changeFileExtension } from '../../../src/utils'; +import { DECL_ETS_SUFFIX } from '../../../src/pre_define'; describe('compile_worker', () => { const fileInfo = { filePath: '/src/foo.ets', @@ -153,6 +155,17 @@ describe('compile_worker', () => { (process as any).emit('message', { taskList: [fileInfo], buildConfig: config, moduleInfos }); }).toThrow('exit'); expect(fakeArkts.generateStaticDeclarationsFromContext).not.toHaveBeenCalled(); + require('path').relative.mockImplementation((from: string, to: string) => to.replace(from, '').replace(/^\//, '')); + require('fs').readFileSync.mockReturnValue(Buffer.from('source code')); + config = { ...buildConfig, hasMainModule: true, byteCodeHar: true }; + require('../../../src/build/compile_worker'); + expect(() => { + (process as any).emit('message', { taskList: [fileInfo], buildConfig: config, moduleInfos }); + }).toThrow('exit'); + let filePathFromModuleRoot = require('path').relative(buildConfig.moduleRootPath, fileInfo.filePath); + let declarationPath = require('path').join(buildConfig.declgenV2OutPath, filePathFromModuleRoot); + let declarationFilePath = changeFileExtension(declarationPath, DECL_ETS_SUFFIX); + expect(fakeArkts.generateStaticDeclarationsFromContext).toHaveBeenCalledWith(declarationFilePath); }); test('throw while process.send is undefined', () => { diff --git a/ets2panda/driver/dependency_analyzer/BUILD.gn b/ets2panda/driver/dependency_analyzer/BUILD.gn index 1fc7d9fa5335ab0e52266cb2db2f1772492bdc3c..0dedd66e582f20dc7cdbef64e224e50068f2b4fd 100644 --- a/ets2panda/driver/dependency_analyzer/BUILD.gn +++ b/ets2panda/driver/dependency_analyzer/BUILD.gn @@ -46,7 +46,7 @@ ohos_executable("dependency_analyzer") { deps += [ "$ark_root/bytecode_optimizer:libarktsbytecodeopt_package", "$ark_root/libpandabase:libarktsbase_package", - "$ark_root/libpandafile:libarktsfile_package", + "$ark_root/libarkfile:libarktsfile_package", ] } diff --git a/ets2panda/evaluate/debugInfoDeserialization/classBuilder.cpp b/ets2panda/evaluate/debugInfoDeserialization/classBuilder.cpp index e1101e2b0037ff38a6ab9cb79ec45a030dfd40cd..df3118e7b677a4a5fbbbc15407c44cd653c433e7 100644 --- a/ets2panda/evaluate/debugInfoDeserialization/classBuilder.cpp +++ b/ets2panda/evaluate/debugInfoDeserialization/classBuilder.cpp @@ -18,9 +18,9 @@ #include "checker/ETSchecker.h" #include "ir/statements/classDeclaration.h" #include "ir/expressions/identifier.h" -#include "libpandafile/class_data_accessor-inl.h" -#include "libpandafile/file-inl.h" -#include "libpandafile/method_data_accessor.h" +#include "libarkfile/class_data_accessor-inl.h" +#include "libarkfile/file-inl.h" +#include "libarkfile/method_data_accessor.h" #include "evaluate/helpers.h" #include "evaluate/debugInfoDeserialization/methodBuilder.h" diff --git a/ets2panda/evaluate/debugInfoDeserialization/debugInfoDeserializer.cpp b/ets2panda/evaluate/debugInfoDeserialization/debugInfoDeserializer.cpp index a84486f5f567b7e080eeafcdeab88898375dce46..d9bfbbee6f9c2b2b9ed133b9b3ce1882845097c5 100644 --- a/ets2panda/evaluate/debugInfoDeserialization/debugInfoDeserializer.cpp +++ b/ets2panda/evaluate/debugInfoDeserialization/debugInfoDeserializer.cpp @@ -29,8 +29,8 @@ #include "compiler/lowering/scopesInit/scopesInitPhase.h" #include "compiler/lowering/util.h" -#include "libpandafile/class_data_accessor-inl.h" -#include "libpandafile/file-inl.h" +#include "libarkfile/class_data_accessor-inl.h" +#include "libarkfile/file-inl.h" namespace ark::es2panda::evaluate { diff --git a/ets2panda/evaluate/debugInfoDeserialization/debugInfoDeserializer.h b/ets2panda/evaluate/debugInfoDeserialization/debugInfoDeserializer.h index fe5e9ac7d38d534a0d016ac881f0e619639ff43e..d2035a6d6d79c436158534a2b841586dd77cda8d 100644 --- a/ets2panda/evaluate/debugInfoDeserialization/debugInfoDeserializer.h +++ b/ets2panda/evaluate/debugInfoDeserialization/debugInfoDeserializer.h @@ -17,8 +17,8 @@ #define ES2PANDA_EVALUATE_DEBUG_INFO_DESERIALIZER_H #include "libpandabase/utils/arena_containers.h" -#include "libpandafile/debug_info_extractor.h" -#include "libpandafile/file.h" +#include "libarkfile/debug_info_extractor.h" +#include "libarkfile/file.h" namespace ark::es2panda::varbinder { class Variable; diff --git a/ets2panda/evaluate/debugInfoDeserialization/inheritanceResolution.cpp b/ets2panda/evaluate/debugInfoDeserialization/inheritanceResolution.cpp index 1e82b52cc2d5e04cd93bf2e04c5290e65de23305..586bbb08f060fe3cbb19494ece3293966e7163ad 100644 --- a/ets2panda/evaluate/debugInfoDeserialization/inheritanceResolution.cpp +++ b/ets2panda/evaluate/debugInfoDeserialization/inheritanceResolution.cpp @@ -22,8 +22,8 @@ #include "evaluate/proxyProgramsCache.h" #include "evaluate/entityDeclarator-inl.h" -#include "libpandafile/class_data_accessor.h" -#include "libpandafile/file-inl.h" +#include "libarkfile/class_data_accessor.h" +#include "libarkfile/file-inl.h" namespace ark::es2panda::evaluate { diff --git a/ets2panda/evaluate/debugInfoDeserialization/methodBuilder.cpp b/ets2panda/evaluate/debugInfoDeserialization/methodBuilder.cpp index a2326cba1b3554b7b0424dfd1197199cc751f662..574f543e1cccbe251c0156c9992baccd3085d9d3 100644 --- a/ets2panda/evaluate/debugInfoDeserialization/methodBuilder.cpp +++ b/ets2panda/evaluate/debugInfoDeserialization/methodBuilder.cpp @@ -15,9 +15,9 @@ #include "evaluate/debugInfoDeserialization/methodBuilder.h" #include "checker/ETSchecker.h" -#include "libpandafile/file-inl.h" -#include "libpandafile/method_data_accessor-inl.h" -#include "libpandafile/proto_data_accessor-inl.h" +#include "libarkfile/file-inl.h" +#include "libarkfile/method_data_accessor-inl.h" +#include "libarkfile/proto_data_accessor-inl.h" #include "evaluate/helpers.h" namespace ark::es2panda::evaluate { diff --git a/ets2panda/evaluate/debugInfoStorage.cpp b/ets2panda/evaluate/debugInfoStorage.cpp index 20163df7651cfe096002170d3259eedeb67bb862..b1f0f03d2931f24b11ad592d6bbc2a66023966cf 100644 --- a/ets2panda/evaluate/debugInfoStorage.cpp +++ b/ets2panda/evaluate/debugInfoStorage.cpp @@ -18,8 +18,8 @@ #include "generated/signatures.h" #include "evaluate/helpers.h" -#include "libpandafile/class_data_accessor-inl.h" -#include "libpandafile/file-inl.h" +#include "libarkfile/class_data_accessor-inl.h" +#include "libarkfile/file-inl.h" namespace ark::es2panda::evaluate { diff --git a/ets2panda/evaluate/debugInfoStorage.h b/ets2panda/evaluate/debugInfoStorage.h index 43966dca6b0ff74b13dc79db3d14776c48b1797d..bffdd2f8cc10e1682b6ff70ea34db4009f9adc9c 100644 --- a/ets2panda/evaluate/debugInfoStorage.h +++ b/ets2panda/evaluate/debugInfoStorage.h @@ -20,9 +20,9 @@ #include "evaluate/importExportTable.h" #include "util/ustring.h" -#include "libpandafile/debug_info_extractor.h" -#include "libpandafile/file.h" -#include "libpandafile/class_data_accessor.h" +#include "libarkfile/debug_info_extractor.h" +#include "libarkfile/file.h" +#include "libarkfile/class_data_accessor.h" #include #include diff --git a/ets2panda/evaluate/evaluateContext.h b/ets2panda/evaluate/evaluateContext.h index 848719954f6edb5ae62a15d6b74a3640109257e4..3365e558e198c929f7ccbdfdff407d9c416ab78b 100644 --- a/ets2panda/evaluate/evaluateContext.h +++ b/ets2panda/evaluate/evaluateContext.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Huawei Device Co., Ltd. + * Copyright (c) 2024-2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -20,8 +20,8 @@ #include "util/options.h" #include "libpandabase/utils/arena_containers.h" -#include "libpandafile/debug_info_extractor.h" -#include "libpandafile/file.h" +#include "libarkfile/debug_info_extractor.h" +#include "libarkfile/file.h" #include #include diff --git a/ets2panda/evaluate/helpers.cpp b/ets2panda/evaluate/helpers.cpp index e41daa9022fdf3ae4d7e28f6a1c249b8192d03af..88a631b2f782a80548f9b7e16ad7cd09951a48f8 100644 --- a/ets2panda/evaluate/helpers.cpp +++ b/ets2panda/evaluate/helpers.cpp @@ -24,8 +24,8 @@ #include "ir/typeNode.h" #include "assembler/assembly-type.h" -#include "libpandafile/field_data_accessor-inl.h" -#include "libpandafile/file-inl.h" +#include "libarkfile/field_data_accessor-inl.h" +#include "libarkfile/file-inl.h" #include #include diff --git a/ets2panda/evaluate/helpers.h b/ets2panda/evaluate/helpers.h index dd4766d19c0d7b751bbaefa2e06dc22943ab0d34..5038bcc9ac87d1dd69e2695c24ae86cff9107b1f 100644 --- a/ets2panda/evaluate/helpers.h +++ b/ets2panda/evaluate/helpers.h @@ -21,11 +21,11 @@ #include "ir/astNodeFlags.h" #include "varbinder/ETSBinder.h" -#include "libpandafile/field_data_accessor.h" -#include "libpandafile/method_data_accessor.h" -#include "libpandafile/class_data_accessor.h" -#include "libpandafile/file.h" -#include "type.h" +#include "libarkfile/field_data_accessor.h" +#include "libarkfile/method_data_accessor.h" +#include "libarkfile/class_data_accessor.h" +#include "libarkfile/file.h" +#include #include #include diff --git a/ets2panda/ir/base/scriptFunction.cpp b/ets2panda/ir/base/scriptFunction.cpp index 77ef01fa453dbffd84f9169cf64f98ba13eaa96a..f424f14f5dab028b27ff184e400473e847ace399 100644 --- a/ets2panda/ir/base/scriptFunction.cpp +++ b/ets2panda/ir/base/scriptFunction.cpp @@ -115,7 +115,8 @@ ScriptFunction::ScriptFunction(ArenaAllocator *allocator, ScriptFunctionData &&d body_(data.body), funcFlags_(data.funcFlags), lang_(data.lang), - returnStatements_(allocator->Adapter()) + returnStatements_(allocator->Adapter()), + asyncPairFunction_(nullptr) { for (auto *param : irSignature_.Params()) { param->SetParent(this); @@ -137,7 +138,8 @@ ScriptFunction::ScriptFunction(ArenaAllocator *allocator, ScriptFunctionData &&d body_(data.body), funcFlags_(data.funcFlags), lang_(data.lang), - returnStatements_(allocator->Adapter()) + returnStatements_(allocator->Adapter()), + asyncPairFunction_(nullptr) { for (auto *param : irSignature_.Params()) { param->SetParent(this); diff --git a/ets2panda/ir/base/scriptFunction.h b/ets2panda/ir/base/scriptFunction.h index e0d169804baad3b3400207557bb1fd314112f795..276eb1ad91c9a9a61a1aba79cc6921f29e4f8044 100644 --- a/ets2panda/ir/base/scriptFunction.h +++ b/ets2panda/ir/base/scriptFunction.h @@ -327,6 +327,21 @@ public: return GetHistoryNodeAs()->preferredReturnType_; } + void SetAsyncPairMethod(ScriptFunction *asyncPairFunction) + { + this->GetOrCreateHistoryNodeAs()->asyncPairFunction_ = asyncPairFunction; + } + + [[nodiscard]] const ScriptFunction *AsyncPairMethod() const noexcept + { + return GetHistoryNodeAs()->asyncPairFunction_; + } + + [[nodiscard]] ScriptFunction *AsyncPairMethod() noexcept + { + return GetHistoryNodeAs()->asyncPairFunction_; + } + [[nodiscard]] ScriptFunction *Clone(ArenaAllocator *allocator, AstNode *parent) override; void TransformChildren(const NodeTransformer &cb, std::string_view transformationName) override; @@ -376,6 +391,7 @@ private: checker::Type *preferredReturnType_ {}; es2panda::Language lang_; ArenaVector returnStatements_; + ScriptFunction *asyncPairFunction_; }; } // namespace ark::es2panda::ir diff --git a/ets2panda/lexer/scripts/keywords.yaml b/ets2panda/lexer/scripts/keywords.yaml index de7a45f209674d90d71aeedeb1bffe0ec8010011..ace576723af03fa8a85c19d770a794ab81cd9f0d 100644 --- a/ets2panda/lexer/scripts/keywords.yaml +++ b/ets2panda/lexer/scripts/keywords.yaml @@ -68,9 +68,9 @@ keywords: - name: 'bigint' token: KEYW_BIGINT keyword_like: [ets, ts] - flags: [definable_type_name] + flags: [predefined_type] - - name: 'Bigint' + - name: 'BigInt' token: KEYW_BUILTIN_BIGINT keyword_like: [ets] flags: [predefined_type] @@ -79,7 +79,7 @@ keywords: token: KEYW_BOOLEAN keyword: [ets] keyword_like: [js, ts] - flags: [reserved_type_name, definable_type_name] + flags: [reserved_type_name, predefined_type] - name: 'Boolean' token: KEYW_BUILTIN_BOOLEAN @@ -94,7 +94,7 @@ keywords: - name: 'byte' token: KEYW_BYTE keyword: [ets] - flags: [reserved_type_name, definable_type_name] + flags: [reserved_type_name, predefined_type] - name: 'Byte' token: KEYW_BUILTIN_BYTE @@ -114,7 +114,7 @@ keywords: - name: 'char' token: KEYW_CHAR keyword: [ets] - flags: [reserved_type_name, definable_type_name] + flags: [reserved_type_name, predefined_type] - name: 'Char' token: KEYW_BUILTIN_CHAR @@ -168,7 +168,7 @@ keywords: - name: 'double' token: KEYW_DOUBLE keyword: [ets] - flags: [reserved_type_name, definable_type_name] + flags: [reserved_type_name, predefined_type] - name: 'Double' token: KEYW_BUILTIN_DOUBLE @@ -229,7 +229,7 @@ keywords: - name: 'float' token: KEYW_FLOAT keyword: [ets] - flags: [reserved_type_name, definable_type_name] + flags: [reserved_type_name, predefined_type] - name: 'Float' token: KEYW_BUILTIN_FLOAT @@ -312,14 +312,13 @@ keywords: - name: 'instanceof' token: KEYW_INSTANCEOF - keyword: [as, js, ts] - keyword_like: [ets] + keyword: [as, js, ets, ts] flags: [binary] - name: 'int' token: KEYW_INT keyword: [ets] - flags: [reserved_type_name, definable_type_name] + flags: [reserved_type_name, predefined_type] - name: 'Int' token: KEYW_BUILTIN_INT @@ -350,7 +349,7 @@ keywords: - name: 'long' token: KEYW_LONG keyword: [ets] - flags: [reserved_type_name, definable_type_name] + flags: [reserved_type_name, predefined_type] - name: 'Long' token: KEYW_BUILTIN_LONG @@ -474,7 +473,7 @@ keywords: - name: 'short' token: KEYW_SHORT keyword: [ets] - flags: [reserved_type_name, definable_type_name] + flags: [reserved_type_name, predefined_type] - name: 'Short' token: KEYW_BUILTIN_SHORT @@ -488,7 +487,7 @@ keywords: - name: 'string' token: KEYW_STRING keyword_like: [ets, ts] - flags: [definable_type_name] + flags: [predefined_type] - name: 'String' token: KEYW_BUILTIN_STRING @@ -498,7 +497,7 @@ keywords: - name: 'struct' token: KEYW_STRUCT keyword_like: [ets] - flags: [definable_type_name] + flags: [reserved_type_name] - name: 'super' token: KEYW_SUPER @@ -584,7 +583,7 @@ keywords: - name: 'void' token: KEYW_VOID keyword: [as, ets, js, ts] - flags: [unary, reserved_type_name, definable_type_name] + flags: [unary, reserved_type_name, predefined_type] - name: 'while' token: KEYW_WHILE diff --git a/ets2panda/linter/.gitignore b/ets2panda/linter/.gitignore index 26590e3ca2b7477484ae2e04eb3e74159801e0bc..a9bcf7139e0c7bd0544a9b4a29435292ad9b21e8 100644 --- a/ets2panda/linter/.gitignore +++ b/ets2panda/linter/.gitignore @@ -3,6 +3,7 @@ bundle bundle-2.1.0.tgz dist node_modules +migration-results-statistics.json package-lock.json panda-tslinter-1.0.0.tgz coverage/ diff --git a/ets2panda/linter/rule-config.json b/ets2panda/linter/rule-config.json index e6a8017193e9c249bc88e3f1ca9ccf98f4639d94..5ffcc059764a1c269ccdc0a2fe0c8c5885d9ebde 100644 --- a/ets2panda/linter/rule-config.json +++ b/ets2panda/linter/rule-config.json @@ -13,8 +13,10 @@ "arkts-no-func-bind", "arkts-no-function-return-this", "arkts-limited-stdlib", + "arkts-no-class-add-super-prop-with-readonly", "arkts-no-classes-as-obj", "arkts-obj-literal-props", + "arkts-obj-literal-key-type", "arkts-optional-methods", "arkts-numeric-semantic", "arkts-incompatible-function-types", @@ -43,6 +45,7 @@ "arkts-class-static-initialization", "arkts-invalid-identifier", "arkts-no-import-json-file", + "arkts-no-import-namespace-with-star-as-var", "arkts-no-extends-expression", "arkts-no-ts-like-function-call", "arkts-method-inherit-rule", @@ -51,6 +54,7 @@ "arkts-limited-stdlib-no-setCloneList", "arkts-limited-stdlib-no-setTransferList", "arkts-builtin-object-getOwnPropertyNames", + "arkts-no-class-omit-interface-optional-prop", "arkts-no-sparse-array", "arkts-no-enum-prop-as-type", "arkts-no-ts-like-smart-type", @@ -60,8 +64,10 @@ "arkts-numeric-bigint-compare", "arkts-only-support-decimal-bigint-literal", "arkts-unsupport-operator", - "arkts-no-duplicate-function-name", - "arkts-subclass-must-call-super-constructor-with-args" + "arkts-no-duplicate-function-name", + "arkts-require-func-arg-type", + "arkts-subclass-must-call-super-constructor-with-args", + "arkts-no-esobject-support" ], "interop": [ "arkts-interop-js2s-inherit-js-class", @@ -119,8 +125,12 @@ "arkui-no-localbuilder-decorator", "arkui-statestyles-block-need-arrow-func", "arkui-repeat-disable-default-virtualscroll", + "arkui-wrappedbuilder-require-arrow-func-generic", "arkui-wrapbuilder-require-arrow-func-generic", - "arkui-no-deprecated-api" + "arkui-no-deprecated-api", + "arkui-buildernode-generic-no-tuple", + "arkui-buildernode-update-no-literal", + "arkui-buildernode-no-nestingbuildersupported" ], "builtin": [ "arkts-builtin-thisArgs", diff --git a/ets2panda/linter/src/cli/CommandLineParser.ts b/ets2panda/linter/src/cli/CommandLineParser.ts index 04f6792b4dacab5d30bb281136a7f6358832371b..5da3f8192939beb3e21d5102cae3f331c915c06b 100644 --- a/ets2panda/linter/src/cli/CommandLineParser.ts +++ b/ets2panda/linter/src/cli/CommandLineParser.ts @@ -218,7 +218,7 @@ function getConfigureRulePath(options: OptionValues): string { } const stats = fs.statSync(path.normalize(options.ruleConfig)); if (!stats.isFile()) { - Logger.error(`The file at ${options.ruleConfigPath} path does not exist! + Logger.error(`The file at ${options.ruleConfigPath} path does not exist! And will use the default configure rule`); return getDefaultConfigurePath(); } diff --git a/ets2panda/linter/src/lib/CookBookMsg.ts b/ets2panda/linter/src/lib/CookBookMsg.ts index a99f72046c0ea148319576a5c3979911e5a9ed05..48ef059d6543234443a9e86fbefcc7dd1506e8df 100644 --- a/ets2panda/linter/src/lib/CookBookMsg.ts +++ b/ets2panda/linter/src/lib/CookBookMsg.ts @@ -102,8 +102,8 @@ cookBookTag[71] = 'The comma operator "," is supported only in "for" loops (arkt cookBookTag[72] = ''; cookBookTag[73] = ''; cookBookTag[74] = 'Destructuring variable declarations are not supported (arkts-no-destruct-decls)'; -cookBookTag[75] = ''; -cookBookTag[76] = ''; +cookBookTag[75] = 'Use string-literal keys with Record (arkts-obj-literal-key-type)'; +cookBookTag[76] = 'Type of parameter must be defined explicitly (arkts-require-func-arg-type)'; cookBookTag[77] = ''; cookBookTag[78] = ''; cookBookTag[79] = 'Type annotation in catch clause is not supported (arkts-no-types-in-catch)'; @@ -178,7 +178,8 @@ cookBookTag[144] = 'Usage of standard library is restricted (arkts-limited-stdli cookBookTag[145] = 'Strict type checking is enforced (arkts-strict-typing)'; cookBookTag[146] = 'Switching off type checks with in-place comments is not allowed (arkts-strict-typing-required)'; cookBookTag[147] = 'No dependencies on TypeScript code are currently allowed (arkts-no-ts-deps)'; -cookBookTag[148] = ''; +cookBookTag[148] = + 'Overriding with "readonly" field is not allowed when base field is not "readonly" (arkts-no-class-add-super-prop-with-readonly)'; cookBookTag[149] = 'Classes cannot be used as objects (arkts-no-classes-as-obj)'; cookBookTag[150] = '"import" statements after other statements are not allowed (arkts-no-misplaced-imports)'; cookBookTag[151] = 'Usage of \'ESValue\' type is restricted (arkts-limited-esobj)'; @@ -250,8 +251,7 @@ cookBookTag[206] = '"debugger" is not supported (arkts-no-debugger)'; cookBookTag[207] = 'Special arguments object inside functions are not supported (arkts-no-arguments-obj)'; cookBookTag[208] = 'Tagged templates are not supported (arkts-no-tagged-templates)'; cookBookTag[209] = 'The index expression must be of a numeric type (arkts-array-index-expr-type)'; -cookBookTag[210] = - 'The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)'; +cookBookTag[210] = 'The switch expression type must be of type number, string or enum (arkts-switch-expr)'; cookBookTag[211] = 'No two case constant expressions have identical values.(arkts-case-expr)'; cookBookTag[212] = 'The index expression must be zero or positive value.(arkts-array-index-negative)'; cookBookTag[213] = 'Class cannot have static codeblocks. (arkts-class-lazy-import)'; @@ -267,6 +267,7 @@ cookBookTag[237] = 'Array and tuple are different type(arkts-no-tuples-arrays)'; cookBookTag[238] = 'The static property has no initializer (arkts-class-static-initialization)'; cookBookTag[239] = 'This keyword cannot be used as identifiers (arkts-invalid-identifier)'; cookBookTag[245] = 'JSON files cannot be imported (arkts-no-import-json-file)'; +cookBookTag[249] = 'The namespace imported by import * as cannot be used as a variable (arkts-no-import-namespace-with-star-as-var)'; cookBookTag[251] = '"!!" for bidirectional data binding is not supported (arkui-no-!!-bidirectional-data-binding)'; cookBookTag[252] = '"$$" for bidirectional data binding is not supported (arkui-no-$$-bidirectional-data-binding)'; cookBookTag[253] = '"${variable}" for decorator binding is not supported (arkui-link-decorator-passing)'; @@ -296,6 +297,8 @@ cookBookTag[274] = 'The subclass constructor must call the parent class\'s parametered constructor (arkts-subclass-must-call-super-constructor-with-args)'; cookBookTag[275] = 'The Custom component with custom layout capability needs to add the "@CustomLayout" decorator (arkui-custom-layout-need-add-decorator)'; +cookBookTag[276] = + 'ArkTS 1.2 should implement all fields in the interface in the class (arkts-no-class-omit-interface-optional-prop)'; cookBookTag[281] = '"@Prop" decorator is not supported (arkui-no-prop-decorator)'; cookBookTag[282] = '"@StorageProp" decorator is not supported (arkui-no-storageprop-decorator)'; cookBookTag[283] = '"@LocalStorageProp" decorator is not supported (arkui-no-localstorageprop-decorator)'; @@ -377,7 +380,14 @@ cookBookTag[359] = '"@LocalBuilder" Decorator is not supported (arkui-no-localbu cookBookTag[360] = '"Repeat" natively supports virtual scrolling capability in ArkTS1.2, so the default virtual scrolling should be disabled (arkui-repeat-disable-default-virtualscroll)'; cookBookTag[361] = - 'When using "WrappedBuilder" and "wrapBuilder", generics are required and must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)'; + 'When using "WrappedBuilder", generics are required and must be declared as arrow function (arkui-wrappedbuilder-require-arrow-func-generic)'; +cookBookTag[362] = + 'When using "wrapBuilder", generics must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)'; +cookBookTag[363] = 'The generic of "BuilderNode" does not accept tuple (arkui-buildernode-generic-no-tuple)'; +cookBookTag[364] = + 'The "update" interface of "BuilderNode" does not accept an object literal. Please replace it with an instance of the class specified in the generic when creating a new "BuilderNode", and ensure that the instance has the same field values as the literal (arkui-buildernode-update-no-literal)'; +cookBookTag[365] = 'Property "nestingBuilderSupported" is not supported (arkui-buildernode-no-nestingbuildersupported)'; +cookBookTag[366] = 'ESObject type cannot be used (arkts-no-esobject-support)'; cookBookTag[370] = 'Sparse array is not supported in ArkTS1.2 (arkts-no-sparse-array)'; cookBookTag[371] = 'Enum elements cannot be types in ArkTS1.2 (arkts-no-enum-prop-as-type)'; cookBookTag[372] = 'Smart type differences (arkts-no-ts-like-smart-type)'; diff --git a/ets2panda/linter/src/lib/FaultAttrs.ts b/ets2panda/linter/src/lib/FaultAttrs.ts index 24902b1ec9be55ebb71d987607070802238dfc54..3b94b8be413c74d7dd7f9c7e8c50fb763bcd1471 100644 --- a/ets2panda/linter/src/lib/FaultAttrs.ts +++ b/ets2panda/linter/src/lib/FaultAttrs.ts @@ -64,6 +64,8 @@ faultsAttrs[FaultID.InOperator] = new FaultAttributes(66); faultsAttrs[FaultID.DestructuringAssignment] = new FaultAttributes(69); faultsAttrs[FaultID.CommaOperator] = new FaultAttributes(71); faultsAttrs[FaultID.DestructuringDeclaration] = new FaultAttributes(74); +faultsAttrs[FaultID.ObjectLiteralKeyType] = new FaultAttributes(75); +faultsAttrs[FaultID.ParameterType] = new FaultAttributes(76); faultsAttrs[FaultID.CatchWithUnsupportedType] = new FaultAttributes(79); faultsAttrs[FaultID.ForInStatement] = new FaultAttributes(80); faultsAttrs[FaultID.MappedType] = new FaultAttributes(83); @@ -106,6 +108,7 @@ faultsAttrs[FaultID.ImportAssertion] = new FaultAttributes(143); faultsAttrs[FaultID.LimitedStdLibApi] = new FaultAttributes(144); faultsAttrs[FaultID.StrictDiagnostic] = new FaultAttributes(145); faultsAttrs[FaultID.ErrorSuppression] = new FaultAttributes(146); +faultsAttrs[FaultID.NoClassSuperPropReadonly] = new FaultAttributes(148); faultsAttrs[FaultID.ClassAsObject] = new FaultAttributes(149, ProblemSeverity.WARNING); faultsAttrs[FaultID.ClassAsObjectError] = new FaultAttributes(149); faultsAttrs[FaultID.ImportAfterStatement] = new FaultAttributes(150); @@ -176,6 +179,7 @@ faultsAttrs[FaultID.NoTuplesArrays] = new FaultAttributes(237); faultsAttrs[FaultID.ClassstaticInitialization] = new FaultAttributes(238); faultsAttrs[FaultID.InvalidIdentifier] = new FaultAttributes(239); faultsAttrs[FaultID.NoImportJsonFile] = new FaultAttributes(245); +faultsAttrs[FaultID.NoImportNamespaceStarAsVar] = new FaultAttributes(249); faultsAttrs[FaultID.DoubleExclaBindingNotSupported] = new FaultAttributes(251); faultsAttrs[FaultID.DoubleDollarBindingNotSupported] = new FaultAttributes(252); faultsAttrs[FaultID.DollarBindingNotSupported] = new FaultAttributes(253); @@ -198,6 +202,7 @@ faultsAttrs[FaultID.InteropJsObjectExpandStaticInstance] = new FaultAttributes(2 faultsAttrs[FaultID.InteropJSFunctionInvoke] = new FaultAttributes(270); faultsAttrs[FaultID.MissingSuperCall] = new FaultAttributes(274); faultsAttrs[FaultID.CustomLayoutNeedAddDecorator] = new FaultAttributes(275); +faultsAttrs[FaultID.InterfaceFieldNotImplemented] = new FaultAttributes(276); faultsAttrs[FaultID.PropDecoratorNotSupported] = new FaultAttributes(281); faultsAttrs[FaultID.StoragePropDecoratorNotSupported] = new FaultAttributes(282); faultsAttrs[FaultID.LocalStoragePropDecoratorNotSupported] = new FaultAttributes(283); @@ -261,6 +266,11 @@ faultsAttrs[FaultID.BuiltinGetOwnPropertyNames] = new FaultAttributes(358); faultsAttrs[FaultID.LocalBuilderDecoratorNotSupported] = new FaultAttributes(359); faultsAttrs[FaultID.RepeatDisableVirtualScroll] = new FaultAttributes(360); faultsAttrs[FaultID.WrappedBuilderGenericNeedArrowFunc] = new FaultAttributes(361); +faultsAttrs[FaultID.WrapBuilderGenericNeedArrowFunc] = new FaultAttributes(362); +faultsAttrs[FaultID.BuilderNodeGenericNoTuple] = new FaultAttributes(363); +faultsAttrs[FaultID.BuilderNodeUpdateNoLiteral] = new FaultAttributes(364); +faultsAttrs[FaultID.BuilderNodeNoNestingBuilderSupported] = new FaultAttributes(365); +faultsAttrs[FaultID.NoESObjectSupport] = new FaultAttributes(366); faultsAttrs[FaultID.NosparseArray] = new FaultAttributes(370); faultsAttrs[FaultID.NoEnumPropAsType] = new FaultAttributes(371); faultsAttrs[FaultID.NoTsLikeSmartType] = new FaultAttributes(372); diff --git a/ets2panda/linter/src/lib/FaultDesc.ts b/ets2panda/linter/src/lib/FaultDesc.ts index 25fe395b073c1a37b74217053bc5f3b9b967664a..fa4599cdbea2bfec95c37e3da4845ec89977b527 100644 --- a/ets2panda/linter/src/lib/FaultDesc.ts +++ b/ets2panda/linter/src/lib/FaultDesc.ts @@ -38,8 +38,10 @@ faultDesc[FaultID.UnknownType] = '"unknown" type'; faultDesc[FaultID.ForInStatement] = '"for-In" statements'; faultDesc[FaultID.InOperator] = '"in" operations'; faultDesc[FaultID.FunctionExpression] = 'function expressions'; +faultDesc[FaultID.ParameterType] = 'parameter type'; faultDesc[FaultID.IntersectionType] = 'intersection types and type literals'; faultDesc[FaultID.ObjectTypeLiteral] = 'Object type literals'; +faultDesc[FaultID.ObjectLiteralKeyType] = 'Object literal key types'; faultDesc[FaultID.CommaOperator] = 'comma operator'; faultDesc[FaultID.LimitedReturnTypeInference] = 'Functions with limited return type inference'; faultDesc[FaultID.ClassExpression] = 'Class expressions'; @@ -59,6 +61,7 @@ faultDesc[FaultID.PrivateIdentifier] = 'Private identifiers (with "#" prefix)'; faultDesc[FaultID.LocalFunction] = 'Local function declarations'; faultDesc[FaultID.ConditionalType] = 'Conditional type'; faultDesc[FaultID.MappedType] = 'Mapped type'; +faultDesc[FaultID.NoClassSuperPropReadonly] = 'Readonly property overrides non-readonly parent property'; faultDesc[FaultID.NamespaceAsObject] = 'Namespaces used as objects'; faultDesc[FaultID.ClassAsObject] = faultDesc[FaultID.ClassAsObjectError] = 'Class used as object'; faultDesc[FaultID.NonDeclarationInNamespace] = 'Non-declaration statements in namespaces'; @@ -171,6 +174,7 @@ faultDesc[FaultID.AvoidUnionTypes] = 'Union types'; faultDesc[FaultID.TaggedTemplates] = 'Tagged template'; faultDesc[FaultID.InvalidIdentifier] = 'Invalid identifiers'; faultDesc[FaultID.NoImportJsonFile] = 'No import JSON file'; +faultDesc[FaultID.NoImportNamespaceStarAsVar] = 'No import namespace star as var'; faultDesc[FaultID.ExtendsExpression] = 'Extends Expression'; faultDesc[FaultID.NumericSemantics] = 'Numeric semantics'; faultDesc[FaultID.AnimatableExtendDecoratorTransform] = '"@AnimatableExtend" decorator'; @@ -251,6 +255,7 @@ faultDesc[FaultID.NumericBigintCompare] = 'No Comparison number between bigint'; faultDesc[FaultID.NondecimalBigint] = 'No non decimal'; faultDesc[FaultID.UnsupportOperator] = 'Unsupport operator'; faultDesc[FaultID.CustomLayoutNeedAddDecorator] = 'Custom layout need add decorator'; +faultDesc[FaultID.InterfaceFieldNotImplemented] = 'All fields must be implemented'; faultDesc[FaultID.PropDecoratorNotSupported] = '"@Prop" decorator is not supported'; faultDesc[FaultID.StoragePropDecoratorNotSupported] = '"@StorageProp" decorator is not supported'; faultDesc[FaultID.LocalStoragePropDecoratorNotSupported] = '"@LocalStorageProp" decorator is not supported'; @@ -261,4 +266,9 @@ faultDesc[FaultID.StateStylesBlockNeedArrowFunc] = 'StateStyles needs arrow func faultDesc[FaultID.PromiseVoidNeedResolveArg] = 'Promiseconstructor only supports using resolve (undefined)'; faultDesc[FaultID.RepeatDisableVirtualScroll] = '"Repeat" disable default "virtualScroll"'; faultDesc[FaultID.WrappedBuilderGenericNeedArrowFunc] = 'Generic of "WrappedBuilder" does not support parameter list'; +faultDesc[FaultID.WrapBuilderGenericNeedArrowFunc] = 'Generic of "wrappBuilder" does not support parameter list'; faultDesc[FaultID.NoDeprecatedApi] = 'ArkUI deprecated api check'; +faultDesc[FaultID.BuilderNodeGenericNoTuple] = 'Generic of "BuilderNode" does not support tuple"'; +faultDesc[FaultID.BuilderNodeUpdateNoLiteral] = '"update" interface of "BuilderNode" cannot pass an object literal'; +faultDesc[FaultID.BuilderNodeNoNestingBuilderSupported] = '"nestingBuilderSupported" is not supported'; +faultDesc[FaultID.NoESObjectSupport] = 'ESObject type cannot be used'; diff --git a/ets2panda/linter/src/lib/Problems.ts b/ets2panda/linter/src/lib/Problems.ts index ab24db5928960e58ed088f0fd98e4bb03b95d9b4..9cab1b911e55b1442b148a04fd7c85fbe5d765eb 100644 --- a/ets2panda/linter/src/lib/Problems.ts +++ b/ets2panda/linter/src/lib/Problems.ts @@ -37,6 +37,7 @@ export enum FaultID { FunctionExpression, IntersectionType, ObjectTypeLiteral, + ObjectLiteralKeyType, CommaOperator, LimitedReturnTypeInference, ClassExpression, @@ -57,6 +58,7 @@ export enum FaultID { ConditionalType, MappedType, NamespaceAsObject, + NoClassSuperPropReadonly, ClassAsObject, ClassAsObjectError, NonDeclarationInNamespace, @@ -78,6 +80,7 @@ export enum FaultID { ImportAssignment, GenericCallNoTypeArgs, ParameterProperties, + ParameterType, InstanceofUnsupported, ShorthandAmbientModuleDecl, WildcardsInModuleName, @@ -171,6 +174,7 @@ export enum FaultID { IncompationbleFunctionType, InvalidIdentifier, NoImportJsonFile, + NoImportNamespaceStarAsVar, ExtendsExpression, NumericSemantics, AnimatableExtendDecoratorTransform, @@ -251,6 +255,7 @@ export enum FaultID { NondecimalBigint, UnsupportOperator, CustomLayoutNeedAddDecorator, + InterfaceFieldNotImplemented, PropDecoratorNotSupported, StoragePropDecoratorNotSupported, LocalStoragePropDecoratorNotSupported, @@ -261,7 +266,12 @@ export enum FaultID { PromiseVoidNeedResolveArg, RepeatDisableVirtualScroll, WrappedBuilderGenericNeedArrowFunc, + WrapBuilderGenericNeedArrowFunc, + NoESObjectSupport, NoDeprecatedApi, + BuilderNodeGenericNoTuple, + BuilderNodeUpdateNoLiteral, + BuilderNodeNoNestingBuilderSupported, // this should always be last enum LAST_ID } diff --git a/ets2panda/linter/src/lib/TypeScriptLinter.ts b/ets2panda/linter/src/lib/TypeScriptLinter.ts index 9a0f958dd60d3038f55a62e81d0ad1584875003d..d5a7baabf562dd084f23a91232eee674941940a5 100644 --- a/ets2panda/linter/src/lib/TypeScriptLinter.ts +++ b/ets2panda/linter/src/lib/TypeScriptLinter.ts @@ -87,7 +87,12 @@ import { BUILTIN_GENERIC_CONSTRUCTORS } from './utils/consts/BuiltinGenericConst import { DEFAULT_DECORATOR_WHITE_LIST } from './utils/consts/DefaultDecoratorWhitelist'; import { INVALID_IDENTIFIER_KEYWORDS } from './utils/consts/InValidIndentifierKeywords'; import { WORKER_MODULES, WORKER_TEXT } from './utils/consts/WorkerAPI'; -import { COLLECTIONS_TEXT, COLLECTIONS_MODULES } from './utils/consts/CollectionsAPI'; +import { + COLLECTIONS_TEXT, + COLLECTIONS_MODULES, + BIT_VECTOR, + ARKTS_COLLECTIONS_MODULE +} from './utils/consts/CollectionsAPI'; import { ASON_TEXT, ASON_MODULES, ARKTS_UTILS_TEXT, JSON_TEXT, ASON_WHITE_SET } from './utils/consts/ArkTSUtilsAPI'; import { interanlFunction } from './utils/consts/InternalFunction'; import { ETS_PART, PATH_SEPARATOR } from './utils/consts/OhmUrl'; @@ -101,14 +106,17 @@ import { ENTRY_DECORATOR_NAME, PROVIDE_DECORATOR_NAME, PROVIDE_ALLOW_OVERRIDE_PROPERTY_NAME, - ARKUI_PACKAGE_NAME, + ARKUI_MODULE, MAKE_OBSERVED, - ARKUI_STATE_MANAGEMENT, + STATE_MANAGEMENT_MODULE, PropDecoratorName, PropFunctionName, StorageTypeName, customLayoutFunctionName, - VIRTUAL_SCROLL_IDENTIFIER + VIRTUAL_SCROLL_IDENTIFIER, + BUILDERNODE_D_TS, + BuilderNodeFunctionName, + NESTING_BUILDER_SUPPORTED } from './utils/consts/ArkuiConstants'; import { arkuiImportList } from './utils/consts/ArkuiImportList'; import type { IdentifierAndArguments, ForbidenAPICheckResult } from './utils/consts/InteropAPI'; @@ -170,6 +178,7 @@ import { COMMON_UNION_MEMBER_ACCESS_WHITELIST } from './utils/consts/ArktsWhiteA import type { BaseClassConstructorInfo, ConstructorParameter, ExtendedIdentifierInfo } from './utils/consts/Types'; import { ExtendedIdentifierType } from './utils/consts/Types'; import { STRING_ERROR_LITERAL } from './utils/consts/Literals'; +import { ES_OBJECT } from './utils/consts/ESObject'; export class TypeScriptLinter extends BaseTypeScriptLinter { supportedStdCallApiChecker: SupportedStdCallApiChecker; @@ -623,6 +632,10 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { } const objectLiteralType = this.tsTypeChecker.getContextualType(objectLiteralExpr); + if (objectLiteralType && this.options.arkts2) { + this.isObjectLiteralKeyTypeValid(objectLiteralExpr, objectLiteralType); + } + if (objectLiteralType && this.tsUtils.typeContainsSendableClassOrInterface(objectLiteralType)) { this.incrementCounters(node, FaultID.SendableObjectInitialization); } else if ( @@ -844,7 +857,9 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { }); this.handleDeclarationDestructuring(tsParam); this.handleDeclarationInferredType(tsParam); - this.handleInvalidIdentifier(tsParam); + if (!ts.isArrowFunction(node.parent)) { + this.handleInvalidIdentifier(tsParam); + } this.handleSdkGlobalApi(tsParam); const typeNode = tsParam.type; if (this.options.arkts2 && typeNode && TsUtils.typeContainsVoid(typeNode)) { @@ -1322,9 +1337,7 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { private handlePropertyAccessExpression(node: ts.Node): void { const propertyAccessNode = node as ts.PropertyAccessExpression; - this.handleMakeObserved(propertyAccessNode); - this.handleStateStyles(propertyAccessNode); - this.handleDoubleDollar(propertyAccessNode); + this.handlePropertyAccessExpressionForUI(propertyAccessNode); this.handleQuotedHyphenPropsDeprecated(propertyAccessNode); this.handleSdkTypeQuery(propertyAccessNode); this.checkUnionTypes(propertyAccessNode); @@ -1362,6 +1375,13 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { this.fixJsImportPropertyAccessExpression(node); } + private handlePropertyAccessExpressionForUI(node: ts.PropertyAccessExpression): void { + this.handleMakeObserved(node); + this.handleStateStyles(node); + this.handleDoubleDollar(node); + this.handlePropertyAccessExprForBuilderNode(node); + } + private checkSymbolAPI(node: ts.PropertyAccessExpression, exprSym: ts.Symbol | undefined): void { if ( !this.options.arkts2 && @@ -2092,6 +2112,9 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { if (tsFunctionDeclaration.body) { this.reportThisKeywordsInScope(tsFunctionDeclaration.body); } + if (this.options.arkts2) { + this.handleParamType(tsFunctionDeclaration); + } const funcDeclParent = tsFunctionDeclaration.parent; if (!ts.isSourceFile(funcDeclParent) && !ts.isModuleBlock(funcDeclParent)) { const autofix = this.autofixer?.fixNestedFunction(tsFunctionDeclaration); @@ -2101,21 +2124,7 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { this.incrementCounters(node, FaultID.GeneratorFunction); } if (TsUtils.hasSendableDecoratorFunctionOverload(tsFunctionDeclaration)) { - if (!this.isSendableDecoratorValid(tsFunctionDeclaration)) { - return; - } - TsUtils.getNonSendableDecorators(tsFunctionDeclaration)?.forEach((decorator) => { - this.incrementCounters(decorator, FaultID.SendableFunctionDecorator); - }); - if (!TsUtils.hasSendableDecorator(tsFunctionDeclaration)) { - const autofix = this.autofixer?.addSendableDecorator(tsFunctionDeclaration); - this.incrementCounters(tsFunctionDeclaration, FaultID.SendableFunctionOverloadDecorator, autofix); - } - this.scanCapturedVarsInSendableScope( - tsFunctionDeclaration, - tsFunctionDeclaration, - FaultID.SendableFunctionImportedVariables - ); + this.processSendableDecoratorFunctionOverload(tsFunctionDeclaration); } this.handleTSOverload(tsFunctionDeclaration); this.checkNumericSemanticsForFunction(tsFunctionDeclaration); @@ -2124,6 +2133,33 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { this.handleLimitedVoidFunction(tsFunctionDeclaration); } + private processSendableDecoratorFunctionOverload(tsFunctionDeclaration: ts.FunctionDeclaration): void { + if (!this.isSendableDecoratorValid(tsFunctionDeclaration)) { + return; + } + TsUtils.getNonSendableDecorators(tsFunctionDeclaration)?.forEach((decorator) => { + this.incrementCounters(decorator, FaultID.SendableFunctionDecorator); + }); + if (!TsUtils.hasSendableDecorator(tsFunctionDeclaration)) { + const autofix = this.autofixer?.addSendableDecorator(tsFunctionDeclaration); + this.incrementCounters(tsFunctionDeclaration, FaultID.SendableFunctionOverloadDecorator, autofix); + } + this.scanCapturedVarsInSendableScope( + tsFunctionDeclaration, + tsFunctionDeclaration, + FaultID.SendableFunctionImportedVariables + ); + } + + private handleParamType(decl: ts.FunctionLikeDeclaration): void { + for (const param of decl.parameters) { + if (param.type) { + continue; + } + this.incrementCounters(param, FaultID.ParameterType); + } + } + private handleMissingReturnType( funcLikeDecl: ts.FunctionLikeDeclaration | ts.MethodSignature ): [boolean, ts.TypeNode | undefined] { @@ -2696,6 +2732,19 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { } } + private isObjectLiteralKeyTypeValid(objectLiteral: ts.ObjectLiteralExpression, contextualType: ts.Type): void { + if (!this.tsUtils.isStdRecordType(contextualType)) { + return; + } + objectLiteral.properties.forEach((prop: ts.ObjectLiteralElementLike): void => { + if (ts.isPropertyAssignment(prop)) { + if (!this.tsUtils.isValidRecordObjectLiteralKey(prop.name)) { + this.incrementCounters(prop, FaultID.ObjectLiteralKeyType); + } + } + }); + } + private handleVariableDeclaration(node: ts.Node): void { const tsVarDecl = node as ts.VariableDeclaration; this.handleVariableDeclarationForProp(tsVarDecl); @@ -3700,6 +3749,9 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { } } } + if (this.options.arkts2) { + this.handleParamType(tsMethodDecl); + } if (tsMethodDecl.body && isStatic) { this.reportThisKeywordsInScope(tsMethodDecl.body); } @@ -3784,28 +3836,34 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { }) || false; const classType: ts.Type | undefined = this.getClassType(classDecl, isStatic); const allBaseTypes = classType && this.getAllBaseTypes(classType, classDecl, isStatic); + if (!allBaseTypes || allBaseTypes.length === 0) { return; } const methodName = node.name.text; if (allBaseTypes && allBaseTypes.length > 0) { - this.checkMethodType(allBaseTypes, methodName, node); + this.checkMethodType(allBaseTypes, methodName, node, isStatic); } } - private checkMethodType(allBaseTypes: ts.Type[], methodName: string, node: ts.MethodDeclaration): void { + private checkMethodType(allBaseTypes: ts.Type[], methodName: string, node: ts.MethodDeclaration, isStatic: boolean = false): void { for (const baseType of allBaseTypes) { - const baseMethod = baseType.getProperty(methodName); + let baseMethod: ts.Symbol | undefined; + const symbol = baseType.getSymbol(); + if (isStatic && symbol) { + const constructorType = this.tsTypeChecker.getTypeOfSymbolAtLocation(symbol, node); + baseMethod = constructorType.getProperty(methodName) || + symbol.members?.get(ts.escapeLeadingUnderscores(methodName)); + } else { + baseMethod = baseType.getProperty(methodName); + } if (!baseMethod) { continue; } - - const baseMethodDecl = baseMethod.declarations?.find((d) => { - return ( - (ts.isMethodDeclaration(d) || ts.isMethodSignature(d)) && - this.tsTypeChecker.getTypeAtLocation(d.parent) === baseType - ); - }) as ts.MethodDeclaration | ts.MethodSignature; + const baseMethodDecl = baseMethod.declarations?.find(d => + (ts.isMethodDeclaration(d) || ts.isMethodSignature(d)) && + this.isSameDeclarationType(d.parent, baseType, isStatic) + ) as ts.MethodDeclaration | ts.MethodSignature; if (!baseMethodDecl) { continue; @@ -3819,6 +3877,14 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { } } + private isSameDeclarationType(decl: ts.Node, type: ts.Type, isStatic: boolean): boolean { + if (isStatic && ts.isClassDeclaration(decl)) { + const staticType = this.tsTypeChecker.getTypeAtLocation(decl); + return this.isSameType(staticType, type); + } + return this.tsTypeChecker.getTypeAtLocation(decl) === type; + } + private checkIncompatibleFunctionTypes(method: ts.MethodDeclaration): void { const declaredReturnType = this.getActualReturnType(method); if (!declaredReturnType) { @@ -3926,21 +3992,7 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { private getAllBaseTypes(type: ts.Type, classDecl: ts.ClassDeclaration, isStatic?: boolean): ts.Type[] | undefined { if (isStatic) { - const baseTypes: ts.Type[] = []; - if (!classDecl.heritageClauses) { - return baseTypes; - } - for (const clause of classDecl.heritageClauses) { - if (clause.token !== ts.SyntaxKind.ExtendsKeyword) { - continue; - } - for (const typeNode of clause.types) { - const baseType = this.tsTypeChecker.getTypeAtLocation(typeNode); - baseTypes.push(baseType); - } - } - - return baseTypes; + return this.getStaticAllBaseTypes(classDecl); } const baseClasses = type.getBaseTypes() || []; @@ -3952,6 +4004,7 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { if (!classDecl.heritageClauses) { return resolvedBaseClasses; } + const interfaces: ts.Type[] = []; for (const clause of classDecl.heritageClauses) { if (clause.token !== ts.SyntaxKind.ImplementsKeyword) { @@ -3970,13 +4023,40 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { }); } } - return [...resolvedBaseClasses, ...interfaces]; + return [...resolvedBaseClasses, ...interfaces]; + } + + private getStaticAllBaseTypes(classDecl: ts.ClassDeclaration): ts.Type[] | undefined { + const baseTypes: ts.Type[] = []; + if (!classDecl.heritageClauses) { + return baseTypes; + } + + for (const clause of classDecl.heritageClauses) { + if (clause.token !== ts.SyntaxKind.ExtendsKeyword) { + continue; + } + + for (const typeNode of clause.types) { + const baseType = this.tsTypeChecker.getTypeAtLocation(typeNode); + baseTypes.push(baseType); + + const baseDecl = baseType.getSymbol()?.declarations?.[0]; + if (baseDecl && ts.isClassDeclaration(baseDecl)) { + const staticBaseType = this.tsTypeChecker.getTypeAtLocation(baseDecl); + const staticBaseTypes = this.getAllBaseTypes(staticBaseType, baseDecl, true) || []; + baseTypes.push(...staticBaseTypes); + } + } + } + return baseTypes; } /** * Checks method parameter compatibility * Derived parameter types must be same or wider than base (contravariance principle) */ + private checkMethodParameters( derivedMethod: ts.MethodDeclaration, baseMethod: ts.MethodDeclaration | ts.MethodSignature @@ -3984,6 +4064,16 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { const derivedParams = derivedMethod.parameters; const baseParams = baseMethod.parameters; + for (let i = 0; i < Math.min(derivedParams.length, baseParams.length); i++) { + const baseParam = baseParams[i]; + const derivedParam = derivedParams[i]; + + if (!baseParam.questionToken && derivedParam.questionToken) { + this.incrementCounters(derivedParam, FaultID.MethodInheritRule); + return; + } + } + if (derivedParams.length !== baseParams.length) { this.incrementCounters(derivedMethod.name, FaultID.MethodInheritRule); return; @@ -3995,6 +4085,12 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { const baseParamType = this.tsTypeChecker.getTypeAtLocation(baseParams[i]); const derivedParamType = this.tsTypeChecker.getTypeAtLocation(derivedParams[i]); + if (baseParamType.flags & ts.TypeFlags.TypeParameter) { + if (!(derivedParamType.flags & ts.TypeFlags.TypeParameter)) { + continue; + } + } + if (!this.isTypeSameOrWider(baseParamType, derivedParamType)) { this.incrementCounters(derivedParams[i], FaultID.MethodInheritRule); } @@ -4009,6 +4105,9 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { derivedMethod: ts.MethodDeclaration, baseMethod: ts.MethodDeclaration | ts.MethodSignature ): void { + if(this.shouldSkipTypeParameterCheck(derivedMethod, baseMethod)) { + return; + } const baseMethodType = this.getActualReturnType(baseMethod); const derivedMethodType = this.getActualReturnType(derivedMethod); const baseMethodTypeIsVoid = TypeScriptLinter.checkMethodTypeIsVoidOrAny(baseMethodType, true); @@ -4051,6 +4150,21 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { } } + private shouldSkipTypeParameterCheck( + derivedMethod: ts.MethodDeclaration, + baseMethod: ts.MethodDeclaration | ts.MethodSignature + ): boolean { + const baseMethodType = this.getActualReturnType(baseMethod); + const derivedMethodType = this.getActualReturnType(derivedMethod); + + if (baseMethodType && (baseMethodType.flags & ts.TypeFlags.TypeParameter)) { + if (derivedMethodType && !(derivedMethodType.flags & ts.TypeFlags.TypeParameter)) { + return true; + } + } + return false; + } + private static checkMethodTypeIsVoidOrAny( methodType: ts.Type | undefined, isVoidOrAny: boolean, @@ -4085,6 +4199,10 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { } private isTypeSameOrWider(baseType: ts.Type, derivedType: ts.Type): boolean { + if (this.tsTypeChecker.typeToString(baseType) === this.tsTypeChecker.typeToString(derivedType)) { + return true; + } + if (derivedType.flags & ts.TypeFlags.Any) { return true; } @@ -4358,6 +4476,7 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { if (isNewArkTS && this.tsTypeChecker.isArgumentsSymbol(tsIdentSym)) { this.incrementCounters(node, FaultID.ArgumentsObject); } + this.checkInvalidNamespaceUsage(node); } private handlePropertyDescriptorInScenarios(node: ts.Node): void { @@ -4432,6 +4551,30 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { } } + private checkInvalidNamespaceUsage(node: ts.Identifier): void { + if (!this.options.arkts2) { + return; + } + if (ts.isNamespaceImport(node.parent)) { + return; + } + const symbol = this.tsTypeChecker.getSymbolAtLocation(node); + if (!symbol) { + return; + } + const isNamespace = symbol.declarations?.some((decl) => { + return ts.isNamespaceImport(decl); + }); + if (!isNamespace) { + return; + } + const parent = node.parent; + const isValidUsage = ts.isPropertyAccessExpression(parent) && parent.expression === node; + if (!isValidUsage) { + this.incrementCounters(node, FaultID.NoImportNamespaceStarAsVar); + } + } + private handleGlobalThisCase(node: ts.Identifier, isArkTs2: boolean | undefined): void { let faultId = FaultID.GlobalThis; let targetNode: ts.Node = node; @@ -5470,7 +5613,11 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { const providedTypeArgs = callLikeExpr.typeArguments; const startTypeArg = providedTypeArgs?.length ?? 0; let shouldReportError = startTypeArg !== resolvedTypeArgs.length; - if (this.options.arkts2 && callLikeExpr.kind === ts.SyntaxKind.NewExpression) { + const shouldCheck = this.shouldCheckGenericCallExpression(callLikeExpr as ts.CallExpression); + if ( + this.options.arkts2 && + (ts.isNewExpression(callLikeExpr) || ts.isCallExpression(callLikeExpr) && shouldCheck) + ) { shouldReportError = this.shouldReportGenericTypeArgsError( callLikeExpr, resolvedTypeArgs, @@ -5487,6 +5634,69 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { } } + private shouldCheckGenericCallExpression(callExpr: ts.CallExpression): boolean { + const signature = this.tsTypeChecker.getResolvedSignature(callExpr); + if (!signature?.declaration) { + return false; + } + const typeParamsSafeToInfer = this.areTypeParametersReturnTypeOnly(signature.declaration); + if (!typeParamsSafeToInfer) { + return false; + } + return TypeScriptLinter.isInStrictTypeContext(callExpr); + } + + private areTypeParametersReturnTypeOnly(decl: ts.SignatureDeclaration | ts.JSDocSignature): boolean { + if (!decl.typeParameters?.length) { + return false; + } + + const typeParamNames = new Set( + decl.typeParameters.map((tp) => { + return tp.name.getText(); + }) + ); + let affectsParams = false; + + decl.parameters.forEach((param) => { + if (param.type && this.containsTypeParameters(param.type, typeParamNames)) { + affectsParams = true; + } + }); + + return !affectsParams; + } + + private containsTypeParameters(node: ts.Node, typeParamNames: Set): boolean { + let found = false; + ts.forEachChild(node, (child) => { + if (ts.isIdentifier(child) && typeParamNames.has(child.text)) { + found = true; + } + if (!found) { + found = this.containsTypeParameters(child, typeParamNames); + } + }); + return found; + } + + private static isInStrictTypeContext(callExpr: ts.CallExpression): boolean { + const parent = callExpr.parent; + + if ((ts.isVariableDeclaration(parent) || ts.isPropertyDeclaration(parent)) && parent.type) { + return true; + } + + if (ts.isAsExpression(parent) || ts.isTypeAssertionExpression(parent)) { + return true; + } + + if (ts.isCallExpression(parent.parent) && parent.parent.typeArguments) { + return true; + } + return false; + } + private checkForUnknownTypeInNonArkTS2( callLikeExpr: ts.CallExpression | ts.NewExpression | ts.ExpressionWithTypeArguments, resolvedTypeArgs: ts.NodeArray, @@ -5503,7 +5713,10 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { * in ArkTS and already have separate check for it. */ if (typeNode.kind === ts.SyntaxKind.UnknownKeyword) { - this.incrementCounters(callLikeExpr, FaultID.GenericCallNoTypeArgs); + const autofix = ts.isCallExpression(callLikeExpr) ? + this.autofixer?.fixGenericCallNoTypeArgsForUnknown(callLikeExpr) : + undefined; + this.incrementCounters(callLikeExpr, FaultID.GenericCallNoTypeArgs, autofix); break; } } @@ -5878,6 +6091,8 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { this.handleSdkGlobalApi(tsNewExpr); this.checkCreatingPrimitiveTypes(tsNewExpr); this.handleNoDeprecatedApi(tsNewExpr); + this.handleNodeForBuilderNode(tsNewExpr); + if (this.options.advancedClassChecks || this.options.arkts2) { const calleeExpr = tsNewExpr.expression; const calleeType = this.tsTypeChecker.getTypeAtLocation(calleeExpr); @@ -6251,12 +6466,15 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { private handleTypeReference(node: ts.Node): void { const typeRef = node as ts.TypeReferenceNode; + this.handleESObjectUsage(typeRef); this.handleBuiltinCtorCallSignature(typeRef); this.handleSharedArrayBuffer(typeRef); this.handleSdkGlobalApi(typeRef); this.handleSdkConstructorIface(typeRef); this.handleNodeForWrappedBuilder(typeRef); this.handleNoDeprecatedApi(typeRef); + this.handleNodeForBuilderNode(typeRef); + const isESValue = TsUtils.isEsValueType(typeRef); const isPossiblyValidContext = TsUtils.isEsValuePossiblyAllowed(typeRef); if (isESValue && !isPossiblyValidContext) { @@ -7241,7 +7459,7 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { private validateSwitchExpression(switchStatement: ts.SwitchStatement): void { const expr = switchStatement.expression; const nodeType = this.tsTypeChecker.getTypeAtLocation(expr); - const { isLiteralInitialized, isFloatLiteral, hasExplicitTypeAnnotation } = this.getDeclarationInfo(expr); + const { isLiteralInitialized, hasExplicitTypeAnnotation } = this.getDeclarationInfo(expr); const isUnionType = (nodeType.flags & ts.TypeFlags.Union) !== 0; @@ -7250,8 +7468,9 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { return Boolean( t.flags & ts.TypeFlags.StringLike || typeText === 'String' || + typeText === 'number' || t.flags & ts.TypeFlags.NumberLike && (/^\d+$/).test(typeText) || - isLiteralInitialized && !hasExplicitTypeAnnotation && !isFloatLiteral || + isLiteralInitialized && !hasExplicitTypeAnnotation || t.flags & ts.TypeFlags.EnumLike ); }; @@ -7270,14 +7489,13 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { private getDeclarationInfo(expression: ts.Expression): { isLiteralInitialized: boolean; - isFloatLiteral: boolean; hasExplicitTypeAnnotation: boolean; } { const symbol = this.tsTypeChecker.getSymbolAtLocation(expression); const declaration = symbol?.valueDeclaration; if (!declaration || !ts.isVariableDeclaration(declaration)) { - return { isLiteralInitialized: false, isFloatLiteral: false, hasExplicitTypeAnnotation: false }; + return { isLiteralInitialized: false, hasExplicitTypeAnnotation: false }; } const hasExplicitTypeAnnotation = !!declaration.type; @@ -7285,30 +7503,20 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { return { isLiteralInitialized: initializerInfo.isLiteralInitialized, - isFloatLiteral: initializerInfo.isFloatLiteral, hasExplicitTypeAnnotation }; } private static getInitializerInfo(initializer?: ts.Expression): { isLiteralInitialized: boolean; - isFloatLiteral: boolean; } { if (!initializer) { - return { isLiteralInitialized: false, isFloatLiteral: false }; + return { isLiteralInitialized: false }; } const isLiteralInitialized = ts.isNumericLiteral(initializer) || ts.isStringLiteral(initializer); - let isFloatLiteral = false; - if (ts.isNumericLiteral(initializer)) { - const literalText = initializer.getText(); - if (!(/^0[xX]/).test(literalText)) { - isFloatLiteral = (/\.|e[-+]|\dE[-+]/i).test(literalText); - } - } - - return { isLiteralInitialized, isFloatLiteral }; + return { isLiteralInitialized }; } private findDuplicateCases(switchStatement: ts.SwitchStatement): ts.CaseClause[] { @@ -7731,13 +7939,12 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { this.incrementCounters(firstExpr, FaultID.DoubleExclaBindingNotSupported, autofix); } - private handleDoubleDollar(node: ts.Node): void { + private handleDoubleDollar(node: ts.PropertyAccessExpression): void { if (!this.options.arkts2) { return; } if ( - ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.expression) && node.expression.escapedText === DOUBLE_DOLLAR_IDENTIFIER + THIS_IDENTIFIER ) { @@ -7954,10 +8161,154 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { this.handleNoDeprecatedApi(expr); } }); - + this.handleInterfaceFieldImplementation(node); this.handleMissingSuperCallInExtendedClass(node); this.handleFieldTypesMatchingBetweenDerivedAndBaseClass(node); + this.checkReadonlyOverridesFromBase(node); + } + } + + private checkReadonlyOverridesFromBase(node: ts.HeritageClause): void { + if (!this.options.arkts2) { + return; + } + if (node.token !== ts.SyntaxKind.ExtendsKeyword) { + return; + } + const childClass = node.parent; + const baseTypeNode = node.types[0]; + if (!ts.isClassDeclaration(childClass) || !baseTypeNode) { + return; + } + const baseType = this.tsTypeChecker.getTypeAtLocation(baseTypeNode); + if (!baseType) { + return; + } + const baseProps = baseType.getProperties(); + this.validateReadonlyOverrides(childClass, baseProps); + } + + private validateReadonlyOverrides(childClass: ts.ClassDeclaration, baseProps: ts.Symbol[]): void { + for (const member of childClass.members) { + if (!ts.isPropertyDeclaration(member) || !member.name) { + continue; + } + const isDerivedReadonly = TsUtils.hasModifier(member.modifiers, ts.SyntaxKind.ReadonlyKeyword); + if (!isDerivedReadonly) { + continue; + } + const memberName = ts.isIdentifier(member.name) ? member.name.text : undefined; + if (!memberName) { + continue; + } + const baseProp = baseProps.find((p) => { + return p.name === memberName; + }); + if (!baseProp) { + continue; + } + + const baseDecl = baseProp.valueDeclaration; + if (!baseDecl || !ts.isPropertyDeclaration(baseDecl)) { + continue; + } + const isBaseReadonly = TsUtils.hasModifier(baseDecl.modifiers, ts.SyntaxKind.ReadonlyKeyword); + if (!isBaseReadonly) { + this.incrementCounters(member, FaultID.NoClassSuperPropReadonly); + } + } + } + + /** + * Ensures classes fully implement all properties from their interfaces. + */ + private handleInterfaceFieldImplementation(clause: ts.HeritageClause): void { + // Only process implements clauses + if (clause.token !== ts.SyntaxKind.ImplementsKeyword) { + return; + } + const classDecl = clause.parent as ts.ClassDeclaration; + if (!ts.isClassDeclaration(classDecl) || !classDecl.name) { + return; + } + + for (const interfaceType of clause.types) { + const expr = interfaceType.expression; + if (!ts.isIdentifier(expr)) { + continue; + } + const sym = this.tsUtils.trueSymbolAtLocation(expr); + const interfaceDecl = sym?.declarations?.find(ts.isInterfaceDeclaration); + if (!interfaceDecl) { + continue; + } + // Gather all inherited interfaces + const allInterfaces = this.getAllInheritedInterfaces(interfaceDecl); + // If the class fails to implement any member, report once and exit + if (!this.classImplementsAllMembers(classDecl, allInterfaces)) { + this.incrementCounters(classDecl.name, FaultID.InterfaceFieldNotImplemented); + return; + } + } + } + + /** + * Recursively collects an interface and all its ancestor interfaces. + */ + private getAllInheritedInterfaces(root: ts.InterfaceDeclaration): ts.InterfaceDeclaration[] { + const collected: ts.InterfaceDeclaration[] = []; + const stack: ts.InterfaceDeclaration[] = [root]; + while (stack.length) { + const current = stack.pop()!; + collected.push(current); + if (!current.heritageClauses) { + continue; + } + for (const clause of current.heritageClauses) { + if (clause.token !== ts.SyntaxKind.ExtendsKeyword) { + continue; + } + for (const typeNode of clause.types) { + const expr = typeNode.expression; + if (!ts.isIdentifier(expr)) { + continue; + } + const sym = this.tsUtils.trueSymbolAtLocation(expr); + const decl = sym?.declarations?.find(ts.isInterfaceDeclaration); + if (decl) { + stack.push(decl); + } + } + } } + return collected; + } + + /** + * Returns true if the class declaration declares every property or method + * signature from the provided list of interface declarations. + */ + private classImplementsAllMembers(classDecl: ts.ClassDeclaration, interfaces: ts.InterfaceDeclaration[]): boolean { + void this; + + for (const intf of interfaces) { + for (const member of intf.members) { + if ((ts.isPropertySignature(member) || ts.isMethodSignature(member)) && ts.isIdentifier(member.name)) { + const name = member.name.text; + const found = classDecl.members.some((m) => { + return ( + (ts.isPropertyDeclaration(m) || ts.isMethodDeclaration(m)) && + ts.isIdentifier(m.name) && + m.name.text === name + ); + }); + if (!found) { + return false; + } + } + } + } + return true; } private isVariableReference(identifier: ts.Identifier): boolean { @@ -8052,6 +8403,29 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { } } + private checkCollectionsForPropAccess(node: ts.Node, ident: ts.Node): void { + if (!ts.isIdentifier(ident)) { + return; + } + const importBitVectorAutofix = this.checkBitVector(ident); + const replace = this.autofixer?.replaceNode(node, ident.getText()); + let autofix: Autofix[] | undefined = []; + + if (replace) { + autofix = replace; + } + + if (importBitVectorAutofix) { + autofix.push(importBitVectorAutofix); + } + + if (autofix.length === 0) { + autofix = undefined; + } + + this.incrementCounters(node, FaultID.NoNeedStdLibSendableContainer, autofix); + } + private checkCollectionsSymbol(node: ts.Node): void { if (!this.options.arkts2) { return; @@ -8062,14 +8436,17 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { if (!parent) { return; } + if (ts.isPropertyAccessExpression(parent)) { - const autofix = this.autofixer?.replaceNode(parent, parent.name.text); - this.incrementCounters(node, FaultID.NoNeedStdLibSendableContainer, autofix); + this.checkCollectionsForPropAccess(parent, parent.name); + + return; } if (ts.isQualifiedName(parent)) { - const autofix = this.autofixer?.replaceNode(parent, parent.right.text); - this.incrementCounters(node, FaultID.NoNeedStdLibSendableContainer, autofix); + this.checkCollectionsForPropAccess(parent, parent.right); + + return; } if (ts.isImportSpecifier(parent) && ts.isIdentifier(node)) { @@ -8142,6 +8519,64 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { } } + private checkBitVector(ident: ts.Identifier): Autofix | undefined { + if (!this.isBitVector(ident)) { + return undefined; + } + + let lastImportDeclaration: ts.Node | undefined; + let bitVectorImported: boolean = false; + for (const node of this.sourceFile.statements) { + if (!ts.isImportDeclaration(node)) { + continue; + } + lastImportDeclaration = node; + + if (this.checkImportDeclarationForBitVector(node)) { + bitVectorImported = true; + } + } + + if (bitVectorImported) { + return undefined; + } + + return this.autofixer?.importBitVector(ident, lastImportDeclaration); + } + + private isBitVector(ident: ts.Identifier): boolean { + void this; + + return ident.text === BIT_VECTOR; + } + + private checkImportDeclarationForBitVector(node: ts.ImportDeclaration): boolean { + const importSpecifier = node.moduleSpecifier; + if (!ts.isStringLiteral(importSpecifier)) { + return false; + } + const importSpecifierText = importSpecifier.text; + + const importClause = node.importClause; + if (!importClause) { + return false; + } + + const namedBindings = importClause.namedBindings; + if (!namedBindings || !ts.isNamedImports(namedBindings)) { + return false; + } + + let bitVectorImported = false; + for (const specifier of namedBindings.elements) { + if (this.isBitVector(specifier.name) && importSpecifierText === ARKTS_COLLECTIONS_MODULE) { + bitVectorImported = true; + } + } + + return bitVectorImported; + } + interfacesNeedToAlarm: ts.Identifier[] = []; interfacesNeedToImport: Set = new Set(); interfacesAlreadyImported: Set = new Set(); @@ -8164,16 +8599,39 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { } private isInterfaceImportNeeded(identifier: ts.Identifier): boolean { + const name = identifier.getText(); return ( - arkuiImportList.has(identifier.getText()) && - !skipImportDecoratorName.has(identifier.getText()) && - !this.interfacesAlreadyImported.has(identifier.getText()) && + arkuiImportList.has(name) && + !skipImportDecoratorName.has(name) && + !this.interfacesAlreadyImported.has(name) && !this.isParentAlreadyImported(identifier.parent) && !this.isDeclarationInSameFile(identifier) && + !this.isDeprecatedInterface(identifier) && !TypeScriptLinter.isWrappedByExtendDecorator(identifier) ); } + private isDeprecatedInterface(node: ts.Identifier): boolean { + const symbol = this.tsUtils.trueSymbolAtLocation(node); + const decl = TsUtils.getDeclaration(symbol); + if (!decl) { + return false; + } + + const parName = this.tsUtils.getParentSymbolName(symbol); + const parameters = ts.isFunctionLike(decl) ? decl.parameters : undefined; + const returnType = ts.isFunctionLike(decl) ? decl.type?.getText() : undefined; + const fileName = path.basename(decl.getSourceFile().fileName) + ''; + + const deprecatedApiCheckMap = TypeScriptLinter.updateDeprecatedApiCheckMap( + parName === undefined ? DEPRECATE_UNNAMED : parName, + parameters, + returnType, + fileName + ); + return this.isMatchedDeprecatedApi(node.getText(), deprecatedApiCheckMap); + } + private static isWrappedByExtendDecorator(node: ts.Identifier): boolean { const wrappedSkipComponents = new Set([CustomInterfaceName.AnimatableExtend, CustomInterfaceName.Extend]); if (ts.isCallExpression(node.parent)) { @@ -9974,21 +10432,9 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { for (const [idx, param] of ctorParams.entries()) { const argument = superCall.arguments[idx]; - if (!param.isOptional && !argument) { - matches[idx] = false; + if (!this.checkParameter(param, argument, matches, idx)) { continue outer; } - - if (!argument && param.isOptional) { - matches[idx] = true; - continue; - } - if (argument !== undefined) { - matches[idx] = this.checkIfArgumentAndParamMatches(param, argument); - if (!matches[idx]) { - continue outer; - } - } } if ( @@ -10004,6 +10450,51 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { this.incrementCounters(classDecl, FaultID.MissingSuperCall); } + private checkParameter( + param: ConstructorParameter, + argument: ts.Expression | undefined, + matches: boolean[], + idx: number + ): boolean { + if (!param.isOptional && !argument) { + matches[idx] = false; + return false; + } + + if (!argument && param.isOptional) { + matches[idx] = true; + return true; + } + + if (argument !== undefined) { + if (this.isEnumArgument(argument)) { + matches[idx] = true; + return true; + } + matches[idx] = this.checkIfArgumentAndParamMatches(param, argument); + return matches[idx]; + } + return true; + } + + private isEnumArgument(argument: ts.Expression): boolean { + if (!ts.isPropertyAccessExpression(argument)) { + return false; + } + + const leftSide = argument.expression; + const symbol = this.tsTypeChecker?.getSymbolAtLocation(leftSide); + + return ( + symbol?.declarations?.some((decl) => { + return ( + ts.isEnumDeclaration(decl) || + ts.isVariableDeclaration(decl) && decl.initializer && ts.isEnumDeclaration(decl.initializer) + ); + }) ?? false + ); + } + private checkIfArgumentAndParamMatches(param: ConstructorParameter, argument: ts.Expression): boolean { const typeNode = this.tsTypeChecker.getTypeAtLocation(argument); const typeString = this.tsTypeChecker.typeToString(typeNode); @@ -10193,27 +10684,16 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { } const symbolToUse = defaultSymbol || symbol; if (symbolToUse) { - this.tryAutoFixInterOpImportJs(importDecl, importClause, symbolToUse, defaultSymbol); + this.tryAutoFixInterOpImportJs(importDecl, symbolToUse); } } - private tryAutoFixInterOpImportJs( - importDecl: ts.ImportDeclaration, - importClause: ts.ImportClause, - symbolToUse: ts.Symbol, - defaultSymbol?: ts.Symbol - ): void { + private tryAutoFixInterOpImportJs(importDecl: ts.ImportDeclaration, symbolToUse: ts.Symbol): void { const declaration = symbolToUse.declarations?.[0]; if (declaration) { const sourceFile = declaration.getSourceFile(); if (sourceFile.fileName.endsWith(EXTNAME_JS)) { - const autofix = this.autofixer?.fixInterOpImportJs( - importDecl, - importClause, - TsUtils.removeOrReplaceQuotes(importDecl.moduleSpecifier.getText(this.sourceFile), false), - defaultSymbol - ); - this.incrementCounters(importDecl, FaultID.InterOpImportJs, autofix); + this.incrementCounters(importDecl, FaultID.InterOpImportJs); } } } @@ -10306,7 +10786,7 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { return false; } for (const declaration of symbol.declarations ?? []) { - if (!this.tsUtils.isArkts12File(declaration.getSourceFile())) { + if (!this.tsUtils.isArkts12File(declaration.getSourceFile()) && !isStdLibrarySymbol(symbol)) { return true; } } @@ -10755,7 +11235,7 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { if (!ts.isStringLiteral(moduleSpecifier)) { return; } - if (moduleSpecifier.text !== ARKUI_PACKAGE_NAME && moduleSpecifier.text !== ARKUI_STATE_MANAGEMENT) { + if (moduleSpecifier.text !== ARKUI_MODULE && moduleSpecifier.text !== STATE_MANAGEMENT_MODULE) { return; } @@ -10767,23 +11247,24 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { return; } - const decorators = ts.getDecorators(node); - if (!decorators || decorators.length === 0) { + const decorator = ts.getDecorators(node)?.[0]; + if (!decorator) { return; } - let decoratorName: string | undefined; - if (ts.isIdentifier(decorators[0].expression)) { - decoratorName = decorators[0].expression.getText(); - } else if (ts.isCallExpression(decorators[0].expression) && ts.isIdentifier(decorators[0].expression.expression)) { - decoratorName = decorators[0].expression.expression.getText(); + let identifier: ts.Identifier | undefined; + if (ts.isIdentifier(decorator.expression)) { + identifier = decorator.expression; + } else if (ts.isCallExpression(decorator.expression) && ts.isIdentifier(decorator.expression.expression)) { + identifier = decorator.expression.expression; } - if (!decoratorName) { + if (!identifier) { return; } - const autofix = this.autofixer?.fixPropDecorator(decorators[0], decoratorName); + const decoratorName = identifier.getText(); + const autofix = this.autofixer?.fixPropDecorator(identifier, decoratorName); switch (decoratorName) { case PropDecoratorName.Prop: this.incrementCounters(node, FaultID.PropDecoratorNotSupported, autofix); @@ -12512,22 +12993,29 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { this.incrementCounters(node, FaultID.RepeatDisableVirtualScroll, autofix); } - private handleNodeForWrappedBuilder(node: ts.Node): void { + private handleNodeForWrappedBuilder(node: ts.TypeReferenceNode | ts.NewExpression | ts.CallExpression): void { if (!this.options.arkts2) { return; } - if ( - ts.isTypeReferenceNode(node) && this.isTargetInterface(node.typeName, CustomInterfaceName.WrappedBuilder) || - ts.isNewExpression(node) && this.isTargetInterface(node.expression, CustomInterfaceName.WrappedBuilder) || - ts.isCallExpression(node) && this.isTargetInterface(node.expression, CustomInterfaceName.wrapBuilder) - ) { - this.incrementCounters(node, FaultID.WrappedBuilderGenericNeedArrowFunc); + const identifier = ts.isTypeReferenceNode(node) ? node.typeName : node.expression; + if (this.isDeclarationInSameFile(identifier)) { + return; } - } - private isTargetInterface(node: ts.Node, targetName: string): boolean { - return ts.isIdentifier(node) && node.getText() === targetName && !this.isDeclarationInSameFile(node); + switch (identifier.getText()) { + case CustomInterfaceName.WrappedBuilder: + this.incrementCounters(node, FaultID.WrappedBuilderGenericNeedArrowFunc); + break; + case CustomInterfaceName.wrapBuilder: { + const args = node.typeArguments; + if (args && args.length > 0 && ts.isTupleTypeNode(args[0])) { + this.incrementCounters(node, FaultID.WrapBuilderGenericNeedArrowFunc); + } + break; + } + default: + } } private checkImportJsonFile(node: ts.ImportDeclaration): void { @@ -13029,4 +13517,140 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { } return true; } + + private handleESObjectUsage(typeRef: ts.TypeReferenceNode): void { + if (!this.options.arkts2) { + return; + } + + if ( + (ts.isIdentifier(typeRef.typeName) && typeRef.typeName.text === ES_OBJECT) || + (ts.isQualifiedName(typeRef.typeName) && typeRef.typeName.right.text === ES_OBJECT) + ) { + this.incrementCounters(typeRef, FaultID.NoESObjectSupport); + } + } + + private handleNodeForBuilderNode(node: ts.TypeReferenceNode | ts.NewExpression): void { + if (!this.options.arkts2) { + return; + } + + const identifier = ts.isTypeReferenceNode(node) ? node.typeName : node.expression; + if ( + identifier.getText() !== CustomInterfaceName.BuilderNode || + !this.isDeclInTargetFile(identifier, BUILDERNODE_D_TS) + ) { + return; + } + + const firstArg = node.typeArguments?.[0]; + if (firstArg && ts.isTupleTypeNode(firstArg)) { + this.incrementCounters(node, FaultID.BuilderNodeGenericNoTuple); + } + } + + private isDeclInTargetFile(node: ts.Node, targetFile: string): boolean { + const decl = this.tsUtils.getDeclarationNode(node); + const file = decl?.getSourceFile(); + if (file !== undefined) { + const fileName = path.basename(file.fileName); + if (fileName !== targetFile) { + return false; + } + } + + return true; + } + + private handlePropertyAccessExprForBuilderNode(node: ts.PropertyAccessExpression): void { + if (!this.options.arkts2) { + return; + } + + const identifier = node.name; + if (!ts.isIdentifier(identifier) || !this.isDeclInTargetFile(identifier, BUILDERNODE_D_TS)) { + return; + } + + const name = identifier.getText(); + const callExpr = ts.findAncestor(node, ts.isCallExpression); + if (!callExpr) { + return; + } + + switch (name) { + case BuilderNodeFunctionName.Update: + if (callExpr.arguments.length !== 0 && this.checkArgumentIsLiteral(callExpr.arguments[0])) { + this.incrementCounters(callExpr, FaultID.BuilderNodeUpdateNoLiteral); + } + break; + case BuilderNodeFunctionName.Build: { + const hasTargetParam = callExpr.arguments.filter(ts.isObjectLiteralExpression).some((literal) => { + return literal.properties.some((prop) => { + return prop.name?.getText() === NESTING_BUILDER_SUPPORTED; + }); + }); + if (hasTargetParam) { + this.incrementCounters(callExpr, FaultID.BuilderNodeNoNestingBuilderSupported); + } + break; + } + default: + } + } + + private checkArgumentIsLiteral(node: ts.Node): boolean { + switch (node.kind) { + case ts.SyntaxKind.ObjectLiteralExpression: + return true; + case ts.SyntaxKind.Identifier: + return this.checkIdentifierIsLiteral(node as ts.Identifier); + case ts.SyntaxKind.ConditionalExpression: + return this.checkConditionalExprIsLiteral(node as ts.ConditionalExpression); + case ts.SyntaxKind.CallExpression: + return this.checkCallExprIsLiteral(node as ts.CallExpression); + default: + return false; + } + } + + private checkIdentifierIsLiteral(node: ts.Identifier): boolean { + const decl = this.tsUtils.getDeclarationNode(node); + const initalizer = decl && ts.isVariableDeclaration(decl) ? decl.initializer : undefined; + if (!initalizer) { + return false; + } + return this.checkArgumentIsLiteral(initalizer); + } + + private checkConditionalExprIsLiteral(node: ts.ConditionalExpression): boolean { + return this.checkArgumentIsLiteral(node.whenTrue) || this.checkArgumentIsLiteral(node.whenFalse); + } + + private checkCallExprIsLiteral(node: ts.CallExpression): boolean { + const callExpr = node; + let identifier: ts.Identifier | undefined; + if (ts.isIdentifier(callExpr.expression)) { + identifier = callExpr.expression; + } else if (ts.isPropertyAccessExpression(callExpr.expression) && ts.isIdentifier(callExpr.expression.name)) { + identifier = callExpr.expression.name; + } + + if (!identifier) { + return false; + } + const funcDecl = this.tsUtils.getDeclarationNode(identifier); + const body = + funcDecl && (ts.isFunctionDeclaration(funcDecl) || ts.isMethodDeclaration(funcDecl)) ? funcDecl.body : undefined; + if (!body) { + return false; + } + for (const stmt of body.statements) { + if (ts.isReturnStatement(stmt) && stmt.expression) { + return this.checkArgumentIsLiteral(stmt.expression); + } + } + return false; + } } diff --git a/ets2panda/linter/src/lib/autofixes/AutofixTitles.ts b/ets2panda/linter/src/lib/autofixes/AutofixTitles.ts index 375831c9a731489a8201edb6e69f1b31f35ffb47..dd3096cc61e605dc85be56b3389eefe6687626a4 100644 --- a/ets2panda/linter/src/lib/autofixes/AutofixTitles.ts +++ b/ets2panda/linter/src/lib/autofixes/AutofixTitles.ts @@ -56,7 +56,6 @@ export const cookBookRefToFixTitle: Map = new Map([ [282, '"@StorageProp" transform to "@StoragePropRef"'], [283, '"@LocalStorageProp" transform to "@LocalStoragePropRef"'], [300, 'Replace calling method of the TS-like `Function` type'], - [330, 'Convert import named objects from JS to ESValue'], [332, 'Using the ESValue interface to access properties'], [334, 'Call typeOf function'], [335, 'Call toNumber function to convert'], diff --git a/ets2panda/linter/src/lib/autofixes/Autofixer.ts b/ets2panda/linter/src/lib/autofixes/Autofixer.ts index 6c0a96ff547a2811936705f49ccca19ffc4b3383..b2d74401d324731293f3c21f3dd465162f179a69 100644 --- a/ets2panda/linter/src/lib/autofixes/Autofixer.ts +++ b/ets2panda/linter/src/lib/autofixes/Autofixer.ts @@ -30,7 +30,7 @@ import { COMMON_METHOD_IDENTIFIER, APPLY_STYLES_IDENTIFIER, CustomInterfaceName, - ARKUI_PACKAGE_NAME, + ARKUI_MODULE, VALUE_IDENTIFIER, INDENT_STEP, ENTRY_DECORATOR_NAME, @@ -47,7 +47,6 @@ import { import { ES_VALUE } from '../utils/consts/ESObject'; import type { IncrementDecrementNodeInfo } from '../utils/consts/InteropAPI'; import { - LOAD, GET_PROPERTY, SET_PROPERTY, ARE_EQUAL, @@ -64,6 +63,7 @@ import { import path from 'node:path'; import { isStdLibrarySymbol } from '../utils/functions/IsStdLibrary'; import { propertyAccessReplacements, identifierReplacements } from '../utils/consts/DeprecatedApi'; +import { ARKTS_COLLECTIONS_MODULE, BIT_VECTOR } from '../utils/consts/CollectionsAPI'; const UNDEFINED_NAME = 'undefined'; @@ -1033,8 +1033,10 @@ export class Autofixer { if (this.renameSymbolAsIdentifierCache.has(symbol)) { return this.renameSymbolAsIdentifierCache.get(symbol); } - - if (!TsUtils.isPropertyOfInternalClassOrInterface(symbol)) { + if ( + !TsUtils.isPropertyOfInternalClassOrInterface(symbol) && + !(enumMember?.parent && ts.isEnumDeclaration(enumMember.parent)) + ) { this.renameSymbolAsIdentifierCache.set(symbol, undefined); return undefined; } @@ -3696,7 +3698,7 @@ export class Autofixer { const importDeclaration = ts.factory.createImportDeclaration( undefined, ts.factory.createImportClause(false, undefined, ts.factory.createNamedImports(importSpecifiers)), - ts.factory.createStringLiteral(ARKUI_PACKAGE_NAME, true), + ts.factory.createStringLiteral(ARKUI_MODULE, true), undefined ); @@ -4150,7 +4152,7 @@ export class Autofixer { return undefined; } - private static findParentVariableDeclaration(node: ts.Node): ts.VariableDeclaration | undefined { + private static findParentVariableDeclaration(node: ts.Node): ts.VariableDeclaration | undefined { while (node) { if (ts.isVariableDeclaration(node)) { return node; @@ -4167,68 +4169,6 @@ export class Autofixer { return [{ start: pos, end: pos, replacementText: text }]; } - private static createVariableForInteropImport( - interopProperty: string, - symbolName: string, - propertyName: string - ): ts.VariableStatement { - const newVarDecl = ts.factory.createVariableStatement( - undefined, - ts.factory.createVariableDeclarationList( - [ - ts.factory.createVariableDeclaration( - ts.factory.createIdentifier(symbolName), - undefined, - undefined, - this.createVariableInitialForInteropImport(propertyName, interopProperty) - ) - ], - ts.NodeFlags.Let - ) - ); - return newVarDecl; - } - - private static createVariableInitialForInteropImport(propertyName: string, interopProperty: string): ts.Expression { - const initializer = ts.factory.createCallExpression( - ts.factory.createPropertyAccessExpression( - ts.factory.createCallExpression( - ts.factory.createPropertyAccessExpression( - ts.factory.createIdentifier(ES_VALUE), - ts.factory.createIdentifier(LOAD) - ), - undefined, - [ts.factory.createStringLiteral(interopProperty)] - ), - ts.factory.createIdentifier(GET_PROPERTY) - ), - undefined, - [ts.factory.createStringLiteral(propertyName)] - ); - return initializer; - } - - private static getOriginalNameAtSymbol(symbolName: string, symbol?: ts.Symbol): string { - if (symbol) { - const originalDeclaration = symbol.declarations?.[0]; - let originalName = ''; - if (originalDeclaration) { - const isReturnNameOnSomeCase = - ts.isFunctionDeclaration(originalDeclaration) || - ts.isClassDeclaration(originalDeclaration) || - ts.isInterfaceDeclaration(originalDeclaration) || - ts.isEnumDeclaration(originalDeclaration); - if (isReturnNameOnSomeCase) { - originalName = originalDeclaration.name?.text || symbolName; - } else if (ts.isVariableDeclaration(originalDeclaration)) { - originalName = originalDeclaration.name.getText(); - } - } - return originalName; - } - return ''; - } - private fixInterOpImportJsProcessNode(node: ts.Node): string | undefined { if (ts.isIdentifier(node)) { return node.text; @@ -4277,128 +4217,6 @@ export class Autofixer { return undefined; } - fixInterOpImportJs( - importDecl: ts.ImportDeclaration, - importClause: ts.ImportClause, - moduleSpecifier: string, - defaultSymbol?: ts.Symbol - ): Autofix[] | undefined { - if (!Autofixer.shouldTransformImport(moduleSpecifier)) { - return undefined; - } - - let statements: string[] = []; - if (importClause.name) { - const symbolName = importClause.name.text; - const originalName = Autofixer.getOriginalNameAtSymbol(symbolName, defaultSymbol); - statements = this.constructAndSaveimportDecl2Arrays( - importDecl, - moduleSpecifier, - symbolName, - originalName, - statements - ); - } - const namedBindings = importClause.namedBindings; - if (namedBindings) { - statements = this.getStatementForInterOpImportJsOnNamedBindings( - namedBindings, - importDecl, - moduleSpecifier, - statements - ); - } - - return [Autofixer.createImportDeclarationFix(importDecl), this.createInsertStatementsFix(importDecl, statements)]; - } - - private static createImportDeclarationFix(importDecl: ts.ImportDeclaration): Autofix { - return { - start: importDecl.getStart(), - end: importDecl.getEnd(), - replacementText: '' - }; - } - - private createInsertStatementsFix(importDecl: ts.ImportDeclaration, statements: string[]): Autofix { - const joinedStatements = statements.join(this.getNewLine()); - const replacementText = this.detectNeedsLeadingNewline(importDecl) ? - this.getNewLine() + joinedStatements : - joinedStatements; - - return { - start: importDecl.getEnd(), - end: importDecl.getEnd(), - replacementText - }; - } - - private static shouldTransformImport(moduleSpecifier: string): boolean { - return moduleSpecifier.endsWith('.js') || moduleSpecifier.startsWith('./') || moduleSpecifier.startsWith('../'); - } - - private detectNeedsLeadingNewline(importDecl: ts.ImportDeclaration): boolean { - const prevToken = ts.getLeadingCommentRanges(this.sourceFile.text, importDecl.getFullStart())?.[0]; - return !!prevToken && !(/^\s*$/).test(this.sourceFile.text.slice(prevToken.end, importDecl.getStart())); - } - - private getStatementForInterOpImportJsOnNamedBindings( - namedBindings: ts.NamedImportBindings, - importDecl: ts.ImportDeclaration, - moduleSpecifier: string, - statements: string[] - ): string[] { - if (ts.isNamespaceImport(namedBindings)) { - const symbolName = namedBindings.name.text; - statements = this.constructAndSaveimportDecl2Arrays( - importDecl, - moduleSpecifier, - symbolName, - symbolName, - statements - ); - } - if (ts.isNamedImports(namedBindings)) { - namedBindings.elements.map((element) => { - const symbolName = element.name.text; - const originalName = element.propertyName ? element.propertyName.text : symbolName; - statements = this.constructAndSaveimportDecl2Arrays( - importDecl, - moduleSpecifier, - symbolName, - originalName, - statements - ); - return statements; - }); - } - return statements; - } - - private constructAndSaveimportDecl2Arrays( - importDecl: ts.ImportDeclaration, - moduleSpecifier: string, - symbolName: string, - originalName: string | undefined, - statements: string[] - ): string[] { - const propertyName = originalName || symbolName; - const newVarDecl = Autofixer.createVariableForInteropImport(moduleSpecifier, symbolName, propertyName); - const text = this.printer.printNode(ts.EmitHint.Unspecified, newVarDecl, importDecl.getSourceFile()); - statements.push(TsUtils.removeOrReplaceQuotes(text, true)); - return statements; - } - - private getLastImportEnd(): number { - let lastImportEnd = 0; - this.sourceFile.statements.forEach((statement) => { - if (ts.isImportDeclaration(statement)) { - lastImportEnd = statement.getEnd(); - } - }); - return lastImportEnd; - } - fixInteropPropertyAccessExpression(express: ts.PropertyAccessExpression): Autofix[] | undefined { let text: string = ''; const statements = ts.factory.createCallExpression( @@ -4905,7 +4723,9 @@ export class Autofixer { ); } - private fixGenericCallNoTypeArgsWithContextualType(node: ts.NewExpression): Autofix[] | undefined { + private fixGenericCallNoTypeArgsWithContextualType( + node: ts.NewExpression | ts.CallExpression + ): Autofix[] | undefined { const contextualType = this.typeChecker.getContextualType(node); if (!contextualType) { return undefined; @@ -4921,18 +4741,26 @@ export class Autofixer { return this.generateGenericTypeArgumentsAutofix(node, reference); } - fixGenericCallNoTypeArgs(node: ts.NewExpression): Autofix[] | undefined { + fixGenericCallNoTypeArgs(node: ts.NewExpression | ts.CallExpression): Autofix[] | undefined { const typeNode = this.getTypeNodeForNewExpression(node); if (!typeNode) { return this.fixGenericCallNoTypeArgsWithContextualType(node); } + let nodeExpressionText = node.expression.getText(); + if (ts.isCallExpression(node)) { + const returnTypeText = this.getReturnTypeFromMethodDeclaration(node); + if (!returnTypeText) { + return undefined; + } + nodeExpressionText = returnTypeText; + } if (ts.isUnionTypeNode(typeNode)) { - return this.fixGenericCallNoTypeArgsForUnionType(node, typeNode); + return this.fixGenericCallNoTypeArgsForUnionType(node, typeNode, nodeExpressionText); } if (ts.isArrayTypeNode(typeNode)) { return this.fixGenericCallNoTypeArgsForArrayType(node, typeNode); } - if (!ts.isTypeReferenceNode(typeNode) || typeNode.typeName.getText() !== node.expression.getText()) { + if (!ts.isTypeReferenceNode(typeNode) || typeNode.typeName.getText() !== nodeExpressionText) { return undefined; } @@ -4945,8 +4773,141 @@ export class Autofixer { return [{ start: insertPos, end: insertPos, replacementText: typeArgsText }]; } + fixGenericCallNoTypeArgsForUnknown(node: ts.CallExpression): Autofix[] | undefined { + if (ts.isPropertyAccessExpression(node.parent)) { + const insertPos = node.expression.getEnd(); + return [{ start: insertPos, end: insertPos, replacementText: '' }]; + } + + const typeNode = this.getTypeNodeForNewExpression(node); + if (!typeNode) { + return undefined; + } + + const nodeExpressionText = ts.isVariableDeclaration(node.parent) ? + this.getReturnTypeFromMethodDeclaration(node) ?? node.expression.getText() : + node.expression.getText(); + + if (ts.isUnionTypeNode(typeNode)) { + const targetTypeRef = typeNode.types.find((t): t is ts.TypeReferenceNode => { + return ts.isTypeReferenceNode(t) && t.typeName.getText() === nodeExpressionText; + }); + if (!targetTypeRef) { + return undefined; + } + return this.createFixWithTypeArgs(node, targetTypeRef.typeArguments); + } + + if (ts.isTypeReferenceNode(typeNode) && typeNode.typeName.getText() === nodeExpressionText) { + return this.createFixWithTypeArgs(node, typeNode.typeArguments); + } + + return undefined; + } + + private createFixWithTypeArgs( + node: ts.CallExpression, + typeArguments: ts.NodeArray | undefined + ): Autofix[] | undefined { + const typeArgsText = this.printGenericCallTypeArgs(node.getSourceFile(), typeArguments); + return typeArgsText ? + [ + { + start: node.expression.getEnd(), + end: node.expression.getEnd(), + replacementText: typeArgsText + } + ] : + undefined; + } + + getReturnTypeFromMethodDeclaration(node: ts.CallExpression): string | undefined { + if (ts.isPropertyAccessExpression(node.expression)) { + const propertyAccess = node.expression; + const methodName = propertyAccess.name.text; + const receiver = propertyAccess.expression; + const receiverType = this.typeChecker.getTypeAtLocation(receiver); + const methodSymbol = this.typeChecker.getPropertyOfType(receiverType, methodName); + + if (!methodSymbol) { + return undefined; + } + const methodDecl = methodSymbol.declarations?.[0] as ts.MethodSignature; + if (!methodDecl.type || !ts.isTypeReferenceNode(methodDecl.type) && !ts.isUnionTypeNode(methodDecl.type)) { + return undefined; + } + if (ts.isTypeReferenceNode(methodDecl.type)) { + return methodDecl.type.typeName.getText(); + } + if (ts.isUnionTypeNode(methodDecl.type)) { + const typeNode = this.getTypeNodeForNewExpression(node); + if (!typeNode) { + return undefined; + } + const targetTypeName = this.getTargetTypeName(typeNode, methodDecl.type); + + if (ts.isUnionTypeNode(typeNode)) { + return targetTypeName; + } + const targetTypeNode = methodDecl.type.types.find((type) => { + return ts.isTypeReferenceNode(type) && type.typeName.getText() === targetTypeName; + }) as ts.TypeReferenceNode; + if (!targetTypeNode) { + return undefined; + } + return targetTypeNode.typeName.getText(); + } + } + return undefined; + } + + private getTargetTypeName(typeNode: ts.TypeNode, methodDeclType: ts.UnionTypeNode): string | undefined { + if (ts.isTypeReferenceNode(typeNode)) { + return typeNode.typeName.getText(); + } + + if (!ts.isUnionTypeNode(typeNode)) { + return undefined; + } + + const hasGenericType = methodDeclType.types.some((type) => { + return this.isGenericTypeParameter(type); + }); + const typeNames = new Set(typeNode.types.map(Autofixer.getTypeName).filter(Boolean)); + + const candidateNames = hasGenericType ? + typeNode.types.map(Autofixer.getTypeName) : + methodDeclType.types.map(Autofixer.getTypeName); + const targetTypeName = candidateNames.find((name) => { + return name && name !== 'undefined' && (hasGenericType || typeNames.has(name)); + }); + return targetTypeName; + } + + private isGenericTypeParameter(type: ts.TypeNode): boolean { + const getType = this.typeChecker.getTypeFromTypeNode(type); + return getType.isTypeParameter(); + } + + private static getTypeName(type: ts.TypeNode): string { + if (ts.isTypeReferenceNode(type)) { + return type.typeName.getText(); + } + if (ts.isLiteralTypeNode(type)) { + return type.literal.getText(); + } + const typeNameMap = { + [ts.SyntaxKind.StringKeyword]: 'string', + [ts.SyntaxKind.NumberKeyword]: 'number', + [ts.SyntaxKind.BooleanKeyword]: 'boolean', + [ts.SyntaxKind.UndefinedKeyword]: 'undefined', + [ts.SyntaxKind.NullKeyword]: 'null' + }; + return typeNameMap[type.kind] || ''; + } + private fixGenericCallNoTypeArgsForArrayType( - node: ts.NewExpression, + node: ts.NewExpression | ts.CallExpression, arrayTypeNode: ts.ArrayTypeNode ): Autofix[] | undefined { const elementTypeNode = arrayTypeNode.elementType; @@ -4960,23 +4921,29 @@ export class Autofixer { } private fixGenericCallNoTypeArgsForUnionType( - node: ts.NewExpression, - unionType: ts.UnionTypeNode + node: ts.NewExpression | ts.CallExpression, + unionType: ts.UnionTypeNode, + nodeExpressionText: string ): Autofix[] | undefined { const matchingTypes = unionType.types.filter((type) => { - return ts.isTypeReferenceNode(type) && type.typeName.getText() === node.expression.getText(); - }) as ts.TypeReferenceNode[]; + return Autofixer.getTypeName(type) === nodeExpressionText; + }); if (matchingTypes.length === 1) { const matchingType = matchingTypes[0]; - if (matchingType.typeArguments) { - const srcFile = node.getSourceFile(); - const typeArgsText = this.printGenericCallTypeArgs(srcFile, matchingType.typeArguments); - if (!typeArgsText) { - return undefined; + if (ts.isTypeReferenceNode(matchingType)) { + if (matchingType.typeArguments) { + const srcFile = node.getSourceFile(); + const typeArgsText = this.printGenericCallTypeArgs(srcFile, matchingType.typeArguments); + if (!typeArgsText) { + return undefined; + } + const insertPos = node.expression.getEnd(); + return [{ start: insertPos, end: insertPos, replacementText: typeArgsText }]; } + } else { const insertPos = node.expression.getEnd(); - return [{ start: insertPos, end: insertPos, replacementText: typeArgsText }]; + return [{ start: insertPos, end: insertPos, replacementText: `<${nodeExpressionText}>` }]; } } return undefined; @@ -5044,7 +5011,7 @@ export class Autofixer { } private generateGenericTypeArgumentsAutofix( - node: ts.NewExpression, + node: ts.NewExpression | ts.CallExpression, typeArgs: ts.TypeReferenceNode[] ): Autofix[] | undefined { const srcFile = node.getSourceFile(); @@ -5076,7 +5043,7 @@ export class Autofixer { return []; } - private getTypeNodeForNewExpression(node: ts.NewExpression): ts.TypeNode | undefined { + private getTypeNodeForNewExpression(node: ts.NewExpression | ts.CallExpression): ts.TypeNode | undefined { if (ts.isVariableDeclaration(node.parent) || ts.isPropertyDeclaration(node.parent)) { return node.parent.type; } else if (ts.isBinaryExpression(node.parent)) { @@ -5231,15 +5198,44 @@ export class Autofixer { ]; } - fixPropDecorator(node: ts.Decorator, decoratorName: string): Autofix[] { - const newDecorator = ts.factory.createDecorator( - ts.factory.createIdentifier(decoratorName + NEW_PROP_DECORATOR_SUFFIX) - ); + fixPropDecorator(node: ts.Identifier, decoratorName: string): Autofix[] { + const newDecorator = ts.factory.createIdentifier(decoratorName + NEW_PROP_DECORATOR_SUFFIX); const text = this.printer.printNode(ts.EmitHint.Unspecified, newDecorator, node.getSourceFile()); return [{ start: node.getStart(), end: node.getEnd(), replacementText: text }]; } + importBitVector(node: ts.Node, lastImportDeclaration: ts.Node | undefined): Autofix | undefined { + const importDeclaration = ts.factory.createImportDeclaration( + undefined, + ts.factory.createImportClause( + false, + undefined, + ts.factory.createNamedImports([ + ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier(BIT_VECTOR)) + ]) + ), + ts.factory.createStringLiteral(ARKTS_COLLECTIONS_MODULE), + undefined + ); + // find the last import statement; + + let replacementText: string = this.nonCommentPrinter.printNode( + ts.EmitHint.Unspecified, + importDeclaration, + node.getSourceFile() + ); + let start: number = 0; + let end: number = 0; + + if (lastImportDeclaration) { + start = end = lastImportDeclaration.getEnd(); + replacementText = this.getNewLine() + replacementText + this.getNewLine(); + } + + return { start, end, replacementText }; + } + fixRepeat(stmt: ts.ExpressionStatement): Autofix[] { const newExpr = ts.factory.createCallExpression(ts.factory.createIdentifier(VIRTUAL_SCROLL_IDENTIFIER), undefined, [ ts.factory.createObjectLiteralExpression( @@ -5362,11 +5358,9 @@ export class Autofixer { } fixSideEffectImport(importDeclNode: ts.ImportDeclaration): Autofix[] { - const initModuleCall = ts.factory.createCallExpression( - ts.factory.createIdentifier("initModule"), - undefined, - [importDeclNode.moduleSpecifier] - ); + const initModuleCall = ts.factory.createCallExpression(ts.factory.createIdentifier('initModule'), undefined, [ + importDeclNode.moduleSpecifier + ]); const expressionStatement = ts.factory.createExpressionStatement(initModuleCall); const replacedText = this.printer.printNode( ts.EmitHint.Unspecified, @@ -5374,10 +5368,12 @@ export class Autofixer { importDeclNode.getSourceFile() ); - return [{ - start: importDeclNode.getStart(), - end: importDeclNode.getEnd(), - replacementText: replacedText - }]; + return [ + { + start: importDeclNode.getStart(), + end: importDeclNode.getEnd(), + replacementText: replacedText + } + ]; } } diff --git a/ets2panda/linter/src/lib/utils/TsUtils.ts b/ets2panda/linter/src/lib/utils/TsUtils.ts index 738928269d0a778b945d0e0c0b9c49f2cf55b3c8..318d5b22a7097788e978bfe43893d14a154d4bbe 100644 --- a/ets2panda/linter/src/lib/utils/TsUtils.ts +++ b/ets2panda/linter/src/lib/utils/TsUtils.ts @@ -2914,13 +2914,6 @@ export class TsUtils { if (TsUtils.hasModifier(ts.getModifiers(propDecl.parent), ts.SyntaxKind.ExportKeyword)) { return false; } - - if ( - ts.isStringLiteral(propDecl.name) && - (ts.isClassDeclaration(propDecl.parent) || ts.isInterfaceDeclaration(propDecl.parent)) - ) { - return false; - } } return true; diff --git a/ets2panda/linter/src/lib/utils/consts/ArkuiConstants.ts b/ets2panda/linter/src/lib/utils/consts/ArkuiConstants.ts index bcf0d2c1d04a17f370a318fe0af6c924796cbd60..40063205dac9d0f9b4ed214aec4b8922450b3a67 100644 --- a/ets2panda/linter/src/lib/utils/consts/ArkuiConstants.ts +++ b/ets2panda/linter/src/lib/utils/consts/ArkuiConstants.ts @@ -20,11 +20,9 @@ export const INSTANCE_IDENTIFIER = 'instance'; export const COMMON_METHOD_IDENTIFIER = 'CommonMethod'; export const APPLY_STYLES_IDENTIFIER = 'applyStyles'; export const STATE_STYLES = 'stateStyles'; -export const ARKUI_PACKAGE_NAME = '@kit.ArkUI'; export const VALUE_IDENTIFIER = 'value'; export const INDENT_STEP = 2; export const MAKE_OBSERVED = 'makeObserved'; -export const ARKUI_STATE_MANAGEMENT = '@ohos.arkui.StateManagement'; export const NEW_PROP_DECORATOR_SUFFIX = 'Ref'; export enum CustomInterfaceName { @@ -38,7 +36,8 @@ export enum CustomInterfaceName { CustomStyles = 'CustomStyles', Repeat = 'Repeat', WrappedBuilder = 'WrappedBuilder', - wrapBuilder = 'wrapBuilder' + wrapBuilder = 'wrapBuilder', + BuilderNode = 'BuilderNode' } export enum StorageTypeName { @@ -57,6 +56,11 @@ export enum PropFunctionName { SetAndProp = 'setAndProp' } +export enum BuilderNodeFunctionName { + Build = 'build', + Update = 'update' +} + export const observedDecoratorName: Set = new Set([ 'State', 'Prop', @@ -94,3 +98,9 @@ export const PROVIDE_ALLOW_OVERRIDE_PROPERTY_NAME = 'allowOverride'; export const VIRTUAL_SCROLL_IDENTIFIER = 'virtualScroll'; export const DISABLE_VIRTUAL_SCROLL_IDENTIFIER = 'disableVirtualScroll'; + +export const ARKUI_MODULE = '@kit.ArkUI'; +export const STATE_MANAGEMENT_MODULE = '@ohos.arkui.StateManagement'; + +export const BUILDERNODE_D_TS = 'BuilderNode.d.ts'; +export const NESTING_BUILDER_SUPPORTED = 'nestingBuilderSupported'; diff --git a/ets2panda/linter/src/lib/utils/consts/ArkuiImportList.ts b/ets2panda/linter/src/lib/utils/consts/ArkuiImportList.ts index f00234df62db7c86386840c10b0289166a81e4e2..f95f5d338f6a74f4e4c750f916f458696f96dfc3 100644 --- a/ets2panda/linter/src/lib/utils/consts/ArkuiImportList.ts +++ b/ets2panda/linter/src/lib/utils/consts/ArkuiImportList.ts @@ -497,6 +497,8 @@ export const arkuiImportList: Set = new Set([ 'GestureRecognizerState', 'GestureStyle', 'GestureType', + 'getInspectorByKey', + 'getInspectorTree', 'GetItemMainSizeByIndex', 'GradientDirection', 'Grid', @@ -1615,7 +1617,9 @@ export const arkuiImportList: Set = new Set([ 'px2vp', 'setAppBgColor', 'sharedTransitionOptions', - 'vp2px' + 'vp2px', + '$r', + '$rawfile' ]); export const arkTsBuiltInTypeName: Set = new Set([ diff --git a/ets2panda/linter/src/lib/utils/consts/CollectionsAPI.ts b/ets2panda/linter/src/lib/utils/consts/CollectionsAPI.ts index a7c1698e3ba00a285e16df6ee6b1c418f3832d4b..331a36bb29639f47336a980fbe78db1f32e6ab0f 100644 --- a/ets2panda/linter/src/lib/utils/consts/CollectionsAPI.ts +++ b/ets2panda/linter/src/lib/utils/consts/CollectionsAPI.ts @@ -14,4 +14,6 @@ */ export const COLLECTIONS_TEXT = 'collections'; +export const ARKTS_COLLECTIONS_MODULE = '@arkts.collections'; +export const BIT_VECTOR = 'BitVector'; export const COLLECTIONS_MODULES = ['@arkts.collections', '@kit.ArkTS']; diff --git a/ets2panda/linter/src/lib/utils/consts/ESObject.ts b/ets2panda/linter/src/lib/utils/consts/ESObject.ts index 3f541dc7c4074ab279ee1b5912cca831e9be6d3d..ca9f988679dbf9a63ecae9df6ef15f4a6f074ec2 100644 --- a/ets2panda/linter/src/lib/utils/consts/ESObject.ts +++ b/ets2panda/linter/src/lib/utils/consts/ESObject.ts @@ -14,3 +14,4 @@ */ export const ES_VALUE = 'ESValue'; +export const ES_OBJECT = 'ESObject'; diff --git a/ets2panda/linter/src/lib/utils/consts/InteropAPI.ts b/ets2panda/linter/src/lib/utils/consts/InteropAPI.ts index afd7fcc08737fc52d29b37f99fa38852b6417450..6d4e230d392679d3c8957979217b92d8b85130ea 100644 --- a/ets2panda/linter/src/lib/utils/consts/InteropAPI.ts +++ b/ets2panda/linter/src/lib/utils/consts/InteropAPI.ts @@ -66,7 +66,6 @@ export const OBJECT_LITERAL = 'Object'; export const REFLECT_LITERAL = 'Reflect'; export const NONE = 'none'; export type ForbidenAPICheckResult = 'Object' | 'Reflect' | 'none'; -export const LOAD = 'load'; export const GET_PROPERTY = 'getProperty'; export const SET_PROPERTY = 'setProperty'; export const TO_NUMBER = 'toNumber'; diff --git a/ets2panda/linter/test/builtin/builtin_not_support_property_descriptor.ets.arkts2.json b/ets2panda/linter/test/builtin/builtin_not_support_property_descriptor.ets.arkts2.json index dcb5f51adacdac07a38c4bbff93dff9e6eef2f42..971a2bc65f74c58502743a89075ad9c35f5df3f4 100644 --- a/ets2panda/linter/test/builtin/builtin_not_support_property_descriptor.ets.arkts2.json +++ b/ets2panda/linter/test/builtin/builtin_not_support_property_descriptor.ets.arkts2.json @@ -134,6 +134,16 @@ "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" }, + { + "line": 28, + "column": 7, + "endLine": 28, + "endColumn": 8, + "problem": "ParameterType", + "suggest": "", + "rule": "Type of parameter must be defined explicitly (arkts-require-func-arg-type)", + "severity": "ERROR" + }, { "line": 37, "column": 1, @@ -234,6 +244,16 @@ "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" }, + { + "line": 49, + "column": 9, + "endLine": 49, + "endColumn": 10, + "problem": "ParameterType", + "suggest": "", + "rule": "Type of parameter must be defined explicitly (arkts-require-func-arg-type)", + "severity": "ERROR" + }, { "line": 57, "column": 11, @@ -285,4 +305,4 @@ "severity": "ERROR" } ] -} \ No newline at end of file +} diff --git a/ets2panda/linter/test/deprecatedapi/UIContext.ets.json.args.json b/ets2panda/linter/test/deprecatedapi/UIContext.ets.json.args.json new file mode 100644 index 0000000000000000000000000000000000000000..4acc088d1da62353e56ced57f16b342de413cb78 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/UIContext.ets.json.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/appStorageIsMutable_api.ets.arkts2.json b/ets2panda/linter/test/deprecatedapi/appStorageIsMutable_api.ets.arkts2.json index 1fc946dc8d23ece21f715f7fa7a1717a3306f382..891eb9509c4b250bbf93436010f834933bbc42d5 100755 --- a/ets2panda/linter/test/deprecatedapi/appStorageIsMutable_api.ets.arkts2.json +++ b/ets2panda/linter/test/deprecatedapi/appStorageIsMutable_api.ets.arkts2.json @@ -34,6 +34,16 @@ "rule": "ArkUI deprecated api check (arkui-no-deprecated-api)", "severity": "ERROR" }, + { + "line": 20, + "column": 21, + "endLine": 20, + "endColumn": 44, + "problem": "GenericCallNoTypeArgs", + "suggest": "", + "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", + "severity": "ERROR" + }, { "line": 20, "column": 32, @@ -44,7 +54,7 @@ "rule": "ArkUI deprecated api check (arkui-no-deprecated-api)", "severity": "ERROR" }, - { + { "line": 22, "column": 31, "endLine": 22, diff --git a/ets2panda/linter/test/deprecatedapi/chip_group_api.ets.args.json b/ets2panda/linter/test/deprecatedapi/chip_group_api.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..1b80aa9e7367c4d206bb53f8fc43c77fc24045d7 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/chip_group_api.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } + } \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/chip_group_api.ets.arkts2.json b/ets2panda/linter/test/deprecatedapi/chip_group_api.ets.arkts2.json new file mode 100644 index 0000000000000000000000000000000000000000..667d91d76ded29c2264848d9ce8089452797bddf --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/chip_group_api.ets.arkts2.json @@ -0,0 +1,98 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 36, + "column": 3, + "endLine": 36, + "endColumn": 6, + "problem": "LimitedReturnTypeInference", + "suggest": "", + "rule": "Function return type inference is limited (arkts-no-implicit-return-types)", + "severity": "ERROR" + }, + { + "line": 17, + "column": 2, + "endLine": 17, + "endColumn": 7, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Entry\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 20, + "column": 5, + "endLine": 20, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Column\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 24, + "column": 32, + "endLine": 24, + "endColumn": 34, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"$r\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 26, + "column": 33, + "endLine": 26, + "endColumn": 35, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"$r\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 35, + "column": 16, + "endLine": 35, + "endColumn": 27, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"IconOptions\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 39, + "column": 20, + "endLine": 39, + "endColumn": 31, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"IconOptions\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 40, + "column": 25, + "endLine": 40, + "endColumn": 27, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"$r\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/common.ets.args.json b/ets2panda/linter/test/deprecatedapi/common.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..4acc088d1da62353e56ced57f16b342de413cb78 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/common.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/common.ets.arkts2.json b/ets2panda/linter/test/deprecatedapi/common.ets.arkts2.json new file mode 100644 index 0000000000000000000000000000000000000000..1dc330e4e7defbd806a9b74001f9ded0f5204afe --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/common.ets.arkts2.json @@ -0,0 +1,448 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 20, + "column": 21, + "endLine": 20, + "endColumn": 23, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 23, + "column": 21, + "endLine": 23, + "endColumn": 27, + "problem": "DynamicCtorCall", + "suggest": "", + "rule": "\"new\" expression with dynamic constructor type is not supported (arkts-no-dynamic-ctor-call)", + "severity": "ERROR" + }, + { + "line": 28, + "column": 22, + "endLine": 28, + "endColumn": 23, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 29, + "column": 28, + "endLine": 29, + "endColumn": 29, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 30, + "column": 24, + "endLine": 30, + "endColumn": 25, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 31, + "column": 29, + "endLine": 31, + "endColumn": 30, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 38, + "column": 26, + "endLine": 38, + "endColumn": 28, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 38, + "column": 36, + "endLine": 38, + "endColumn": 39, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 41, + "column": 13, + "endLine": 41, + "endColumn": 29, + "problem": "PropertyAccessByIndex", + "suggest": "", + "rule": "Indexed access is not supported for fields (arkts-no-props-by-index)", + "severity": "ERROR" + }, + { + "line": 41, + "column": 13, + "endLine": 41, + "endColumn": 26, + "problem": "NoTsLikeSmartType", + "suggest": "", + "rule": "Smart type differences (arkts-no-ts-like-smart-type)", + "severity": "ERROR" + }, + { + "line": 42, + "column": 13, + "endLine": 42, + "endColumn": 29, + "problem": "PropertyAccessByIndex", + "suggest": "", + "rule": "Indexed access is not supported for fields (arkts-no-props-by-index)", + "severity": "ERROR" + }, + { + "line": 42, + "column": 13, + "endLine": 42, + "endColumn": 26, + "problem": "NoTsLikeSmartType", + "suggest": "", + "rule": "Smart type differences (arkts-no-ts-like-smart-type)", + "severity": "ERROR" + }, + { + "line": 47, + "column": 13, + "endLine": 47, + "endColumn": 26, + "problem": "NoTsLikeSmartType", + "suggest": "", + "rule": "Smart type differences (arkts-no-ts-like-smart-type)", + "severity": "ERROR" + }, + { + "line": 48, + "column": 13, + "endLine": 48, + "endColumn": 26, + "problem": "NoTsLikeSmartType", + "suggest": "", + "rule": "Smart type differences (arkts-no-ts-like-smart-type)", + "severity": "ERROR" + }, + { + "line": 58, + "column": 21, + "endLine": 58, + "endColumn": 23, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 61, + "column": 20, + "endLine": 61, + "endColumn": 22, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 66, + "column": 8, + "endLine": 66, + "endColumn": 11, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 67, + "column": 8, + "endLine": 67, + "endColumn": 11, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 68, + "column": 7, + "endLine": 68, + "endColumn": 10, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 69, + "column": 7, + "endLine": 69, + "endColumn": 10, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 70, + "column": 7, + "endLine": 70, + "endColumn": 10, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 71, + "column": 7, + "endLine": 71, + "endColumn": 10, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 16, + "column": 2, + "endLine": 16, + "endColumn": 7, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Entry\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 17, + "column": 2, + "endLine": 17, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Component\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 20, + "column": 5, + "endLine": 20, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Column\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 21, + "column": 7, + "endLine": 21, + "endColumn": 10, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Row\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 22, + "column": 9, + "endLine": 22, + "endColumn": 14, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Image\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 22, + "column": 15, + "endLine": 22, + "endColumn": 17, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"$r\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 23, + "column": 21, + "endLine": 23, + "endColumn": 27, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Circle\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 25, + "column": 9, + "endLine": 25, + "endColumn": 15, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Button\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 27, + "column": 19, + "endLine": 27, + "endColumn": 33, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"TransitionType\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 34, + "column": 26, + "endLine": 34, + "endColumn": 33, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Context\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 34, + "column": 36, + "endLine": 34, + "endColumn": 46, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"getContext\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 38, + "column": 3, + "endLine": 38, + "endColumn": 9, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Button\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 39, + "column": 27, + "endLine": 39, + "endColumn": 37, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"TouchEvent\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 45, + "column": 27, + "endLine": 45, + "endColumn": 37, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"ClickEvent\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 51, + "column": 26, + "endLine": 51, + "endColumn": 36, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"MouseEvent\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 66, + "column": 1, + "endLine": 66, + "endColumn": 7, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"px2lpx\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 67, + "column": 1, + "endLine": 67, + "endColumn": 7, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"lpx2px\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 68, + "column": 1, + "endLine": 68, + "endColumn": 6, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"px2fp\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 69, + "column": 1, + "endLine": 69, + "endColumn": 6, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"fp2px\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 70, + "column": 1, + "endLine": 70, + "endColumn": 6, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"px2vp\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 71, + "column": 1, + "endLine": 71, + "endColumn": 6, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"vp2px\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/common_api.ets.arkts2.json b/ets2panda/linter/test/deprecatedapi/common_api.ets.arkts2.json old mode 100755 new mode 100644 index 9eb4d655c3bc4fab432f35a1de29db09dbe98baa..1f361a5a2763cdee61e3028b9c71ff02ac3d9527 --- a/ets2panda/linter/test/deprecatedapi/common_api.ets.arkts2.json +++ b/ets2panda/linter/test/deprecatedapi/common_api.ets.arkts2.json @@ -804,6 +804,16 @@ "rule": "The ArkUI interface \"Image\" should be imported before it is used (arkui-modular-interface)", "severity": "ERROR" }, + { + "line": 91, + "column": 15, + "endLine": 91, + "endColumn": 17, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"$r\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, { "line": 103, "column": 7, diff --git a/ets2panda/linter/test/deprecatedapi/componentSnapshot.ets.args.json b/ets2panda/linter/test/deprecatedapi/componentSnapshot.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..4acc088d1da62353e56ced57f16b342de413cb78 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/componentSnapshot.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/componentSnapshot.ets.arkts2.json b/ets2panda/linter/test/deprecatedapi/componentSnapshot.ets.arkts2.json new file mode 100644 index 0000000000000000000000000000000000000000..ab200aca98a0c25e5488380a88ae795e2ec6c751 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/componentSnapshot.ets.arkts2.json @@ -0,0 +1,158 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 25, + "column": 19, + "endLine": 25, + "endColumn": 21, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 26, + "column": 16, + "endLine": 26, + "endColumn": 19, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 27, + "column": 17, + "endLine": 27, + "endColumn": 19, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 30, + "column": 12, + "endLine": 30, + "endColumn": 15, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 41, + "column": 19, + "endLine": 41, + "endColumn": 21, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 18, + "column": 2, + "endLine": 18, + "endColumn": 7, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Entry\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 19, + "column": 2, + "endLine": 19, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Component\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 21, + "column": 4, + "endLine": 21, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Builder\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 23, + "column": 5, + "endLine": 23, + "endColumn": 9, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Flex\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 24, + "column": 7, + "endLine": 24, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Text\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 28, + "column": 20, + "endLine": 28, + "endColumn": 29, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"TextAlign\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 34, + "column": 5, + "endLine": 34, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Column\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 35, + "column": 7, + "endLine": 35, + "endColumn": 13, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Button\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 45, + "column": 17, + "endLine": 45, + "endColumn": 32, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"HorizontalAlign\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/curves.ets.args.json b/ets2panda/linter/test/deprecatedapi/curves.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..4acc088d1da62353e56ced57f16b342de413cb78 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/curves.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/SizeType.ets.json b/ets2panda/linter/test/deprecatedapi/curves.ets.arkts2.json old mode 100755 new mode 100644 similarity index 100% rename from ets2panda/linter/test/deprecatedapi/SizeType.ets.json rename to ets2panda/linter/test/deprecatedapi/curves.ets.arkts2.json diff --git a/ets2panda/linter/test/deprecatedapi/date_picker.ets.args.json b/ets2panda/linter/test/deprecatedapi/date_picker.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..4acc088d1da62353e56ced57f16b342de413cb78 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/date_picker.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/date_picker.ets.arkts2.json b/ets2panda/linter/test/deprecatedapi/date_picker.ets.arkts2.json new file mode 100644 index 0000000000000000000000000000000000000000..3c31119d9f80feda224ca75460f2c13228f98f0d --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/date_picker.ets.arkts2.json @@ -0,0 +1,88 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 24, + "column": 17, + "endLine": 24, + "endColumn": 19, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 16, + "column": 2, + "endLine": 16, + "endColumn": 7, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Entry\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 17, + "column": 2, + "endLine": 17, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Component\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 22, + "column": 5, + "endLine": 22, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Column\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 23, + "column": 7, + "endLine": 23, + "endColumn": 13, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Button\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 26, + "column": 11, + "endLine": 26, + "endColumn": 27, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"DatePickerDialog\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 32, + "column": 7, + "endLine": 32, + "endColumn": 17, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"DatePicker\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/deprecated_api_common_utils.ets.args.json b/ets2panda/linter/test/deprecatedapi/deprecated_api_common_utils.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..4acc088d1da62353e56ced57f16b342de413cb78 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/deprecated_api_common_utils.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/deprecated_api_common_utils.ets.arkts2.json b/ets2panda/linter/test/deprecatedapi/deprecated_api_common_utils.ets.arkts2.json new file mode 100644 index 0000000000000000000000000000000000000000..ce2955ca55158612f1e3169e24143b3a5dbe5d9f --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/deprecated_api_common_utils.ets.arkts2.json @@ -0,0 +1,48 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 18, + "column": 2, + "endLine": 18, + "endColumn": 7, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Entry\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 19, + "column": 2, + "endLine": 19, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Component\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 27, + "column": 5, + "endLine": 27, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Column\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/deprecated_api_font.ets.arkts2.json b/ets2panda/linter/test/deprecatedapi/deprecated_api_font.ets.arkts2.json old mode 100755 new mode 100644 index d720ed0d4869125157fa8048467911e42cbf230d..00497d02618ba04db6d78378728574529f588c2e --- a/ets2panda/linter/test/deprecatedapi/deprecated_api_font.ets.arkts2.json +++ b/ets2panda/linter/test/deprecatedapi/deprecated_api_font.ets.arkts2.json @@ -84,6 +84,16 @@ "rule": "The ArkUI interface \"Component\" should be imported before it is used (arkui-modular-interface)", "severity": "ERROR" }, + { + "line": 26, + "column": 18, + "endLine": 26, + "endColumn": 26, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"$rawfile\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, { "line": 31, "column": 5, @@ -123,6 +133,16 @@ "suggest": "", "rule": "The ArkUI interface \"Button\" should be imported before it is used (arkui-modular-interface)", "severity": "ERROR" + }, + { + "line": 42, + "column": 70, + "endLine": 42, + "endColumn": 78, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"$rawfile\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" } ] } \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/deprecated_api_prompt_action.ets.args.json b/ets2panda/linter/test/deprecatedapi/deprecated_api_prompt_action.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..4acc088d1da62353e56ced57f16b342de413cb78 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/deprecated_api_prompt_action.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/deprecated_api_prompt_action.ets.arkts2.json b/ets2panda/linter/test/deprecatedapi/deprecated_api_prompt_action.ets.arkts2.json new file mode 100644 index 0000000000000000000000000000000000000000..33af06e3141b27c854edfb247704eea48773abab --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/deprecated_api_prompt_action.ets.arkts2.json @@ -0,0 +1,118 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 25, + "column": 17, + "endLine": 25, + "endColumn": 21, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 48, + "column": 9, + "endLine": 48, + "endColumn": 12, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + }, + { + "line": 48, + "column": 14, + "endLine": 48, + "endColumn": 18, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + }, + { + "line": 69, + "column": 9, + "endLine": 69, + "endColumn": 12, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + }, + { + "line": 69, + "column": 14, + "endLine": 69, + "endColumn": 18, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + }, + { + "line": 72, + "column": 36, + "endLine": 72, + "endColumn": 37, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 18, + "column": 2, + "endLine": 18, + "endColumn": 7, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Entry\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 19, + "column": 2, + "endLine": 19, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Component\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 76, + "column": 44, + "endLine": 76, + "endColumn": 63, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"DismissDialogAction\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 82, + "column": 5, + "endLine": 82, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Column\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/deprecated_api_time_picker.ets.args.json b/ets2panda/linter/test/deprecatedapi/deprecated_api_time_picker.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..4acc088d1da62353e56ced57f16b342de413cb78 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/deprecated_api_time_picker.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/deprecated_api_time_picker.ets.arkts2.json b/ets2panda/linter/test/deprecatedapi/deprecated_api_time_picker.ets.arkts2.json new file mode 100644 index 0000000000000000000000000000000000000000..1af038e5b70c2a49a22760284383fc43921a23fa --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/deprecated_api_time_picker.ets.arkts2.json @@ -0,0 +1,68 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 16, + "column": 2, + "endLine": 16, + "endColumn": 7, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Entry\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 17, + "column": 2, + "endLine": 17, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Component\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 21, + "column": 5, + "endLine": 21, + "endColumn": 21, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"TimePickerDialog\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 22, + "column": 5, + "endLine": 22, + "endColumn": 21, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"TimePickerDialog\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 26, + "column": 5, + "endLine": 26, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Column\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/dragController.ets.args.json b/ets2panda/linter/test/deprecatedapi/dragController.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..4acc088d1da62353e56ced57f16b342de413cb78 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/dragController.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/dragController.ets.arkts2.json b/ets2panda/linter/test/deprecatedapi/dragController.ets.arkts2.json new file mode 100644 index 0000000000000000000000000000000000000000..353facd04ad8d3e162743403e88474a6e2766a0b --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/dragController.ets.arkts2.json @@ -0,0 +1,308 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 29, + "column": 19, + "endLine": 29, + "endColumn": 21, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 31, + "column": 12, + "endLine": 31, + "endColumn": 15, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 32, + "column": 13, + "endLine": 32, + "endColumn": 16, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 40, + "column": 19, + "endLine": 40, + "endColumn": 21, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 43, + "column": 12, + "endLine": 43, + "endColumn": 15, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 44, + "column": 13, + "endLine": 44, + "endColumn": 15, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 48, + "column": 33, + "endLine": 48, + "endColumn": 46, + "problem": "LimitedVoidTypeFromSdk", + "suggest": "", + "rule": "Type \"void\" has no instances.(sdk-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 53, + "column": 17, + "endLine": 53, + "endColumn": 19, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 60, + "column": 26, + "endLine": 60, + "endColumn": 27, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 67, + "column": 27, + "endLine": 67, + "endColumn": 30, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + }, + { + "line": 67, + "column": 32, + "endLine": 67, + "endColumn": 35, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + }, + { + "line": 19, + "column": 2, + "endLine": 19, + "endColumn": 7, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Entry\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 20, + "column": 2, + "endLine": 20, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Component\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 22, + "column": 4, + "endLine": 22, + "endColumn": 9, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"State\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 24, + "column": 4, + "endLine": 24, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Builder\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 26, + "column": 5, + "endLine": 26, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Column\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 27, + "column": 7, + "endLine": 27, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Text\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 28, + "column": 20, + "endLine": 28, + "endColumn": 25, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Color\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 33, + "column": 22, + "endLine": 33, + "endColumn": 27, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Color\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 36, + "column": 4, + "endLine": 36, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Builder\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 38, + "column": 5, + "endLine": 38, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Column\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 39, + "column": 7, + "endLine": 39, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Text\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 41, + "column": 20, + "endLine": 41, + "endColumn": 25, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Color\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 45, + "column": 22, + "endLine": 45, + "endColumn": 27, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Color\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 48, + "column": 33, + "endLine": 48, + "endColumn": 46, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"CustomBuilder\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 48, + "column": 49, + "endLine": 48, + "endColumn": 61, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"DragItemInfo\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 51, + "column": 5, + "endLine": 51, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Column\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 52, + "column": 7, + "endLine": 52, + "endColumn": 13, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Button\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 57, + "column": 27, + "endLine": 57, + "endColumn": 37, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"TouchEvent\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/enums.ets.args.json b/ets2panda/linter/test/deprecatedapi/enums.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..4acc088d1da62353e56ced57f16b342de413cb78 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/enums.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/enums.ets.arkts2.json b/ets2panda/linter/test/deprecatedapi/enums.ets.arkts2.json new file mode 100644 index 0000000000000000000000000000000000000000..7be47bbee3b08773bf7e42d846b2c7547e1b8afe --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/enums.ets.arkts2.json @@ -0,0 +1,308 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 19, + "column": 28, + "endLine": 19, + "endColumn": 36, + "problem": "DynamicCtorCall", + "suggest": "", + "rule": "\"new\" expression with dynamic constructor type is not supported (arkts-no-dynamic-ctor-call)", + "severity": "ERROR" + }, + { + "line": 20, + "column": 28, + "endLine": 20, + "endColumn": 29, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 20, + "column": 31, + "endLine": 20, + "endColumn": 32, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 20, + "column": 34, + "endLine": 20, + "endColumn": 35, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 20, + "column": 37, + "endLine": 20, + "endColumn": 38, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 20, + "column": 40, + "endLine": 20, + "endColumn": 41, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 20, + "column": 43, + "endLine": 20, + "endColumn": 44, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 20, + "column": 46, + "endLine": 20, + "endColumn": 47, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 20, + "column": 49, + "endLine": 20, + "endColumn": 50, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 20, + "column": 52, + "endLine": 20, + "endColumn": 53, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 20, + "column": 55, + "endLine": 20, + "endColumn": 56, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 37, + "column": 24, + "endLine": 37, + "endColumn": 27, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 37, + "column": 35, + "endLine": 37, + "endColumn": 37, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 43, + "column": 24, + "endLine": 43, + "endColumn": 27, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 43, + "column": 35, + "endLine": 43, + "endColumn": 37, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 16, + "column": 2, + "endLine": 16, + "endColumn": 7, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Entry\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 17, + "column": 2, + "endLine": 17, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Component\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 19, + "column": 13, + "endLine": 19, + "endColumn": 21, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Scroller\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 19, + "column": 28, + "endLine": 19, + "endColumn": 36, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Scroller\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 23, + "column": 5, + "endLine": 23, + "endColumn": 10, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Stack\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 23, + "column": 27, + "endLine": 23, + "endColumn": 36, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Alignment\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 24, + "column": 7, + "endLine": 24, + "endColumn": 13, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Scroll\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 25, + "column": 9, + "endLine": 25, + "endColumn": 15, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Column\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 26, + "column": 11, + "endLine": 26, + "endColumn": 18, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"ForEach\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 27, + "column": 13, + "endLine": 27, + "endColumn": 17, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Text\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 32, + "column": 7, + "endLine": 32, + "endColumn": 13, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Button\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 35, + "column": 36, + "endLine": 35, + "endColumn": 40, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Edge\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 38, + "column": 7, + "endLine": 38, + "endColumn": 13, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Button\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 41, + "column": 36, + "endLine": 41, + "endColumn": 40, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Edge\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/image_animator.ets.args.json b/ets2panda/linter/test/deprecatedapi/image_animator.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..4acc088d1da62353e56ced57f16b342de413cb78 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/image_animator.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/image_animator.ets.arkts2.json b/ets2panda/linter/test/deprecatedapi/image_animator.ets.arkts2.json new file mode 100644 index 0000000000000000000000000000000000000000..5dba08427fc25db0e2685528623ab4dd5c785369 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/image_animator.ets.arkts2.json @@ -0,0 +1,78 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 21, + "column": 21, + "endLine": 21, + "endColumn": 23, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 23, + "column": 20, + "endLine": 23, + "endColumn": 21, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 16, + "column": 2, + "endLine": 16, + "endColumn": 7, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Entry\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 17, + "column": 2, + "endLine": 17, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Component\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 21, + "column": 5, + "endLine": 21, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Column\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 22, + "column": 7, + "endLine": 22, + "endColumn": 20, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"ImageAnimator\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/inspector.ets.args.json b/ets2panda/linter/test/deprecatedapi/inspector.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..4acc088d1da62353e56ced57f16b342de413cb78 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/inspector.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/SizeType.ets.arkts2.json b/ets2panda/linter/test/deprecatedapi/inspector.ets.arkts2.json old mode 100755 new mode 100644 similarity index 64% rename from ets2panda/linter/test/deprecatedapi/SizeType.ets.arkts2.json rename to ets2panda/linter/test/deprecatedapi/inspector.ets.arkts2.json index b0bd84bb5e8299499e1d08466994c432fe8cbfb6..e0f8c248c3d021a37f4d975a415f65f7d9676c03 --- a/ets2panda/linter/test/deprecatedapi/SizeType.ets.arkts2.json +++ b/ets2panda/linter/test/deprecatedapi/inspector.ets.arkts2.json @@ -15,30 +15,30 @@ ], "result": [ { - "line": 20, - "column": 31, - "endLine": 20, - "endColumn": 39, - "problem": "NoDeprecatedApi", + "line": 24, + "column": 22, + "endLine": 24, + "endColumn": 23, + "problem": "NumericSemantics", "suggest": "", - "rule": "ArkUI deprecated api check (arkui-no-deprecated-api)", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" }, { - "line": 23, - "column": 21, - "endLine": 23, - "endColumn": 22, + "line": 26, + "column": 20, + "endLine": 26, + "endColumn": 23, "problem": "NumericSemantics", "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" }, { - "line": 24, - "column": 66, - "endLine": 24, - "endColumn": 67, + "line": 27, + "column": 21, + "endLine": 27, + "endColumn": 24, "problem": "NumericSemantics", "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", @@ -46,58 +46,58 @@ }, { "line": 28, - "column": 29, + "column": 30, "endLine": 28, - "endColumn": 37, - "problem": "NoDeprecatedApi", + "endColumn": 31, + "problem": "NumericSemantics", "suggest": "", - "rule": "ArkUI deprecated api check (arkui-no-deprecated-api)", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" }, { "line": 32, - "column": 29, + "column": 14, "endLine": 32, - "endColumn": 37, - "problem": "NoDeprecatedApi", + "endColumn": 17, + "problem": "NumericSemantics", "suggest": "", - "rule": "ArkUI deprecated api check (arkui-no-deprecated-api)", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" }, { - "line": 36, - "column": 29, - "endLine": 36, - "endColumn": 37, - "problem": "NoDeprecatedApi", + "line": 32, + "column": 25, + "endLine": 32, + "endColumn": 28, + "problem": "NumericSemantics", "suggest": "", - "rule": "ArkUI deprecated api check (arkui-no-deprecated-api)", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" }, { - "line": 40, - "column": 29, - "endLine": 40, - "endColumn": 37, - "problem": "NoDeprecatedApi", + "line": 32, + "column": 47, + "endLine": 32, + "endColumn": 49, + "problem": "NumericSemantics", "suggest": "", - "rule": "ArkUI deprecated api check (arkui-no-deprecated-api)", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" }, { - "line": 43, - "column": 35, - "endLine": 43, - "endColumn": 36, + "line": 32, + "column": 56, + "endLine": 32, + "endColumn": 58, "problem": "NumericSemantics", "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" }, { - "line": 17, + "line": 18, "column": 2, - "endLine": 17, + "endLine": 18, "endColumn": 7, "problem": "UIInterfaceImport", "suggest": "", @@ -105,9 +105,9 @@ "severity": "ERROR" }, { - "line": 18, + "line": 19, "column": 2, - "endLine": 18, + "endLine": 19, "endColumn": 11, "problem": "UIInterfaceImport", "suggest": "", @@ -115,83 +115,83 @@ "severity": "ERROR" }, { - "line": 20, - "column": 4, - "endLine": 20, - "endColumn": 9, + "line": 22, + "column": 5, + "endLine": 22, + "endColumn": 11, "problem": "UIInterfaceImport", "suggest": "", - "rule": "The ArkUI interface \"State\" should be imported before it is used (arkui-modular-interface)", + "rule": "The ArkUI interface \"Column\" should be imported before it is used (arkui-modular-interface)", "severity": "ERROR" }, { "line": 23, - "column": 5, + "column": 7, "endLine": 23, "endColumn": 11, "problem": "UIInterfaceImport", "suggest": "", - "rule": "The ArkUI interface \"Column\" should be imported before it is used (arkui-modular-interface)", + "rule": "The ArkUI interface \"Flex\" should be imported before it is used (arkui-modular-interface)", "severity": "ERROR" }, { - "line": 24, - "column": 7, - "endLine": 24, - "endColumn": 11, + "line": 23, + "column": 25, + "endLine": 23, + "endColumn": 38, "problem": "UIInterfaceImport", "suggest": "", - "rule": "The ArkUI interface \"Text\" should be imported before it is used (arkui-modular-interface)", + "rule": "The ArkUI interface \"FlexDirection\" should be imported before it is used (arkui-modular-interface)", "severity": "ERROR" }, { - "line": 25, - "column": 7, - "endLine": 25, - "endColumn": 10, + "line": 23, + "column": 39, + "endLine": 23, + "endColumn": 45, "problem": "UIInterfaceImport", "suggest": "", - "rule": "The ArkUI interface \"Row\" should be imported before it is used (arkui-modular-interface)", + "rule": "The ArkUI interface \"Column\" should be imported before it is used (arkui-modular-interface)", "severity": "ERROR" }, { - "line": 26, - "column": 9, - "endLine": 26, - "endColumn": 15, + "line": 23, + "column": 59, + "endLine": 23, + "endColumn": 68, "problem": "UIInterfaceImport", "suggest": "", - "rule": "The ArkUI interface \"Button\" should be imported before it is used (arkui-modular-interface)", + "rule": "The ArkUI interface \"ItemAlign\" should be imported before it is used (arkui-modular-interface)", "severity": "ERROR" }, { - "line": 30, + "line": 24, "column": 9, - "endLine": 30, - "endColumn": 15, + "endLine": 24, + "endColumn": 12, "problem": "UIInterfaceImport", "suggest": "", - "rule": "The ArkUI interface \"Button\" should be imported before it is used (arkui-modular-interface)", + "rule": "The ArkUI interface \"Row\" should be imported before it is used (arkui-modular-interface)", "severity": "ERROR" }, { - "line": 34, - "column": 9, - "endLine": 34, - "endColumn": 15, + "line": 25, + "column": 11, + "endLine": 25, + "endColumn": 16, "problem": "UIInterfaceImport", "suggest": "", - "rule": "The ArkUI interface \"Button\" should be imported before it is used (arkui-modular-interface)", + "rule": "The ArkUI interface \"Image\" should be imported before it is used (arkui-modular-interface)", "severity": "ERROR" }, { - "line": 38, - "column": 9, - "endLine": 38, - "endColumn": 15, + "line": 25, + "column": 17, + "endLine": 25, + "endColumn": 19, "problem": "UIInterfaceImport", "suggest": "", - "rule": "The ArkUI interface \"Button\" should be imported before it is used (arkui-modular-interface)", + "rule": "The ArkUI interface \"$r\" should be imported before it is used (arkui-modular-interface)", "severity": "ERROR" } ] diff --git a/ets2panda/linter/test/deprecatedapi/lazy_for_each.ets.args.json b/ets2panda/linter/test/deprecatedapi/lazy_for_each.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..4acc088d1da62353e56ced57f16b342de413cb78 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/lazy_for_each.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/lazy_for_each.ets.arkts2.json b/ets2panda/linter/test/deprecatedapi/lazy_for_each.ets.arkts2.json new file mode 100644 index 0000000000000000000000000000000000000000..d1068b2c6c902dc7da3ae85965b941d3d3f0aeea --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/lazy_for_each.ets.arkts2.json @@ -0,0 +1,298 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 21, + "column": 12, + "endLine": 21, + "endColumn": 13, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 25, + "column": 33, + "endLine": 25, + "endColumn": 38, + "problem": "ArrayIndexExprType", + "suggest": "", + "rule": "The index expression must be of a numeric type (arkts-array-index-expr-type)", + "severity": "ERROR" + }, + { + "line": 29, + "column": 44, + "endLine": 29, + "endColumn": 45, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 36, + "column": 11, + "endLine": 36, + "endColumn": 49, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 37, + "column": 16, + "endLine": 37, + "endColumn": 17, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 39, + "column": 34, + "endLine": 39, + "endColumn": 35, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 82, + "column": 27, + "endLine": 82, + "endColumn": 32, + "problem": "ArrayIndexExprType", + "suggest": "", + "rule": "The index expression must be of a numeric type (arkts-array-index-expr-type)", + "severity": "ERROR" + }, + { + "line": 86, + "column": 34, + "endLine": 86, + "endColumn": 35, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 92, + "column": 48, + "endLine": 92, + "endColumn": 49, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 102, + "column": 14, + "endLine": 102, + "endColumn": 19, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 102, + "column": 18, + "endLine": 102, + "endColumn": 19, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 102, + "column": 26, + "endLine": 102, + "endColumn": 28, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 108, + "column": 19, + "endLine": 108, + "endColumn": 20, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 112, + "column": 33, + "endLine": 112, + "endColumn": 35, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 116, + "column": 28, + "endLine": 116, + "endColumn": 30, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 116, + "column": 39, + "endLine": 116, + "endColumn": 41, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 119, + "column": 19, + "endLine": 119, + "endColumn": 20, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 16, + "column": 34, + "endLine": 16, + "endColumn": 45, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"IDataSource\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 17, + "column": 22, + "endLine": 17, + "endColumn": 40, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"DataChangeListener\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 28, + "column": 40, + "endLine": 28, + "endColumn": 58, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"DataChangeListener\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 35, + "column": 42, + "endLine": 35, + "endColumn": 60, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"DataChangeListener\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 96, + "column": 2, + "endLine": 96, + "endColumn": 7, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Entry\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 97, + "column": 2, + "endLine": 97, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Component\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 108, + "column": 5, + "endLine": 108, + "endColumn": 9, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"List\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 109, + "column": 7, + "endLine": 109, + "endColumn": 18, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"LazyForEach\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 110, + "column": 9, + "endLine": 110, + "endColumn": 17, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"ListItem\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 111, + "column": 11, + "endLine": 111, + "endColumn": 14, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Row\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 112, + "column": 13, + "endLine": 112, + "endColumn": 17, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Text\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/measure.ets.args.json b/ets2panda/linter/test/deprecatedapi/measure.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..4acc088d1da62353e56ced57f16b342de413cb78 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/measure.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/measure.ets.arkts2.json b/ets2panda/linter/test/deprecatedapi/measure.ets.arkts2.json new file mode 100644 index 0000000000000000000000000000000000000000..a52ce66124292611d03e23134bd8d79db201d134 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/measure.ets.arkts2.json @@ -0,0 +1,98 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 18, + "column": 2, + "endLine": 18, + "endColumn": 7, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Entry\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 19, + "column": 2, + "endLine": 19, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Component\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 21, + "column": 13, + "endLine": 21, + "endColumn": 24, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"SizeOptions\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 25, + "column": 4, + "endLine": 25, + "endColumn": 9, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"State\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 31, + "column": 5, + "endLine": 31, + "endColumn": 8, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Row\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 32, + "column": 7, + "endLine": 32, + "endColumn": 13, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Column\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 33, + "column": 9, + "endLine": 33, + "endColumn": 13, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Text\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 34, + "column": 9, + "endLine": 34, + "endColumn": 13, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Text\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/mediaquery.ets.args.json b/ets2panda/linter/test/deprecatedapi/mediaquery.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..4acc088d1da62353e56ced57f16b342de413cb78 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/mediaquery.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/mediaquery.ets.arkts2.json b/ets2panda/linter/test/deprecatedapi/mediaquery.ets.arkts2.json new file mode 100644 index 0000000000000000000000000000000000000000..da87e06462d7ba4ac3d6d827f41c71376652f0a7 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/mediaquery.ets.arkts2.json @@ -0,0 +1,128 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 47, + "column": 32, + "endLine": 47, + "endColumn": 34, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 18, + "column": 2, + "endLine": 18, + "endColumn": 7, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Entry\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 19, + "column": 2, + "endLine": 19, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Component\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 21, + "column": 4, + "endLine": 21, + "endColumn": 9, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"State\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 22, + "column": 4, + "endLine": 22, + "endColumn": 9, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"State\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 46, + "column": 5, + "endLine": 46, + "endColumn": 9, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Flex\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 46, + "column": 23, + "endLine": 46, + "endColumn": 36, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"FlexDirection\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 46, + "column": 37, + "endLine": 46, + "endColumn": 43, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Column\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 46, + "column": 57, + "endLine": 46, + "endColumn": 66, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"ItemAlign\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 46, + "column": 91, + "endLine": 46, + "endColumn": 100, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"FlexAlign\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 47, + "column": 7, + "endLine": 47, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Text\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/navigation.ets.args.json b/ets2panda/linter/test/deprecatedapi/navigation.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..4acc088d1da62353e56ced57f16b342de413cb78 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/navigation.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/navigation.ets.arkts2.json b/ets2panda/linter/test/deprecatedapi/navigation.ets.arkts2.json new file mode 100644 index 0000000000000000000000000000000000000000..3fe72f3f5a600ecead4a4dc985397f74e927b46e --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/navigation.ets.arkts2.json @@ -0,0 +1,98 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 20, + "column": 21, + "endLine": 20, + "endColumn": 23, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 26, + "column": 21, + "endLine": 26, + "endColumn": 23, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 29, + "column": 20, + "endLine": 29, + "endColumn": 22, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 16, + "column": 2, + "endLine": 16, + "endColumn": 7, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Entry\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 17, + "column": 2, + "endLine": 17, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Component\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 20, + "column": 5, + "endLine": 20, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Column\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 21, + "column": 7, + "endLine": 21, + "endColumn": 10, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Row\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 22, + "column": 9, + "endLine": 22, + "endColumn": 19, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Navigation\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/ohos_animator.ets.arkts2.json b/ets2panda/linter/test/deprecatedapi/ohos_animator.ets.arkts2.json old mode 100755 new mode 100644 index 004254eb4c1ba743ae16e96dd7c64bd17f17405a..23bca9ca73b8c91083d1bdf04febefef58902c18 --- a/ets2panda/linter/test/deprecatedapi/ohos_animator.ets.arkts2.json +++ b/ets2panda/linter/test/deprecatedapi/ohos_animator.ets.arkts2.json @@ -44,6 +44,16 @@ "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" }, + { + "line": 30, + "column": 1, + "endLine": 30, + "endColumn": 31, + "problem": "BuilderNodeUpdateNoLiteral", + "suggest": "", + "rule": "The \"update\" interface of \"BuilderNode\" does not accept an object literal. Please replace it with an instance of the class specified in the generic when creating a new \"BuilderNode\", and ensure that the instance has the same field values as the literal (arkui-buildernode-update-no-literal)", + "severity": "ERROR" + }, { "line": 16, "column": 10, diff --git a/ets2panda/linter/test/deprecatedapi/refresh.ets.args.json b/ets2panda/linter/test/deprecatedapi/refresh.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..4acc088d1da62353e56ced57f16b342de413cb78 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/refresh.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/refresh.ets.arkts2.json b/ets2panda/linter/test/deprecatedapi/refresh.ets.arkts2.json new file mode 100644 index 0000000000000000000000000000000000000000..9a3dd460846c069c65f1b3e56256bb73acce6543 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/refresh.ets.arkts2.json @@ -0,0 +1,248 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 26, + "column": 29, + "endLine": 26, + "endColumn": 48, + "problem": "DoubleDollarBindingNotSupported", + "suggest": "", + "rule": "\"$$\" for bidirectional data binding is not supported (arkui-no-$$-bidirectional-data-binding)", + "severity": "ERROR" + }, + { + "line": 26, + "column": 58, + "endLine": 26, + "endColumn": 59, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 32, + "column": 25, + "endLine": 32, + "endColumn": 27, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 33, + "column": 27, + "endLine": 33, + "endColumn": 29, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 34, + "column": 25, + "endLine": 34, + "endColumn": 27, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 36, + "column": 31, + "endLine": 36, + "endColumn": 33, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 51, + "column": 22, + "endLine": 51, + "endColumn": 24, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 61, + "column": 12, + "endLine": 61, + "endColumn": 16, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 16, + "column": 2, + "endLine": 16, + "endColumn": 7, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Entry\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 17, + "column": 2, + "endLine": 17, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Component\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 19, + "column": 4, + "endLine": 19, + "endColumn": 9, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"State\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 20, + "column": 4, + "endLine": 20, + "endColumn": 9, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"State\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 21, + "column": 4, + "endLine": 21, + "endColumn": 9, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"State\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 25, + "column": 5, + "endLine": 25, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Column\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 26, + "column": 7, + "endLine": 26, + "endColumn": 14, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Refresh\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 27, + "column": 9, + "endLine": 27, + "endColumn": 13, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"List\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 28, + "column": 11, + "endLine": 28, + "endColumn": 18, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"ForEach\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 29, + "column": 13, + "endLine": 29, + "endColumn": 21, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"ListItem\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 30, + "column": 15, + "endLine": 30, + "endColumn": 19, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Text\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 35, + "column": 28, + "endLine": 35, + "endColumn": 37, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"TextAlign\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 46, + "column": 24, + "endLine": 46, + "endColumn": 37, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"ListItemAlign\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 47, + "column": 20, + "endLine": 47, + "endColumn": 28, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"BarState\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 52, + "column": 38, + "endLine": 52, + "endColumn": 51, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"RefreshStatus\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/slider_api.ets.args.json b/ets2panda/linter/test/deprecatedapi/slider_api.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..4acc088d1da62353e56ced57f16b342de413cb78 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/slider_api.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/slider_api.ets.arkts2.json b/ets2panda/linter/test/deprecatedapi/slider_api.ets.arkts2.json new file mode 100644 index 0000000000000000000000000000000000000000..811b3fa6edb311680f99de72c56efc371290d6cc --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/slider_api.ets.arkts2.json @@ -0,0 +1,78 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 21, + "column": 21, + "endLine": 21, + "endColumn": 22, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 17, + "column": 2, + "endLine": 17, + "endColumn": 7, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Entry\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 18, + "column": 2, + "endLine": 18, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Component\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 21, + "column": 5, + "endLine": 21, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Column\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 22, + "column": 7, + "endLine": 22, + "endColumn": 10, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Row\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 23, + "column": 9, + "endLine": 23, + "endColumn": 15, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Slider\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/swiper_api.ets.arkts2.json b/ets2panda/linter/test/deprecatedapi/swiper_api.ets.arkts2.json index 9aeb20fcecfe373e000c3fd631edb1ef6f643bcc..a169c132ce8a6e17f42b44ad7a53ff65dd6effeb 100755 --- a/ets2panda/linter/test/deprecatedapi/swiper_api.ets.arkts2.json +++ b/ets2panda/linter/test/deprecatedapi/swiper_api.ets.arkts2.json @@ -24,6 +24,16 @@ "rule": "ArkUI deprecated api check (arkui-no-deprecated-api)", "severity": "ERROR" }, + { + "line": 17, + "column": 7, + "endLine": 17, + "endColumn": 11, + "problem": "InterfaceFieldNotImplemented", + "suggest": "", + "rule": "ArkTS 1.2 should implement all fields in the interface in the class (arkts-no-class-omit-interface-optional-prop)", + "severity": "ERROR" + }, { "line": 18, "column": 15, @@ -295,4 +305,4 @@ "severity": "ERROR" } ] -} \ No newline at end of file +} diff --git a/ets2panda/linter/test/deprecatedapi/text_input.ets.args.json b/ets2panda/linter/test/deprecatedapi/text_input.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..4acc088d1da62353e56ced57f16b342de413cb78 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/text_input.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/text_input.ets.arkts2.json b/ets2panda/linter/test/deprecatedapi/text_input.ets.arkts2.json new file mode 100644 index 0000000000000000000000000000000000000000..dd029d72759d079651eeae7e5aef81800af40361 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/text_input.ets.arkts2.json @@ -0,0 +1,88 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 19, + "column": 41, + "endLine": 19, + "endColumn": 60, + "problem": "DynamicCtorCall", + "suggest": "", + "rule": "\"new\" expression with dynamic constructor type is not supported (arkts-no-dynamic-ctor-call)", + "severity": "ERROR" + }, + { + "line": 16, + "column": 2, + "endLine": 16, + "endColumn": 7, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Entry\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 17, + "column": 2, + "endLine": 17, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Component\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 19, + "column": 15, + "endLine": 19, + "endColumn": 34, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"TextInputController\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 19, + "column": 41, + "endLine": 19, + "endColumn": 60, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"TextInputController\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 22, + "column": 5, + "endLine": 22, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Column\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 23, + "column": 7, + "endLine": 23, + "endColumn": 16, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"TextInput\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/text_picker.ets.args.json b/ets2panda/linter/test/deprecatedapi/text_picker.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..4acc088d1da62353e56ced57f16b342de413cb78 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/text_picker.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/text_picker.ets.arkts2.json b/ets2panda/linter/test/deprecatedapi/text_picker.ets.arkts2.json new file mode 100644 index 0000000000000000000000000000000000000000..0579213c3c729ce6593b6816cc446f8cf5493058 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/text_picker.ets.arkts2.json @@ -0,0 +1,108 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 19, + "column": 28, + "endLine": 19, + "endColumn": 29, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 26, + "column": 17, + "endLine": 26, + "endColumn": 19, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 34, + "column": 28, + "endLine": 34, + "endColumn": 39, + "problem": "ArrayIndexExprType", + "suggest": "", + "rule": "The index expression must be of a numeric type (arkts-array-index-expr-type)", + "severity": "ERROR" + }, + { + "line": 16, + "column": 2, + "endLine": 16, + "endColumn": 7, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Entry\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 17, + "column": 2, + "endLine": 17, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Component\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 24, + "column": 5, + "endLine": 24, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Column\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 25, + "column": 7, + "endLine": 25, + "endColumn": 13, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Button\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 28, + "column": 11, + "endLine": 28, + "endColumn": 27, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"TextPickerDialog\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 31, + "column": 7, + "endLine": 31, + "endColumn": 17, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"TextPicker\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/xcomponent.ets.args.json b/ets2panda/linter/test/deprecatedapi/xcomponent.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..4acc088d1da62353e56ced57f16b342de413cb78 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/xcomponent.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/deprecatedapi/xcomponent.ets.arkts2.json b/ets2panda/linter/test/deprecatedapi/xcomponent.ets.arkts2.json new file mode 100644 index 0000000000000000000000000000000000000000..0e998f08269e40119b64bda69f1b01fb3ee2f528 --- /dev/null +++ b/ets2panda/linter/test/deprecatedapi/xcomponent.ets.arkts2.json @@ -0,0 +1,148 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 19, + "column": 52, + "endLine": 19, + "endColumn": 72, + "problem": "DynamicCtorCall", + "suggest": "", + "rule": "\"new\" expression with dynamic constructor type is not supported (arkts-no-dynamic-ctor-call)", + "severity": "ERROR" + }, + { + "line": 28, + "column": 76, + "endLine": 28, + "endColumn": 80, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 28, + "column": 95, + "endLine": 28, + "endColumn": 99, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 32, + "column": 6, + "endLine": 32, + "endColumn": 14, + "problem": "SdkTypeQuery", + "suggest": "", + "rule": "Using typeof as a type is not allowed in this API (sdk-type-query)", + "severity": "ERROR" + }, + { + "line": 32, + "column": 19, + "endLine": 32, + "endColumn": 20, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 32, + "column": 25, + "endLine": 32, + "endColumn": 27, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 16, + "column": 2, + "endLine": 16, + "endColumn": 7, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Entry\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 17, + "column": 2, + "endLine": 17, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Component\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 19, + "column": 25, + "endLine": 19, + "endColumn": 45, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"XComponentController\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 19, + "column": 52, + "endLine": 19, + "endColumn": 72, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"XComponentController\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 21, + "column": 5, + "endLine": 21, + "endColumn": 8, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Row\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 22, + "column": 7, + "endLine": 22, + "endColumn": 17, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"XComponent\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 31, + "column": 22, + "endLine": 31, + "endColumn": 27, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Color\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/interop/binary_operation_js_obj.ets.autofix.json b/ets2panda/linter/test/interop/binary_operation_js_obj.ets.autofix.json index b66ee99fd1e2138ce303809ce29f899724b7fd03..950dead5c234a56c680131b73543475d20a7ba6c 100644 --- a/ets2panda/linter/test/interop/binary_operation_js_obj.ets.autofix.json +++ b/ets2panda/linter/test/interop/binary_operation_js_obj.ets.autofix.json @@ -20,26 +20,6 @@ "endLine": 15, "endColumn": 53, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 604, - "end": 656, - "replacementText": "", - "line": 15, - "column": 1, - "endLine": 15, - "endColumn": 53 - }, - { - "start": 656, - "end": 656, - "replacementText": "let foo = ESValue.load('./binary_operation_js_obj_js').getProperty('foo');\nlet m = ESValue.load('./binary_operation_js_obj_js').getProperty('m');\nlet n = ESValue.load('./binary_operation_js_obj_js').getProperty('n');", - "line": 15, - "column": 1, - "endLine": 15, - "endColumn": 53 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" diff --git a/ets2panda/linter/test/interop/binary_operation_js_obj.ets.migrate.ets b/ets2panda/linter/test/interop/binary_operation_js_obj.ets.migrate.ets index b22867f793c806789f4c788301cdd18f0cffb154..5c4f835784d72e4a0bf720da6d48d176852e4ad1 100644 --- a/ets2panda/linter/test/interop/binary_operation_js_obj.ets.migrate.ets +++ b/ets2panda/linter/test/interop/binary_operation_js_obj.ets.migrate.ets @@ -12,9 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -let foo = ESValue.load('./binary_operation_js_obj_js').getProperty('foo'); -let m = ESValue.load('./binary_operation_js_obj_js').getProperty('m'); -let n = ESValue.load('./binary_operation_js_obj_js').getProperty('n'); +import {foo,m,n} from "./binary_operation_js_obj_js" let a = foo.getProperty("a") let b = foo.getProperty("b") a + b diff --git a/ets2panda/linter/test/interop/binary_operation_js_obj.ets.migrate.json b/ets2panda/linter/test/interop/binary_operation_js_obj.ets.migrate.json index eba74eaf8742dbcfe30b877eb998a622f3a83a4a..0f7384dffa2b6c6d565e67310f0736f6dfa48252 100644 --- a/ets2panda/linter/test/interop/binary_operation_js_obj.ets.migrate.json +++ b/ets2panda/linter/test/interop/binary_operation_js_obj.ets.migrate.json @@ -16,19 +16,19 @@ "result": [ { "line": 15, - "column": 5, + "column": 1, "endLine": 15, - "endColumn": 74, - "problem": "AnyType", + "endColumn": 53, + "problem": "InterOpImportJs", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" }, { "line": 16, "column": 5, "endLine": 16, - "endColumn": 70, + "endColumn": 29, "problem": "AnyType", "suggest": "", "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", @@ -38,26 +38,6 @@ "line": 17, "column": 5, "endLine": 17, - "endColumn": 70, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 18, - "column": 5, - "endLine": 18, - "endColumn": 29, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 19, - "column": 5, - "endLine": 19, "endColumn": 29, "problem": "AnyType", "suggest": "", @@ -65,9 +45,9 @@ "severity": "ERROR" }, { - "line": 25, + "line": 23, "column": 1, - "endLine": 25, + "endLine": 23, "endColumn": 15, "problem": "MathPow", "suggest": "", @@ -75,9 +55,9 @@ "severity": "ERROR" }, { - "line": 29, + "line": 27, "column": 1, - "endLine": 29, + "endLine": 27, "endColumn": 37, "problem": "MathPow", "suggest": "", @@ -85,9 +65,9 @@ "severity": "ERROR" }, { - "line": 35, + "line": 33, "column": 1, - "endLine": 35, + "endLine": 33, "endColumn": 15, "problem": "MathPow", "suggest": "", @@ -95,9 +75,9 @@ "severity": "ERROR" }, { - "line": 47, + "line": 45, "column": 1, - "endLine": 47, + "endLine": 45, "endColumn": 17, "problem": "MathPow", "suggest": "", diff --git a/ets2panda/linter/test/interop/call_function.ets.autofix.json b/ets2panda/linter/test/interop/call_function.ets.autofix.json index b1910efb3d5a91a376022ee75a391ec36a5cae32..206be26dd22cf08430da8f0425958201401b8c50 100644 --- a/ets2panda/linter/test/interop/call_function.ets.autofix.json +++ b/ets2panda/linter/test/interop/call_function.ets.autofix.json @@ -20,26 +20,6 @@ "endLine": 15, "endColumn": 43, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 604, - "end": 646, - "replacementText": "", - "line": 15, - "column": 1, - "endLine": 15, - "endColumn": 43 - }, - { - "start": 646, - "end": 646, - "replacementText": "let foo = ESValue.load('./call_function_js').getProperty('foo');\nlet bar = ESValue.load('./call_function_js').getProperty('bar');", - "line": 15, - "column": 1, - "endLine": 15, - "endColumn": 43 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" @@ -50,26 +30,6 @@ "endLine": 16, "endColumn": 39, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 647, - "end": 685, - "replacementText": "", - "line": 16, - "column": 1, - "endLine": 16, - "endColumn": 39 - }, - { - "start": 685, - "end": 685, - "replacementText": "let a = ESValue.load('./call_function_js').getProperty('a');\nlet b = ESValue.load('./call_function_js').getProperty('b');", - "line": 16, - "column": 1, - "endLine": 16, - "endColumn": 39 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" diff --git a/ets2panda/linter/test/interop/call_function.ets.migrate.ets b/ets2panda/linter/test/interop/call_function.ets.migrate.ets index dfacfa530a2a15d81bfb991440298883f59da1ba..488924d012ea7a6c533ed9be6340ea7676f57123 100644 --- a/ets2panda/linter/test/interop/call_function.ets.migrate.ets +++ b/ets2panda/linter/test/interop/call_function.ets.migrate.ets @@ -12,10 +12,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -let foo = ESValue.load('./call_function_js').getProperty('foo'); -let bar = ESValue.load('./call_function_js').getProperty('bar'); -let a = ESValue.load('./call_function_js').getProperty('a'); -let b = ESValue.load('./call_function_js').getProperty('b'); +import {foo,bar} from "./call_function_js" +import {a,b} from "./call_function_js" foo.invoke() bar.invoke(ESValue.wrap(123.0)) diff --git a/ets2panda/linter/test/interop/call_function.ets.migrate.json b/ets2panda/linter/test/interop/call_function.ets.migrate.json index 2ca11b5859e69c41117613fd5c92d56af705b129..c9ca5e0d96fd9c8b231049bc0b25fc487020c4e1 100644 --- a/ets2panda/linter/test/interop/call_function.ets.migrate.json +++ b/ets2panda/linter/test/interop/call_function.ets.migrate.json @@ -16,42 +16,22 @@ "result": [ { "line": 15, - "column": 5, + "column": 1, "endLine": 15, - "endColumn": 64, - "problem": "AnyType", + "endColumn": 43, + "problem": "InterOpImportJs", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" }, { "line": 16, - "column": 5, + "column": 1, "endLine": 16, - "endColumn": 64, - "problem": "AnyType", + "endColumn": 39, + "problem": "InterOpImportJs", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 17, - "column": 5, - "endLine": 17, - "endColumn": 60, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 18, - "column": 5, - "endLine": 18, - "endColumn": 60, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" } ] diff --git a/ets2panda/linter/test/interop/call_object_methods.ets.autofix.json b/ets2panda/linter/test/interop/call_object_methods.ets.autofix.json index 00cdf6a59e5ec307ff6745fc7a892f1468ce27c7..afc8eb134a088f606ce6dcbacd6b0be75281bac7 100644 --- a/ets2panda/linter/test/interop/call_object_methods.ets.autofix.json +++ b/ets2panda/linter/test/interop/call_object_methods.ets.autofix.json @@ -20,26 +20,6 @@ "endLine": 15, "endColumn": 47, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 604, - "end": 650, - "replacementText": "", - "line": 15, - "column": 1, - "endLine": 15, - "endColumn": 47 - }, - { - "start": 650, - "end": 650, - "replacementText": "let foo = ESValue.load('./call_object_methods_js').getProperty('foo');", - "line": 15, - "column": 1, - "endLine": 15, - "endColumn": 47 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" diff --git a/ets2panda/linter/test/interop/call_object_methods.ets.migrate.ets b/ets2panda/linter/test/interop/call_object_methods.ets.migrate.ets index c92ae9f532301f757cb685d7d746ea3f91203579..d18b4715365f3f292433fc55b19e04d98c724535 100644 --- a/ets2panda/linter/test/interop/call_object_methods.ets.migrate.ets +++ b/ets2panda/linter/test/interop/call_object_methods.ets.migrate.ets @@ -12,7 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -let foo = ESValue.load('./call_object_methods_js').getProperty('foo'); +import { foo } from "./call_object_methods_js" foo.invokeMethod("bar", ESValue.wrap(123.0)) diff --git a/ets2panda/linter/test/interop/call_object_methods.ets.migrate.json b/ets2panda/linter/test/interop/call_object_methods.ets.migrate.json index 149a43f6f592beed295eb162f2eb5adb2f8c0e1c..94a7c680a7bed414b3aac1b4c0da3972817f96d1 100644 --- a/ets2panda/linter/test/interop/call_object_methods.ets.migrate.json +++ b/ets2panda/linter/test/interop/call_object_methods.ets.migrate.json @@ -16,12 +16,12 @@ "result": [ { "line": 15, - "column": 5, + "column": 1, "endLine": 15, - "endColumn": 70, - "problem": "AnyType", + "endColumn": 47, + "problem": "InterOpImportJs", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" } ] diff --git a/ets2panda/linter/test/interop/increases_decreases_js_obj.ets.autofix.json b/ets2panda/linter/test/interop/increases_decreases_js_obj.ets.autofix.json index 465ba2da807da1e35435da6a6f7b6a33016d2af3..e9af2d47b12258b4f93b91f9aae002c4d6acbca4 100644 --- a/ets2panda/linter/test/interop/increases_decreases_js_obj.ets.autofix.json +++ b/ets2panda/linter/test/interop/increases_decreases_js_obj.ets.autofix.json @@ -20,26 +20,6 @@ "endLine": 15, "endColumn": 52, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 604, - "end": 655, - "replacementText": "", - "line": 15, - "column": 1, - "endLine": 15, - "endColumn": 52 - }, - { - "start": 655, - "end": 655, - "replacementText": "let foo = ESValue.load('./increases_decreases_js_obj_js').getProperty('foo');", - "line": 15, - "column": 1, - "endLine": 15, - "endColumn": 52 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" @@ -402,4 +382,4 @@ "severity": "ERROR" } ] -} +} \ No newline at end of file diff --git a/ets2panda/linter/test/interop/increases_decreases_js_obj.ets.migrate.ets b/ets2panda/linter/test/interop/increases_decreases_js_obj.ets.migrate.ets index 1cd740b7b56eff7959389116baf2e35e3b15c86c..cde3dfacf9603ad8b8b0311c8fa27026fa5e7616 100644 --- a/ets2panda/linter/test/interop/increases_decreases_js_obj.ets.migrate.ets +++ b/ets2panda/linter/test/interop/increases_decreases_js_obj.ets.migrate.ets @@ -12,7 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -let foo = ESValue.load('./increases_decreases_js_obj_js').getProperty('foo'); +import {foo} from "./increases_decreases_js_obj_js" let a: number =0.0 a = foo.getProperty("num").toNumber() foo.setProperty(num, a + 1.0) diff --git a/ets2panda/linter/test/interop/increases_decreases_js_obj.ets.migrate.json b/ets2panda/linter/test/interop/increases_decreases_js_obj.ets.migrate.json index f9906637d18ef0f43d5e7e4e13cef33aad5184fe..c1eebeb25c56ef572edb41bc0480ef0fb51e8bab 100644 --- a/ets2panda/linter/test/interop/increases_decreases_js_obj.ets.migrate.json +++ b/ets2panda/linter/test/interop/increases_decreases_js_obj.ets.migrate.json @@ -16,12 +16,12 @@ "result": [ { "line": 15, - "column": 5, + "column": 1, "endLine": 15, - "endColumn": 77, - "problem": "AnyType", + "endColumn": 52, + "problem": "InterOpImportJs", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" }, { @@ -65,4 +65,4 @@ "severity": "ERROR" } ] -} +} \ No newline at end of file diff --git a/ets2panda/linter/test/interop/instantiated_js_obj.ets.autofix.json b/ets2panda/linter/test/interop/instantiated_js_obj.ets.autofix.json index d00f4ee0da5ca1764dd8f2f81533ce6f14c0af62..a0da97f1f6ab56d0e9be78800c3a59ed8d78d18c 100644 --- a/ets2panda/linter/test/interop/instantiated_js_obj.ets.autofix.json +++ b/ets2panda/linter/test/interop/instantiated_js_obj.ets.autofix.json @@ -20,26 +20,6 @@ "endLine": 16, "endColumn": 51, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 605, - "end": 655, - "replacementText": "", - "line": 16, - "column": 1, - "endLine": 16, - "endColumn": 51 - }, - { - "start": 655, - "end": 655, - "replacementText": "let Foo = ESValue.load('./instantiated_js_obj_js').getProperty('Foo');\nlet Foo1 = ESValue.load('./instantiated_js_obj_js').getProperty('Foo1');", - "line": 16, - "column": 1, - "endLine": 16, - "endColumn": 51 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" diff --git a/ets2panda/linter/test/interop/instantiated_js_obj.ets.migrate.ets b/ets2panda/linter/test/interop/instantiated_js_obj.ets.migrate.ets index 5ad9c490c7a58acadc8886b9f09523ed64f8e8ad..c41c16e387b95fdbf4bf38b976b4b7a0e0aece46 100644 --- a/ets2panda/linter/test/interop/instantiated_js_obj.ets.migrate.ets +++ b/ets2panda/linter/test/interop/instantiated_js_obj.ets.migrate.ets @@ -13,8 +13,7 @@ * limitations under the License. */ -let Foo = ESValue.load('./instantiated_js_obj_js').getProperty('Foo'); -let Foo1 = ESValue.load('./instantiated_js_obj_js').getProperty('Foo1'); +import {Foo, Foo1} from "./instantiated_js_obj_js" class A { num: number = 1.0; constructor() { diff --git a/ets2panda/linter/test/interop/instantiated_js_obj.ets.migrate.json b/ets2panda/linter/test/interop/instantiated_js_obj.ets.migrate.json index a1be17f7a40899eb98b78b56687678a26cf3b3fd..8ae4b51b2e860913274a052ebd930922bdafa5cc 100644 --- a/ets2panda/linter/test/interop/instantiated_js_obj.ets.migrate.json +++ b/ets2panda/linter/test/interop/instantiated_js_obj.ets.migrate.json @@ -16,22 +16,12 @@ "result": [ { "line": 16, - "column": 5, + "column": 1, "endLine": 16, - "endColumn": 70, - "problem": "AnyType", + "endColumn": 51, + "problem": "InterOpImportJs", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 17, - "column": 5, - "endLine": 17, - "endColumn": 72, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" } ] diff --git a/ets2panda/linter/test/interop/interop_convert_import.ets.autofix.json b/ets2panda/linter/test/interop/interop_convert_import.ets.autofix.json index 8f8b73e3cdbb7c0e0f2a2cfd2c00ea33fe9881d9..e90ddfedb1e2b6569ca3a200c81a31019f672661 100644 --- a/ets2panda/linter/test/interop/interop_convert_import.ets.autofix.json +++ b/ets2panda/linter/test/interop/interop_convert_import.ets.autofix.json @@ -30,26 +30,6 @@ "endLine": 17, "endColumn": 106, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 636, - "end": 740, - "replacementText": "", - "line": 17, - "column": 2, - "endLine": 17, - "endColumn": 106 - }, - { - "start": 740, - "end": 740, - "replacementText": "let foo = ESValue.load('./interop_convert_import_js.js').getProperty('foo');\r\nlet foo2 = ESValue.load('./interop_convert_import_js.js').getProperty('foo2');\r\nlet foo3 = ESValue.load('./interop_convert_import_js.js').getProperty('foo3');\r\nlet foo4 = ESValue.load('./interop_convert_import_js.js').getProperty('foo4');\r\nlet array_val = ESValue.load('./interop_convert_import_js.js').getProperty('array_val');\r\nlet null_val = ESValue.load('./interop_convert_import_js.js').getProperty('null_val');\r\nlet undefined_val = ESValue.load('./interop_convert_import_js.js').getProperty('undefined_val');", - "line": 17, - "column": 2, - "endLine": 17, - "endColumn": 106 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" diff --git a/ets2panda/linter/test/interop/interop_convert_import.ets.migrate.ets b/ets2panda/linter/test/interop/interop_convert_import.ets.migrate.ets index 2b727d66126cbe57d0abd8e2b63ea341b63ab076..a04503ccc23347821ab0beb697e7db0205ad8ada 100644 --- a/ets2panda/linter/test/interop/interop_convert_import.ets.migrate.ets +++ b/ets2panda/linter/test/interop/interop_convert_import.ets.migrate.ets @@ -14,13 +14,7 @@ */ 'use static' - let foo = ESValue.load('./interop_convert_import_js.js').getProperty('foo'); -let foo2 = ESValue.load('./interop_convert_import_js.js').getProperty('foo2'); -let foo3 = ESValue.load('./interop_convert_import_js.js').getProperty('foo3'); -let foo4 = ESValue.load('./interop_convert_import_js.js').getProperty('foo4'); -let array_val = ESValue.load('./interop_convert_import_js.js').getProperty('array_val'); -let null_val = ESValue.load('./interop_convert_import_js.js').getProperty('null_val'); -let undefined_val = ESValue.load('./interop_convert_import_js.js').getProperty('undefined_val'); + import {foo, foo2, foo3, foo4, array_val, null_val, undefined_val} from "./interop_convert_import_js.js" let a: number = foo.getProperty("num").toNumber() let a1: boolean = foo2.getProperty("bool").toBoolean() diff --git a/ets2panda/linter/test/interop/interop_convert_import.ets.migrate.json b/ets2panda/linter/test/interop/interop_convert_import.ets.migrate.json index 169c0b6ce01c22d2aac5a7fd59241d93a5b78c79..477162ca035537626a2cdf2e2a5e633a98b9b8ba 100644 --- a/ets2panda/linter/test/interop/interop_convert_import.ets.migrate.json +++ b/ets2panda/linter/test/interop/interop_convert_import.ets.migrate.json @@ -16,89 +16,69 @@ "result": [ { "line": 17, - "column": 6, + "column": 2, "endLine": 17, - "endColumn": 77, - "problem": "AnyType", + "endColumn": 106, + "problem": "ImportAfterStatement", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "\"import\" statements after other statements are not allowed (arkts-no-misplaced-imports)", "severity": "ERROR" }, { - "line": 18, - "column": 5, - "endLine": 18, - "endColumn": 78, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 19, - "column": 5, - "endLine": 19, - "endColumn": 78, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 20, - "column": 5, - "endLine": 20, - "endColumn": 78, - "problem": "AnyType", + "line": 17, + "column": 2, + "endLine": 17, + "endColumn": 106, + "problem": "InterOpImportJs", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" }, { - "line": 21, - "column": 5, - "endLine": 21, - "endColumn": 88, - "problem": "AnyType", + "line": 25, + "column": 9, + "endLine": 25, + "endColumn": 27, + "problem": "InterOpConvertImport", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Casting interop JS objects to primitive types is not allowed (arkts-interop-js2s-convert-js-type)", "severity": "ERROR" }, { - "line": 22, - "column": 5, - "endLine": 22, - "endColumn": 86, - "problem": "AnyType", + "line": 25, + "column": 44, + "endLine": 25, + "endColumn": 68, + "problem": "GenericCallNoTypeArgs", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", "severity": "ERROR" }, { - "line": 23, - "column": 5, - "endLine": 23, - "endColumn": 96, - "problem": "AnyType", + "line": 30, + "column": 9, + "endLine": 30, + "endColumn": 30, + "problem": "InterOpConvertImport", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Casting interop JS objects to primitive types is not allowed (arkts-interop-js2s-convert-js-type)", "severity": "ERROR" }, { - "line": 31, - "column": 44, - "endLine": 31, - "endColumn": 68, - "problem": "GenericCallNoTypeArgs", + "line": 35, + "column": 8, + "endLine": 35, + "endColumn": 24, + "problem": "InterOpConvertImport", "suggest": "", - "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", + "rule": "Casting interop JS objects to primitive types is not allowed (arkts-interop-js2s-convert-js-type)", "severity": "ERROR" }, { - "line": 41, + "line": 40, "column": 8, - "endLine": 41, - "endColumn": 24, + "endLine": 40, + "endColumn": 34, "problem": "InterOpConvertImport", "suggest": "", "rule": "Casting interop JS objects to primitive types is not allowed (arkts-interop-js2s-convert-js-type)", diff --git a/ets2panda/linter/test/interop/interop_equality_judgment.ets.autofix.json b/ets2panda/linter/test/interop/interop_equality_judgment.ets.autofix.json index 3203f645acdc0de2bb729cf49897e7bb51653af4..73d6eea5c8064980fd5c71ce5995ccb80999269c 100644 --- a/ets2panda/linter/test/interop/interop_equality_judgment.ets.autofix.json +++ b/ets2panda/linter/test/interop/interop_equality_judgment.ets.autofix.json @@ -14,32 +14,12 @@ "limitations under the License." ], "result": [ - { + { "line": 16, "column": 1, "endLine": 16, "endColumn": 58, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 605, - "end": 662, - "replacementText": "", - "line": 16, - "column": 1, - "endLine": 16, - "endColumn": 58 - }, - { - "start": 662, - "end": 662, - "replacementText": "let a = ESValue.load('./interop_equality_judgment_js').getProperty('a');\nlet b = ESValue.load('./interop_equality_judgment_js').getProperty('b');\nlet c = ESValue.load('./interop_equality_judgment_js').getProperty('c');\nlet d = ESValue.load('./interop_equality_judgment_js').getProperty('d');", - "line": 16, - "column": 1, - "endLine": 16, - "endColumn": 58 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" @@ -380,5 +360,5 @@ "rule": "Properties of interop objects can't be accessed directly (arkts-interop-js2s-access-js-prop)", "severity": "ERROR" } - ] -} + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/interop/interop_equality_judgment.ets.migrate.ets b/ets2panda/linter/test/interop/interop_equality_judgment.ets.migrate.ets index 97c56d0dda0f930edb5db48d1f6fd0b9810fae45..f0bdc4e3ea0e54767723b86fac1a5582629d621b 100644 --- a/ets2panda/linter/test/interop/interop_equality_judgment.ets.migrate.ets +++ b/ets2panda/linter/test/interop/interop_equality_judgment.ets.migrate.ets @@ -13,10 +13,7 @@ * limitations under the License. */ -let a = ESValue.load('./interop_equality_judgment_js').getProperty('a'); -let b = ESValue.load('./interop_equality_judgment_js').getProperty('b'); -let c = ESValue.load('./interop_equality_judgment_js').getProperty('c'); -let d = ESValue.load('./interop_equality_judgment_js').getProperty('d'); +import {a, b, c, d} from "./interop_equality_judgment_js" a.areEqual(b) !a.areEqual(b) a.areStrictlyEqual(b) diff --git a/ets2panda/linter/test/interop/interop_equality_judgment.ets.migrate.json b/ets2panda/linter/test/interop/interop_equality_judgment.ets.migrate.json index 165b58c9e802e1c4e81e049eee1043ed8a65cff9..1f0874db0ddfe681b007ec3fd09c2c1d15cab099 100644 --- a/ets2panda/linter/test/interop/interop_equality_judgment.ets.migrate.json +++ b/ets2panda/linter/test/interop/interop_equality_judgment.ets.migrate.json @@ -13,46 +13,56 @@ "See the License for the specific language governing permissions and", "limitations under the License." ], - "result": [ - { - "line": 16, - "column": 5, - "endLine": 16, - "endColumn": 72, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 17, - "column": 5, - "endLine": 17, - "endColumn": 72, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 18, - "column": 5, - "endLine": 18, - "endColumn": 72, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 19, - "column": 5, - "endLine": 19, - "endColumn": 72, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - } - ] -} + "result": [ + { + "line": 16, + "column": 1, + "endLine": 16, + "endColumn": 58, + "problem": "InterOpImportJs", + "suggest": "", + "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", + "severity": "ERROR" + }, + { + "line": 17, + "column": 12, + "endLine": 17, + "endColumn": 13, + "problem": "InteropJsObjectExpandStaticInstance", + "suggest": "", + "rule": "Direct usage of interop JS functions is not supported (arkts-interop-js2s-js-expand-static-instance)", + "severity": "ERROR" + }, + { + "line": 18, + "column": 13, + "endLine": 18, + "endColumn": 14, + "problem": "InteropJsObjectExpandStaticInstance", + "suggest": "", + "rule": "Direct usage of interop JS functions is not supported (arkts-interop-js2s-js-expand-static-instance)", + "severity": "ERROR" + }, + { + "line": 19, + "column": 20, + "endLine": 19, + "endColumn": 21, + "problem": "InteropJsObjectExpandStaticInstance", + "suggest": "", + "rule": "Direct usage of interop JS functions is not supported (arkts-interop-js2s-js-expand-static-instance)", + "severity": "ERROR" + }, + { + "line": 20, + "column": 21, + "endLine": 20, + "endColumn": 22, + "problem": "InteropJsObjectExpandStaticInstance", + "suggest": "", + "rule": "Direct usage of interop JS functions is not supported (arkts-interop-js2s-js-expand-static-instance)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/interop/interop_import_js.ets.autofix.json b/ets2panda/linter/test/interop/interop_import_js.ets.autofix.json index 968a9c014ed5b655e79bef8a1209714677507427..f8dbfb7b6c507c635f7e41fd8c93a7b1ee20432a 100755 --- a/ets2panda/linter/test/interop/interop_import_js.ets.autofix.json +++ b/ets2panda/linter/test/interop/interop_import_js.ets.autofix.json @@ -20,26 +20,6 @@ "endLine": 16, "endColumn": 38, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 606, - "end": 643, - "replacementText": "", - "line": 16, - "column": 1, - "endLine": 16, - "endColumn": 38 - }, - { - "start": 643, - "end": 643, - "replacementText": "let Cjs = ESValue.load('../main/js_lib').getProperty('Cjs');", - "line": 16, - "column": 1, - "endLine": 16, - "endColumn": 38 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" @@ -50,26 +30,6 @@ "endLine": 17, "endColumn": 38, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 644, - "end": 681, - "replacementText": "", - "line": 17, - "column": 1, - "endLine": 17, - "endColumn": 38 - }, - { - "start": 681, - "end": 681, - "replacementText": "let fjs = ESValue.load('../main/js_lib').getProperty('fjs');", - "line": 17, - "column": 1, - "endLine": 17, - "endColumn": 38 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" @@ -80,26 +40,6 @@ "endLine": 18, "endColumn": 64, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 682, - "end": 745, - "replacementText": "", - "line": 18, - "column": 1, - "endLine": 18, - "endColumn": 64 - }, - { - "start": 745, - "end": 745, - "replacementText": "let CPreview = ESValue.load('./jsfiles/preview_import_js').getProperty('CPreview');\nlet bar = ESValue.load('./jsfiles/preview_import_js').getProperty('bar');\nlet foo = ESValue.load('./jsfiles/preview_import_js').getProperty('foo');", - "line": 18, - "column": 1, - "endLine": 18, - "endColumn": 64 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" @@ -110,26 +50,6 @@ "endLine": 19, "endColumn": 44, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 746, - "end": 789, - "replacementText": "", - "line": 19, - "column": 1, - "endLine": 19, - "endColumn": 44 - }, - { - "start": 789, - "end": 789, - "replacementText": "let myAaa = ESValue.load('./interop_import_js_js').getProperty('aaa');", - "line": 19, - "column": 1, - "endLine": 19, - "endColumn": 44 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" @@ -140,26 +60,6 @@ "endLine": 20, "endColumn": 57, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 790, - "end": 846, - "replacementText": "", - "line": 20, - "column": 1, - "endLine": 20, - "endColumn": 57 - }, - { - "start": 846, - "end": 846, - "replacementText": "let myAaa = ESValue.load('./interop_import_js_js').getProperty('aaa');\nlet ClassA = ESValue.load('./interop_import_js_js').getProperty('ClassA');\nlet Dog = ESValue.load('./interop_import_js_js').getProperty('Dog');", - "line": 20, - "column": 1, - "endLine": 20, - "endColumn": 57 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" @@ -170,26 +70,6 @@ "endLine": 21, "endColumn": 47, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 847, - "end": 893, - "replacementText": "", - "line": 21, - "column": 1, - "endLine": 21, - "endColumn": 47 - }, - { - "start": 893, - "end": 893, - "replacementText": "let tjs = ESValue.load('./interop_import_js_js').getProperty('tjs');", - "line": 21, - "column": 1, - "endLine": 21, - "endColumn": 47 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" @@ -200,26 +80,6 @@ "endLine": 22, "endColumn": 59, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 894, - "end": 952, - "replacementText": "", - "line": 22, - "column": 1, - "endLine": 22, - "endColumn": 59 - }, - { - "start": 952, - "end": 952, - "replacementText": "let Wiki = ESValue.load('./interop_import_js_js').getProperty('Wiki');\nlet Doge = ESValue.load('./interop_import_js_js').getProperty('Dog');", - "line": 22, - "column": 1, - "endLine": 22, - "endColumn": 59 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" diff --git a/ets2panda/linter/test/interop/interop_import_js.ets.migrate.ets b/ets2panda/linter/test/interop/interop_import_js.ets.migrate.ets index 8a7215433eb02d96fc996ea94e32321d41b25965..a4c0b8fea69eeb2c1cb904f44aac79c764e47804 100644 --- a/ets2panda/linter/test/interop/interop_import_js.ets.migrate.ets +++ b/ets2panda/linter/test/interop/interop_import_js.ets.migrate.ets @@ -13,15 +13,10 @@ * limitations under the License. */ -let Cjs = ESValue.load('../main/js_lib').getProperty('Cjs'); -let fjs = ESValue.load('../main/js_lib').getProperty('fjs'); -let CPreview = ESValue.load('./jsfiles/preview_import_js').getProperty('CPreview'); -let bar = ESValue.load('./jsfiles/preview_import_js').getProperty('bar'); -let foo = ESValue.load('./jsfiles/preview_import_js').getProperty('foo'); -let myAaa = ESValue.load('./interop_import_js_js').getProperty('aaa'); -let myAaa = ESValue.load('./interop_import_js_js').getProperty('aaa'); -let ClassA = ESValue.load('./interop_import_js_js').getProperty('ClassA'); -let Dog = ESValue.load('./interop_import_js_js').getProperty('Dog'); -let tjs = ESValue.load('./interop_import_js_js').getProperty('tjs'); -let Wiki = ESValue.load('./interop_import_js_js').getProperty('Wiki'); -let Doge = ESValue.load('./interop_import_js_js').getProperty('Dog'); \ No newline at end of file +import { Cjs } from '../main/js_lib'; +import { fjs } from '../main/js_lib'; +import { CPreview,bar,foo } from "./jsfiles/preview_import_js"; +import myAaa from "./interop_import_js_js"; +import myAaa,{ClassA,Dog} from "./interop_import_js_js"; +import * as tjs from "./interop_import_js_js"; +import { Wiki, Dog as Doge } from './interop_import_js_js' \ No newline at end of file diff --git a/ets2panda/linter/test/interop/interop_import_js.ets.migrate.json b/ets2panda/linter/test/interop/interop_import_js.ets.migrate.json index d20b189b4f292fa53920f6579a542b3f8c2651aa..f8dbfb7b6c507c635f7e41fd8c93a7b1ee20432a 100644 --- a/ets2panda/linter/test/interop/interop_import_js.ets.migrate.json +++ b/ets2panda/linter/test/interop/interop_import_js.ets.migrate.json @@ -16,122 +16,72 @@ "result": [ { "line": 16, - "column": 5, + "column": 1, "endLine": 16, - "endColumn": 60, - "problem": "AnyType", + "endColumn": 38, + "problem": "InterOpImportJs", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" }, { "line": 17, - "column": 5, + "column": 1, "endLine": 17, - "endColumn": 60, - "problem": "AnyType", + "endColumn": 38, + "problem": "InterOpImportJs", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" }, { "line": 18, - "column": 5, + "column": 1, "endLine": 18, - "endColumn": 83, - "problem": "AnyType", + "endColumn": 64, + "problem": "InterOpImportJs", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" }, { "line": 19, - "column": 5, + "column": 1, "endLine": 19, - "endColumn": 73, - "problem": "AnyType", + "endColumn": 44, + "problem": "InterOpImportJs", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" }, { "line": 20, - "column": 5, + "column": 1, "endLine": 20, - "endColumn": 73, - "problem": "AnyType", + "endColumn": 57, + "problem": "InterOpImportJs", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" }, { "line": 21, - "column": 5, + "column": 1, "endLine": 21, - "endColumn": 70, - "problem": "AnyType", + "endColumn": 47, + "problem": "InterOpImportJs", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" }, { "line": 22, - "column": 5, + "column": 1, "endLine": 22, - "endColumn": 70, - "problem": "AnyType", + "endColumn": 59, + "problem": "InterOpImportJs", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 23, - "column": 5, - "endLine": 23, - "endColumn": 74, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 24, - "column": 5, - "endLine": 24, - "endColumn": 68, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 25, - "column": 5, - "endLine": 25, - "endColumn": 68, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 26, - "column": 5, - "endLine": 26, - "endColumn": 70, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 27, - "column": 5, - "endLine": 27, - "endColumn": 69, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" } ] diff --git a/ets2panda/linter/test/interop/interop_import_js_compare.ets.autofix.json b/ets2panda/linter/test/interop/interop_import_js_compare.ets.autofix.json index d54c3071e70236a7f8a86ae847bce7285d7d6636..5c02835f89f300921d0236a6432c6b48207cf51b 100644 --- a/ets2panda/linter/test/interop/interop_import_js_compare.ets.autofix.json +++ b/ets2panda/linter/test/interop/interop_import_js_compare.ets.autofix.json @@ -20,26 +20,6 @@ "endLine": 17, "endColumn": 57, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 607, - "end": 663, - "replacementText": "", - "line": 17, - "column": 1, - "endLine": 17, - "endColumn": 57 - }, - { - "start": 663, - "end": 663, - "replacementText": "let foo = ESValue.load('./interop_import_js_compare_js').getProperty('foo');\nlet m = ESValue.load('./interop_import_js_compare_js').getProperty('m');\nlet n = ESValue.load('./interop_import_js_compare_js').getProperty('n');", - "line": 17, - "column": 1, - "endLine": 17, - "endColumn": 57 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" diff --git a/ets2panda/linter/test/interop/interop_import_js_compare.ets.migrate.ets b/ets2panda/linter/test/interop/interop_import_js_compare.ets.migrate.ets index e9bab633c586092ecb5e0e4e11d6a1e4cefe7ff9..51e820d9092d3e093223e832564114cfdb140f9f 100644 --- a/ets2panda/linter/test/interop/interop_import_js_compare.ets.migrate.ets +++ b/ets2panda/linter/test/interop/interop_import_js_compare.ets.migrate.ets @@ -14,9 +14,7 @@ */ -let foo = ESValue.load('./interop_import_js_compare_js').getProperty('foo'); -let m = ESValue.load('./interop_import_js_compare_js').getProperty('m'); -let n = ESValue.load('./interop_import_js_compare_js').getProperty('n'); +import {foo, m, n} from "./interop_import_js_compare_js" let a = foo.getProperty("a") let b = foo.getProperty("b") a > b diff --git a/ets2panda/linter/test/interop/interop_import_js_compare.ets.migrate.json b/ets2panda/linter/test/interop/interop_import_js_compare.ets.migrate.json index 69216fdae77b5bc16727b2286af5d86722cf4e9e..27f3d3c0d454d71d6ad5c5d374f723aa58558f6b 100644 --- a/ets2panda/linter/test/interop/interop_import_js_compare.ets.migrate.json +++ b/ets2panda/linter/test/interop/interop_import_js_compare.ets.migrate.json @@ -16,19 +16,19 @@ "result": [ { "line": 17, - "column": 5, + "column": 1, "endLine": 17, - "endColumn": 76, - "problem": "AnyType", + "endColumn": 57, + "problem": "InterOpImportJs", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" }, { "line": 18, "column": 5, "endLine": 18, - "endColumn": 72, + "endColumn": 29, "problem": "AnyType", "suggest": "", "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", @@ -38,26 +38,6 @@ "line": 19, "column": 5, "endLine": 19, - "endColumn": 72, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 20, - "column": 5, - "endLine": 20, - "endColumn": 29, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 21, - "column": 5, - "endLine": 21, "endColumn": 29, "problem": "AnyType", "suggest": "", diff --git a/ets2panda/linter/test/interop/interop_import_js_index.ets.autofix.json b/ets2panda/linter/test/interop/interop_import_js_index.ets.autofix.json index f837b56a6af8c56a76cbff4a72278f1cfa20851f..7467f08a68d90b50ad957c56000c7aae7be57a42 100644 --- a/ets2panda/linter/test/interop/interop_import_js_index.ets.autofix.json +++ b/ets2panda/linter/test/interop/interop_import_js_index.ets.autofix.json @@ -20,26 +20,6 @@ "endLine": 15, "endColumn": 51, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 604, - "end": 654, - "replacementText": "", - "line": 15, - "column": 1, - "endLine": 15, - "endColumn": 51 - }, - { - "start": 654, - "end": 654, - "replacementText": "let ff3 = ESValue.load('./interop_import_js_rules_js').getProperty('ff3');", - "line": 15, - "column": 1, - "endLine": 15, - "endColumn": 51 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" @@ -50,26 +30,6 @@ "endLine": 16, "endColumn": 49, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 655, - "end": 703, - "replacementText": "", - "line": 16, - "column": 1, - "endLine": 16, - "endColumn": 49 - }, - { - "start": 703, - "end": 703, - "replacementText": "let foo = ESValue.load('./interop_import_js_index_js').getProperty('foo');", - "line": 16, - "column": 1, - "endLine": 16, - "endColumn": 49 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" diff --git a/ets2panda/linter/test/interop/interop_import_js_index.ets.migrate.ets b/ets2panda/linter/test/interop/interop_import_js_index.ets.migrate.ets index 60b5b30251ea5240c208b64bac57a2d6bffd5ed3..11371d2a4f49baf5a939dd632fed067c61dbbf43 100644 --- a/ets2panda/linter/test/interop/interop_import_js_index.ets.migrate.ets +++ b/ets2panda/linter/test/interop/interop_import_js_index.ets.migrate.ets @@ -12,8 +12,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -let ff3 = ESValue.load('./interop_import_js_rules_js').getProperty('ff3'); -let foo = ESValue.load('./interop_import_js_index_js').getProperty('foo'); +import { ff3 } from "./interop_import_js_rules_js" +import {foo} from "./interop_import_js_index_js" let arr = foo.getProperty("arr") arr.getProperty(1.0) arr.setProperty(3.0, ESValue.wrap(4.0)) diff --git a/ets2panda/linter/test/interop/interop_import_js_index.ets.migrate.json b/ets2panda/linter/test/interop/interop_import_js_index.ets.migrate.json index 191b2c2b9ec307fab46144da63bef106269577e4..bc5a9efda1c70321cd41c703b92a3ef695e946bd 100644 --- a/ets2panda/linter/test/interop/interop_import_js_index.ets.migrate.json +++ b/ets2panda/linter/test/interop/interop_import_js_index.ets.migrate.json @@ -16,22 +16,22 @@ "result": [ { "line": 15, - "column": 5, + "column": 1, "endLine": 15, - "endColumn": 74, - "problem": "AnyType", + "endColumn": 51, + "problem": "InterOpImportJs", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" }, { "line": 16, - "column": 5, + "column": 1, "endLine": 16, - "endColumn": 74, - "problem": "AnyType", + "endColumn": 49, + "problem": "InterOpImportJs", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" }, { @@ -65,4 +65,4 @@ "severity": "ERROR" } ] -} +} \ No newline at end of file diff --git a/ets2panda/linter/test/interop/interop_import_js_rules.ets.autofix.json b/ets2panda/linter/test/interop/interop_import_js_rules.ets.autofix.json index 702bfa960162802ac8bdef528ddf783aa0079d7d..4fb8162057de9a0e0273f80d9e0c6b97b87758b3 100644 --- a/ets2panda/linter/test/interop/interop_import_js_rules.ets.autofix.json +++ b/ets2panda/linter/test/interop/interop_import_js_rules.ets.autofix.json @@ -30,26 +30,6 @@ "endLine": 17, "endColumn": 51, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 619, - "end": 669, - "replacementText": "", - "line": 17, - "column": 1, - "endLine": 17, - "endColumn": 51 - }, - { - "start": 669, - "end": 669, - "replacementText": "let foo = ESValue.load('./interop_import_js_rules_js').getProperty('foo');", - "line": 17, - "column": 1, - "endLine": 17, - "endColumn": 51 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" @@ -70,26 +50,6 @@ "endLine": 18, "endColumn": 56, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 670, - "end": 725, - "replacementText": "", - "line": 18, - "column": 1, - "endLine": 18, - "endColumn": 56 - }, - { - "start": 725, - "end": 725, - "replacementText": "let ff1 = ESValue.load('./interop_import_js_rules_js').getProperty('ff1');\nlet ff2 = ESValue.load('./interop_import_js_rules_js').getProperty('ff2');", - "line": 18, - "column": 1, - "endLine": 18, - "endColumn": 56 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" @@ -110,26 +70,6 @@ "endLine": 20, "endColumn": 49, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 727, - "end": 775, - "replacementText": "", - "line": 20, - "column": 1, - "endLine": 20, - "endColumn": 49 - }, - { - "start": 775, - "end": 775, - "replacementText": "let A = ESValue.load('./interop_import_js_rules_js').getProperty('A');", - "line": 20, - "column": 1, - "endLine": 20, - "endColumn": 49 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" @@ -150,26 +90,6 @@ "endLine": 21, "endColumn": 49, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 776, - "end": 824, - "replacementText": "", - "line": 21, - "column": 1, - "endLine": 21, - "endColumn": 49 - }, - { - "start": 824, - "end": 824, - "replacementText": "let C = ESValue.load('./interop_import_js_rules_js').getProperty('C');", - "line": 21, - "column": 1, - "endLine": 21, - "endColumn": 49 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" @@ -190,26 +110,6 @@ "endLine": 23, "endColumn": 51, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 826, - "end": 876, - "replacementText": "", - "line": 23, - "column": 1, - "endLine": 23, - "endColumn": 51 - }, - { - "start": 876, - "end": 876, - "replacementText": "let ff3 = ESValue.load('./interop_import_js_rules_js').getProperty('ff3');", - "line": 23, - "column": 1, - "endLine": 23, - "endColumn": 51 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" @@ -230,26 +130,6 @@ "endLine": 25, "endColumn": 51, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 878, - "end": 928, - "replacementText": "", - "line": 25, - "column": 1, - "endLine": 25, - "endColumn": 51 - }, - { - "start": 928, - "end": 928, - "replacementText": "let ff4 = ESValue.load('./interop_import_js_rules_js').getProperty('ff4');", - "line": 25, - "column": 1, - "endLine": 25, - "endColumn": 51 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" @@ -270,26 +150,6 @@ "endLine": 27, "endColumn": 54, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 930, - "end": 983, - "replacementText": "", - "line": 27, - "column": 1, - "endLine": 27, - "endColumn": 54 - }, - { - "start": 983, - "end": 983, - "replacementText": "let handle = ESValue.load('./interop_import_js_rules_js').getProperty('handle');", - "line": 27, - "column": 1, - "endLine": 27, - "endColumn": 54 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" @@ -310,26 +170,6 @@ "endLine": 29, "endColumn": 54, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 985, - "end": 1038, - "replacementText": "", - "line": 29, - "column": 1, - "endLine": 29, - "endColumn": 54 - }, - { - "start": 1038, - "end": 1038, - "replacementText": "let expand = ESValue.load('./interop_import_js_rules_js').getProperty('expand');", - "line": 29, - "column": 1, - "endLine": 29, - "endColumn": 54 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" @@ -350,26 +190,6 @@ "endLine": 30, "endColumn": 54, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 1039, - "end": 1092, - "replacementText": "", - "line": 30, - "column": 1, - "endLine": 30, - "endColumn": 54 - }, - { - "start": 1092, - "end": 1092, - "replacementText": "let orange = ESValue.load('./interop_import_js_rules_js').getProperty('orange');", - "line": 30, - "column": 1, - "endLine": 30, - "endColumn": 54 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" diff --git a/ets2panda/linter/test/interop/interop_import_typeof_js.ets.autofix.json b/ets2panda/linter/test/interop/interop_import_typeof_js.ets.autofix.json index 616283816bbf0bb6f611360a8277ff27d8543a91..d6958993db88cdda9b601cc2e835179fcfc763f6 100644 --- a/ets2panda/linter/test/interop/interop_import_typeof_js.ets.autofix.json +++ b/ets2panda/linter/test/interop/interop_import_typeof_js.ets.autofix.json @@ -20,26 +20,6 @@ "endLine": 16, "endColumn": 69, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 606, - "end": 674, - "replacementText": "", - "line": 16, - "column": 1, - "endLine": 16, - "endColumn": 69 - }, - { - "start": 674, - "end": 674, - "replacementText": "let myAaa = ESValue.load('./interop_import_js_js').getProperty('aaa');\nlet ClassA = ESValue.load('./interop_import_js_js').getProperty('ClassA');\nlet Dog = ESValue.load('./interop_import_js_js').getProperty('Dog');\nlet Person = ESValue.load('./interop_import_js_js').getProperty('Person');\nlet Wiki = ESValue.load('./interop_import_js_js').getProperty('Wiki');", - "line": 16, - "column": 1, - "endLine": 16, - "endColumn": 69 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" @@ -50,26 +30,6 @@ "endLine": 17, "endColumn": 54, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 675, - "end": 728, - "replacementText": "", - "line": 17, - "column": 1, - "endLine": 17, - "endColumn": 54 - }, - { - "start": 728, - "end": 728, - "replacementText": "let Doge = ESValue.load('./interop_import_js_js').getProperty('Dog');", - "line": 17, - "column": 1, - "endLine": 17, - "endColumn": 54 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" @@ -80,26 +40,6 @@ "endLine": 18, "endColumn": 55, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 729, - "end": 783, - "replacementText": "", - "line": 18, - "column": 1, - "endLine": 18, - "endColumn": 55 - }, - { - "start": 783, - "end": 783, - "replacementText": "let wiki = ESValue.load('./interop_import_js_js').getProperty('Wiki');", - "line": 18, - "column": 1, - "endLine": 18, - "endColumn": 55 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" diff --git a/ets2panda/linter/test/interop/interop_import_typeof_js.ets.migrate.ets b/ets2panda/linter/test/interop/interop_import_typeof_js.ets.migrate.ets index e50da4c9173f7bfd0f2eed73da25c765aa50da14..59105c01fa7da01ef0d7bdf25e9cdbcbfc26ab63 100644 --- a/ets2panda/linter/test/interop/interop_import_typeof_js.ets.migrate.ets +++ b/ets2panda/linter/test/interop/interop_import_typeof_js.ets.migrate.ets @@ -13,13 +13,9 @@ * limitations under the License. */ -let myAaa = ESValue.load('./interop_import_js_js').getProperty('aaa'); -let ClassA = ESValue.load('./interop_import_js_js').getProperty('ClassA'); -let Dog = ESValue.load('./interop_import_js_js').getProperty('Dog'); -let Person = ESValue.load('./interop_import_js_js').getProperty('Person'); -let Wiki = ESValue.load('./interop_import_js_js').getProperty('Wiki'); -let Doge = ESValue.load('./interop_import_js_js').getProperty('Dog'); -let wiki = ESValue.load('./interop_import_js_js').getProperty('Wiki'); +import myAaa,{ClassA,Dog,Person,Wiki} from "./interop_import_js_js"; +import { Dog as Doge } from './interop_import_js_js'; +import { Wiki as wiki } from './interop_import_js_js'; myAaa.invoke().typeOf(); //error let fun = myAaa.invoke(); diff --git a/ets2panda/linter/test/interop/interop_import_typeof_js.ets.migrate.json b/ets2panda/linter/test/interop/interop_import_typeof_js.ets.migrate.json index 5c235089d9987874d5bcaceb721be697c9149d90..b0154468d307ea51471633e2abd2216c3399b3dd 100644 --- a/ets2panda/linter/test/interop/interop_import_typeof_js.ets.migrate.json +++ b/ets2panda/linter/test/interop/interop_import_typeof_js.ets.migrate.json @@ -16,118 +16,98 @@ "result": [ { "line": 16, - "column": 5, + "column": 1, "endLine": 16, - "endColumn": 70, - "problem": "AnyType", + "endColumn": 69, + "problem": "InterOpImportJs", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" }, { "line": 17, - "column": 5, + "column": 1, "endLine": 17, - "endColumn": 74, - "problem": "AnyType", + "endColumn": 54, + "problem": "InterOpImportJs", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" }, { "line": 18, - "column": 5, + "column": 1, "endLine": 18, - "endColumn": 68, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 19, - "column": 5, - "endLine": 19, - "endColumn": 74, - "problem": "AnyType", + "endColumn": 55, + "problem": "InterOpImportJs", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 20, - "column": 5, - "endLine": 20, - "endColumn": 70, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" }, { "line": 21, "column": 5, "endLine": 21, - "endColumn": 69, + "endColumn": 25, "problem": "AnyType", "suggest": "", "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", "severity": "ERROR" }, { - "line": 22, + "line": 29, "column": 5, - "endLine": 22, - "endColumn": 70, + "endLine": 29, + "endColumn": 35, "problem": "AnyType", "suggest": "", "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", "severity": "ERROR" }, { - "line": 25, + "line": 35, "column": 5, - "endLine": 25, - "endColumn": 25, + "endLine": 35, + "endColumn": 37, "problem": "AnyType", "suggest": "", "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", "severity": "ERROR" }, { - "line": 33, + "line": 36, "column": 5, - "endLine": 33, - "endColumn": 35, + "endLine": 36, + "endColumn": 42, "problem": "AnyType", "suggest": "", "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", "severity": "ERROR" }, { - "line": 39, - "column": 5, - "endLine": 39, - "endColumn": 37, - "problem": "AnyType", + "line": 42, + "column": 10, + "endLine": 42, + "endColumn": 30, + "problem": "LimitedVoidType", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", "severity": "ERROR" }, { - "line": 40, - "column": 5, - "endLine": 40, - "endColumn": 42, - "problem": "AnyType", + "line": 47, + "column": 21, + "endLine": 47, + "endColumn": 41, + "problem": "LimitedVoidType", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", "severity": "ERROR" }, { - "line": 53, + "line": 49, "column": 7, - "endLine": 53, + "endLine": 49, "endColumn": 13, "problem": "InvalidIdentifier", "suggest": "", diff --git a/ets2panda/linter/test/interop/interop_not_have_property_arkts2.ets.autofix.json b/ets2panda/linter/test/interop/interop_not_have_property_arkts2.ets.autofix.json index 3947650ebf6cea8ecc00ecee25461b05543d600b..66925f8b56c90b9336082f29d62d500a01d2bfd9 100644 --- a/ets2panda/linter/test/interop/interop_not_have_property_arkts2.ets.autofix.json +++ b/ets2panda/linter/test/interop/interop_not_have_property_arkts2.ets.autofix.json @@ -30,26 +30,6 @@ "endLine": 17, "endColumn": 106, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 618, - "end": 723, - "replacementText": "", - "line": 17, - "column": 1, - "endLine": 17, - "endColumn": 106 - }, - { - "start": 723, - "end": 723, - "replacementText": "let foo = ESValue.load('./interop_not_have_property_js').getProperty('foo');\nlet person = ESValue.load('./interop_not_have_property_js').getProperty('person');\nlet TestHelper = ESValue.load('./interop_not_have_property_js').getProperty('TestHelper');\nlet Machine = ESValue.load('./interop_not_have_property_js').getProperty('Machine');\nlet User = ESValue.load('./interop_not_have_property_js').getProperty('User');\nlet Person = ESValue.load('./interop_not_have_property_js').getProperty('Person');\nlet Employee = ESValue.load('./interop_not_have_property_js').getProperty('Employee');", - "line": 17, - "column": 1, - "endLine": 17, - "endColumn": 106 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" @@ -1031,4 +1011,4 @@ "severity": "ERROR" } ] -} +} \ No newline at end of file diff --git a/ets2panda/linter/test/interop/interop_not_have_property_arkts2.ets.migrate.ets b/ets2panda/linter/test/interop/interop_not_have_property_arkts2.ets.migrate.ets index 6320fe717df369223c3167f10f2ccae5a26d767d..f289defb389042127ad4212664ce9509ee694de9 100644 --- a/ets2panda/linter/test/interop/interop_not_have_property_arkts2.ets.migrate.ets +++ b/ets2panda/linter/test/interop/interop_not_have_property_arkts2.ets.migrate.ets @@ -14,13 +14,7 @@ */ 'use static' -let foo = ESValue.load('./interop_not_have_property_js').getProperty('foo'); -let person = ESValue.load('./interop_not_have_property_js').getProperty('person'); -let TestHelper = ESValue.load('./interop_not_have_property_js').getProperty('TestHelper'); -let Machine = ESValue.load('./interop_not_have_property_js').getProperty('Machine'); -let User = ESValue.load('./interop_not_have_property_js').getProperty('User'); -let Person = ESValue.load('./interop_not_have_property_js').getProperty('Person'); -let Employee = ESValue.load('./interop_not_have_property_js').getProperty('Employee'); +import { foo, person, TestHelper, Machine, User, Person, Employee } from "./interop_not_have_property_js" foo.getProperty("name") foo.setProperty("name", ESValue.wrap("456")) @@ -34,36 +28,36 @@ a.setProperty("age", ESValue.wrap(12.0)) let test_helper = TestHelper.instantiate(ESValue.wrap("TEST_INSTANTIATE_JS_OBJECT")); test_helper.invokeMethod("test", ESValue.wrap(() => { - let machine = new Machine(); - return machine.name === "machine"; // arkts-interop-js2s-access-js-prop + let machine = Machine.instantiate(); + return machine.getProperty("name").areStrictlyEqual("machine"); // arkts-interop-js2s-access-js-prop }), ESValue.wrap("machine.name === 'machine'")); test_helper.invokeMethod("test", ESValue.wrap(() => { - let user = new User("Bob"); - return user.id === "Bob"; // arkts-interop-js2s-access-js-prop + let user = User.instantiate(ESValue.wrap("Bob")); + return user.getProperty("id").areStrictlyEqual("Bob"); // arkts-interop-js2s-access-js-prop }), ESValue.wrap("user.id === 'Bob'")); test_helper.invokeMethod("test", ESValue.wrap(() => { -let user = new User(10.0); -return user.id === 10.0;// arkts-interop-js2s-access-js-prop +let user = User.instantiate(ESValue.wrap(10.0)); +return user.getProperty("id").areStrictlyEqual(10.0);// arkts-interop-js2s-access-js-prop }), ESValue.wrap("user.id === 10")); test_helper.invokeMethod("test", ESValue.wrap(() => { - let user = new User(123n); - return user.id === 123n; // arkts-interop-js2s-access-js-prop + let user = User.instantiate(ESValue.wrap(123n)); + return user.getProperty("id").areStrictlyEqual(123n); // arkts-interop-js2s-access-js-prop }), ESValue.wrap("user.id === 123n")); test_helper.invokeMethod("test", ESValue.wrap(() => { - let user = new User(true); - return user.id === true;// arkts-interop-js2s-access-js-prop + let user = User.instantiate(ESValue.wrap(true)); + return user.getProperty("id").areStrictlyEqual(true);// arkts-interop-js2s-access-js-prop }), ESValue.wrap("user.id === true")); test_helper.invokeMethod("test", ESValue.wrap(() => { - let machine = new Person("John", 10.0); - return machine.name === "machine"; // arkts-interop-js2s-access-js-prop + let machine = Person.instantiate(ESValue.wrap("John"), ESValue.wrap(10.0)); + return machine.getProperty("name").areStrictlyEqual("machine"); // arkts-interop-js2s-access-js-prop }), ESValue.wrap("machine.name === 'machine'")); test_helper.invokeMethod("test", ESValue.wrap(() => { - let employee = new Employee(); - return employee.name === "employee"; // arkts-interop-js2s-access-js-prop + let employee = Employee.instantiate(); + return employee.getProperty("name").areStrictlyEqual("employee"); // arkts-interop-js2s-access-js-prop }), ESValue.wrap("employee.name === 'employee'")); \ No newline at end of file diff --git a/ets2panda/linter/test/interop/interop_not_have_property_arkts2.ets.migrate.json b/ets2panda/linter/test/interop/interop_not_have_property_arkts2.ets.migrate.json index 02a85bc4f7389ef43420da02e57155643a3600ec..65c441a16bebab818412e967fc266a3ca72cc2e6 100644 --- a/ets2panda/linter/test/interop/interop_not_have_property_arkts2.ets.migrate.json +++ b/ets2panda/linter/test/interop/interop_not_have_property_arkts2.ets.migrate.json @@ -16,233 +16,183 @@ "result": [ { "line": 17, - "column": 5, + "column": 1, "endLine": 17, - "endColumn": 76, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 18, - "column": 5, - "endLine": 18, - "endColumn": 82, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 19, - "column": 5, - "endLine": 19, - "endColumn": 90, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 20, - "column": 5, - "endLine": 20, - "endColumn": 84, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 21, - "column": 5, - "endLine": 21, - "endColumn": 78, - "problem": "AnyType", + "endColumn": 106, + "problem": "ImportAfterStatement", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "\"import\" statements after other statements are not allowed (arkts-no-misplaced-imports)", "severity": "ERROR" }, { - "line": 22, - "column": 5, - "endLine": 22, - "endColumn": 82, - "problem": "AnyType", + "line": 17, + "column": 1, + "endLine": 17, + "endColumn": 106, + "problem": "InterOpImportJs", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" }, { - "line": 23, + "line": 26, "column": 5, - "endLine": 23, - "endColumn": 86, + "endLine": 26, + "endColumn": 26, "problem": "AnyType", "suggest": "", "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", "severity": "ERROR" }, { - "line": 32, + "line": 29, "column": 5, - "endLine": 32, - "endColumn": 26, + "endLine": 29, + "endColumn": 85, "problem": "AnyType", "suggest": "", "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", "severity": "ERROR" }, { - "line": 35, - "column": 5, - "endLine": 35, - "endColumn": 85, - "problem": "AnyType", + "line": 30, + "column": 47, + "endLine": 33, + "endColumn": 2, + "problem": "LimitedReturnTypeInference", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Function return type inference is limited (arkts-no-implicit-return-types)", "severity": "ERROR" }, { - "line": 37, + "line": 31, "column": 9, - "endLine": 37, - "endColumn": 32, + "endLine": 31, + "endColumn": 40, "problem": "AnyType", "suggest": "", "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", "severity": "ERROR" }, { - "line": 37, - "column": 23, - "endLine": 37, - "endColumn": 30, - "problem": "DynamicCtorCall", + "line": 35, + "column": 47, + "endLine": 38, + "endColumn": 2, + "problem": "LimitedReturnTypeInference", "suggest": "", - "rule": "\"new\" expression with dynamic constructor type is not supported (arkts-no-dynamic-ctor-call)", + "rule": "Function return type inference is limited (arkts-no-implicit-return-types)", "severity": "ERROR" }, { - "line": 42, + "line": 36, "column": 9, - "endLine": 42, - "endColumn": 31, + "endLine": 36, + "endColumn": 53, "problem": "AnyType", "suggest": "", "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", "severity": "ERROR" }, { - "line": 42, - "column": 20, - "endLine": 42, - "endColumn": 24, - "problem": "DynamicCtorCall", + "line": 40, + "column": 47, + "endLine": 43, + "endColumn": 2, + "problem": "LimitedReturnTypeInference", "suggest": "", - "rule": "\"new\" expression with dynamic constructor type is not supported (arkts-no-dynamic-ctor-call)", + "rule": "Function return type inference is limited (arkts-no-implicit-return-types)", "severity": "ERROR" }, { - "line": 47, + "line": 41, "column": 5, - "endLine": 47, - "endColumn": 26, + "endLine": 41, + "endColumn": 48, "problem": "AnyType", "suggest": "", "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", "severity": "ERROR" }, { - "line": 47, - "column": 16, - "endLine": 47, - "endColumn": 20, - "problem": "DynamicCtorCall", + "line": 45, + "column": 47, + "endLine": 48, + "endColumn": 2, + "problem": "LimitedReturnTypeInference", "suggest": "", - "rule": "\"new\" expression with dynamic constructor type is not supported (arkts-no-dynamic-ctor-call)", + "rule": "Function return type inference is limited (arkts-no-implicit-return-types)", "severity": "ERROR" }, { - "line": 52, + "line": 46, "column": 9, - "endLine": 52, - "endColumn": 30, + "endLine": 46, + "endColumn": 52, "problem": "AnyType", "suggest": "", "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", "severity": "ERROR" }, { - "line": 52, - "column": 20, - "endLine": 52, - "endColumn": 24, - "problem": "DynamicCtorCall", + "line": 50, + "column": 47, + "endLine": 53, + "endColumn": 2, + "problem": "LimitedReturnTypeInference", "suggest": "", - "rule": "\"new\" expression with dynamic constructor type is not supported (arkts-no-dynamic-ctor-call)", + "rule": "Function return type inference is limited (arkts-no-implicit-return-types)", "severity": "ERROR" }, { - "line": 57, + "line": 51, "column": 9, - "endLine": 57, - "endColumn": 30, + "endLine": 51, + "endColumn": 52, "problem": "AnyType", "suggest": "", "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", "severity": "ERROR" }, { - "line": 57, - "column": 20, - "endLine": 57, - "endColumn": 24, - "problem": "DynamicCtorCall", + "line": 55, + "column": 47, + "endLine": 58, + "endColumn": 2, + "problem": "LimitedReturnTypeInference", "suggest": "", - "rule": "\"new\" expression with dynamic constructor type is not supported (arkts-no-dynamic-ctor-call)", + "rule": "Function return type inference is limited (arkts-no-implicit-return-types)", "severity": "ERROR" }, { - "line": 62, + "line": 56, "column": 9, - "endLine": 62, - "endColumn": 43, + "endLine": 56, + "endColumn": 79, "problem": "AnyType", "suggest": "", "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", "severity": "ERROR" }, { - "line": 62, - "column": 23, - "endLine": 62, - "endColumn": 29, - "problem": "DynamicCtorCall", + "line": 60, + "column": 47, + "endLine": 63, + "endColumn": 2, + "problem": "LimitedReturnTypeInference", "suggest": "", - "rule": "\"new\" expression with dynamic constructor type is not supported (arkts-no-dynamic-ctor-call)", + "rule": "Function return type inference is limited (arkts-no-implicit-return-types)", "severity": "ERROR" }, { - "line": 67, + "line": 61, "column": 9, - "endLine": 67, - "endColumn": 34, + "endLine": 61, + "endColumn": 42, "problem": "AnyType", "suggest": "", "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", "severity": "ERROR" - }, - { - "line": 67, - "column": 24, - "endLine": 67, - "endColumn": 32, - "problem": "DynamicCtorCall", - "suggest": "", - "rule": "\"new\" expression with dynamic constructor type is not supported (arkts-no-dynamic-ctor-call)", - "severity": "ERROR" } ] } \ No newline at end of file diff --git a/ets2panda/linter/test/interop/interop_not_have_property_num_arkts2.ets.autofix.json b/ets2panda/linter/test/interop/interop_not_have_property_num_arkts2.ets.autofix.json index 25cdadbfd4c2e3743b117d209932ef636e18c2c3..5a00e93e85d4b302625e82ef5b3bfe8a8e648fe2 100644 --- a/ets2panda/linter/test/interop/interop_not_have_property_num_arkts2.ets.autofix.json +++ b/ets2panda/linter/test/interop/interop_not_have_property_num_arkts2.ets.autofix.json @@ -20,26 +20,6 @@ "endLine": 16, "endColumn": 46, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 605, - "end": 650, - "replacementText": "", - "line": 16, - "column": 1, - "endLine": 16, - "endColumn": 46 - }, - { - "start": 650, - "end": 650, - "replacementText": "let foo = ESValue.load('./interop_property_num_js').getProperty('foo');", - "line": 16, - "column": 1, - "endLine": 16, - "endColumn": 46 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" diff --git a/ets2panda/linter/test/interop/interop_not_have_property_num_arkts2.ets.migrate.ets b/ets2panda/linter/test/interop/interop_not_have_property_num_arkts2.ets.migrate.ets index 90055be46b6d01d93842863a922186d8022e2efa..397d49f4e68017f85604eb52118a48973d74f8f1 100644 --- a/ets2panda/linter/test/interop/interop_not_have_property_num_arkts2.ets.migrate.ets +++ b/ets2panda/linter/test/interop/interop_not_have_property_num_arkts2.ets.migrate.ets @@ -13,7 +13,7 @@ * limitations under the License. */ -let foo = ESValue.load('./interop_property_num_js').getProperty('foo'); +import {foo} from "./interop_property_num_js" +foo.getProperty("num").toNumber(); -foo.getProperty("num").toNumber(); diff --git a/ets2panda/linter/test/interop/interop_not_have_property_num_arkts2.ets.migrate.json b/ets2panda/linter/test/interop/interop_not_have_property_num_arkts2.ets.migrate.json index 8e9afac340f76cb36ff554e32f871a46d7f06406..923652a6ed843e53643967940e9a49e35e5e2616 100644 --- a/ets2panda/linter/test/interop/interop_not_have_property_num_arkts2.ets.migrate.json +++ b/ets2panda/linter/test/interop/interop_not_have_property_num_arkts2.ets.migrate.json @@ -16,12 +16,12 @@ "result": [ { "line": 16, - "column": 5, + "column": 1, "endLine": 16, - "endColumn": 71, - "problem": "AnyType", + "endColumn": 46, + "problem": "InterOpImportJs", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" }, { diff --git a/ets2panda/linter/test/interop/no_await_js_promise.ets.autofix.json b/ets2panda/linter/test/interop/no_await_js_promise.ets.autofix.json index 84a00a559c9d9f6d6f93195bd855662ab88891d1..10055bdbb3c857fb01df06afa1e8b1b764f15480 100644 --- a/ets2panda/linter/test/interop/no_await_js_promise.ets.autofix.json +++ b/ets2panda/linter/test/interop/no_await_js_promise.ets.autofix.json @@ -20,26 +20,6 @@ "endLine": 16, "endColumn": 89, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 605, - "end": 693, - "replacementText": "", - "line": 16, - "column": 1, - "endLine": 16, - "endColumn": 89 - }, - { - "start": 693, - "end": 693, - "replacementText": "let p = ESValue.load('./no_await_js_promise_export').getProperty('p');\nlet foo = ESValue.load('./no_await_js_promise_export').getProperty('foo');\nlet pFuncCall = ESValue.load('./no_await_js_promise_export').getProperty('pFuncCall');\nlet arrowFunc = ESValue.load('./no_await_js_promise_export').getProperty('arrowFunc');\nlet pArrowCall = ESValue.load('./no_await_js_promise_export').getProperty('pArrowCall');", - "line": 16, - "column": 1, - "endLine": 16, - "endColumn": 89 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" diff --git a/ets2panda/linter/test/interop/no_await_js_promise.ets.migrate.ets b/ets2panda/linter/test/interop/no_await_js_promise.ets.migrate.ets index 4454b4727ac15368882bf9900140174ed1ed5c8e..63fd6e25e811a3538b264edb96e5d30366412a2c 100644 --- a/ets2panda/linter/test/interop/no_await_js_promise.ets.migrate.ets +++ b/ets2panda/linter/test/interop/no_await_js_promise.ets.migrate.ets @@ -13,11 +13,7 @@ * limitations under the License. */ -let p = ESValue.load('./no_await_js_promise_export').getProperty('p'); -let foo = ESValue.load('./no_await_js_promise_export').getProperty('foo'); -let pFuncCall = ESValue.load('./no_await_js_promise_export').getProperty('pFuncCall'); -let arrowFunc = ESValue.load('./no_await_js_promise_export').getProperty('arrowFunc'); -let pArrowCall = ESValue.load('./no_await_js_promise_export').getProperty('pArrowCall'); +import { p, foo, pFuncCall, arrowFunc, pArrowCall } from "./no_await_js_promise_export"; async function awaitPromise() { return await p.toPromise(); @@ -60,7 +56,7 @@ const exampleObj = { }; (async () => { - console.log("IIFE result:", await p); + console.log("IIFE result:", await p.toPromise()); })(); (async () => { diff --git a/ets2panda/linter/test/interop/no_await_js_promise.ets.migrate.json b/ets2panda/linter/test/interop/no_await_js_promise.ets.migrate.json index 908d63c7c2200bdaaad08d4e0b3920a051552bf1..e83601dd74cdf19e93132d4109945addda867301 100644 --- a/ets2panda/linter/test/interop/no_await_js_promise.ets.migrate.json +++ b/ets2panda/linter/test/interop/no_await_js_promise.ets.migrate.json @@ -16,58 +16,18 @@ "result": [ { "line": 16, - "column": 5, + "column": 1, "endLine": 16, - "endColumn": 70, - "problem": "AnyType", + "endColumn": 89, + "problem": "InterOpImportJs", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 17, - "column": 5, - "endLine": 17, - "endColumn": 74, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" }, { "line": 18, - "column": 5, - "endLine": 18, - "endColumn": 86, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 19, - "column": 5, - "endLine": 19, - "endColumn": 86, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 20, - "column": 5, - "endLine": 20, - "endColumn": 88, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 22, "column": 16, - "endLine": 22, + "endLine": 18, "endColumn": 28, "problem": "LimitedReturnTypeInference", "suggest": "", @@ -75,9 +35,9 @@ "severity": "ERROR" }, { - "line": 26, + "line": 22, "column": 16, - "endLine": 26, + "endLine": 22, "endColumn": 33, "problem": "LimitedReturnTypeInference", "suggest": "", @@ -85,9 +45,9 @@ "severity": "ERROR" }, { - "line": 30, + "line": 26, "column": 16, - "endLine": 30, + "endLine": 26, "endColumn": 31, "problem": "LimitedReturnTypeInference", "suggest": "", @@ -98,16 +58,6 @@ "line": 34, "column": 16, "endLine": 34, - "endColumn": 30, - "problem": "LimitedReturnTypeInference", - "suggest": "", - "rule": "Function return type inference is limited (arkts-no-implicit-return-types)", - "severity": "ERROR" - }, - { - "line": 38, - "column": 16, - "endLine": 38, "endColumn": 32, "problem": "LimitedReturnTypeInference", "suggest": "", @@ -115,9 +65,9 @@ "severity": "ERROR" }, { - "line": 43, + "line": 39, "column": 9, - "endLine": 43, + "endLine": 39, "endColumn": 20, "problem": "LimitedReturnTypeInference", "suggest": "", @@ -125,9 +75,9 @@ "severity": "ERROR" }, { - "line": 47, + "line": 43, "column": 13, - "endLine": 49, + "endLine": 45, "endColumn": 4, "problem": "LimitedReturnTypeInference", "suggest": "", @@ -135,9 +85,9 @@ "severity": "ERROR" }, { - "line": 52, + "line": 48, "column": 20, - "endLine": 52, + "endLine": 48, "endColumn": 21, "problem": "ObjectLiteralNoContextType", "suggest": "", @@ -145,9 +95,9 @@ "severity": "ERROR" }, { - "line": 53, + "line": 49, "column": 3, - "endLine": 55, + "endLine": 51, "endColumn": 4, "problem": "ObjectLiteralProperty", "suggest": "", @@ -155,9 +105,9 @@ "severity": "ERROR" }, { - "line": 53, + "line": 49, "column": 9, - "endLine": 53, + "endLine": 49, "endColumn": 18, "problem": "LimitedReturnTypeInference", "suggest": "", @@ -165,9 +115,9 @@ "severity": "ERROR" }, { - "line": 57, + "line": 53, "column": 17, - "endLine": 59, + "endLine": 55, "endColumn": 4, "problem": "LimitedReturnTypeInference", "suggest": "", diff --git a/ets2panda/linter/test/interop/no_js_instanceof.ets.autofix.json b/ets2panda/linter/test/interop/no_js_instanceof.ets.autofix.json index 5f8e3d35ed8db01159f4d98d96c6dcdadc0ce492..eaa20eba2386671ee333872a2868b8c5553fcb23 100644 --- a/ets2panda/linter/test/interop/no_js_instanceof.ets.autofix.json +++ b/ets2panda/linter/test/interop/no_js_instanceof.ets.autofix.json @@ -20,26 +20,6 @@ "endLine": 16, "endColumn": 88, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 605, - "end": 692, - "replacementText": "", - "line": 16, - "column": 1, - "endLine": 16, - "endColumn": 88 - }, - { - "start": 692, - "end": 692, - "replacementText": "let Foo = ESValue.load('./no_js_instanceof_file.js').getProperty('Foo');\nlet foo = ESValue.load('./no_js_instanceof_file.js').getProperty('foo');\nlet CreatePerson = ESValue.load('./no_js_instanceof_file.js').getProperty('CreatePerson');\nlet a = ESValue.load('./no_js_instanceof_file.js').getProperty('a');\nlet b = ESValue.load('./no_js_instanceof_file.js').getProperty('b');\nlet MyNamespace = ESValue.load('./no_js_instanceof_file.js').getProperty('MyNamespace');", - "line": 16, - "column": 1, - "endLine": 16, - "endColumn": 88 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" @@ -391,4 +371,4 @@ "severity": "ERROR" } ] -} +} \ No newline at end of file diff --git a/ets2panda/linter/test/interop/no_js_instanceof.ets.migrate.ets b/ets2panda/linter/test/interop/no_js_instanceof.ets.migrate.ets index 514aa17d73fad1ecf96ea84c512d62f579b4b841..be46340ed8446bf6875928a2076f5ce47394f8d5 100644 --- a/ets2panda/linter/test/interop/no_js_instanceof.ets.migrate.ets +++ b/ets2panda/linter/test/interop/no_js_instanceof.ets.migrate.ets @@ -13,12 +13,7 @@ * limitations under the License. */ -let Foo = ESValue.load('./no_js_instanceof_file.js').getProperty('Foo'); -let foo = ESValue.load('./no_js_instanceof_file.js').getProperty('foo'); -let CreatePerson = ESValue.load('./no_js_instanceof_file.js').getProperty('CreatePerson'); -let a = ESValue.load('./no_js_instanceof_file.js').getProperty('a'); -let b = ESValue.load('./no_js_instanceof_file.js').getProperty('b'); -let MyNamespace = ESValue.load('./no_js_instanceof_file.js').getProperty('MyNamespace'); +import { Foo, foo, CreatePerson, a , b, MyNamespace } from "./no_js_instanceof_file.js" class Foo1 {} @@ -70,12 +65,12 @@ if(a.isInstanceOf(Array)) { } -if(b().isInstanceOf(Array)) { +if(b.invoke().isInstanceOf(Array)) { } -const myDog: MyNamespace.Dog = new MyNamespace.getProperty("Dog")('Buddy'); +const myDog: MyNamespace.Dog = new MyNamespace.getProperty("getProperty")("getProperty")("getProperty")("getProperty")("getProperty")("getProperty")("getProperty")("getProperty")("getProperty")("Dog")('Buddy'); -if (myDog.isInstanceOf(MyNamespace.Dog)) { +if (myDog.isInstanceOf(MyNamespace.getProperty("Dog"))) { console.log("This is a Dog!"); } \ No newline at end of file diff --git a/ets2panda/linter/test/interop/no_js_instanceof.ets.migrate.json b/ets2panda/linter/test/interop/no_js_instanceof.ets.migrate.json index e84613a98b0ffcea08f2166fca6dd43a8c79448b..614491fbff0302bbd0e855eec4d722ef2d6c5c68 100644 --- a/ets2panda/linter/test/interop/no_js_instanceof.ets.migrate.json +++ b/ets2panda/linter/test/interop/no_js_instanceof.ets.migrate.json @@ -16,93 +16,73 @@ "result": [ { "line": 16, - "column": 5, + "column": 1, "endLine": 16, - "endColumn": 72, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 17, - "column": 5, - "endLine": 17, - "endColumn": 72, - "problem": "AnyType", - "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", - "severity": "ERROR" - }, - { - "line": 18, - "column": 5, - "endLine": 18, - "endColumn": 90, - "problem": "AnyType", + "endColumn": 88, + "problem": "InterOpImportJs", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" }, { - "line": 19, - "column": 5, - "endLine": 19, - "endColumn": 68, - "problem": "AnyType", + "line": 64, + "column": 19, + "endLine": 64, + "endColumn": 24, + "problem": "InteropJsObjectExpandStaticInstance", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Direct usage of interop JS functions is not supported (arkts-interop-js2s-js-expand-static-instance)", "severity": "ERROR" }, { - "line": 20, - "column": 5, - "endLine": 20, - "endColumn": 68, - "problem": "AnyType", + "line": 64, + "column": 19, + "endLine": 64, + "endColumn": 24, + "problem": "ClassAsObjectError", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Classes cannot be used as objects (arkts-no-classes-as-obj)", "severity": "ERROR" }, { - "line": 21, - "column": 5, - "endLine": 21, - "endColumn": 88, - "problem": "AnyType", + "line": 68, + "column": 28, + "endLine": 68, + "endColumn": 33, + "problem": "InteropJsObjectExpandStaticInstance", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Direct usage of interop JS functions is not supported (arkts-interop-js2s-js-expand-static-instance)", "severity": "ERROR" }, { - "line": 69, - "column": 19, - "endLine": 69, - "endColumn": 24, + "line": 68, + "column": 28, + "endLine": 68, + "endColumn": 33, "problem": "ClassAsObjectError", "suggest": "", "rule": "Classes cannot be used as objects (arkts-no-classes-as-obj)", "severity": "ERROR" }, { - "line": 73, - "column": 21, - "endLine": 73, - "endColumn": 26, - "problem": "ClassAsObjectError", + "line": 72, + "column": 36, + "endLine": 72, + "endColumn": 59, + "problem": "DynamicCtorCall", "suggest": "", - "rule": "Classes cannot be used as objects (arkts-no-classes-as-obj)", + "rule": "\"new\" expression with dynamic constructor type is not supported (arkts-no-dynamic-ctor-call)", "severity": "ERROR" }, { - "line": 77, + "line": 72, "column": 36, - "endLine": 77, + "endLine": 72, "endColumn": 59, - "problem": "DynamicCtorCall", + "problem": "InteropObjectProperty", "suggest": "", - "rule": "\"new\" expression with dynamic constructor type is not supported (arkts-no-dynamic-ctor-call)", + "rule": "Properties of interop objects can't be accessed directly (arkts-interop-js2s-access-js-prop)", "severity": "ERROR" } ] -} +} \ No newline at end of file diff --git a/ets2panda/linter/test/interop/object_literal_union_type.ets b/ets2panda/linter/test/interop/object_literal_union_type.ets index 2e730940c353d44edcde943baabc3cbe84d96937..403b45935861d995d1acd0d4a479512da91863a4 100644 --- a/ets2panda/linter/test/interop/object_literal_union_type.ets +++ b/ets2panda/linter/test/interop/object_literal_union_type.ets @@ -25,4 +25,6 @@ let xyz: X | Y | Z = { name: "xyz" } let ab: A | B = { name: "hello" } // legal -let y: X | Y = { name: "hello" } as Y; // legal \ No newline at end of file +let y: X | Y = { name: "hello" } as Y; // legal + +let res: Record | object[] = {} \ No newline at end of file diff --git a/ets2panda/linter/test/interop/unary_operation_js_obj.ets.autofix.json b/ets2panda/linter/test/interop/unary_operation_js_obj.ets.autofix.json index 1639c66b412dc43d47a5a1f6c9ffe703bc258160..a619d83610fe29ef5e2427badbd66e433ea96bcf 100644 --- a/ets2panda/linter/test/interop/unary_operation_js_obj.ets.autofix.json +++ b/ets2panda/linter/test/interop/unary_operation_js_obj.ets.autofix.json @@ -20,26 +20,6 @@ "endLine": 15, "endColumn": 51, "problem": "InterOpImportJs", - "autofix": [ - { - "start": 604, - "end": 654, - "replacementText": "", - "line": 15, - "column": 1, - "endLine": 15, - "endColumn": 51 - }, - { - "start": 654, - "end": 654, - "replacementText": "let foo = ESValue.load('./unary_operation_js_obj_js.js').getProperty('foo');", - "line": 15, - "column": 1, - "endLine": 15, - "endColumn": 51 - } - ], "suggest": "", "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" diff --git a/ets2panda/linter/test/interop/unary_operation_js_obj.ets.migrate.ets b/ets2panda/linter/test/interop/unary_operation_js_obj.ets.migrate.ets index 2f5119402182c7fb7dd3ff4188c3ced36f307a0f..7fef071bd036dd04adf66fec6acb429e207bbd37 100644 --- a/ets2panda/linter/test/interop/unary_operation_js_obj.ets.migrate.ets +++ b/ets2panda/linter/test/interop/unary_operation_js_obj.ets.migrate.ets @@ -12,7 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -let foo = ESValue.load('./unary_operation_js_obj_js.js').getProperty('foo'); +import {foo} from "./unary_operation_js_obj_js.js" +foo.getProperty("num").toNumber(); -foo.getProperty("num").toNumber(); diff --git a/ets2panda/linter/test/interop/unary_operation_js_obj.ets.migrate.json b/ets2panda/linter/test/interop/unary_operation_js_obj.ets.migrate.json index 8ebd88e3904eb9a6a65cbed9738408e716e0f904..0a055b7965f1bf8ab53fa19829d87d9a4e8491bc 100644 --- a/ets2panda/linter/test/interop/unary_operation_js_obj.ets.migrate.json +++ b/ets2panda/linter/test/interop/unary_operation_js_obj.ets.migrate.json @@ -16,12 +16,12 @@ "result": [ { "line": 15, - "column": 5, + "column": 1, "endLine": 15, - "endColumn": 76, - "problem": "AnyType", + "endColumn": 51, + "problem": "InterOpImportJs", "suggest": "", - "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" }, { diff --git a/ets2panda/linter/test/main/arkts-no-esobject-support.ets b/ets2panda/linter/test/main/arkts-no-esobject-support.ets new file mode 100644 index 0000000000000000000000000000000000000000..c206350d266aecdcecf09f0967c71eca41cb1fd8 --- /dev/null +++ b/ets2panda/linter/test/main/arkts-no-esobject-support.ets @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +function test1(): ESObject { // error + return {} as ESObject; // error +} + +let a: ESObject = test1(); // error + +function test2(a: ESObject): void {} // error + +let b = {} as ESObject; // error + +type MyType = ESObject; // error + +interface I { + a: ESObject; // error +} + +class C { + a: ESObject = {}; // error +} + +class D { + getData(): ESObject { // error + return {} as ESObject; // error + } +} + +class E { + setData(data: ESObject): void {} // error +} + +function test3() { + let local: ESObject = {} as ESObject; // error +} + +let arr: ESObject[] = [ {} as ESObject ]; // error + +let tup: [number, ESObject] = [1, {} as ESObject]; // error + +type UnionType = string | ESObject; // error +let unionVar: UnionType = {} as ESObject; // error + +type IntersectType = { id: number } & ESObject; // error + +function generic(val: T): T { + return val; +} + +generic({}); // error + +let result = test1() as ESObject; // error + +interface Extended extends ESObject {} // error + +type FuncType = (val: ESObject) => void; // error + +declare class Wrapper { + value: ESObject; // error +} diff --git a/ets2panda/linter/test/main/arkts-no-esobject-support.ets.args.json b/ets2panda/linter/test/main/arkts-no-esobject-support.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..1b80aa9e7367c4d206bb53f8fc43c77fc24045d7 --- /dev/null +++ b/ets2panda/linter/test/main/arkts-no-esobject-support.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } + } \ No newline at end of file diff --git a/ets2panda/linter/test/main/arkts-no-esobject-support.ets.arkts2.json b/ets2panda/linter/test/main/arkts-no-esobject-support.ets.arkts2.json new file mode 100644 index 0000000000000000000000000000000000000000..d754b171680bc5073481866533daee4fbda3d0a2 --- /dev/null +++ b/ets2panda/linter/test/main/arkts-no-esobject-support.ets.arkts2.json @@ -0,0 +1,308 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 16, + "column": 19, + "endLine": 16, + "endColumn": 27, + "problem": "NoESObjectSupport", + "suggest": "", + "rule": "ESObject type cannot be used (arkts-no-esobject-support)", + "severity": "ERROR" + }, + { + "line": 17, + "column": 16, + "endLine": 17, + "endColumn": 24, + "problem": "NoESObjectSupport", + "suggest": "", + "rule": "ESObject type cannot be used (arkts-no-esobject-support)", + "severity": "ERROR" + }, + { + "line": 20, + "column": 8, + "endLine": 20, + "endColumn": 16, + "problem": "NoESObjectSupport", + "suggest": "", + "rule": "ESObject type cannot be used (arkts-no-esobject-support)", + "severity": "ERROR" + }, + { + "line": 22, + "column": 19, + "endLine": 22, + "endColumn": 27, + "problem": "NoESObjectSupport", + "suggest": "", + "rule": "ESObject type cannot be used (arkts-no-esobject-support)", + "severity": "ERROR" + }, + { + "line": 24, + "column": 5, + "endLine": 24, + "endColumn": 23, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + }, + { + "line": 24, + "column": 15, + "endLine": 24, + "endColumn": 23, + "problem": "NoESObjectSupport", + "suggest": "", + "rule": "ESObject type cannot be used (arkts-no-esobject-support)", + "severity": "ERROR" + }, + { + "line": 26, + "column": 15, + "endLine": 26, + "endColumn": 23, + "problem": "NoESObjectSupport", + "suggest": "", + "rule": "ESObject type cannot be used (arkts-no-esobject-support)", + "severity": "ERROR" + }, + { + "line": 29, + "column": 6, + "endLine": 29, + "endColumn": 14, + "problem": "NoESObjectSupport", + "suggest": "", + "rule": "ESObject type cannot be used (arkts-no-esobject-support)", + "severity": "ERROR" + }, + { + "line": 33, + "column": 6, + "endLine": 33, + "endColumn": 14, + "problem": "NoESObjectSupport", + "suggest": "", + "rule": "ESObject type cannot be used (arkts-no-esobject-support)", + "severity": "ERROR" + }, + { + "line": 37, + "column": 14, + "endLine": 37, + "endColumn": 22, + "problem": "NoESObjectSupport", + "suggest": "", + "rule": "ESObject type cannot be used (arkts-no-esobject-support)", + "severity": "ERROR" + }, + { + "line": 38, + "column": 18, + "endLine": 38, + "endColumn": 26, + "problem": "NoESObjectSupport", + "suggest": "", + "rule": "ESObject type cannot be used (arkts-no-esobject-support)", + "severity": "ERROR" + }, + { + "line": 43, + "column": 17, + "endLine": 43, + "endColumn": 25, + "problem": "NoESObjectSupport", + "suggest": "", + "rule": "ESObject type cannot be used (arkts-no-esobject-support)", + "severity": "ERROR" + }, + { + "line": 47, + "column": 14, + "endLine": 47, + "endColumn": 22, + "problem": "NoESObjectSupport", + "suggest": "", + "rule": "ESObject type cannot be used (arkts-no-esobject-support)", + "severity": "ERROR" + }, + { + "line": 47, + "column": 31, + "endLine": 47, + "endColumn": 39, + "problem": "NoESObjectSupport", + "suggest": "", + "rule": "ESObject type cannot be used (arkts-no-esobject-support)", + "severity": "ERROR" + }, + { + "line": 50, + "column": 10, + "endLine": 50, + "endColumn": 18, + "problem": "NoESObjectSupport", + "suggest": "", + "rule": "ESObject type cannot be used (arkts-no-esobject-support)", + "severity": "ERROR" + }, + { + "line": 50, + "column": 31, + "endLine": 50, + "endColumn": 39, + "problem": "NoESObjectSupport", + "suggest": "", + "rule": "ESObject type cannot be used (arkts-no-esobject-support)", + "severity": "ERROR" + }, + { + "line": 52, + "column": 19, + "endLine": 52, + "endColumn": 27, + "problem": "NoESObjectSupport", + "suggest": "", + "rule": "ESObject type cannot be used (arkts-no-esobject-support)", + "severity": "ERROR" + }, + { + "line": 52, + "column": 32, + "endLine": 52, + "endColumn": 33, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 52, + "column": 41, + "endLine": 52, + "endColumn": 49, + "problem": "NoESObjectSupport", + "suggest": "", + "rule": "ESObject type cannot be used (arkts-no-esobject-support)", + "severity": "ERROR" + }, + { + "line": 54, + "column": 27, + "endLine": 54, + "endColumn": 35, + "problem": "NoESObjectSupport", + "suggest": "", + "rule": "ESObject type cannot be used (arkts-no-esobject-support)", + "severity": "ERROR" + }, + { + "line": 55, + "column": 33, + "endLine": 55, + "endColumn": 41, + "problem": "NoESObjectSupport", + "suggest": "", + "rule": "ESObject type cannot be used (arkts-no-esobject-support)", + "severity": "ERROR" + }, + { + "line": 57, + "column": 22, + "endLine": 57, + "endColumn": 47, + "problem": "IntersectionType", + "suggest": "", + "rule": "Use inheritance instead of intersection types (arkts-no-intersection-types)", + "severity": "ERROR" + }, + { + "line": 57, + "column": 22, + "endLine": 57, + "endColumn": 23, + "problem": "ObjectTypeLiteral", + "suggest": "", + "rule": "Object literals cannot be used as type declarations (arkts-no-obj-literals-as-types)", + "severity": "ERROR" + }, + { + "line": 57, + "column": 39, + "endLine": 57, + "endColumn": 47, + "problem": "NoESObjectSupport", + "suggest": "", + "rule": "ESObject type cannot be used (arkts-no-esobject-support)", + "severity": "ERROR" + }, + { + "line": 63, + "column": 9, + "endLine": 63, + "endColumn": 17, + "problem": "NoESObjectSupport", + "suggest": "", + "rule": "ESObject type cannot be used (arkts-no-esobject-support)", + "severity": "ERROR" + }, + { + "line": 65, + "column": 5, + "endLine": 65, + "endColumn": 33, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + }, + { + "line": 65, + "column": 25, + "endLine": 65, + "endColumn": 33, + "problem": "NoESObjectSupport", + "suggest": "", + "rule": "ESObject type cannot be used (arkts-no-esobject-support)", + "severity": "ERROR" + }, + { + "line": 69, + "column": 23, + "endLine": 69, + "endColumn": 31, + "problem": "NoESObjectSupport", + "suggest": "", + "rule": "ESObject type cannot be used (arkts-no-esobject-support)", + "severity": "ERROR" + }, + { + "line": 72, + "column": 10, + "endLine": 72, + "endColumn": 18, + "problem": "NoESObjectSupport", + "suggest": "", + "rule": "ESObject type cannot be used (arkts-no-esobject-support)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/main/arkts-no-esobject-support.ets.json b/ets2panda/linter/test/main/arkts-no-esobject-support.ets.json new file mode 100644 index 0000000000000000000000000000000000000000..1672d138e235bcb3e844702476e3209a7bf6b3b8 --- /dev/null +++ b/ets2panda/linter/test/main/arkts-no-esobject-support.ets.json @@ -0,0 +1,58 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 24, + "column": 5, + "endLine": 24, + "endColumn": 23, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + }, + { + "line": 57, + "column": 22, + "endLine": 57, + "endColumn": 47, + "problem": "IntersectionType", + "suggest": "", + "rule": "Use inheritance instead of intersection types (arkts-no-intersection-types)", + "severity": "ERROR" + }, + { + "line": 57, + "column": 22, + "endLine": 57, + "endColumn": 23, + "problem": "ObjectTypeLiteral", + "suggest": "", + "rule": "Object literals cannot be used as type declarations (arkts-no-obj-literals-as-types)", + "severity": "ERROR" + }, + { + "line": 65, + "column": 5, + "endLine": 65, + "endColumn": 33, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/main/arkts-obj-literal-key-type.ets b/ets2panda/linter/test/main/arkts-obj-literal-key-type.ets new file mode 100644 index 0000000000000000000000000000000000000000..0079ae69de97af89494f2ec7d79b3c9e3e79ab39 --- /dev/null +++ b/ets2panda/linter/test/main/arkts-obj-literal-key-type.ets @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +class A{ + public age:number = 1.0; +} + +class B{ + public name:string = "Joe"; + public age:number = 30; +} + +class C{ + public salary:number = 100; + public age:number = 30; +} + +let a: A = {"age": 30} + +let b: Record = { age: 30} + +let c: B = {"name" : "Annie", "age" : 25} + +let d: Record = {salary : 250, age: 30} + diff --git a/ets2panda/linter/test/main/arkts-obj-literal-key-type.ets.args.json b/ets2panda/linter/test/main/arkts-obj-literal-key-type.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..bc4d2071daf6e9354e711c3b74b6be2b56659066 --- /dev/null +++ b/ets2panda/linter/test/main/arkts-obj-literal-key-type.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } +} diff --git a/ets2panda/linter/test/main/arkts-obj-literal-key-type.ets.arkts2.json b/ets2panda/linter/test/main/arkts-obj-literal-key-type.ets.arkts2.json new file mode 100644 index 0000000000000000000000000000000000000000..d9865e34233a35209039277b727b8e0a08548d9f --- /dev/null +++ b/ets2panda/linter/test/main/arkts-obj-literal-key-type.ets.arkts2.json @@ -0,0 +1,178 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 23, + "column": 25, + "endLine": 23, + "endColumn": 27, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 27, + "column": 28, + "endLine": 27, + "endColumn": 31, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 28, + "column": 25, + "endLine": 28, + "endColumn": 27, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 31, + "column": 13, + "endLine": 31, + "endColumn": 18, + "problem": "LiteralAsPropertyName", + "suggest": "", + "rule": "Objects with property names that are not identifiers are not supported (arkts-identifiers-as-prop-names)", + "severity": "ERROR" + }, + { + "line": 31, + "column": 20, + "endLine": 31, + "endColumn": 22, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 33, + "column": 35, + "endLine": 33, + "endColumn": 42, + "problem": "ObjectLiteralKeyType", + "suggest": "", + "rule": "Use string-literal keys with Record (arkts-obj-literal-key-type)", + "severity": "ERROR" + }, + { + "line": 33, + "column": 33, + "endLine": 33, + "endColumn": 34, + "problem": "ObjectLiteralNoContextType", + "suggest": "", + "rule": "Object literal must correspond to some explicitly declared class or interface (arkts-no-untyped-obj-literals)", + "severity": "ERROR" + }, + { + "line": 33, + "column": 40, + "endLine": 33, + "endColumn": 42, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 35, + "column": 13, + "endLine": 35, + "endColumn": 19, + "problem": "LiteralAsPropertyName", + "suggest": "", + "rule": "Objects with property names that are not identifiers are not supported (arkts-identifiers-as-prop-names)", + "severity": "ERROR" + }, + { + "line": 35, + "column": 31, + "endLine": 35, + "endColumn": 36, + "problem": "LiteralAsPropertyName", + "suggest": "", + "rule": "Objects with property names that are not identifiers are not supported (arkts-identifiers-as-prop-names)", + "severity": "ERROR" + }, + { + "line": 35, + "column": 39, + "endLine": 35, + "endColumn": 41, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 37, + "column": 34, + "endLine": 37, + "endColumn": 46, + "problem": "ObjectLiteralKeyType", + "suggest": "", + "rule": "Use string-literal keys with Record (arkts-obj-literal-key-type)", + "severity": "ERROR" + }, + { + "line": 37, + "column": 48, + "endLine": 37, + "endColumn": 55, + "problem": "ObjectLiteralKeyType", + "suggest": "", + "rule": "Use string-literal keys with Record (arkts-obj-literal-key-type)", + "severity": "ERROR" + }, + { + "line": 37, + "column": 33, + "endLine": 37, + "endColumn": 34, + "problem": "ObjectLiteralNoContextType", + "suggest": "", + "rule": "Object literal must correspond to some explicitly declared class or interface (arkts-no-untyped-obj-literals)", + "severity": "ERROR" + }, + { + "line": 37, + "column": 43, + "endLine": 37, + "endColumn": 46, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 37, + "column": 53, + "endLine": 37, + "endColumn": 55, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + } + ] +} diff --git a/ets2panda/linter/test/main/arkts-obj-literal-key-type.ets.json b/ets2panda/linter/test/main/arkts-obj-literal-key-type.ets.json new file mode 100644 index 0000000000000000000000000000000000000000..c41e2343989fdaf2f20b1c92f4c941cf0fa1b469 --- /dev/null +++ b/ets2panda/linter/test/main/arkts-obj-literal-key-type.ets.json @@ -0,0 +1,38 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 33, + "column": 33, + "endLine": 33, + "endColumn": 34, + "problem": "ObjectLiteralNoContextType", + "suggest": "", + "rule": "Object literal must correspond to some explicitly declared class or interface (arkts-no-untyped-obj-literals)", + "severity": "ERROR" + }, + { + "line": 37, + "column": 33, + "endLine": 37, + "endColumn": 34, + "problem": "ObjectLiteralNoContextType", + "suggest": "", + "rule": "Object literal must correspond to some explicitly declared class or interface (arkts-no-untyped-obj-literals)", + "severity": "ERROR" + } + ] +} diff --git a/ets2panda/linter/test/main/arkts-require-func-arg-type.ets b/ets2panda/linter/test/main/arkts-require-func-arg-type.ets new file mode 100644 index 0000000000000000000000000000000000000000..fa688edec8041d27fc0065562f5df524dcef238c --- /dev/null +++ b/ets2panda/linter/test/main/arkts-require-func-arg-type.ets @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +function foo1(a = 2){} + +function foo2(a = 2, b:number = 3){} + +function foo3(a = 2, b = 3){} + +class Calculator { + // Method with parameters + add(a, b): number { + return a + b; + } + + multiply(x: number, y): number { + return x * y; + } +} diff --git a/ets2panda/linter/test/main/arkts-require-func-arg-type.ets.args.json b/ets2panda/linter/test/main/arkts-require-func-arg-type.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..66fb88f85945924e8be0e83d90123507033f4c5d --- /dev/null +++ b/ets2panda/linter/test/main/arkts-require-func-arg-type.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } +} diff --git a/ets2panda/linter/test/main/arkts-require-func-arg-type.ets.arkts2.json b/ets2panda/linter/test/main/arkts-require-func-arg-type.ets.arkts2.json new file mode 100644 index 0000000000000000000000000000000000000000..d46010af5f9074ecd83285bb8ed5809eabe2ddb3 --- /dev/null +++ b/ets2panda/linter/test/main/arkts-require-func-arg-type.ets.arkts2.json @@ -0,0 +1,168 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 16, + "column": 15, + "endLine": 16, + "endColumn": 20, + "problem": "ParameterType", + "suggest": "", + "rule": "Type of parameter must be defined explicitly (arkts-require-func-arg-type)", + "severity": "ERROR" + }, + { + "line": 16, + "column": 19, + "endLine": 16, + "endColumn": 20, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 18, + "column": 15, + "endLine": 18, + "endColumn": 20, + "problem": "ParameterType", + "suggest": "", + "rule": "Type of parameter must be defined explicitly (arkts-require-func-arg-type)", + "severity": "ERROR" + }, + { + "line": 18, + "column": 19, + "endLine": 18, + "endColumn": 20, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 18, + "column": 33, + "endLine": 18, + "endColumn": 34, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 20, + "column": 15, + "endLine": 20, + "endColumn": 20, + "problem": "ParameterType", + "suggest": "", + "rule": "Type of parameter must be defined explicitly (arkts-require-func-arg-type)", + "severity": "ERROR" + }, + { + "line": 20, + "column": 22, + "endLine": 20, + "endColumn": 27, + "problem": "ParameterType", + "suggest": "", + "rule": "Type of parameter must be defined explicitly (arkts-require-func-arg-type)", + "severity": "ERROR" + }, + { + "line": 20, + "column": 19, + "endLine": 20, + "endColumn": 20, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 20, + "column": 26, + "endLine": 20, + "endColumn": 27, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 24, + "column": 7, + "endLine": 24, + "endColumn": 8, + "problem": "ParameterType", + "suggest": "", + "rule": "Type of parameter must be defined explicitly (arkts-require-func-arg-type)", + "severity": "ERROR" + }, + { + "line": 24, + "column": 10, + "endLine": 24, + "endColumn": 11, + "problem": "ParameterType", + "suggest": "", + "rule": "Type of parameter must be defined explicitly (arkts-require-func-arg-type)", + "severity": "ERROR" + }, + { + "line": 24, + "column": 7, + "endLine": 24, + "endColumn": 8, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + }, + { + "line": 24, + "column": 10, + "endLine": 24, + "endColumn": 11, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + }, + { + "line": 28, + "column": 23, + "endLine": 28, + "endColumn": 24, + "problem": "ParameterType", + "suggest": "", + "rule": "Type of parameter must be defined explicitly (arkts-require-func-arg-type)", + "severity": "ERROR" + }, + { + "line": 28, + "column": 23, + "endLine": 28, + "endColumn": 24, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + } + ] +} diff --git a/ets2panda/linter/test/main/arkts-require-func-arg-type.ets.json b/ets2panda/linter/test/main/arkts-require-func-arg-type.ets.json new file mode 100644 index 0000000000000000000000000000000000000000..e2df81fe91730df3834d19d02b08f5278fb98ff5 --- /dev/null +++ b/ets2panda/linter/test/main/arkts-require-func-arg-type.ets.json @@ -0,0 +1,48 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 24, + "column": 7, + "endLine": 24, + "endColumn": 8, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + }, + { + "line": 24, + "column": 10, + "endLine": 24, + "endColumn": 11, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + }, + { + "line": 28, + "column": 23, + "endLine": 28, + "endColumn": 24, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + } + ] +} diff --git a/ets2panda/linter/test/main/arkts_no_class_super_prop_readonly.ets b/ets2panda/linter/test/main/arkts_no_class_super_prop_readonly.ets new file mode 100644 index 0000000000000000000000000000000000000000..c2c357ee4cb4b59e0d55af1dea0d04b6c3ad3cdc --- /dev/null +++ b/ets2panda/linter/test/main/arkts_no_class_super_prop_readonly.ets @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +class A { + readonly x: number = 10; +} +class B extends A { + readonly x: number = 20; // legal +} + +class C { + readonly y: string = "base"; +} +class D extends C { + readonly y: string = "child"; // legal +} + +class E { + z: boolean = true; +} +class F extends E { + z: boolean = false; // legal +} + +class G { + readonly foo: number = 42; +} +class H extends G {} // legal + +class M1 { + data: number = 1; +} +class M2 extends M1 { + readonly data: number = 2; // error +} + +class M3 { + version: string = "1.0"; +} +class M4 extends M3 { + readonly version: "2.0" = "2.0"; // error +} + +class M5 { + isReady: boolean = false; +} +class M6 extends M5 { + readonly isReady: true = true; // error +} + +class A1 { + data: number = 1; +} + +class A2 extends A1 { +} + +class A3 extends A2 { + readonly data: number= 2; // error +} + +class B1 { + readonly data: number = 1; +} + +class B2 extends B1 { +} + +class B3 extends B2 { + readonly data: number= 2; // legal +} \ No newline at end of file diff --git a/ets2panda/linter/test/main/arkts_no_class_super_prop_readonly.ets.args.json b/ets2panda/linter/test/main/arkts_no_class_super_prop_readonly.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..4acc088d1da62353e56ced57f16b342de413cb78 --- /dev/null +++ b/ets2panda/linter/test/main/arkts_no_class_super_prop_readonly.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/main/arkts_no_class_super_prop_readonly.ets.arkts2.json b/ets2panda/linter/test/main/arkts_no_class_super_prop_readonly.ets.arkts2.json new file mode 100644 index 0000000000000000000000000000000000000000..0d2d081c9cd812e8e708e3776131d4039c407231 --- /dev/null +++ b/ets2panda/linter/test/main/arkts_no_class_super_prop_readonly.ets.arkts2.json @@ -0,0 +1,178 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 17, + "column": 24, + "endLine": 17, + "endColumn": 26, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 20, + "column": 24, + "endLine": 20, + "endColumn": 26, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 38, + "column": 26, + "endLine": 38, + "endColumn": 28, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 43, + "column": 18, + "endLine": 43, + "endColumn": 19, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 46, + "column": 3, + "endLine": 46, + "endColumn": 29, + "problem": "NoClassSuperPropReadonly", + "suggest": "", + "rule": "Overriding with \"readonly\" field is not allowed when base field is not \"readonly\" (arkts-no-class-add-super-prop-with-readonly)", + "severity": "ERROR" + }, + { + "line": 46, + "column": 27, + "endLine": 46, + "endColumn": 28, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 53, + "column": 12, + "endLine": 53, + "endColumn": 19, + "problem": "FieldTypeMismatch", + "suggest": "", + "rule": "The field types of the subclass and parent class must be the same (arkts-class-same-type-prop-with-super)", + "severity": "ERROR" + }, + { + "line": 53, + "column": 3, + "endLine": 53, + "endColumn": 35, + "problem": "NoClassSuperPropReadonly", + "suggest": "", + "rule": "Overriding with \"readonly\" field is not allowed when base field is not \"readonly\" (arkts-no-class-add-super-prop-with-readonly)", + "severity": "ERROR" + }, + { + "line": 60, + "column": 12, + "endLine": 60, + "endColumn": 19, + "problem": "FieldTypeMismatch", + "suggest": "", + "rule": "The field types of the subclass and parent class must be the same (arkts-class-same-type-prop-with-super)", + "severity": "ERROR" + }, + { + "line": 60, + "column": 3, + "endLine": 60, + "endColumn": 33, + "problem": "NoClassSuperPropReadonly", + "suggest": "", + "rule": "Overriding with \"readonly\" field is not allowed when base field is not \"readonly\" (arkts-no-class-add-super-prop-with-readonly)", + "severity": "ERROR" + }, + { + "line": 60, + "column": 21, + "endLine": 60, + "endColumn": 25, + "problem": "LimitedLiteralType", + "suggest": "", + "rule": "Literal types are restricted(arkts-limited-literal-types)", + "severity": "ERROR" + }, + { + "line": 64, + "column": 20, + "endLine": 64, + "endColumn": 21, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 71, + "column": 5, + "endLine": 71, + "endColumn": 30, + "problem": "NoClassSuperPropReadonly", + "suggest": "", + "rule": "Overriding with \"readonly\" field is not allowed when base field is not \"readonly\" (arkts-no-class-add-super-prop-with-readonly)", + "severity": "ERROR" + }, + { + "line": 71, + "column": 28, + "endLine": 71, + "endColumn": 29, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 75, + "column": 29, + "endLine": 75, + "endColumn": 30, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 82, + "column": 28, + "endLine": 82, + "endColumn": 29, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/main/arkts_no_class_super_prop_readonly.ets.json b/ets2panda/linter/test/main/arkts_no_class_super_prop_readonly.ets.json new file mode 100644 index 0000000000000000000000000000000000000000..ca88f857e960b437dcf767c0ac40be998c8f1236 --- /dev/null +++ b/ets2panda/linter/test/main/arkts_no_class_super_prop_readonly.ets.json @@ -0,0 +1,17 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [] +} \ No newline at end of file diff --git a/ets2panda/linter/test/main/builder_node.ets b/ets2panda/linter/test/main/builder_node.ets new file mode 100644 index 0000000000000000000000000000000000000000..a277872e970debdb85bfe7d4f35e99d570c12d83 --- /dev/null +++ b/ets2panda/linter/test/main/builder_node.ets @@ -0,0 +1,123 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { NodeController, BuilderNode, FrameNode } from './ui_modules/@kit.ArkUI'; + +class Params { + item: string = ''; + + constructor(item: string) { + this.item = item; + } +} + +interface CustomInterface { + item: string; + age: number; +} + +class CustomClass { + private item: string = 'C'; + age: number = 10; +} + +@Builder +function buildNode(param: Params) {} + +function getObject1() { + const customInterfaceParams: CustomInterface | number = 1 > 0 ? { item: 'C', age: 100 } : 1; + return customInterfaceParams; +} + +function getObject2() { + const customInterfaceParams: CustomInterface = { + item: 'C', + age: 100 + }; + return customInterfaceParams; +} + +class MyNodeController extends NodeController { + public builderNode1: BuilderNode<[Params]> | null = null; // error + public builderNode2: BuilderNode<[Params]> | null = null; // error + public builderNode3: BuilderNode<[]> | null = null; // error + public builderNode4: BuilderNode<[]> | null = null; // error + public frameNode: FrameNode | null = null; + public item: string = ""; + + getObject3() { + const customInterfaceParams: CustomInterface = { + item: 'C', + age: 100 + }; + return customInterfaceParams; + } + + makeNode(uiContext: UIContext): FrameNode | null { + if (this.builderNode1 == null || this.builderNode2 == null + || this.builderNode3 == null || this.builderNode4 == null) { + this.builderNode1 = new BuilderNode(uiContext, { selfIdealSize : { width: 300, height: 200} }); + this.builderNode2 = new BuilderNode<[Params]>(uiContext, { selfIdealSize: { width: 300, height: 200} }); // error + this.builderNode3 = new BuilderNode(uiContext, { selfIdealSize : { width: 300, height: 200} }); + this.builderNode4 = new BuilderNode<[]>(uiContext, { selfIdealSize : { width: 300, height: 200} }); // error + this.builderNode1.build(wrapBuilder<[Params]>(buildNode), new Params(this.item), { nestingBuilderSupported: false }) // error + let flag = true; + this.builderNode2.build(wrapBuilder<[Params]>(buildNode), new Params(this.item), { nestingBuilderSupported: flag }); // error + } + + return this.frameNode; + } + + updateItem(item: string, customParam: boolean): void { + this.item = item; + if (this.builderNode1 && this.builderNode2 && this.builderNode3 && this.builderNode4) { + if (customParam) { + const a1: CustomInterface = { + item: 'C', + age: 100 + }; + const a2: CustomInterface | number = 1 > 0 ? { item: 'C', age: 100 } : 1; + const a3 = getObject1(); + const a4 = getObject2(); + const customClassParams: CustomClass = new CustomClass(); + this.builderNode1.update(a1); // error + this.builderNode2.update(a2); // error + this.builderNode3.update(a3); // error + this.builderNode4.update(a4); // error + this.builderNode1.update({ item: 'C', age: 100 }); // error + this.builderNode2.update(1 > 0 ? a1 : 1); // error + this.builderNode3.update(customClassParams); + this.builderNode3.update({ item: 'C', age: 100}); // error + this.builderNode4.update(getObject1()); // error + this.builderNode4.update(getObject2()); // error + this.builderNode4.update(this.getObject3()); // error + } else {} + } + } +} + +@Reusable +@Component +struct ReusableChildComponent { + private controller: MyNodeController = new MyNodeController(); + + aboutToReuse(params: Record): void { + this.controller?.builderNode1?.reuse(params); + } + + build() { + + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/main/builder_node.ets.args.json b/ets2panda/linter/test/main/builder_node.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..ec9992d92461d66e16b80975e33f95872c06af54 --- /dev/null +++ b/ets2panda/linter/test/main/builder_node.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/main/builder_node.ets.arkts2.json b/ets2panda/linter/test/main/builder_node.ets.arkts2.json new file mode 100644 index 0000000000000000000000000000000000000000..57d4b5b5c63d5f161643e86a0432f72ccaaa8fd3 --- /dev/null +++ b/ets2panda/linter/test/main/builder_node.ets.arkts2.json @@ -0,0 +1,568 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 33, + "column": 17, + "endLine": 33, + "endColumn": 19, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 40, + "column": 60, + "endLine": 40, + "endColumn": 61, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 40, + "column": 64, + "endLine": 40, + "endColumn": 65, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 40, + "column": 86, + "endLine": 40, + "endColumn": 89, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 40, + "column": 94, + "endLine": 40, + "endColumn": 95, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 47, + "column": 10, + "endLine": 47, + "endColumn": 13, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 53, + "column": 24, + "endLine": 53, + "endColumn": 45, + "problem": "BuilderNodeGenericNoTuple", + "suggest": "", + "rule": "The generic of \"BuilderNode\" does not accept tuple (arkui-buildernode-generic-no-tuple)", + "severity": "ERROR" + }, + { + "line": 54, + "column": 24, + "endLine": 54, + "endColumn": 45, + "problem": "BuilderNodeGenericNoTuple", + "suggest": "", + "rule": "The generic of \"BuilderNode\" does not accept tuple (arkui-buildernode-generic-no-tuple)", + "severity": "ERROR" + }, + { + "line": 55, + "column": 24, + "endLine": 55, + "endColumn": 39, + "problem": "BuilderNodeGenericNoTuple", + "suggest": "", + "rule": "The generic of \"BuilderNode\" does not accept tuple (arkui-buildernode-generic-no-tuple)", + "severity": "ERROR" + }, + { + "line": 56, + "column": 24, + "endLine": 56, + "endColumn": 39, + "problem": "BuilderNodeGenericNoTuple", + "suggest": "", + "rule": "The generic of \"BuilderNode\" does not accept tuple (arkui-buildernode-generic-no-tuple)", + "severity": "ERROR" + }, + { + "line": 63, + "column": 12, + "endLine": 63, + "endColumn": 15, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 71, + "column": 27, + "endLine": 71, + "endColumn": 101, + "problem": "GenericCallNoTypeArgs", + "suggest": "", + "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", + "severity": "ERROR" + }, + { + "line": 71, + "column": 72, + "endLine": 71, + "endColumn": 73, + "problem": "ObjectLiteralNoContextType", + "suggest": "", + "rule": "Object literal must correspond to some explicitly declared class or interface (arkts-no-untyped-obj-literals)", + "severity": "ERROR" + }, + { + "line": 71, + "column": 81, + "endLine": 71, + "endColumn": 84, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 71, + "column": 94, + "endLine": 71, + "endColumn": 97, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 72, + "column": 27, + "endLine": 72, + "endColumn": 110, + "problem": "BuilderNodeGenericNoTuple", + "suggest": "", + "rule": "The generic of \"BuilderNode\" does not accept tuple (arkui-buildernode-generic-no-tuple)", + "severity": "ERROR" + }, + { + "line": 72, + "column": 81, + "endLine": 72, + "endColumn": 82, + "problem": "ObjectLiteralNoContextType", + "suggest": "", + "rule": "Object literal must correspond to some explicitly declared class or interface (arkts-no-untyped-obj-literals)", + "severity": "ERROR" + }, + { + "line": 72, + "column": 90, + "endLine": 72, + "endColumn": 93, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 72, + "column": 103, + "endLine": 72, + "endColumn": 106, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 73, + "column": 27, + "endLine": 73, + "endColumn": 101, + "problem": "GenericCallNoTypeArgs", + "suggest": "", + "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", + "severity": "ERROR" + }, + { + "line": 73, + "column": 72, + "endLine": 73, + "endColumn": 73, + "problem": "ObjectLiteralNoContextType", + "suggest": "", + "rule": "Object literal must correspond to some explicitly declared class or interface (arkts-no-untyped-obj-literals)", + "severity": "ERROR" + }, + { + "line": 73, + "column": 81, + "endLine": 73, + "endColumn": 84, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 73, + "column": 94, + "endLine": 73, + "endColumn": 97, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 74, + "column": 27, + "endLine": 74, + "endColumn": 105, + "problem": "BuilderNodeGenericNoTuple", + "suggest": "", + "rule": "The generic of \"BuilderNode\" does not accept tuple (arkui-buildernode-generic-no-tuple)", + "severity": "ERROR" + }, + { + "line": 74, + "column": 76, + "endLine": 74, + "endColumn": 77, + "problem": "ObjectLiteralNoContextType", + "suggest": "", + "rule": "Object literal must correspond to some explicitly declared class or interface (arkts-no-untyped-obj-literals)", + "severity": "ERROR" + }, + { + "line": 74, + "column": 85, + "endLine": 74, + "endColumn": 88, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 74, + "column": 98, + "endLine": 74, + "endColumn": 101, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 75, + "column": 7, + "endLine": 75, + "endColumn": 123, + "problem": "BuilderNodeNoNestingBuilderSupported", + "suggest": "", + "rule": "Property \"nestingBuilderSupported\" is not supported (arkui-buildernode-no-nestingbuildersupported)", + "severity": "ERROR" + }, + { + "line": 75, + "column": 31, + "endLine": 75, + "endColumn": 63, + "problem": "WrapBuilderGenericNeedArrowFunc", + "suggest": "", + "rule": "When using \"wrapBuilder\", generics must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", + "severity": "ERROR" + }, + { + "line": 77, + "column": 7, + "endLine": 77, + "endColumn": 122, + "problem": "BuilderNodeNoNestingBuilderSupported", + "suggest": "", + "rule": "Property \"nestingBuilderSupported\" is not supported (arkui-buildernode-no-nestingbuildersupported)", + "severity": "ERROR" + }, + { + "line": 77, + "column": 31, + "endLine": 77, + "endColumn": 63, + "problem": "WrapBuilderGenericNeedArrowFunc", + "suggest": "", + "rule": "When using \"wrapBuilder\", generics must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", + "severity": "ERROR" + }, + { + "line": 89, + "column": 16, + "endLine": 89, + "endColumn": 19, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 91, + "column": 46, + "endLine": 91, + "endColumn": 47, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 91, + "column": 50, + "endLine": 91, + "endColumn": 51, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 91, + "column": 72, + "endLine": 91, + "endColumn": 75, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 91, + "column": 80, + "endLine": 91, + "endColumn": 81, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 95, + "column": 9, + "endLine": 95, + "endColumn": 37, + "problem": "BuilderNodeUpdateNoLiteral", + "suggest": "", + "rule": "The \"update\" interface of \"BuilderNode\" does not accept an object literal. Please replace it with an instance of the class specified in the generic when creating a new \"BuilderNode\", and ensure that the instance has the same field values as the literal (arkui-buildernode-update-no-literal)", + "severity": "ERROR" + }, + { + "line": 96, + "column": 9, + "endLine": 96, + "endColumn": 37, + "problem": "BuilderNodeUpdateNoLiteral", + "suggest": "", + "rule": "The \"update\" interface of \"BuilderNode\" does not accept an object literal. Please replace it with an instance of the class specified in the generic when creating a new \"BuilderNode\", and ensure that the instance has the same field values as the literal (arkui-buildernode-update-no-literal)", + "severity": "ERROR" + }, + { + "line": 97, + "column": 9, + "endLine": 97, + "endColumn": 37, + "problem": "BuilderNodeUpdateNoLiteral", + "suggest": "", + "rule": "The \"update\" interface of \"BuilderNode\" does not accept an object literal. Please replace it with an instance of the class specified in the generic when creating a new \"BuilderNode\", and ensure that the instance has the same field values as the literal (arkui-buildernode-update-no-literal)", + "severity": "ERROR" + }, + { + "line": 98, + "column": 9, + "endLine": 98, + "endColumn": 37, + "problem": "BuilderNodeUpdateNoLiteral", + "suggest": "", + "rule": "The \"update\" interface of \"BuilderNode\" does not accept an object literal. Please replace it with an instance of the class specified in the generic when creating a new \"BuilderNode\", and ensure that the instance has the same field values as the literal (arkui-buildernode-update-no-literal)", + "severity": "ERROR" + }, + { + "line": 99, + "column": 9, + "endLine": 99, + "endColumn": 58, + "problem": "BuilderNodeUpdateNoLiteral", + "suggest": "", + "rule": "The \"update\" interface of \"BuilderNode\" does not accept an object literal. Please replace it with an instance of the class specified in the generic when creating a new \"BuilderNode\", and ensure that the instance has the same field values as the literal (arkui-buildernode-update-no-literal)", + "severity": "ERROR" + }, + { + "line": 99, + "column": 52, + "endLine": 99, + "endColumn": 55, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 100, + "column": 9, + "endLine": 100, + "endColumn": 49, + "problem": "BuilderNodeUpdateNoLiteral", + "suggest": "", + "rule": "The \"update\" interface of \"BuilderNode\" does not accept an object literal. Please replace it with an instance of the class specified in the generic when creating a new \"BuilderNode\", and ensure that the instance has the same field values as the literal (arkui-buildernode-update-no-literal)", + "severity": "ERROR" + }, + { + "line": 100, + "column": 34, + "endLine": 100, + "endColumn": 35, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 100, + "column": 38, + "endLine": 100, + "endColumn": 39, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 100, + "column": 47, + "endLine": 100, + "endColumn": 48, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 102, + "column": 9, + "endLine": 102, + "endColumn": 57, + "problem": "BuilderNodeUpdateNoLiteral", + "suggest": "", + "rule": "The \"update\" interface of \"BuilderNode\" does not accept an object literal. Please replace it with an instance of the class specified in the generic when creating a new \"BuilderNode\", and ensure that the instance has the same field values as the literal (arkui-buildernode-update-no-literal)", + "severity": "ERROR" + }, + { + "line": 102, + "column": 52, + "endLine": 102, + "endColumn": 55, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 103, + "column": 9, + "endLine": 103, + "endColumn": 47, + "problem": "BuilderNodeUpdateNoLiteral", + "suggest": "", + "rule": "The \"update\" interface of \"BuilderNode\" does not accept an object literal. Please replace it with an instance of the class specified in the generic when creating a new \"BuilderNode\", and ensure that the instance has the same field values as the literal (arkui-buildernode-update-no-literal)", + "severity": "ERROR" + }, + { + "line": 104, + "column": 9, + "endLine": 104, + "endColumn": 47, + "problem": "BuilderNodeUpdateNoLiteral", + "suggest": "", + "rule": "The \"update\" interface of \"BuilderNode\" does not accept an object literal. Please replace it with an instance of the class specified in the generic when creating a new \"BuilderNode\", and ensure that the instance has the same field values as the literal (arkui-buildernode-update-no-literal)", + "severity": "ERROR" + }, + { + "line": 105, + "column": 9, + "endLine": 105, + "endColumn": 52, + "problem": "BuilderNodeUpdateNoLiteral", + "suggest": "", + "rule": "The \"update\" interface of \"BuilderNode\" does not accept an object literal. Please replace it with an instance of the class specified in the generic when creating a new \"BuilderNode\", and ensure that the instance has the same field values as the literal (arkui-buildernode-update-no-literal)", + "severity": "ERROR" + }, + { + "line": 36, + "column": 2, + "endLine": 36, + "endColumn": 9, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Builder\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 68, + "column": 23, + "endLine": 68, + "endColumn": 32, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"UIContext\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 111, + "column": 2, + "endLine": 111, + "endColumn": 10, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Reusable\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 112, + "column": 2, + "endLine": 112, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Component\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/main/builder_node.ets.json b/ets2panda/linter/test/main/builder_node.ets.json new file mode 100644 index 0000000000000000000000000000000000000000..cbe274b6acf883f870cc6ad44d783f614d81fb8d --- /dev/null +++ b/ets2panda/linter/test/main/builder_node.ets.json @@ -0,0 +1,58 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 71, + "column": 72, + "endLine": 71, + "endColumn": 73, + "problem": "ObjectLiteralNoContextType", + "suggest": "", + "rule": "Object literal must correspond to some explicitly declared class or interface (arkts-no-untyped-obj-literals)", + "severity": "ERROR" + }, + { + "line": 72, + "column": 81, + "endLine": 72, + "endColumn": 82, + "problem": "ObjectLiteralNoContextType", + "suggest": "", + "rule": "Object literal must correspond to some explicitly declared class or interface (arkts-no-untyped-obj-literals)", + "severity": "ERROR" + }, + { + "line": 73, + "column": 72, + "endLine": 73, + "endColumn": 73, + "problem": "ObjectLiteralNoContextType", + "suggest": "", + "rule": "Object literal must correspond to some explicitly declared class or interface (arkts-no-untyped-obj-literals)", + "severity": "ERROR" + }, + { + "line": 74, + "column": 76, + "endLine": 74, + "endColumn": 77, + "problem": "ObjectLiteralNoContextType", + "suggest": "", + "rule": "Object literal must correspond to some explicitly declared class or interface (arkts-no-untyped-obj-literals)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/main/case_expr.ets.arkts2.json b/ets2panda/linter/test/main/case_expr.ets.arkts2.json index abc2f67950850ae0e8ee1634cee91d1c7cc073f1..44cd6542b5ef56b30ed8d9d729d7a9549071304a 100755 --- a/ets2panda/linter/test/main/case_expr.ets.arkts2.json +++ b/ets2panda/linter/test/main/case_expr.ets.arkts2.json @@ -121,7 +121,7 @@ "endColumn": 12, "problem": "SwitchExpression", "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", + "rule": "The switch expression type must be of type number, string or enum (arkts-switch-expr)", "severity": "ERROR" }, { diff --git a/ets2panda/linter/test/main/class_as_object.ets.arkts2.json b/ets2panda/linter/test/main/class_as_object.ets.arkts2.json index 461137accaf6240bf2fdf90a6d49561d3c968c57..44a60b85bb81f801a67c7fe752b4a1521a07c780 100644 --- a/ets2panda/linter/test/main/class_as_object.ets.arkts2.json +++ b/ets2panda/linter/test/main/class_as_object.ets.arkts2.json @@ -881,7 +881,7 @@ "endColumn": 12, "problem": "SwitchExpression", "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", + "rule": "The switch expression type must be of type number, string or enum (arkts-switch-expr)", "severity": "ERROR" }, { diff --git a/ets2panda/linter/test/main/collections_module.ets b/ets2panda/linter/test/main/collections_module.ets index 0d73282ec64470e2564c0681afdf0ec6ee331414..f61a5a5a4d52d648c5a17b1166ade1c58a424468 100644 --- a/ets2panda/linter/test/main/collections_module.ets +++ b/ets2panda/linter/test/main/collections_module.ets @@ -40,3 +40,7 @@ function tesCollectionsUsage() { function test(array: collections.Array) { const map = collections.Map(); } + +function testBitVector(bv: collections.BitVector) { + const bitVector = new collections.BitVector(); +} diff --git a/ets2panda/linter/test/main/collections_module.ets.arkts2.json b/ets2panda/linter/test/main/collections_module.ets.arkts2.json index 7286b3c366e4d8b32395b1830bd48e1ac22a1207..6fb86f244dfc3ed0b8908ed97460eb09399ffc6b 100644 --- a/ets2panda/linter/test/main/collections_module.ets.arkts2.json +++ b/ets2panda/linter/test/main/collections_module.ets.arkts2.json @@ -48,7 +48,7 @@ "line": 26, "column": 23, "endLine": 26, - "endColumn": 34, + "endColumn": 40, "problem": "NoNeedStdLibSendableContainer", "suggest": "", "rule": "Sendable containers are not supported (arkts-no-need-stdlib-sendable-containers)", @@ -58,7 +58,7 @@ "line": 26, "column": 55, "endLine": 26, - "endColumn": 66, + "endColumn": 72, "problem": "NoNeedStdLibSendableContainer", "suggest": "", "rule": "Sendable containers are not supported (arkts-no-need-stdlib-sendable-containers)", @@ -68,7 +68,7 @@ "line": 28, "column": 28, "endLine": 28, - "endColumn": 44, + "endColumn": 50, "problem": "NoNeedStdLibSendableContainer", "suggest": "", "rule": "Sendable containers are not supported (arkts-no-need-stdlib-sendable-containers)", @@ -78,7 +78,7 @@ "line": 30, "column": 28, "endLine": 30, - "endColumn": 42, + "endColumn": 48, "problem": "NoNeedStdLibSendableContainer", "suggest": "", "rule": "Sendable containers are not supported (arkts-no-need-stdlib-sendable-containers)", @@ -88,7 +88,7 @@ "line": 32, "column": 21, "endLine": 32, - "endColumn": 37, + "endColumn": 43, "problem": "NoNeedStdLibSendableContainer", "suggest": "", "rule": "Sendable containers are not supported (arkts-no-need-stdlib-sendable-containers)", @@ -98,7 +98,7 @@ "line": 34, "column": 23, "endLine": 34, - "endColumn": 39, + "endColumn": 45, "problem": "NoNeedStdLibSendableContainer", "suggest": "", "rule": "Sendable containers are not supported (arkts-no-need-stdlib-sendable-containers)", @@ -108,7 +108,7 @@ "line": 34, "column": 60, "endLine": 34, - "endColumn": 76, + "endColumn": 82, "problem": "NoNeedStdLibSendableContainer", "suggest": "", "rule": "Sendable containers are not supported (arkts-no-need-stdlib-sendable-containers)", @@ -118,7 +118,7 @@ "line": 40, "column": 22, "endLine": 40, - "endColumn": 33, + "endColumn": 39, "problem": "NoNeedStdLibSendableContainer", "suggest": "", "rule": "Sendable containers are not supported (arkts-no-need-stdlib-sendable-containers)", @@ -138,7 +138,7 @@ "line": 41, "column": 17, "endLine": 41, - "endColumn": 28, + "endColumn": 32, "problem": "NoNeedStdLibSendableContainer", "suggest": "", "rule": "Sendable containers are not supported (arkts-no-need-stdlib-sendable-containers)", @@ -153,6 +153,46 @@ "suggest": "", "rule": "Classes cannot be used as objects (arkts-no-classes-as-obj)", "severity": "ERROR" + }, + { + "line": 44, + "column": 28, + "endLine": 44, + "endColumn": 49, + "problem": "NoNeedStdLibSendableContainer", + "suggest": "", + "rule": "Sendable containers are not supported (arkts-no-need-stdlib-sendable-containers)", + "severity": "ERROR" + }, + { + "line": 45, + "column": 11, + "endLine": 45, + "endColumn": 58, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + }, + { + "line": 45, + "column": 27, + "endLine": 45, + "endColumn": 48, + "problem": "DynamicCtorCall", + "suggest": "", + "rule": "\"new\" expression with dynamic constructor type is not supported (arkts-no-dynamic-ctor-call)", + "severity": "ERROR" + }, + { + "line": 45, + "column": 27, + "endLine": 45, + "endColumn": 48, + "problem": "NoNeedStdLibSendableContainer", + "suggest": "", + "rule": "Sendable containers are not supported (arkts-no-need-stdlib-sendable-containers)", + "severity": "ERROR" } ] } diff --git a/ets2panda/linter/test/main/collections_module.ets.autofix.json b/ets2panda/linter/test/main/collections_module.ets.autofix.json index 1d3cd393a428875374beb8c8f466ccfb77fa4307..9be897f59e5ec888e5fcf18f65ebcbdab3e3da2b 100644 --- a/ets2panda/linter/test/main/collections_module.ets.autofix.json +++ b/ets2panda/linter/test/main/collections_module.ets.autofix.json @@ -81,7 +81,7 @@ "line": 26, "column": 23, "endLine": 26, - "endColumn": 34, + "endColumn": 40, "problem": "NoNeedStdLibSendableContainer", "autofix": [ { @@ -91,7 +91,7 @@ "line": 26, "column": 23, "endLine": 26, - "endColumn": 34 + "endColumn": 40 } ], "suggest": "", @@ -102,7 +102,7 @@ "line": 26, "column": 55, "endLine": 26, - "endColumn": 66, + "endColumn": 72, "problem": "NoNeedStdLibSendableContainer", "autofix": [ { @@ -112,7 +112,7 @@ "line": 26, "column": 55, "endLine": 26, - "endColumn": 66 + "endColumn": 72 } ], "suggest": "", @@ -123,7 +123,7 @@ "line": 28, "column": 28, "endLine": 28, - "endColumn": 44, + "endColumn": 50, "problem": "NoNeedStdLibSendableContainer", "autofix": [ { @@ -133,7 +133,7 @@ "line": 28, "column": 28, "endLine": 28, - "endColumn": 44 + "endColumn": 50 } ], "suggest": "", @@ -144,7 +144,7 @@ "line": 30, "column": 28, "endLine": 30, - "endColumn": 42, + "endColumn": 48, "problem": "NoNeedStdLibSendableContainer", "autofix": [ { @@ -154,7 +154,7 @@ "line": 30, "column": 28, "endLine": 30, - "endColumn": 42 + "endColumn": 48 } ], "suggest": "", @@ -165,7 +165,7 @@ "line": 32, "column": 21, "endLine": 32, - "endColumn": 37, + "endColumn": 43, "problem": "NoNeedStdLibSendableContainer", "autofix": [ { @@ -175,7 +175,7 @@ "line": 32, "column": 21, "endLine": 32, - "endColumn": 37 + "endColumn": 43 } ], "suggest": "", @@ -186,7 +186,7 @@ "line": 34, "column": 23, "endLine": 34, - "endColumn": 39, + "endColumn": 45, "problem": "NoNeedStdLibSendableContainer", "autofix": [ { @@ -196,7 +196,7 @@ "line": 34, "column": 23, "endLine": 34, - "endColumn": 39 + "endColumn": 45 } ], "suggest": "", @@ -207,7 +207,7 @@ "line": 34, "column": 60, "endLine": 34, - "endColumn": 76, + "endColumn": 82, "problem": "NoNeedStdLibSendableContainer", "autofix": [ { @@ -217,7 +217,7 @@ "line": 34, "column": 60, "endLine": 34, - "endColumn": 76 + "endColumn": 82 } ], "suggest": "", @@ -228,7 +228,7 @@ "line": 40, "column": 22, "endLine": 40, - "endColumn": 33, + "endColumn": 39, "problem": "NoNeedStdLibSendableContainer", "autofix": [ { @@ -238,7 +238,7 @@ "line": 40, "column": 22, "endLine": 40, - "endColumn": 33 + "endColumn": 39 } ], "suggest": "", @@ -259,7 +259,7 @@ "line": 41, "column": 17, "endLine": 41, - "endColumn": 28, + "endColumn": 32, "problem": "NoNeedStdLibSendableContainer", "autofix": [ { @@ -269,7 +269,7 @@ "line": 41, "column": 17, "endLine": 41, - "endColumn": 28 + "endColumn": 32 } ], "suggest": "", @@ -285,6 +285,86 @@ "suggest": "", "rule": "Classes cannot be used as objects (arkts-no-classes-as-obj)", "severity": "ERROR" + }, + { + "line": 44, + "column": 28, + "endLine": 44, + "endColumn": 49, + "problem": "NoNeedStdLibSendableContainer", + "autofix": [ + { + "start": 1514, + "end": 1535, + "replacementText": "BitVector", + "line": 44, + "column": 28, + "endLine": 44, + "endColumn": 49 + }, + { + "start": 919, + "end": 919, + "replacementText": "\nimport { BitVector } from \"@arkts.collections\";\n", + "line": 44, + "column": 28, + "endLine": 44, + "endColumn": 49 + } + ], + "suggest": "", + "rule": "Sendable containers are not supported (arkts-no-need-stdlib-sendable-containers)", + "severity": "ERROR" + }, + { + "line": 45, + "column": 11, + "endLine": 45, + "endColumn": 58, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + }, + { + "line": 45, + "column": 27, + "endLine": 45, + "endColumn": 48, + "problem": "DynamicCtorCall", + "suggest": "", + "rule": "\"new\" expression with dynamic constructor type is not supported (arkts-no-dynamic-ctor-call)", + "severity": "ERROR" + }, + { + "line": 45, + "column": 27, + "endLine": 45, + "endColumn": 48, + "problem": "NoNeedStdLibSendableContainer", + "autofix": [ + { + "start": 1573, + "end": 1594, + "replacementText": "BitVector", + "line": 45, + "column": 27, + "endLine": 45, + "endColumn": 48 + }, + { + "start": 919, + "end": 919, + "replacementText": "\nimport { BitVector } from \"@arkts.collections\";\n", + "line": 45, + "column": 27, + "endLine": 45, + "endColumn": 48 + } + ], + "suggest": "", + "rule": "Sendable containers are not supported (arkts-no-need-stdlib-sendable-containers)", + "severity": "ERROR" } ] } diff --git a/ets2panda/linter/test/main/collections_module.ets.json b/ets2panda/linter/test/main/collections_module.ets.json index c85948ef43d15c11df4ea2642653f1aa07028852..927ff202214f3a1090827f0856d16510b65298d6 100644 --- a/ets2panda/linter/test/main/collections_module.ets.json +++ b/ets2panda/linter/test/main/collections_module.ets.json @@ -33,6 +33,16 @@ "suggest": "", "rule": "Classes cannot be used as objects (arkts-no-classes-as-obj)", "severity": "WARNING" + }, + { + "line": 45, + "column": 11, + "endLine": 45, + "endColumn": 58, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" } ] } diff --git a/ets2panda/linter/test/main/collections_module.ets.migrate.ets b/ets2panda/linter/test/main/collections_module.ets.migrate.ets index 81cfa37dfc52720a009fc7648421b1f1158efd5a..9915905ea53f6be768dfe0ad9871dd9059a031a9 100644 --- a/ets2panda/linter/test/main/collections_module.ets.migrate.ets +++ b/ets2panda/linter/test/main/collections_module.ets.migrate.ets @@ -19,7 +19,9 @@ -import { collections as definedCollections } from './ignore_files/user_defined_collections'; //legal +import { collections as definedCollections } from './ignore_files/user_defined_collections'; +import { BitVector } from "@arkts.collections"; + //legal function tesCollectionsUsage() { @@ -40,3 +42,7 @@ function tesCollectionsUsage() { function test(array: Array) { const map = Map(); } + +function testBitVector(bv: BitVector) { + const bitVector = new BitVector(); +} diff --git a/ets2panda/linter/test/main/collections_module.ets.migrate.json b/ets2panda/linter/test/main/collections_module.ets.migrate.json index dd7b500c7435da5e5cbdc0a12e60930e24375f66..e3768540dc783f9b6fe11d045ce1217df7aaff07 100644 --- a/ets2panda/linter/test/main/collections_module.ets.migrate.json +++ b/ets2panda/linter/test/main/collections_module.ets.migrate.json @@ -15,14 +15,34 @@ ], "result": [ { - "line": 41, + "line": 43, "column": 11, - "endLine": 41, + "endLine": 43, "endColumn": 38, "problem": "AnyType", "suggest": "", "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", "severity": "ERROR" + }, + { + "line": 47, + "column": 11, + "endLine": 47, + "endColumn": 46, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + }, + { + "line": 47, + "column": 27, + "endLine": 47, + "endColumn": 36, + "problem": "DynamicCtorCall", + "suggest": "", + "rule": "\"new\" expression with dynamic constructor type is not supported (arkts-no-dynamic-ctor-call)", + "severity": "ERROR" } ] } diff --git a/ets2panda/linter/test/main/explicit_function_type.ets.arkts2.json b/ets2panda/linter/test/main/explicit_function_type.ets.arkts2.json index ab41a3326a9ceca4e10b9e62c529cdeed8ad5d21..e485c6f536c40e478abb267572b243df161f06ab 100644 --- a/ets2panda/linter/test/main/explicit_function_type.ets.arkts2.json +++ b/ets2panda/linter/test/main/explicit_function_type.ets.arkts2.json @@ -84,16 +84,6 @@ "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" }, - { - "line": 96, - "column": 17, - "endLine": 96, - "endColumn": 29, - "problem": "MethodInheritRule", - "suggest": "", - "rule": "Overridden method parameters and return types must respect type inheritance principles (arkts-method-inherit-rule)", - "severity": "ERROR" - }, { "line": 118, "column": 16, diff --git a/ets2panda/linter/test/main/explicit_function_type.ets.autofix.json b/ets2panda/linter/test/main/explicit_function_type.ets.autofix.json index cce8e07d1c1fab1b091c6a4f074adfc7d2b94787..f78396b2f083af0430c14f88c0f8f4f105057b05 100644 --- a/ets2panda/linter/test/main/explicit_function_type.ets.autofix.json +++ b/ets2panda/linter/test/main/explicit_function_type.ets.autofix.json @@ -150,16 +150,6 @@ "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" }, - { - "line": 96, - "column": 17, - "endLine": 96, - "endColumn": 29, - "problem": "MethodInheritRule", - "suggest": "", - "rule": "Overridden method parameters and return types must respect type inheritance principles (arkts-method-inherit-rule)", - "severity": "ERROR" - }, { "line": 118, "column": 16, diff --git a/ets2panda/linter/test/main/explicit_function_type.ets.migrate.json b/ets2panda/linter/test/main/explicit_function_type.ets.migrate.json index 9c5d050cc76a943c1a57c9ddbd6c9eca934470d4..b17d2989de701fb9fea8cc55fa8e3e51164796d1 100644 --- a/ets2panda/linter/test/main/explicit_function_type.ets.migrate.json +++ b/ets2panda/linter/test/main/explicit_function_type.ets.migrate.json @@ -24,16 +24,6 @@ "rule": "Classes cannot be used as objects (arkts-no-classes-as-obj)", "severity": "ERROR" }, - { - "line": 96, - "column": 17, - "endLine": 96, - "endColumn": 29, - "problem": "MethodInheritRule", - "suggest": "", - "rule": "Overridden method parameters and return types must respect type inheritance principles (arkts-method-inherit-rule)", - "severity": "ERROR" - }, { "line": 118, "column": 16, diff --git a/ets2panda/linter/test/main/func_inferred_type_args_3.ets b/ets2panda/linter/test/main/func_inferred_type_args_3.ets index 0425eba064689ca5219efade26b51eb4ac409859..cefc55fba0a8f50f3fee8ff86e62b29abee5a8bf 100644 --- a/ets2panda/linter/test/main/func_inferred_type_args_3.ets +++ b/ets2panda/linter/test/main/func_inferred_type_args_3.ets @@ -17,6 +17,7 @@ import B from './func_inferred_type_args_ts' import A2 from './func_inferred_type_args_ts2' import {A3} from './func_inferred_type_args_ts2' import { HashMap } from '@kit.ArkTS'; +import { IMonitorValue, IMonitor, LocalStorage, AbstractProperty, SubscribedAbstractProperty, AppStorage} from './oh_modules/common_ts_ets_api'; function test() { const a = new A(); @@ -40,4 +41,25 @@ class Demo{} function test4() { const a = new A4(); a.map = new HashMap(); //error -} \ No newline at end of file +} + +@ComponentV2 +struct Child { + @Param info: Info = new Info(); + @Monitor("info.message") + onMessageChange(monitor: IMonitor) { + let beforeValue: IMonitorValue = monitor.value(); + let beforeValue: IMonitorValue = monitor.value("info.message"); + console.info(`Child message change from ${monitor.value()?.before} to ${monitor.value('info.message')?.now}`); + } +} + +let para: Record = { 'PropA': 47 }; +let storage: LocalStorage = new LocalStorage(para); +let propA: number | undefined = storage.get('PropA'); +let link1: SubscribedAbstractProperty = storage.link('PropA'); +let refToPropA1: AbstractProperty | undefined = storage.ref('PropA'); + +let propA: number | undefined = AppStorage.get('PropA'); +let link1: SubscribedAbstractProperty = AppStorage.link('PropA'); +let refToPropA1: AbstractProperty | undefined = AppStorage.ref('PropA'); \ No newline at end of file diff --git a/ets2panda/linter/test/main/func_inferred_type_args_3.ets.arkts2.json b/ets2panda/linter/test/main/func_inferred_type_args_3.ets.arkts2.json index 868ccdbc438558b589ceec51e7df32f9c8a0a575..3d3a2b6001a02fdfee09fc0c09db5c1525e5a7f6 100644 --- a/ets2panda/linter/test/main/func_inferred_type_args_3.ets.arkts2.json +++ b/ets2panda/linter/test/main/func_inferred_type_args_3.ets.arkts2.json @@ -15,9 +15,9 @@ ], "result": [ { - "line": 23, + "line": 24, "column": 11, - "endLine": 23, + "endLine": 24, "endColumn": 20, "problem": "GenericCallNoTypeArgs", "suggest": "", @@ -25,9 +25,9 @@ "severity": "ERROR" }, { - "line": 27, + "line": 28, "column": 11, - "endLine": 27, + "endLine": 28, "endColumn": 20, "problem": "GenericCallNoTypeArgs", "suggest": "", @@ -35,9 +35,9 @@ "severity": "ERROR" }, { - "line": 31, + "line": 32, "column": 11, - "endLine": 31, + "endLine": 32, "endColumn": 20, "problem": "GenericCallNoTypeArgs", "suggest": "", @@ -45,9 +45,9 @@ "severity": "ERROR" }, { - "line": 42, + "line": 43, "column": 15, - "endLine": 42, + "endLine": 43, "endColumn": 22, "problem": "DynamicCtorCall", "suggest": "", @@ -55,14 +55,204 @@ "severity": "ERROR" }, { - "line": 42, + "line": 43, "column": 11, - "endLine": 42, + "endLine": 43, "endColumn": 24, "problem": "GenericCallNoTypeArgs", "suggest": "", "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", "severity": "ERROR" + }, + { + "line": 48, + "column": 27, + "endLine": 48, + "endColumn": 31, + "problem": "DynamicCtorCall", + "suggest": "", + "rule": "\"new\" expression with dynamic constructor type is not supported (arkts-no-dynamic-ctor-call)", + "severity": "ERROR" + }, + { + "line": 51, + "column": 46, + "endLine": 51, + "endColumn": 61, + "problem": "GenericCallNoTypeArgs", + "suggest": "", + "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", + "severity": "ERROR" + }, + { + "line": 52, + "column": 46, + "endLine": 52, + "endColumn": 75, + "problem": "GenericCallNoTypeArgs", + "suggest": "", + "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", + "severity": "ERROR" + }, + { + "line": 53, + "column": 47, + "endLine": 53, + "endColumn": 62, + "problem": "GenericCallNoTypeArgs", + "suggest": "", + "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", + "severity": "ERROR" + }, + { + "line": 53, + "column": 77, + "endLine": 53, + "endColumn": 106, + "problem": "GenericCallNoTypeArgs", + "suggest": "", + "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", + "severity": "ERROR" + }, + { + "line": 57, + "column": 46, + "endLine": 57, + "endColumn": 48, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 59, + "column": 33, + "endLine": 59, + "endColumn": 53, + "problem": "GenericCallNoTypeArgs", + "suggest": "", + "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", + "severity": "ERROR" + }, + { + "line": 60, + "column": 49, + "endLine": 60, + "endColumn": 70, + "problem": "GenericCallNoTypeArgs", + "suggest": "", + "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", + "severity": "ERROR" + }, + { + "line": 61, + "column": 57, + "endLine": 61, + "endColumn": 77, + "problem": "GenericCallNoTypeArgs", + "suggest": "", + "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", + "severity": "ERROR" + }, + { + "line": 63, + "column": 33, + "endLine": 63, + "endColumn": 56, + "problem": "GenericCallNoTypeArgs", + "suggest": "", + "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", + "severity": "ERROR" + }, + { + "line": 64, + "column": 49, + "endLine": 64, + "endColumn": 73, + "problem": "GenericCallNoTypeArgs", + "suggest": "", + "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", + "severity": "ERROR" + }, + { + "line": 65, + "column": 57, + "endLine": 65, + "endColumn": 80, + "problem": "GenericCallNoTypeArgs", + "suggest": "", + "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", + "severity": "ERROR" + }, + { + "line": 46, + "column": 2, + "endLine": 46, + "endColumn": 13, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"ComponentV2\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 48, + "column": 4, + "endLine": 48, + "endColumn": 9, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Param\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 49, + "column": 4, + "endLine": 49, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Monitor\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 51, + "column": 9, + "endLine": 51, + "endColumn": 20, + "problem": "StrictDiagnostic", + "suggest": "Type 'IMonitorValue | undefined' is not assignable to type 'IMonitorValue'.\n Type 'undefined' is not assignable to type 'IMonitorValue'.", + "rule": "Type 'IMonitorValue | undefined' is not assignable to type 'IMonitorValue'.\n Type 'undefined' is not assignable to type 'IMonitorValue'.", + "severity": "ERROR" + }, + { + "line": 52, + "column": 9, + "endLine": 52, + "endColumn": 20, + "problem": "StrictDiagnostic", + "suggest": "Type 'IMonitorValue | undefined' is not assignable to type 'IMonitorValue'.\n Type 'undefined' is not assignable to type 'IMonitorValue'.", + "rule": "Type 'IMonitorValue | undefined' is not assignable to type 'IMonitorValue'.\n Type 'undefined' is not assignable to type 'IMonitorValue'.", + "severity": "ERROR" + }, + { + "line": 60, + "column": 5, + "endLine": 60, + "endColumn": 10, + "problem": "StrictDiagnostic", + "suggest": "Type 'SubscribedAbstractProperty | undefined' is not assignable to type 'SubscribedAbstractProperty'.\n Type 'undefined' is not assignable to type 'SubscribedAbstractProperty'.", + "rule": "Type 'SubscribedAbstractProperty | undefined' is not assignable to type 'SubscribedAbstractProperty'.\n Type 'undefined' is not assignable to type 'SubscribedAbstractProperty'.", + "severity": "ERROR" + }, + { + "line": 64, + "column": 5, + "endLine": 64, + "endColumn": 10, + "problem": "StrictDiagnostic", + "suggest": "Type 'SubscribedAbstractProperty | undefined' is not assignable to type 'SubscribedAbstractProperty'.\n Type 'undefined' is not assignable to type 'SubscribedAbstractProperty'.", + "rule": "Type 'SubscribedAbstractProperty | undefined' is not assignable to type 'SubscribedAbstractProperty'.\n Type 'undefined' is not assignable to type 'SubscribedAbstractProperty'.", + "severity": "ERROR" } ] } \ No newline at end of file diff --git a/ets2panda/linter/test/main/func_inferred_type_args_3.ets.autofix.json b/ets2panda/linter/test/main/func_inferred_type_args_3.ets.autofix.json index 6c9b2975d94e94283827db705302981377fa29b6..a45c3a167352ec8374262312781c3717d6295c5b 100644 --- a/ets2panda/linter/test/main/func_inferred_type_args_3.ets.autofix.json +++ b/ets2panda/linter/test/main/func_inferred_type_args_3.ets.autofix.json @@ -15,19 +15,19 @@ ], "result": [ { - "line": 23, + "line": 24, "column": 11, - "endLine": 23, + "endLine": 24, "endColumn": 20, "problem": "GenericCallNoTypeArgs", "autofix": [ { - "start": 888, - "end": 888, + "start": 1033, + "end": 1033, "replacementText": "", - "line": 23, + "line": 24, "column": 11, - "endLine": 23, + "endLine": 24, "endColumn": 20 } ], @@ -36,9 +36,9 @@ "severity": "ERROR" }, { - "line": 27, + "line": 28, "column": 11, - "endLine": 27, + "endLine": 28, "endColumn": 20, "problem": "GenericCallNoTypeArgs", "suggest": "", @@ -46,19 +46,19 @@ "severity": "ERROR" }, { - "line": 31, + "line": 32, "column": 11, - "endLine": 31, + "endLine": 32, "endColumn": 20, "problem": "GenericCallNoTypeArgs", "autofix": [ { - "start": 1032, - "end": 1032, + "start": 1177, + "end": 1177, "replacementText": "", - "line": 31, + "line": 32, "column": 11, - "endLine": 31, + "endLine": 32, "endColumn": 20 } ], @@ -67,9 +67,9 @@ "severity": "ERROR" }, { - "line": 42, + "line": 43, "column": 15, - "endLine": 42, + "endLine": 43, "endColumn": 22, "problem": "DynamicCtorCall", "suggest": "", @@ -77,25 +77,369 @@ "severity": "ERROR" }, { - "line": 42, + "line": 43, "column": 11, - "endLine": 42, + "endLine": 43, "endColumn": 24, "problem": "GenericCallNoTypeArgs", "autofix": [ { - "start": 1183, - "end": 1183, + "start": 1328, + "end": 1328, "replacementText": "", - "line": 42, + "line": 43, "column": 11, - "endLine": 42, + "endLine": 43, "endColumn": 24 } ], "suggest": "", "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", "severity": "ERROR" + }, + { + "line": 48, + "column": 27, + "endLine": 48, + "endColumn": 31, + "problem": "DynamicCtorCall", + "suggest": "", + "rule": "\"new\" expression with dynamic constructor type is not supported (arkts-no-dynamic-ctor-call)", + "severity": "ERROR" + }, + { + "line": 51, + "column": 46, + "endLine": 51, + "endColumn": 61, + "problem": "GenericCallNoTypeArgs", + "autofix": [ + { + "start": 1529, + "end": 1529, + "replacementText": "", + "line": 51, + "column": 46, + "endLine": 51, + "endColumn": 61 + } + ], + "suggest": "", + "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", + "severity": "ERROR" + }, + { + "line": 52, + "column": 46, + "endLine": 52, + "endColumn": 75, + "problem": "GenericCallNoTypeArgs", + "autofix": [ + { + "start": 1591, + "end": 1591, + "replacementText": "", + "line": 52, + "column": 46, + "endLine": 52, + "endColumn": 75 + } + ], + "suggest": "", + "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", + "severity": "ERROR" + }, + { + "line": 53, + "column": 47, + "endLine": 53, + "endColumn": 62, + "problem": "GenericCallNoTypeArgs", + "autofix": [ + { + "start": 1668, + "end": 1668, + "replacementText": "", + "line": 53, + "column": 47, + "endLine": 53, + "endColumn": 62 + } + ], + "suggest": "", + "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", + "severity": "ERROR" + }, + { + "line": 53, + "column": 77, + "endLine": 53, + "endColumn": 106, + "problem": "GenericCallNoTypeArgs", + "autofix": [ + { + "start": 1698, + "end": 1698, + "replacementText": "", + "line": 53, + "column": 77, + "endLine": 53, + "endColumn": 106 + } + ], + "suggest": "", + "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", + "severity": "ERROR" + }, + { + "line": 57, + "column": 46, + "endLine": 57, + "endColumn": 48, + "problem": "NumericSemantics", + "autofix": [ + { + "start": 1776, + "end": 1778, + "replacementText": "47.0", + "line": 57, + "column": 46, + "endLine": 57, + "endColumn": 48 + } + ], + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 59, + "column": 33, + "endLine": 59, + "endColumn": 53, + "problem": "GenericCallNoTypeArgs", + "autofix": [ + { + "start": 1877, + "end": 1877, + "replacementText": "", + "line": 59, + "column": 33, + "endLine": 59, + "endColumn": 53 + } + ], + "suggest": "", + "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", + "severity": "ERROR" + }, + { + "line": 60, + "column": 49, + "endLine": 60, + "endColumn": 70, + "problem": "GenericCallNoTypeArgs", + "autofix": [ + { + "start": 1948, + "end": 1948, + "replacementText": "", + "line": 60, + "column": 49, + "endLine": 60, + "endColumn": 70 + } + ], + "suggest": "", + "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", + "severity": "ERROR" + }, + { + "line": 61, + "column": 57, + "endLine": 61, + "endColumn": 77, + "problem": "GenericCallNoTypeArgs", + "autofix": [ + { + "start": 2026, + "end": 2026, + "replacementText": "", + "line": 61, + "column": 57, + "endLine": 61, + "endColumn": 77 + } + ], + "suggest": "", + "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", + "severity": "ERROR" + }, + { + "line": 63, + "column": 33, + "endLine": 63, + "endColumn": 56, + "problem": "GenericCallNoTypeArgs", + "autofix": [ + { + "start": 2084, + "end": 2084, + "replacementText": "", + "line": 63, + "column": 33, + "endLine": 63, + "endColumn": 56 + } + ], + "suggest": "", + "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", + "severity": "ERROR" + }, + { + "line": 64, + "column": 49, + "endLine": 64, + "endColumn": 73, + "problem": "GenericCallNoTypeArgs", + "autofix": [ + { + "start": 2158, + "end": 2158, + "replacementText": "", + "line": 64, + "column": 49, + "endLine": 64, + "endColumn": 73 + } + ], + "suggest": "", + "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", + "severity": "ERROR" + }, + { + "line": 65, + "column": 57, + "endLine": 65, + "endColumn": 80, + "problem": "GenericCallNoTypeArgs", + "autofix": [ + { + "start": 2239, + "end": 2239, + "replacementText": "", + "line": 65, + "column": 57, + "endLine": 65, + "endColumn": 80 + } + ], + "suggest": "", + "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", + "severity": "ERROR" + }, + { + "line": 46, + "column": 2, + "endLine": 46, + "endColumn": 13, + "problem": "UIInterfaceImport", + "autofix": [ + { + "start": 603, + "end": 603, + "replacementText": "\n\nimport {\n ComponentV2,\n Param,\n Monitor,\n} from '@kit.ArkUI';\n", + "line": 49, + "column": 4, + "endLine": 49, + "endColumn": 11 + } + ], + "suggest": "", + "rule": "The ArkUI interface \"ComponentV2\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 48, + "column": 4, + "endLine": 48, + "endColumn": 9, + "problem": "UIInterfaceImport", + "autofix": [ + { + "start": 603, + "end": 603, + "replacementText": "\n\nimport {\n ComponentV2,\n Param,\n Monitor,\n} from '@kit.ArkUI';\n", + "line": 49, + "column": 4, + "endLine": 49, + "endColumn": 11 + } + ], + "suggest": "", + "rule": "The ArkUI interface \"Param\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 49, + "column": 4, + "endLine": 49, + "endColumn": 11, + "problem": "UIInterfaceImport", + "autofix": [ + { + "start": 603, + "end": 603, + "replacementText": "\n\nimport {\n ComponentV2,\n Param,\n Monitor,\n} from '@kit.ArkUI';\n", + "line": 49, + "column": 4, + "endLine": 49, + "endColumn": 11 + } + ], + "suggest": "", + "rule": "The ArkUI interface \"Monitor\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 51, + "column": 9, + "endLine": 51, + "endColumn": 20, + "problem": "StrictDiagnostic", + "suggest": "Type 'IMonitorValue | undefined' is not assignable to type 'IMonitorValue'.\n Type 'undefined' is not assignable to type 'IMonitorValue'.", + "rule": "Type 'IMonitorValue | undefined' is not assignable to type 'IMonitorValue'.\n Type 'undefined' is not assignable to type 'IMonitorValue'.", + "severity": "ERROR" + }, + { + "line": 52, + "column": 9, + "endLine": 52, + "endColumn": 20, + "problem": "StrictDiagnostic", + "suggest": "Type 'IMonitorValue | undefined' is not assignable to type 'IMonitorValue'.\n Type 'undefined' is not assignable to type 'IMonitorValue'.", + "rule": "Type 'IMonitorValue | undefined' is not assignable to type 'IMonitorValue'.\n Type 'undefined' is not assignable to type 'IMonitorValue'.", + "severity": "ERROR" + }, + { + "line": 60, + "column": 5, + "endLine": 60, + "endColumn": 10, + "problem": "StrictDiagnostic", + "suggest": "Type 'SubscribedAbstractProperty | undefined' is not assignable to type 'SubscribedAbstractProperty'.\n Type 'undefined' is not assignable to type 'SubscribedAbstractProperty'.", + "rule": "Type 'SubscribedAbstractProperty | undefined' is not assignable to type 'SubscribedAbstractProperty'.\n Type 'undefined' is not assignable to type 'SubscribedAbstractProperty'.", + "severity": "ERROR" + }, + { + "line": 64, + "column": 5, + "endLine": 64, + "endColumn": 10, + "problem": "StrictDiagnostic", + "suggest": "Type 'SubscribedAbstractProperty | undefined' is not assignable to type 'SubscribedAbstractProperty'.\n Type 'undefined' is not assignable to type 'SubscribedAbstractProperty'.", + "rule": "Type 'SubscribedAbstractProperty | undefined' is not assignable to type 'SubscribedAbstractProperty'.\n Type 'undefined' is not assignable to type 'SubscribedAbstractProperty'.", + "severity": "ERROR" } ] } \ No newline at end of file diff --git a/ets2panda/linter/test/main/func_inferred_type_args_3.ets.json b/ets2panda/linter/test/main/func_inferred_type_args_3.ets.json index b7a8809e02ae14f7f14ed7adbd6d2d3f630fa3f6..9b8ac8bc7dba0a8c8b78a0303ccffd0b78a19807 100644 --- a/ets2panda/linter/test/main/func_inferred_type_args_3.ets.json +++ b/ets2panda/linter/test/main/func_inferred_type_args_3.ets.json @@ -13,5 +13,46 @@ "See the License for the specific language governing permissions and", "limitations under the License." ], - "result": [] + "result": [ + { + "line": 51, + "column": 9, + "endLine": 51, + "endColumn": 20, + "problem": "StrictDiagnostic", + "suggest": "Type 'IMonitorValue | undefined' is not assignable to type 'IMonitorValue'.\n Type 'undefined' is not assignable to type 'IMonitorValue'.", + "rule": "Type 'IMonitorValue | undefined' is not assignable to type 'IMonitorValue'.\n Type 'undefined' is not assignable to type 'IMonitorValue'.", + "severity": "ERROR" + }, + { + "line": 52, + "column": 9, + "endLine": 52, + "endColumn": 20, + "problem": "StrictDiagnostic", + "suggest": "Type 'IMonitorValue | undefined' is not assignable to type 'IMonitorValue'.\n Type 'undefined' is not assignable to type 'IMonitorValue'.", + "rule": "Type 'IMonitorValue | undefined' is not assignable to type 'IMonitorValue'.\n Type 'undefined' is not assignable to type 'IMonitorValue'.", + "severity": "ERROR" + }, + { + "line": 60, + "column": 5, + "endLine": 60, + "endColumn": 10, + "problem": "StrictDiagnostic", + "suggest": "Type 'SubscribedAbstractProperty | undefined' is not assignable to type 'SubscribedAbstractProperty'.\n Type 'undefined' is not assignable to type 'SubscribedAbstractProperty'.", + "rule": "Type 'SubscribedAbstractProperty | undefined' is not assignable to type 'SubscribedAbstractProperty'.\n Type 'undefined' is not assignable to type 'SubscribedAbstractProperty'.", + "severity": "ERROR" + }, + { + "line": 64, + "column": 5, + "endLine": 64, + "endColumn": 10, + "problem": "StrictDiagnostic", + "suggest": "Type 'SubscribedAbstractProperty | undefined' is not assignable to type 'SubscribedAbstractProperty'.\n Type 'undefined' is not assignable to type 'SubscribedAbstractProperty'.", + "rule": "Type 'SubscribedAbstractProperty | undefined' is not assignable to type 'SubscribedAbstractProperty'.\n Type 'undefined' is not assignable to type 'SubscribedAbstractProperty'.", + "severity": "ERROR" + } + ] } \ No newline at end of file diff --git a/ets2panda/linter/test/main/func_inferred_type_args_3.ets.migrate.ets b/ets2panda/linter/test/main/func_inferred_type_args_3.ets.migrate.ets index c038713ec982d79a09659471780a07ead58ffade..c98487895d216a7a1b4b1ead3a99988c0410d7a8 100644 --- a/ets2panda/linter/test/main/func_inferred_type_args_3.ets.migrate.ets +++ b/ets2panda/linter/test/main/func_inferred_type_args_3.ets.migrate.ets @@ -12,11 +12,19 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + +import { + ComponentV2, + Param, + Monitor, +} from '@kit.ArkUI'; + import {A} from './func_inferred_type_args_ts'; import B from './func_inferred_type_args_ts' import A2 from './func_inferred_type_args_ts2' import {A3} from './func_inferred_type_args_ts2' import { HashMap } from '@kit.ArkTS'; +import { IMonitorValue, IMonitor, LocalStorage, AbstractProperty, SubscribedAbstractProperty, AppStorage} from './oh_modules/common_ts_ets_api'; function test() { const a = new A(); @@ -40,4 +48,25 @@ class Demo{} function test4() { const a = new A4(); a.map = new HashMap(); //error -} \ No newline at end of file +} + +@ComponentV2 +struct Child { + @Param info: Info = new Info(); + @Monitor("info.message") + onMessageChange(monitor: IMonitor) { + let beforeValue: IMonitorValue = monitor.value(); + let beforeValue: IMonitorValue = monitor.value("info.message"); + console.info(`Child message change from ${monitor.value()?.before} to ${monitor.value('info.message')?.now}`); + } +} + +let para: Record = { 'PropA': 47.0 }; +let storage: LocalStorage = new LocalStorage(para); +let propA: number | undefined = storage.get('PropA'); +let link1: SubscribedAbstractProperty = storage.link('PropA'); +let refToPropA1: AbstractProperty | undefined = storage.ref('PropA'); + +let propA: number | undefined = AppStorage.get('PropA'); +let link1: SubscribedAbstractProperty = AppStorage.link('PropA'); +let refToPropA1: AbstractProperty | undefined = AppStorage.ref('PropA'); \ No newline at end of file diff --git a/ets2panda/linter/test/main/func_inferred_type_args_3.ets.migrate.json b/ets2panda/linter/test/main/func_inferred_type_args_3.ets.migrate.json index f7a8d2c4bd57fe17e935fa31422c61b11a118be7..62f3ae72ba416c8d81e7056a12bd739734bbc4c4 100644 --- a/ets2panda/linter/test/main/func_inferred_type_args_3.ets.migrate.json +++ b/ets2panda/linter/test/main/func_inferred_type_args_3.ets.migrate.json @@ -15,9 +15,9 @@ ], "result": [ { - "line": 27, + "line": 35, "column": 11, - "endLine": 27, + "endLine": 35, "endColumn": 20, "problem": "GenericCallNoTypeArgs", "suggest": "", @@ -25,14 +25,64 @@ "severity": "ERROR" }, { - "line": 42, + "line": 50, "column": 15, - "endLine": 42, + "endLine": 50, "endColumn": 22, "problem": "DynamicCtorCall", "suggest": "", "rule": "\"new\" expression with dynamic constructor type is not supported (arkts-no-dynamic-ctor-call)", "severity": "ERROR" + }, + { + "line": 55, + "column": 27, + "endLine": 55, + "endColumn": 31, + "problem": "DynamicCtorCall", + "suggest": "", + "rule": "\"new\" expression with dynamic constructor type is not supported (arkts-no-dynamic-ctor-call)", + "severity": "ERROR" + }, + { + "line": 58, + "column": 9, + "endLine": 58, + "endColumn": 20, + "problem": "StrictDiagnostic", + "suggest": "Type 'IMonitorValue | undefined' is not assignable to type 'IMonitorValue'.\n Type 'undefined' is not assignable to type 'IMonitorValue'.", + "rule": "Type 'IMonitorValue | undefined' is not assignable to type 'IMonitorValue'.\n Type 'undefined' is not assignable to type 'IMonitorValue'.", + "severity": "ERROR" + }, + { + "line": 59, + "column": 9, + "endLine": 59, + "endColumn": 20, + "problem": "StrictDiagnostic", + "suggest": "Type 'IMonitorValue | undefined' is not assignable to type 'IMonitorValue'.\n Type 'undefined' is not assignable to type 'IMonitorValue'.", + "rule": "Type 'IMonitorValue | undefined' is not assignable to type 'IMonitorValue'.\n Type 'undefined' is not assignable to type 'IMonitorValue'.", + "severity": "ERROR" + }, + { + "line": 67, + "column": 5, + "endLine": 67, + "endColumn": 10, + "problem": "StrictDiagnostic", + "suggest": "Type 'SubscribedAbstractProperty | undefined' is not assignable to type 'SubscribedAbstractProperty'.\n Type 'undefined' is not assignable to type 'SubscribedAbstractProperty'.", + "rule": "Type 'SubscribedAbstractProperty | undefined' is not assignable to type 'SubscribedAbstractProperty'.\n Type 'undefined' is not assignable to type 'SubscribedAbstractProperty'.", + "severity": "ERROR" + }, + { + "line": 71, + "column": 5, + "endLine": 71, + "endColumn": 10, + "problem": "StrictDiagnostic", + "suggest": "Type 'SubscribedAbstractProperty | undefined' is not assignable to type 'SubscribedAbstractProperty'.\n Type 'undefined' is not assignable to type 'SubscribedAbstractProperty'.", + "rule": "Type 'SubscribedAbstractProperty | undefined' is not assignable to type 'SubscribedAbstractProperty'.\n Type 'undefined' is not assignable to type 'SubscribedAbstractProperty'.", + "severity": "ERROR" } ] } \ No newline at end of file diff --git a/ets2panda/linter/test/main/interface_import_5.ets b/ets2panda/linter/test/main/interface_import_5.ets new file mode 100644 index 0000000000000000000000000000000000000000..40a37c6d1f71b41c2537a5c7757a3427b1046d14 --- /dev/null +++ b/ets2panda/linter/test/main/interface_import_5.ets @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import * from './ui_modules/common'; + +@Entry +@Component +struct Index { + @State message: string = 'Hello World' + + build() { + Row() { + Column() { + Text(this.message) + .fontSize(50) + .fontWeight(FontWeight.Bold) + .onClick(() => { + // 建议使用this.getUIContext().getHostContext() + let context: Context = getContext(this) as Context; + console.info("CacheDir:" + context.cacheDir); + }) + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/main/interface_import_5.ets.args.json b/ets2panda/linter/test/main/interface_import_5.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..ef3938e967322a0c7551d84c7b6d280de94144c8 --- /dev/null +++ b/ets2panda/linter/test/main/interface_import_5.ets.args.json @@ -0,0 +1,21 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "", + "autofix": "--arkts-2", + "migrate": "--arkts-2" + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/main/interface_import_5.ets.arkts2.json b/ets2panda/linter/test/main/interface_import_5.ets.arkts2.json new file mode 100644 index 0000000000000000000000000000000000000000..37a19768bc6144179cc717ee4f6f088fbf965e0f --- /dev/null +++ b/ets2panda/linter/test/main/interface_import_5.ets.arkts2.json @@ -0,0 +1,128 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 27, + "column": 21, + "endLine": 27, + "endColumn": 23, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 31, + "column": 36, + "endLine": 31, + "endColumn": 46, + "problem": "NoDeprecatedApi", + "suggest": "", + "rule": "ArkUI deprecated api check (arkui-no-deprecated-api)", + "severity": "ERROR" + }, + { + "line": 18, + "column": 2, + "endLine": 18, + "endColumn": 7, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Entry\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 19, + "column": 2, + "endLine": 19, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Component\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 21, + "column": 4, + "endLine": 21, + "endColumn": 9, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"State\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 24, + "column": 5, + "endLine": 24, + "endColumn": 8, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Row\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 25, + "column": 7, + "endLine": 25, + "endColumn": 13, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Column\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 26, + "column": 9, + "endLine": 26, + "endColumn": 13, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Text\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 28, + "column": 23, + "endLine": 28, + "endColumn": 33, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"FontWeight\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 31, + "column": 26, + "endLine": 31, + "endColumn": 33, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Context\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 31, + "column": 56, + "endLine": 31, + "endColumn": 63, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Context\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/main/interface_import_5.ets.autofix.json b/ets2panda/linter/test/main/interface_import_5.ets.autofix.json new file mode 100644 index 0000000000000000000000000000000000000000..16bc0d466687a7f65d8e8554061fa0a859599eda --- /dev/null +++ b/ets2panda/linter/test/main/interface_import_5.ets.autofix.json @@ -0,0 +1,249 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 27, + "column": 21, + "endLine": 27, + "endColumn": 23, + "problem": "NumericSemantics", + "autofix": [ + { + "start": 806, + "end": 808, + "replacementText": "50.0", + "line": 27, + "column": 21, + "endLine": 27, + "endColumn": 23 + } + ], + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 31, + "column": 36, + "endLine": 31, + "endColumn": 46, + "problem": "NoDeprecatedApi", + "autofix": [ + { + "start": 967, + "end": 977, + "replacementText": "getUIContext().getHostContext", + "line": 31, + "column": 36, + "endLine": 31, + "endColumn": 46 + } + ], + "suggest": "", + "rule": "ArkUI deprecated api check (arkui-no-deprecated-api)", + "severity": "ERROR" + }, + { + "line": 18, + "column": 2, + "endLine": 18, + "endColumn": 7, + "problem": "UIInterfaceImport", + "autofix": [ + { + "start": 603, + "end": 603, + "replacementText": "\n\nimport {\n Entry,\n Component,\n State,\n Row,\n Column,\n Text,\n FontWeight,\n Context,\n getUIContext,\n} from '@kit.ArkUI';", + "line": 31, + "column": 56, + "endLine": 31, + "endColumn": 63 + } + ], + "suggest": "", + "rule": "The ArkUI interface \"Entry\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 19, + "column": 2, + "endLine": 19, + "endColumn": 11, + "problem": "UIInterfaceImport", + "autofix": [ + { + "start": 603, + "end": 603, + "replacementText": "\n\nimport {\n Entry,\n Component,\n State,\n Row,\n Column,\n Text,\n FontWeight,\n Context,\n getUIContext,\n} from '@kit.ArkUI';", + "line": 31, + "column": 56, + "endLine": 31, + "endColumn": 63 + } + ], + "suggest": "", + "rule": "The ArkUI interface \"Component\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 21, + "column": 4, + "endLine": 21, + "endColumn": 9, + "problem": "UIInterfaceImport", + "autofix": [ + { + "start": 603, + "end": 603, + "replacementText": "\n\nimport {\n Entry,\n Component,\n State,\n Row,\n Column,\n Text,\n FontWeight,\n Context,\n getUIContext,\n} from '@kit.ArkUI';", + "line": 31, + "column": 56, + "endLine": 31, + "endColumn": 63 + } + ], + "suggest": "", + "rule": "The ArkUI interface \"State\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 24, + "column": 5, + "endLine": 24, + "endColumn": 8, + "problem": "UIInterfaceImport", + "autofix": [ + { + "start": 603, + "end": 603, + "replacementText": "\n\nimport {\n Entry,\n Component,\n State,\n Row,\n Column,\n Text,\n FontWeight,\n Context,\n getUIContext,\n} from '@kit.ArkUI';", + "line": 31, + "column": 56, + "endLine": 31, + "endColumn": 63 + } + ], + "suggest": "", + "rule": "The ArkUI interface \"Row\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 25, + "column": 7, + "endLine": 25, + "endColumn": 13, + "problem": "UIInterfaceImport", + "autofix": [ + { + "start": 603, + "end": 603, + "replacementText": "\n\nimport {\n Entry,\n Component,\n State,\n Row,\n Column,\n Text,\n FontWeight,\n Context,\n getUIContext,\n} from '@kit.ArkUI';", + "line": 31, + "column": 56, + "endLine": 31, + "endColumn": 63 + } + ], + "suggest": "", + "rule": "The ArkUI interface \"Column\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 26, + "column": 9, + "endLine": 26, + "endColumn": 13, + "problem": "UIInterfaceImport", + "autofix": [ + { + "start": 603, + "end": 603, + "replacementText": "\n\nimport {\n Entry,\n Component,\n State,\n Row,\n Column,\n Text,\n FontWeight,\n Context,\n getUIContext,\n} from '@kit.ArkUI';", + "line": 31, + "column": 56, + "endLine": 31, + "endColumn": 63 + } + ], + "suggest": "", + "rule": "The ArkUI interface \"Text\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 28, + "column": 23, + "endLine": 28, + "endColumn": 33, + "problem": "UIInterfaceImport", + "autofix": [ + { + "start": 603, + "end": 603, + "replacementText": "\n\nimport {\n Entry,\n Component,\n State,\n Row,\n Column,\n Text,\n FontWeight,\n Context,\n getUIContext,\n} from '@kit.ArkUI';", + "line": 31, + "column": 56, + "endLine": 31, + "endColumn": 63 + } + ], + "suggest": "", + "rule": "The ArkUI interface \"FontWeight\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 31, + "column": 26, + "endLine": 31, + "endColumn": 33, + "problem": "UIInterfaceImport", + "autofix": [ + { + "start": 603, + "end": 603, + "replacementText": "\n\nimport {\n Entry,\n Component,\n State,\n Row,\n Column,\n Text,\n FontWeight,\n Context,\n getUIContext,\n} from '@kit.ArkUI';", + "line": 31, + "column": 56, + "endLine": 31, + "endColumn": 63 + } + ], + "suggest": "", + "rule": "The ArkUI interface \"Context\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 31, + "column": 56, + "endLine": 31, + "endColumn": 63, + "problem": "UIInterfaceImport", + "autofix": [ + { + "start": 603, + "end": 603, + "replacementText": "\n\nimport {\n Entry,\n Component,\n State,\n Row,\n Column,\n Text,\n FontWeight,\n Context,\n getUIContext,\n} from '@kit.ArkUI';", + "line": 31, + "column": 56, + "endLine": 31, + "endColumn": 63 + } + ], + "suggest": "", + "rule": "The ArkUI interface \"Context\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/main/interface_import_5.ets.json b/ets2panda/linter/test/main/interface_import_5.ets.json new file mode 100644 index 0000000000000000000000000000000000000000..ca88f857e960b437dcf767c0ac40be998c8f1236 --- /dev/null +++ b/ets2panda/linter/test/main/interface_import_5.ets.json @@ -0,0 +1,17 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [] +} \ No newline at end of file diff --git a/ets2panda/linter/test/main/interface_import_5.ets.migrate.ets b/ets2panda/linter/test/main/interface_import_5.ets.migrate.ets new file mode 100644 index 0000000000000000000000000000000000000000..70c09e824194f360fd02c9b2ca3703e14a568e55 --- /dev/null +++ b/ets2panda/linter/test/main/interface_import_5.ets.migrate.ets @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + Entry, + Component, + State, + Row, + Column, + Text, + FontWeight, + Context, + getUIContext, +} from '@kit.ArkUI'; + +import * from './ui_modules/common'; + +@Entry +@Component +struct Index { + @State message: string = 'Hello World' + + build() { + Row() { + Column() { + Text(this.message) + .fontSize(50.0) + .fontWeight(FontWeight.Bold) + .onClick(() => { + // 建议使用this.getUIContext().getHostContext() + let context: Context = getUIContext().getHostContext(this) as Context; + console.info("CacheDir:" + context.cacheDir); + }) + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/main/interface_import_5.ets.migrate.json b/ets2panda/linter/test/main/interface_import_5.ets.migrate.json new file mode 100644 index 0000000000000000000000000000000000000000..ca88f857e960b437dcf767c0ac40be998c8f1236 --- /dev/null +++ b/ets2panda/linter/test/main/interface_import_5.ets.migrate.json @@ -0,0 +1,17 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [] +} \ No newline at end of file diff --git a/ets2panda/linter/test/main/invalid_identifier.ets b/ets2panda/linter/test/main/invalid_identifier.ets index 51b1f3d06e53d0499eb9416f244e040e4602dac1..82e23b2d2bd06ea3a9dfa779fc3e2d291360966d 100755 --- a/ets2panda/linter/test/main/invalid_identifier.ets +++ b/ets2panda/linter/test/main/invalid_identifier.ets @@ -85,7 +85,7 @@ const implements: string = "implements"; const protected: string = "protected"; -const public: string = "public"; +const public: string = "public"; const do: string = "do" @@ -134,11 +134,11 @@ const string: string = "hello"; const void: void = undefined; class String { - + private const: string = "const"; string: string = "hello"; - + constructor(string: string) { } @@ -246,3 +246,8 @@ _as as as }; let a = 1; + +let records: Record[] = []; + +records.forEach(Map => {}) +records.forEach(json => {}) diff --git a/ets2panda/linter/test/main/invalid_identifier.ets.arkts2.json b/ets2panda/linter/test/main/invalid_identifier.ets.arkts2.json index 26b266ff8c62d21c13f89816f7c6c37d3b0f7490..8bedd487c8ac84dc85fc9728a71faab0de0e2314 100644 --- a/ets2panda/linter/test/main/invalid_identifier.ets.arkts2.json +++ b/ets2panda/linter/test/main/invalid_identifier.ets.arkts2.json @@ -91,7 +91,7 @@ "endColumn": 13, "problem": "SwitchExpression", "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", + "rule": "The switch expression type must be of type number, string or enum (arkts-switch-expr)", "severity": "ERROR" }, { @@ -634,16 +634,6 @@ "rule": "This keyword cannot be used as identifiers (arkts-invalid-identifier)", "severity": "ERROR" }, - { - "line": 160, - "column": 24, - "endLine": 160, - "endColumn": 30, - "problem": "InvalidIdentifier", - "suggest": "", - "rule": "This keyword cannot be used as identifiers (arkts-invalid-identifier)", - "severity": "ERROR" - }, { "line": 164, "column": 10, @@ -1065,4 +1055,4 @@ "severity": "ERROR" } ] -} \ No newline at end of file +} diff --git a/ets2panda/linter/test/main/limit_void_type.ets.arkts2.json b/ets2panda/linter/test/main/limit_void_type.ets.arkts2.json index d5851681b3cbccba32d5112080bd44cc294ca6e8..77cf362c1527086e6780739896b50bcf4d9fb6dc 100644 --- a/ets2panda/linter/test/main/limit_void_type.ets.arkts2.json +++ b/ets2panda/linter/test/main/limit_void_type.ets.arkts2.json @@ -1374,16 +1374,6 @@ "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", "severity": "ERROR" }, - { - "line": 251, - "column": 11, - "endLine": 251, - "endColumn": 15, - "problem": "SwitchExpression", - "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", - "severity": "ERROR" - }, { "line": 252, "column": 10, diff --git a/ets2panda/linter/test/main/limit_void_type.ets.autofix.json b/ets2panda/linter/test/main/limit_void_type.ets.autofix.json index 60cf6b289814a5d50e03aad0eb99b9634cc3fa9f..d80964b3403d86d70caba07f981713790f4387b4 100644 --- a/ets2panda/linter/test/main/limit_void_type.ets.autofix.json +++ b/ets2panda/linter/test/main/limit_void_type.ets.autofix.json @@ -1715,16 +1715,6 @@ "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", "severity": "ERROR" }, - { - "line": 251, - "column": 11, - "endLine": 251, - "endColumn": 15, - "problem": "SwitchExpression", - "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", - "severity": "ERROR" - }, { "line": 252, "column": 10, diff --git a/ets2panda/linter/test/main/limit_void_type.ets.migrate.json b/ets2panda/linter/test/main/limit_void_type.ets.migrate.json index 3644453e029b1f234d75a59250d1cd1efbf4ea60..45016261114b25295b9fbc45da97c51d76361c93 100644 --- a/ets2panda/linter/test/main/limit_void_type.ets.migrate.json +++ b/ets2panda/linter/test/main/limit_void_type.ets.migrate.json @@ -1074,16 +1074,6 @@ "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", "severity": "ERROR" }, - { - "line": 262, - "column": 11, - "endLine": 262, - "endColumn": 15, - "problem": "SwitchExpression", - "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", - "severity": "ERROR" - }, { "line": 263, "column": 10, diff --git a/ets2panda/linter/test/main/literals_as_prop_names.ets b/ets2panda/linter/test/main/literals_as_prop_names.ets index 0f2781e90b8c704334aef16842824a9d1ebd75ac..e0fd0882c2f421890539561d80d79c004339252f 100755 --- a/ets2panda/linter/test/main/literals_as_prop_names.ets +++ b/ets2panda/linter/test/main/literals_as_prop_names.ets @@ -162,4 +162,14 @@ enum TEST2 { let de3 = TEST2[TEST.A] //error let de4 = TEST2[TEST.A| TEST.B] //error -let de5 = TEST[TEST.C] //ok \ No newline at end of file +let de5 = TEST[TEST.C] //ok + +export enum DeviceTypes12 { + PHONE = 'phone', + TABLET = 'tablet', + "2IN1" = '2in1', +} + +export class A{ + public static a= DeviceTypes12["2IN1"] +} \ No newline at end of file diff --git a/ets2panda/linter/test/main/literals_as_prop_names.ets.arkts2.json b/ets2panda/linter/test/main/literals_as_prop_names.ets.arkts2.json index a1c3a4b9724091615941ad405ba2ef2ceaeaaf5c..d7d3490723b86fd6da0f681c38dd5b5e78067cbc 100644 --- a/ets2panda/linter/test/main/literals_as_prop_names.ets.arkts2.json +++ b/ets2panda/linter/test/main/literals_as_prop_names.ets.arkts2.json @@ -554,6 +554,16 @@ "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" }, + { + "line": 136, + "column": 3, + "endLine": 136, + "endColumn": 15, + "problem": "ObjectLiteralKeyType", + "suggest": "", + "rule": "Use string-literal keys with Record (arkts-obj-literal-key-type)", + "severity": "ERROR" + }, { "line": 135, "column": 37, @@ -744,6 +754,26 @@ "rule": "Enum cannot get member name by member value (arkts-enum-no-props-by-index)", "severity": "ERROR" }, + { + "line": 170, + "column": 3, + "endLine": 170, + "endColumn": 18, + "problem": "LiteralAsPropertyName", + "suggest": "", + "rule": "Objects with property names that are not identifiers are not supported (arkts-identifiers-as-prop-names)", + "severity": "ERROR" + }, + { + "line": 174, + "column": 20, + "endLine": 174, + "endColumn": 41, + "problem": "UnsupportPropNameFromValue", + "suggest": "", + "rule": "Enum cannot get member name by member value (arkts-enum-no-props-by-index)", + "severity": "ERROR" + }, { "line": 115, "column": 2, @@ -805,4 +835,4 @@ "severity": "ERROR" } ] -} \ No newline at end of file +} diff --git a/ets2panda/linter/test/main/literals_as_prop_names.ets.autofix.json b/ets2panda/linter/test/main/literals_as_prop_names.ets.autofix.json index 4c95852a32b261a8705a0fc27cb1119ecc6bce3b..bbe794fdbdaa4cf93adf2693d55ea1ffeba8a42c 100644 --- a/ets2panda/linter/test/main/literals_as_prop_names.ets.autofix.json +++ b/ets2panda/linter/test/main/literals_as_prop_names.ets.autofix.json @@ -89,6 +89,35 @@ "endLine": 27, "endColumn": 8, "problem": "LiteralAsPropertyName", + "autofix": [ + { + "replacementText": "Two", + "start": 849, + "end": 854, + "line": 38, + "column": 13, + "endLine": 38, + "endColumn": 33 + }, + { + "replacementText": "Two", + "start": 940, + "end": 945, + "line": 38, + "column": 13, + "endLine": 38, + "endColumn": 33 + }, + { + "replacementText": "litAsPropName.Two", + "start": 1032, + "end": 1052, + "line": 38, + "column": 13, + "endLine": 38, + "endColumn": 33 + } + ], "suggest": "", "rule": "Objects with property names that are not identifiers are not supported (arkts-identifiers-as-prop-names)", "severity": "ERROR" @@ -138,6 +167,35 @@ "endLine": 33, "endColumn": 8, "problem": "LiteralAsPropertyName", + "autofix": [ + { + "replacementText": "Two", + "start": 849, + "end": 854, + "line": 38, + "column": 13, + "endLine": 38, + "endColumn": 33 + }, + { + "replacementText": "Two", + "start": 940, + "end": 945, + "line": 38, + "column": 13, + "endLine": 38, + "endColumn": 33 + }, + { + "replacementText": "litAsPropName.Two", + "start": 1032, + "end": 1052, + "line": 38, + "column": 13, + "endLine": 38, + "endColumn": 33 + } + ], "suggest": "", "rule": "Objects with property names that are not identifiers are not supported (arkts-identifiers-as-prop-names)", "severity": "ERROR" @@ -229,6 +287,35 @@ "endLine": 38, "endColumn": 33, "problem": "PropertyAccessByIndex", + "autofix": [ + { + "replacementText": "Two", + "start": 849, + "end": 854, + "line": 38, + "column": 13, + "endLine": 38, + "endColumn": 33 + }, + { + "replacementText": "Two", + "start": 940, + "end": 945, + "line": 38, + "column": 13, + "endLine": 38, + "endColumn": 33 + }, + { + "replacementText": "litAsPropName.Two", + "start": 1032, + "end": 1052, + "line": 38, + "column": 13, + "endLine": 38, + "endColumn": 33 + } + ], "suggest": "", "rule": "Indexed access is not supported for fields (arkts-no-props-by-index)", "severity": "ERROR" @@ -454,6 +541,26 @@ "endLine": 76, "endColumn": 8, "problem": "LiteralAsPropertyName", + "autofix": [ + { + "replacementText": "__2", + "start": 1739, + "end": 1744, + "line": 81, + "column": 3, + "endLine": 81, + "endColumn": 8 + }, + { + "replacementText": "__2", + "start": 1824, + "end": 1829, + "line": 81, + "column": 3, + "endLine": 81, + "endColumn": 8 + } + ], "suggest": "", "rule": "Objects with property names that are not identifiers are not supported (arkts-identifiers-as-prop-names)", "severity": "ERROR" @@ -504,6 +611,26 @@ "endLine": 81, "endColumn": 8, "problem": "LiteralAsPropertyName", + "autofix": [ + { + "replacementText": "__2", + "start": 1739, + "end": 1744, + "line": 81, + "column": 3, + "endLine": 81, + "endColumn": 8 + }, + { + "replacementText": "__2", + "start": 1824, + "end": 1829, + "line": 81, + "column": 3, + "endLine": 81, + "endColumn": 8 + } + ], "suggest": "", "rule": "Objects with property names that are not identifiers are not supported (arkts-identifiers-as-prop-names)", "severity": "ERROR" @@ -965,6 +1092,17 @@ "endLine": 132, "endColumn": 15, "problem": "LiteralAsPropertyName", + "autofix": [ + { + "replacementText": "age", + "start": 2466, + "end": 2471, + "line": 132, + "column": 10, + "endLine": 132, + "endColumn": 15 + } + ], "suggest": "", "rule": "Objects with property names that are not identifiers are not supported (arkts-identifiers-as-prop-names)", "severity": "ERROR" @@ -990,6 +1128,16 @@ "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" }, + { + "line": 136, + "column": 3, + "endLine": 136, + "endColumn": 15, + "problem": "ObjectLiteralKeyType", + "suggest": "", + "rule": "Use string-literal keys with Record (arkts-obj-literal-key-type)", + "severity": "ERROR" + }, { "line": 135, "column": 37, @@ -1268,6 +1416,46 @@ "rule": "Enum cannot get member name by member value (arkts-enum-no-props-by-index)", "severity": "ERROR" }, + { + "line": 170, + "column": 3, + "endLine": 170, + "endColumn": 18, + "problem": "LiteralAsPropertyName", + "autofix": [ + { + "replacementText": "__2IN1", + "start": 3173, + "end": 3179, + "line": 170, + "column": 3, + "endLine": 170, + "endColumn": 18 + }, + { + "replacementText": "DeviceTypes12.__2IN1", + "start": 3228, + "end": 3249, + "line": 170, + "column": 3, + "endLine": 170, + "endColumn": 18 + } + ], + "suggest": "", + "rule": "Objects with property names that are not identifiers are not supported (arkts-identifiers-as-prop-names)", + "severity": "ERROR" + }, + { + "line": 174, + "column": 20, + "endLine": 174, + "endColumn": 41, + "problem": "UnsupportPropNameFromValue", + "suggest": "", + "rule": "Enum cannot get member name by member value (arkts-enum-no-props-by-index)", + "severity": "ERROR" + }, { "line": 115, "column": 2, @@ -1351,4 +1539,4 @@ "severity": "ERROR" } ] -} \ No newline at end of file +} diff --git a/ets2panda/linter/test/main/literals_as_prop_names.ets.migrate.ets b/ets2panda/linter/test/main/literals_as_prop_names.ets.migrate.ets index 0cbab448d613ab68550f99805762eeb01ddcea13..09312e6f0fa20beb9e4c0fb9935a6ab8f352a88f 100644 --- a/ets2panda/linter/test/main/literals_as_prop_names.ets.migrate.ets +++ b/ets2panda/linter/test/main/literals_as_prop_names.ets.migrate.ets @@ -29,18 +29,18 @@ enum LiteralAsPropertyNameEnum { class LiteralAsPropertyName { public one: string = "1111111111"; private __2: string; - 'Two': number; + Two: number; } const litAsPropName: LiteralAsPropertyName = { one: "1", __2: 'two', - 'Two': 2.0, + Two: 2.0, }; console.log(litAsPropName.one); console.log(litAsPropName.__2); -console.log(litAsPropName["Two"]); +console.log(litAsPropName.Two); class LiteralAsPropertyName_fix { public one: string = "1111111111"; @@ -82,12 +82,12 @@ console.log(x_fix._2); interface litAsPropNameIface { one: string; ___2: string; - '__2': number; + __2: number; } const int: litAsPropNameIface = { one: '12321', ___2: 'weqwewq', - '__2': 123.0 + __2: 123.0 }; const imp: ExportLitAsPropName = { 1: 234.0 }; @@ -138,7 +138,7 @@ let a:A = { age: 30.0} class B { - public 'age': number = 1.0 // error in arkts2 + public age: number = 1.0 // error in arkts2 } let obj11: Record = { @@ -171,4 +171,14 @@ enum TEST2 { let de3 = TEST2[TEST.A] //error let de4 = TEST2[TEST.A| TEST.B] //error -let de5 = TEST[TEST.C] //ok \ No newline at end of file +let de5 = TEST[TEST.C] //ok + +export enum DeviceTypes12 { + PHONE = 'phone', + TABLET = 'tablet', + __2IN1 = '2in1', +} + +export class A{ + public static a= DeviceTypes12.__2IN1 +} \ No newline at end of file diff --git a/ets2panda/linter/test/main/literals_as_prop_names.ets.migrate.json b/ets2panda/linter/test/main/literals_as_prop_names.ets.migrate.json index 40d660f102f671807bdb1a196838505d64ef1f6b..4f163766c468b80deca1333ffc31443247e46607 100644 --- a/ets2panda/linter/test/main/literals_as_prop_names.ets.migrate.json +++ b/ets2panda/linter/test/main/literals_as_prop_names.ets.migrate.json @@ -14,36 +14,6 @@ "limitations under the License." ], "result": [ - { - "line": 32, - "column": 3, - "endLine": 32, - "endColumn": 8, - "problem": "LiteralAsPropertyName", - "suggest": "", - "rule": "Objects with property names that are not identifiers are not supported (arkts-identifiers-as-prop-names)", - "severity": "ERROR" - }, - { - "line": 38, - "column": 3, - "endLine": 38, - "endColumn": 8, - "problem": "LiteralAsPropertyName", - "suggest": "", - "rule": "Objects with property names that are not identifiers are not supported (arkts-identifiers-as-prop-names)", - "severity": "ERROR" - }, - { - "line": 43, - "column": 13, - "endLine": 43, - "endColumn": 33, - "problem": "PropertyAccessByIndex", - "suggest": "", - "rule": "Indexed access is not supported for fields (arkts-no-props-by-index)", - "severity": "ERROR" - }, { "line": 62, "column": 9, @@ -94,16 +64,6 @@ "rule": "Indexed access is not supported for fields (arkts-no-props-by-index)", "severity": "ERROR" }, - { - "line": 85, - "column": 3, - "endLine": 85, - "endColumn": 8, - "problem": "LiteralAsPropertyName", - "suggest": "", - "rule": "Objects with property names that are not identifiers are not supported (arkts-identifiers-as-prop-names)", - "severity": "ERROR" - }, { "line": 87, "column": 7, @@ -114,16 +74,6 @@ "rule": "This keyword cannot be used as identifiers (arkts-invalid-identifier)", "severity": "ERROR" }, - { - "line": 90, - "column": 3, - "endLine": 90, - "endColumn": 8, - "problem": "LiteralAsPropertyName", - "suggest": "", - "rule": "Objects with property names that are not identifiers are not supported (arkts-identifiers-as-prop-names)", - "severity": "ERROR" - }, { "line": 93, "column": 36, @@ -215,13 +165,13 @@ "severity": "ERROR" }, { - "line": 141, - "column": 10, - "endLine": 141, - "endColumn": 15, - "problem": "LiteralAsPropertyName", + "line": 145, + "column": 3, + "endLine": 145, + "endColumn": 17, + "problem": "ObjectLiteralKeyType", "suggest": "", - "rule": "Objects with property names that are not identifiers are not supported (arkts-identifiers-as-prop-names)", + "rule": "Use string-literal keys with Record (arkts-obj-literal-key-type)", "severity": "ERROR" }, { @@ -344,6 +294,16 @@ "rule": "Property '__2' has no initializer and is not definitely assigned in the constructor.", "severity": "ERROR" }, + { + "line": 32, + "column": 3, + "endLine": 32, + "endColumn": 6, + "problem": "StrictDiagnostic", + "suggest": "Property 'Two' has no initializer and is not definitely assigned in the constructor.", + "rule": "Property 'Two' has no initializer and is not definitely assigned in the constructor.", + "severity": "ERROR" + }, { "line": 47, "column": 11, @@ -385,4 +345,4 @@ "severity": "ERROR" } ] -} \ No newline at end of file +} diff --git a/ets2panda/linter/test/main/method_inheritance2.ets b/ets2panda/linter/test/main/method_inheritance2.ets index 2591755adc6107122557a598b0cdbe0cb5e31d4d..e4f9112258fabd281f9d907f4e5e68c16eaf32d2 100755 --- a/ets2panda/linter/test/main/method_inheritance2.ets +++ b/ets2panda/linter/test/main/method_inheritance2.ets @@ -113,4 +113,14 @@ class Derived5 extends Base5 { console.log("Derived:") return new A(); } +} + +interface I{ + pp(key:string,value:string):void + pp(key:string):void +} + +class J implements I{ + pp(key: string,value?:string):void { // 漏报arkts-method-inherit-rule + } } \ No newline at end of file diff --git a/ets2panda/linter/test/main/method_inheritance2.ets.arkts2.json b/ets2panda/linter/test/main/method_inheritance2.ets.arkts2.json index 0a8b389c110fd996dd9ff65f6067e69b4f12f3ce..cbe043f50d53d1b231c12df979167c39f21e05c2 100755 --- a/ets2panda/linter/test/main/method_inheritance2.ets.arkts2.json +++ b/ets2panda/linter/test/main/method_inheritance2.ets.arkts2.json @@ -104,6 +104,16 @@ "rule": "Overridden method parameters and return types must respect type inheritance principles (arkts-method-inherit-rule)", "severity": "ERROR" }, + { + "line": 103, + "column": 18, + "endLine": 103, + "endColumn": 19, + "problem": "MethodInheritRule", + "suggest": "", + "rule": "Overridden method parameters and return types must respect type inheritance principles (arkts-method-inherit-rule)", + "severity": "ERROR" + }, { "line": 108, "column": 17, @@ -113,6 +123,26 @@ "suggest": "", "rule": "Overridden method parameters and return types must respect type inheritance principles (arkts-method-inherit-rule)", "severity": "ERROR" + }, + { + "line": 112, + "column": 18, + "endLine": 112, + "endColumn": 19, + "problem": "MethodInheritRule", + "suggest": "", + "rule": "Overridden method parameters and return types must respect type inheritance principles (arkts-method-inherit-rule)", + "severity": "ERROR" + }, + { + "line": 124, + "column": 18, + "endLine": 124, + "endColumn": 31, + "problem": "MethodInheritRule", + "suggest": "", + "rule": "Overridden method parameters and return types must respect type inheritance principles (arkts-method-inherit-rule)", + "severity": "ERROR" } ] } \ No newline at end of file diff --git a/ets2panda/linter/test/main/method_inheritance3.ets b/ets2panda/linter/test/main/method_inheritance3.ets new file mode 100755 index 0000000000000000000000000000000000000000..d31da9911bdba10fc816d7677500f8a4feae3ff1 --- /dev/null +++ b/ets2panda/linter/test/main/method_inheritance3.ets @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +class A{ + getData(a:T):T{ + return a; + } +} + +class B extends A{ + getData(a: number): number { // no error + return 123; + } +} + +enum E{ + E1, + E2 +} + +interface I { + fun(e:E):void +} + +class C implements I { + fun(e:E):void{ // no error + + } +} + +Class UIAbility { + onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void; + onWindowStageCreate(windowStage: window.WindowStage): void; +} + +class EntryAbility extends UIAbility { + onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { // no error + + } + + onWindowStageCreate(windowStage: window.WindowStage): void { // no error + try { + windowStage.loadContent('pages/Index', (err: BusinessError | null): void => { + if (err && err.code) { + return; + } + }); + } catch (e) { + } + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/main/method_inheritance3.ets.args.json b/ets2panda/linter/test/main/method_inheritance3.ets.args.json new file mode 100755 index 0000000000000000000000000000000000000000..d8d3390ad9befeca9b595017d9eea0f5ada3d049 --- /dev/null +++ b/ets2panda/linter/test/main/method_inheritance3.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } +} \ No newline at end of file diff --git a/ets2panda/linter/test/main/method_inheritance3.ets.arkts2.json b/ets2panda/linter/test/main/method_inheritance3.ets.arkts2.json new file mode 100755 index 0000000000000000000000000000000000000000..1dfcce5603792b0fa38a6e3c592a373b2d6103ac --- /dev/null +++ b/ets2panda/linter/test/main/method_inheritance3.ets.arkts2.json @@ -0,0 +1,78 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 24, + "column": 12, + "endLine": 24, + "endColumn": 15, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 44, + "column": 67, + "endLine": 44, + "endColumn": 71, + "problem": "VoidOperator", + "suggest": "", + "rule": "\"void\" operator is not supported (arkts-no-void-operator)", + "severity": "ERROR" + }, + { + "line": 45, + "column": 57, + "endLine": 45, + "endColumn": 61, + "problem": "VoidOperator", + "suggest": "", + "rule": "\"void\" operator is not supported (arkts-no-void-operator)", + "severity": "ERROR" + }, + { + "line": 44, + "column": 18, + "endLine": 44, + "endColumn": 22, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Want\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 49, + "column": 18, + "endLine": 49, + "endColumn": 22, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"Want\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 55, + "column": 52, + "endLine": 55, + "endColumn": 65, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"BusinessError\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/main/method_inheritance3.ets.json b/ets2panda/linter/test/main/method_inheritance3.ets.json new file mode 100755 index 0000000000000000000000000000000000000000..ca88f857e960b437dcf767c0ac40be998c8f1236 --- /dev/null +++ b/ets2panda/linter/test/main/method_inheritance3.ets.json @@ -0,0 +1,17 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [] +} \ No newline at end of file diff --git a/ets2panda/linter/test/main/no_class_omit_interface_optional.ets b/ets2panda/linter/test/main/no_class_omit_interface_optional.ets new file mode 100644 index 0000000000000000000000000000000000000000..6ea84551998b2c75382e88a6425f999647c37f8b --- /dev/null +++ b/ets2panda/linter/test/main/no_class_omit_interface_optional.ets @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// 1) All fields implemented — no error +interface I1 { + a: number; + b: string; +} +class C1 implements I1 { // ✅ no error + a: number = 0.0; + b: string = ''; +} + +// 2) One field missing — error +interface I2 { + x: boolean; + y: number; + cb(): void; +} +class C2 implements I2 { // ❌ Error: missing `y` + x: boolean = true; +} +class C21 implements I2 { // ❌ Error: missing `cb()` + x: boolean = true; + y: number = 5.0; +} + +// 3) Optional fields are treated as required — error +interface I3 { + foo?: string; + bar?: number; +} +class C3 implements I3 { // ❌ Error: missing both `foo` and `bar` (first missing stops checking) +} + +// 4) Optional field implemented +class C4 implements I3 { // ✅ no error + foo?: string; + bar?: number; +} + +// 5) Interface extends another +interface A5 { + p: string; +} +interface B5 extends A5 { + q: string; +} +class C5 implements B5 { // ✅ no error + p: string = 'hello'; + q: string = 'world'; +} +class C6 implements B5 { // ❌ Error: missing `q` + p: string = 'hello'; +} +class C61 implements B5 { // ❌ Error: missing `p` + q: string = 'hello'; +} + +// 6) Multiple interfaces at once +interface I6a { u: number } +interface I6b { v: boolean } +class C7 implements I6a, I6b { // ✅ no error + u: number = 42.0; + v: boolean = false; +} +class C8 implements I6a, I6b { // ❌ Error: missing `v` + u: number = 42.0; +} diff --git a/ets2panda/linter/test/main/no_class_omit_interface_optional.ets.args.json b/ets2panda/linter/test/main/no_class_omit_interface_optional.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..66fb88f85945924e8be0e83d90123507033f4c5d --- /dev/null +++ b/ets2panda/linter/test/main/no_class_omit_interface_optional.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } +} diff --git a/ets2panda/linter/test/main/no_class_omit_interface_optional.ets.arkts2.json b/ets2panda/linter/test/main/no_class_omit_interface_optional.ets.arkts2.json new file mode 100644 index 0000000000000000000000000000000000000000..f20f5ff07f2064876508be7a1ae60033e62afa66 --- /dev/null +++ b/ets2panda/linter/test/main/no_class_omit_interface_optional.ets.arkts2.json @@ -0,0 +1,78 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 32, + "column": 7, + "endLine": 32, + "endColumn": 9, + "problem": "InterfaceFieldNotImplemented", + "suggest": "", + "rule": "ArkTS 1.2 should implement all fields in the interface in the class (arkts-no-class-omit-interface-optional-prop)", + "severity": "ERROR" + }, + { + "line": 35, + "column": 7, + "endLine": 35, + "endColumn": 10, + "problem": "InterfaceFieldNotImplemented", + "suggest": "", + "rule": "ArkTS 1.2 should implement all fields in the interface in the class (arkts-no-class-omit-interface-optional-prop)", + "severity": "ERROR" + }, + { + "line": 45, + "column": 7, + "endLine": 45, + "endColumn": 9, + "problem": "InterfaceFieldNotImplemented", + "suggest": "", + "rule": "ArkTS 1.2 should implement all fields in the interface in the class (arkts-no-class-omit-interface-optional-prop)", + "severity": "ERROR" + }, + { + "line": 65, + "column": 7, + "endLine": 65, + "endColumn": 9, + "problem": "InterfaceFieldNotImplemented", + "suggest": "", + "rule": "ArkTS 1.2 should implement all fields in the interface in the class (arkts-no-class-omit-interface-optional-prop)", + "severity": "ERROR" + }, + { + "line": 68, + "column": 7, + "endLine": 68, + "endColumn": 10, + "problem": "InterfaceFieldNotImplemented", + "suggest": "", + "rule": "ArkTS 1.2 should implement all fields in the interface in the class (arkts-no-class-omit-interface-optional-prop)", + "severity": "ERROR" + }, + { + "line": 79, + "column": 7, + "endLine": 79, + "endColumn": 9, + "problem": "InterfaceFieldNotImplemented", + "suggest": "", + "rule": "ArkTS 1.2 should implement all fields in the interface in the class (arkts-no-class-omit-interface-optional-prop)", + "severity": "ERROR" + } + ] +} diff --git a/ets2panda/linter/test/main/no_class_omit_interface_optional.ets.json b/ets2panda/linter/test/main/no_class_omit_interface_optional.ets.json new file mode 100644 index 0000000000000000000000000000000000000000..dd03fcf5442488620bcd4b3447f0fcdd89e1905b --- /dev/null +++ b/ets2panda/linter/test/main/no_class_omit_interface_optional.ets.json @@ -0,0 +1,17 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [] +} diff --git a/ets2panda/linter/test/main/no_import_namespace_star_as_var.ets b/ets2panda/linter/test/main/no_import_namespace_star_as_var.ets new file mode 100644 index 0000000000000000000000000000000000000000..9047c6adaa90e6b51042b2fc658562ac1b77f991 --- /dev/null +++ b/ets2panda/linter/test/main/no_import_namespace_star_as_var.ets @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import * as host from './file1'; +const alias = host; // error +alias.run(); + +function getHost() { + return host; // error +} +const edgeCase = getHost(); + +function run(h: any) { + h.doSomething(); +} +run(host); // error + +host(); // error + +const { foo } = host; // error + +let g; +g = host; // error + +host.doSomething() // valid +new host.Host(); // valid + +const h2 = host.h2(); // valid + +function f1() { + return host.b(); // valid +} + +const fn = () => host.work(); // valid \ No newline at end of file diff --git a/ets2panda/linter/test/main/no_import_namespace_star_as_var.ets.args.json b/ets2panda/linter/test/main/no_import_namespace_star_as_var.ets.args.json new file mode 100644 index 0000000000000000000000000000000000000000..3ef4496a819a201892114d1c90f78ae32053c334 --- /dev/null +++ b/ets2panda/linter/test/main/no_import_namespace_star_as_var.ets.args.json @@ -0,0 +1,19 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "mode": { + "arkts2": "" + } +} diff --git a/ets2panda/linter/test/main/no_import_namespace_star_as_var.ets.arkts2.json b/ets2panda/linter/test/main/no_import_namespace_star_as_var.ets.arkts2.json new file mode 100644 index 0000000000000000000000000000000000000000..1266c69bfca5190fe69b7b4b806747aa9610c8d6 --- /dev/null +++ b/ets2panda/linter/test/main/no_import_namespace_star_as_var.ets.arkts2.json @@ -0,0 +1,178 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 17, + "column": 7, + "endLine": 17, + "endColumn": 19, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + }, + { + "line": 17, + "column": 15, + "endLine": 17, + "endColumn": 19, + "problem": "NoImportNamespaceStarAsVar", + "suggest": "", + "rule": "The namespace imported by import * as cannot be used as a variable (arkts-no-import-namespace-with-star-as-var)", + "severity": "ERROR" + }, + { + "line": 20, + "column": 10, + "endLine": 20, + "endColumn": 17, + "problem": "LimitedReturnTypeInference", + "suggest": "", + "rule": "Function return type inference is limited (arkts-no-implicit-return-types)", + "severity": "ERROR" + }, + { + "line": 21, + "column": 10, + "endLine": 21, + "endColumn": 14, + "problem": "NoImportNamespaceStarAsVar", + "suggest": "", + "rule": "The namespace imported by import * as cannot be used as a variable (arkts-no-import-namespace-with-star-as-var)", + "severity": "ERROR" + }, + { + "line": 23, + "column": 7, + "endLine": 23, + "endColumn": 27, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + }, + { + "line": 25, + "column": 17, + "endLine": 25, + "endColumn": 20, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + }, + { + "line": 28, + "column": 5, + "endLine": 28, + "endColumn": 9, + "problem": "NoImportNamespaceStarAsVar", + "suggest": "", + "rule": "The namespace imported by import * as cannot be used as a variable (arkts-no-import-namespace-with-star-as-var)", + "severity": "ERROR" + }, + { + "line": 30, + "column": 1, + "endLine": 30, + "endColumn": 5, + "problem": "NoImportNamespaceStarAsVar", + "suggest": "", + "rule": "The namespace imported by import * as cannot be used as a variable (arkts-no-import-namespace-with-star-as-var)", + "severity": "ERROR" + }, + { + "line": 32, + "column": 7, + "endLine": 32, + "endColumn": 21, + "problem": "DestructuringDeclaration", + "suggest": "", + "rule": "Destructuring variable declarations are not supported (arkts-no-destruct-decls)", + "severity": "ERROR" + }, + { + "line": 32, + "column": 17, + "endLine": 32, + "endColumn": 21, + "problem": "NoImportNamespaceStarAsVar", + "suggest": "", + "rule": "The namespace imported by import * as cannot be used as a variable (arkts-no-import-namespace-with-star-as-var)", + "severity": "ERROR" + }, + { + "line": 34, + "column": 5, + "endLine": 34, + "endColumn": 6, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + }, + { + "line": 35, + "column": 5, + "endLine": 35, + "endColumn": 9, + "problem": "NoImportNamespaceStarAsVar", + "suggest": "", + "rule": "The namespace imported by import * as cannot be used as a variable (arkts-no-import-namespace-with-star-as-var)", + "severity": "ERROR" + }, + { + "line": 38, + "column": 5, + "endLine": 38, + "endColumn": 14, + "problem": "DynamicCtorCall", + "suggest": "", + "rule": "\"new\" expression with dynamic constructor type is not supported (arkts-no-dynamic-ctor-call)", + "severity": "ERROR" + }, + { + "line": 40, + "column": 7, + "endLine": 40, + "endColumn": 21, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + }, + { + "line": 42, + "column": 10, + "endLine": 42, + "endColumn": 12, + "problem": "LimitedReturnTypeInference", + "suggest": "", + "rule": "Function return type inference is limited (arkts-no-implicit-return-types)", + "severity": "ERROR" + }, + { + "line": 46, + "column": 12, + "endLine": 46, + "endColumn": 29, + "problem": "LimitedReturnTypeInference", + "suggest": "", + "rule": "Function return type inference is limited (arkts-no-implicit-return-types)", + "severity": "ERROR" + } + ] +} \ No newline at end of file diff --git a/ets2panda/linter/test/main/no_import_namespace_star_as_var.ets.json b/ets2panda/linter/test/main/no_import_namespace_star_as_var.ets.json new file mode 100644 index 0000000000000000000000000000000000000000..5714e6776f3b4184dfef47779816d432f445ec38 --- /dev/null +++ b/ets2panda/linter/test/main/no_import_namespace_star_as_var.ets.json @@ -0,0 +1,108 @@ +{ + "copyright": [ + "Copyright (c) 2025 Huawei Device Co., Ltd.", + "Licensed under the Apache License, Version 2.0 (the 'License');", + "you may not use this file except in compliance with the License.", + "You may obtain a copy of the License at", + "", + "http://www.apache.org/licenses/LICENSE-2.0", + "", + "Unless required by applicable law or agreed to in writing, software", + "distributed under the License is distributed on an 'AS IS' BASIS,", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "See the License for the specific language governing permissions and", + "limitations under the License." + ], + "result": [ + { + "line": 17, + "column": 7, + "endLine": 17, + "endColumn": 19, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + }, + { + "line": 20, + "column": 10, + "endLine": 20, + "endColumn": 17, + "problem": "LimitedReturnTypeInference", + "suggest": "", + "rule": "Function return type inference is limited (arkts-no-implicit-return-types)", + "severity": "ERROR" + }, + { + "line": 23, + "column": 7, + "endLine": 23, + "endColumn": 27, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + }, + { + "line": 25, + "column": 17, + "endLine": 25, + "endColumn": 20, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + }, + { + "line": 32, + "column": 7, + "endLine": 32, + "endColumn": 21, + "problem": "DestructuringDeclaration", + "suggest": "", + "rule": "Destructuring variable declarations are not supported (arkts-no-destruct-decls)", + "severity": "ERROR" + }, + { + "line": 34, + "column": 5, + "endLine": 34, + "endColumn": 6, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + }, + { + "line": 40, + "column": 7, + "endLine": 40, + "endColumn": 21, + "problem": "AnyType", + "suggest": "", + "rule": "Use explicit types instead of \"any\", \"unknown\" (arkts-no-any-unknown)", + "severity": "ERROR" + }, + { + "line": 42, + "column": 10, + "endLine": 42, + "endColumn": 12, + "problem": "LimitedReturnTypeInference", + "suggest": "", + "rule": "Function return type inference is limited (arkts-no-implicit-return-types)", + "severity": "ERROR" + }, + { + "line": 46, + "column": 12, + "endLine": 46, + "endColumn": 29, + "problem": "LimitedReturnTypeInference", + "suggest": "", + "rule": "Function return type inference is limited (arkts-no-implicit-return-types)", + "severity": "ERROR" + } + ] +} diff --git a/ets2panda/linter/test/main/numeric_semantics.ets b/ets2panda/linter/test/main/numeric_semantics.ets index 39c3b1a564040c3ee5637e66bfacd6f9c8be9ca9..9cc9bf26f5c12e31bc14edba1078c2da493d057f 100755 --- a/ets2panda/linter/test/main/numeric_semantics.ets +++ b/ets2panda/linter/test/main/numeric_semantics.ets @@ -237,4 +237,10 @@ function testIndentation(): void { console.log('hello'); return 0; })(); -} \ No newline at end of file +} + +@Sendable +export function add(a: number, b: number) { + console.log("SharedModule: Hap call ShareFile add"); + return a + b; +} \ No newline at end of file diff --git a/ets2panda/linter/test/main/numeric_semantics.ets.arkts2.json b/ets2panda/linter/test/main/numeric_semantics.ets.arkts2.json index 0cb967d9fef64e76cb78c887e31e707987585d35..35164935cf2df9b2676aa6a0056880d98c390fb6 100644 --- a/ets2panda/linter/test/main/numeric_semantics.ets.arkts2.json +++ b/ets2panda/linter/test/main/numeric_semantics.ets.arkts2.json @@ -374,6 +374,26 @@ "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" }, + { + "line": 92, + "column": 19, + "endLine": 92, + "endColumn": 24, + "problem": "ParameterType", + "suggest": "", + "rule": "Type of parameter must be defined explicitly (arkts-require-func-arg-type)", + "severity": "ERROR" + }, + { + "line": 92, + "column": 26, + "endLine": 92, + "endColumn": 31, + "problem": "ParameterType", + "suggest": "", + "rule": "Type of parameter must be defined explicitly (arkts-require-func-arg-type)", + "severity": "ERROR" + }, { "line": 92, "column": 1, @@ -1214,6 +1234,26 @@ "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" }, + { + "line": 242, + "column": 1, + "endLine": 246, + "endColumn": 2, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 242, + "column": 1, + "endLine": 242, + "endColumn": 10, + "problem": "LimitedStdLibNoSendableDecorator", + "suggest": "", + "rule": "Usage of standard library is restricted(arkts-limited-stdlib-no-sendable-decorator)", + "severity": "ERROR" + }, { "line": 117, "column": 2, @@ -1305,4 +1345,4 @@ "severity": "ERROR" } ] -} \ No newline at end of file +} diff --git a/ets2panda/linter/test/main/numeric_semantics.ets.autofix.json b/ets2panda/linter/test/main/numeric_semantics.ets.autofix.json index 6ece33eb7ae5eef6d36f8ee43560d4709b45c56f..99e139c5e9372ec72c4c887a1b7b5adacc4eb835 100644 --- a/ets2panda/linter/test/main/numeric_semantics.ets.autofix.json +++ b/ets2panda/linter/test/main/numeric_semantics.ets.autofix.json @@ -759,6 +759,26 @@ "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" }, + { + "line": 92, + "column": 19, + "endLine": 92, + "endColumn": 24, + "problem": "ParameterType", + "suggest": "", + "rule": "Type of parameter must be defined explicitly (arkts-require-func-arg-type)", + "severity": "ERROR" + }, + { + "line": 92, + "column": 26, + "endLine": 92, + "endColumn": 31, + "problem": "ParameterType", + "suggest": "", + "rule": "Type of parameter must be defined explicitly (arkts-require-func-arg-type)", + "severity": "ERROR" + }, { "line": 92, "column": 1, @@ -2301,6 +2321,48 @@ "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" }, + { + "line": 242, + "column": 1, + "endLine": 246, + "endColumn": 2, + "problem": "NumericSemantics", + "autofix": [ + { + "start": 5739, + "end": 5739, + "replacementText": ": number", + "line": 242, + "column": 1, + "endLine": 246, + "endColumn": 2 + } + ], + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 242, + "column": 1, + "endLine": 242, + "endColumn": 10, + "problem": "LimitedStdLibNoSendableDecorator", + "autofix": [ + { + "start": 5687, + "end": 5696, + "replacementText": "", + "line": 242, + "column": 1, + "endLine": 242, + "endColumn": 10 + } + ], + "suggest": "", + "rule": "Usage of standard library is restricted(arkts-limited-stdlib-no-sendable-decorator)", + "severity": "ERROR" + }, { "line": 117, "column": 2, @@ -2491,4 +2553,4 @@ "severity": "ERROR" } ] -} \ No newline at end of file +} diff --git a/ets2panda/linter/test/main/numeric_semantics.ets.migrate.ets b/ets2panda/linter/test/main/numeric_semantics.ets.migrate.ets index b85c4166bf9a570cb41347ef11b238b949da1c2b..a5bab563d4debeb46c9ddb3bb0e990e41c26e0be 100644 --- a/ets2panda/linter/test/main/numeric_semantics.ets.migrate.ets +++ b/ets2panda/linter/test/main/numeric_semantics.ets.migrate.ets @@ -247,4 +247,10 @@ function testIndentation(): void { console.log('hello'); return 0.0; })(); -} \ No newline at end of file +} + + +export function add(a: number, b: number): number { + console.log("SharedModule: Hap call ShareFile add"); + return a + b; +} \ No newline at end of file diff --git a/ets2panda/linter/test/main/numeric_semantics.ets.migrate.json b/ets2panda/linter/test/main/numeric_semantics.ets.migrate.json index ca3c08f73a465f3bebee27773db588d4ef40c245..ae0621e24de33924117743a1b7bf713ee3b4e9ac 100644 --- a/ets2panda/linter/test/main/numeric_semantics.ets.migrate.json +++ b/ets2panda/linter/test/main/numeric_semantics.ets.migrate.json @@ -255,4 +255,4 @@ "severity": "ERROR" } ] -} \ No newline at end of file +} diff --git a/ets2panda/linter/test/main/numeric_semantics2.ets.arkts2.json b/ets2panda/linter/test/main/numeric_semantics2.ets.arkts2.json index 8c2a778ec9f98e3debce809d5fc606ab7aa784bc..afbbb893dfd27386d5c9c87f365feaeccc52296f 100755 --- a/ets2panda/linter/test/main/numeric_semantics2.ets.arkts2.json +++ b/ets2panda/linter/test/main/numeric_semantics2.ets.arkts2.json @@ -715,4 +715,4 @@ "severity": "ERROR" } ] -} \ No newline at end of file +} diff --git a/ets2panda/linter/test/main/numeric_semantics2.ets.autofix.json b/ets2panda/linter/test/main/numeric_semantics2.ets.autofix.json index b1ea53871472befedfd93b89519a5fc67e78c891..6b343da07c8cb9e1cbc00921defdef4529d93e6e 100644 --- a/ets2panda/linter/test/main/numeric_semantics2.ets.autofix.json +++ b/ets2panda/linter/test/main/numeric_semantics2.ets.autofix.json @@ -207,6 +207,26 @@ "endLine": 35, "endColumn": 26, "problem": "LiteralAsPropertyName", + "autofix": [ + { + "replacementText": "name", + "start": 1117, + "end": 1123, + "line": 37, + "column": 18, + "endLine": 37, + "endColumn": 24 + }, + { + "replacementText": "name", + "start": 1210, + "end": 1216, + "line": 37, + "column": 18, + "endLine": 37, + "endColumn": 24 + } + ], "suggest": "", "rule": "Objects with property names that are not identifiers are not supported (arkts-identifiers-as-prop-names)", "severity": "ERROR" @@ -256,6 +276,17 @@ "endLine": 36, "endColumn": 26, "problem": "LiteralAsPropertyName", + "autofix": [ + { + "replacementText": "name", + "start": 1164, + "end": 1170, + "line": 36, + "column": 20, + "endLine": 36, + "endColumn": 26 + } + ], "suggest": "", "rule": "Objects with property names that are not identifiers are not supported (arkts-identifiers-as-prop-names)", "severity": "ERROR" @@ -266,6 +297,26 @@ "endLine": 37, "endColumn": 24, "problem": "LiteralAsPropertyName", + "autofix": [ + { + "replacementText": "name", + "start": 1117, + "end": 1123, + "line": 37, + "column": 18, + "endLine": 37, + "endColumn": 24 + }, + { + "replacementText": "name", + "start": 1210, + "end": 1216, + "line": 37, + "column": 18, + "endLine": 37, + "endColumn": 24 + } + ], "suggest": "", "rule": "Objects with property names that are not identifiers are not supported (arkts-identifiers-as-prop-names)", "severity": "ERROR" @@ -1253,4 +1304,4 @@ "severity": "ERROR" } ] -} \ No newline at end of file +} diff --git a/ets2panda/linter/test/main/numeric_semantics2.ets.migrate.ets b/ets2panda/linter/test/main/numeric_semantics2.ets.migrate.ets index 81211a821a8d1a9666b154b73322f20c0c5a7ffd..a687cd7007513949ded25c8f0a3c23b3c6cab2f5 100644 --- a/ets2panda/linter/test/main/numeric_semantics2.ets.migrate.ets +++ b/ets2panda/linter/test/main/numeric_semantics2.ets.migrate.ets @@ -32,9 +32,9 @@ namespace NumericSemanticsDone { } namespace NoNumericSemantics { - interface X1 { "name": number, __2: number} - interface X2 { "name": number, _2: number} - let x: X1 = {"name": 20.0, __2: 30.0} // OK + interface X1 { name: number, __2: number} + interface X2 { name: number, _2: number} + let x: X1 = {name: 20.0, __2: 30.0} // OK console.log(x.__2); // OK let x_fix: X2 = {name: 20.0, _2: 20.0}; diff --git a/ets2panda/linter/test/main/numeric_semantics2.ets.migrate.json b/ets2panda/linter/test/main/numeric_semantics2.ets.migrate.json index 2103eb7cf5387f30295dca218d7ff81e6a850e86..d7fd5e18c98f902efe9b7e1887594ef201a7abd9 100644 --- a/ets2panda/linter/test/main/numeric_semantics2.ets.migrate.json +++ b/ets2panda/linter/test/main/numeric_semantics2.ets.migrate.json @@ -54,36 +54,6 @@ "rule": "Non-declaration statements in namespaces are not supported (single semicolons are considered as empty non-declaration statements) (arkts-no-ns-statements)", "severity": "ERROR" }, - { - "line": 35, - "column": 20, - "endLine": 35, - "endColumn": 26, - "problem": "LiteralAsPropertyName", - "suggest": "", - "rule": "Objects with property names that are not identifiers are not supported (arkts-identifiers-as-prop-names)", - "severity": "ERROR" - }, - { - "line": 36, - "column": 20, - "endLine": 36, - "endColumn": 26, - "problem": "LiteralAsPropertyName", - "suggest": "", - "rule": "Objects with property names that are not identifiers are not supported (arkts-identifiers-as-prop-names)", - "severity": "ERROR" - }, - { - "line": 37, - "column": 18, - "endLine": 37, - "endColumn": 24, - "problem": "LiteralAsPropertyName", - "suggest": "", - "rule": "Objects with property names that are not identifiers are not supported (arkts-identifiers-as-prop-names)", - "severity": "ERROR" - }, { "line": 42, "column": 17, @@ -275,4 +245,4 @@ "severity": "ERROR" } ] -} \ No newline at end of file +} diff --git a/ets2panda/linter/test/main/oh_modules/common_ts_ets_api.d.ts b/ets2panda/linter/test/main/oh_modules/common_ts_ets_api.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..0be36a0a8eb13282a0468bccffd1145ad19fc6e1 --- /dev/null +++ b/ets2panda/linter/test/main/oh_modules/common_ts_ets_api.d.ts @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export declare interface IMonitor { + value(path?: string): IMonitorValue | undefined; +} +export declare interface IMonitorValue { + before: T; + now: T; + path: string; +} +export declare class LocalStorage { + get(propName: string): T | undefined; + ref(propName: string): AbstractProperty | undefined; + link(propName: string): SubscribedAbstractProperty | undefined; +} + +export declare class AppStorage { + static get(propName: string): T | undefined; + static ref(propName: string): AbstractProperty | undefined; + static link(propName: string): SubscribedAbstractProperty | undefined; +} + +export declare interface AbstractProperty { + get(): T; + set(newValue: T): void; + info(): string; +} +export declare abstract class SubscribedAbstractProperty { + info(): string; + abstract get(): T; + abstract set(newValue: T): void; + abstract aboutToBeDeleted(): void; +} \ No newline at end of file diff --git a/ets2panda/linter/test/main/prop_decorators_and_interfaces_1.ets.autofix.json b/ets2panda/linter/test/main/prop_decorators_and_interfaces_1.ets.autofix.json index b96614d1d1551b528fe6479f872307057c021d46..fe3418b262b571c50dc73f6c3f14f3fcba7aef35 100644 --- a/ets2panda/linter/test/main/prop_decorators_and_interfaces_1.ets.autofix.json +++ b/ets2panda/linter/test/main/prop_decorators_and_interfaces_1.ets.autofix.json @@ -43,9 +43,9 @@ "problem": "PropDecoratorNotSupported", "autofix": [ { - "start": 704, + "start": 705, "end": 709, - "replacementText": "@PropRef", + "replacementText": "PropRef", "line": 24, "column": 3, "endLine": 24, @@ -64,9 +64,9 @@ "problem": "StoragePropDecoratorNotSupported", "autofix": [ { - "start": 895, - "end": 916, - "replacementText": "@StoragePropRef", + "start": 896, + "end": 907, + "replacementText": "StoragePropRef", "line": 34, "column": 3, "endLine": 34, @@ -85,9 +85,9 @@ "problem": "LocalStoragePropDecoratorNotSupported", "autofix": [ { - "start": 944, - "end": 970, - "replacementText": "@LocalStoragePropRef", + "start": 945, + "end": 961, + "replacementText": "LocalStoragePropRef", "line": 35, "column": 3, "endLine": 35, diff --git a/ets2panda/linter/test/main/prop_decorators_and_interfaces_1.ets.migrate.ets b/ets2panda/linter/test/main/prop_decorators_and_interfaces_1.ets.migrate.ets index ca03196a9306b8aabaffa4778e25e96a9aa46a63..598b9e31679d237abf9e60a8f37eecb50dd28a30 100644 --- a/ets2panda/linter/test/main/prop_decorators_and_interfaces_1.ets.migrate.ets +++ b/ets2panda/linter/test/main/prop_decorators_and_interfaces_1.ets.migrate.ets @@ -44,8 +44,8 @@ struct FatherComponent { @Component struct ChildComponent { - @StoragePropRef user2: User = new User() - @LocalStoragePropRef user3: User = new User() + @StoragePropRef("user2") user2: User = new User() + @LocalStoragePropRef("user3") user3: User = new User() build() { } diff --git a/ets2panda/linter/test/main/prop_decorators_and_interfaces_1.ets.migrate.json b/ets2panda/linter/test/main/prop_decorators_and_interfaces_1.ets.migrate.json index 66e9c58bab9d619077975c856be68b9cec1c47f6..e03a31e43e674f46b9dd392f7638beff8289ece4 100644 --- a/ets2panda/linter/test/main/prop_decorators_and_interfaces_1.ets.migrate.json +++ b/ets2panda/linter/test/main/prop_decorators_and_interfaces_1.ets.migrate.json @@ -28,7 +28,7 @@ "line": 47, "column": 3, "endLine": 47, - "endColumn": 18, + "endColumn": 27, "problem": "DecoratorsNotSupported", "suggest": "", "rule": "Decorators are not supported(arkts-no-ts-decorators)", @@ -38,7 +38,7 @@ "line": 48, "column": 3, "endLine": 48, - "endColumn": 23, + "endColumn": 32, "problem": "DecoratorsNotSupported", "suggest": "", "rule": "Decorators are not supported(arkts-no-ts-decorators)", diff --git a/ets2panda/linter/test/main/prop_decorators_and_interfaces_4.ets.autofix.json b/ets2panda/linter/test/main/prop_decorators_and_interfaces_4.ets.autofix.json index 9a56497197e37b67f43078d6e4eca9c91d8f6e6d..cebe97786c9393b24b42b5afd4db049456941c06 100644 --- a/ets2panda/linter/test/main/prop_decorators_and_interfaces_4.ets.autofix.json +++ b/ets2panda/linter/test/main/prop_decorators_and_interfaces_4.ets.autofix.json @@ -115,9 +115,9 @@ "problem": "PropDecoratorNotSupported", "autofix": [ { - "start": 1396, + "start": 1397, "end": 1401, - "replacementText": "@PropRef", + "replacementText": "PropRef", "line": 58, "column": 3, "endLine": 58, @@ -136,9 +136,9 @@ "problem": "PropDecoratorNotSupported", "autofix": [ { - "start": 1710, + "start": 1711, "end": 1715, - "replacementText": "@PropRef", + "replacementText": "PropRef", "line": 76, "column": 3, "endLine": 76, @@ -199,9 +199,9 @@ "problem": "PropDecoratorNotSupported", "autofix": [ { - "start": 2040, + "start": 2041, "end": 2045, - "replacementText": "@PropRef", + "replacementText": "PropRef", "line": 94, "column": 3, "endLine": 94, diff --git a/ets2panda/linter/test/main/property_access_by_index.ets.arkts2.json b/ets2panda/linter/test/main/property_access_by_index.ets.arkts2.json index 2247b1cc2e70af1c1a076519ab7bedee45e4528e..d53752ee4808099169beec98c3ba007c4bf70fef 100644 --- a/ets2panda/linter/test/main/property_access_by_index.ets.arkts2.json +++ b/ets2panda/linter/test/main/property_access_by_index.ets.arkts2.json @@ -868,7 +868,7 @@ "line": 177, "column": 23, "endLine": 177, - "endColumn": 34, + "endColumn": 44, "problem": "NoNeedStdLibSendableContainer", "suggest": "", "rule": "Sendable containers are not supported (arkts-no-need-stdlib-sendable-containers)", @@ -995,4 +995,4 @@ "severity": "ERROR" } ] -} \ No newline at end of file +} diff --git a/ets2panda/linter/test/main/property_access_by_index.ets.autofix.json b/ets2panda/linter/test/main/property_access_by_index.ets.autofix.json index c63d81f2b66aa51101a405779bdcbd7b1e26967f..efd13151c42adb61ca4eccc3c89d3658bcbe0239 100644 --- a/ets2panda/linter/test/main/property_access_by_index.ets.autofix.json +++ b/ets2panda/linter/test/main/property_access_by_index.ets.autofix.json @@ -1,6 +1,6 @@ { "copyright": [ - "Copyright (c) 2023-2024 Huawei Device Co., Ltd.", + "Copyright (c) 2024-2025 Huawei Device Co., Ltd.", "Licensed under the Apache License, Version 2.0 (the 'License');", "you may not use this file except in compliance with the License.", "You may obtain a copy of the License at", @@ -1374,7 +1374,7 @@ "line": 177, "column": 23, "endLine": 177, - "endColumn": 34, + "endColumn": 44, "problem": "NoNeedStdLibSendableContainer", "autofix": [ { @@ -1384,7 +1384,16 @@ "line": 177, "column": 23, "endLine": 177, - "endColumn": 34 + "endColumn": 44 + }, + { + "start": 713, + "end": 713, + "replacementText": "\nimport { BitVector } from \"@arkts.collections\";\n", + "line": 177, + "column": 23, + "endLine": 177, + "endColumn": 44 } ], "suggest": "", @@ -1600,4 +1609,4 @@ "severity": "ERROR" } ] -} \ No newline at end of file +} diff --git a/ets2panda/linter/test/main/property_access_by_index.ets.migrate.ets b/ets2panda/linter/test/main/property_access_by_index.ets.migrate.ets index 9d61b8611db3da19dc0cfbad2104808d626dda2c..6a3cbe36afb397b39f328e127c7b0533ce69429e 100644 --- a/ets2panda/linter/test/main/property_access_by_index.ets.migrate.ets +++ b/ets2panda/linter/test/main/property_access_by_index.ets.migrate.ets @@ -13,6 +13,8 @@ * limitations under the License. */ import {OhosInterface} from './oh_modules/ohos_lib'; +import { BitVector } from "@arkts.collections"; + // #14071 class A { diff --git a/ets2panda/linter/test/main/property_access_by_index.ets.migrate.json b/ets2panda/linter/test/main/property_access_by_index.ets.migrate.json index e2746dde008b85a1c320af9f8162e34e82dd1c34..12bd72ca456622b4c439c477985f0c361bcf2c04 100644 --- a/ets2panda/linter/test/main/property_access_by_index.ets.migrate.json +++ b/ets2panda/linter/test/main/property_access_by_index.ets.migrate.json @@ -15,9 +15,9 @@ ], "result": [ { - "line": 22, + "line": 24, "column": 3, - "endLine": 22, + "endLine": 24, "endColumn": 14, "problem": "PropertyAccessByIndex", "suggest": "", @@ -25,9 +25,9 @@ "severity": "ERROR" }, { - "line": 25, + "line": 27, "column": 10, - "endLine": 25, + "endLine": 27, "endColumn": 21, "problem": "PropertyAccessByIndex", "suggest": "", @@ -35,9 +35,9 @@ "severity": "ERROR" }, { - "line": 37, + "line": 39, "column": 1, - "endLine": 37, + "endLine": 39, "endColumn": 7, "problem": "RuntimeArrayCheck", "suggest": "", @@ -45,9 +45,9 @@ "severity": "ERROR" }, { - "line": 38, + "line": 40, "column": 1, - "endLine": 38, + "endLine": 40, "endColumn": 7, "problem": "RuntimeArrayCheck", "suggest": "", @@ -55,9 +55,9 @@ "severity": "ERROR" }, { - "line": 39, + "line": 41, "column": 1, - "endLine": 39, + "endLine": 41, "endColumn": 7, "problem": "RuntimeArrayCheck", "suggest": "", @@ -65,9 +65,9 @@ "severity": "ERROR" }, { - "line": 46, + "line": 48, "column": 3, - "endLine": 46, + "endLine": 48, "endColumn": 9, "problem": "PropertyAccessByIndex", "suggest": "", @@ -75,9 +75,9 @@ "severity": "ERROR" }, { - "line": 50, + "line": 52, "column": 3, - "endLine": 50, + "endLine": 52, "endColumn": 9, "problem": "PropertyAccessByIndex", "suggest": "", @@ -85,9 +85,9 @@ "severity": "ERROR" }, { - "line": 57, + "line": 59, "column": 5, - "endLine": 57, + "endLine": 59, "endColumn": 29, "problem": "AnyType", "suggest": "", @@ -95,35 +95,15 @@ "severity": "ERROR" }, { - "line": 57, + "line": 59, "column": 14, - "endLine": 57, + "endLine": 59, "endColumn": 29, "problem": "GenericCallNoTypeArgs", "suggest": "", "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", "severity": "ERROR" }, - { - "line": 70, - "column": 1, - "endLine": 70, - "endColumn": 10, - "problem": "RuntimeArrayCheck", - "suggest": "", - "rule": "Array bound not checked. (arkts-runtime-array-check)", - "severity": "ERROR" - }, - { - "line": 71, - "column": 1, - "endLine": 71, - "endColumn": 10, - "problem": "RuntimeArrayCheck", - "suggest": "", - "rule": "Array bound not checked. (arkts-runtime-array-check)", - "severity": "ERROR" - }, { "line": 72, "column": 1, @@ -198,7 +178,7 @@ "line": 79, "column": 1, "endLine": 79, - "endColumn": 11, + "endColumn": 10, "problem": "RuntimeArrayCheck", "suggest": "", "rule": "Array bound not checked. (arkts-runtime-array-check)", @@ -208,7 +188,7 @@ "line": 80, "column": 1, "endLine": 80, - "endColumn": 11, + "endColumn": 10, "problem": "RuntimeArrayCheck", "suggest": "", "rule": "Array bound not checked. (arkts-runtime-array-check)", @@ -265,9 +245,29 @@ "severity": "ERROR" }, { - "line": 97, + "line": 86, "column": 1, - "endLine": 97, + "endLine": 86, + "endColumn": 11, + "problem": "RuntimeArrayCheck", + "suggest": "", + "rule": "Array bound not checked. (arkts-runtime-array-check)", + "severity": "ERROR" + }, + { + "line": 87, + "column": 1, + "endLine": 87, + "endColumn": 11, + "problem": "RuntimeArrayCheck", + "suggest": "", + "rule": "Array bound not checked. (arkts-runtime-array-check)", + "severity": "ERROR" + }, + { + "line": 99, + "column": 1, + "endLine": 99, "endColumn": 18, "problem": "UnsupportPropNameFromValue", "suggest": "", @@ -275,9 +275,9 @@ "severity": "ERROR" }, { - "line": 98, + "line": 100, "column": 1, - "endLine": 98, + "endLine": 100, "endColumn": 17, "problem": "UnsupportPropNameFromValue", "suggest": "", @@ -285,9 +285,9 @@ "severity": "ERROR" }, { - "line": 99, + "line": 101, "column": 1, - "endLine": 99, + "endLine": 101, "endColumn": 17, "problem": "UnsupportPropNameFromValue", "suggest": "", @@ -295,9 +295,9 @@ "severity": "ERROR" }, { - "line": 107, + "line": 109, "column": 24, - "endLine": 107, + "endLine": 109, "endColumn": 39, "problem": "ArrayIndexExprType", "suggest": "", @@ -305,9 +305,9 @@ "severity": "ERROR" }, { - "line": 107, + "line": 109, "column": 24, - "endLine": 107, + "endLine": 109, "endColumn": 39, "problem": "BuiltinSymbolIterator", "suggest": "", @@ -315,9 +315,9 @@ "severity": "ERROR" }, { - "line": 108, + "line": 110, "column": 5, - "endLine": 108, + "endLine": 110, "endColumn": 40, "problem": "AnyType", "suggest": "", @@ -325,9 +325,9 @@ "severity": "ERROR" }, { - "line": 117, + "line": 119, "column": 20, - "endLine": 117, + "endLine": 119, "endColumn": 35, "problem": "ArrayIndexExprType", "suggest": "", @@ -335,9 +335,9 @@ "severity": "ERROR" }, { - "line": 117, + "line": 119, "column": 20, - "endLine": 117, + "endLine": 119, "endColumn": 35, "problem": "BuiltinSymbolIterator", "suggest": "", @@ -345,9 +345,9 @@ "severity": "ERROR" }, { - "line": 118, + "line": 120, "column": 5, - "endLine": 118, + "endLine": 120, "endColumn": 36, "problem": "AnyType", "suggest": "", @@ -355,9 +355,9 @@ "severity": "ERROR" }, { - "line": 139, + "line": 141, "column": 12, - "endLine": 139, + "endLine": 141, "endColumn": 31, "problem": "CreatingPrimitiveTypes", "suggest": "", @@ -365,9 +365,9 @@ "severity": "ERROR" }, { - "line": 159, + "line": 161, "column": 3, - "endLine": 159, + "endLine": 161, "endColumn": 9, "problem": "PropertyAccessByIndex", "suggest": "", @@ -375,9 +375,9 @@ "severity": "ERROR" }, { - "line": 172, + "line": 174, "column": 1, - "endLine": 172, + "endLine": 174, "endColumn": 9, "problem": "PropertyAccessByIndex", "suggest": "", @@ -385,9 +385,9 @@ "severity": "ERROR" }, { - "line": 173, + "line": 175, "column": 1, - "endLine": 173, + "endLine": 175, "endColumn": 13, "problem": "PropertyAccessByIndex", "suggest": "", @@ -395,9 +395,9 @@ "severity": "ERROR" }, { - "line": 174, + "line": 176, "column": 1, - "endLine": 174, + "endLine": 176, "endColumn": 13, "problem": "PropertyAccessByIndex", "suggest": "", @@ -405,9 +405,9 @@ "severity": "ERROR" }, { - "line": 181, + "line": 183, "column": 7, - "endLine": 181, + "endLine": 183, "endColumn": 14, "problem": "PropertyAccessByIndex", "suggest": "", @@ -415,9 +415,9 @@ "severity": "ERROR" }, { - "line": 192, + "line": 194, "column": 1, - "endLine": 192, + "endLine": 194, "endColumn": 5, "problem": "PropertyAccessByIndex", "suggest": "", @@ -425,9 +425,9 @@ "severity": "ERROR" }, { - "line": 193, + "line": 195, "column": 1, - "endLine": 193, + "endLine": 195, "endColumn": 7, "problem": "PropertyAccessByIndex", "suggest": "", @@ -435,9 +435,9 @@ "severity": "ERROR" }, { - "line": 196, + "line": 198, "column": 1, - "endLine": 196, + "endLine": 198, "endColumn": 23, "problem": "PropertyAccessByIndex", "suggest": "", @@ -445,9 +445,9 @@ "severity": "ERROR" }, { - "line": 208, + "line": 210, "column": 1, - "endLine": 208, + "endLine": 210, "endColumn": 20, "problem": "PropertyAccessByIndex", "suggest": "", @@ -455,4 +455,4 @@ "severity": "ERROR" } ] -} \ No newline at end of file +} diff --git a/ets2panda/linter/test/main/sdk_ability_lifecycle_monitor.ets.arkts2.json b/ets2panda/linter/test/main/sdk_ability_lifecycle_monitor.ets.arkts2.json index 9a76fd60376d25fe87eb98c5bad5f73c7682fb7c..c285b29dfe12480814ac4c36a17613ddca2ce542 100644 --- a/ets2panda/linter/test/main/sdk_ability_lifecycle_monitor.ets.arkts2.json +++ b/ets2panda/linter/test/main/sdk_ability_lifecycle_monitor.ets.arkts2.json @@ -24,6 +24,16 @@ "rule": "Object literal properties can only contain name-value pairs (arkts-obj-literal-props)", "severity": "ERROR" }, + { + "line": 22, + "column": 23, + "endLine": 22, + "endColumn": 30, + "problem": "ParameterType", + "suggest": "", + "rule": "Type of parameter must be defined explicitly (arkts-require-func-arg-type)", + "severity": "ERROR" + }, { "line": 22, "column": 23, @@ -64,6 +74,16 @@ "rule": "Object literal properties can only contain name-value pairs (arkts-obj-literal-props)", "severity": "ERROR" }, + { + "line": 57, + "column": 23, + "endLine": 57, + "endColumn": 30, + "problem": "ParameterType", + "suggest": "", + "rule": "Type of parameter must be defined explicitly (arkts-require-func-arg-type)", + "severity": "ERROR" + }, { "line": 57, "column": 23, diff --git a/ets2panda/linter/test/main/sdk_ability_lifecycle_monitor_2.ets.arkts2.json b/ets2panda/linter/test/main/sdk_ability_lifecycle_monitor_2.ets.arkts2.json index e4b1cf0272d520cfef98a19210a6d6f54b659d81..f577df3546443ea934c88f8f1f08741bdcc54c69 100644 --- a/ets2panda/linter/test/main/sdk_ability_lifecycle_monitor_2.ets.arkts2.json +++ b/ets2panda/linter/test/main/sdk_ability_lifecycle_monitor_2.ets.arkts2.json @@ -24,6 +24,16 @@ "rule": "Object literal properties can only contain name-value pairs (arkts-obj-literal-props)", "severity": "ERROR" }, + { + "line": 29, + "column": 23, + "endLine": 29, + "endColumn": 30, + "problem": "ParameterType", + "suggest": "", + "rule": "Type of parameter must be defined explicitly (arkts-require-func-arg-type)", + "severity": "ERROR" + }, { "line": 29, "column": 23, @@ -55,4 +65,4 @@ "severity": "ERROR" } ] -} \ No newline at end of file +} diff --git a/ets2panda/linter/test/main/subclass_super_call.ets b/ets2panda/linter/test/main/subclass_super_call.ets index 7e8034806431ea58a666b1a78cf468910585e6f3..2ed960ed9071cc0141abcf6db8a1abe4ff6985bb 100644 --- a/ets2panda/linter/test/main/subclass_super_call.ets +++ b/ets2panda/linter/test/main/subclass_super_call.ets @@ -83,3 +83,21 @@ class EpicBar extends Error { super("foo") } } + +export enum EEE { + E1, + E2, +} + +export class A { + protected _e:EEE + constructor(e: EEE) { + this._e = e; + } +} + +class B extends A { + constructor() { + super(EEE.E1) + } +} diff --git a/ets2panda/linter/test/main/swicth_expr.ets b/ets2panda/linter/test/main/swicth_expr.ets index 45055cf2effb98cfa502ee3854ea24d1305b1372..f44ab3e8e278572230b170104e0cbdd99d03e9c1 100755 --- a/ets2panda/linter/test/main/swicth_expr.ets +++ b/ets2panda/linter/test/main/swicth_expr.ets @@ -193,7 +193,6 @@ switch (num1) { console.log('Other number'); } -1.0 let num111 = 1.0; switch (num111) { case 1.0: @@ -230,7 +229,7 @@ switch (isnum1) { default: console.log('F'); } -// 整型 5.2fail + type sw1 = number function FunSw4(): sw1 { @@ -245,7 +244,6 @@ switch (FunSw4()) { console.log('F'); } -// 浮点 5.2fail type sw2 = number | string function FunSw5(): sw2 { @@ -299,7 +297,6 @@ switch (FunSw2()) { console.log('F'); } -// 正无穷 let number4 = Infinity; switch (number4) { case Infinity: @@ -309,7 +306,6 @@ switch (number4) { console.log("Default case"); } -// 负无穷 let number5 = -Infinity; switch (number5) { case -Infinity: @@ -319,7 +315,6 @@ switch (number5) { console.log("Default case"); } -// NaN let number6 = NaN; switch (number6) { case NaN: @@ -338,7 +333,6 @@ switch (num111) { console.log('Other number'); } -// let声明整型,case浮点 let number33: number = 1; switch (number33) { case 1.1: @@ -354,7 +348,6 @@ switch (number33) { console.log("Default case"); } -// const声明,整型number,有类型 const num11: number = 2; switch (num11) { case 1: { @@ -367,7 +360,6 @@ switch (num11) { } } -// let声明,整型number,有类型 let num00: number = 2; switch (num00) { case 1: { @@ -380,7 +372,6 @@ switch (num00) { } } - enum Direction1 { North, South, @@ -390,7 +381,7 @@ enum Direction1 { function funSE() : string | Direction1 { return 'aaa' } -switch (funSE()) { // 误报 +switch (funSE()) { case 'aaa': console.log('aaa'); break; @@ -401,14 +392,20 @@ switch (funSE()) { // 误报 console.log('F'); } - enum H { RED, BLUE } -function foo11(e: H) { // 误报 +function foo11(e: H) { switch (e) { case H.RED: } } +function foo(index: number) { + switch (index) { + case 0: + break; + } +} + diff --git a/ets2panda/linter/test/main/swicth_expr.ets.arkts2.json b/ets2panda/linter/test/main/swicth_expr.ets.arkts2.json index 207e0d7ebf74d0b53f12ef7ce8e7538c45e99f3e..3fbbc5b9b538f022d1af56aaa7a7b92d148f2579 100755 --- a/ets2panda/linter/test/main/swicth_expr.ets.arkts2.json +++ b/ets2panda/linter/test/main/swicth_expr.ets.arkts2.json @@ -21,7 +21,7 @@ "endColumn": 15, "problem": "SwitchExpression", "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", + "rule": "The switch expression type must be of type number, string or enum (arkts-switch-expr)", "severity": "ERROR" }, { @@ -41,7 +41,7 @@ "endColumn": 17, "problem": "SwitchExpression", "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", + "rule": "The switch expression type must be of type number, string or enum (arkts-switch-expr)", "severity": "ERROR" }, { @@ -101,7 +101,7 @@ "endColumn": 19, "problem": "SwitchExpression", "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", + "rule": "The switch expression type must be of type number, string or enum (arkts-switch-expr)", "severity": "ERROR" }, { @@ -221,7 +221,7 @@ "endColumn": 16, "problem": "SwitchExpression", "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", + "rule": "The switch expression type must be of type number, string or enum (arkts-switch-expr)", "severity": "ERROR" }, { @@ -244,16 +244,6 @@ "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" }, - { - "line": 91, - "column": 9, - "endLine": 91, - "endColumn": 16, - "problem": "SwitchExpression", - "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", - "severity": "ERROR" - }, { "line": 95, "column": 8, @@ -274,16 +264,6 @@ "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" }, - { - "line": 101, - "column": 9, - "endLine": 101, - "endColumn": 16, - "problem": "SwitchExpression", - "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", - "severity": "ERROR" - }, { "line": 105, "column": 8, @@ -311,7 +291,7 @@ "endColumn": 12, "problem": "SwitchExpression", "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", + "rule": "The switch expression type must be of type number, string or enum (arkts-switch-expr)", "severity": "ERROR" }, { @@ -394,16 +374,6 @@ "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" }, - { - "line": 140, - "column": 11, - "endLine": 140, - "endColumn": 19, - "problem": "SwitchExpression", - "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", - "severity": "ERROR" - }, { "line": 141, "column": 10, @@ -434,16 +404,6 @@ "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" }, - { - "line": 152, - "column": 9, - "endLine": 152, - "endColumn": 14, - "problem": "SwitchExpression", - "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", - "severity": "ERROR" - }, { "line": 153, "column": 8, @@ -514,16 +474,6 @@ "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" }, - { - "line": 176, - "column": 9, - "endLine": 176, - "endColumn": 14, - "problem": "SwitchExpression", - "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", - "severity": "ERROR" - }, { "line": 177, "column": 8, @@ -575,9 +525,9 @@ "severity": "ERROR" }, { - "line": 197, + "line": 196, "column": 5, - "endLine": 197, + "endLine": 196, "endColumn": 17, "problem": "NumericSemantics", "suggest": "", @@ -585,19 +535,9 @@ "severity": "ERROR" }, { - "line": 198, - "column": 9, - "endLine": 198, - "endColumn": 15, - "problem": "SwitchExpression", - "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", - "severity": "ERROR" - }, - { - "line": 206, + "line": 205, "column": 7, - "endLine": 206, + "endLine": 205, "endColumn": 22, "problem": "NumericSemantics", "suggest": "", @@ -605,9 +545,9 @@ "severity": "ERROR" }, { - "line": 206, + "line": 205, "column": 19, - "endLine": 206, + "endLine": 205, "endColumn": 22, "problem": "NumericSemantics", "suggest": "", @@ -615,9 +555,9 @@ "severity": "ERROR" }, { - "line": 208, + "line": 207, "column": 8, - "endLine": 208, + "endLine": 207, "endColumn": 9, "problem": "NumericSemantics", "suggest": "", @@ -625,9 +565,9 @@ "severity": "ERROR" }, { - "line": 211, + "line": 210, "column": 8, - "endLine": 211, + "endLine": 210, "endColumn": 9, "problem": "NumericSemantics", "suggest": "", @@ -635,9 +575,9 @@ "severity": "ERROR" }, { - "line": 216, + "line": 215, "column": 13, - "endLine": 216, + "endLine": 215, "endColumn": 32, "problem": "CreatingPrimitiveTypes", "suggest": "", @@ -645,9 +585,9 @@ "severity": "ERROR" }, { - "line": 225, + "line": 224, "column": 31, - "endLine": 225, + "endLine": 224, "endColumn": 32, "problem": "NumericSemantics", "suggest": "", @@ -655,19 +595,9 @@ "severity": "ERROR" }, { - "line": 226, - "column": 9, - "endLine": 226, - "endColumn": 15, - "problem": "SwitchExpression", - "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", - "severity": "ERROR" - }, - { - "line": 237, + "line": 236, "column": 10, - "endLine": 237, + "endLine": 236, "endColumn": 11, "problem": "NumericSemantics", "suggest": "", @@ -676,18 +606,8 @@ }, { "line": 240, - "column": 9, - "endLine": 240, - "endColumn": 17, - "problem": "SwitchExpression", - "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", - "severity": "ERROR" - }, - { - "line": 241, "column": 8, - "endLine": 241, + "endLine": 240, "endColumn": 9, "problem": "NumericSemantics", "suggest": "", @@ -695,19 +615,9 @@ "severity": "ERROR" }, { - "line": 255, - "column": 9, - "endLine": 255, - "endColumn": 17, - "problem": "SwitchExpression", - "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", - "severity": "ERROR" - }, - { - "line": 263, + "line": 261, "column": 5, - "endLine": 263, + "endLine": 261, "endColumn": 30, "problem": "NumericSemantics", "suggest": "", @@ -715,29 +625,9 @@ "severity": "ERROR" }, { - "line": 264, - "column": 9, - "endLine": 264, - "endColumn": 16, - "problem": "SwitchExpression", - "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", - "severity": "ERROR" - }, - { - "line": 271, + "line": 269, "column": 9, - "endLine": 271, - "endColumn": 17, - "problem": "SwitchExpression", - "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", - "severity": "ERROR" - }, - { - "line": 271, - "column": 9, - "endLine": 271, + "endLine": 269, "endColumn": 11, "problem": "NumericSemantics", "suggest": "", @@ -745,9 +635,9 @@ "severity": "ERROR" }, { - "line": 279, + "line": 277, "column": 7, - "endLine": 279, + "endLine": 277, "endColumn": 27, "problem": "NumericSemantics", "suggest": "", @@ -755,9 +645,9 @@ "severity": "ERROR" }, { - "line": 279, + "line": 277, "column": 21, - "endLine": 279, + "endLine": 277, "endColumn": 23, "problem": "NumericSemantics", "suggest": "", @@ -765,9 +655,9 @@ "severity": "ERROR" }, { - "line": 279, + "line": 277, "column": 25, - "endLine": 279, + "endLine": 277, "endColumn": 26, "problem": "NumericSemantics", "suggest": "", @@ -775,19 +665,9 @@ "severity": "ERROR" }, { - "line": 280, - "column": 9, - "endLine": 280, - "endColumn": 16, - "problem": "SwitchExpression", - "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", - "severity": "ERROR" - }, - { - "line": 281, + "line": 279, "column": 8, - "endLine": 281, + "endLine": 279, "endColumn": 10, "problem": "NumericSemantics", "suggest": "", @@ -795,9 +675,9 @@ "severity": "ERROR" }, { - "line": 284, + "line": 282, "column": 8, - "endLine": 284, + "endLine": 282, "endColumn": 10, "problem": "NumericSemantics", "suggest": "", @@ -805,19 +685,9 @@ "severity": "ERROR" }, { - "line": 294, - "column": 9, - "endLine": 294, - "endColumn": 17, - "problem": "SwitchExpression", - "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", - "severity": "ERROR" - }, - { - "line": 303, + "line": 300, "column": 5, - "endLine": 303, + "endLine": 300, "endColumn": 23, "problem": "NumericSemantics", "suggest": "", @@ -825,19 +695,9 @@ "severity": "ERROR" }, { - "line": 304, - "column": 9, - "endLine": 304, - "endColumn": 16, - "problem": "SwitchExpression", - "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", - "severity": "ERROR" - }, - { - "line": 313, + "line": 309, "column": 5, - "endLine": 313, + "endLine": 309, "endColumn": 24, "problem": "NumericSemantics", "suggest": "", @@ -845,19 +705,9 @@ "severity": "ERROR" }, { - "line": 314, - "column": 9, - "endLine": 314, - "endColumn": 16, - "problem": "SwitchExpression", - "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", - "severity": "ERROR" - }, - { - "line": 323, + "line": 318, "column": 5, - "endLine": 323, + "endLine": 318, "endColumn": 18, "problem": "NumericSemantics", "suggest": "", @@ -865,19 +715,9 @@ "severity": "ERROR" }, { - "line": 324, - "column": 9, - "endLine": 324, - "endColumn": 16, - "problem": "SwitchExpression", - "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", - "severity": "ERROR" - }, - { - "line": 332, + "line": 327, "column": 5, - "endLine": 332, + "endLine": 327, "endColumn": 17, "problem": "NumericSemantics", "suggest": "", @@ -885,19 +725,9 @@ "severity": "ERROR" }, { - "line": 333, - "column": 9, - "endLine": 333, - "endColumn": 15, - "problem": "SwitchExpression", - "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", - "severity": "ERROR" - }, - { - "line": 342, + "line": 336, "column": 24, - "endLine": 342, + "endLine": 336, "endColumn": 25, "problem": "NumericSemantics", "suggest": "", @@ -905,19 +735,9 @@ "severity": "ERROR" }, { - "line": 343, - "column": 9, - "endLine": 343, - "endColumn": 17, - "problem": "SwitchExpression", - "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", - "severity": "ERROR" - }, - { - "line": 347, + "line": 341, "column": 8, - "endLine": 347, + "endLine": 341, "endColumn": 9, "problem": "NumericSemantics", "suggest": "", @@ -925,9 +745,9 @@ "severity": "ERROR" }, { - "line": 350, + "line": 344, "column": 8, - "endLine": 350, + "endLine": 344, "endColumn": 9, "problem": "NumericSemantics", "suggest": "", @@ -935,9 +755,9 @@ "severity": "ERROR" }, { - "line": 358, + "line": 351, "column": 23, - "endLine": 358, + "endLine": 351, "endColumn": 24, "problem": "NumericSemantics", "suggest": "", @@ -945,19 +765,9 @@ "severity": "ERROR" }, { - "line": 359, - "column": 9, - "endLine": 359, - "endColumn": 14, - "problem": "SwitchExpression", - "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", - "severity": "ERROR" - }, - { - "line": 360, + "line": 353, "column": 8, - "endLine": 360, + "endLine": 353, "endColumn": 9, "problem": "NumericSemantics", "suggest": "", @@ -965,9 +775,9 @@ "severity": "ERROR" }, { - "line": 364, + "line": 357, "column": 8, - "endLine": 364, + "endLine": 357, "endColumn": 9, "problem": "NumericSemantics", "suggest": "", @@ -975,9 +785,9 @@ "severity": "ERROR" }, { - "line": 371, + "line": 363, "column": 21, - "endLine": 371, + "endLine": 363, "endColumn": 22, "problem": "NumericSemantics", "suggest": "", @@ -985,19 +795,19 @@ "severity": "ERROR" }, { - "line": 372, - "column": 9, - "endLine": 372, - "endColumn": 14, - "problem": "SwitchExpression", + "line": 365, + "column": 8, + "endLine": 365, + "endColumn": 9, + "problem": "NumericSemantics", "suggest": "", - "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" }, { - "line": 373, + "line": 369, "column": 8, - "endLine": 373, + "endLine": 369, "endColumn": 9, "problem": "NumericSemantics", "suggest": "", @@ -1005,10 +815,10 @@ "severity": "ERROR" }, { - "line": 377, - "column": 8, - "endLine": 377, - "endColumn": 9, + "line": 407, + "column": 10, + "endLine": 407, + "endColumn": 11, "problem": "NumericSemantics", "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", diff --git a/ets2panda/linter/test/main/ui_modules/@kit.ArkUI.d.ts b/ets2panda/linter/test/main/ui_modules/@kit.ArkUI.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..cf71890e70f66a55e52e5cc7d90ca8f1207ca921 --- /dev/null +++ b/ets2panda/linter/test/main/ui_modules/@kit.ArkUI.d.ts @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { BuilderNode } from './@ohos.arkui.node'; +export { BuilderNode }; \ No newline at end of file diff --git a/ets2panda/linter/test/main/ui_modules/@ohos.arkui.node.d.ts b/ets2panda/linter/test/main/ui_modules/@ohos.arkui.node.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..bbf489a77f1f965c1b646aa2e464ea4a2ce2b206 --- /dev/null +++ b/ets2panda/linter/test/main/ui_modules/@ohos.arkui.node.d.ts @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export { BuilderNode } from './BuilderNode'; \ No newline at end of file diff --git a/ets2panda/linter/test/main/ui_modules/BuilderNode.d.ts b/ets2panda/linter/test/main/ui_modules/BuilderNode.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..ae79a092ff2c1ab1330a7637f53ae2f24c20ea26 --- /dev/null +++ b/ets2panda/linter/test/main/ui_modules/BuilderNode.d.ts @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export class BuilderNode { + build(): void; + update(): void; + reuse(): void; +} \ No newline at end of file diff --git a/ets2panda/linter/test/main/ui_modules/common.d.ts b/ets2panda/linter/test/main/ui_modules/common.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..b0826d63c20edceb60d75502249644a9f16d49e0 --- /dev/null +++ b/ets2panda/linter/test/main/ui_modules/common.d.ts @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +declare function getContext(component?: Object): Context; \ No newline at end of file diff --git a/ets2panda/linter/test/main/wrapped_builder_generic_1.ets.arkts2.json b/ets2panda/linter/test/main/wrapped_builder_generic_1.ets.arkts2.json index 301eb21df38fa5d991e9e5f3de784693eeaacc11..1c422977b254cf24de2672ba19d19aad0a6f135b 100644 --- a/ets2panda/linter/test/main/wrapped_builder_generic_1.ets.arkts2.json +++ b/ets2panda/linter/test/main/wrapped_builder_generic_1.ets.arkts2.json @@ -21,17 +21,7 @@ "endColumn": 56, "problem": "WrappedBuilderGenericNeedArrowFunc", "suggest": "", - "rule": "When using \"WrappedBuilder\" and \"wrapBuilder\", generics are required and must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", - "severity": "ERROR" - }, - { - "line": 22, - "column": 59, - "endLine": 22, - "endColumn": 81, - "problem": "WrappedBuilderGenericNeedArrowFunc", - "suggest": "", - "rule": "When using \"WrappedBuilder\" and \"wrapBuilder\", generics are required and must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", + "rule": "When using \"WrappedBuilder\", generics are required and must be declared as arrow function (arkui-wrappedbuilder-require-arrow-func-generic)", "severity": "ERROR" }, { @@ -41,7 +31,7 @@ "endColumn": 56, "problem": "WrappedBuilderGenericNeedArrowFunc", "suggest": "", - "rule": "When using \"WrappedBuilder\" and \"wrapBuilder\", generics are required and must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", + "rule": "When using \"WrappedBuilder\", generics are required and must be declared as arrow function (arkui-wrappedbuilder-require-arrow-func-generic)", "severity": "ERROR" }, { @@ -49,9 +39,9 @@ "column": 59, "endLine": 23, "endColumn": 99, - "problem": "WrappedBuilderGenericNeedArrowFunc", + "problem": "WrapBuilderGenericNeedArrowFunc", "suggest": "", - "rule": "When using \"WrappedBuilder\" and \"wrapBuilder\", generics are required and must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", + "rule": "When using \"wrapBuilder\", generics must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", "severity": "ERROR" }, { @@ -61,7 +51,7 @@ "endColumn": 56, "problem": "WrappedBuilderGenericNeedArrowFunc", "suggest": "", - "rule": "When using \"WrappedBuilder\" and \"wrapBuilder\", generics are required and must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", + "rule": "When using \"WrappedBuilder\", generics are required and must be declared as arrow function (arkui-wrappedbuilder-require-arrow-func-generic)", "severity": "ERROR" }, { @@ -71,7 +61,7 @@ "endColumn": 88, "problem": "WrappedBuilderGenericNeedArrowFunc", "suggest": "", - "rule": "When using \"WrappedBuilder\" and \"wrapBuilder\", generics are required and must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", + "rule": "When using \"WrappedBuilder\", generics are required and must be declared as arrow function (arkui-wrappedbuilder-require-arrow-func-generic)", "severity": "ERROR" }, { @@ -91,7 +81,7 @@ "endColumn": 56, "problem": "WrappedBuilderGenericNeedArrowFunc", "suggest": "", - "rule": "When using \"WrappedBuilder\" and \"wrapBuilder\", generics are required and must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", + "rule": "When using \"WrappedBuilder\", generics are required and must be declared as arrow function (arkui-wrappedbuilder-require-arrow-func-generic)", "severity": "ERROR" }, { @@ -101,7 +91,7 @@ "endColumn": 106, "problem": "WrappedBuilderGenericNeedArrowFunc", "suggest": "", - "rule": "When using \"WrappedBuilder\" and \"wrapBuilder\", generics are required and must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", + "rule": "When using \"WrappedBuilder\", generics are required and must be declared as arrow function (arkui-wrappedbuilder-require-arrow-func-generic)", "severity": "ERROR" }, { diff --git a/ets2panda/linter/test/main/wrapped_builder_generic_2.ets.arkts2.json b/ets2panda/linter/test/main/wrapped_builder_generic_2.ets.arkts2.json index a66118bc68d92ad987c1ba64e5acf3aa29f87ac3..735f83a19040fec8cf34dad391dad78b8fa560d0 100644 --- a/ets2panda/linter/test/main/wrapped_builder_generic_2.ets.arkts2.json +++ b/ets2panda/linter/test/main/wrapped_builder_generic_2.ets.arkts2.json @@ -21,27 +21,7 @@ "endColumn": 52, "problem": "WrappedBuilderGenericNeedArrowFunc", "suggest": "", - "rule": "When using \"WrappedBuilder\" and \"wrapBuilder\", generics are required and must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", - "severity": "ERROR" - }, - { - "line": 29, - "column": 58, - "endLine": 29, - "endColumn": 80, - "problem": "WrappedBuilderGenericNeedArrowFunc", - "suggest": "", - "rule": "When using \"WrappedBuilder\" and \"wrapBuilder\", generics are required and must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", - "severity": "ERROR" - }, - { - "line": 29, - "column": 82, - "endLine": 29, - "endColumn": 106, - "problem": "WrappedBuilderGenericNeedArrowFunc", - "suggest": "", - "rule": "When using \"WrappedBuilder\" and \"wrapBuilder\", generics are required and must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", + "rule": "When using \"WrappedBuilder\", generics are required and must be declared as arrow function (arkui-wrappedbuilder-require-arrow-func-generic)", "severity": "ERROR" }, { @@ -51,7 +31,7 @@ "endColumn": 52, "problem": "WrappedBuilderGenericNeedArrowFunc", "suggest": "", - "rule": "When using \"WrappedBuilder\" and \"wrapBuilder\", generics are required and must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", + "rule": "When using \"WrappedBuilder\", generics are required and must be declared as arrow function (arkui-wrappedbuilder-require-arrow-func-generic)", "severity": "ERROR" }, { @@ -59,9 +39,9 @@ "column": 58, "endLine": 30, "endColumn": 98, - "problem": "WrappedBuilderGenericNeedArrowFunc", + "problem": "WrapBuilderGenericNeedArrowFunc", "suggest": "", - "rule": "When using \"WrappedBuilder\" and \"wrapBuilder\", generics are required and must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", + "rule": "When using \"wrapBuilder\", generics must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", "severity": "ERROR" }, { @@ -69,9 +49,9 @@ "column": 100, "endLine": 30, "endColumn": 142, - "problem": "WrappedBuilderGenericNeedArrowFunc", + "problem": "WrapBuilderGenericNeedArrowFunc", "suggest": "", - "rule": "When using \"WrappedBuilder\" and \"wrapBuilder\", generics are required and must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", + "rule": "When using \"wrapBuilder\", generics must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", "severity": "ERROR" }, { @@ -81,7 +61,7 @@ "endColumn": 52, "problem": "WrappedBuilderGenericNeedArrowFunc", "suggest": "", - "rule": "When using \"WrappedBuilder\" and \"wrapBuilder\", generics are required and must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", + "rule": "When using \"WrappedBuilder\", generics are required and must be declared as arrow function (arkui-wrappedbuilder-require-arrow-func-generic)", "severity": "ERROR" }, { @@ -91,7 +71,7 @@ "endColumn": 87, "problem": "WrappedBuilderGenericNeedArrowFunc", "suggest": "", - "rule": "When using \"WrappedBuilder\" and \"wrapBuilder\", generics are required and must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", + "rule": "When using \"WrappedBuilder\", generics are required and must be declared as arrow function (arkui-wrappedbuilder-require-arrow-func-generic)", "severity": "ERROR" }, { @@ -111,7 +91,7 @@ "endColumn": 120, "problem": "WrappedBuilderGenericNeedArrowFunc", "suggest": "", - "rule": "When using \"WrappedBuilder\" and \"wrapBuilder\", generics are required and must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", + "rule": "When using \"WrappedBuilder\", generics are required and must be declared as arrow function (arkui-wrappedbuilder-require-arrow-func-generic)", "severity": "ERROR" }, { @@ -131,7 +111,7 @@ "endColumn": 52, "problem": "WrappedBuilderGenericNeedArrowFunc", "suggest": "", - "rule": "When using \"WrappedBuilder\" and \"wrapBuilder\", generics are required and must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", + "rule": "When using \"WrappedBuilder\", generics are required and must be declared as arrow function (arkui-wrappedbuilder-require-arrow-func-generic)", "severity": "ERROR" }, { @@ -141,7 +121,7 @@ "endColumn": 105, "problem": "WrappedBuilderGenericNeedArrowFunc", "suggest": "", - "rule": "When using \"WrappedBuilder\" and \"wrapBuilder\", generics are required and must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", + "rule": "When using \"WrappedBuilder\", generics are required and must be declared as arrow function (arkui-wrappedbuilder-require-arrow-func-generic)", "severity": "ERROR" }, { @@ -161,7 +141,7 @@ "endColumn": 156, "problem": "WrappedBuilderGenericNeedArrowFunc", "suggest": "", - "rule": "When using \"WrappedBuilder\" and \"wrapBuilder\", generics are required and must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", + "rule": "When using \"WrappedBuilder\", generics are required and must be declared as arrow function (arkui-wrappedbuilder-require-arrow-func-generic)", "severity": "ERROR" }, { @@ -181,7 +161,7 @@ "endColumn": 65, "problem": "WrappedBuilderGenericNeedArrowFunc", "suggest": "", - "rule": "When using \"WrappedBuilder\" and \"wrapBuilder\", generics are required and must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", + "rule": "When using \"WrappedBuilder\", generics are required and must be declared as arrow function (arkui-wrappedbuilder-require-arrow-func-generic)", "severity": "ERROR" }, { @@ -201,7 +181,7 @@ "endColumn": 65, "problem": "WrappedBuilderGenericNeedArrowFunc", "suggest": "", - "rule": "When using \"WrappedBuilder\" and \"wrapBuilder\", generics are required and must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", + "rule": "When using \"WrappedBuilder\", generics are required and must be declared as arrow function (arkui-wrappedbuilder-require-arrow-func-generic)", "severity": "ERROR" }, { @@ -221,7 +201,7 @@ "endColumn": 65, "problem": "WrappedBuilderGenericNeedArrowFunc", "suggest": "", - "rule": "When using \"WrappedBuilder\" and \"wrapBuilder\", generics are required and must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", + "rule": "When using \"WrappedBuilder\", generics are required and must be declared as arrow function (arkui-wrappedbuilder-require-arrow-func-generic)", "severity": "ERROR" }, { @@ -241,7 +221,7 @@ "endColumn": 65, "problem": "WrappedBuilderGenericNeedArrowFunc", "suggest": "", - "rule": "When using \"WrappedBuilder\" and \"wrapBuilder\", generics are required and must be declared as arrow function (arkui-wrapbuilder-require-arrow-func-generic)", + "rule": "When using \"WrappedBuilder\", generics are required and must be declared as arrow function (arkui-wrappedbuilder-require-arrow-func-generic)", "severity": "ERROR" }, { diff --git a/ets2panda/linter/test/sdkwhite/decl_with_duplicate_name_sdk.ets.arkts2.json b/ets2panda/linter/test/sdkwhite/decl_with_duplicate_name_sdk.ets.arkts2.json index d351a537bd6a910bd2443741e098df05f14db2d7..76d25532694166291452e1d717bbc7c68b7b324b 100644 --- a/ets2panda/linter/test/sdkwhite/decl_with_duplicate_name_sdk.ets.arkts2.json +++ b/ets2panda/linter/test/sdkwhite/decl_with_duplicate_name_sdk.ets.arkts2.json @@ -194,6 +194,16 @@ "rule": "API path have changed - please update your imports accordingly (sdk-no-decl-with-duplicate-name)", "severity": "ERROR" }, + { + "line": 54, + "column": 15, + "endLine": 54, + "endColumn": 37, + "problem": "ParameterType", + "suggest": "", + "rule": "Type of parameter must be defined explicitly (arkts-require-func-arg-type)", + "severity": "ERROR" + }, { "line": 54, "column": 15, @@ -425,4 +435,4 @@ "severity": "ERROR" } ] -} \ No newline at end of file +} diff --git a/ets2panda/lsp/BUILD.gn b/ets2panda/lsp/BUILD.gn index d65ec9d4accec425a32132ff9aa5c02f39722132..429fe3d506de91072a8ca93454bb467a63be6249 100644 --- a/ets2panda/lsp/BUILD.gn +++ b/ets2panda/lsp/BUILD.gn @@ -87,10 +87,13 @@ ohos_source_set("libes2panda_lsp_static") { "src/refactors/refactor_types.cpp", "src/references.cpp", "src/register_code_fix/add_missing_declare_property.cpp", - "src/register_code_fix/convert_const_to_let.cpp", "src/register_code_fix/add_missing_new_operator.cpp", + "src/register_code_fix/convert_const_to_let.cpp", + "src/register_code_fix/fix_add_function_return_statement.cpp", "src/register_code_fix/fix_class_doesnt_implement_inherited_abstract_member.cpp", + "src/register_code_fix/fix_class_super_must_precede_this_access.cpp", "src/register_code_fix/fix_expected_comma.cpp", + "src/register_code_fix/fix_extends_interface_becomes_implements.cpp", "src/register_code_fix/fix_missing_call_parantheses.cpp", "src/register_code_fix/fix_nan_equality.cpp", "src/register_code_fix/fix_return_type_in_async_function.cpp", @@ -123,7 +126,7 @@ ohos_source_set("libes2panda_lsp_static") { "../:libes2panda_public_config", "../:libes2panda_config", "$ark_root/libpandabase:arkbase_public_config", - "$ark_root/libpandafile:arkfile_public_config", + "$ark_root/libarkfile:arkfile_public_config", ":libes2panda_lsp_config", ] diff --git a/ets2panda/lsp/CMakeLists.txt b/ets2panda/lsp/CMakeLists.txt index 3e13f86f6550d7a6eb1653d2a5214b2b992564ec..ef5ce87a8777310abde35003768f680c28ff5aae 100644 --- a/ets2panda/lsp/CMakeLists.txt +++ b/ets2panda/lsp/CMakeLists.txt @@ -113,6 +113,8 @@ set(ES2PANDA_LSP_SRC ./src/register_code_fix/add_missing_new_operator.cpp ./src/register_code_fix/fix_class_doesnt_implement_inherited_abstract_member.cpp ./src/register_code_fix/fix_expected_comma.cpp + ./src/register_code_fix/fix_extends_interface_becomes_implements.cpp + ./src/register_code_fix/fix_class_super_must_precede_this_access.cpp ./src/register_code_fix/fix_return_type_in_async_function.cpp ./src/register_code_fix/add_missing_declare_property.cpp ./src/register_code_fix/convert_const_to_let.cpp @@ -121,6 +123,7 @@ set(ES2PANDA_LSP_SRC ./src/register_code_fix/forgotten_this_property_access.cpp ./src/register_code_fix/import_fixes.cpp ./src/register_code_fix/remove_accidental_call_parentheses.cpp + ./src/register_code_fix/fix_add_function_return_statement.cpp ./src/register_code_fix/ui_plugin_suggest.cpp ./src/get_name_or_dotted_name_span.cpp ) @@ -145,3 +148,4 @@ panda_target_link_libraries(${LSP_LIB} panda_add_sanitizers(TARGET ${LSP_LIB} SANITIZERS ${PANDA_SANITIZERS_LIST}) + diff --git a/ets2panda/lsp/include/internal_api.h b/ets2panda/lsp/include/internal_api.h index 4c0cbeee7b234b29a1c30ce26fe933bf07a62186..e52b422cc87bf62f3793a741a10e806750af16d7 100644 --- a/ets2panda/lsp/include/internal_api.h +++ b/ets2panda/lsp/include/internal_api.h @@ -140,6 +140,7 @@ ir::Identifier *GetIdentFromNewClassExprPart(const ir::Expression *value); varbinder::Decl *FindDeclInFunctionScope(varbinder::Scope *scope, const util::StringView &name); varbinder::Decl *FindDeclInGlobalScope(varbinder::Scope *scope, const util::StringView &name); varbinder::Decl *FindDeclInScopeWithFallback(varbinder::Scope *scope, const util::StringView &name); +std::string GetImportFilePath(es2panda_Context *context, size_t pos); } // namespace ark::es2panda::lsp diff --git a/ets2panda/lsp/include/register_code_fix/fix_add_function_return_statement.h b/ets2panda/lsp/include/register_code_fix/fix_add_function_return_statement.h new file mode 100644 index 0000000000000000000000000000000000000000..f7f5189a99a846d629d1fca45c4cfc2dfe00f2a3 --- /dev/null +++ b/ets2panda/lsp/include/register_code_fix/fix_add_function_return_statement.h @@ -0,0 +1,69 @@ +/** + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef FIX_ADD_FUNCTION_RETURN_STATEMENT_H +#define FIX_ADD_FUNCTION_RETURN_STATEMENT_H + +#include +#include "../services/text_change/change_tracker.h" +#include "lsp/include/types.h" +#include "lsp/include/code_fixes/code_fix_types.h" +#include "utils/arena_containers.h" + +namespace ark::es2panda::lsp { + +class FixAddFunctionReturnStatement : public CodeFixRegistration { +public: + FixAddFunctionReturnStatement(); + + std::vector GetCodeActions(const CodeFixContext &context) override; + + CombinedCodeActions GetAllCodeActions(const CodeFixAllContext &ctx) override; +}; + +struct Info { +private: + ark::es2panda::ir::AstNode *returnTypeNode_; + ark::es2panda::ir::AstNode *body_; + std::vector statements_; + +public: + Info(ark::es2panda::ir::AstNode *returnTypeNode, ark::es2panda::ir::AstNode *body, + std::vector statements) + : returnTypeNode_(returnTypeNode), body_(body), statements_(std::move(statements)) + { + } + ark::es2panda::ir::AstNode *GetReturnTypeNode() const + { + return returnTypeNode_; + } + ark::es2panda::ir::AstNode *GetBody() const + { + return body_; + } + const std::vector &GetStatements() const + { + return statements_; + } +}; + +ir::AstNode *FindAncessor(ir::AstNode *node); +Info GetInfo(es2panda_Context *context, size_t position); +void ReplaceReturnType(ChangeTracker &changes, es2panda_Context *context, Info &info); +void AddReturnStatement(ChangeTracker &changes, es2panda_Context *context, std::vector statements, + ir::AstNode *body); + +} // namespace ark::es2panda::lsp +#endif diff --git a/ets2panda/lsp/include/register_code_fix/fix_class_super_must_precede_this_access.h b/ets2panda/lsp/include/register_code_fix/fix_class_super_must_precede_this_access.h new file mode 100644 index 0000000000000000000000000000000000000000..05a016c1cd54308900b7d923f8db86f3a4c82b45 --- /dev/null +++ b/ets2panda/lsp/include/register_code_fix/fix_class_super_must_precede_this_access.h @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef FIX_CLASS_SUPER_MUST_PRECEDE_THIS_ACCESS_H +#define FIX_CLASS_SUPER_MUST_PRECEDE_THIS_ACCESS_H + +#include + +#include "lsp/include/code_fixes/code_fix_types.h" +#include "lsp/include/services/text_change/change_tracker.h" +#include "lsp/include/types.h" + +namespace ark::es2panda::lsp { + +class FixClassSuperMustPrecedeThisAccess : public CodeFixRegistration { +public: + FixClassSuperMustPrecedeThisAccess(); + + std::vector GetCodeActions(const CodeFixContext &context) override; + CombinedCodeActions GetAllCodeActions(const CodeFixAllContext &codeFixAll) override; + +private: + void MakeChangeForClassSuperMustPrecedeThisAccess(ChangeTracker &changeTracker, es2panda_Context *context, + size_t pos); + std::vector GetCodeActionsForClassSuperMustPrecedeThisAccess(const CodeFixContext &context); +}; + +} // namespace ark::es2panda::lsp +#endif \ No newline at end of file diff --git a/ets2panda/lsp/include/register_code_fix/fix_extends_interface_becomes_implements.h b/ets2panda/lsp/include/register_code_fix/fix_extends_interface_becomes_implements.h new file mode 100644 index 0000000000000000000000000000000000000000..b0ed6fd48c3bb4a254026dae2eaacbb840164b9e --- /dev/null +++ b/ets2panda/lsp/include/register_code_fix/fix_extends_interface_becomes_implements.h @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef FIX_EXTENDS_INTERFACE_BECOMES_IMPLEMENTS_H +#define FIX_EXTENDS_INTERFACE_BECOMES_IMPLEMENTS_H + +#include + +#include "lsp/include/code_fixes/code_fix_types.h" +#include "lsp/include/services/text_change/change_tracker.h" +#include "lsp/include/types.h" + +namespace ark::es2panda::lsp { + +class FixExtendsInterfaceBecomesImplements : public CodeFixRegistration { +public: + FixExtendsInterfaceBecomesImplements(); + + std::vector GetCodeActions(const CodeFixContext &context) override; + CombinedCodeActions GetAllCodeActions(const CodeFixAllContext &codeFixAll) override; + +private: + void MakeChangeForExtendsInterfaceBecomesImplements(ChangeTracker &changeTracker, es2panda_Context *context, + size_t pos); + std::vector GetCodeActionsToExtendsInterfaceBecomesImplements(const CodeFixContext &context); +}; + +} // namespace ark::es2panda::lsp +#endif diff --git a/ets2panda/lsp/src/api.cpp b/ets2panda/lsp/src/api.cpp index 129747640c2e1bb602be2ebb85ce7a70e9e30f09..50a852b0288341046f00425797f66c6e10f5d16d 100644 --- a/ets2panda/lsp/src/api.cpp +++ b/ets2panda/lsp/src/api.cpp @@ -51,6 +51,10 @@ DefinitionInfo GetDefinitionAtPosition(es2panda_Context *context, size_t positio { auto ctx = reinterpret_cast(context); SetPhaseManager(ctx->phaseManager); + auto importFilePath = GetImportFilePath(context, position); + if (!importFilePath.empty()) { + return {importFilePath, 0, 0}; + } auto declInfo = GetDefinitionAtPositionImpl(context, position); DefinitionInfo result {}; if (declInfo.first == nullptr) { diff --git a/ets2panda/lsp/src/internal_api.cpp b/ets2panda/lsp/src/internal_api.cpp index 175d39818bfc733fd85f86a5235ea031e94ba199..86b27c2036ce2b4c18f193d22c97b17b8de7db76 100644 --- a/ets2panda/lsp/src/internal_api.cpp +++ b/ets2panda/lsp/src/internal_api.cpp @@ -632,6 +632,20 @@ std::pair GetDefinitionAtPositionImpl(es2panda_ return res; } +std::string GetImportFilePath(es2panda_Context *context, size_t pos) +{ + std::string res; + auto node = GetTouchingToken(context, pos, false); + if (node == nullptr) { + return res; + } + auto parent = node->Parent(); + if (parent != nullptr && parent->IsETSImportDeclaration() && parent->AsETSImportDeclaration()->Source() == node) { + res = std::string(parent->AsETSImportDeclaration()->ImportMetadata().resolvedSource); + } + return res; +} + ArenaVector RemoveRefDuplicates(const ArenaVector &nodes, ArenaAllocator *allocator) { auto hashFunc = [](const ir::AstNode *node) { diff --git a/ets2panda/lsp/src/register_code_fix/fix_add_function_return_statement.cpp b/ets2panda/lsp/src/register_code_fix/fix_add_function_return_statement.cpp new file mode 100644 index 0000000000000000000000000000000000000000..51beebf135f06381ca8df9a5ad6711611bc1bba1 --- /dev/null +++ b/ets2panda/lsp/src/register_code_fix/fix_add_function_return_statement.cpp @@ -0,0 +1,147 @@ +/** + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "lsp/include/register_code_fix/fix_add_function_return_statement.h" +#include +#include +#include +#include +#include +#include "generated/code_fix_register.h" +#include "lsp/include/code_fix_provider.h" +#include "lsp/include/internal_api.h" +#include "public/es2panda_lib.h" + +namespace ark::es2panda::lsp { +using codefixes::FIX_ADD_FUNCTION_RETURN_STATEMENT; + +FixAddFunctionReturnStatement::FixAddFunctionReturnStatement() +{ + auto errorCodes = FIX_ADD_FUNCTION_RETURN_STATEMENT.GetSupportedCodeNumbers(); + SetErrorCodes({errorCodes.begin(), errorCodes.end()}); // change this to the error code you want to handle + SetFixIds({FIX_ADD_FUNCTION_RETURN_STATEMENT.GetFixId().data()}); +} + +std::vector FixAddFunctionReturnStatement::GetCodeActions(const CodeFixContext &context) +{ + std::vector returnedActions; + auto info = GetInfo(context.context, context.span.start); + if (info.GetReturnTypeNode() == nullptr || info.GetBody() == nullptr) { + return returnedActions; // No valid return type or body found + } + + TextChangesContext textChangesContext {context.host, context.formatContext, context.preferences}; + auto replaceReturnTypeChanges = ChangeTracker::With( + textChangesContext, [&](ChangeTracker &tracker) { ReplaceReturnType(tracker, context.context, info); }); + auto addReturnStatementChanges = ChangeTracker::With(textChangesContext, [&](ChangeTracker &tracker) { + AddReturnStatement(tracker, context.context, info.GetStatements(), info.GetBody()); + }); + CodeFixAction action; + action.fixName = FIX_ADD_FUNCTION_RETURN_STATEMENT.GetFixId().data(); + action.description = "Add missing return statement"; + action.fixId = FIX_ADD_FUNCTION_RETURN_STATEMENT.GetFixId().data(); + action.fixAllDescription = "Add all missing return statement"; + action.changes.insert(action.changes.end(), replaceReturnTypeChanges.begin(), replaceReturnTypeChanges.end()); + action.changes.insert(action.changes.end(), addReturnStatementChanges.begin(), addReturnStatementChanges.end()); + returnedActions.push_back(action); + + return returnedActions; +} + +CombinedCodeActions FixAddFunctionReturnStatement::GetAllCodeActions([[maybe_unused]] const CodeFixAllContext &ctx) +{ + CombinedCodeActions combinedActions; + return combinedActions; +} + +Info GetInfo(es2panda_Context *context, size_t position) +{ + const auto token = GetDefinitionAtPositionImpl(context, position); + const auto node = token.first; + const auto declaration = FindAncessor(node); + if (!declaration->IsFunctionExpression()) { + return Info(nullptr, nullptr, {}); + } + const auto returnTypeNode = declaration->AsFunctionExpression()->Function()->ReturnTypeAnnotation(); + if (returnTypeNode == nullptr || !returnTypeNode->IsETSTypeReference()) { + return Info(nullptr, nullptr, {}); + } + if (!declaration->AsFunctionExpression()->Function()->Body()->IsBlockStatement()) { + return Info(nullptr, nullptr, {}); + } + + const auto body = declaration->AsFunctionExpression()->Function()->Body(); + const auto statements = body->AsBlockStatement()->Statements(); + return Info(returnTypeNode, body, {statements.begin(), statements.end()}); +} + +void ReplaceReturnType(ChangeTracker &changes, es2panda_Context *context, Info &info) +{ + auto ctx = reinterpret_cast(context); + const auto &statements = info.GetStatements(); + bool statementFlag = false; + for (const auto &statement : statements) { + if (statement->IsReturnStatement()) { + statementFlag = true; + break; + } + } + if (statementFlag) { + return; + } + auto newNode = info.GetReturnTypeNode()->Clone(ctx->Allocator(), info.GetReturnTypeNode()->Parent()); + if (!newNode->IsETSTypeReference()) { + return; // Not a valid type reference node + } + auto typeRef = newNode->AsETSTypeReference(); + if (typeRef->Part()->IsETSTypeReferencePart()) { + auto part = typeRef->Part()->AsETSTypeReferencePart(); + part->GetIdent()->SetName("void"); // Change the type to 'void' + } + + changes.ReplaceNode(context, info.GetReturnTypeNode(), newNode, {}); +} +void AddReturnStatement(ChangeTracker &changes, es2panda_Context *context, std::vector statements, + ir::AstNode *body) +{ + const auto impl = es2panda_GetImpl(ES2PANDA_LIB_VERSION); + if (!statements.empty()) { + // If the body is empty, we can add a return statement + auto *returnStmt = impl->CreateReturnStatement(context); + changes.InsertNodeAfter(context, statements[statements.size() - 1]->AsStatement(), + reinterpret_cast(returnStmt)); + } else { + size_t newSize = statements.size() + 1; + std::vector newStatementsVec(newSize, nullptr); + for (size_t i = 0; i < statements.size(); ++i) { + newStatementsVec[i] = reinterpret_cast(statements[i]->AsStatement()); + } + newStatementsVec[statements.size()] = impl->CreateReturnStatement(context); + auto newBody = impl->CreateBlockStatement(context, newStatementsVec.data(), statements.size()); + changes.ReplaceNode(context, body->AsBlockStatement(), reinterpret_cast(newBody), {}); + } +} + +ir::AstNode *FindAncessor(ir::AstNode *node) +{ + if (node->IsFunctionDeclaration() || node->IsFunctionExpression()) { + return node; + } + return FindAncessor(node->Parent()); +} + +// NOLINTNEXTLINE(fuchsia-statically-constructed-objects, cert-err58-cpp) +AutoCodeFixRegister g_fixAddFunctionReturnStatement("FixAddFunctionReturnStatement"); +} // namespace ark::es2panda::lsp diff --git a/ets2panda/lsp/src/register_code_fix/fix_class_super_must_precede_this_access.cpp b/ets2panda/lsp/src/register_code_fix/fix_class_super_must_precede_this_access.cpp new file mode 100644 index 0000000000000000000000000000000000000000..0a28b0bb10dfbeca29a2b35ca3a5d96036b6dfc4 --- /dev/null +++ b/ets2panda/lsp/src/register_code_fix/fix_class_super_must_precede_this_access.cpp @@ -0,0 +1,139 @@ +/** + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "lsp/include/register_code_fix/fix_class_super_must_precede_this_access.h" + +#include +#include +#include "compiler/lowering/util.h" +#include "generated/code_fix_register.h" +#include "lsp/include/code_fix_provider.h" +#include "lsp/include/internal_api.h" + +namespace ark::es2panda::lsp { +using codefixes::CLASS_SUPER_MUST_PRECEDE_THIS_ACCESS; + +ir::AstNode *FindNearestFunction(ir::AstNode *node) +{ + while (node != nullptr) { + if (node->IsConstructor()) { + return node; + } + node = node->Parent(); + } + return nullptr; +} + +void FixClassSuperMustPrecedeThisAccess::MakeChangeForClassSuperMustPrecedeThisAccess(ChangeTracker &changeTracker, + es2panda_Context *context, + size_t pos) +{ + auto *token = GetTouchingToken(context, pos, false); + if (token == nullptr || !token->IsThisExpression()) { + return; + } + + ir::AstNode *ctr = FindNearestFunction(token); + if (ctr == nullptr) { + return; + } + + ir::AstNode *superCall = nullptr; + ctr->FindChild([&](ir::AstNode *n) { + if (n->IsSuperExpression()) { + superCall = n; + return true; + } + return false; + }); + + ir::AstNode *blockStatement = nullptr; + ctr->FindChild([&](ir::AstNode *n) { + if (n->IsBlockStatement()) { + blockStatement = n; + return true; + } + return false; + }); + + if (superCall == nullptr) { + return; + } + + if (token->Start().index > superCall->Start().index) { + return; + } + + auto ctx = reinterpret_cast(context); + + changeTracker.DeleteRange(ctx->sourceFile, {superCall->Start().index, superCall->End().index}); + + auto *exprStmt = ctx->allocator->New(superCall->Parent()->AsExpression()); + changeTracker.InsertNodeAtConstructorStart(context, blockStatement, exprStmt); +} + +std::vector FixClassSuperMustPrecedeThisAccess::GetCodeActionsForClassSuperMustPrecedeThisAccess( + const CodeFixContext &context) +{ + TextChangesContext textChangesContext = {context.host, context.formatContext, context.preferences}; + auto fileTextChanges = ChangeTracker::With(textChangesContext, [&](ChangeTracker &tracker) { + MakeChangeForClassSuperMustPrecedeThisAccess(tracker, context.context, context.span.start); + }); + + return fileTextChanges; +} + +FixClassSuperMustPrecedeThisAccess::FixClassSuperMustPrecedeThisAccess() +{ + auto errorCodes = CLASS_SUPER_MUST_PRECEDE_THIS_ACCESS.GetSupportedCodeNumbers(); + SetErrorCodes({errorCodes.begin(), errorCodes.end()}); + SetFixIds({CLASS_SUPER_MUST_PRECEDE_THIS_ACCESS.GetFixId().data()}); +} + +std::vector FixClassSuperMustPrecedeThisAccess::GetCodeActions(const CodeFixContext &context) +{ + std::vector returnedActions; + auto changes = GetCodeActionsForClassSuperMustPrecedeThisAccess(context); + if (!changes.empty()) { + CodeFixAction codeAction; + codeAction.fixName = CLASS_SUPER_MUST_PRECEDE_THIS_ACCESS.GetFixId().data(); + codeAction.description = "Fix 'super' access before 'this'"; + codeAction.changes = changes; + codeAction.fixId = CLASS_SUPER_MUST_PRECEDE_THIS_ACCESS.GetFixId().data(); + codeAction.fixAllDescription = "Fix all 'super' access before 'this'"; + returnedActions.push_back(codeAction); + } + + return returnedActions; +} + +CombinedCodeActions FixClassSuperMustPrecedeThisAccess::GetAllCodeActions(const CodeFixAllContext &codeFixAllCtx) +{ + CodeFixProvider provider; + const auto changes = provider.CodeFixAll( + codeFixAllCtx, GetErrorCodes(), [&](ChangeTracker &tracker, const DiagnosticWithLocation &diag) { + MakeChangeForClassSuperMustPrecedeThisAccess(tracker, codeFixAllCtx.context, diag.GetStart()); + }); + + CombinedCodeActions combinedCodeActions; + combinedCodeActions.changes = changes.changes; + combinedCodeActions.commands = changes.commands; + + return combinedCodeActions; +} +// NOLINTNEXTLINE(fuchsia-statically-constructed-objects, cert-err58-cpp) +AutoCodeFixRegister g_fixClassSuperMustPrecedeThisAccess( + CLASS_SUPER_MUST_PRECEDE_THIS_ACCESS.GetFixId().data()); +} // namespace ark::es2panda::lsp diff --git a/ets2panda/lsp/src/register_code_fix/fix_extends_interface_becomes_implements.cpp b/ets2panda/lsp/src/register_code_fix/fix_extends_interface_becomes_implements.cpp new file mode 100644 index 0000000000000000000000000000000000000000..9deb1bc3b2d1c1510b40a4f3c3229b078f75660f --- /dev/null +++ b/ets2panda/lsp/src/register_code_fix/fix_extends_interface_becomes_implements.cpp @@ -0,0 +1,116 @@ +/** + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "lsp/include/register_code_fix/fix_extends_interface_becomes_implements.h" + +#include "compiler/lowering/util.h" +#include "generated/code_fix_register.h" +#include "lsp/include/code_fix_provider.h" +#include "lsp/include/internal_api.h" + +namespace ark::es2panda::lsp { +using codefixes::EXTENDS_INTERFACE_BECOMES_IMPLEMENTS; + +constexpr std::string_view KEYW_IMPLEMENTS_STR = "implements"; + +void FixExtendsInterfaceBecomesImplements::MakeChangeForExtendsInterfaceBecomesImplements(ChangeTracker &changeTracker, + es2panda_Context *context, + size_t pos) +{ + auto *token = GetTouchingToken(context, pos, false); + + size_t changeEnd = 0; + size_t changeStart = 0; + size_t spaceChar = 1; + if (!token->IsClassDeclaration()) { + return; + } + token->FindChild([&](ir::AstNode *n) { + if (n->IsIdentifier()) { + changeStart = n->End().index + spaceChar; + return true; + } + return false; + }); + + token->FindChild([&](ir::AstNode *n) { + if (n->IsETSTypeReference()) { + changeEnd = n->Start().index - spaceChar; + return true; + } + return false; + }); + + TextRange extendsRange = {changeStart, changeEnd}; + const std::string replaceText(KEYW_IMPLEMENTS_STR); + auto astContext = reinterpret_cast(context); + changeTracker.ReplaceRangeWithText(astContext->sourceFile, extendsRange, replaceText); +} + +std::vector FixExtendsInterfaceBecomesImplements::GetCodeActionsToExtendsInterfaceBecomesImplements( + const CodeFixContext &context) +{ + TextChangesContext textChangesContext = {context.host, context.formatContext, context.preferences}; + auto fileTextChanges = ChangeTracker::With(textChangesContext, [&](ChangeTracker &tracker) { + MakeChangeForExtendsInterfaceBecomesImplements(tracker, context.context, context.span.start); + }); + + return fileTextChanges; +} + +FixExtendsInterfaceBecomesImplements::FixExtendsInterfaceBecomesImplements() +{ + auto errorCodes = EXTENDS_INTERFACE_BECOMES_IMPLEMENTS.GetSupportedCodeNumbers(); + SetErrorCodes({errorCodes.begin(), errorCodes.end()}); + SetFixIds({EXTENDS_INTERFACE_BECOMES_IMPLEMENTS.GetFixId().data()}); +} + +std::vector FixExtendsInterfaceBecomesImplements::GetCodeActions(const CodeFixContext &context) +{ + std::vector returnedActions; + auto changes = GetCodeActionsToExtendsInterfaceBecomesImplements(context); + if (!changes.empty()) { + CodeFixAction codeAction; + codeAction.fixName = EXTENDS_INTERFACE_BECOMES_IMPLEMENTS.GetFixId().data(); + codeAction.description = "Change 'extends' to 'implements'"; + codeAction.changes = changes; + codeAction.fixId = EXTENDS_INTERFACE_BECOMES_IMPLEMENTS.GetFixId().data(); + codeAction.fixAllDescription = "Change all 'extends' on interfaces to 'implements'"; + returnedActions.push_back(codeAction); + } + + return returnedActions; +} + +CombinedCodeActions FixExtendsInterfaceBecomesImplements::GetAllCodeActions(const CodeFixAllContext &codeFixAllCtx) +{ + CodeFixProvider provider; + const auto changes = provider.CodeFixAll( + codeFixAllCtx, GetErrorCodes(), [&](ChangeTracker &tracker, const DiagnosticWithLocation &diag) { + MakeChangeForExtendsInterfaceBecomesImplements(tracker, codeFixAllCtx.context, diag.GetStart()); + }); + + CombinedCodeActions combinedCodeActions; + combinedCodeActions.changes = changes.changes; + combinedCodeActions.commands = changes.commands; + + return combinedCodeActions; +} + +// NOLINTNEXTLINE +AutoCodeFixRegister g_FixExtendsInterfaceBecomesImplements( + EXTENDS_INTERFACE_BECOMES_IMPLEMENTS.GetFixId().data()); + +} // namespace ark::es2panda::lsp \ No newline at end of file diff --git a/ets2panda/lsp/src/register_code_fix/ui_plugin_suggest.cpp b/ets2panda/lsp/src/register_code_fix/ui_plugin_suggest.cpp index e450a3c3ecd961686459ebae171a3e13bfbbcfac..ecfecd3991a3e6d7b35bb0d5566d82a04c05d3cd 100644 --- a/ets2panda/lsp/src/register_code_fix/ui_plugin_suggest.cpp +++ b/ets2panda/lsp/src/register_code_fix/ui_plugin_suggest.cpp @@ -30,28 +30,38 @@ UIPluginSuggest::UIPluginSuggest() } std::vector GetTextChangesFromSuggestions(const ark::es2panda::util::Diagnostic *diag, size_t pos, - bool isAll) + bool isAll, es2panda_Context *context) { std::vector textChanges; if (!diag->HasSuggestions()) { return textChanges; } + auto ctx = reinterpret_cast(context); + auto index = lexer::LineIndex(ctx->parserProgram->SourceCode()); + auto offset = index.GetOffset(lexer::SourceLocation(diag->Line(), diag->Offset(), ctx->parserProgram)); + auto touchingToken = GetTouchingToken(context, offset, false); + if (touchingToken == nullptr) { + return textChanges; + } + auto start = touchingToken->Start().index; + auto end = touchingToken->End().index; for (auto suggestion : diag->Suggestion()) { auto sourceStart = suggestion->SourceRange()->start.index; auto sourceEnd = suggestion->SourceRange()->end.index; auto span = TextSpan(sourceStart, sourceEnd - sourceStart); - if (isAll) { - textChanges.emplace_back(TextChange(span, suggestion->SubstitutionCode())); - } else if (pos >= sourceStart && pos <= sourceEnd) { + if (isAll || (pos >= start && pos <= end)) { + // compare diag range instead of suggestion range + // to support rules of different ranges of diag and suggestion textChanges.emplace_back(TextChange(span, suggestion->SubstitutionCode())); } } return textChanges; } -std::vector GetUIPluginCodeFixesByDiagType(public_lib::Context *ctx, size_t pos, +std::vector GetUIPluginCodeFixesByDiagType(es2panda_Context *context, size_t pos, util::DiagnosticType type, bool isAll) { + auto ctx = reinterpret_cast(context); auto filename = ctx->sourceFileName; std::vector res; const auto &diagnostics = ctx->diagnosticEngine->GetDiagnosticStorage(type); @@ -59,7 +69,7 @@ std::vector GetUIPluginCodeFixesByDiagType(public_lib::Context // NOLINTNEXTLINE(modernize-loop-convert,-warnings-as-errors) for (size_t i = 0; i < diagnosticStorage->size(); ++i) { auto diag = reinterpret_cast(&(*(*diagnosticStorage)[i])); - auto textChanges = GetTextChangesFromSuggestions(diag, pos, isAll); + auto textChanges = GetTextChangesFromSuggestions(diag, pos, isAll, context); FileTextChanges fileTextChanges(filename, textChanges); res.emplace_back(fileTextChanges); } @@ -71,11 +81,10 @@ std::vector UIPluginSuggest::GetUIPluginCodeFixes(es2panda_Cont if (context == nullptr) { return {}; } - auto ctx = reinterpret_cast(context); std::vector res; - auto errorFixes = GetUIPluginCodeFixesByDiagType(ctx, pos, util::DiagnosticType::PLUGIN_ERROR, isAll); + auto errorFixes = GetUIPluginCodeFixesByDiagType(context, pos, util::DiagnosticType::PLUGIN_ERROR, isAll); res.insert(res.end(), errorFixes.begin(), errorFixes.end()); - auto warningFixes = GetUIPluginCodeFixesByDiagType(ctx, pos, util::DiagnosticType::PLUGIN_WARNING, isAll); + auto warningFixes = GetUIPluginCodeFixesByDiagType(context, pos, util::DiagnosticType::PLUGIN_WARNING, isAll); res.insert(res.end(), warningFixes.begin(), warningFixes.end()); return res; } diff --git a/ets2panda/lsp/src/services/text_change/change_tracker.cpp b/ets2panda/lsp/src/services/text_change/change_tracker.cpp index 77e1e41ff091d6cf0a3acf0fde6160358bba8915..d647c283357aab2a81e664fca7634a6e1b61f4cd 100644 --- a/ets2panda/lsp/src/services/text_change/change_tracker.cpp +++ b/ets2panda/lsp/src/services/text_change/change_tracker.cpp @@ -550,31 +550,33 @@ void ChangeTracker::InsertTypeParameters(es2panda_Context *context, const ir::As void ChangeTracker::InsertNodeAtConstructorStart(es2panda_Context *context, ir::AstNode *ctr, ir::Statement *newStatement) { - if (!ctr->IsConstructor()) { + if (ctr == nullptr || newStatement == nullptr) { + return; + } + if (!ctr->Parent()->IsConstructor()) { return; } + std::vector statements; - ir::Statement *superStatement; + ir::Statement *firstStatement = nullptr; - ctr->FindChild([&statements, &superStatement](ir::AstNode *n) { - if (n->IsSuperExpression()) { - superStatement = n->AsStatement(); - return true; - } + ctr->FindChild([&](ir::AstNode *n) { if (n->IsStatement()) { + if (firstStatement == nullptr) { + firstStatement = n->AsStatement(); + } statements.push_back(n->AsStatement()); } - return false; }); - if (superStatement == nullptr && !statements.empty()) { - ReplaceConstructorBody(context, ctr, statements); + + if (firstStatement == nullptr && statements.empty()) { + std::vector newStatements = {newStatement}; + newStatements.insert(newStatements.end(), statements.begin(), statements.end()); + ReplaceConstructorBody(context, ctr, newStatements); } else { - if (superStatement != nullptr) { - InsertNodeAfter(context, superStatement, newStatement->AsStatement()); - } else { - InsertNodeBefore(context, ctr, newStatement->AsStatement()); - } + // Insert the new statement before the first statement + InsertNodeBefore(context, firstStatement, newStatement); } } diff --git a/ets2panda/parser/ETSFormattedParser.cpp b/ets2panda/parser/ETSFormattedParser.cpp index b3acf5e5596b2743139e756cb526ab959efd903c..b999b9a7bf24de8f8993f6da689f07514d89d84a 100644 --- a/ets2panda/parser/ETSFormattedParser.cpp +++ b/ets2panda/parser/ETSFormattedParser.cpp @@ -134,7 +134,7 @@ ir::Identifier *ETSParser::ParseIdentifierFormatPlaceholder(std::optionalGetToken().Start()); - return nullptr; + return AllocBrokenExpression(Lexer()->GetToken().Loc()); } nodeFormat = GetFormatPlaceholderType(); @@ -482,7 +482,7 @@ ir::Statement *ETSParser::CreateClassDeclaration(std::string_view sourceCode, bo } default: { LogUnexpectedToken(Lexer()->GetToken()); - return nullptr; + return AllocBrokenStatement(lexer->GetToken().Start()); } } } diff --git a/ets2panda/parser/ETSparser.cpp b/ets2panda/parser/ETSparser.cpp index d9970074638f4d87b7610d70336eedddf0b3a7ca..d1dc137a335d7826eddc28f5a1818ab58c1449e0 100644 --- a/ets2panda/parser/ETSparser.cpp +++ b/ets2panda/parser/ETSparser.cpp @@ -99,6 +99,11 @@ bool ETSParser::IsETSParser() const noexcept return true; } +bool ETSParser::IsValidIdentifierName(const lexer::Token &token) const noexcept +{ + return !token.IsPredefinedType() || util::Helpers::IsStdLib(GetProgram()); +} + std::unique_ptr ETSParser::InitLexer(const SourceFile &sourceFile) { GetProgram()->SetSource(sourceFile); @@ -753,7 +758,7 @@ ir::Statement *ETSParser::ParseTypeDeclarationAbstractFinal(bool allowStatic, ir } LogUnexpectedToken(Lexer()->GetToken()); - return nullptr; + return AllocBrokenStatement(Lexer()->GetToken().Loc()); } ir::Statement *ETSParser::ParseTypeDeclaration(bool allowStatic) @@ -837,13 +842,20 @@ ir::TSTypeAliasDeclaration *ETSParser::ParseTypeAliasDeclaration() ExpectToken(lexer::TokenType::PUNCTUATOR_SUBSTITUTION); + if (Lexer()->TryEatTokenFromKeywordType(lexer::TokenType::KEYW_NEW)) { + LogError(diagnostic::CONSTRUCTOR_FUNC_TYPE_NOT_SUPPORTED, {}, typeStart); + typeAliasDecl->SetTsTypeAnnotation(AllocBrokenType(typeStart)); + } + TypeAnnotationParsingOptions options = TypeAnnotationParsingOptions::REPORT_ERROR | TypeAnnotationParsingOptions::TYPE_ALIAS_CONTEXT; ir::TypeNode *typeAnnotation = ParseTypeAnnotation(&options); if (typeAnnotation == nullptr) { return nullptr; } - typeAliasDecl->SetTsTypeAnnotation(typeAnnotation); + if (typeAliasDecl->TypeAnnotation() == nullptr) { + typeAliasDecl->SetTsTypeAnnotation(typeAnnotation); + } typeAnnotation->SetParent(typeAliasDecl); typeAliasDecl->SetRange({typeStart, Lexer()->GetToken().End()}); return typeAliasDecl; @@ -1034,7 +1046,8 @@ ir::TypeNode *ETSParser::ParseTypeReference(TypeAnnotationParsingOptions *option typeRefPart = AllocNode(typeName, typeParams, typeRefPart, Allocator()); ES2PANDA_ASSERT(typeRefPart != nullptr); - typeRefPart->SetRange({partPos, Lexer()->GetToken().End()}); + auto endPos = typeParams == nullptr ? typeName->End() : typeParams->End(); + typeRefPart->SetRange({partPos, endPos}); if (!Lexer()->TryEatTokenType(lexer::TokenType::PUNCTUATOR_PERIOD)) { break; @@ -1048,7 +1061,7 @@ ir::TypeNode *ETSParser::ParseTypeReference(TypeAnnotationParsingOptions *option auto *typeReference = AllocNode(typeRefPart, Allocator()); ES2PANDA_ASSERT(typeReference != nullptr); - typeReference->SetRange({startPos, Lexer()->GetToken().End()}); + typeReference->SetRange({startPos, typeRefPart->End()}); return typeReference; } @@ -1078,7 +1091,7 @@ ir::TypeNode *ETSParser::ParseBaseTypeReference(TypeAnnotationParsingOptions *op ir::TypeNode *ETSParser::ParseLiteralIdent(TypeAnnotationParsingOptions *options) { - if (Lexer()->GetToken().IsDefinableTypeName()) { + if (Lexer()->GetToken().IsPredefinedType()) { return GetTypeAnnotationOfPrimitiveType(Lexer()->GetToken().KeywordType(), options); } @@ -1682,7 +1695,7 @@ ir::Expression *ETSParser::ParseFunctionParameterAnnotations() auto annotations = ParseAnnotations(false); auto savePos = Lexer()->GetToken().Start(); ir::Expression *result = ParseFunctionParameter(); - if (result != nullptr) { + if (result != nullptr && !result->IsBrokenExpression()) { ApplyAnnotationsToNode(result, std::move(annotations), savePos); } return result; @@ -2163,8 +2176,7 @@ ir::TSTypeParameter *ETSParser::ParseTypeParameter([[maybe_unused]] TypeAnnotati ir::TypeNode *constraint = nullptr; if (Lexer()->GetToken().Type() == lexer::TokenType::KEYW_EXTENDS) { Lexer()->NextToken(); - TypeAnnotationParsingOptions newOptions = - TypeAnnotationParsingOptions::REPORT_ERROR | TypeAnnotationParsingOptions::IGNORE_FUNCTION_TYPE; + TypeAnnotationParsingOptions newOptions = TypeAnnotationParsingOptions::REPORT_ERROR; constraint = ParseTypeAnnotation(&newOptions); } diff --git a/ets2panda/parser/ETSparser.h b/ets2panda/parser/ETSparser.h index 4e528d725fbac7789f8d80ac635e6d349ebf2aaa..bd8fcb7b1cf5b5fb2e3d2ae40926037f3d34e8af 100644 --- a/ets2panda/parser/ETSparser.h +++ b/ets2panda/parser/ETSparser.h @@ -66,6 +66,9 @@ public: } [[nodiscard]] bool IsETSParser() const noexcept override; + + [[nodiscard]] bool IsValidIdentifierName(const lexer::Token &token) const noexcept override; + void AddDirectImportsToDirectExternalSources(const ArenaVector &directImportsFromMainSource, parser::Program *newProg) const; bool CheckDupAndReplace(Program *&oldProg, Program *newProg) const; diff --git a/ets2panda/parser/ETSparserClasses.cpp b/ets2panda/parser/ETSparserClasses.cpp index 5fd0dcff560fc3ee2b2aeab58057071df6c91409..c3b7ddde5c00aecf43f4e057f5c8ae3783ee6e68 100644 --- a/ets2panda/parser/ETSparserClasses.cpp +++ b/ets2panda/parser/ETSparserClasses.cpp @@ -223,6 +223,9 @@ std::tuple ETSParser::ParseClassMemberAccessModif accessFlag = ir::ModifierFlags::INTERNAL_PROTECTED; break; } + case lexer::TokenType::EOS: { // process invalid tokenType + return {ir::ModifierFlags::NONE, false, false}; + } default: { ES2PANDA_UNREACHABLE(); } @@ -510,7 +513,7 @@ void ETSParser::ParseClassFieldDefinition(ir::Identifier *fieldName, ir::Modifie } else if (typeAnnotation == nullptr) { typeAnnotation = AllocNode(Allocator()); typeAnnotation->SetRange({endLoc, endLoc}); - LogError(diagnostic::FIELD_TPYE_ANNOTATION_MISSING, {}, endLoc); + LogError(diagnostic::FIELD_TYPE_ANNOTATION_MISSING, {}, endLoc); } ValidateFieldModifiers(modifiers, optionalField, initializer, start); @@ -879,7 +882,7 @@ ir::Statement *ETSParser::ParseInterfaceDeclaration(bool isStatic) auto *declNode = ParseInterfaceBody(id, isStatic); ES2PANDA_ASSERT(declNode != nullptr); - declNode->SetRange({interfaceStart, Lexer()->GetToken().End()}); + declNode->SetRange({interfaceStart, declNode->Body()->Range().end}); return declNode; } @@ -1075,7 +1078,7 @@ ir::AstNode *ETSParser::ParseInterfaceField() if (optionalField) { field->AddModifier(ir::ModifierFlags::OPTIONAL); } - field->SetEnd(Lexer()->GetToken().End()); + field->SetEnd(typeAnnotation->End()); return field; } diff --git a/ets2panda/parser/ETSparserExpressions.cpp b/ets2panda/parser/ETSparserExpressions.cpp index 2a7e6dc5d023e344c3fecfb43dd648a0f3c7d2ba..b77682356af99c890c82779cd88ae63be8f3c095 100644 --- a/ets2panda/parser/ETSparserExpressions.cpp +++ b/ets2panda/parser/ETSparserExpressions.cpp @@ -65,7 +65,7 @@ ir::Expression *ETSParser::ParseFunctionParameterExpression(ir::AnnotatedExpress auto defaultValue = ParseExpression(); if (!paramIdent->IsIdentifier()) { LogError(diagnostic::IDENTIFIER_EXPECTED); - return nullptr; + return AllocBrokenExpression(Lexer()->GetToken().Loc()); } paramExpression = AllocNode(paramIdent->AsIdentifier(), defaultValue, Allocator()); @@ -132,16 +132,8 @@ ir::Expression *ETSParser::CreateUnaryExpressionFromArgument(ir::Expression *arg return returnExpr; } -// NOLINTNEXTLINE(google-default-arguments) -ir::Expression *ETSParser::ParseUnaryOrPrefixUpdateExpression(ExpressionParseFlags flags) +static bool IsLeftHandSideExpression(lexer::TokenType &operatorType, lexer::NextTokenFlags &tokenFlags) { - auto tokenFlags = lexer::NextTokenFlags::NONE; - lexer::TokenType operatorType = Lexer()->GetToken().Type(); - if (operatorType == lexer::TokenType::LITERAL_IDENT && - Lexer()->GetToken().KeywordType() == lexer::TokenType::KEYW_TYPEOF) { - operatorType = lexer::TokenType::KEYW_TYPEOF; - } - switch (operatorType) { case lexer::TokenType::PUNCTUATOR_MINUS: tokenFlags = lexer::NextTokenFlags::UNARY_MINUS; @@ -152,12 +144,20 @@ ir::Expression *ETSParser::ParseUnaryOrPrefixUpdateExpression(ExpressionParseFla case lexer::TokenType::PUNCTUATOR_TILDE: case lexer::TokenType::PUNCTUATOR_EXCLAMATION_MARK: case lexer::TokenType::KEYW_TYPEOF: - case lexer::TokenType::KEYW_AWAIT: { - break; - } - default: { - return ParseLeftHandSideExpression(flags); - } + case lexer::TokenType::KEYW_AWAIT: + return false; + default: + return true; + } +} + +// NOLINTNEXTLINE(google-default-arguments) +ir::Expression *ETSParser::ParseUnaryOrPrefixUpdateExpression(ExpressionParseFlags flags) +{ + auto tokenFlags = lexer::NextTokenFlags::NONE; + lexer::TokenType operatorType = Lexer()->GetToken().Type(); + if (IsLeftHandSideExpression(operatorType, tokenFlags)) { + return ParseLeftHandSideExpression(flags); } char32_t beginningChar = Lexer()->Lookahead(); @@ -365,14 +365,6 @@ ir::Expression *ETSParser::ParsePrimaryExpressionWithLiterals(ExpressionParseFla // NOLINTNEXTLINE(google-default-arguments) ir::Expression *ETSParser::ParsePrimaryExpression(ExpressionParseFlags flags) { - TrackRecursive trackRecursive(RecursiveCtx()); - if (!trackRecursive) { - LogError(diagnostic::DEEP_NESTING); - while (Lexer()->GetToken().Type() != lexer::TokenType::EOS) { - Lexer()->NextToken(); - } - return AllocBrokenExpression(Lexer()->GetToken().Loc()); - } switch (Lexer()->GetToken().Type()) { case lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS: { return ParseCoverParenthesizedExpressionAndArrowParameterList(flags); @@ -827,6 +819,14 @@ void ETSParser::ValidateInstanceOfExpression(ir::Expression *expr) // NOLINTNEXTLINE(google-default-arguments) ir::Expression *ETSParser::ParseExpression(ExpressionParseFlags flags) { + TrackRecursive trackRecursive(RecursiveCtx()); + if (!trackRecursive) { + LogError(diagnostic::DEEP_NESTING); + while (Lexer()->GetToken().Type() != lexer::TokenType::EOS) { + Lexer()->NextToken(); + } + return AllocBrokenExpression(Lexer()->GetToken().Loc()); + } ArenaVector annotations {Allocator()->Adapter()}; if (Lexer()->TryEatTokenType(lexer::TokenType::PUNCTUATOR_AT)) { annotations = ParseAnnotations(false); diff --git a/ets2panda/parser/ETSparserNamespaces.cpp b/ets2panda/parser/ETSparserNamespaces.cpp index 0bb77dc0c3acf9996d181b829af0ba306139d0b4..6909d6890faadefead0e136a000b713eff1530d7 100644 --- a/ets2panda/parser/ETSparserNamespaces.cpp +++ b/ets2panda/parser/ETSparserNamespaces.cpp @@ -58,20 +58,18 @@ ir::Statement *ETSParser::ParseNamespace(ir::ModifierFlags flags) if ((GetContext().Status() & ParserStatus::IN_NAMESPACE) == 0) { LogError(diagnostic::NAMESPACE_ONLY_TOP_OR_IN_NAMESPACE); } - auto start = Lexer()->GetToken().Start(); ir::ETSModule *ns = ParseNamespaceImp(flags); ES2PANDA_ASSERT(ns != nullptr); - ns->SetRange({start, Lexer()->GetToken().Start()}); return ns; } ir::ETSModule *ETSParser::ParseNamespaceImp(ir::ModifierFlags flags) { + auto nsStart = Lexer()->GetToken().Start(); Lexer()->NextToken(); auto *result = AllocNode(Allocator(), ArenaVector(Allocator()->Adapter()), ExpectIdentifier(), ir::ModuleFlag::NAMESPACE, GetContext().GetLanguage(), globalProgram_); - ES2PANDA_ASSERT(result != nullptr); ir::ETSModule *parent = result; ir::ETSModule *child = nullptr; while (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_PERIOD) { @@ -80,7 +78,6 @@ ir::ETSModule *ETSParser::ParseNamespaceImp(ir::ModifierFlags flags) child = AllocNode(Allocator(), ArenaVector(Allocator()->Adapter()), ExpectIdentifier(), ir::ModuleFlag::NAMESPACE, GetContext().GetLanguage(), globalProgram_); - ES2PANDA_ASSERT(child != nullptr); child->SetParent(parent); child->SetRange({start, Lexer()->GetToken().Start()}); child->AddModifier(ir::ModifierFlags::EXPORT); @@ -104,6 +101,7 @@ ir::ETSModule *ETSParser::ParseNamespaceImp(ir::ModifierFlags flags) auto st = ParseTopLevelStatement(); statements.emplace_back(st); } + auto nsEnd = Lexer()->GetToken().End(); Lexer()->NextToken(); if (child != nullptr) { child->SetNamespaceChainLastNode(); @@ -113,6 +111,7 @@ ir::ETSModule *ETSParser::ParseNamespaceImp(ir::ModifierFlags flags) result->SetStatements(std::move(statements)); } result->AddModifier(flags); + result->SetRange({nsStart, nsEnd}); return result; } diff --git a/ets2panda/parser/ETSparserTypes.cpp b/ets2panda/parser/ETSparserTypes.cpp index 209397b1dfd8a24599c3ead32b37462f3269c994..17dec93abcd601dd4d0f466bf723ef1e39a9dbbe 100644 --- a/ets2panda/parser/ETSparserTypes.cpp +++ b/ets2panda/parser/ETSparserTypes.cpp @@ -199,6 +199,7 @@ ir::TypeNode *ETSParser::ParseFunctionType(TypeAnnotationParsingOptions *options if (!Lexer()->TryEatTokenType(lexer::TokenType::PUNCTUATOR_ARROW)) { if (((*options) & TypeAnnotationParsingOptions::REPORT_ERROR) != 0) { LogExpectedToken(lexer::TokenType::PUNCTUATOR_ARROW); + return AllocBrokenType(Lexer()->GetToken().Loc()); } return nullptr; } @@ -436,6 +437,7 @@ std::pair ETSParser::GetTypeAnnotationFromParentheses( if (!Lexer()->TryEatTokenType(lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS)) { if (((*options) & TypeAnnotationParsingOptions::REPORT_ERROR) != 0) { LogExpectedToken(lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS); + return {AllocBrokenType(Lexer()->GetToken().Loc()), false}; } return {nullptr, false}; } diff --git a/ets2panda/parser/expressionParser.cpp b/ets2panda/parser/expressionParser.cpp index 89cd7fa0698f0e5de84cc37f8b57832665a8f888..42a86e69b4a5f3459dd0c0388bccba36c6b52b9e 100644 --- a/ets2panda/parser/expressionParser.cpp +++ b/ets2panda/parser/expressionParser.cpp @@ -606,13 +606,12 @@ ir::Expression *ParserImpl::ParseAssignmentExpression(ir::Expression *lhsExpress conditionalExpr->SetRange({lhsExpression->Start(), alternate->End()}); return conditionalExpr; } - case lexer::TokenType::PUNCTUATOR_ARROW: { + case lexer::TokenType::PUNCTUATOR_ARROW: if (lexer_->GetToken().NewLine()) { LogError(diagnostic::EXPECTED_EXPRESSION_GOT_ARROW); } return ParseArrowFunctionExpression(lhsExpression, nullptr, nullptr, false); - } case lexer::TokenType::PUNCTUATOR_SUBSTITUTION: { ValidateAssignmentTarget(flags, lhsExpression); @@ -620,17 +619,12 @@ ir::Expression *ParserImpl::ParseAssignmentExpression(ir::Expression *lhsExpress ir::Expression *assignmentExpression = ParseExpression(CarryPatternFlags(flags)); return CreateBinaryAssignmentExpression(assignmentExpression, lhsExpression, tokenType); } - case lexer::TokenType::KEYW_AS: { + case lexer::TokenType::KEYW_AS: if (auto asExpression = ParsePotentialAsExpression(lhsExpression); asExpression != nullptr) { return ParseAssignmentExpression(asExpression); } break; - } default: { - if (tokenType == lexer::TokenType::LITERAL_IDENT && - lexer_->GetToken().KeywordType() == lexer::TokenType::KEYW_INSTANCEOF) { - tokenType = lexer::TokenType::KEYW_INSTANCEOF; - } auto expression = ParseAssignmentBinaryExpression(tokenType, lhsExpression, flags); if (expression == nullptr) { expression = ParseAssignmentEqualExpression(tokenType, lhsExpression, flags); @@ -683,7 +677,7 @@ ir::Expression *ParserImpl::ParseAssignmentBinaryExpression(const lexer::TokenTy case lexer::TokenType::PUNCTUATOR_MOD: case lexer::TokenType::KEYW_INSTANCEOF: case lexer::TokenType::PUNCTUATOR_EXPONENTIATION: { - return ParseAssignmentExpression(ParseBinaryExpression(lhsExpression, tokenType)); + return ParseAssignmentExpression(ParseBinaryExpression(lhsExpression)); } default: break; @@ -1331,8 +1325,9 @@ static ir::Expression *FindAndAmendChildExpression(ir::Expression *expression, c return shouldBeAmended ? expression : parentExpression; } -ir::Expression *ParserImpl::ParseBinaryExpression(ir::Expression *left, const lexer::TokenType operatorType) +ir::Expression *ParserImpl::ParseBinaryExpression(ir::Expression *left, ExpressionParseFlags flags) { + lexer::TokenType operatorType = lexer_->GetToken().Type(); ES2PANDA_ASSERT(lexer::Token::IsBinaryToken(operatorType)); if (operatorType == lexer::TokenType::PUNCTUATOR_EXPONENTIATION) { @@ -1343,6 +1338,11 @@ ir::Expression *ParserImpl::ParseBinaryExpression(ir::Expression *left, const le lexer_->NextToken(); + ExpressionParseFlags newFlags = ExpressionParseFlags::DISALLOW_YIELD; + if ((operatorType == lexer::TokenType::KEYW_INSTANCEOF) || ((flags & ExpressionParseFlags::INSTANCEOF) != 0)) { + newFlags |= ExpressionParseFlags::INSTANCEOF; + } + ir::Expression *rightExpr = ParseExpressionOrTypeAnnotation(operatorType, ExpressionParseFlags::DISALLOW_YIELD); ir::ConditionalExpression *conditionalExpr = nullptr; if (rightExpr->IsConditionalExpression() && !rightExpr->IsGrouped()) { @@ -1498,6 +1498,7 @@ ir::Expression *ParserImpl::ParseOptionalChain(ir::Expression *leftSideExpr) if (tokenType == lexer::TokenType::PUNCTUATOR_BACK_TICK || lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_BACK_TICK) { LogError(diagnostic::TAGGED_TEMPLATE_LITERALS_IN_OPTIONALCHAIN); + return AllocBrokenExpression(lexer_->GetToken().Loc()); } return returnExpression; diff --git a/ets2panda/parser/parserImpl.cpp b/ets2panda/parser/parserImpl.cpp index 409e4ef4f6243cd88770cfcd40abca7e363f13dd..b9be71ce60be6a99817c0cc0315ab8f11f87e1a9 100644 --- a/ets2panda/parser/parserImpl.cpp +++ b/ets2panda/parser/parserImpl.cpp @@ -1334,8 +1334,7 @@ ir::Identifier *ParserImpl::ExpectIdentifier([[maybe_unused]] bool isReference, } auto const &tokenStart = token.Start(); - if (token.IsPredefinedType() && !util::Helpers::IsStdLib(program_) && - ((options & TypeAnnotationParsingOptions::ADD_TYPE_PARAMETER_BINDING) == 0)) { + if (!IsValidIdentifierName(token) && ((options & TypeAnnotationParsingOptions::ADD_TYPE_PARAMETER_BINDING) == 0)) { LogError(diagnostic::PREDEFINED_TYPE_AS_IDENTIFIER, {token.Ident()}, tokenStart); lexer_->NextToken(); return AllocBrokenExpression(tokenStart); diff --git a/ets2panda/parser/parserImpl.h b/ets2panda/parser/parserImpl.h index ac2c58b6862cc2a0bc2a7a9404dbf072f85d75a6..83d83d5907268532d4e6f281255c8d72962971c9 100644 --- a/ets2panda/parser/parserImpl.h +++ b/ets2panda/parser/parserImpl.h @@ -84,6 +84,11 @@ public: return false; } + [[nodiscard]] virtual bool IsValidIdentifierName([[maybe_unused]] const lexer::Token &token) const noexcept + { + return true; + } + ETSParser *AsETSParser() { ES2PANDA_ASSERT(IsETSParser()); @@ -143,7 +148,8 @@ protected: // ExpressionParser.Cpp ir::Expression *ParseKeywordExpression(); - ir::Expression *ParseBinaryExpression(ir::Expression *left, const lexer::TokenType operatorType); + ir::Expression *ParseBinaryExpression(ir::Expression *left, + ExpressionParseFlags flags = ExpressionParseFlags::NO_OPTS); void ValidateUpdateExpression(ir::Expression *returnExpression, bool isChainExpression); ir::Expression *ParseMemberExpression(bool ignoreCallExpression = false, ExpressionParseFlags flags = ExpressionParseFlags::NO_OPTS); diff --git a/ets2panda/public/es2panda_lib.cpp b/ets2panda/public/es2panda_lib.cpp index dbefcc58ab33198970af69b3b4110cc2b629da34..f9295c138b39925fae9abee5f58d562e4e0266a8 100644 --- a/ets2panda/public/es2panda_lib.cpp +++ b/ets2panda/public/es2panda_lib.cpp @@ -1269,7 +1269,7 @@ extern "C" es2panda_AstNode **AllDeclarationsByNameFromProgram([[maybe_unused]] extern "C" __attribute__((unused)) int GenerateTsDeclarationsFromContext(es2panda_Context *ctx, const char *outputDeclEts, const char *outputEts, bool exportAll, - bool isolated) + bool isolated, const char *recordFile) { auto *ctxImpl = reinterpret_cast(ctx); auto *checker = reinterpret_cast(ctxImpl->GetChecker()); @@ -1279,6 +1279,7 @@ extern "C" __attribute__((unused)) int GenerateTsDeclarationsFromContext(es2pand declgenOptions.outputDeclEts = outputDeclEts ? outputDeclEts : ""; declgenOptions.outputEts = outputEts ? outputEts : ""; declgenOptions.isolated = isolated; + declgenOptions.recordFile = recordFile ? recordFile : ""; return ark::es2panda::declgen_ets2ts::GenerateTsDeclarations(checker, ctxImpl->parserProgram, declgenOptions) ? 0 : 1; diff --git a/ets2panda/public/es2panda_lib.h b/ets2panda/public/es2panda_lib.h index d2cb21858e2b3822b4f2a791d25edf88f323fcd2..945578067875d79516a713f9166df6d4274a5089 100644 --- a/ets2panda/public/es2panda_lib.h +++ b/ets2panda/public/es2panda_lib.h @@ -272,7 +272,8 @@ struct CAPI_EXPORT es2panda_Impl { const char *name, size_t *declsLen); int (*GenerateTsDeclarationsFromContext)(es2panda_Context *context, const char *outputDeclEts, - const char *outputEts, bool exportAll, bool isolated); + const char *outputEts, bool exportAll, bool isolated, + const char *recordFile); void (*InsertETSImportDeclarationAndParse)(es2panda_Context *context, es2panda_Program *program, es2panda_AstNode *importDeclaration); int (*GenerateStaticDeclarationsFromContext)(es2panda_Context *context, const char *outputPath); diff --git a/ets2panda/scripts/arkui.properties b/ets2panda/scripts/arkui.properties index 6abfd539b78839f80aab5a12b3dce6d8f9261a3d..0f1ace41c58ce40f7535a1d7545a873559ba43a8 100644 --- a/ets2panda/scripts/arkui.properties +++ b/ets2panda/scripts/arkui.properties @@ -1,3 +1,3 @@ ARKUI_DEV_REPO=https://gitee.com/rri_opensource/koala_projects.git -ARKUI_DEV_BRANCH=panda_rev_9-ani-reorder-class-bind-static +ARKUI_DEV_BRANCH=panda_rev_9-decl_record_0702 ARKUI_DEST=koala-sig diff --git a/ets2panda/test/ast/compiler/ets/IsValidRestArgument.ets b/ets2panda/test/ast/compiler/ets/IsValidRestArgument.ets new file mode 100755 index 0000000000000000000000000000000000000000..f5bc78e6d615240a3622f2d826156ced55b26ee5 --- /dev/null +++ b/ets2panda/test/ast/compiler/ets/IsValidRestArgument.ets @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +class A {} +class B {} + +class C { + foo(...p: [A, B]) {} +} + +(new C()).foo({v.r2} +) + +/* @@? 23:1 Error TypeError: Expected 2 arguments, got 1. */ +/* @@? 23:1 Error TypeError: No matching call signature for foo(...) */ +/* @@? 23:15 Error TypeError: need to specify target type for class composite */ +/* @@? 23:17 Error SyntaxError: Unexpected token, expected ':'. */ diff --git a/ets2panda/test/ast/compiler/ets/ambient_function.ets b/ets2panda/test/ast/compiler/ets/ambient_function.ets new file mode 100644 index 0000000000000000000000000000000000000000..7f20bea7e3be6d1b0e1abfbbdf848db4ecef2343 --- /dev/null +++ b/ets2panda/test/ast/compiler/ets/ambient_function.ets @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +let a1: [number] | null = null; +let a2: [number] = [0x00000001]; + +declare function capset(...p: [number]): void; + +function capset(...p: [number]) {} + +function main() { + capset(...(a1 ?? a2)); +} + +/* @@? 21:1 Error TypeError: Method declaration `capset` must all ambient or non-ambient */ +/* @@? 24:3 Error TypeError: This expression is not callable. */ diff --git a/ets2panda/test/ast/compiler/ets/ambient_indexer_multiple_dummy_nodes.ets b/ets2panda/test/ast/compiler/ets/ambient_indexer_multiple_dummy_nodes.ets new file mode 100644 index 0000000000000000000000000000000000000000..139fe4e7de49136400150be3bf3027041e294ed2 --- /dev/null +++ b/ets2panda/test/ast/compiler/ets/ambient_indexer_multiple_dummy_nodes.ets @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +//// [a.tsx] +declare const React: object; + +declare namespace JSX { + interface IntrinsicElements { + [k: number]: object | undefined; + [k: number]: object | undefined; + } +} + +/* @@? 20:30 Error TypeError: Only one index signature is allowed in a class or interface. */ diff --git a/ets2panda/test/ast/compiler/ets/annotation_tests/annotation_and_class_with_same_name.ets b/ets2panda/test/ast/compiler/ets/annotation_tests/annotation_and_class_with_same_name.ets new file mode 100644 index 0000000000000000000000000000000000000000..28d6784792ee058afcb2e5e01cb887efc981acf4 --- /dev/null +++ b/ets2panda/test/ast/compiler/ets/annotation_tests/annotation_and_class_with_same_name.ets @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +class A {} + +@interface A { } + +/* @@? 18:12 Error TypeError: Variable 'A' has already been declared. */ diff --git a/ets2panda/test/ast/compiler/ets/annotation_tests/broken_annotation_usage.ets b/ets2panda/test/ast/compiler/ets/annotation_tests/broken_annotation_usage.ets new file mode 100644 index 0000000000000000000000000000000000000000..e9828b1b8e2e82ccf0d4a43c1296f149cf07863f --- /dev/null +++ b/ets2panda/test/ast/compiler/ets/annotation_tests/broken_annotation_usage.ets @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@ns.Anno<()=>void> +class A{} + +/* @@? 16:2 Error TypeError: Cannot find type 'ns'. */ +/* @@? 16:5 Error TypeError: 'Anno' type does not exist. */ +/* @@? 16:5 Error TypeError: 'Anno' is not an annotation. */ \ No newline at end of file diff --git a/ets2panda/test/ast/compiler/ets/arrow_function_call_as_record_property_key.ets b/ets2panda/test/ast/compiler/ets/arrow_function_call_as_record_property_key.ets index 4dc414ecae8d55007635a4f124f47655944fa159..80a265b50a267828ce0057daf79d4496e4347999 100644 --- a/ets2panda/test/ast/compiler/ets/arrow_function_call_as_record_property_key.ets +++ b/ets2panda/test/ast/compiler/ets/arrow_function_call_as_record_property_key.ets @@ -45,7 +45,7 @@ const b: Record number> = { /* @@? 23:6 Error TypeError: Indexed access is not supported for such expression type. */ /* @@? 24:20 Error TypeError: Wrong operand type for unary expression */ /* @@? 24:32 Error SyntaxError: Unexpected token ':'. */ -/* @@? 24:35 Error TypeError: Unresolved reference y */ +/* @@? 24:32 Error TypeError: This expression is not callable. */ /* @@? 24:36 Error SyntaxError: Unexpected token ':'. */ /* @@? 24:36 Error SyntaxError: Unexpected token, expected ',' or ')'. */ /* @@? 24:38 Error SyntaxError: Unexpected token 'string'. */ @@ -54,4 +54,5 @@ const b: Record number> = { /* @@? 24:45 Error SyntaxError: Unexpected token ':'. */ /* @@? 24:46 Error SyntaxError: Unexpected token 'number'. */ /* @@? 24:46 Error TypeError: The type of parameter 'number' cannot be inferred */ +/* @@? 24:56 Error TypeError: Unresolved reference y */ /* @@? 25:1 Error SyntaxError: Unexpected token '}'. */ diff --git a/ets2panda/test/ast/compiler/ets/async_with_lambda.ets b/ets2panda/test/ast/compiler/ets/async_with_lambda.ets new file mode 100644 index 0000000000000000000000000000000000000000..f4dadb97d1d493aea22860f47b173b7202055a90 --- /dev/null +++ b/ets2panda/test/ast/compiler/ets/async_with_lambda.ets @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +function foo(a: (arg: T) => Promise): Promise { + return (async (): Promise => { + const result = await Promise.resolve(undefined); + if (result !== undefined) { + await a(result); + } else { + await a(undefined as T); + } + return undefined; + })(); +} \ No newline at end of file diff --git a/ets2panda/test/ast/compiler/ets/block_namespace_interface_name_conflict.ets b/ets2panda/test/ast/compiler/ets/block_namespace_interface_name_conflict.ets new file mode 100644 index 0000000000000000000000000000000000000000..545e1aa5f40daba7ddea7cf183439d762eaa679b --- /dev/null +++ b/ets2panda/test/ast/compiler/ets/block_namespace_interface_name_conflict.ets @@ -0,0 +1,26 @@ + +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +{ + interface A { + } + namespace A { + } +} + +/* @@? 20:5 Error SyntaxError: Namespace is allowed only at the top level or inside a namespace. */ +/* @@? 20:15 Error TypeError: Variable 'A' has already been declared. */ +/* @@? 20:15 Error TypeError: Merging declarations is not supported, please keep all definitions of classes, interfaces and enums compact in the codebase! */ diff --git a/ets2panda/test/ast/compiler/ets/class_cyclic_constructor.ets b/ets2panda/test/ast/compiler/ets/class_cyclic_constructor.ets index 14dfc9d81c85028a2ccc841b18404c18f727f3c7..d495c7c9514e0254f84b57b15d5a7a724ba318b6 100644 --- a/ets2panda/test/ast/compiler/ets/class_cyclic_constructor.ets +++ b/ets2panda/test/ast/compiler/ets/class_cyclic_constructor.ets @@ -42,9 +42,8 @@ class A { /* @@? 24:34 Error SyntaxError: Unexpected token '='. */ /* @@? 24:36 Error SyntaxError: Unexpected token '{'. */ /* @@? 24:38 Error TypeError: Unresolved reference caches */ -/* @@? 25:21 Error TypeError: Expected 0 arguments, got 1. */ +/* @@? 25:21 Error TypeError: The function or method being called needs a rest parameter to accept arguments passed via the spread operator. */ /* @@? 25:21 Error TypeError: No matching construct signature for class_cyclic_constructor.A(...tuple) */ -/* @@? 25:27 Error TypeError: Spread argument cannot be passed for ordinary parameter. */ /* @@? 25:30 Error TypeError: Unresolved reference tuple */ /* @@? 26:31 Error TypeError: Property 'bar' does not exist on type 'A' */ /* @@? 27:5 Error SyntaxError: Unexpected token ')'. */ diff --git a/ets2panda/test/ast/compiler/ets/fuzzingtest1.ets b/ets2panda/test/ast/compiler/ets/fuzzingtest1.ets index 32a58853e998c5da757dd44aa0905a3cf9a08223..08bf93ddf630f27c5accb8a58f2d0d4cbd8ba160 100644 --- a/ets2panda/test/ast/compiler/ets/fuzzingtest1.ets +++ b/ets2panda/test/ast/compiler/ets/fuzzingtest1.ets @@ -16,7 +16,7 @@ // the test case is from fuzzer. /* @@ label */fuzzz./* @@ label2 */@@/* @@ label3 */@@ -/* @@@ label Error TypeError: Unresolved reference fuzzz */ -/* @@@ label2 Error SyntaxError: There is no any node to insert at the placeholder position. */ -/* @@@ label2 Error SyntaxError: Identifier expected, got '@@'. */ -/* @@@ label3 Error SyntaxError: Unexpected token '@@'. */ \ No newline at end of file +/* @@? 17:15 Error TypeError: Unresolved reference fuzzz */ +/* @@? 17:36 Error SyntaxError: There is no any node to insert at the placeholder position. */ +/* @@? 17:36 Error SyntaxError: Unexpected token '@@'. */ +/* @@? 17:53 Error SyntaxError: Unexpected token '@@'. */ diff --git a/ets2panda/test/ast/compiler/ets/initializer_block_namesapce04.ets b/ets2panda/test/ast/compiler/ets/initializer_block_namesapce04.ets new file mode 100644 index 0000000000000000000000000000000000000000..630cd8cdfcbf54c2ed70e538bf17b5be3ae95718 --- /dev/null +++ b/ets2panda/test/ast/compiler/ets/initializer_block_namesapce04.ets @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export namespace xml { + static a: number = 1; + + static { + } + + static { + } +} + +/* @@? 17:3 Error SyntaxError: Unexpected token 'static'. */ +/* @@? 17:10 Error SyntaxError: Unexpected token 'a'. */ +/* @@? 17:13 Error SyntaxError: Label must be followed by a loop statement. */ +/* @@? 17:13 Error TypeError: Type name 'number' used in the wrong context */ +/* @@? 20:3 Error SyntaxError: Only one static block is allowed in one namespace or class. */ diff --git a/ets2panda/test/ast/compiler/ets/invalid_access_modifier.ets b/ets2panda/test/ast/compiler/ets/invalid_access_modifier.ets new file mode 100644 index 0000000000000000000000000000000000000000..14f2dbbba75c0962f18f779e8cfb20e5f98ccfb7 --- /dev/null +++ b/ets2panda/test/ast/compiler/ets/invalid_access_modifier.ets @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +class A{ + private \\\\foo(){} +} + +/* @@? 17:13 Error SyntaxError: Invalid character. */ +/* @@? 17:13 Error SyntaxError: Access modifier must precede field and method modifiers. */ +/* @@? 17:14 Error SyntaxError: Invalid character. */ +/* @@? 17:14 Error SyntaxError: Access modifier must precede field and method modifiers. */ +/* @@? 17:15 Error SyntaxError: Invalid character. */ +/* @@? 17:15 Error SyntaxError: Access modifier must precede field and method modifiers. */ +/* @@? 17:16 Error SyntaxError: Invalid character. */ +/* @@? 17:16 Error SyntaxError: Access modifier must precede field and method modifiers. */ diff --git a/ets2panda/test/ast/compiler/ets/method_error_identifier.ets b/ets2panda/test/ast/compiler/ets/method_error_identifier.ets new file mode 100644 index 0000000000000000000000000000000000000000..4ccc87265748fcb23d0d70e5fcd589d70efe5b7c --- /dev/null +++ b/ets2panda/test/ast/compiler/ets/method_error_identifier.ets @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +void function () { }; + +class BindFuncExpr { + let callback1 = function () { } + callback1 = callback1 || function () { } +} + +/* @@? 16:1 Error SyntaxError: Unexpected token 'void'. */ +/* @@? 16:6 Error SyntaxError: Unexpected token 'function'. */ +/* @@? 16:15 Error SyntaxError: Unexpected token, expected an identifier. */ +/* @@? 19:5 Error SyntaxError: Unexpected token 'let'. */ +/* @@? 19:21 Error SyntaxError: Function expressions are not supported, use arrow functions instead */ +/* @@? 20:5 Error TypeError: Variable 'callback1' has already been declared. */ +/* @@? 20:17 Error TypeError: Unresolved reference callback1 */ +/* @@? 20:30 Error SyntaxError: Function expressions are not supported, use arrow functions instead */ diff --git a/ets2panda/test/ast/compiler/ets/nagative_trailingLambda_abort.ets b/ets2panda/test/ast/compiler/ets/nagative_trailingLambda_abort.ets new file mode 100644 index 0000000000000000000000000000000000000000..ff97814945005b285771a50d4e060519a5796cb4 --- /dev/null +++ b/ets2panda/test/ast/compiler/ets/nagative_trailingLambda_abort.ets @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +*22Array() { + let callback = (arrElem: JSValue) => { + if (arrElem as string !== expectedArr[idx]) {} + console.log(`fasdfasdfafd:`); + console.log(`arrElem = ${arrElem}, expectedArr[${idx}] = ${expan xxxxse istribumptyArr agreed ) + itations undeectedArr[idx]}`); + result = false; + return; + } + result = true; + idx++; + 222222??222.27?22dXX2222 + +/* @@? 16:1 Error SyntaxError: Unexpected token '*'. */ +/* @@? 16:2 Error SyntaxError: Unexpected token '22'. */ +/* @@? 16:4 Error SyntaxError: Unexpected token 'Array'. */ +/* @@? 20:74 Error SyntaxError: Expected '}', got 'identification literal'. */ +/* @@? 27:22 Error SyntaxError: Unexpected token. */ +/* @@? 36:1 Error SyntaxError: Expected '}', got 'end of stream'. */ + diff --git a/ets2panda/test/ast/compiler/ets/package_namespace_static_block_multi/main_test.ets b/ets2panda/test/ast/compiler/ets/package_namespace_static_block_multi/main_test.ets index c0790ae4e613411c2095e420376f8d9cff46b878..9973e90217e072f4113e48d0fa682be2ddb01dc6 100644 --- a/ets2panda/test/ast/compiler/ets/package_namespace_static_block_multi/main_test.ets +++ b/ets2panda/test/ast/compiler/ets/package_namespace_static_block_multi/main_test.ets @@ -15,4 +15,4 @@ import {NS} from "./package" -/* @@? P2_01.ets:21:9 Error SyntaxError: Only one static block is allowed in one namespace or class. */ \ No newline at end of file +/* @@? P2_01.ets:22:5 Error SyntaxError: Only one static block is allowed in one namespace or class. */ \ No newline at end of file diff --git a/ets2panda/test/ast/compiler/ets/package_namespace_static_block_multi/package/P2_01.ets b/ets2panda/test/ast/compiler/ets/package_namespace_static_block_multi/package/P2_01.ets index bd3c4a657f6dffe284672e3feaae36f189d30da9..a61fb5e005e7ba1b10f593c7a0ec49d482673ad1 100644 --- a/ets2panda/test/ast/compiler/ets/package_namespace_static_block_multi/package/P2_01.ets +++ b/ets2panda/test/ast/compiler/ets/package_namespace_static_block_multi/package/P2_01.ets @@ -22,4 +22,4 @@ export namespace NS { } } -/* @@? P2_01.ets:21:9 Error SyntaxError: Only one static block is allowed in one namespace or class. */ +/* @@? P2_01.ets:22:5 Error SyntaxError: Only one static block is allowed in one namespace or class. */ diff --git a/ets2panda/test/ast/compiler/ets/package_namespace_static_block_multi/package/P2_02.ets b/ets2panda/test/ast/compiler/ets/package_namespace_static_block_multi/package/P2_02.ets index 2a88481c53ef9b343187034be105013c855851a9..8d0dd864534d22e2eeb5ea7783580aecb005f1f3 100644 --- a/ets2panda/test/ast/compiler/ets/package_namespace_static_block_multi/package/P2_02.ets +++ b/ets2panda/test/ast/compiler/ets/package_namespace_static_block_multi/package/P2_02.ets @@ -21,4 +21,4 @@ export namespace NS { } } -/* @@? P2_02.ets:20:9 Error SyntaxError: Only one static block is allowed in one namespace or class. */ +/* @@? P2_02.ets:21:5 Error SyntaxError: Only one static block is allowed in one namespace or class. */ diff --git a/ets2panda/test/ast/compiler/ets/returnTypeAnnotation_typeParams_nullptr.ets b/ets2panda/test/ast/compiler/ets/returnTypeAnnotation_typeParams_nullptr.ets index 6308a2528182ffca7f69fce93dbb8f1a8c72e2d1..64f4958d341625ff8da0c28b31f822b54cfacbda 100755 --- a/ets2panda/test/ast/compiler/ets/returnTypeAnnotation_typeParams_nullptr.ets +++ b/ets2panda/test/ast/compiler/ets/returnTypeAnnotation_typeParams_nullptr.ets @@ -19,7 +19,5 @@ class Arr { /* @@? 16:11 Error TypeError: Only abstract or native methods can't have body. */ /* @@? 16:24 Error TypeError: FixedArray must have only one type parameter. */ /* @@? 16:37 Error SyntaxError: Unexpected token, expected '=>'. */ -/* @@? 16:37 Error SyntaxError: Unexpected token, expected '('. */ -/* @@? 16:37 Error SyntaxError: Invalid Type. */ /* @@? 16:37 Error SyntaxError: Unexpected token, expected '>'. */ /* @@? 16:37 Error SyntaxError: Unexpected token '>'. */ \ No newline at end of file diff --git a/ets2panda/test/ast/compiler/ets/same_assembly_overload/overload_signature_neg_2.ets b/ets2panda/test/ast/compiler/ets/same_assembly_overload/overload_signature_neg_2.ets index 27671485ba3f5d7637c94c0fb5767e439e97f762..18bdf1ec9ef90f3ca5698970adb7c7e35c47de6d 100644 --- a/ets2panda/test/ast/compiler/ets/same_assembly_overload/overload_signature_neg_2.ets +++ b/ets2panda/test/ast/compiler/ets/same_assembly_overload/overload_signature_neg_2.ets @@ -18,4 +18,4 @@ export class A {} export declare function foo(a:A):void export function foo(a:A):number {} -/* @@? 19:17 Error TypeError: Function with a non void return type must return a value. */ +/* @@? 19:8 Error TypeError: Method declaration `foo` must all ambient or non-ambient */ diff --git a/ets2panda/test/ast/compiler/ets/spread_record.ets b/ets2panda/test/ast/compiler/ets/spread_record.ets index ec7aa3a9dc41272e5e078e7d845d45ffaddeb229..f9782ab9747c4499a218df40d74a3a8ebcc80400 100644 --- a/ets2panda/test/ast/compiler/ets/spread_record.ets +++ b/ets2panda/test/ast/compiler/ets/spread_record.ets @@ -20,15 +20,12 @@ let r3: Record = { ...r1, ...r2 } console.log(...r3) // crash - Issue #26773 -/* @@? 17:1 Error TypeError: Expected 0 arguments, got 1. */ +/* @@? 17:1 Error TypeError: The function or method being called needs a rest parameter to accept arguments passed via the spread operator. */ /* @@? 17:1 Error TypeError: No matching call signature for log(...r1) */ -/* @@? 17:13 Error TypeError: Spread argument cannot be passed for ordinary parameter. */ +/* @@? 17:1 Error TypeError: The function or method being called needs a rest parameter to accept arguments passed via the spread operator. */ /* @@? 17:13 Error TypeError: Type 'Record' is not compatible with rest parameter type 'Array' at index 1 */ /* @@? 17:13 Error TypeError: Spread expression can be applied only to array or tuple type, but 'Record' is provided */ -/* @@? 17:13 Error TypeError: Spread argument cannot be passed for ordinary parameter. */ /* @@? 20:1 Error TypeError: No matching call signature for log(...r3) */ -/* @@? 20:1 Error TypeError: Expected 0 arguments, got 1. */ -/* @@? 20:13 Error TypeError: Spread argument cannot be passed for ordinary parameter. */ +/* @@? 20:1 Error TypeError: The function or method being called needs a rest parameter to accept arguments passed via the spread operator. */ /* @@? 20:13 Error TypeError: Type 'Record' is not compatible with rest parameter type 'Array' at index 1 */ /* @@? 20:13 Error TypeError: Spread expression can be applied only to array or tuple type, but 'Record' is provided */ -/* @@? 20:13 Error TypeError: Spread argument cannot be passed for ordinary parameter. */ diff --git a/ets2panda/test/ast/parser/ets/FixedArray/functionTypeParam_neg2.ets b/ets2panda/test/ast/parser/ets/FixedArray/functionTypeParam_neg2.ets index 49a08ff7e5c657fe249e7bb2090fec0104ec94d9..3c8a14a8176d96137d9ed63cfa37fdb31bdff8a6 100644 --- a/ets2panda/test/ast/parser/ets/FixedArray/functionTypeParam_neg2.ets +++ b/ets2panda/test/ast/parser/ets/FixedArray/functionTypeParam_neg2.ets @@ -26,11 +26,16 @@ declare class Environment { /* @@? 17:23 Error SyntaxError: Using object literals to declare types in place is not supported. Please declare types and interfaces explicitly! */ /* @@? 18:25 Error SyntaxError: Using object literals to declare types in place is not supported. Please declare types and interfaces explicitly! */ /* @@? 19:25 Error SyntaxError: Invalid Type. */ +/* @@? 21:16 Error TypeError: Native and Declare methods should have explicit return type. */ /* @@? 21:20 Error SyntaxError: Invalid Type. */ /* @@? 21:28 Error SyntaxError: Invalid Type. */ /* @@? 21:37 Error SyntaxError: Unexpected token, expected '=>'. */ -/* @@? 21:37 Error SyntaxError: Unexpected token, expected '('. */ -/* @@? 21:37 Error SyntaxError: Invalid Type. */ +/* @@? 21:39 Error SyntaxError: Unexpected token '--'. */ +/* @@? 21:41 Error SyntaxError: Unexpected token '-'. */ +/* @@? 21:42 Error SyntaxError: Unexpected token ','. */ +/* @@? 21:43 Error SyntaxError: Unexpected token ')'. */ +/* @@? 21:44 Error SyntaxError: Unexpected token ':'. */ +/* @@? 21:45 Error SyntaxError: void is a predefined type, cannot be used as an identifier */ /* @@? 22:20 Error SyntaxError: Invalid Type. */ /* @@? 23:25 Error SyntaxError: Using object literals to declare types in place is not supported. Please declare types and interfaces explicitly! */ /* @@? 23:36 Error SyntaxError: Unexpected token ','. */ diff --git a/ets2panda/test/ast/parser/ets/FixedArray/unexpected_token_38.ets b/ets2panda/test/ast/parser/ets/FixedArray/unexpected_token_38.ets index f46c984335d7ec8f5e7826f18f5c08ae13da2d26..311e9b269334ace1bfb51c801d559aebe42d6ec4 100644 --- a/ets2panda/test/ast/parser/ets/FixedArray/unexpected_token_38.ets +++ b/ets2panda/test/ast/parser/ets/FixedArray/unexpected_token_38.ets @@ -25,10 +25,8 @@ let func3: (f: (a: number, b: string) => FixedArray): FixedArray /* @@? 19:8 Error TypeError: 'void' used as type annotation. */ /* @@? 22:61 Error SyntaxError: Unexpected token, expected '=>'. */ -/* @@? 22:61 Error SyntaxError: Unexpected token, expected '('. */ -/* @@? 22:61 Error SyntaxError: Invalid Type. */ -/* @@? 22:61 Error SyntaxError: Unexpected token '('. */ +/* @@? 22:61 Error SyntaxError: Unexpected token '=>'. */ +/* @@? 22:63 Error SyntaxError: Unexpected token 'FixedArray'. */ /* @@? 22:63 Error TypeError: Unresolved reference FixedArray */ /* @@? 22:82 Error SyntaxError: Unexpected token, expected '('. */ /* @@? 22:116 Error SyntaxError: Unexpected token, expected ',' or ')'. */ -/* @@? 22:116 Error SyntaxError: Unexpected token, expected ')'. */ diff --git a/ets2panda/test/ast/parser/ets/InvalidParserImpl.ets b/ets2panda/test/ast/parser/ets/InvalidParserImpl.ets index feca6d13fffc6c08f84198aede31717936a7c022..899de53972fe0f73745efbef8c0b7f314b523183 100644 --- a/ets2panda/test/ast/parser/ets/InvalidParserImpl.ets +++ b/ets2panda/test/ast/parser/ets/InvalidParserImpl.ets @@ -25,6 +25,4 @@ class int {} /* @@? 17:12 Error TypeError: Getter must return a value */ /* @@? 18:5 Error SyntaxError: Getter must not have formal parameters. */ /* @@? 19:1 Error SyntaxError: Setter must have exactly one formal parameter. */ -/* @@? 23:7 Error SyntaxError: Cannot be used as user-defined type. */ -/* @@? 23:7 Error SyntaxError: Hard keyword 'int' cannot be used as identifier */ -/* @@? 23:7 Error SyntaxError: Identifier expected, got 'int'. */ +/* @@? 23:7 Error SyntaxError: int is a predefined type, cannot be used as an identifier */ diff --git a/ets2panda/test/ast/parser/ets/MultipleFunctionErrors.ets b/ets2panda/test/ast/parser/ets/MultipleFunctionErrors.ets index e4ac2d35782c9a20b94cc544bb90aeb0ba88c1f0..5db33dcca04e3611534c95b28b872d732fbd7ca9 100644 --- a/ets2panda/test/ast/parser/ets/MultipleFunctionErrors.ets +++ b/ets2panda/test/ast/parser/ets/MultipleFunctionErrors.ets @@ -22,7 +22,6 @@ function /* @@ label1 */(): /* @@ label2 */{ /* @@@ label Error SyntaxError: Unexpected token, expected an identifier. */ /* @@@ label1 Error SyntaxError: Unexpected token, expected an identifier. */ -/* @@@ label1 Error TypeError: Only abstract or native methods can't have body. */ /* @@@ label2 Error SyntaxError: Using object literals to declare types in place is not supported. Please declare types and interfaces explicitly! */ /* @@@ label3 Error SyntaxError: Unexpected token 'return'. */ /* @@@ label4 Error SyntaxError: Unexpected token '77'. */ diff --git a/ets2panda/test/ast/parser/ets/ambient_indexer_3.ets b/ets2panda/test/ast/parser/ets/ambient_indexer_3.ets index efd4f356c643e8cf69cad05f4cdb27638295dc55..4f06b3693e3fbd2a9b19aac40a6f7a13b882b374 100644 --- a/ets2panda/test/ast/parser/ets/ambient_indexer_3.ets +++ b/ets2panda/test/ast/parser/ets/ambient_indexer_3.ets @@ -29,4 +29,4 @@ function main() { /* @@? 17:20 Error SyntaxError: Return type of index signature from exported class or interface need to be identifier. */ /* @@? 17:20 Error SyntaxError: Unexpected token ']'. */ /* @@? 17:22 Error SyntaxError: Unexpected token ':'. */ -/* @@? 17:30 Error SyntaxError: Field type annotation expected. */ +/* @@? 17:24 Error SyntaxError: string is a predefined type, cannot be used as an identifier */ diff --git a/ets2panda/test/ast/parser/ets/annotations_tests/annotationDecl_with_access_modifier03.ets b/ets2panda/test/ast/parser/ets/annotations_tests/annotationDecl_with_access_modifier03.ets index c6d1285bf8ac75f6673ba770e7e0c0105e76c263..9128014805bfc66074dbdc7af9dc93730a329dc0 100644 --- a/ets2panda/test/ast/parser/ets/annotations_tests/annotationDecl_with_access_modifier03.ets +++ b/ets2panda/test/ast/parser/ets/annotations_tests/annotationDecl_with_access_modifier03.ets @@ -19,4 +19,3 @@ /* @@@ label Error SyntaxError: Unexpected token 'static'. */ /* @@@ label1 Error SyntaxError: Unexpected token '@'. */ -/* @@? 15:38 Error SyntaxError: Annotations can only be declared at the top level. */ diff --git a/ets2panda/test/ast/parser/ets/circular_type_in_alias.ets b/ets2panda/test/ast/parser/ets/circular_type_in_alias.ets index b951ba4ff5a95559f1109f4171310c46b0719362..09a0912afdb078b51efeb8e558a248d3b9c6d2fc 100644 --- a/ets2panda/test/ast/parser/ets/circular_type_in_alias.ets +++ b/ets2panda/test/ast/parser/ets/circular_type_in_alias.ets @@ -29,8 +29,8 @@ type Loop> = { /* @@? 17:23 Error TypeError: Indexed signatures are not allowed. Use arrays instead! */ /* @@? 17:24 Error SyntaxError: Unexpected token ']'. */ /* @@? 17:26 Error SyntaxError: Unexpected token 'extends'. */ -/* @@? 17:34 Error SyntaxError: Unexpected token 'boolean'. */ +/* @@? 17:34 Error SyntaxError: boolean is a predefined type, cannot be used as an identifier */ /* @@? 17:42 Error SyntaxError: Unexpected token '?'. */ /* @@? 17:44 Error SyntaxError: number is a predefined type, cannot be used as an identifier */ /* @@? 17:51 Error SyntaxError: Unexpected token ':'. */ -/* @@? 17:59 Error SyntaxError: Field type annotation expected. */ \ No newline at end of file +/* @@? 17:53 Error SyntaxError: string is a predefined type, cannot be used as an identifier */ diff --git a/ets2panda/test/ast/parser/ets/constructorFunctionType_n.ets b/ets2panda/test/ast/parser/ets/constructorFunctionType_n.ets new file mode 100644 index 0000000000000000000000000000000000000000..b5087a482b4b6bc37b878d3be1d44f53cddc0e35 --- /dev/null +++ b/ets2panda/test/ast/parser/ets/constructorFunctionType_n.ets @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +class Person { + constructor(name: string,age: number) {} +} +type PersonCtor = new (name: string, age: number) => Person + +/* @@? 19:1 Error SyntaxError: Constructor function types are not supported. */ diff --git a/ets2panda/test/ast/parser/ets/extension_function_tests/extension_function_error1.ets b/ets2panda/test/ast/parser/ets/extension_function_tests/extension_function_error1.ets new file mode 100644 index 0000000000000000000000000000000000000000..47d3887c4c2635fdf1c73651156c33eea74ed591 --- /dev/null +++ b/ets2panda/test/ast/parser/ets/extension_function_tests/extension_function_error1.ets @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@AnimatableExtend +function animatableWidth(this: TextAttribute, this { this.width(width); return this; +} + +/* @@? 16:2 Error TypeError: Cannot find type 'AnimatableExtend'. */ +/* @@? 17:32 Error TypeError: Cannot find type 'TextAttribute'. */ +/* @@? 17:52 Error SyntaxError: The function parameter 'this' must explicitly specify the typeAnnotation. */ +/* @@? 17:52 Error SyntaxError: Unexpected token, expected ',' or ')'. */ +/* @@? 17:54 Error TypeError: Cannot reference 'this' in this context. */ +/* @@? 17:59 Error TypeError: Property 'width' does not exist on type 'Error' */ diff --git a/ets2panda/test/ast/parser/ets/extension_function_tests/extension_function_error2.ets b/ets2panda/test/ast/parser/ets/extension_function_tests/extension_function_error2.ets new file mode 100644 index 0000000000000000000000000000000000000000..752a06d4cceb6598bb28c56cf9d6fa2f6c135ed4 --- /dev/null +++ b/ets2panda/test/ast/parser/ets/extension_function_tests/extension_function_error2.ets @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +let a = (this: TextAttribute, this { this.width(width); return this; +} + +/* @@? 16:9 Error TypeError: 'this' cannot be referenced from a static context */ +/* @@? 16:9 Error TypeError: Cannot reference 'this' in this context. */ +/* @@? 16:9 Error TypeError: Type 'Error' cannot be assigned to type 'ETSGLOBAL' */ +/* @@? 16:14 Error SyntaxError: Unexpected token, expected ')'. */ +/* @@? 16:16 Error SyntaxError: Unexpected token 'TextAttribute'. */ +/* @@? 16:16 Error TypeError: Unresolved reference TextAttribute */ +/* @@? 16:29 Error SyntaxError: Unexpected token ','. */ +/* @@? 16:31 Error SyntaxError: Unexpected token 'this'. */ +/* @@? 16:31 Error TypeError: Cannot reference 'this' in this context. */ +/* @@? 16:36 Error SyntaxError: Unexpected token '{'. */ +/* @@? 16:38 Error TypeError: Cannot reference 'this' in this context. */ +/* @@? 16:43 Error TypeError: Property 'width' does not exist on type 'Error' */ +/* @@? 16:57 Error SyntaxError: return keyword should be used in function body. */ +/* @@? 16:64 Error TypeError: Cannot reference 'this' in this context. */ +/* @@? 16:64 Error TypeError: All return statements in the function should be empty or have a value. */ diff --git a/ets2panda/test/ast/parser/ets/functionTypeParam_neg2.ets b/ets2panda/test/ast/parser/ets/functionTypeParam_neg2.ets index 3f31cfcb8cf04c96a3cb805c8e90f5f29a1ebf2b..e781375637427b39b2f3a01cfc4c58d5d51629b7 100644 --- a/ets2panda/test/ast/parser/ets/functionTypeParam_neg2.ets +++ b/ets2panda/test/ast/parser/ets/functionTypeParam_neg2.ets @@ -26,11 +26,16 @@ declare class Environment { /* @@? 17:23 Error SyntaxError: Using object literals to declare types in place is not supported. Please declare types and interfaces explicitly! */ /* @@? 18:25 Error SyntaxError: Using object literals to declare types in place is not supported. Please declare types and interfaces explicitly! */ /* @@? 19:25 Error SyntaxError: Invalid Type. */ +/* @@? 21:16 Error TypeError: Native and Declare methods should have explicit return type. */ /* @@? 21:20 Error SyntaxError: Invalid Type. */ /* @@? 21:28 Error SyntaxError: Invalid Type. */ /* @@? 21:37 Error SyntaxError: Unexpected token, expected '=>'. */ -/* @@? 21:37 Error SyntaxError: Unexpected token, expected '('. */ -/* @@? 21:37 Error SyntaxError: Invalid Type. */ +/* @@? 21:39 Error SyntaxError: Unexpected token '--'. */ +/* @@? 21:41 Error SyntaxError: Unexpected token '-'. */ +/* @@? 21:42 Error SyntaxError: Unexpected token ','. */ +/* @@? 21:43 Error SyntaxError: Unexpected token ')'. */ +/* @@? 21:44 Error SyntaxError: Unexpected token ':'. */ +/* @@? 21:45 Error SyntaxError: void is a predefined type, cannot be used as an identifier */ /* @@? 22:20 Error SyntaxError: Invalid Type. */ /* @@? 23:25 Error SyntaxError: Using object literals to declare types in place is not supported. Please declare types and interfaces explicitly! */ /* @@? 23:36 Error SyntaxError: Unexpected token ','. */ diff --git a/ets2panda/test/ast/parser/ets/function_implicit_return_type.ets b/ets2panda/test/ast/parser/ets/function_implicit_return_type.ets index 7412439361696493516c2cbd301dc1f86d3f1f7e..08913b18bbb2685af2e80d1ca994034db08248eb 100644 --- a/ets2panda/test/ast/parser/ets/function_implicit_return_type.ets +++ b/ets2panda/test/ast/parser/ets/function_implicit_return_type.ets @@ -24,8 +24,6 @@ let void6: (i: int ) /* @@ label */= void1 /* @@ label1 */; // CTE; need function main() {} -/* @@@ label Error SyntaxError: Unexpected token, expected '=>'. */ -/* @@@ label Error SyntaxError: Unexpected token, expected '('. */ -/* @@@ label Error SyntaxError: Invalid Type. */ -/* @@@ label Error SyntaxError: Unexpected token '('. */ -/* @@@ label1 Error SyntaxError: Unexpected token, expected ')'. */ +/* @@? 23:43 Error SyntaxError: Unexpected token, expected '=>'. */ +/* @@? 23:43 Error SyntaxError: Unexpected token '=>'. */ +/* @@? 23:45 Error SyntaxError: Unexpected token 'void1'. */ diff --git a/ets2panda/test/ast/parser/ets/invalid_decorator_usage.ets b/ets2panda/test/ast/parser/ets/invalid_decorator_usage.ets index 30b54d0ce59f4e6954c555689c85ceac7b595ec5..ce1345d02672da56f6a1077b57040cde6addb934 100644 --- a/ets2panda/test/ast/parser/ets/invalid_decorator_usage.ets +++ b/ets2panda/test/ast/parser/ets/invalid_decorator_usage.ets @@ -20,15 +20,13 @@ /* @@? 16:5 Error TypeError: 'M' type does not exist. */ /* @@? 16:16 Error TypeError: Only abstract or native methods can't have body. */ /* @@? 16:29 Error SyntaxError: Unexpected 'this' keyword in non-receiver context. */ -/* @@? 16:44 Error SyntaxError: Unexpected token, expected '('. */ +/* @@? 16:40 Error SyntaxError: Annotations are not allowed on this type of declaration. */ /* @@? 16:44 Error SyntaxError: Unexpected token, expected ',' or ')'. */ -/* @@? 16:44 Error SyntaxError: Invalid Type. */ -/* @@? 16:44 Error SyntaxError: Unexpected token, expected '('. */ -/* @@? 16:44 Error SyntaxError: Unexpected token, expected '=>'. */ -/* @@? 16:44 Error SyntaxError: Unexpected token, expected ',' or ')'. */ -/* @@? 16:44 Error SyntaxError: Invalid Type. */ /* @@? 16:44 Error SyntaxError: Unexpected token, expected '=>'. */ /* @@? 16:46 Error SyntaxError: Unexpected token ']'. */ +/* @@? 16:46 Error SyntaxError: Unexpected token, expected ',' or ')'. */ +/* @@? 16:46 Error SyntaxError: Invalid Type. */ +/* @@? 16:48 Error SyntaxError: Unexpected token ')'. */ /* @@? 16:50 Error SyntaxError: Unexpected token '=>'. */ /* @@? 16:59 Error SyntaxError: Annotations are not allowed on this type of declaration. */ /* @@? 16:61 Error SyntaxError: Unexpected token ')'. */ diff --git a/ets2panda/test/ast/parser/ets/lambda_function_index_access_neg.ets b/ets2panda/test/ast/parser/ets/lambda_function_index_access_neg.ets index d5c80f3524b8eee43443c99f5ea8c4ddbc6c1283..ef855e4383289ea8bafca7f8b23a5ab6e6c9ae1e 100644 --- a/ets2panda/test/ast/parser/ets/lambda_function_index_access_neg.ets +++ b/ets2panda/test/ast/parser/ets/lambda_function_index_access_neg.ets @@ -20,10 +20,8 @@ let a = (... ( () => { } [] /* @@? 16:9 Error TypeError: Invalid left-hand side of assignment expression */ -/* @@? 16:9 Error TypeError: No matching call signature for *ERROR_LITERAL*(() => void) */ -/* @@? 16:9 Error TypeError: Invalid left-hand side of assignment expression */ -/* @@? 16:9 Error TypeError: No matching call signature for *ERROR_LITERAL*(() => void) */ /* @@? 16:10 Error SyntaxError: Unexpected token '...'. */ +/* @@? 16:10 Error TypeError: This expression is not callable. */ /* @@? 18:5 Error SyntaxError: Invalid left-hand side in assignment expression. */ /* @@? 18:7 Error SyntaxError: Unexpected token ':'. */ /* @@? 18:9 Error SyntaxError: Unexpected token 'async'. */ diff --git a/ets2panda/test/ast/parser/ets/lexer003.ets b/ets2panda/test/ast/parser/ets/lexer003.ets new file mode 100644 index 0000000000000000000000000000000000000000..6e9900937bba4668ec5615a8ec6df2a61ba96918 --- /dev/null +++ b/ets2panda/test/ast/parser/ets/lexer003.ets @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* @@? 24:1 Error SyntaxError: Unexpected token, expected '`'. */ +/* @@? 24:4 Error TypeError: Unresolved reference message */ +/* @@? 24:15 Error SyntaxError: Unterminated string. */ +/* @@? 24:19 Error SyntaxError: Unterminated string. */ +/* @@? 24:19 Error SyntaxError: Unexpected token, expected '${' or '`' */ +/* @@? 24:19 Error SyntaxError: Unexpected token, expected '`'. */ +/* @@? 24:19 Error SyntaxError: Expected '}', got 'end of stream'. */ + +`${message ?? 'ver \ No newline at end of file diff --git a/ets2panda/test/ast/parser/ets/rest_never.ets b/ets2panda/test/ast/parser/ets/rest_never.ets new file mode 100644 index 0000000000000000000000000000000000000000..dd17382ea1f90f1d379b532f9dd9097708c6ef38 --- /dev/null +++ b/ets2panda/test/ast/parser/ets/rest_never.ets @@ -0,0 +1,24 @@ +/* +* Copyright (c) 2025 Huawei Device Co., Ltd. +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable low or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +function sum(...nums: number[]) { +} + +function main() { + sum(...null!) +} + +/* @@? 20:9 Error TypeError: Spread expression can be applied only to array or tuple type, but 'never' is provided */ +/* @@? 20:12 Warning Warning: Bad operand type, the operand of the non-nullish expression is 'null' or 'undefined'. */ \ No newline at end of file diff --git a/ets2panda/test/ast/parser/ets/spread_parameter_only_with_rest_1.ets b/ets2panda/test/ast/parser/ets/spread_parameter_only_with_rest_1.ets new file mode 100644 index 0000000000000000000000000000000000000000..26483b2780137c4e697099b19173c07c0e83d3ab --- /dev/null +++ b/ets2panda/test/ast/parser/ets/spread_parameter_only_with_rest_1.ets @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +function foo(x: number) { + console.log(x) +} +let args_tuple: [number, number] = [0, 1] +/* @@ label1 */foo(1, ...args_tuple) +let args_array: number[] = [2, 3] +/* @@ label2 */foo(4, ...args_array) + +/* @@@ label1 Error TypeError: The function or method being called needs a rest parameter to accept arguments passed via the spread operator. */ +/* @@@ label1 Error TypeError: No matching call signature for foo(Int, [Double, Double]) */ +/* @@@ label2 Error TypeError: The function or method being called needs a rest parameter to accept arguments passed via the spread operator. */ +/* @@@ label2 Error TypeError: No matching call signature for foo(Int, Double) */ diff --git a/ets2panda/test/ast/parser/ets/spread_parameter_only_with_rest_2.ets b/ets2panda/test/ast/parser/ets/spread_parameter_only_with_rest_2.ets new file mode 100644 index 0000000000000000000000000000000000000000..a5407b76f91f8ed4787688a74ea581267c105884 --- /dev/null +++ b/ets2panda/test/ast/parser/ets/spread_parameter_only_with_rest_2.ets @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +function foo(x: number) { + console.log(x) +} +let args_tuple: [number, number] = [0, 1] +/* @@ label1 */foo(...args_tuple) +let args_array: number[] = [2, 3] +/* @@ label2 */foo(...args_array) + +function moo(x: number, y: number) { + console.log(x, y) +} +args_tuple = [0, 1] +/* @@ label3 */moo(1, ...args_tuple) +args_array = [2, 3] +/* @@ label4 */moo(2, ...args_array) + +/* @@@ label1 Error TypeError: The function or method being called needs a rest parameter to accept arguments passed via the spread operator. */ +/* @@@ label1 Error TypeError: No matching call signature for foo([Double, Double]) */ +/* @@@ label2 Error TypeError: The function or method being called needs a rest parameter to accept arguments passed via the spread operator. */ +/* @@@ label2 Error TypeError: No matching call signature for foo(Double) */ +/* @@@ label3 Error TypeError: The function or method being called needs a rest parameter to accept arguments passed via the spread operator. */ +/* @@@ label3 Error TypeError: No matching call signature for moo(Int, [Double, Double]) */ +/* @@@ label4 Error TypeError: The function or method being called needs a rest parameter to accept arguments passed via the spread operator. */ +/* @@@ label4 Error TypeError: No matching call signature for moo(Int, Double) */ diff --git a/ets2panda/test/ast/parser/ets/spread_parameter_only_with_rest_3.ets b/ets2panda/test/ast/parser/ets/spread_parameter_only_with_rest_3.ets new file mode 100644 index 0000000000000000000000000000000000000000..89d5215fd1226415488589ea8be4a8376171f4aa --- /dev/null +++ b/ets2panda/test/ast/parser/ets/spread_parameter_only_with_rest_3.ets @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +function foo(x: number, y: number) { + console.log(x, y) +} +let args_tuple: [number, number] = [0, 1] +/* @@ label1 */foo(...args_tuple) +let args_array: number[] = [2, 3] +/* @@ label2 */foo(...args_array) + +function moo(x: number, y: number, z: number) { + console.log(x, y, z) +} +args_tuple = [0, 1] +/* @@ label3 */moo(1, ...args_tuple) +args_array = [2, 3] +/* @@ label4 */moo(2, ...args_array) + +/* @@@ label1 Error TypeError: The function or method being called needs a rest parameter to accept arguments passed via the spread operator. */ +/* @@@ label1 Error TypeError: No matching call signature for foo([Double, Double]) */ +/* @@@ label2 Error TypeError: The function or method being called needs a rest parameter to accept arguments passed via the spread operator. */ +/* @@@ label2 Error TypeError: No matching call signature for foo(Double) */ +/* @@@ label3 Error TypeError: The function or method being called needs a rest parameter to accept arguments passed via the spread operator. */ +/* @@@ label3 Error TypeError: No matching call signature for moo(Int, [Double, Double]) */ +/* @@@ label4 Error TypeError: The function or method being called needs a rest parameter to accept arguments passed via the spread operator. */ +/* @@@ label4 Error TypeError: No matching call signature for moo(Int, Double) */ diff --git a/ets2panda/test/ast/parser/ets/typenode_clone_comprehensive.ets b/ets2panda/test/ast/parser/ets/typenode_clone_comprehensive.ets index a741c2a82c83d4a6d0084dcdb401c2acf676927f..069c51fb2f2b65c77959c4bb1af9b5001bce86c7 100644 --- a/ets2panda/test/ast/parser/ets/typenode_clone_comprehensive.ets +++ b/ets2panda/test/ast/parser/ets/typenode_clone_comprehensive.ets @@ -94,7 +94,7 @@ declare const test3: ComplexType<'b'>; /* @@? 41:43 Error SyntaxError: Unexpected token ']'. */ /* @@? 41:43 Error SyntaxError: Field type annotation expected. */ /* @@? 41:44 Error SyntaxError: Unexpected token ':'. */ -/* @@? 41:52 Error SyntaxError: Field type annotation expected. */ +/* @@? 41:46 Error SyntaxError: string is a predefined type, cannot be used as an identifier */ /* @@? 44:41 Error TypeError: The `keyof` keyword can only be used for class or interface type. */ /* @@? 44:60 Error SyntaxError: Unexpected token, expected ']'. */ /* @@? 54:34 Error TypeError: Cannot find type 'InvalidMap'. */ diff --git a/ets2panda/test/ast/parser/ets/unexpected_token_38.ets b/ets2panda/test/ast/parser/ets/unexpected_token_38.ets index ca70ddbf8179b5406e7082bc14585f8edcfc0769..780e05d9629c60f9001974f4d2513e40cda83429 100644 --- a/ets2panda/test/ast/parser/ets/unexpected_token_38.ets +++ b/ets2panda/test/ast/parser/ets/unexpected_token_38.ets @@ -25,9 +25,7 @@ let func3: (f: (a: number, b: string) => number[]): number[] => (a: number, b: b /* @@? 19:8 Error TypeError: 'void' used as type annotation. */ /* @@? 22:51 Error SyntaxError: Unexpected token, expected '=>'. */ -/* @@? 22:51 Error SyntaxError: Unexpected token, expected '('. */ -/* @@? 22:51 Error SyntaxError: Invalid Type. */ -/* @@? 22:51 Error SyntaxError: Unexpected token '('. */ +/* @@? 22:51 Error SyntaxError: Unexpected token '=>'. */ +/* @@? 22:53 Error SyntaxError: Unexpected token 'number'. */ /* @@? 22:62 Error SyntaxError: Unexpected token '=>'. */ /* @@? 22:62 Error SyntaxError: Unexpected token. */ -/* @@? 22:96 Error SyntaxError: Unexpected token, expected ')'. */ diff --git a/ets2panda/test/ast/parser/ets/user_defined_20.ets b/ets2panda/test/ast/parser/ets/user_defined_20.ets index 2826718e9bcbdc71d589e1ce4e54c2731efef3c4..11c00c085ab04a1aaa9a32c9f8aa67f3a774f110 100644 --- a/ets2panda/test/ast/parser/ets/user_defined_20.ets +++ b/ets2panda/test/ast/parser/ets/user_defined_20.ets @@ -17,6 +17,5 @@ struct bigint{ a : string = "15"; } -/* @@? 16:8 Error SyntaxError: Cannot be used as user-defined type. */ +/* @@? 16:8 Error SyntaxError: bigint is a predefined type, cannot be used as an identifier */ /* @@? 16:1 Error TypeError: Structs are only used to define UI components, it should be translated at 'plugin after parser' phase. */ -/* @@? 1:3 Error TypeError: Variable 'bigint' is already defined with different type. */ diff --git a/ets2panda/test/ast/parser/ets/user_defined_21.ets b/ets2panda/test/ast/parser/ets/user_defined_21.ets index 6ed80976387fa0f0f4fe3a265d75d1bcc98ea334..a7715989bf1d418e8d4c0263dca804341ef44563 100644 --- a/ets2panda/test/ast/parser/ets/user_defined_21.ets +++ b/ets2panda/test/ast/parser/ets/user_defined_21.ets @@ -17,5 +17,4 @@ class /* @@ label */bigint{ a : string = "15"; } -/* @@@ label Error SyntaxError: Cannot be used as user-defined type. */ -/* @@? 1:3 Error TypeError: Variable 'bigint' is already defined with different type. */ +/* @@@ label Error SyntaxError: bigint is a predefined type, cannot be used as an identifier */ diff --git a/ets2panda/test/ast/parser/ets/user_defined_5.ets b/ets2panda/test/ast/parser/ets/user_defined_5.ets index 54076098618908af969d791ce536c4b67d49c011..a20b8680d4ed2d7c4dac1f52b113a95206279b00 100644 --- a/ets2panda/test/ast/parser/ets/user_defined_5.ets +++ b/ets2panda/test/ast/parser/ets/user_defined_5.ets @@ -17,6 +17,4 @@ enum /* @@ label */double { A, B, C } -/* @@@ label Error SyntaxError: Cannot be used as user-defined type. */ -/* @@@ label Error SyntaxError: Identifier expected, got 'double'. */ -/* @@@ label Error SyntaxError: Hard keyword 'double' cannot be used as identifier */ +/* @@@ label Error SyntaxError: double is a predefined type, cannot be used as an identifier */ diff --git a/ets2panda/test/ast/parser/ets/user_defined_7.ets b/ets2panda/test/ast/parser/ets/user_defined_7.ets index 587457df03a00716aa658dc94de604c15c31a1a7..5b9519508f6746008b811c5d0d2d3eefcc2cb2d7 100644 --- a/ets2panda/test/ast/parser/ets/user_defined_7.ets +++ b/ets2panda/test/ast/parser/ets/user_defined_7.ets @@ -17,9 +17,7 @@ interface /* @@ label1 */double { name : string /* @@ label2 */= /* @@ label3 */"" /* @@ label4 */} -/* @@@ label1 Error SyntaxError: Cannot be used as user-defined type. */ -/* @@@ label1 Error SyntaxError: Identifier expected, got 'double'. */ -/* @@@ label1 Error SyntaxError: Hard keyword 'double' cannot be used as identifier */ +/* @@@ label1 Error SyntaxError: double is a predefined type, cannot be used as an identifier */ /* @@@ label2 Error SyntaxError: Interface member initialization is prohibited. */ /* @@@ label3 Error SyntaxError: Unexpected token, expected ','. */ /* @@? 17:51 Error SyntaxError: Unexpected token, expected 'private' or identifier. */ diff --git a/ets2panda/test/ast/parser/ets/user_defined_8.ets b/ets2panda/test/ast/parser/ets/user_defined_8.ets index 95556fc08294ee82fbe20c09051086b5d7fad317..52278742dd3f8ed2e018321cb303a067e5bcf713 100644 --- a/ets2panda/test/ast/parser/ets/user_defined_8.ets +++ b/ets2panda/test/ast/parser/ets/user_defined_8.ets @@ -17,7 +17,5 @@ struct string{ a : string = "15"; } -/* @@? 16:8 Error SyntaxError: Cannot be used as user-defined type. */ +/* @@? 16:8 Error SyntaxError: string is a predefined type, cannot be used as an identifier */ /* @@? 16:1 Error TypeError: Structs are only used to define UI components, it should be translated at 'plugin after parser' phase. */ -/* @@? 1:3 Error TypeError: Variable 'string' is already defined with different type. */ -/* @@? 17:16 Error TypeError: Type '"15"' cannot be assigned to type 'string' */ diff --git a/ets2panda/test/ast/parser/ets/user_defined_9.ets b/ets2panda/test/ast/parser/ets/user_defined_9.ets index fecbee124f116921c19898efd6baa1ed741fd7bf..1170c80f98c44b47ee10471aed582e5cd53019a1 100644 --- a/ets2panda/test/ast/parser/ets/user_defined_9.ets +++ b/ets2panda/test/ast/parser/ets/user_defined_9.ets @@ -17,6 +17,4 @@ class /* @@ label */string{ a : string = "15"; } -/* @@@ label Error SyntaxError: Cannot be used as user-defined type. */ -/* @@? 1:3 Error TypeError: Variable 'string' is already defined with different type. */ -/* @@? 17:16 Error TypeError: Type '"15"' cannot be assigned to type 'string' */ +/* @@@ label Error SyntaxError: string is a predefined type, cannot be used as an identifier */ diff --git a/ets2panda/test/compiler/ets/abstractMethodDeclaredInParentClass-expected.txt b/ets2panda/test/compiler/ets/abstractMethodDeclaredInParentClass-expected.txt index c150765e8668980e4420af6a034440dd0e5c0d4c..e9c2649b99bf05c1c853dcce380074ddf2816044 100644 --- a/ets2panda/test/compiler/ets/abstractMethodDeclaredInParentClass-expected.txt +++ b/ets2panda/test/compiler/ets/abstractMethodDeclaredInParentClass-expected.txt @@ -50,7 +50,7 @@ }, "end": { "line": 16, - "column": 38, + "column": 27, "program": "abstractMethodDeclaredInParentClass.ets" } } @@ -63,7 +63,7 @@ }, "end": { "line": 16, - "column": 38, + "column": 27, "program": "abstractMethodDeclaredInParentClass.ets" } } @@ -100,7 +100,7 @@ }, "end": { "line": 16, - "column": 41, + "column": 40, "program": "abstractMethodDeclaredInParentClass.ets" } } @@ -113,7 +113,7 @@ }, "end": { "line": 16, - "column": 41, + "column": 40, "program": "abstractMethodDeclaredInParentClass.ets" } } @@ -1155,8 +1155,8 @@ "program": "abstractMethodDeclaredInParentClass.ets" }, "end": { - "line": 33, - "column": 10, + "line": 31, + "column": 2, "program": "abstractMethodDeclaredInParentClass.ets" } } @@ -1405,8 +1405,8 @@ "program": "abstractMethodDeclaredInParentClass.ets" }, "end": { - "line": 37, - "column": 9, + "line": 35, + "column": 2, "program": "abstractMethodDeclaredInParentClass.ets" } } @@ -1937,7 +1937,7 @@ }, "end": { "line": 44, - "column": 29, + "column": 27, "program": "abstractMethodDeclaredInParentClass.ets" } } @@ -1950,7 +1950,7 @@ }, "end": { "line": 44, - "column": 29, + "column": 27, "program": "abstractMethodDeclaredInParentClass.ets" } } @@ -2502,8 +2502,8 @@ "program": "abstractMethodDeclaredInParentClass.ets" }, "end": { - "line": 54, - "column": 6, + "line": 52, + "column": 2, "program": "abstractMethodDeclaredInParentClass.ets" } } @@ -2557,7 +2557,7 @@ }, "end": { "line": 54, - "column": 29, + "column": 18, "program": "abstractMethodDeclaredInParentClass.ets" } } @@ -2570,7 +2570,7 @@ }, "end": { "line": 54, - "column": 29, + "column": 18, "program": "abstractMethodDeclaredInParentClass.ets" } } @@ -2607,7 +2607,7 @@ }, "end": { "line": 54, - "column": 32, + "column": 31, "program": "abstractMethodDeclaredInParentClass.ets" } } @@ -2620,7 +2620,7 @@ }, "end": { "line": 54, - "column": 32, + "column": 31, "program": "abstractMethodDeclaredInParentClass.ets" } } @@ -2669,7 +2669,7 @@ }, "end": { "line": 54, - "column": 36, + "column": 34, "program": "abstractMethodDeclaredInParentClass.ets" } } @@ -2682,7 +2682,7 @@ }, "end": { "line": 54, - "column": 36, + "column": 34, "program": "abstractMethodDeclaredInParentClass.ets" } } diff --git a/ets2panda/test/compiler/ets/abstractNewClassInstanceExpression-expected.txt b/ets2panda/test/compiler/ets/abstractNewClassInstanceExpression-expected.txt index 02f1678229415ea64945e0eceb4ac444e0e1d5ec..9798e81dae6b4630f82ea7900bdc3a2e2a3ca49d 100644 --- a/ets2panda/test/compiler/ets/abstractNewClassInstanceExpression-expected.txt +++ b/ets2panda/test/compiler/ets/abstractNewClassInstanceExpression-expected.txt @@ -489,7 +489,7 @@ }, "end": { "line": 26, - "column": 20, + "column": 19, "program": "abstractNewClassInstanceExpression.ets" } } @@ -502,7 +502,7 @@ }, "end": { "line": 26, - "column": 20, + "column": 19, "program": "abstractNewClassInstanceExpression.ets" } } @@ -556,7 +556,7 @@ }, "end": { "line": 26, - "column": 13, + "column": 11, "program": "abstractNewClassInstanceExpression.ets" } } @@ -569,7 +569,7 @@ }, "end": { "line": 26, - "column": 13, + "column": 11, "program": "abstractNewClassInstanceExpression.ets" } } @@ -1091,7 +1091,7 @@ }, "end": { "line": 32, - "column": 21, + "column": 20, "program": "abstractNewClassInstanceExpression.ets" } } @@ -1104,7 +1104,7 @@ }, "end": { "line": 32, - "column": 21, + "column": 20, "program": "abstractNewClassInstanceExpression.ets" } } diff --git a/ets2panda/test/compiler/ets/ambient_declaration-expected.txt b/ets2panda/test/compiler/ets/ambient_declaration-expected.txt index fdab2a6c855669b5b8714a37dc7acc551f7322ce..f7106d19ffa27a6cc09c2c9b85b34666c0c7e000 100644 --- a/ets2panda/test/compiler/ets/ambient_declaration-expected.txt +++ b/ets2panda/test/compiler/ets/ambient_declaration-expected.txt @@ -260,7 +260,7 @@ }, "end": { "line": 16, - "column": 43, + "column": 42, "program": "ambient_declaration.ets" } } @@ -273,7 +273,7 @@ }, "end": { "line": 16, - "column": 43, + "column": 42, "program": "ambient_declaration.ets" } } @@ -287,7 +287,7 @@ }, "end": { "line": 16, - "column": 43, + "column": 42, "program": "ambient_declaration.ets" } } @@ -300,7 +300,7 @@ }, "end": { "line": 16, - "column": 43, + "column": 42, "program": "ambient_declaration.ets" } } diff --git a/ets2panda/test/compiler/ets/array_indexing_without_chaining_non_nullish-expected.txt b/ets2panda/test/compiler/ets/array_indexing_without_chaining_non_nullish-expected.txt index d260612eff4fa71b109b2e959f7dd89d642d30e5..923a421fe074625813df189a9088d8d29138362b 100644 --- a/ets2panda/test/compiler/ets/array_indexing_without_chaining_non_nullish-expected.txt +++ b/ets2panda/test/compiler/ets/array_indexing_without_chaining_non_nullish-expected.txt @@ -393,7 +393,7 @@ }, "end": { "line": 18, - "column": 34, + "column": 33, "program": "array_indexing_without_chaining_non_nullish.ets" } } @@ -406,7 +406,7 @@ }, "end": { "line": 18, - "column": 34, + "column": 33, "program": "array_indexing_without_chaining_non_nullish.ets" } } @@ -456,7 +456,7 @@ }, "end": { "line": 18, - "column": 43, + "column": 42, "program": "array_indexing_without_chaining_non_nullish.ets" } } @@ -469,7 +469,7 @@ }, "end": { "line": 18, - "column": 43, + "column": 42, "program": "array_indexing_without_chaining_non_nullish.ets" } } @@ -886,7 +886,7 @@ }, "end": { "line": 19, - "column": 20, + "column": 18, "program": "array_indexing_without_chaining_non_nullish.ets" } } @@ -899,7 +899,7 @@ }, "end": { "line": 19, - "column": 20, + "column": 18, "program": "array_indexing_without_chaining_non_nullish.ets" } } diff --git a/ets2panda/test/compiler/ets/boxingConversion10-expected.txt b/ets2panda/test/compiler/ets/boxingConversion10-expected.txt index 9026b11d3c40c9e9254cd9b400da91ad750eb39a..26279f3bdd5fd152f687183858cabb44857f6dcb 100644 --- a/ets2panda/test/compiler/ets/boxingConversion10-expected.txt +++ b/ets2panda/test/compiler/ets/boxingConversion10-expected.txt @@ -475,7 +475,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 14, "program": "boxingConversion10.ets" } } @@ -488,7 +488,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 14, "program": "boxingConversion10.ets" } } diff --git a/ets2panda/test/compiler/ets/boxingConversion2-expected.txt b/ets2panda/test/compiler/ets/boxingConversion2-expected.txt index 4d8cddd98af613568366249df176972578bddb0e..840418e9fb8db294dc73df5e1b2b280b55762de9 100644 --- a/ets2panda/test/compiler/ets/boxingConversion2-expected.txt +++ b/ets2panda/test/compiler/ets/boxingConversion2-expected.txt @@ -882,7 +882,7 @@ }, "end": { "line": 25, - "column": 20, + "column": 18, "program": "boxingConversion2.ets" } } @@ -895,7 +895,7 @@ }, "end": { "line": 25, - "column": 20, + "column": 18, "program": "boxingConversion2.ets" } } @@ -996,7 +996,7 @@ }, "end": { "line": 26, - "column": 20, + "column": 18, "program": "boxingConversion2.ets" } } @@ -1009,7 +1009,7 @@ }, "end": { "line": 26, - "column": 20, + "column": 18, "program": "boxingConversion2.ets" } } @@ -1110,7 +1110,7 @@ }, "end": { "line": 27, - "column": 20, + "column": 18, "program": "boxingConversion2.ets" } } @@ -1123,7 +1123,7 @@ }, "end": { "line": 27, - "column": 20, + "column": 18, "program": "boxingConversion2.ets" } } @@ -1224,7 +1224,7 @@ }, "end": { "line": 28, - "column": 20, + "column": 18, "program": "boxingConversion2.ets" } } @@ -1237,7 +1237,7 @@ }, "end": { "line": 28, - "column": 20, + "column": 18, "program": "boxingConversion2.ets" } } @@ -1338,7 +1338,7 @@ }, "end": { "line": 29, - "column": 20, + "column": 18, "program": "boxingConversion2.ets" } } @@ -1351,7 +1351,7 @@ }, "end": { "line": 29, - "column": 20, + "column": 18, "program": "boxingConversion2.ets" } } @@ -1452,7 +1452,7 @@ }, "end": { "line": 30, - "column": 20, + "column": 18, "program": "boxingConversion2.ets" } } @@ -1465,7 +1465,7 @@ }, "end": { "line": 30, - "column": 20, + "column": 18, "program": "boxingConversion2.ets" } } @@ -1566,7 +1566,7 @@ }, "end": { "line": 31, - "column": 20, + "column": 18, "program": "boxingConversion2.ets" } } @@ -1579,7 +1579,7 @@ }, "end": { "line": 31, - "column": 20, + "column": 18, "program": "boxingConversion2.ets" } } @@ -1680,7 +1680,7 @@ }, "end": { "line": 32, - "column": 20, + "column": 18, "program": "boxingConversion2.ets" } } @@ -1693,7 +1693,7 @@ }, "end": { "line": 32, - "column": 20, + "column": 18, "program": "boxingConversion2.ets" } } @@ -1794,7 +1794,7 @@ }, "end": { "line": 33, - "column": 20, + "column": 18, "program": "boxingConversion2.ets" } } @@ -1807,7 +1807,7 @@ }, "end": { "line": 33, - "column": 20, + "column": 18, "program": "boxingConversion2.ets" } } @@ -1907,7 +1907,7 @@ }, "end": { "line": 34, - "column": 20, + "column": 18, "program": "boxingConversion2.ets" } } @@ -1920,7 +1920,7 @@ }, "end": { "line": 34, - "column": 20, + "column": 18, "program": "boxingConversion2.ets" } } @@ -2020,7 +2020,7 @@ }, "end": { "line": 35, - "column": 19, + "column": 17, "program": "boxingConversion2.ets" } } @@ -2033,7 +2033,7 @@ }, "end": { "line": 35, - "column": 19, + "column": 17, "program": "boxingConversion2.ets" } } @@ -2202,7 +2202,7 @@ }, "end": { "line": 36, - "column": 17, + "column": 15, "program": "boxingConversion2.ets" } } @@ -2215,7 +2215,7 @@ }, "end": { "line": 36, - "column": 17, + "column": 15, "program": "boxingConversion2.ets" } } diff --git a/ets2panda/test/compiler/ets/boxingConversion3-expected.txt b/ets2panda/test/compiler/ets/boxingConversion3-expected.txt index 620399e675d5fb9be0f00cbe210dcedbbe7dae66..2bb85eafa8d6fcf0cee51006c7014d6b7768ceb0 100644 --- a/ets2panda/test/compiler/ets/boxingConversion3-expected.txt +++ b/ets2panda/test/compiler/ets/boxingConversion3-expected.txt @@ -425,7 +425,7 @@ }, "end": { "line": 20, - "column": 40, + "column": 38, "program": "boxingConversion3.ets" } } @@ -438,7 +438,7 @@ }, "end": { "line": 20, - "column": 40, + "column": 38, "program": "boxingConversion3.ets" } } @@ -479,7 +479,7 @@ }, "end": { "line": 21, - "column": 22, + "column": 21, "program": "boxingConversion3.ets" } } @@ -492,7 +492,7 @@ }, "end": { "line": 21, - "column": 22, + "column": 21, "program": "boxingConversion3.ets" } } @@ -701,7 +701,7 @@ }, "end": { "line": 25, - "column": 18, + "column": 16, "program": "boxingConversion3.ets" } } @@ -714,7 +714,7 @@ }, "end": { "line": 25, - "column": 18, + "column": 16, "program": "boxingConversion3.ets" } } @@ -814,7 +814,7 @@ }, "end": { "line": 26, - "column": 19, + "column": 17, "program": "boxingConversion3.ets" } } @@ -827,7 +827,7 @@ }, "end": { "line": 26, - "column": 19, + "column": 17, "program": "boxingConversion3.ets" } } @@ -927,7 +927,7 @@ }, "end": { "line": 27, - "column": 18, + "column": 16, "program": "boxingConversion3.ets" } } @@ -940,7 +940,7 @@ }, "end": { "line": 27, - "column": 18, + "column": 16, "program": "boxingConversion3.ets" } } diff --git a/ets2panda/test/compiler/ets/boxingConversion5-expected.txt b/ets2panda/test/compiler/ets/boxingConversion5-expected.txt index 6217fc4519b80c27788c481fc1662916822ee2f0..7c6fbeaa70072c9c5f02afb8b5d82c53ff1181c7 100644 --- a/ets2panda/test/compiler/ets/boxingConversion5-expected.txt +++ b/ets2panda/test/compiler/ets/boxingConversion5-expected.txt @@ -605,7 +605,7 @@ }, "end": { "line": 17, - "column": 14, + "column": 12, "program": "boxingConversion5.ets" } } @@ -618,7 +618,7 @@ }, "end": { "line": 17, - "column": 14, + "column": 12, "program": "boxingConversion5.ets" } } @@ -692,7 +692,7 @@ }, "end": { "line": 18, - "column": 15, + "column": 13, "program": "boxingConversion5.ets" } } @@ -705,7 +705,7 @@ }, "end": { "line": 18, - "column": 15, + "column": 13, "program": "boxingConversion5.ets" } } @@ -779,7 +779,7 @@ }, "end": { "line": 19, - "column": 16, + "column": 14, "program": "boxingConversion5.ets" } } @@ -792,7 +792,7 @@ }, "end": { "line": 19, - "column": 16, + "column": 14, "program": "boxingConversion5.ets" } } diff --git a/ets2panda/test/compiler/ets/boxingConversion6-expected.txt b/ets2panda/test/compiler/ets/boxingConversion6-expected.txt index 7b5063ec58f0be5274a0160f771b8c7a32157959..e2fabd7e73e02bf358b5fb841fed6d11dfc62b4f 100644 --- a/ets2panda/test/compiler/ets/boxingConversion6-expected.txt +++ b/ets2panda/test/compiler/ets/boxingConversion6-expected.txt @@ -800,7 +800,7 @@ }, "end": { "line": 17, - "column": 15, + "column": 13, "program": "boxingConversion6.ets" } } @@ -813,7 +813,7 @@ }, "end": { "line": 17, - "column": 15, + "column": 13, "program": "boxingConversion6.ets" } } @@ -887,7 +887,7 @@ }, "end": { "line": 18, - "column": 13, + "column": 11, "program": "boxingConversion6.ets" } } @@ -900,7 +900,7 @@ }, "end": { "line": 18, - "column": 13, + "column": 11, "program": "boxingConversion6.ets" } } @@ -974,7 +974,7 @@ }, "end": { "line": 19, - "column": 14, + "column": 12, "program": "boxingConversion6.ets" } } @@ -987,7 +987,7 @@ }, "end": { "line": 19, - "column": 14, + "column": 12, "program": "boxingConversion6.ets" } } @@ -1061,7 +1061,7 @@ }, "end": { "line": 20, - "column": 15, + "column": 13, "program": "boxingConversion6.ets" } } @@ -1074,7 +1074,7 @@ }, "end": { "line": 20, - "column": 15, + "column": 13, "program": "boxingConversion6.ets" } } @@ -1148,7 +1148,7 @@ }, "end": { "line": 21, - "column": 16, + "column": 14, "program": "boxingConversion6.ets" } } @@ -1161,7 +1161,7 @@ }, "end": { "line": 21, - "column": 16, + "column": 14, "program": "boxingConversion6.ets" } } @@ -1235,7 +1235,7 @@ }, "end": { "line": 22, - "column": 14, + "column": 12, "program": "boxingConversion6.ets" } } @@ -1248,7 +1248,7 @@ }, "end": { "line": 22, - "column": 14, + "column": 12, "program": "boxingConversion6.ets" } } diff --git a/ets2panda/test/compiler/ets/boxingConversion7-expected.txt b/ets2panda/test/compiler/ets/boxingConversion7-expected.txt index ed0f15234f56f150f1275b359f3365f478cef4ce..e15dcc9bbf105657563ff8587d237f729d7dddf3 100644 --- a/ets2panda/test/compiler/ets/boxingConversion7-expected.txt +++ b/ets2panda/test/compiler/ets/boxingConversion7-expected.txt @@ -670,7 +670,7 @@ }, "end": { "line": 17, - "column": 13, + "column": 11, "program": "boxingConversion7.ets" } } @@ -683,7 +683,7 @@ }, "end": { "line": 17, - "column": 13, + "column": 11, "program": "boxingConversion7.ets" } } @@ -757,7 +757,7 @@ }, "end": { "line": 18, - "column": 14, + "column": 12, "program": "boxingConversion7.ets" } } @@ -770,7 +770,7 @@ }, "end": { "line": 18, - "column": 14, + "column": 12, "program": "boxingConversion7.ets" } } @@ -844,7 +844,7 @@ }, "end": { "line": 19, - "column": 15, + "column": 13, "program": "boxingConversion7.ets" } } @@ -857,7 +857,7 @@ }, "end": { "line": 19, - "column": 15, + "column": 13, "program": "boxingConversion7.ets" } } @@ -931,7 +931,7 @@ }, "end": { "line": 20, - "column": 16, + "column": 14, "program": "boxingConversion7.ets" } } @@ -944,7 +944,7 @@ }, "end": { "line": 20, - "column": 16, + "column": 14, "program": "boxingConversion7.ets" } } diff --git a/ets2panda/test/compiler/ets/boxingConversion8-expected.txt b/ets2panda/test/compiler/ets/boxingConversion8-expected.txt index cb1abb58a608bb3af3e3d1163c22d082612b841a..f5574b41567f3c73e2ebf35e00bff314c4b1b763 100644 --- a/ets2panda/test/compiler/ets/boxingConversion8-expected.txt +++ b/ets2panda/test/compiler/ets/boxingConversion8-expected.txt @@ -670,7 +670,7 @@ }, "end": { "line": 17, - "column": 13, + "column": 11, "program": "boxingConversion8.ets" } } @@ -683,7 +683,7 @@ }, "end": { "line": 17, - "column": 13, + "column": 11, "program": "boxingConversion8.ets" } } @@ -757,7 +757,7 @@ }, "end": { "line": 18, - "column": 14, + "column": 12, "program": "boxingConversion8.ets" } } @@ -770,7 +770,7 @@ }, "end": { "line": 18, - "column": 14, + "column": 12, "program": "boxingConversion8.ets" } } @@ -844,7 +844,7 @@ }, "end": { "line": 19, - "column": 15, + "column": 13, "program": "boxingConversion8.ets" } } @@ -857,7 +857,7 @@ }, "end": { "line": 19, - "column": 15, + "column": 13, "program": "boxingConversion8.ets" } } @@ -931,7 +931,7 @@ }, "end": { "line": 20, - "column": 16, + "column": 14, "program": "boxingConversion8.ets" } } @@ -944,7 +944,7 @@ }, "end": { "line": 20, - "column": 16, + "column": 14, "program": "boxingConversion8.ets" } } diff --git a/ets2panda/test/compiler/ets/boxingConversion9-expected.txt b/ets2panda/test/compiler/ets/boxingConversion9-expected.txt index 6844c681fb7017a2b4c70c2b4e42174c1bd1d37f..08d37f8b1506384b53ebc8901a1d4378815d488e 100644 --- a/ets2panda/test/compiler/ets/boxingConversion9-expected.txt +++ b/ets2panda/test/compiler/ets/boxingConversion9-expected.txt @@ -540,7 +540,7 @@ }, "end": { "line": 17, - "column": 15, + "column": 13, "program": "boxingConversion9.ets" } } @@ -553,7 +553,7 @@ }, "end": { "line": 17, - "column": 15, + "column": 13, "program": "boxingConversion9.ets" } } @@ -627,7 +627,7 @@ }, "end": { "line": 18, - "column": 16, + "column": 14, "program": "boxingConversion9.ets" } } @@ -640,7 +640,7 @@ }, "end": { "line": 18, - "column": 16, + "column": 14, "program": "boxingConversion9.ets" } } diff --git a/ets2panda/test/compiler/ets/boxingUnboxingExpressions-expected.txt b/ets2panda/test/compiler/ets/boxingUnboxingExpressions-expected.txt index b3aab0e5db60492322109aabe9c6e54aa179ed97..b79079f03d5e7eadc48f7787e4b2b40a01a44657 100644 --- a/ets2panda/test/compiler/ets/boxingUnboxingExpressions-expected.txt +++ b/ets2panda/test/compiler/ets/boxingUnboxingExpressions-expected.txt @@ -159,7 +159,7 @@ }, "end": { "line": 18, - "column": 38, + "column": 37, "program": "boxingUnboxingExpressions.ets" } } @@ -172,7 +172,7 @@ }, "end": { "line": 18, - "column": 38, + "column": 37, "program": "boxingUnboxingExpressions.ets" } } @@ -273,7 +273,7 @@ }, "end": { "line": 19, - "column": 25, + "column": 23, "program": "boxingUnboxingExpressions.ets" } } @@ -286,7 +286,7 @@ }, "end": { "line": 19, - "column": 25, + "column": 23, "program": "boxingUnboxingExpressions.ets" } } @@ -498,7 +498,7 @@ }, "end": { "line": 21, - "column": 32, + "column": 31, "program": "boxingUnboxingExpressions.ets" } } @@ -511,7 +511,7 @@ }, "end": { "line": 21, - "column": 32, + "column": 31, "program": "boxingUnboxingExpressions.ets" } } @@ -613,7 +613,7 @@ }, "end": { "line": 22, - "column": 22, + "column": 20, "program": "boxingUnboxingExpressions.ets" } } @@ -626,7 +626,7 @@ }, "end": { "line": 22, - "column": 22, + "column": 20, "program": "boxingUnboxingExpressions.ets" } } @@ -838,7 +838,7 @@ }, "end": { "line": 24, - "column": 34, + "column": 33, "program": "boxingUnboxingExpressions.ets" } } @@ -851,7 +851,7 @@ }, "end": { "line": 24, - "column": 34, + "column": 33, "program": "boxingUnboxingExpressions.ets" } } @@ -953,7 +953,7 @@ }, "end": { "line": 25, - "column": 23, + "column": 21, "program": "boxingUnboxingExpressions.ets" } } @@ -966,7 +966,7 @@ }, "end": { "line": 25, - "column": 23, + "column": 21, "program": "boxingUnboxingExpressions.ets" } } @@ -1066,7 +1066,7 @@ }, "end": { "line": 26, - "column": 23, + "column": 21, "program": "boxingUnboxingExpressions.ets" } } @@ -1079,7 +1079,7 @@ }, "end": { "line": 26, - "column": 23, + "column": 21, "program": "boxingUnboxingExpressions.ets" } } @@ -1210,7 +1210,7 @@ }, "end": { "line": 27, - "column": 32, + "column": 31, "program": "boxingUnboxingExpressions.ets" } } @@ -1223,7 +1223,7 @@ }, "end": { "line": 27, - "column": 32, + "column": 31, "program": "boxingUnboxingExpressions.ets" } } @@ -1324,7 +1324,7 @@ }, "end": { "line": 28, - "column": 22, + "column": 20, "program": "boxingUnboxingExpressions.ets" } } @@ -1337,7 +1337,7 @@ }, "end": { "line": 28, - "column": 22, + "column": 20, "program": "boxingUnboxingExpressions.ets" } } @@ -1468,7 +1468,7 @@ }, "end": { "line": 29, - "column": 30, + "column": 29, "program": "boxingUnboxingExpressions.ets" } } @@ -1481,7 +1481,7 @@ }, "end": { "line": 29, - "column": 30, + "column": 29, "program": "boxingUnboxingExpressions.ets" } } @@ -1582,7 +1582,7 @@ }, "end": { "line": 30, - "column": 21, + "column": 19, "program": "boxingUnboxingExpressions.ets" } } @@ -1595,7 +1595,7 @@ }, "end": { "line": 30, - "column": 21, + "column": 19, "program": "boxingUnboxingExpressions.ets" } } @@ -1695,7 +1695,7 @@ }, "end": { "line": 31, - "column": 21, + "column": 19, "program": "boxingUnboxingExpressions.ets" } } @@ -1708,7 +1708,7 @@ }, "end": { "line": 31, - "column": 21, + "column": 19, "program": "boxingUnboxingExpressions.ets" } } @@ -1808,7 +1808,7 @@ }, "end": { "line": 32, - "column": 21, + "column": 19, "program": "boxingUnboxingExpressions.ets" } } @@ -1821,7 +1821,7 @@ }, "end": { "line": 32, - "column": 21, + "column": 19, "program": "boxingUnboxingExpressions.ets" } } @@ -1952,7 +1952,7 @@ }, "end": { "line": 33, - "column": 32, + "column": 31, "program": "boxingUnboxingExpressions.ets" } } @@ -1965,7 +1965,7 @@ }, "end": { "line": 33, - "column": 32, + "column": 31, "program": "boxingUnboxingExpressions.ets" } } @@ -2066,7 +2066,7 @@ }, "end": { "line": 34, - "column": 22, + "column": 20, "program": "boxingUnboxingExpressions.ets" } } @@ -2079,7 +2079,7 @@ }, "end": { "line": 34, - "column": 22, + "column": 20, "program": "boxingUnboxingExpressions.ets" } } @@ -2291,7 +2291,7 @@ }, "end": { "line": 36, - "column": 34, + "column": 33, "program": "boxingUnboxingExpressions.ets" } } @@ -2304,7 +2304,7 @@ }, "end": { "line": 36, - "column": 34, + "column": 33, "program": "boxingUnboxingExpressions.ets" } } @@ -2406,7 +2406,7 @@ }, "end": { "line": 37, - "column": 23, + "column": 21, "program": "boxingUnboxingExpressions.ets" } } @@ -2419,7 +2419,7 @@ }, "end": { "line": 37, - "column": 23, + "column": 21, "program": "boxingUnboxingExpressions.ets" } } @@ -2551,7 +2551,7 @@ }, "end": { "line": 38, - "column": 36, + "column": 35, "program": "boxingUnboxingExpressions.ets" } } @@ -2564,7 +2564,7 @@ }, "end": { "line": 38, - "column": 36, + "column": 35, "program": "boxingUnboxingExpressions.ets" } } @@ -2665,7 +2665,7 @@ }, "end": { "line": 39, - "column": 24, + "column": 22, "program": "boxingUnboxingExpressions.ets" } } @@ -2678,7 +2678,7 @@ }, "end": { "line": 39, - "column": 24, + "column": 22, "program": "boxingUnboxingExpressions.ets" } } @@ -3048,7 +3048,7 @@ }, "end": { "line": 43, - "column": 33, + "column": 32, "program": "boxingUnboxingExpressions.ets" } } @@ -3061,7 +3061,7 @@ }, "end": { "line": 43, - "column": 33, + "column": 32, "program": "boxingUnboxingExpressions.ets" } } @@ -3075,7 +3075,7 @@ }, "end": { "line": 43, - "column": 33, + "column": 32, "program": "boxingUnboxingExpressions.ets" } } @@ -3088,7 +3088,7 @@ }, "end": { "line": 43, - "column": 33, + "column": 32, "program": "boxingUnboxingExpressions.ets" } } @@ -3418,7 +3418,7 @@ }, "end": { "line": 45, - "column": 27, + "column": 26, "program": "boxingUnboxingExpressions.ets" } } @@ -3431,7 +3431,7 @@ }, "end": { "line": 45, - "column": 27, + "column": 26, "program": "boxingUnboxingExpressions.ets" } } @@ -3445,7 +3445,7 @@ }, "end": { "line": 45, - "column": 27, + "column": 26, "program": "boxingUnboxingExpressions.ets" } } @@ -3458,7 +3458,7 @@ }, "end": { "line": 45, - "column": 27, + "column": 26, "program": "boxingUnboxingExpressions.ets" } } @@ -3788,7 +3788,7 @@ }, "end": { "line": 47, - "column": 29, + "column": 28, "program": "boxingUnboxingExpressions.ets" } } @@ -3801,7 +3801,7 @@ }, "end": { "line": 47, - "column": 29, + "column": 28, "program": "boxingUnboxingExpressions.ets" } } @@ -3815,7 +3815,7 @@ }, "end": { "line": 47, - "column": 29, + "column": 28, "program": "boxingUnboxingExpressions.ets" } } @@ -3828,7 +3828,7 @@ }, "end": { "line": 47, - "column": 29, + "column": 28, "program": "boxingUnboxingExpressions.ets" } } @@ -4158,7 +4158,7 @@ }, "end": { "line": 49, - "column": 27, + "column": 26, "program": "boxingUnboxingExpressions.ets" } } @@ -4171,7 +4171,7 @@ }, "end": { "line": 49, - "column": 27, + "column": 26, "program": "boxingUnboxingExpressions.ets" } } @@ -4185,7 +4185,7 @@ }, "end": { "line": 49, - "column": 27, + "column": 26, "program": "boxingUnboxingExpressions.ets" } } @@ -4198,7 +4198,7 @@ }, "end": { "line": 49, - "column": 27, + "column": 26, "program": "boxingUnboxingExpressions.ets" } } @@ -4528,7 +4528,7 @@ }, "end": { "line": 51, - "column": 29, + "column": 28, "program": "boxingUnboxingExpressions.ets" } } @@ -4541,7 +4541,7 @@ }, "end": { "line": 51, - "column": 29, + "column": 28, "program": "boxingUnboxingExpressions.ets" } } @@ -4555,7 +4555,7 @@ }, "end": { "line": 51, - "column": 29, + "column": 28, "program": "boxingUnboxingExpressions.ets" } } @@ -4568,7 +4568,7 @@ }, "end": { "line": 51, - "column": 29, + "column": 28, "program": "boxingUnboxingExpressions.ets" } } @@ -4898,7 +4898,7 @@ }, "end": { "line": 53, - "column": 27, + "column": 26, "program": "boxingUnboxingExpressions.ets" } } @@ -4911,7 +4911,7 @@ }, "end": { "line": 53, - "column": 27, + "column": 26, "program": "boxingUnboxingExpressions.ets" } } @@ -4925,7 +4925,7 @@ }, "end": { "line": 53, - "column": 27, + "column": 26, "program": "boxingUnboxingExpressions.ets" } } @@ -4938,7 +4938,7 @@ }, "end": { "line": 53, - "column": 27, + "column": 26, "program": "boxingUnboxingExpressions.ets" } } @@ -5268,7 +5268,7 @@ }, "end": { "line": 55, - "column": 29, + "column": 28, "program": "boxingUnboxingExpressions.ets" } } @@ -5281,7 +5281,7 @@ }, "end": { "line": 55, - "column": 29, + "column": 28, "program": "boxingUnboxingExpressions.ets" } } @@ -5295,7 +5295,7 @@ }, "end": { "line": 55, - "column": 29, + "column": 28, "program": "boxingUnboxingExpressions.ets" } } @@ -5308,7 +5308,7 @@ }, "end": { "line": 55, - "column": 29, + "column": 28, "program": "boxingUnboxingExpressions.ets" } } @@ -5638,7 +5638,7 @@ }, "end": { "line": 57, - "column": 31, + "column": 30, "program": "boxingUnboxingExpressions.ets" } } @@ -5651,7 +5651,7 @@ }, "end": { "line": 57, - "column": 31, + "column": 30, "program": "boxingUnboxingExpressions.ets" } } @@ -5665,7 +5665,7 @@ }, "end": { "line": 57, - "column": 31, + "column": 30, "program": "boxingUnboxingExpressions.ets" } } @@ -5678,7 +5678,7 @@ }, "end": { "line": 57, - "column": 31, + "column": 30, "program": "boxingUnboxingExpressions.ets" } } @@ -5908,7 +5908,7 @@ }, "end": { "line": 60, - "column": 43, + "column": 42, "program": "boxingUnboxingExpressions.ets" } } @@ -5921,7 +5921,7 @@ }, "end": { "line": 60, - "column": 43, + "column": 42, "program": "boxingUnboxingExpressions.ets" } } @@ -6249,7 +6249,7 @@ }, "end": { "line": 63, - "column": 37, + "column": 36, "program": "boxingUnboxingExpressions.ets" } } @@ -6262,7 +6262,7 @@ }, "end": { "line": 63, - "column": 37, + "column": 36, "program": "boxingUnboxingExpressions.ets" } } @@ -6592,7 +6592,7 @@ }, "end": { "line": 66, - "column": 39, + "column": 38, "program": "boxingUnboxingExpressions.ets" } } @@ -6605,7 +6605,7 @@ }, "end": { "line": 66, - "column": 39, + "column": 38, "program": "boxingUnboxingExpressions.ets" } } @@ -6854,7 +6854,7 @@ }, "end": { "line": 68, - "column": 37, + "column": 36, "program": "boxingUnboxingExpressions.ets" } } @@ -6867,7 +6867,7 @@ }, "end": { "line": 68, - "column": 37, + "column": 36, "program": "boxingUnboxingExpressions.ets" } } @@ -7114,7 +7114,7 @@ }, "end": { "line": 70, - "column": 39, + "column": 38, "program": "boxingUnboxingExpressions.ets" } } @@ -7127,7 +7127,7 @@ }, "end": { "line": 70, - "column": 39, + "column": 38, "program": "boxingUnboxingExpressions.ets" } } @@ -7374,7 +7374,7 @@ }, "end": { "line": 72, - "column": 37, + "column": 36, "program": "boxingUnboxingExpressions.ets" } } @@ -7387,7 +7387,7 @@ }, "end": { "line": 72, - "column": 37, + "column": 36, "program": "boxingUnboxingExpressions.ets" } } @@ -7715,7 +7715,7 @@ }, "end": { "line": 75, - "column": 39, + "column": 38, "program": "boxingUnboxingExpressions.ets" } } @@ -7728,7 +7728,7 @@ }, "end": { "line": 75, - "column": 39, + "column": 38, "program": "boxingUnboxingExpressions.ets" } } @@ -7977,7 +7977,7 @@ }, "end": { "line": 77, - "column": 41, + "column": 40, "program": "boxingUnboxingExpressions.ets" } } @@ -7990,7 +7990,7 @@ }, "end": { "line": 77, - "column": 41, + "column": 40, "program": "boxingUnboxingExpressions.ets" } } diff --git a/ets2panda/test/compiler/ets/catch-soft-keyword-expected.txt b/ets2panda/test/compiler/ets/catch-soft-keyword-expected.txt index 00b03aa72af595fe5a3c7186233ebeafafb76f48..039d935533cfe41123e36518018bb98d42497496 100644 --- a/ets2panda/test/compiler/ets/catch-soft-keyword-expected.txt +++ b/ets2panda/test/compiler/ets/catch-soft-keyword-expected.txt @@ -884,7 +884,7 @@ }, "end": { "line": 26, - "column": 29, + "column": 28, "program": "catch-soft-keyword.ets" } } @@ -897,7 +897,7 @@ }, "end": { "line": 26, - "column": 29, + "column": 28, "program": "catch-soft-keyword.ets" } } diff --git a/ets2panda/test/compiler/ets/catchParamScope-expected.txt b/ets2panda/test/compiler/ets/catchParamScope-expected.txt index c2a99cefe1181218ee130e7875277c7f5dc9c22d..2f2ba3007ed515ed5574d8a9a08a034b62152f68 100644 --- a/ets2panda/test/compiler/ets/catchParamScope-expected.txt +++ b/ets2panda/test/compiler/ets/catchParamScope-expected.txt @@ -213,7 +213,7 @@ }, "end": { "line": 16, - "column": 31, + "column": 30, "program": "catchParamScope.ets" } } @@ -226,7 +226,7 @@ }, "end": { "line": 16, - "column": 31, + "column": 30, "program": "catchParamScope.ets" } } @@ -240,7 +240,7 @@ }, "end": { "line": 16, - "column": 31, + "column": 30, "program": "catchParamScope.ets" } } @@ -253,7 +253,7 @@ }, "end": { "line": 16, - "column": 31, + "column": 30, "program": "catchParamScope.ets" } } @@ -615,7 +615,7 @@ }, "end": { "line": 22, - "column": 35, + "column": 34, "program": "catchParamScope.ets" } } @@ -628,7 +628,7 @@ }, "end": { "line": 22, - "column": 35, + "column": 34, "program": "catchParamScope.ets" } } diff --git a/ets2panda/test/compiler/ets/class_def_varargs_1-expected.txt b/ets2panda/test/compiler/ets/class_def_varargs_1-expected.txt index 3a4ffec7a6a25dc4e3525cb8212e7cfc84e8f277..a725c49c81634914fe186d4e20dc44f8970de685 100644 --- a/ets2panda/test/compiler/ets/class_def_varargs_1-expected.txt +++ b/ets2panda/test/compiler/ets/class_def_varargs_1-expected.txt @@ -567,7 +567,7 @@ }, "end": { "line": 18, - "column": 40, + "column": 39, "program": "class_def_varargs_1.ets" } } @@ -580,7 +580,7 @@ }, "end": { "line": 18, - "column": 40, + "column": 39, "program": "class_def_varargs_1.ets" } } @@ -607,7 +607,7 @@ }, "end": { "line": 18, - "column": 42, + "column": 40, "program": "class_def_varargs_1.ets" } } @@ -620,7 +620,7 @@ }, "end": { "line": 18, - "column": 42, + "column": 40, "program": "class_def_varargs_1.ets" } } @@ -754,7 +754,7 @@ }, "end": { "line": 19, - "column": 29, + "column": 28, "program": "class_def_varargs_1.ets" } } @@ -767,7 +767,7 @@ }, "end": { "line": 19, - "column": 29, + "column": 28, "program": "class_def_varargs_1.ets" } } @@ -794,7 +794,7 @@ }, "end": { "line": 19, - "column": 30, + "column": 29, "program": "class_def_varargs_1.ets" } } @@ -807,7 +807,7 @@ }, "end": { "line": 19, - "column": 30, + "column": 29, "program": "class_def_varargs_1.ets" } } diff --git a/ets2panda/test/compiler/ets/class_def_varargs_2-expected.txt b/ets2panda/test/compiler/ets/class_def_varargs_2-expected.txt index 41f57b170792e5171b057366184dd8e70dfb734a..39caaea5f40907c648914e8c429389cb04546c08 100644 --- a/ets2panda/test/compiler/ets/class_def_varargs_2-expected.txt +++ b/ets2panda/test/compiler/ets/class_def_varargs_2-expected.txt @@ -550,7 +550,7 @@ }, "end": { "line": 21, - "column": 19, + "column": 18, "program": "class_def_varargs_2.ets" } } @@ -563,7 +563,7 @@ }, "end": { "line": 21, - "column": 19, + "column": 18, "program": "class_def_varargs_2.ets" } } @@ -663,7 +663,7 @@ }, "end": { "line": 22, - "column": 15, + "column": 14, "program": "class_def_varargs_2.ets" } } @@ -676,7 +676,7 @@ }, "end": { "line": 22, - "column": 15, + "column": 14, "program": "class_def_varargs_2.ets" } } diff --git a/ets2panda/test/compiler/ets/conversion-w-ASExpr-expected.txt b/ets2panda/test/compiler/ets/conversion-w-ASExpr-expected.txt index 22661874e6700b45ab2622d7b46e806dd22564e7..d41f4f5ba9681076bf75b42d84b61ef54b4df8c4 100644 --- a/ets2panda/test/compiler/ets/conversion-w-ASExpr-expected.txt +++ b/ets2panda/test/compiler/ets/conversion-w-ASExpr-expected.txt @@ -234,7 +234,7 @@ }, "end": { "line": 17, - "column": 23, + "column": 21, "program": "conversion-w-ASExpr.ets" } } @@ -247,7 +247,7 @@ }, "end": { "line": 17, - "column": 23, + "column": 21, "program": "conversion-w-ASExpr.ets" } } @@ -377,7 +377,7 @@ }, "end": { "line": 18, - "column": 25, + "column": 23, "program": "conversion-w-ASExpr.ets" } } @@ -390,7 +390,7 @@ }, "end": { "line": 18, - "column": 25, + "column": 23, "program": "conversion-w-ASExpr.ets" } } @@ -520,7 +520,7 @@ }, "end": { "line": 19, - "column": 23, + "column": 21, "program": "conversion-w-ASExpr.ets" } } @@ -533,7 +533,7 @@ }, "end": { "line": 19, - "column": 23, + "column": 21, "program": "conversion-w-ASExpr.ets" } } @@ -663,7 +663,7 @@ }, "end": { "line": 20, - "column": 22, + "column": 20, "program": "conversion-w-ASExpr.ets" } } @@ -676,7 +676,7 @@ }, "end": { "line": 20, - "column": 22, + "column": 20, "program": "conversion-w-ASExpr.ets" } } @@ -806,7 +806,7 @@ }, "end": { "line": 21, - "column": 29, + "column": 27, "program": "conversion-w-ASExpr.ets" } } @@ -819,7 +819,7 @@ }, "end": { "line": 21, - "column": 29, + "column": 27, "program": "conversion-w-ASExpr.ets" } } @@ -949,7 +949,7 @@ }, "end": { "line": 22, - "column": 22, + "column": 20, "program": "conversion-w-ASExpr.ets" } } @@ -962,7 +962,7 @@ }, "end": { "line": 22, - "column": 22, + "column": 20, "program": "conversion-w-ASExpr.ets" } } @@ -1062,7 +1062,7 @@ }, "end": { "line": 23, - "column": 25, + "column": 23, "program": "conversion-w-ASExpr.ets" } } @@ -1075,7 +1075,7 @@ }, "end": { "line": 23, - "column": 25, + "column": 23, "program": "conversion-w-ASExpr.ets" } } @@ -1205,7 +1205,7 @@ }, "end": { "line": 24, - "column": 33, + "column": 31, "program": "conversion-w-ASExpr.ets" } } @@ -1218,7 +1218,7 @@ }, "end": { "line": 24, - "column": 33, + "column": 31, "program": "conversion-w-ASExpr.ets" } } @@ -1348,7 +1348,7 @@ }, "end": { "line": 25, - "column": 28, + "column": 26, "program": "conversion-w-ASExpr.ets" } } @@ -1361,7 +1361,7 @@ }, "end": { "line": 25, - "column": 28, + "column": 26, "program": "conversion-w-ASExpr.ets" } } @@ -1491,7 +1491,7 @@ }, "end": { "line": 28, - "column": 28, + "column": 26, "program": "conversion-w-ASExpr.ets" } } @@ -1504,7 +1504,7 @@ }, "end": { "line": 28, - "column": 28, + "column": 26, "program": "conversion-w-ASExpr.ets" } } @@ -1655,7 +1655,7 @@ }, "end": { "line": 29, - "column": 27, + "column": 25, "program": "conversion-w-ASExpr.ets" } } @@ -1668,7 +1668,7 @@ }, "end": { "line": 29, - "column": 27, + "column": 25, "program": "conversion-w-ASExpr.ets" } } @@ -1819,7 +1819,7 @@ }, "end": { "line": 30, - "column": 24, + "column": 22, "program": "conversion-w-ASExpr.ets" } } @@ -1832,7 +1832,7 @@ }, "end": { "line": 30, - "column": 24, + "column": 22, "program": "conversion-w-ASExpr.ets" } } diff --git a/ets2panda/test/compiler/ets/conversion_w_functions-expected.txt b/ets2panda/test/compiler/ets/conversion_w_functions-expected.txt index 35040cc0c84a29be8c43697fd964f88b18f5bf27..4f48c67640da6ab4e928bce932e870f1ea0c4e43 100644 --- a/ets2panda/test/compiler/ets/conversion_w_functions-expected.txt +++ b/ets2panda/test/compiler/ets/conversion_w_functions-expected.txt @@ -612,7 +612,7 @@ }, "end": { "line": 24, - "column": 25, + "column": 23, "program": "conversion_w_functions.ets" } } @@ -625,7 +625,7 @@ }, "end": { "line": 24, - "column": 25, + "column": 23, "program": "conversion_w_functions.ets" } } @@ -883,7 +883,7 @@ }, "end": { "line": 28, - "column": 27, + "column": 25, "program": "conversion_w_functions.ets" } } @@ -896,7 +896,7 @@ }, "end": { "line": 28, - "column": 27, + "column": 25, "program": "conversion_w_functions.ets" } } @@ -1154,7 +1154,7 @@ }, "end": { "line": 32, - "column": 25, + "column": 23, "program": "conversion_w_functions.ets" } } @@ -1167,7 +1167,7 @@ }, "end": { "line": 32, - "column": 25, + "column": 23, "program": "conversion_w_functions.ets" } } @@ -1425,7 +1425,7 @@ }, "end": { "line": 36, - "column": 24, + "column": 22, "program": "conversion_w_functions.ets" } } @@ -1438,7 +1438,7 @@ }, "end": { "line": 36, - "column": 24, + "column": 22, "program": "conversion_w_functions.ets" } } @@ -1696,7 +1696,7 @@ }, "end": { "line": 40, - "column": 31, + "column": 29, "program": "conversion_w_functions.ets" } } @@ -1709,7 +1709,7 @@ }, "end": { "line": 40, - "column": 31, + "column": 29, "program": "conversion_w_functions.ets" } } @@ -1967,7 +1967,7 @@ }, "end": { "line": 44, - "column": 24, + "column": 22, "program": "conversion_w_functions.ets" } } @@ -1980,7 +1980,7 @@ }, "end": { "line": 44, - "column": 24, + "column": 22, "program": "conversion_w_functions.ets" } } @@ -2238,7 +2238,7 @@ }, "end": { "line": 48, - "column": 27, + "column": 25, "program": "conversion_w_functions.ets" } } @@ -2251,7 +2251,7 @@ }, "end": { "line": 48, - "column": 27, + "column": 25, "program": "conversion_w_functions.ets" } } @@ -2509,7 +2509,7 @@ }, "end": { "line": 52, - "column": 35, + "column": 33, "program": "conversion_w_functions.ets" } } @@ -2522,7 +2522,7 @@ }, "end": { "line": 52, - "column": 35, + "column": 33, "program": "conversion_w_functions.ets" } } @@ -2780,7 +2780,7 @@ }, "end": { "line": 56, - "column": 30, + "column": 28, "program": "conversion_w_functions.ets" } } @@ -2793,7 +2793,7 @@ }, "end": { "line": 56, - "column": 30, + "column": 28, "program": "conversion_w_functions.ets" } } @@ -3051,7 +3051,7 @@ }, "end": { "line": 60, - "column": 30, + "column": 28, "program": "conversion_w_functions.ets" } } @@ -3064,7 +3064,7 @@ }, "end": { "line": 60, - "column": 30, + "column": 28, "program": "conversion_w_functions.ets" } } @@ -3322,7 +3322,7 @@ }, "end": { "line": 64, - "column": 29, + "column": 27, "program": "conversion_w_functions.ets" } } @@ -3335,7 +3335,7 @@ }, "end": { "line": 64, - "column": 29, + "column": 27, "program": "conversion_w_functions.ets" } } @@ -3593,7 +3593,7 @@ }, "end": { "line": 68, - "column": 26, + "column": 24, "program": "conversion_w_functions.ets" } } @@ -3606,7 +3606,7 @@ }, "end": { "line": 68, - "column": 26, + "column": 24, "program": "conversion_w_functions.ets" } } diff --git a/ets2panda/test/compiler/ets/ensureNotNullArgNotNullable-expected.txt b/ets2panda/test/compiler/ets/ensureNotNullArgNotNullable-expected.txt index d7785640f8e0ee9ec3db282a23d7f349da241e00..6039423c91ff0efcebdac6b43a76b1a3872f4c8e 100644 --- a/ets2panda/test/compiler/ets/ensureNotNullArgNotNullable-expected.txt +++ b/ets2panda/test/compiler/ets/ensureNotNullArgNotNullable-expected.txt @@ -52,7 +52,7 @@ }, "end": { "line": 16, - "column": 17, + "column": 16, "program": "ensureNotNullArgNotNullable.ets" } } @@ -65,7 +65,7 @@ }, "end": { "line": 16, - "column": 17, + "column": 16, "program": "ensureNotNullArgNotNullable.ets" } } @@ -324,7 +324,7 @@ }, "end": { "line": 18, - "column": 22, + "column": 21, "program": "ensureNotNullArgNotNullable.ets" } } @@ -337,7 +337,7 @@ }, "end": { "line": 18, - "column": 22, + "column": 21, "program": "ensureNotNullArgNotNullable.ets" } } @@ -351,7 +351,7 @@ }, "end": { "line": 18, - "column": 22, + "column": 21, "program": "ensureNotNullArgNotNullable.ets" } } @@ -364,7 +364,7 @@ }, "end": { "line": 18, - "column": 22, + "column": 21, "program": "ensureNotNullArgNotNullable.ets" } } diff --git a/ets2panda/test/compiler/ets/ensureNotNullReturnNotNullable-expected.txt b/ets2panda/test/compiler/ets/ensureNotNullReturnNotNullable-expected.txt index 0d0389239ba3003ef9c3a9ea3956f7cb35d559e6..59db2846da251ee4a6ee427f758cf899efec66ce 100644 --- a/ets2panda/test/compiler/ets/ensureNotNullReturnNotNullable-expected.txt +++ b/ets2panda/test/compiler/ets/ensureNotNullReturnNotNullable-expected.txt @@ -211,7 +211,7 @@ }, "end": { "line": 16, - "column": 26, + "column": 24, "program": "ensureNotNullReturnNotNullable.ets" } } @@ -224,7 +224,7 @@ }, "end": { "line": 16, - "column": 26, + "column": 24, "program": "ensureNotNullReturnNotNullable.ets" } } @@ -294,7 +294,7 @@ }, "end": { "line": 17, - "column": 21, + "column": 20, "program": "ensureNotNullReturnNotNullable.ets" } } @@ -307,7 +307,7 @@ }, "end": { "line": 17, - "column": 21, + "column": 20, "program": "ensureNotNullReturnNotNullable.ets" } } diff --git a/ets2panda/test/compiler/ets/enum_as_class_member_getValue_call-expected.txt b/ets2panda/test/compiler/ets/enum_as_class_member_getValue_call-expected.txt index 09c65034d23ab3e4d3d6da93e197d30dc4142b88..e2f3506d0ef93935641aa282e1519c82f6b60002 100644 --- a/ets2panda/test/compiler/ets/enum_as_class_member_getValue_call-expected.txt +++ b/ets2panda/test/compiler/ets/enum_as_class_member_getValue_call-expected.txt @@ -10346,7 +10346,7 @@ }, "end": { "line": 33, - "column": 23, + "column": 22, "program": "enum_as_class_member_getValue_call.ets" } } @@ -10359,7 +10359,7 @@ }, "end": { "line": 33, - "column": 23, + "column": 22, "program": "enum_as_class_member_getValue_call.ets" } } @@ -10374,7 +10374,7 @@ }, "end": { "line": 33, - "column": 23, + "column": 22, "program": "enum_as_class_member_getValue_call.ets" } } @@ -10433,7 +10433,7 @@ }, "end": { "line": 34, - "column": 25, + "column": 24, "program": "enum_as_class_member_getValue_call.ets" } } @@ -10446,7 +10446,7 @@ }, "end": { "line": 34, - "column": 25, + "column": 24, "program": "enum_as_class_member_getValue_call.ets" } } @@ -10461,7 +10461,7 @@ }, "end": { "line": 34, - "column": 25, + "column": 24, "program": "enum_as_class_member_getValue_call.ets" } } @@ -10549,7 +10549,7 @@ }, "end": { "line": 36, - "column": 28, + "column": 27, "program": "enum_as_class_member_getValue_call.ets" } } @@ -10562,7 +10562,7 @@ }, "end": { "line": 36, - "column": 28, + "column": 27, "program": "enum_as_class_member_getValue_call.ets" } } @@ -10576,7 +10576,7 @@ }, "end": { "line": 36, - "column": 28, + "column": 27, "program": "enum_as_class_member_getValue_call.ets" } } @@ -10589,7 +10589,7 @@ }, "end": { "line": 36, - "column": 28, + "column": 27, "program": "enum_as_class_member_getValue_call.ets" } } @@ -10628,7 +10628,7 @@ }, "end": { "line": 36, - "column": 42, + "column": 41, "program": "enum_as_class_member_getValue_call.ets" } } @@ -10641,7 +10641,7 @@ }, "end": { "line": 36, - "column": 42, + "column": 41, "program": "enum_as_class_member_getValue_call.ets" } } @@ -10655,7 +10655,7 @@ }, "end": { "line": 36, - "column": 42, + "column": 41, "program": "enum_as_class_member_getValue_call.ets" } } @@ -10668,7 +10668,7 @@ }, "end": { "line": 36, - "column": 42, + "column": 41, "program": "enum_as_class_member_getValue_call.ets" } } diff --git a/ets2panda/test/compiler/ets/export_type-expected.txt b/ets2panda/test/compiler/ets/export_type-expected.txt index 28f42dc57644beeddcf14ff40c162cb5c9c0ee0a..180a05d27842bcaf60e6a9138e0241d5e79b0fcd 100644 --- a/ets2panda/test/compiler/ets/export_type-expected.txt +++ b/ets2panda/test/compiler/ets/export_type-expected.txt @@ -199,8 +199,8 @@ "program": "export_type.ets" }, "end": { - "line": 19, - "column": 7, + "line": 17, + "column": 15, "program": "export_type.ets" } } diff --git a/ets2panda/test/compiler/ets/extended_conditional_expression_not-expected.txt b/ets2panda/test/compiler/ets/extended_conditional_expression_not-expected.txt index 81df74579757434e875c75a5c04dea3924281dc8..c75e1bfea3dd1fd58f7a7acc5b58dc581c5fcce2 100644 --- a/ets2panda/test/compiler/ets/extended_conditional_expression_not-expected.txt +++ b/ets2panda/test/compiler/ets/extended_conditional_expression_not-expected.txt @@ -319,7 +319,7 @@ }, "end": { "line": 16, - "column": 22, + "column": 21, "program": "extended_conditional_expression_not.ets" } } @@ -332,7 +332,7 @@ }, "end": { "line": 16, - "column": 22, + "column": 21, "program": "extended_conditional_expression_not.ets" } } @@ -346,7 +346,7 @@ }, "end": { "line": 16, - "column": 22, + "column": 21, "program": "extended_conditional_expression_not.ets" } } @@ -359,7 +359,7 @@ }, "end": { "line": 16, - "column": 22, + "column": 21, "program": "extended_conditional_expression_not.ets" } } diff --git a/ets2panda/test/compiler/ets/extended_conditional_expression_not_return_type-expected.txt b/ets2panda/test/compiler/ets/extended_conditional_expression_not_return_type-expected.txt index 5625d266707db6c3ed357f4919a8f050cfba1406..acf957b85862673f485127ceeaada0f1d21edaeb 100644 --- a/ets2panda/test/compiler/ets/extended_conditional_expression_not_return_type-expected.txt +++ b/ets2panda/test/compiler/ets/extended_conditional_expression_not_return_type-expected.txt @@ -319,7 +319,7 @@ }, "end": { "line": 16, - "column": 22, + "column": 21, "program": "extended_conditional_expression_not_return_type.ets" } } @@ -332,7 +332,7 @@ }, "end": { "line": 16, - "column": 22, + "column": 21, "program": "extended_conditional_expression_not_return_type.ets" } } @@ -346,7 +346,7 @@ }, "end": { "line": 16, - "column": 22, + "column": 21, "program": "extended_conditional_expression_not_return_type.ets" } } @@ -359,7 +359,7 @@ }, "end": { "line": 16, - "column": 22, + "column": 21, "program": "extended_conditional_expression_not_return_type.ets" } } diff --git a/ets2panda/test/compiler/ets/forUpdateCharType-expected.txt b/ets2panda/test/compiler/ets/forUpdateCharType-expected.txt index a1126a66effbb716e2a52e6bc171b000156d82b8..1fe79384e17ea45ee282a0af6fccb91c0d4f7ca9 100644 --- a/ets2panda/test/compiler/ets/forUpdateCharType-expected.txt +++ b/ets2panda/test/compiler/ets/forUpdateCharType-expected.txt @@ -234,7 +234,7 @@ }, "end": { "line": 17, - "column": 26, + "column": 24, "program": "forUpdateCharType.ets" } } @@ -247,7 +247,7 @@ }, "end": { "line": 17, - "column": 26, + "column": 24, "program": "forUpdateCharType.ets" } } diff --git a/ets2panda/test/compiler/ets/from-soft-keyword-2-expected.txt b/ets2panda/test/compiler/ets/from-soft-keyword-2-expected.txt index f154bc195c93f2be61e1cdac28f8d24e70553a81..4fecb7830e46516d3e6b3d0235442841a7af576a 100644 --- a/ets2panda/test/compiler/ets/from-soft-keyword-2-expected.txt +++ b/ets2panda/test/compiler/ets/from-soft-keyword-2-expected.txt @@ -263,8 +263,8 @@ "program": "from-soft-keyword-2.ets" }, "end": { - "line": 22, - "column": 9, + "line": 20, + "column": 2, "program": "from-soft-keyword-2.ets" } } diff --git a/ets2panda/test/compiler/ets/functionPointerArray-expected.txt b/ets2panda/test/compiler/ets/functionPointerArray-expected.txt index 94b9bcf948fd171659f0d82838534c6d7f8516d6..67d0820de086d794b436ee69b7a8384b94f606f5 100644 --- a/ets2panda/test/compiler/ets/functionPointerArray-expected.txt +++ b/ets2panda/test/compiler/ets/functionPointerArray-expected.txt @@ -397,7 +397,7 @@ }, "end": { "line": 20, - "column": 35, + "column": 34, "program": "functionPointerArray.ets" } } @@ -410,7 +410,7 @@ }, "end": { "line": 20, - "column": 35, + "column": 34, "program": "functionPointerArray.ets" } } @@ -424,7 +424,7 @@ }, "end": { "line": 20, - "column": 35, + "column": 34, "program": "functionPointerArray.ets" } } @@ -437,7 +437,7 @@ }, "end": { "line": 20, - "column": 35, + "column": 34, "program": "functionPointerArray.ets" } } @@ -960,7 +960,7 @@ }, "end": { "line": 27, - "column": 21, + "column": 19, "program": "functionPointerArray.ets" } } @@ -973,7 +973,7 @@ }, "end": { "line": 27, - "column": 21, + "column": 19, "program": "functionPointerArray.ets" } } diff --git a/ets2panda/test/compiler/ets/functionTypeToObject-expected.txt b/ets2panda/test/compiler/ets/functionTypeToObject-expected.txt index a3009be51234070f331c9c2d5a838cf3b2c77d52..b32c93e03cfdf39e3694998d1bb846edf3fcb9c9 100644 --- a/ets2panda/test/compiler/ets/functionTypeToObject-expected.txt +++ b/ets2panda/test/compiler/ets/functionTypeToObject-expected.txt @@ -817,7 +817,7 @@ }, "end": { "line": 22, - "column": 20, + "column": 18, "program": "functionTypeToObject.ets" } } @@ -830,7 +830,7 @@ }, "end": { "line": 22, - "column": 20, + "column": 18, "program": "functionTypeToObject.ets" } } diff --git a/ets2panda/test/compiler/ets/function_subtyping_1-expected.txt b/ets2panda/test/compiler/ets/function_subtyping_1-expected.txt index bb165494d6334273a3addccf464ad5b15ae69ebc..18c4ecc8c2423b72effaa5ef56b27f63aa9bd190 100644 --- a/ets2panda/test/compiler/ets/function_subtyping_1-expected.txt +++ b/ets2panda/test/compiler/ets/function_subtyping_1-expected.txt @@ -205,7 +205,7 @@ }, "end": { "line": 17, - "column": 20, + "column": 18, "program": "function_subtyping_1.ets" } } @@ -218,7 +218,7 @@ }, "end": { "line": 17, - "column": 20, + "column": 18, "program": "function_subtyping_1.ets" } } @@ -598,7 +598,7 @@ }, "end": { "line": 20, - "column": 18, + "column": 17, "program": "function_subtyping_1.ets" } } @@ -611,7 +611,7 @@ }, "end": { "line": 20, - "column": 18, + "column": 17, "program": "function_subtyping_1.ets" } } @@ -625,7 +625,7 @@ }, "end": { "line": 20, - "column": 18, + "column": 17, "program": "function_subtyping_1.ets" } } @@ -638,7 +638,7 @@ }, "end": { "line": 20, - "column": 18, + "column": 17, "program": "function_subtyping_1.ets" } } @@ -673,7 +673,7 @@ }, "end": { "line": 20, - "column": 25, + "column": 23, "program": "function_subtyping_1.ets" } } @@ -686,7 +686,7 @@ }, "end": { "line": 20, - "column": 25, + "column": 23, "program": "function_subtyping_1.ets" } } @@ -699,7 +699,7 @@ }, "end": { "line": 20, - "column": 25, + "column": 23, "program": "function_subtyping_1.ets" } } @@ -761,7 +761,7 @@ }, "end": { "line": 20, - "column": 32, + "column": 31, "program": "function_subtyping_1.ets" } } @@ -774,7 +774,7 @@ }, "end": { "line": 20, - "column": 32, + "column": 31, "program": "function_subtyping_1.ets" } } @@ -788,7 +788,7 @@ }, "end": { "line": 20, - "column": 32, + "column": 31, "program": "function_subtyping_1.ets" } } @@ -801,7 +801,7 @@ }, "end": { "line": 20, - "column": 32, + "column": 31, "program": "function_subtyping_1.ets" } } @@ -836,7 +836,7 @@ }, "end": { "line": 20, - "column": 38, + "column": 35, "program": "function_subtyping_1.ets" } } @@ -849,7 +849,7 @@ }, "end": { "line": 20, - "column": 38, + "column": 35, "program": "function_subtyping_1.ets" } } @@ -890,7 +890,7 @@ }, "end": { "line": 20, - "column": 54, + "column": 53, "program": "function_subtyping_1.ets" } } @@ -903,7 +903,7 @@ }, "end": { "line": 20, - "column": 54, + "column": 53, "program": "function_subtyping_1.ets" } } diff --git a/ets2panda/test/compiler/ets/generic_arrayaslist-expected.txt b/ets2panda/test/compiler/ets/generic_arrayaslist-expected.txt index 7bc0e6b17014724a48396384b26eb9bd92b524b9..3ac3c91e50b05165a74d8820a6aef65268093994 100644 --- a/ets2panda/test/compiler/ets/generic_arrayaslist-expected.txt +++ b/ets2panda/test/compiler/ets/generic_arrayaslist-expected.txt @@ -89,7 +89,7 @@ }, "end": { "line": 20, - "column": 20, + "column": 19, "program": "generic_arrayaslist.ets" } } @@ -102,7 +102,7 @@ }, "end": { "line": 20, - "column": 20, + "column": 19, "program": "generic_arrayaslist.ets" } } @@ -116,7 +116,7 @@ }, "end": { "line": 20, - "column": 20, + "column": 19, "program": "generic_arrayaslist.ets" } } @@ -129,7 +129,7 @@ }, "end": { "line": 20, - "column": 20, + "column": 19, "program": "generic_arrayaslist.ets" } } @@ -269,7 +269,7 @@ }, "end": { "line": 21, - "column": 19, + "column": 18, "program": "generic_arrayaslist.ets" } } @@ -282,7 +282,7 @@ }, "end": { "line": 21, - "column": 19, + "column": 18, "program": "generic_arrayaslist.ets" } } @@ -295,7 +295,7 @@ }, "end": { "line": 21, - "column": 19, + "column": 18, "program": "generic_arrayaslist.ets" } } @@ -308,7 +308,7 @@ }, "end": { "line": 21, - "column": 19, + "column": 18, "program": "generic_arrayaslist.ets" } } @@ -411,7 +411,7 @@ }, "end": { "line": 22, - "column": 19, + "column": 18, "program": "generic_arrayaslist.ets" } } @@ -424,7 +424,7 @@ }, "end": { "line": 22, - "column": 19, + "column": 18, "program": "generic_arrayaslist.ets" } } @@ -438,7 +438,7 @@ }, "end": { "line": 22, - "column": 19, + "column": 18, "program": "generic_arrayaslist.ets" } } @@ -451,7 +451,7 @@ }, "end": { "line": 22, - "column": 19, + "column": 18, "program": "generic_arrayaslist.ets" } } @@ -591,7 +591,7 @@ }, "end": { "line": 23, - "column": 18, + "column": 17, "program": "generic_arrayaslist.ets" } } @@ -604,7 +604,7 @@ }, "end": { "line": 23, - "column": 18, + "column": 17, "program": "generic_arrayaslist.ets" } } @@ -617,7 +617,7 @@ }, "end": { "line": 23, - "column": 18, + "column": 17, "program": "generic_arrayaslist.ets" } } @@ -630,7 +630,7 @@ }, "end": { "line": 23, - "column": 18, + "column": 17, "program": "generic_arrayaslist.ets" } } @@ -881,7 +881,7 @@ }, "end": { "line": 26, - "column": 23, + "column": 22, "program": "generic_arrayaslist.ets" } } @@ -894,7 +894,7 @@ }, "end": { "line": 26, - "column": 23, + "column": 22, "program": "generic_arrayaslist.ets" } } @@ -907,7 +907,7 @@ }, "end": { "line": 26, - "column": 23, + "column": 22, "program": "generic_arrayaslist.ets" } } @@ -920,7 +920,7 @@ }, "end": { "line": 26, - "column": 23, + "column": 22, "program": "generic_arrayaslist.ets" } } @@ -1023,7 +1023,7 @@ }, "end": { "line": 27, - "column": 14, + "column": 13, "program": "generic_arrayaslist.ets" } } @@ -1036,7 +1036,7 @@ }, "end": { "line": 27, - "column": 14, + "column": 13, "program": "generic_arrayaslist.ets" } } @@ -1050,7 +1050,7 @@ }, "end": { "line": 27, - "column": 14, + "column": 13, "program": "generic_arrayaslist.ets" } } @@ -1063,7 +1063,7 @@ }, "end": { "line": 27, - "column": 14, + "column": 13, "program": "generic_arrayaslist.ets" } } @@ -1216,7 +1216,7 @@ }, "end": { "line": 29, - "column": 23, + "column": 22, "program": "generic_arrayaslist.ets" } } @@ -1229,7 +1229,7 @@ }, "end": { "line": 29, - "column": 23, + "column": 22, "program": "generic_arrayaslist.ets" } } @@ -1243,7 +1243,7 @@ }, "end": { "line": 29, - "column": 23, + "column": 22, "program": "generic_arrayaslist.ets" } } @@ -1256,7 +1256,7 @@ }, "end": { "line": 29, - "column": 23, + "column": 22, "program": "generic_arrayaslist.ets" } } @@ -1291,7 +1291,7 @@ }, "end": { "line": 29, - "column": 29, + "column": 28, "program": "generic_arrayaslist.ets" } } @@ -1304,7 +1304,7 @@ }, "end": { "line": 29, - "column": 29, + "column": 28, "program": "generic_arrayaslist.ets" } } @@ -1317,7 +1317,7 @@ }, "end": { "line": 29, - "column": 29, + "column": 28, "program": "generic_arrayaslist.ets" } } @@ -1331,7 +1331,7 @@ }, "end": { "line": 29, - "column": 29, + "column": 28, "program": "generic_arrayaslist.ets" } } @@ -1344,7 +1344,7 @@ }, "end": { "line": 29, - "column": 29, + "column": 28, "program": "generic_arrayaslist.ets" } } @@ -1406,7 +1406,7 @@ }, "end": { "line": 29, - "column": 39, + "column": 38, "program": "generic_arrayaslist.ets" } } @@ -1419,7 +1419,7 @@ }, "end": { "line": 29, - "column": 39, + "column": 38, "program": "generic_arrayaslist.ets" } } @@ -1446,7 +1446,7 @@ }, "end": { "line": 29, - "column": 41, + "column": 39, "program": "generic_arrayaslist.ets" } } @@ -1459,7 +1459,7 @@ }, "end": { "line": 29, - "column": 41, + "column": 39, "program": "generic_arrayaslist.ets" } } @@ -1625,7 +1625,7 @@ }, "end": { "line": 30, - "column": 22, + "column": 21, "program": "generic_arrayaslist.ets" } } @@ -1638,7 +1638,7 @@ }, "end": { "line": 30, - "column": 22, + "column": 21, "program": "generic_arrayaslist.ets" } } @@ -1652,7 +1652,7 @@ }, "end": { "line": 30, - "column": 22, + "column": 21, "program": "generic_arrayaslist.ets" } } @@ -1665,7 +1665,7 @@ }, "end": { "line": 30, - "column": 22, + "column": 21, "program": "generic_arrayaslist.ets" } } @@ -1700,7 +1700,7 @@ }, "end": { "line": 30, - "column": 28, + "column": 27, "program": "generic_arrayaslist.ets" } } @@ -1713,7 +1713,7 @@ }, "end": { "line": 30, - "column": 28, + "column": 27, "program": "generic_arrayaslist.ets" } } @@ -1726,7 +1726,7 @@ }, "end": { "line": 30, - "column": 28, + "column": 27, "program": "generic_arrayaslist.ets" } } @@ -1740,7 +1740,7 @@ }, "end": { "line": 30, - "column": 28, + "column": 27, "program": "generic_arrayaslist.ets" } } @@ -1753,7 +1753,7 @@ }, "end": { "line": 30, - "column": 28, + "column": 27, "program": "generic_arrayaslist.ets" } } @@ -1812,7 +1812,7 @@ }, "end": { "line": 30, - "column": 38, + "column": 37, "program": "generic_arrayaslist.ets" } } @@ -1825,7 +1825,7 @@ }, "end": { "line": 30, - "column": 38, + "column": 37, "program": "generic_arrayaslist.ets" } } @@ -1852,7 +1852,7 @@ }, "end": { "line": 30, - "column": 39, + "column": 38, "program": "generic_arrayaslist.ets" } } @@ -1865,7 +1865,7 @@ }, "end": { "line": 30, - "column": 39, + "column": 38, "program": "generic_arrayaslist.ets" } } @@ -1927,7 +1927,7 @@ }, "end": { "line": 30, - "column": 39, + "column": 38, "program": "generic_arrayaslist.ets" } } @@ -1940,7 +1940,7 @@ }, "end": { "line": 30, - "column": 39, + "column": 38, "program": "generic_arrayaslist.ets" } } @@ -2051,7 +2051,7 @@ }, "end": { "line": 31, - "column": 27, + "column": 26, "program": "generic_arrayaslist.ets" } } @@ -2064,7 +2064,7 @@ }, "end": { "line": 31, - "column": 27, + "column": 26, "program": "generic_arrayaslist.ets" } } @@ -2078,7 +2078,7 @@ }, "end": { "line": 31, - "column": 27, + "column": 26, "program": "generic_arrayaslist.ets" } } @@ -2091,7 +2091,7 @@ }, "end": { "line": 31, - "column": 27, + "column": 26, "program": "generic_arrayaslist.ets" } } @@ -2130,7 +2130,7 @@ }, "end": { "line": 31, - "column": 35, + "column": 34, "program": "generic_arrayaslist.ets" } } @@ -2143,7 +2143,7 @@ }, "end": { "line": 31, - "column": 35, + "column": 34, "program": "generic_arrayaslist.ets" } } @@ -2157,7 +2157,7 @@ }, "end": { "line": 31, - "column": 35, + "column": 34, "program": "generic_arrayaslist.ets" } } @@ -2170,7 +2170,7 @@ }, "end": { "line": 31, - "column": 35, + "column": 34, "program": "generic_arrayaslist.ets" } } @@ -2205,7 +2205,7 @@ }, "end": { "line": 31, - "column": 41, + "column": 40, "program": "generic_arrayaslist.ets" } } @@ -2218,7 +2218,7 @@ }, "end": { "line": 31, - "column": 41, + "column": 40, "program": "generic_arrayaslist.ets" } } @@ -2231,7 +2231,7 @@ }, "end": { "line": 31, - "column": 41, + "column": 40, "program": "generic_arrayaslist.ets" } } @@ -2245,7 +2245,7 @@ }, "end": { "line": 31, - "column": 41, + "column": 40, "program": "generic_arrayaslist.ets" } } @@ -2258,7 +2258,7 @@ }, "end": { "line": 31, - "column": 41, + "column": 40, "program": "generic_arrayaslist.ets" } } @@ -2296,7 +2296,7 @@ }, "end": { "line": 31, - "column": 46, + "column": 44, "program": "generic_arrayaslist.ets" } } @@ -2309,7 +2309,7 @@ }, "end": { "line": 31, - "column": 46, + "column": 44, "program": "generic_arrayaslist.ets" } } @@ -2475,7 +2475,7 @@ }, "end": { "line": 32, - "column": 34, + "column": 33, "program": "generic_arrayaslist.ets" } } @@ -2488,7 +2488,7 @@ }, "end": { "line": 32, - "column": 34, + "column": 33, "program": "generic_arrayaslist.ets" } } @@ -2502,7 +2502,7 @@ }, "end": { "line": 32, - "column": 34, + "column": 33, "program": "generic_arrayaslist.ets" } } @@ -2515,7 +2515,7 @@ }, "end": { "line": 32, - "column": 34, + "column": 33, "program": "generic_arrayaslist.ets" } } @@ -2554,7 +2554,7 @@ }, "end": { "line": 32, - "column": 42, + "column": 41, "program": "generic_arrayaslist.ets" } } @@ -2567,7 +2567,7 @@ }, "end": { "line": 32, - "column": 42, + "column": 41, "program": "generic_arrayaslist.ets" } } @@ -2581,7 +2581,7 @@ }, "end": { "line": 32, - "column": 42, + "column": 41, "program": "generic_arrayaslist.ets" } } @@ -2594,7 +2594,7 @@ }, "end": { "line": 32, - "column": 42, + "column": 41, "program": "generic_arrayaslist.ets" } } @@ -2629,7 +2629,7 @@ }, "end": { "line": 32, - "column": 48, + "column": 47, "program": "generic_arrayaslist.ets" } } @@ -2642,7 +2642,7 @@ }, "end": { "line": 32, - "column": 48, + "column": 47, "program": "generic_arrayaslist.ets" } } @@ -2655,7 +2655,7 @@ }, "end": { "line": 32, - "column": 48, + "column": 47, "program": "generic_arrayaslist.ets" } } @@ -2669,7 +2669,7 @@ }, "end": { "line": 32, - "column": 48, + "column": 47, "program": "generic_arrayaslist.ets" } } @@ -2682,7 +2682,7 @@ }, "end": { "line": 32, - "column": 48, + "column": 47, "program": "generic_arrayaslist.ets" } } @@ -2721,7 +2721,7 @@ }, "end": { "line": 32, - "column": 60, + "column": 59, "program": "generic_arrayaslist.ets" } } @@ -2734,7 +2734,7 @@ }, "end": { "line": 32, - "column": 60, + "column": 59, "program": "generic_arrayaslist.ets" } } @@ -2748,7 +2748,7 @@ }, "end": { "line": 32, - "column": 60, + "column": 59, "program": "generic_arrayaslist.ets" } } @@ -2761,7 +2761,7 @@ }, "end": { "line": 32, - "column": 60, + "column": 59, "program": "generic_arrayaslist.ets" } } @@ -2796,7 +2796,7 @@ }, "end": { "line": 32, - "column": 64, + "column": 63, "program": "generic_arrayaslist.ets" } } @@ -2809,7 +2809,7 @@ }, "end": { "line": 32, - "column": 64, + "column": 63, "program": "generic_arrayaslist.ets" } } @@ -2871,7 +2871,7 @@ }, "end": { "line": 32, - "column": 64, + "column": 63, "program": "generic_arrayaslist.ets" } } @@ -2884,7 +2884,7 @@ }, "end": { "line": 32, - "column": 64, + "column": 63, "program": "generic_arrayaslist.ets" } } @@ -2995,7 +2995,7 @@ }, "end": { "line": 33, - "column": 30, + "column": 29, "program": "generic_arrayaslist.ets" } } @@ -3008,7 +3008,7 @@ }, "end": { "line": 33, - "column": 30, + "column": 29, "program": "generic_arrayaslist.ets" } } @@ -3022,7 +3022,7 @@ }, "end": { "line": 33, - "column": 30, + "column": 29, "program": "generic_arrayaslist.ets" } } @@ -3035,7 +3035,7 @@ }, "end": { "line": 33, - "column": 30, + "column": 29, "program": "generic_arrayaslist.ets" } } @@ -3153,7 +3153,7 @@ }, "end": { "line": 33, - "column": 53, + "column": 52, "program": "generic_arrayaslist.ets" } } @@ -3166,7 +3166,7 @@ }, "end": { "line": 33, - "column": 53, + "column": 52, "program": "generic_arrayaslist.ets" } } @@ -3193,7 +3193,7 @@ }, "end": { "line": 33, - "column": 55, + "column": 53, "program": "generic_arrayaslist.ets" } } @@ -3206,7 +3206,7 @@ }, "end": { "line": 33, - "column": 55, + "column": 53, "program": "generic_arrayaslist.ets" } } @@ -3372,7 +3372,7 @@ }, "end": { "line": 34, - "column": 30, + "column": 29, "program": "generic_arrayaslist.ets" } } @@ -3385,7 +3385,7 @@ }, "end": { "line": 34, - "column": 30, + "column": 29, "program": "generic_arrayaslist.ets" } } @@ -3399,7 +3399,7 @@ }, "end": { "line": 34, - "column": 30, + "column": 29, "program": "generic_arrayaslist.ets" } } @@ -3412,7 +3412,7 @@ }, "end": { "line": 34, - "column": 30, + "column": 29, "program": "generic_arrayaslist.ets" } } @@ -3451,7 +3451,7 @@ }, "end": { "line": 34, - "column": 38, + "column": 37, "program": "generic_arrayaslist.ets" } } @@ -3464,7 +3464,7 @@ }, "end": { "line": 34, - "column": 38, + "column": 37, "program": "generic_arrayaslist.ets" } } @@ -3478,7 +3478,7 @@ }, "end": { "line": 34, - "column": 38, + "column": 37, "program": "generic_arrayaslist.ets" } } @@ -3491,7 +3491,7 @@ }, "end": { "line": 34, - "column": 38, + "column": 37, "program": "generic_arrayaslist.ets" } } @@ -3609,7 +3609,7 @@ }, "end": { "line": 34, - "column": 61, + "column": 60, "program": "generic_arrayaslist.ets" } } @@ -3622,7 +3622,7 @@ }, "end": { "line": 34, - "column": 61, + "column": 60, "program": "generic_arrayaslist.ets" } } @@ -3649,7 +3649,7 @@ }, "end": { "line": 34, - "column": 63, + "column": 61, "program": "generic_arrayaslist.ets" } } @@ -3662,7 +3662,7 @@ }, "end": { "line": 34, - "column": 63, + "column": 61, "program": "generic_arrayaslist.ets" } } @@ -3825,8 +3825,8 @@ "program": "generic_arrayaslist.ets" }, "end": { - "line": 37, - "column": 6, + "line": 35, + "column": 2, "program": "generic_arrayaslist.ets" } } @@ -3957,7 +3957,7 @@ }, "end": { "line": 37, - "column": 42, + "column": 41, "program": "generic_arrayaslist.ets" } } @@ -3970,7 +3970,7 @@ }, "end": { "line": 37, - "column": 42, + "column": 41, "program": "generic_arrayaslist.ets" } } @@ -3997,7 +3997,7 @@ }, "end": { "line": 37, - "column": 44, + "column": 42, "program": "generic_arrayaslist.ets" } } @@ -4010,7 +4010,7 @@ }, "end": { "line": 37, - "column": 44, + "column": 42, "program": "generic_arrayaslist.ets" } } @@ -4163,7 +4163,7 @@ }, "end": { "line": 39, - "column": 41, + "column": 39, "program": "generic_arrayaslist.ets" } } @@ -4176,7 +4176,7 @@ }, "end": { "line": 39, - "column": 41, + "column": 39, "program": "generic_arrayaslist.ets" } } @@ -4344,7 +4344,7 @@ }, "end": { "line": 40, - "column": 29, + "column": 27, "program": "generic_arrayaslist.ets" } } @@ -4357,7 +4357,7 @@ }, "end": { "line": 40, - "column": 29, + "column": 27, "program": "generic_arrayaslist.ets" } } @@ -4976,7 +4976,7 @@ }, "end": { "line": 46, - "column": 39, + "column": 38, "program": "generic_arrayaslist.ets" } } @@ -4989,7 +4989,7 @@ }, "end": { "line": 46, - "column": 39, + "column": 38, "program": "generic_arrayaslist.ets" } } @@ -5003,7 +5003,7 @@ }, "end": { "line": 46, - "column": 39, + "column": 38, "program": "generic_arrayaslist.ets" } } @@ -5016,7 +5016,7 @@ }, "end": { "line": 46, - "column": 39, + "column": 38, "program": "generic_arrayaslist.ets" } } @@ -5980,7 +5980,7 @@ }, "end": { "line": 60, - "column": 35, + "column": 33, "program": "generic_arrayaslist.ets" } } @@ -5993,7 +5993,7 @@ }, "end": { "line": 60, - "column": 35, + "column": 33, "program": "generic_arrayaslist.ets" } } @@ -7319,7 +7319,7 @@ }, "end": { "line": 79, - "column": 36, + "column": 35, "program": "generic_arrayaslist.ets" } } @@ -7332,7 +7332,7 @@ }, "end": { "line": 79, - "column": 36, + "column": 35, "program": "generic_arrayaslist.ets" } } @@ -7346,7 +7346,7 @@ }, "end": { "line": 79, - "column": 36, + "column": 35, "program": "generic_arrayaslist.ets" } } @@ -7359,7 +7359,7 @@ }, "end": { "line": 79, - "column": 36, + "column": 35, "program": "generic_arrayaslist.ets" } } @@ -7691,7 +7691,7 @@ }, "end": { "line": 82, - "column": 27, + "column": 25, "program": "generic_arrayaslist.ets" } } @@ -7704,7 +7704,7 @@ }, "end": { "line": 82, - "column": 27, + "column": 25, "program": "generic_arrayaslist.ets" } } @@ -8858,7 +8858,7 @@ }, "end": { "line": 92, - "column": 36, + "column": 34, "program": "generic_arrayaslist.ets" } } @@ -8871,7 +8871,7 @@ }, "end": { "line": 92, - "column": 36, + "column": 34, "program": "generic_arrayaslist.ets" } } @@ -9081,7 +9081,7 @@ }, "end": { "line": 94, - "column": 21, + "column": 19, "program": "generic_arrayaslist.ets" } } @@ -9094,7 +9094,7 @@ }, "end": { "line": 94, - "column": 21, + "column": 19, "program": "generic_arrayaslist.ets" } } @@ -9226,7 +9226,7 @@ }, "end": { "line": 94, - "column": 40, + "column": 39, "program": "generic_arrayaslist.ets" } } @@ -9239,7 +9239,7 @@ }, "end": { "line": 94, - "column": 40, + "column": 39, "program": "generic_arrayaslist.ets" } } @@ -9979,7 +9979,7 @@ }, "end": { "line": 102, - "column": 35, + "column": 34, "program": "generic_arrayaslist.ets" } } @@ -9992,7 +9992,7 @@ }, "end": { "line": 102, - "column": 35, + "column": 34, "program": "generic_arrayaslist.ets" } } @@ -10006,7 +10006,7 @@ }, "end": { "line": 102, - "column": 35, + "column": 34, "program": "generic_arrayaslist.ets" } } @@ -10019,7 +10019,7 @@ }, "end": { "line": 102, - "column": 35, + "column": 34, "program": "generic_arrayaslist.ets" } } @@ -10252,7 +10252,7 @@ }, "end": { "line": 104, - "column": 35, + "column": 33, "program": "generic_arrayaslist.ets" } } @@ -10265,7 +10265,7 @@ }, "end": { "line": 104, - "column": 35, + "column": 33, "program": "generic_arrayaslist.ets" } } @@ -11422,7 +11422,7 @@ }, "end": { "line": 114, - "column": 35, + "column": 33, "program": "generic_arrayaslist.ets" } } @@ -11435,7 +11435,7 @@ }, "end": { "line": 114, - "column": 35, + "column": 33, "program": "generic_arrayaslist.ets" } } @@ -11837,7 +11837,7 @@ }, "end": { "line": 117, - "column": 45, + "column": 44, "program": "generic_arrayaslist.ets" } } @@ -11850,7 +11850,7 @@ }, "end": { "line": 117, - "column": 45, + "column": 44, "program": "generic_arrayaslist.ets" } } @@ -12248,7 +12248,7 @@ }, "end": { "line": 124, - "column": 40, + "column": 38, "program": "generic_arrayaslist.ets" } } @@ -12261,7 +12261,7 @@ }, "end": { "line": 124, - "column": 40, + "column": 38, "program": "generic_arrayaslist.ets" } } @@ -12385,7 +12385,7 @@ }, "end": { "line": 125, - "column": 38, + "column": 37, "program": "generic_arrayaslist.ets" } } @@ -12398,7 +12398,7 @@ }, "end": { "line": 125, - "column": 38, + "column": 37, "program": "generic_arrayaslist.ets" } } @@ -12567,7 +12567,7 @@ }, "end": { "line": 128, - "column": 30, + "column": 29, "program": "generic_arrayaslist.ets" } } @@ -12580,7 +12580,7 @@ }, "end": { "line": 128, - "column": 30, + "column": 29, "program": "generic_arrayaslist.ets" } } @@ -12594,7 +12594,7 @@ }, "end": { "line": 128, - "column": 30, + "column": 29, "program": "generic_arrayaslist.ets" } } @@ -12607,7 +12607,7 @@ }, "end": { "line": 128, - "column": 30, + "column": 29, "program": "generic_arrayaslist.ets" } } @@ -13321,7 +13321,7 @@ }, "end": { "line": 141, - "column": 39, + "column": 38, "program": "generic_arrayaslist.ets" } } @@ -13334,7 +13334,7 @@ }, "end": { "line": 141, - "column": 39, + "column": 38, "program": "generic_arrayaslist.ets" } } @@ -13348,7 +13348,7 @@ }, "end": { "line": 141, - "column": 39, + "column": 38, "program": "generic_arrayaslist.ets" } } @@ -13361,7 +13361,7 @@ }, "end": { "line": 141, - "column": 39, + "column": 38, "program": "generic_arrayaslist.ets" } } @@ -13396,7 +13396,7 @@ }, "end": { "line": 141, - "column": 45, + "column": 44, "program": "generic_arrayaslist.ets" } } @@ -13409,7 +13409,7 @@ }, "end": { "line": 141, - "column": 45, + "column": 44, "program": "generic_arrayaslist.ets" } } @@ -13422,7 +13422,7 @@ }, "end": { "line": 141, - "column": 45, + "column": 44, "program": "generic_arrayaslist.ets" } } @@ -13436,7 +13436,7 @@ }, "end": { "line": 141, - "column": 45, + "column": 44, "program": "generic_arrayaslist.ets" } } @@ -13449,7 +13449,7 @@ }, "end": { "line": 141, - "column": 45, + "column": 44, "program": "generic_arrayaslist.ets" } } @@ -13511,7 +13511,7 @@ }, "end": { "line": 141, - "column": 55, + "column": 54, "program": "generic_arrayaslist.ets" } } @@ -13524,7 +13524,7 @@ }, "end": { "line": 141, - "column": 55, + "column": 54, "program": "generic_arrayaslist.ets" } } @@ -13551,7 +13551,7 @@ }, "end": { "line": 141, - "column": 57, + "column": 55, "program": "generic_arrayaslist.ets" } } @@ -13564,7 +13564,7 @@ }, "end": { "line": 141, - "column": 57, + "column": 55, "program": "generic_arrayaslist.ets" } } @@ -14010,7 +14010,7 @@ }, "end": { "line": 143, - "column": 49, + "column": 48, "program": "generic_arrayaslist.ets" } } @@ -14023,7 +14023,7 @@ }, "end": { "line": 143, - "column": 49, + "column": 48, "program": "generic_arrayaslist.ets" } } @@ -14286,7 +14286,7 @@ }, "end": { "line": 148, - "column": 38, + "column": 37, "program": "generic_arrayaslist.ets" } } @@ -14299,7 +14299,7 @@ }, "end": { "line": 148, - "column": 38, + "column": 37, "program": "generic_arrayaslist.ets" } } @@ -14313,7 +14313,7 @@ }, "end": { "line": 148, - "column": 38, + "column": 37, "program": "generic_arrayaslist.ets" } } @@ -14326,7 +14326,7 @@ }, "end": { "line": 148, - "column": 38, + "column": 37, "program": "generic_arrayaslist.ets" } } @@ -14361,7 +14361,7 @@ }, "end": { "line": 148, - "column": 44, + "column": 43, "program": "generic_arrayaslist.ets" } } @@ -14374,7 +14374,7 @@ }, "end": { "line": 148, - "column": 44, + "column": 43, "program": "generic_arrayaslist.ets" } } @@ -14387,7 +14387,7 @@ }, "end": { "line": 148, - "column": 44, + "column": 43, "program": "generic_arrayaslist.ets" } } @@ -14401,7 +14401,7 @@ }, "end": { "line": 148, - "column": 44, + "column": 43, "program": "generic_arrayaslist.ets" } } @@ -14414,7 +14414,7 @@ }, "end": { "line": 148, - "column": 44, + "column": 43, "program": "generic_arrayaslist.ets" } } @@ -14473,7 +14473,7 @@ }, "end": { "line": 148, - "column": 54, + "column": 53, "program": "generic_arrayaslist.ets" } } @@ -14486,7 +14486,7 @@ }, "end": { "line": 148, - "column": 54, + "column": 53, "program": "generic_arrayaslist.ets" } } @@ -14513,7 +14513,7 @@ }, "end": { "line": 148, - "column": 56, + "column": 54, "program": "generic_arrayaslist.ets" } } @@ -14526,7 +14526,7 @@ }, "end": { "line": 148, - "column": 56, + "column": 54, "program": "generic_arrayaslist.ets" } } @@ -14660,7 +14660,7 @@ }, "end": { "line": 149, - "column": 38, + "column": 37, "program": "generic_arrayaslist.ets" } } @@ -14673,7 +14673,7 @@ }, "end": { "line": 149, - "column": 38, + "column": 37, "program": "generic_arrayaslist.ets" } } @@ -14700,7 +14700,7 @@ }, "end": { "line": 149, - "column": 39, + "column": 38, "program": "generic_arrayaslist.ets" } } @@ -14713,7 +14713,7 @@ }, "end": { "line": 149, - "column": 39, + "column": 38, "program": "generic_arrayaslist.ets" } } @@ -15137,7 +15137,7 @@ }, "end": { "line": 151, - "column": 47, + "column": 46, "program": "generic_arrayaslist.ets" } } @@ -15150,7 +15150,7 @@ }, "end": { "line": 151, - "column": 47, + "column": 46, "program": "generic_arrayaslist.ets" } } @@ -15416,7 +15416,7 @@ }, "end": { "line": 156, - "column": 43, + "column": 42, "program": "generic_arrayaslist.ets" } } @@ -15429,7 +15429,7 @@ }, "end": { "line": 156, - "column": 43, + "column": 42, "program": "generic_arrayaslist.ets" } } @@ -15443,7 +15443,7 @@ }, "end": { "line": 156, - "column": 43, + "column": 42, "program": "generic_arrayaslist.ets" } } @@ -15456,7 +15456,7 @@ }, "end": { "line": 156, - "column": 43, + "column": 42, "program": "generic_arrayaslist.ets" } } @@ -15495,7 +15495,7 @@ }, "end": { "line": 156, - "column": 51, + "column": 50, "program": "generic_arrayaslist.ets" } } @@ -15508,7 +15508,7 @@ }, "end": { "line": 156, - "column": 51, + "column": 50, "program": "generic_arrayaslist.ets" } } @@ -15522,7 +15522,7 @@ }, "end": { "line": 156, - "column": 51, + "column": 50, "program": "generic_arrayaslist.ets" } } @@ -15535,7 +15535,7 @@ }, "end": { "line": 156, - "column": 51, + "column": 50, "program": "generic_arrayaslist.ets" } } @@ -15570,7 +15570,7 @@ }, "end": { "line": 156, - "column": 57, + "column": 56, "program": "generic_arrayaslist.ets" } } @@ -15583,7 +15583,7 @@ }, "end": { "line": 156, - "column": 57, + "column": 56, "program": "generic_arrayaslist.ets" } } @@ -15596,7 +15596,7 @@ }, "end": { "line": 156, - "column": 57, + "column": 56, "program": "generic_arrayaslist.ets" } } @@ -15610,7 +15610,7 @@ }, "end": { "line": 156, - "column": 57, + "column": 56, "program": "generic_arrayaslist.ets" } } @@ -15623,7 +15623,7 @@ }, "end": { "line": 156, - "column": 57, + "column": 56, "program": "generic_arrayaslist.ets" } } @@ -15661,7 +15661,7 @@ }, "end": { "line": 156, - "column": 62, + "column": 60, "program": "generic_arrayaslist.ets" } } @@ -15674,7 +15674,7 @@ }, "end": { "line": 156, - "column": 62, + "column": 60, "program": "generic_arrayaslist.ets" } } @@ -15932,7 +15932,7 @@ }, "end": { "line": 158, - "column": 41, + "column": 40, "program": "generic_arrayaslist.ets" } } @@ -15945,7 +15945,7 @@ }, "end": { "line": 158, - "column": 41, + "column": 40, "program": "generic_arrayaslist.ets" } } @@ -16351,7 +16351,7 @@ }, "end": { "line": 160, - "column": 54, + "column": 53, "program": "generic_arrayaslist.ets" } } @@ -16364,7 +16364,7 @@ }, "end": { "line": 160, - "column": 54, + "column": 53, "program": "generic_arrayaslist.ets" } } @@ -16548,7 +16548,7 @@ }, "end": { "line": 165, - "column": 35, + "column": 34, "program": "generic_arrayaslist.ets" } } @@ -16561,7 +16561,7 @@ }, "end": { "line": 165, - "column": 35, + "column": 34, "program": "generic_arrayaslist.ets" } } @@ -16848,7 +16848,7 @@ }, "end": { "line": 170, - "column": 50, + "column": 49, "program": "generic_arrayaslist.ets" } } @@ -16861,7 +16861,7 @@ }, "end": { "line": 170, - "column": 50, + "column": 49, "program": "generic_arrayaslist.ets" } } @@ -16875,7 +16875,7 @@ }, "end": { "line": 170, - "column": 50, + "column": 49, "program": "generic_arrayaslist.ets" } } @@ -16888,7 +16888,7 @@ }, "end": { "line": 170, - "column": 50, + "column": 49, "program": "generic_arrayaslist.ets" } } @@ -16927,7 +16927,7 @@ }, "end": { "line": 170, - "column": 58, + "column": 57, "program": "generic_arrayaslist.ets" } } @@ -16940,7 +16940,7 @@ }, "end": { "line": 170, - "column": 58, + "column": 57, "program": "generic_arrayaslist.ets" } } @@ -16954,7 +16954,7 @@ }, "end": { "line": 170, - "column": 58, + "column": 57, "program": "generic_arrayaslist.ets" } } @@ -16967,7 +16967,7 @@ }, "end": { "line": 170, - "column": 58, + "column": 57, "program": "generic_arrayaslist.ets" } } @@ -17002,7 +17002,7 @@ }, "end": { "line": 170, - "column": 64, + "column": 63, "program": "generic_arrayaslist.ets" } } @@ -17015,7 +17015,7 @@ }, "end": { "line": 170, - "column": 64, + "column": 63, "program": "generic_arrayaslist.ets" } } @@ -17028,7 +17028,7 @@ }, "end": { "line": 170, - "column": 64, + "column": 63, "program": "generic_arrayaslist.ets" } } @@ -17042,7 +17042,7 @@ }, "end": { "line": 170, - "column": 64, + "column": 63, "program": "generic_arrayaslist.ets" } } @@ -17055,7 +17055,7 @@ }, "end": { "line": 170, - "column": 64, + "column": 63, "program": "generic_arrayaslist.ets" } } @@ -17094,7 +17094,7 @@ }, "end": { "line": 170, - "column": 76, + "column": 75, "program": "generic_arrayaslist.ets" } } @@ -17107,7 +17107,7 @@ }, "end": { "line": 170, - "column": 76, + "column": 75, "program": "generic_arrayaslist.ets" } } @@ -17121,7 +17121,7 @@ }, "end": { "line": 170, - "column": 76, + "column": 75, "program": "generic_arrayaslist.ets" } } @@ -17134,7 +17134,7 @@ }, "end": { "line": 170, - "column": 76, + "column": 75, "program": "generic_arrayaslist.ets" } } @@ -17169,7 +17169,7 @@ }, "end": { "line": 170, - "column": 81, + "column": 79, "program": "generic_arrayaslist.ets" } } @@ -17182,7 +17182,7 @@ }, "end": { "line": 170, - "column": 81, + "column": 79, "program": "generic_arrayaslist.ets" } } @@ -17666,7 +17666,7 @@ }, "end": { "line": 173, - "column": 50, + "column": 49, "program": "generic_arrayaslist.ets" } } @@ -17679,7 +17679,7 @@ }, "end": { "line": 173, - "column": 50, + "column": 49, "program": "generic_arrayaslist.ets" } } @@ -17943,7 +17943,7 @@ }, "end": { "line": 178, - "column": 46, + "column": 45, "program": "generic_arrayaslist.ets" } } @@ -17956,7 +17956,7 @@ }, "end": { "line": 178, - "column": 46, + "column": 45, "program": "generic_arrayaslist.ets" } } @@ -17970,7 +17970,7 @@ }, "end": { "line": 178, - "column": 46, + "column": 45, "program": "generic_arrayaslist.ets" } } @@ -17983,7 +17983,7 @@ }, "end": { "line": 178, - "column": 46, + "column": 45, "program": "generic_arrayaslist.ets" } } @@ -18101,7 +18101,7 @@ }, "end": { "line": 178, - "column": 75, + "column": 74, "program": "generic_arrayaslist.ets" } } @@ -18114,7 +18114,7 @@ }, "end": { "line": 178, - "column": 75, + "column": 74, "program": "generic_arrayaslist.ets" } } @@ -18141,7 +18141,7 @@ }, "end": { "line": 178, - "column": 77, + "column": 75, "program": "generic_arrayaslist.ets" } } @@ -18154,7 +18154,7 @@ }, "end": { "line": 178, - "column": 77, + "column": 75, "program": "generic_arrayaslist.ets" } } @@ -18797,7 +18797,7 @@ }, "end": { "line": 182, - "column": 58, + "column": 57, "program": "generic_arrayaslist.ets" } } @@ -18810,7 +18810,7 @@ }, "end": { "line": 182, - "column": 58, + "column": 57, "program": "generic_arrayaslist.ets" } } @@ -19085,7 +19085,7 @@ }, "end": { "line": 187, - "column": 27, + "column": 25, "program": "generic_arrayaslist.ets" } } @@ -19098,7 +19098,7 @@ }, "end": { "line": 187, - "column": 27, + "column": 25, "program": "generic_arrayaslist.ets" } } @@ -20024,7 +20024,7 @@ }, "end": { "line": 198, - "column": 46, + "column": 45, "program": "generic_arrayaslist.ets" } } @@ -20037,7 +20037,7 @@ }, "end": { "line": 198, - "column": 46, + "column": 45, "program": "generic_arrayaslist.ets" } } @@ -20051,7 +20051,7 @@ }, "end": { "line": 198, - "column": 46, + "column": 45, "program": "generic_arrayaslist.ets" } } @@ -20064,7 +20064,7 @@ }, "end": { "line": 198, - "column": 46, + "column": 45, "program": "generic_arrayaslist.ets" } } @@ -20103,7 +20103,7 @@ }, "end": { "line": 198, - "column": 54, + "column": 53, "program": "generic_arrayaslist.ets" } } @@ -20116,7 +20116,7 @@ }, "end": { "line": 198, - "column": 54, + "column": 53, "program": "generic_arrayaslist.ets" } } @@ -20130,7 +20130,7 @@ }, "end": { "line": 198, - "column": 54, + "column": 53, "program": "generic_arrayaslist.ets" } } @@ -20143,7 +20143,7 @@ }, "end": { "line": 198, - "column": 54, + "column": 53, "program": "generic_arrayaslist.ets" } } @@ -20261,7 +20261,7 @@ }, "end": { "line": 198, - "column": 83, + "column": 82, "program": "generic_arrayaslist.ets" } } @@ -20274,7 +20274,7 @@ }, "end": { "line": 198, - "column": 83, + "column": 82, "program": "generic_arrayaslist.ets" } } @@ -20301,7 +20301,7 @@ }, "end": { "line": 198, - "column": 85, + "column": 83, "program": "generic_arrayaslist.ets" } } @@ -20314,7 +20314,7 @@ }, "end": { "line": 198, - "column": 85, + "column": 83, "program": "generic_arrayaslist.ets" } } @@ -21010,7 +21010,7 @@ }, "end": { "line": 203, - "column": 82, + "column": 81, "program": "generic_arrayaslist.ets" } } @@ -21023,7 +21023,7 @@ }, "end": { "line": 203, - "column": 82, + "column": 81, "program": "generic_arrayaslist.ets" } } @@ -21037,7 +21037,7 @@ }, "end": { "line": 203, - "column": 82, + "column": 81, "program": "generic_arrayaslist.ets" } } @@ -21050,7 +21050,7 @@ }, "end": { "line": 203, - "column": 82, + "column": 81, "program": "generic_arrayaslist.ets" } } @@ -21089,7 +21089,7 @@ }, "end": { "line": 203, - "column": 90, + "column": 89, "program": "generic_arrayaslist.ets" } } @@ -21102,7 +21102,7 @@ }, "end": { "line": 203, - "column": 90, + "column": 89, "program": "generic_arrayaslist.ets" } } @@ -21116,7 +21116,7 @@ }, "end": { "line": 203, - "column": 90, + "column": 89, "program": "generic_arrayaslist.ets" } } @@ -21129,7 +21129,7 @@ }, "end": { "line": 203, - "column": 90, + "column": 89, "program": "generic_arrayaslist.ets" } } @@ -21591,7 +21591,7 @@ }, "end": { "line": 207, - "column": 76, + "column": 75, "program": "generic_arrayaslist.ets" } } @@ -21604,7 +21604,7 @@ }, "end": { "line": 207, - "column": 76, + "column": 75, "program": "generic_arrayaslist.ets" } } @@ -21618,7 +21618,7 @@ }, "end": { "line": 207, - "column": 76, + "column": 75, "program": "generic_arrayaslist.ets" } } @@ -21631,7 +21631,7 @@ }, "end": { "line": 207, - "column": 76, + "column": 75, "program": "generic_arrayaslist.ets" } } @@ -21670,7 +21670,7 @@ }, "end": { "line": 207, - "column": 84, + "column": 83, "program": "generic_arrayaslist.ets" } } @@ -21683,7 +21683,7 @@ }, "end": { "line": 207, - "column": 84, + "column": 83, "program": "generic_arrayaslist.ets" } } @@ -21697,7 +21697,7 @@ }, "end": { "line": 207, - "column": 84, + "column": 83, "program": "generic_arrayaslist.ets" } } @@ -21710,7 +21710,7 @@ }, "end": { "line": 207, - "column": 84, + "column": 83, "program": "generic_arrayaslist.ets" } } @@ -23634,7 +23634,7 @@ }, "end": { "line": 225, - "column": 77, + "column": 76, "program": "generic_arrayaslist.ets" } } @@ -23647,7 +23647,7 @@ }, "end": { "line": 225, - "column": 77, + "column": 76, "program": "generic_arrayaslist.ets" } } @@ -23661,7 +23661,7 @@ }, "end": { "line": 225, - "column": 77, + "column": 76, "program": "generic_arrayaslist.ets" } } @@ -23674,7 +23674,7 @@ }, "end": { "line": 225, - "column": 77, + "column": 76, "program": "generic_arrayaslist.ets" } } @@ -23713,7 +23713,7 @@ }, "end": { "line": 225, - "column": 85, + "column": 84, "program": "generic_arrayaslist.ets" } } @@ -23726,7 +23726,7 @@ }, "end": { "line": 225, - "column": 85, + "column": 84, "program": "generic_arrayaslist.ets" } } @@ -23740,7 +23740,7 @@ }, "end": { "line": 225, - "column": 85, + "column": 84, "program": "generic_arrayaslist.ets" } } @@ -23753,7 +23753,7 @@ }, "end": { "line": 225, - "column": 85, + "column": 84, "program": "generic_arrayaslist.ets" } } diff --git a/ets2panda/test/compiler/ets/generic_class_getter_setter-expected.txt b/ets2panda/test/compiler/ets/generic_class_getter_setter-expected.txt index a1392dbfafe7b7b5bfb22fa5d1738ce94601e0bf..e052767fdef99921285232b7ec7dedfe30833ab6 100644 --- a/ets2panda/test/compiler/ets/generic_class_getter_setter-expected.txt +++ b/ets2panda/test/compiler/ets/generic_class_getter_setter-expected.txt @@ -151,7 +151,7 @@ }, "end": { "line": 17, - "column": 25, + "column": 23, "program": "generic_class_getter_setter.ets" } } @@ -164,7 +164,7 @@ }, "end": { "line": 17, - "column": 25, + "column": 23, "program": "generic_class_getter_setter.ets" } } @@ -327,7 +327,7 @@ }, "end": { "line": 18, - "column": 25, + "column": 24, "program": "generic_class_getter_setter.ets" } } @@ -340,7 +340,7 @@ }, "end": { "line": 18, - "column": 25, + "column": 24, "program": "generic_class_getter_setter.ets" } } @@ -354,7 +354,7 @@ }, "end": { "line": 18, - "column": 25, + "column": 24, "program": "generic_class_getter_setter.ets" } } @@ -367,7 +367,7 @@ }, "end": { "line": 18, - "column": 25, + "column": 24, "program": "generic_class_getter_setter.ets" } } @@ -810,7 +810,7 @@ }, "end": { "line": 22, - "column": 23, + "column": 21, "program": "generic_class_getter_setter.ets" } } @@ -823,7 +823,7 @@ }, "end": { "line": 22, - "column": 23, + "column": 21, "program": "generic_class_getter_setter.ets" } } @@ -899,7 +899,7 @@ }, "end": { "line": 22, - "column": 37, + "column": 36, "program": "generic_class_getter_setter.ets" } } @@ -912,7 +912,7 @@ }, "end": { "line": 22, - "column": 37, + "column": 36, "program": "generic_class_getter_setter.ets" } } @@ -939,7 +939,7 @@ }, "end": { "line": 22, - "column": 38, + "column": 37, "program": "generic_class_getter_setter.ets" } } @@ -952,7 +952,7 @@ }, "end": { "line": 22, - "column": 38, + "column": 37, "program": "generic_class_getter_setter.ets" } } diff --git a/ets2panda/test/compiler/ets/generic_deadlock-expected.txt b/ets2panda/test/compiler/ets/generic_deadlock-expected.txt index 7e0bce2638da76d990440fc620c4c2c25a58f3cf..2ea5d957b235db0b841fca84e35126a0b59a304f 100644 --- a/ets2panda/test/compiler/ets/generic_deadlock-expected.txt +++ b/ets2panda/test/compiler/ets/generic_deadlock-expected.txt @@ -102,7 +102,7 @@ }, "end": { "line": 17, - "column": 34, + "column": 32, "program": "generic_deadlock.ets" } } @@ -115,7 +115,7 @@ }, "end": { "line": 17, - "column": 34, + "column": 32, "program": "generic_deadlock.ets" } } @@ -261,7 +261,7 @@ }, "end": { "line": 18, - "column": 26, + "column": 25, "program": "generic_deadlock.ets" } } @@ -274,7 +274,7 @@ }, "end": { "line": 18, - "column": 26, + "column": 25, "program": "generic_deadlock.ets" } } @@ -452,7 +452,7 @@ }, "end": { "line": 20, - "column": 34, + "column": 32, "program": "generic_deadlock.ets" } } @@ -465,7 +465,7 @@ }, "end": { "line": 20, - "column": 34, + "column": 32, "program": "generic_deadlock.ets" } } @@ -611,7 +611,7 @@ }, "end": { "line": 21, - "column": 26, + "column": 25, "program": "generic_deadlock.ets" } } @@ -624,7 +624,7 @@ }, "end": { "line": 21, - "column": 26, + "column": 25, "program": "generic_deadlock.ets" } } @@ -1141,7 +1141,7 @@ }, "end": { "line": 26, - "column": 17, + "column": 16, "program": "generic_deadlock.ets" } } @@ -1154,7 +1154,7 @@ }, "end": { "line": 26, - "column": 17, + "column": 16, "program": "generic_deadlock.ets" } } diff --git a/ets2panda/test/compiler/ets/generic_function_call_1-expected.txt b/ets2panda/test/compiler/ets/generic_function_call_1-expected.txt index 9e5c24ccf86bc183badb8d55fec634bce6681320..79b358e49a69c6d393f5e35e74384e487afe9865 100644 --- a/ets2panda/test/compiler/ets/generic_function_call_1-expected.txt +++ b/ets2panda/test/compiler/ets/generic_function_call_1-expected.txt @@ -368,7 +368,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "generic_function_call_1.ets" } } @@ -381,7 +381,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "generic_function_call_1.ets" } } @@ -395,7 +395,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "generic_function_call_1.ets" } } @@ -408,7 +408,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "generic_function_call_1.ets" } } @@ -640,7 +640,7 @@ }, "end": { "line": 21, - "column": 17, + "column": 16, "program": "generic_function_call_1.ets" } } @@ -653,7 +653,7 @@ }, "end": { "line": 21, - "column": 17, + "column": 16, "program": "generic_function_call_1.ets" } } @@ -773,7 +773,7 @@ }, "end": { "line": 23, - "column": 8, + "column": 7, "program": "generic_function_call_1.ets" } } @@ -786,7 +786,7 @@ }, "end": { "line": 23, - "column": 8, + "column": 7, "program": "generic_function_call_1.ets" } } diff --git a/ets2panda/test/compiler/ets/generic_function_call_3-expected.txt b/ets2panda/test/compiler/ets/generic_function_call_3-expected.txt index d0c98d2a9a5cc8ecb14e1c9820196c4f1867dc05..b697832de71e0a012818b33486ea348d41b09415 100644 --- a/ets2panda/test/compiler/ets/generic_function_call_3-expected.txt +++ b/ets2panda/test/compiler/ets/generic_function_call_3-expected.txt @@ -205,7 +205,7 @@ }, "end": { "line": 17, - "column": 20, + "column": 18, "program": "generic_function_call_3.ets" } } @@ -218,7 +218,7 @@ }, "end": { "line": 17, - "column": 20, + "column": 18, "program": "generic_function_call_3.ets" } } @@ -569,7 +569,7 @@ }, "end": { "line": 19, - "column": 20, + "column": 19, "program": "generic_function_call_3.ets" } } @@ -582,7 +582,7 @@ }, "end": { "line": 19, - "column": 20, + "column": 19, "program": "generic_function_call_3.ets" } } @@ -596,7 +596,7 @@ }, "end": { "line": 19, - "column": 20, + "column": 19, "program": "generic_function_call_3.ets" } } @@ -609,7 +609,7 @@ }, "end": { "line": 19, - "column": 20, + "column": 19, "program": "generic_function_call_3.ets" } } @@ -841,7 +841,7 @@ }, "end": { "line": 22, - "column": 17, + "column": 16, "program": "generic_function_call_3.ets" } } @@ -854,7 +854,7 @@ }, "end": { "line": 22, - "column": 17, + "column": 16, "program": "generic_function_call_3.ets" } } @@ -974,7 +974,7 @@ }, "end": { "line": 24, - "column": 8, + "column": 7, "program": "generic_function_call_3.ets" } } @@ -987,7 +987,7 @@ }, "end": { "line": 24, - "column": 8, + "column": 7, "program": "generic_function_call_3.ets" } } diff --git a/ets2panda/test/compiler/ets/generic_function_call_4-expected.txt b/ets2panda/test/compiler/ets/generic_function_call_4-expected.txt index 4c26e04289a649d19824b884eaf03083163a83a3..b2387071a32329ce97e5048761cc49e357753faa 100644 --- a/ets2panda/test/compiler/ets/generic_function_call_4-expected.txt +++ b/ets2panda/test/compiler/ets/generic_function_call_4-expected.txt @@ -591,7 +591,7 @@ }, "end": { "line": 19, - "column": 26, + "column": 25, "program": "generic_function_call_4.ets" } } @@ -604,7 +604,7 @@ }, "end": { "line": 19, - "column": 26, + "column": 25, "program": "generic_function_call_4.ets" } } @@ -631,7 +631,7 @@ }, "end": { "line": 19, - "column": 28, + "column": 26, "program": "generic_function_call_4.ets" } } @@ -644,7 +644,7 @@ }, "end": { "line": 19, - "column": 28, + "column": 26, "program": "generic_function_call_4.ets" } } @@ -762,7 +762,7 @@ }, "end": { "line": 20, - "column": 16, + "column": 15, "program": "generic_function_call_4.ets" } } @@ -775,7 +775,7 @@ }, "end": { "line": 20, - "column": 16, + "column": 15, "program": "generic_function_call_4.ets" } } @@ -802,7 +802,7 @@ }, "end": { "line": 20, - "column": 18, + "column": 16, "program": "generic_function_call_4.ets" } } @@ -815,7 +815,7 @@ }, "end": { "line": 20, - "column": 18, + "column": 16, "program": "generic_function_call_4.ets" } } @@ -889,7 +889,7 @@ }, "end": { "line": 20, - "column": 27, + "column": 26, "program": "generic_function_call_4.ets" } } @@ -902,7 +902,7 @@ }, "end": { "line": 20, - "column": 27, + "column": 26, "program": "generic_function_call_4.ets" } } @@ -929,7 +929,7 @@ }, "end": { "line": 20, - "column": 28, + "column": 27, "program": "generic_function_call_4.ets" } } @@ -942,7 +942,7 @@ }, "end": { "line": 20, - "column": 28, + "column": 27, "program": "generic_function_call_4.ets" } } @@ -1202,7 +1202,7 @@ }, "end": { "line": 24, - "column": 29, + "column": 27, "program": "generic_function_call_4.ets" } } @@ -1215,7 +1215,7 @@ }, "end": { "line": 24, - "column": 29, + "column": 27, "program": "generic_function_call_4.ets" } } @@ -1282,7 +1282,7 @@ }, "end": { "line": 24, - "column": 31, + "column": 29, "program": "generic_function_call_4.ets" } } @@ -1295,7 +1295,7 @@ }, "end": { "line": 24, - "column": 31, + "column": 29, "program": "generic_function_call_4.ets" } } @@ -1437,7 +1437,7 @@ }, "end": { "line": 25, - "column": 19, + "column": 17, "program": "generic_function_call_4.ets" } } @@ -1450,7 +1450,7 @@ }, "end": { "line": 25, - "column": 19, + "column": 17, "program": "generic_function_call_4.ets" } } @@ -1517,7 +1517,7 @@ }, "end": { "line": 25, - "column": 21, + "column": 19, "program": "generic_function_call_4.ets" } } @@ -1530,7 +1530,7 @@ }, "end": { "line": 25, - "column": 21, + "column": 19, "program": "generic_function_call_4.ets" } } @@ -1628,7 +1628,7 @@ }, "end": { "line": 25, - "column": 33, + "column": 31, "program": "generic_function_call_4.ets" } } @@ -1641,7 +1641,7 @@ }, "end": { "line": 25, - "column": 33, + "column": 31, "program": "generic_function_call_4.ets" } } @@ -1708,7 +1708,7 @@ }, "end": { "line": 25, - "column": 34, + "column": 33, "program": "generic_function_call_4.ets" } } @@ -1721,7 +1721,7 @@ }, "end": { "line": 25, - "column": 34, + "column": 33, "program": "generic_function_call_4.ets" } } @@ -1983,7 +1983,7 @@ }, "end": { "line": 30, - "column": 19, + "column": 18, "program": "generic_function_call_4.ets" } } @@ -1996,7 +1996,7 @@ }, "end": { "line": 30, - "column": 19, + "column": 18, "program": "generic_function_call_4.ets" } } @@ -2023,7 +2023,7 @@ }, "end": { "line": 30, - "column": 21, + "column": 19, "program": "generic_function_call_4.ets" } } @@ -2036,7 +2036,7 @@ }, "end": { "line": 30, - "column": 21, + "column": 19, "program": "generic_function_call_4.ets" } } @@ -2108,7 +2108,7 @@ }, "end": { "line": 30, - "column": 30, + "column": 29, "program": "generic_function_call_4.ets" } } @@ -2121,7 +2121,7 @@ }, "end": { "line": 30, - "column": 30, + "column": 29, "program": "generic_function_call_4.ets" } } @@ -2266,7 +2266,7 @@ }, "end": { "line": 31, - "column": 23, + "column": 21, "program": "generic_function_call_4.ets" } } @@ -2279,7 +2279,7 @@ }, "end": { "line": 31, - "column": 23, + "column": 21, "program": "generic_function_call_4.ets" } } @@ -2346,7 +2346,7 @@ }, "end": { "line": 31, - "column": 25, + "column": 23, "program": "generic_function_call_4.ets" } } @@ -2359,7 +2359,7 @@ }, "end": { "line": 31, - "column": 25, + "column": 23, "program": "generic_function_call_4.ets" } } @@ -2431,7 +2431,7 @@ }, "end": { "line": 31, - "column": 34, + "column": 33, "program": "generic_function_call_4.ets" } } @@ -2444,7 +2444,7 @@ }, "end": { "line": 31, - "column": 34, + "column": 33, "program": "generic_function_call_4.ets" } } diff --git a/ets2panda/test/compiler/ets/generic_function_call_5-expected.txt b/ets2panda/test/compiler/ets/generic_function_call_5-expected.txt index 91bd40a6df67a60a7c4b91004fa048ae53d3eefb..595a89c371be7bf066a957ed012111627b479e9d 100644 --- a/ets2panda/test/compiler/ets/generic_function_call_5-expected.txt +++ b/ets2panda/test/compiler/ets/generic_function_call_5-expected.txt @@ -172,7 +172,7 @@ }, "end": { "line": 17, - "column": 47, + "column": 46, "program": "generic_function_call_5.ets" } } @@ -185,7 +185,7 @@ }, "end": { "line": 17, - "column": 47, + "column": 46, "program": "generic_function_call_5.ets" } } @@ -199,7 +199,7 @@ }, "end": { "line": 17, - "column": 47, + "column": 46, "program": "generic_function_call_5.ets" } } @@ -212,7 +212,7 @@ }, "end": { "line": 17, - "column": 47, + "column": 46, "program": "generic_function_call_5.ets" } } @@ -437,7 +437,7 @@ }, "end": { "line": 20, - "column": 38, + "column": 37, "program": "generic_function_call_5.ets" } } @@ -450,7 +450,7 @@ }, "end": { "line": 20, - "column": 38, + "column": 37, "program": "generic_function_call_5.ets" } } @@ -504,7 +504,7 @@ }, "end": { "line": 20, - "column": 26, + "column": 24, "program": "generic_function_call_5.ets" } } @@ -517,7 +517,7 @@ }, "end": { "line": 20, - "column": 26, + "column": 24, "program": "generic_function_call_5.ets" } } @@ -901,7 +901,7 @@ }, "end": { "line": 23, - "column": 26, + "column": 25, "program": "generic_function_call_5.ets" } } @@ -914,7 +914,7 @@ }, "end": { "line": 23, - "column": 26, + "column": 25, "program": "generic_function_call_5.ets" } } @@ -941,7 +941,7 @@ }, "end": { "line": 23, - "column": 28, + "column": 26, "program": "generic_function_call_5.ets" } } @@ -954,7 +954,7 @@ }, "end": { "line": 23, - "column": 28, + "column": 26, "program": "generic_function_call_5.ets" } } @@ -1019,7 +1019,7 @@ }, "end": { "line": 24, - "column": 25, + "column": 24, "program": "generic_function_call_5.ets" } } @@ -1032,7 +1032,7 @@ }, "end": { "line": 24, - "column": 25, + "column": 24, "program": "generic_function_call_5.ets" } } @@ -1059,7 +1059,7 @@ }, "end": { "line": 24, - "column": 26, + "column": 25, "program": "generic_function_call_5.ets" } } @@ -1072,7 +1072,7 @@ }, "end": { "line": 24, - "column": 26, + "column": 25, "program": "generic_function_call_5.ets" } } @@ -1129,7 +1129,7 @@ }, "end": { "line": 24, - "column": 49, + "column": 48, "program": "generic_function_call_5.ets" } } @@ -1142,7 +1142,7 @@ }, "end": { "line": 24, - "column": 49, + "column": 48, "program": "generic_function_call_5.ets" } } @@ -1156,7 +1156,7 @@ }, "end": { "line": 24, - "column": 49, + "column": 48, "program": "generic_function_call_5.ets" } } @@ -1169,7 +1169,7 @@ }, "end": { "line": 24, - "column": 49, + "column": 48, "program": "generic_function_call_5.ets" } } diff --git a/ets2panda/test/compiler/ets/generic_function_call_7-expected.txt b/ets2panda/test/compiler/ets/generic_function_call_7-expected.txt index 074c3a749d6f68b1949bf7ae9669564cf90270ea..888aeba014d8e607599f40791434a1fa4d333479 100644 --- a/ets2panda/test/compiler/ets/generic_function_call_7-expected.txt +++ b/ets2panda/test/compiler/ets/generic_function_call_7-expected.txt @@ -213,7 +213,7 @@ }, "end": { "line": 16, - "column": 23, + "column": 22, "program": "generic_function_call_7.ets" } } @@ -226,7 +226,7 @@ }, "end": { "line": 16, - "column": 23, + "column": 22, "program": "generic_function_call_7.ets" } } @@ -240,7 +240,7 @@ }, "end": { "line": 16, - "column": 23, + "column": 22, "program": "generic_function_call_7.ets" } } @@ -253,7 +253,7 @@ }, "end": { "line": 16, - "column": 23, + "column": 22, "program": "generic_function_call_7.ets" } } @@ -288,7 +288,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 26, "program": "generic_function_call_7.ets" } } @@ -301,7 +301,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 26, "program": "generic_function_call_7.ets" } } diff --git a/ets2panda/test/compiler/ets/generic_override_1-expected.txt b/ets2panda/test/compiler/ets/generic_override_1-expected.txt index b1bdaa73c370f0c5d8298c9df4ba1d71c4e92848..e2e500647e86b816c510b5bbe78bd717186617aa 100644 --- a/ets2panda/test/compiler/ets/generic_override_1-expected.txt +++ b/ets2panda/test/compiler/ets/generic_override_1-expected.txt @@ -93,8 +93,8 @@ "program": "generic_override_1.ets" }, "end": { - "line": 18, - "column": 6, + "line": 16, + "column": 33, "program": "generic_override_1.ets" } } @@ -225,7 +225,7 @@ }, "end": { "line": 18, - "column": 54, + "column": 53, "program": "generic_override_1.ets" } } @@ -238,7 +238,7 @@ }, "end": { "line": 18, - "column": 54, + "column": 53, "program": "generic_override_1.ets" } } @@ -265,7 +265,7 @@ }, "end": { "line": 18, - "column": 56, + "column": 54, "program": "generic_override_1.ets" } } @@ -278,7 +278,7 @@ }, "end": { "line": 18, - "column": 56, + "column": 54, "program": "generic_override_1.ets" } } @@ -542,7 +542,7 @@ }, "end": { "line": 21, - "column": 48, + "column": 47, "program": "generic_override_1.ets" } } @@ -555,7 +555,7 @@ }, "end": { "line": 21, - "column": 48, + "column": 47, "program": "generic_override_1.ets" } } @@ -582,7 +582,7 @@ }, "end": { "line": 21, - "column": 49, + "column": 48, "program": "generic_override_1.ets" } } @@ -595,7 +595,7 @@ }, "end": { "line": 21, - "column": 49, + "column": 48, "program": "generic_override_1.ets" } } @@ -609,7 +609,7 @@ }, "end": { "line": 21, - "column": 49, + "column": 48, "program": "generic_override_1.ets" } } @@ -622,7 +622,7 @@ }, "end": { "line": 21, - "column": 49, + "column": 48, "program": "generic_override_1.ets" } } @@ -685,7 +685,7 @@ }, "end": { "line": 21, - "column": 79, + "column": 78, "program": "generic_override_1.ets" } } @@ -698,7 +698,7 @@ }, "end": { "line": 21, - "column": 79, + "column": 78, "program": "generic_override_1.ets" } } @@ -725,7 +725,7 @@ }, "end": { "line": 21, - "column": 80, + "column": 79, "program": "generic_override_1.ets" } } @@ -738,7 +738,7 @@ }, "end": { "line": 21, - "column": 80, + "column": 79, "program": "generic_override_1.ets" } } @@ -752,7 +752,7 @@ }, "end": { "line": 21, - "column": 80, + "column": 79, "program": "generic_override_1.ets" } } @@ -765,7 +765,7 @@ }, "end": { "line": 21, - "column": 80, + "column": 79, "program": "generic_override_1.ets" } } @@ -824,7 +824,7 @@ }, "end": { "line": 21, - "column": 101, + "column": 100, "program": "generic_override_1.ets" } } @@ -837,7 +837,7 @@ }, "end": { "line": 21, - "column": 101, + "column": 100, "program": "generic_override_1.ets" } } @@ -863,8 +863,8 @@ "program": "generic_override_1.ets" }, "end": { - "line": 22, - "column": 2, + "line": 21, + "column": 101, "program": "generic_override_1.ets" } } @@ -876,8 +876,8 @@ "program": "generic_override_1.ets" }, "end": { - "line": 22, - "column": 2, + "line": 21, + "column": 101, "program": "generic_override_1.ets" } } @@ -950,8 +950,8 @@ "program": "generic_override_1.ets" }, "end": { - "line": 22, - "column": 2, + "line": 21, + "column": 101, "program": "generic_override_1.ets" } } @@ -967,8 +967,8 @@ "program": "generic_override_1.ets" }, "end": { - "line": 22, - "column": 2, + "line": 21, + "column": 101, "program": "generic_override_1.ets" } } @@ -980,8 +980,8 @@ "program": "generic_override_1.ets" }, "end": { - "line": 22, - "column": 2, + "line": 21, + "column": 101, "program": "generic_override_1.ets" } } @@ -993,8 +993,8 @@ "program": "generic_override_1.ets" }, "end": { - "line": 22, - "column": 2, + "line": 21, + "column": 101, "program": "generic_override_1.ets" } } @@ -1006,8 +1006,8 @@ "program": "generic_override_1.ets" }, "end": { - "line": 22, - "column": 2, + "line": 21, + "column": 101, "program": "generic_override_1.ets" } } @@ -1026,8 +1026,8 @@ "program": "generic_override_1.ets" }, "end": { - "line": 22, - "column": 2, + "line": 21, + "column": 101, "program": "generic_override_1.ets" } } @@ -1042,8 +1042,8 @@ "program": "generic_override_1.ets" }, "end": { - "line": 22, - "column": 2, + "line": 21, + "column": 101, "program": "generic_override_1.ets" } } @@ -1062,8 +1062,8 @@ "program": "generic_override_1.ets" }, "end": { - "line": 22, - "column": 2, + "line": 21, + "column": 101, "program": "generic_override_1.ets" } } @@ -1076,8 +1076,8 @@ "program": "generic_override_1.ets" }, "end": { - "line": 22, - "column": 2, + "line": 21, + "column": 101, "program": "generic_override_1.ets" } } @@ -1090,8 +1090,8 @@ "program": "generic_override_1.ets" }, "end": { - "line": 22, - "column": 2, + "line": 21, + "column": 101, "program": "generic_override_1.ets" } } @@ -1103,8 +1103,8 @@ "program": "generic_override_1.ets" }, "end": { - "line": 22, - "column": 2, + "line": 21, + "column": 101, "program": "generic_override_1.ets" } } @@ -1118,8 +1118,8 @@ "program": "generic_override_1.ets" }, "end": { - "line": 22, - "column": 2, + "line": 21, + "column": 101, "program": "generic_override_1.ets" } } @@ -1163,8 +1163,8 @@ "program": "generic_override_1.ets" }, "end": { - "line": 24, - "column": 10, + "line": 22, + "column": 2, "program": "generic_override_1.ets" } } @@ -1261,8 +1261,8 @@ "program": "generic_override_1.ets" }, "end": { - "line": 26, - "column": 6, + "line": 24, + "column": 33, "program": "generic_override_1.ets" } } @@ -1320,7 +1320,7 @@ }, "end": { "line": 26, - "column": 49, + "column": 47, "program": "generic_override_1.ets" } } @@ -1333,7 +1333,7 @@ }, "end": { "line": 26, - "column": 49, + "column": 47, "program": "generic_override_1.ets" } } @@ -1460,7 +1460,7 @@ }, "end": { "line": 27, - "column": 48, + "column": 47, "program": "generic_override_1.ets" } } @@ -1473,7 +1473,7 @@ }, "end": { "line": 27, - "column": 48, + "column": 47, "program": "generic_override_1.ets" } } @@ -1500,7 +1500,7 @@ }, "end": { "line": 27, - "column": 49, + "column": 48, "program": "generic_override_1.ets" } } @@ -1513,7 +1513,7 @@ }, "end": { "line": 27, - "column": 49, + "column": 48, "program": "generic_override_1.ets" } } @@ -1527,7 +1527,7 @@ }, "end": { "line": 27, - "column": 49, + "column": 48, "program": "generic_override_1.ets" } } @@ -1540,7 +1540,7 @@ }, "end": { "line": 27, - "column": 49, + "column": 48, "program": "generic_override_1.ets" } } @@ -1603,7 +1603,7 @@ }, "end": { "line": 27, - "column": 78, + "column": 77, "program": "generic_override_1.ets" } } @@ -1616,7 +1616,7 @@ }, "end": { "line": 27, - "column": 78, + "column": 77, "program": "generic_override_1.ets" } } @@ -1643,7 +1643,7 @@ }, "end": { "line": 27, - "column": 79, + "column": 78, "program": "generic_override_1.ets" } } @@ -1656,7 +1656,7 @@ }, "end": { "line": 27, - "column": 79, + "column": 78, "program": "generic_override_1.ets" } } @@ -1670,7 +1670,7 @@ }, "end": { "line": 27, - "column": 79, + "column": 78, "program": "generic_override_1.ets" } } @@ -1683,7 +1683,7 @@ }, "end": { "line": 27, - "column": 79, + "column": 78, "program": "generic_override_1.ets" } } @@ -1742,7 +1742,7 @@ }, "end": { "line": 27, - "column": 97, + "column": 96, "program": "generic_override_1.ets" } } @@ -1755,7 +1755,7 @@ }, "end": { "line": 27, - "column": 97, + "column": 96, "program": "generic_override_1.ets" } } @@ -1782,7 +1782,7 @@ }, "end": { "line": 27, - "column": 99, + "column": 97, "program": "generic_override_1.ets" } } @@ -1795,7 +1795,7 @@ }, "end": { "line": 27, - "column": 99, + "column": 97, "program": "generic_override_1.ets" } } @@ -1909,7 +1909,7 @@ }, "end": { "line": 28, - "column": 36, + "column": 35, "program": "generic_override_1.ets" } } @@ -1922,7 +1922,7 @@ }, "end": { "line": 28, - "column": 36, + "column": 35, "program": "generic_override_1.ets" } } @@ -1949,7 +1949,7 @@ }, "end": { "line": 28, - "column": 37, + "column": 36, "program": "generic_override_1.ets" } } @@ -1962,7 +1962,7 @@ }, "end": { "line": 28, - "column": 37, + "column": 36, "program": "generic_override_1.ets" } } diff --git a/ets2panda/test/compiler/ets/generic_override_2-expected.txt b/ets2panda/test/compiler/ets/generic_override_2-expected.txt index be247d543a6375a1209cacf1f340337004fc82aa..82f88f738b42c4350fbb560257702be9aa083b86 100644 --- a/ets2panda/test/compiler/ets/generic_override_2-expected.txt +++ b/ets2panda/test/compiler/ets/generic_override_2-expected.txt @@ -97,7 +97,7 @@ }, "end": { "line": 17, - "column": 48, + "column": 47, "program": "generic_override_2.ets" } } @@ -110,7 +110,7 @@ }, "end": { "line": 17, - "column": 48, + "column": 47, "program": "generic_override_2.ets" } } @@ -124,7 +124,7 @@ }, "end": { "line": 17, - "column": 48, + "column": 47, "program": "generic_override_2.ets" } } @@ -137,7 +137,7 @@ }, "end": { "line": 17, - "column": 48, + "column": 47, "program": "generic_override_2.ets" } } @@ -175,7 +175,7 @@ }, "end": { "line": 17, - "column": 54, + "column": 53, "program": "generic_override_2.ets" } } @@ -188,7 +188,7 @@ }, "end": { "line": 17, - "column": 54, + "column": 53, "program": "generic_override_2.ets" } } @@ -246,7 +246,7 @@ }, "end": { "line": 17, - "column": 59, + "column": 58, "program": "generic_override_2.ets" } } @@ -259,7 +259,7 @@ }, "end": { "line": 17, - "column": 59, + "column": 58, "program": "generic_override_2.ets" } } @@ -286,7 +286,7 @@ }, "end": { "line": 17, - "column": 60, + "column": 59, "program": "generic_override_2.ets" } } @@ -299,7 +299,7 @@ }, "end": { "line": 17, - "column": 60, + "column": 59, "program": "generic_override_2.ets" } } @@ -313,7 +313,7 @@ }, "end": { "line": 17, - "column": 60, + "column": 59, "program": "generic_override_2.ets" } } @@ -326,7 +326,7 @@ }, "end": { "line": 17, - "column": 60, + "column": 59, "program": "generic_override_2.ets" } } @@ -340,7 +340,7 @@ }, "end": { "line": 17, - "column": 60, + "column": 59, "program": "generic_override_2.ets" } } @@ -353,7 +353,7 @@ }, "end": { "line": 17, - "column": 60, + "column": 59, "program": "generic_override_2.ets" } } @@ -400,7 +400,7 @@ }, "end": { "line": 18, - "column": 46, + "column": 45, "program": "generic_override_2.ets" } } @@ -413,7 +413,7 @@ }, "end": { "line": 18, - "column": 46, + "column": 45, "program": "generic_override_2.ets" } } @@ -427,7 +427,7 @@ }, "end": { "line": 18, - "column": 46, + "column": 45, "program": "generic_override_2.ets" } } @@ -440,7 +440,7 @@ }, "end": { "line": 18, - "column": 46, + "column": 45, "program": "generic_override_2.ets" } } @@ -478,7 +478,7 @@ }, "end": { "line": 18, - "column": 52, + "column": 51, "program": "generic_override_2.ets" } } @@ -491,7 +491,7 @@ }, "end": { "line": 18, - "column": 52, + "column": 51, "program": "generic_override_2.ets" } } @@ -549,7 +549,7 @@ }, "end": { "line": 18, - "column": 57, + "column": 56, "program": "generic_override_2.ets" } } @@ -562,7 +562,7 @@ }, "end": { "line": 18, - "column": 57, + "column": 56, "program": "generic_override_2.ets" } } @@ -589,7 +589,7 @@ }, "end": { "line": 18, - "column": 58, + "column": 57, "program": "generic_override_2.ets" } } @@ -602,7 +602,7 @@ }, "end": { "line": 18, - "column": 58, + "column": 57, "program": "generic_override_2.ets" } } @@ -616,7 +616,7 @@ }, "end": { "line": 18, - "column": 58, + "column": 57, "program": "generic_override_2.ets" } } @@ -629,7 +629,7 @@ }, "end": { "line": 18, - "column": 58, + "column": 57, "program": "generic_override_2.ets" } } @@ -643,7 +643,7 @@ }, "end": { "line": 18, - "column": 58, + "column": 57, "program": "generic_override_2.ets" } } @@ -656,7 +656,7 @@ }, "end": { "line": 18, - "column": 58, + "column": 57, "program": "generic_override_2.ets" } } @@ -718,7 +718,7 @@ }, "end": { "line": 18, - "column": 65, + "column": 64, "program": "generic_override_2.ets" } } @@ -731,7 +731,7 @@ }, "end": { "line": 18, - "column": 65, + "column": 64, "program": "generic_override_2.ets" } } @@ -765,7 +765,7 @@ }, "end": { "line": 18, - "column": 67, + "column": 66, "program": "generic_override_2.ets" } } @@ -778,7 +778,7 @@ }, "end": { "line": 18, - "column": 67, + "column": 66, "program": "generic_override_2.ets" } } @@ -792,7 +792,7 @@ }, "end": { "line": 18, - "column": 67, + "column": 66, "program": "generic_override_2.ets" } } @@ -819,7 +819,7 @@ }, "end": { "line": 18, - "column": 68, + "column": 67, "program": "generic_override_2.ets" } } @@ -832,7 +832,7 @@ }, "end": { "line": 18, - "column": 68, + "column": 67, "program": "generic_override_2.ets" } } @@ -920,7 +920,7 @@ }, "end": { "line": 17, - "column": 23, + "column": 22, "program": "generic_override_2.ets" } } @@ -933,7 +933,7 @@ }, "end": { "line": 17, - "column": 23, + "column": 22, "program": "generic_override_2.ets" } } @@ -985,7 +985,7 @@ }, "end": { "line": 18, - "column": 68, + "column": 67, "program": "generic_override_2.ets" } } @@ -1002,7 +1002,7 @@ }, "end": { "line": 18, - "column": 68, + "column": 67, "program": "generic_override_2.ets" } } @@ -1015,7 +1015,7 @@ }, "end": { "line": 18, - "column": 68, + "column": 67, "program": "generic_override_2.ets" } } @@ -1028,7 +1028,7 @@ }, "end": { "line": 18, - "column": 68, + "column": 67, "program": "generic_override_2.ets" } } @@ -1041,7 +1041,7 @@ }, "end": { "line": 18, - "column": 68, + "column": 67, "program": "generic_override_2.ets" } } @@ -1061,7 +1061,7 @@ }, "end": { "line": 18, - "column": 68, + "column": 67, "program": "generic_override_2.ets" } } @@ -1077,7 +1077,7 @@ }, "end": { "line": 18, - "column": 68, + "column": 67, "program": "generic_override_2.ets" } } @@ -1097,7 +1097,7 @@ }, "end": { "line": 18, - "column": 68, + "column": 67, "program": "generic_override_2.ets" } } @@ -1111,7 +1111,7 @@ }, "end": { "line": 18, - "column": 68, + "column": 67, "program": "generic_override_2.ets" } } @@ -1125,7 +1125,7 @@ }, "end": { "line": 18, - "column": 68, + "column": 67, "program": "generic_override_2.ets" } } @@ -1138,7 +1138,7 @@ }, "end": { "line": 18, - "column": 68, + "column": 67, "program": "generic_override_2.ets" } } @@ -1246,8 +1246,8 @@ "program": "generic_override_2.ets" }, "end": { - "line": 21, - "column": 6, + "line": 19, + "column": 2, "program": "generic_override_2.ets" } } @@ -1378,7 +1378,7 @@ }, "end": { "line": 21, - "column": 28, + "column": 27, "program": "generic_override_2.ets" } } @@ -1391,7 +1391,7 @@ }, "end": { "line": 21, - "column": 28, + "column": 27, "program": "generic_override_2.ets" } } @@ -1418,7 +1418,7 @@ }, "end": { "line": 21, - "column": 30, + "column": 28, "program": "generic_override_2.ets" } } @@ -1431,7 +1431,7 @@ }, "end": { "line": 21, - "column": 30, + "column": 28, "program": "generic_override_2.ets" } } @@ -1542,7 +1542,7 @@ }, "end": { "line": 22, - "column": 48, + "column": 47, "program": "generic_override_2.ets" } } @@ -1555,7 +1555,7 @@ }, "end": { "line": 22, - "column": 48, + "column": 47, "program": "generic_override_2.ets" } } @@ -1569,7 +1569,7 @@ }, "end": { "line": 22, - "column": 48, + "column": 47, "program": "generic_override_2.ets" } } @@ -1582,7 +1582,7 @@ }, "end": { "line": 22, - "column": 48, + "column": 47, "program": "generic_override_2.ets" } } @@ -1620,7 +1620,7 @@ }, "end": { "line": 22, - "column": 54, + "column": 53, "program": "generic_override_2.ets" } } @@ -1633,7 +1633,7 @@ }, "end": { "line": 22, - "column": 54, + "column": 53, "program": "generic_override_2.ets" } } @@ -1691,7 +1691,7 @@ }, "end": { "line": 22, - "column": 59, + "column": 58, "program": "generic_override_2.ets" } } @@ -1704,7 +1704,7 @@ }, "end": { "line": 22, - "column": 59, + "column": 58, "program": "generic_override_2.ets" } } @@ -1731,7 +1731,7 @@ }, "end": { "line": 22, - "column": 60, + "column": 59, "program": "generic_override_2.ets" } } @@ -1744,7 +1744,7 @@ }, "end": { "line": 22, - "column": 60, + "column": 59, "program": "generic_override_2.ets" } } @@ -1758,7 +1758,7 @@ }, "end": { "line": 22, - "column": 60, + "column": 59, "program": "generic_override_2.ets" } } @@ -1771,7 +1771,7 @@ }, "end": { "line": 22, - "column": 60, + "column": 59, "program": "generic_override_2.ets" } } @@ -1785,7 +1785,7 @@ }, "end": { "line": 22, - "column": 60, + "column": 59, "program": "generic_override_2.ets" } } @@ -1798,7 +1798,7 @@ }, "end": { "line": 22, - "column": 60, + "column": 59, "program": "generic_override_2.ets" } } @@ -1845,7 +1845,7 @@ }, "end": { "line": 23, - "column": 46, + "column": 45, "program": "generic_override_2.ets" } } @@ -1858,7 +1858,7 @@ }, "end": { "line": 23, - "column": 46, + "column": 45, "program": "generic_override_2.ets" } } @@ -1872,7 +1872,7 @@ }, "end": { "line": 23, - "column": 46, + "column": 45, "program": "generic_override_2.ets" } } @@ -1885,7 +1885,7 @@ }, "end": { "line": 23, - "column": 46, + "column": 45, "program": "generic_override_2.ets" } } @@ -1923,7 +1923,7 @@ }, "end": { "line": 23, - "column": 52, + "column": 51, "program": "generic_override_2.ets" } } @@ -1936,7 +1936,7 @@ }, "end": { "line": 23, - "column": 52, + "column": 51, "program": "generic_override_2.ets" } } @@ -1994,7 +1994,7 @@ }, "end": { "line": 23, - "column": 57, + "column": 56, "program": "generic_override_2.ets" } } @@ -2007,7 +2007,7 @@ }, "end": { "line": 23, - "column": 57, + "column": 56, "program": "generic_override_2.ets" } } @@ -2034,7 +2034,7 @@ }, "end": { "line": 23, - "column": 58, + "column": 57, "program": "generic_override_2.ets" } } @@ -2047,7 +2047,7 @@ }, "end": { "line": 23, - "column": 58, + "column": 57, "program": "generic_override_2.ets" } } @@ -2061,7 +2061,7 @@ }, "end": { "line": 23, - "column": 58, + "column": 57, "program": "generic_override_2.ets" } } @@ -2074,7 +2074,7 @@ }, "end": { "line": 23, - "column": 58, + "column": 57, "program": "generic_override_2.ets" } } @@ -2088,7 +2088,7 @@ }, "end": { "line": 23, - "column": 58, + "column": 57, "program": "generic_override_2.ets" } } @@ -2101,7 +2101,7 @@ }, "end": { "line": 23, - "column": 58, + "column": 57, "program": "generic_override_2.ets" } } @@ -2163,7 +2163,7 @@ }, "end": { "line": 23, - "column": 65, + "column": 64, "program": "generic_override_2.ets" } } @@ -2176,7 +2176,7 @@ }, "end": { "line": 23, - "column": 65, + "column": 64, "program": "generic_override_2.ets" } } @@ -2210,7 +2210,7 @@ }, "end": { "line": 23, - "column": 67, + "column": 66, "program": "generic_override_2.ets" } } @@ -2223,7 +2223,7 @@ }, "end": { "line": 23, - "column": 67, + "column": 66, "program": "generic_override_2.ets" } } @@ -2237,7 +2237,7 @@ }, "end": { "line": 23, - "column": 67, + "column": 66, "program": "generic_override_2.ets" } } @@ -2264,7 +2264,7 @@ }, "end": { "line": 23, - "column": 69, + "column": 67, "program": "generic_override_2.ets" } } @@ -2277,7 +2277,7 @@ }, "end": { "line": 23, - "column": 69, + "column": 67, "program": "generic_override_2.ets" } } @@ -2365,7 +2365,7 @@ }, "end": { "line": 22, - "column": 23, + "column": 22, "program": "generic_override_2.ets" } } @@ -2378,7 +2378,7 @@ }, "end": { "line": 22, - "column": 23, + "column": 22, "program": "generic_override_2.ets" } } @@ -2473,7 +2473,7 @@ }, "end": { "line": 24, - "column": 24, + "column": 23, "program": "generic_override_2.ets" } } @@ -2486,7 +2486,7 @@ }, "end": { "line": 24, - "column": 24, + "column": 23, "program": "generic_override_2.ets" } } @@ -2520,7 +2520,7 @@ }, "end": { "line": 24, - "column": 26, + "column": 25, "program": "generic_override_2.ets" } } @@ -2533,7 +2533,7 @@ }, "end": { "line": 24, - "column": 26, + "column": 25, "program": "generic_override_2.ets" } } @@ -2547,7 +2547,7 @@ }, "end": { "line": 24, - "column": 26, + "column": 25, "program": "generic_override_2.ets" } } @@ -2574,7 +2574,7 @@ }, "end": { "line": 24, - "column": 27, + "column": 26, "program": "generic_override_2.ets" } } @@ -2587,7 +2587,7 @@ }, "end": { "line": 24, - "column": 27, + "column": 26, "program": "generic_override_2.ets" } } diff --git a/ets2panda/test/compiler/ets/generic_override_3-expected.txt b/ets2panda/test/compiler/ets/generic_override_3-expected.txt index 26dac385b9c0ac1ddc8bfda72df1fb1b3190c1ca..d82e215fac947f40d35ee910bd3d5f2ccb6cea2e 100644 --- a/ets2panda/test/compiler/ets/generic_override_3-expected.txt +++ b/ets2panda/test/compiler/ets/generic_override_3-expected.txt @@ -327,7 +327,7 @@ }, "end": { "line": 17, - "column": 24, + "column": 23, "program": "generic_override_3.ets" } } @@ -340,7 +340,7 @@ }, "end": { "line": 17, - "column": 24, + "column": 23, "program": "generic_override_3.ets" } } @@ -367,7 +367,7 @@ }, "end": { "line": 17, - "column": 26, + "column": 24, "program": "generic_override_3.ets" } } @@ -380,7 +380,7 @@ }, "end": { "line": 17, - "column": 26, + "column": 24, "program": "generic_override_3.ets" } } @@ -835,7 +835,7 @@ }, "end": { "line": 21, - "column": 29, + "column": 28, "program": "generic_override_3.ets" } } @@ -848,7 +848,7 @@ }, "end": { "line": 21, - "column": 29, + "column": 28, "program": "generic_override_3.ets" } } @@ -875,7 +875,7 @@ }, "end": { "line": 21, - "column": 30, + "column": 29, "program": "generic_override_3.ets" } } @@ -888,7 +888,7 @@ }, "end": { "line": 21, - "column": 30, + "column": 29, "program": "generic_override_3.ets" } } @@ -902,7 +902,7 @@ }, "end": { "line": 21, - "column": 30, + "column": 29, "program": "generic_override_3.ets" } } @@ -915,7 +915,7 @@ }, "end": { "line": 21, - "column": 30, + "column": 29, "program": "generic_override_3.ets" } } @@ -974,7 +974,7 @@ }, "end": { "line": 21, - "column": 36, + "column": 35, "program": "generic_override_3.ets" } } @@ -987,7 +987,7 @@ }, "end": { "line": 21, - "column": 36, + "column": 35, "program": "generic_override_3.ets" } } @@ -1014,7 +1014,7 @@ }, "end": { "line": 21, - "column": 37, + "column": 36, "program": "generic_override_3.ets" } } @@ -1027,7 +1027,7 @@ }, "end": { "line": 21, - "column": 37, + "column": 36, "program": "generic_override_3.ets" } } @@ -1101,7 +1101,7 @@ }, "end": { "line": 21, - "column": 37, + "column": 36, "program": "generic_override_3.ets" } } @@ -1118,7 +1118,7 @@ }, "end": { "line": 21, - "column": 37, + "column": 36, "program": "generic_override_3.ets" } } @@ -1131,7 +1131,7 @@ }, "end": { "line": 21, - "column": 37, + "column": 36, "program": "generic_override_3.ets" } } @@ -1144,7 +1144,7 @@ }, "end": { "line": 21, - "column": 37, + "column": 36, "program": "generic_override_3.ets" } } @@ -1157,7 +1157,7 @@ }, "end": { "line": 21, - "column": 37, + "column": 36, "program": "generic_override_3.ets" } } @@ -1177,7 +1177,7 @@ }, "end": { "line": 21, - "column": 37, + "column": 36, "program": "generic_override_3.ets" } } @@ -1193,7 +1193,7 @@ }, "end": { "line": 21, - "column": 37, + "column": 36, "program": "generic_override_3.ets" } } @@ -1213,7 +1213,7 @@ }, "end": { "line": 21, - "column": 37, + "column": 36, "program": "generic_override_3.ets" } } @@ -1227,7 +1227,7 @@ }, "end": { "line": 21, - "column": 37, + "column": 36, "program": "generic_override_3.ets" } } @@ -1241,7 +1241,7 @@ }, "end": { "line": 21, - "column": 37, + "column": 36, "program": "generic_override_3.ets" } } @@ -1254,7 +1254,7 @@ }, "end": { "line": 21, - "column": 37, + "column": 36, "program": "generic_override_3.ets" } } @@ -1313,8 +1313,8 @@ "program": "generic_override_3.ets" }, "end": { - "line": 24, - "column": 6, + "line": 22, + "column": 2, "program": "generic_override_3.ets" } } @@ -1372,7 +1372,7 @@ }, "end": { "line": 24, - "column": 32, + "column": 30, "program": "generic_override_3.ets" } } @@ -1385,7 +1385,7 @@ }, "end": { "line": 24, - "column": 32, + "column": 30, "program": "generic_override_3.ets" } } @@ -1512,7 +1512,7 @@ }, "end": { "line": 25, - "column": 45, + "column": 44, "program": "generic_override_3.ets" } } @@ -1525,7 +1525,7 @@ }, "end": { "line": 25, - "column": 45, + "column": 44, "program": "generic_override_3.ets" } } @@ -1552,7 +1552,7 @@ }, "end": { "line": 25, - "column": 46, + "column": 45, "program": "generic_override_3.ets" } } @@ -1565,7 +1565,7 @@ }, "end": { "line": 25, - "column": 46, + "column": 45, "program": "generic_override_3.ets" } } @@ -1579,7 +1579,7 @@ }, "end": { "line": 25, - "column": 46, + "column": 45, "program": "generic_override_3.ets" } } @@ -1592,7 +1592,7 @@ }, "end": { "line": 25, - "column": 46, + "column": 45, "program": "generic_override_3.ets" } } @@ -1651,7 +1651,7 @@ }, "end": { "line": 25, - "column": 52, + "column": 51, "program": "generic_override_3.ets" } } @@ -1664,7 +1664,7 @@ }, "end": { "line": 25, - "column": 52, + "column": 51, "program": "generic_override_3.ets" } } @@ -1691,7 +1691,7 @@ }, "end": { "line": 25, - "column": 54, + "column": 52, "program": "generic_override_3.ets" } } @@ -1704,7 +1704,7 @@ }, "end": { "line": 25, - "column": 54, + "column": 52, "program": "generic_override_3.ets" } } @@ -1818,7 +1818,7 @@ }, "end": { "line": 26, - "column": 24, + "column": 23, "program": "generic_override_3.ets" } } @@ -1831,7 +1831,7 @@ }, "end": { "line": 26, - "column": 24, + "column": 23, "program": "generic_override_3.ets" } } @@ -1858,7 +1858,7 @@ }, "end": { "line": 26, - "column": 25, + "column": 24, "program": "generic_override_3.ets" } } @@ -1871,7 +1871,7 @@ }, "end": { "line": 26, - "column": 25, + "column": 24, "program": "generic_override_3.ets" } } diff --git a/ets2panda/test/compiler/ets/generic_typealias_1-expected.txt b/ets2panda/test/compiler/ets/generic_typealias_1-expected.txt index a4235a75e58f557a53b9748f920567af915c15af..850589db695213a0b4afb2509d228be78ea46936 100644 --- a/ets2panda/test/compiler/ets/generic_typealias_1-expected.txt +++ b/ets2panda/test/compiler/ets/generic_typealias_1-expected.txt @@ -48,8 +48,8 @@ "program": "generic_typealias_1.ets" }, "end": { - "line": 17, - "column": 5, + "line": 16, + "column": 18, "program": "generic_typealias_1.ets" } } @@ -61,8 +61,8 @@ "program": "generic_typealias_1.ets" }, "end": { - "line": 17, - "column": 5, + "line": 16, + "column": 18, "program": "generic_typealias_1.ets" } } @@ -128,7 +128,7 @@ }, "end": { "line": 17, - "column": 21, + "column": 20, "program": "generic_typealias_1.ets" } } @@ -141,7 +141,7 @@ }, "end": { "line": 17, - "column": 21, + "column": 20, "program": "generic_typealias_1.ets" } } @@ -280,7 +280,7 @@ }, "end": { "line": 18, - "column": 19, + "column": 18, "program": "generic_typealias_1.ets" } } @@ -293,7 +293,7 @@ }, "end": { "line": 18, - "column": 19, + "column": 18, "program": "generic_typealias_1.ets" } } @@ -320,7 +320,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "generic_typealias_1.ets" } } @@ -333,7 +333,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "generic_typealias_1.ets" } } @@ -837,7 +837,7 @@ }, "end": { "line": 23, - "column": 17, + "column": 15, "program": "generic_typealias_1.ets" } } @@ -850,7 +850,7 @@ }, "end": { "line": 23, - "column": 17, + "column": 15, "program": "generic_typealias_1.ets" } } @@ -924,7 +924,7 @@ }, "end": { "line": 23, - "column": 34, + "column": 33, "program": "generic_typealias_1.ets" } } @@ -937,7 +937,7 @@ }, "end": { "line": 23, - "column": 34, + "column": 33, "program": "generic_typealias_1.ets" } } @@ -964,7 +964,7 @@ }, "end": { "line": 23, - "column": 35, + "column": 34, "program": "generic_typealias_1.ets" } } @@ -977,7 +977,7 @@ }, "end": { "line": 23, - "column": 35, + "column": 34, "program": "generic_typealias_1.ets" } } @@ -1102,7 +1102,7 @@ }, "end": { "line": 24, - "column": 21, + "column": 20, "program": "generic_typealias_1.ets" } } @@ -1115,7 +1115,7 @@ }, "end": { "line": 24, - "column": 21, + "column": 20, "program": "generic_typealias_1.ets" } } @@ -1142,7 +1142,7 @@ }, "end": { "line": 24, - "column": 23, + "column": 21, "program": "generic_typealias_1.ets" } } @@ -1155,7 +1155,7 @@ }, "end": { "line": 24, - "column": 23, + "column": 21, "program": "generic_typealias_1.ets" } } @@ -1253,7 +1253,7 @@ }, "end": { "line": 24, - "column": 46, + "column": 44, "program": "generic_typealias_1.ets" } } @@ -1266,7 +1266,7 @@ }, "end": { "line": 24, - "column": 46, + "column": 44, "program": "generic_typealias_1.ets" } } @@ -1333,7 +1333,7 @@ }, "end": { "line": 24, - "column": 47, + "column": 46, "program": "generic_typealias_1.ets" } } @@ -1346,7 +1346,7 @@ }, "end": { "line": 24, - "column": 47, + "column": 46, "program": "generic_typealias_1.ets" } } @@ -1478,7 +1478,7 @@ }, "end": { "line": 25, - "column": 28, + "column": 26, "program": "generic_typealias_1.ets" } } @@ -1491,7 +1491,7 @@ }, "end": { "line": 25, - "column": 28, + "column": 26, "program": "generic_typealias_1.ets" } } @@ -1558,7 +1558,7 @@ }, "end": { "line": 25, - "column": 30, + "column": 28, "program": "generic_typealias_1.ets" } } @@ -1571,7 +1571,7 @@ }, "end": { "line": 25, - "column": 30, + "column": 28, "program": "generic_typealias_1.ets" } } @@ -1645,7 +1645,7 @@ }, "end": { "line": 25, - "column": 42, + "column": 41, "program": "generic_typealias_1.ets" } } @@ -1658,7 +1658,7 @@ }, "end": { "line": 25, - "column": 42, + "column": 41, "program": "generic_typealias_1.ets" } } @@ -1685,7 +1685,7 @@ }, "end": { "line": 25, - "column": 43, + "column": 42, "program": "generic_typealias_1.ets" } } @@ -1698,7 +1698,7 @@ }, "end": { "line": 25, - "column": 43, + "column": 42, "program": "generic_typealias_1.ets" } } @@ -1830,7 +1830,7 @@ }, "end": { "line": 26, - "column": 27, + "column": 25, "program": "generic_typealias_1.ets" } } @@ -1843,7 +1843,7 @@ }, "end": { "line": 26, - "column": 27, + "column": 25, "program": "generic_typealias_1.ets" } } @@ -1910,7 +1910,7 @@ }, "end": { "line": 26, - "column": 29, + "column": 27, "program": "generic_typealias_1.ets" } } @@ -1923,7 +1923,7 @@ }, "end": { "line": 26, - "column": 29, + "column": 27, "program": "generic_typealias_1.ets" } } @@ -2021,7 +2021,7 @@ }, "end": { "line": 26, - "column": 49, + "column": 47, "program": "generic_typealias_1.ets" } } @@ -2034,7 +2034,7 @@ }, "end": { "line": 26, - "column": 49, + "column": 47, "program": "generic_typealias_1.ets" } } @@ -2101,7 +2101,7 @@ }, "end": { "line": 26, - "column": 50, + "column": 49, "program": "generic_typealias_1.ets" } } @@ -2114,7 +2114,7 @@ }, "end": { "line": 26, - "column": 50, + "column": 49, "program": "generic_typealias_1.ets" } } @@ -2222,7 +2222,7 @@ }, "end": { "line": 28, - "column": 20, + "column": 19, "program": "generic_typealias_1.ets" } } @@ -2235,7 +2235,7 @@ }, "end": { "line": 28, - "column": 20, + "column": 19, "program": "generic_typealias_1.ets" } } @@ -2262,7 +2262,7 @@ }, "end": { "line": 28, - "column": 22, + "column": 20, "program": "generic_typealias_1.ets" } } @@ -2275,7 +2275,7 @@ }, "end": { "line": 28, - "column": 22, + "column": 20, "program": "generic_typealias_1.ets" } } @@ -2400,7 +2400,7 @@ }, "end": { "line": 29, - "column": 23, + "column": 22, "program": "generic_typealias_1.ets" } } @@ -2413,7 +2413,7 @@ }, "end": { "line": 29, - "column": 23, + "column": 22, "program": "generic_typealias_1.ets" } } @@ -2440,7 +2440,7 @@ }, "end": { "line": 29, - "column": 25, + "column": 23, "program": "generic_typealias_1.ets" } } @@ -2453,7 +2453,7 @@ }, "end": { "line": 29, - "column": 25, + "column": 23, "program": "generic_typealias_1.ets" } } @@ -2602,7 +2602,7 @@ }, "end": { "line": 30, - "column": 29, + "column": 27, "program": "generic_typealias_1.ets" } } @@ -2615,7 +2615,7 @@ }, "end": { "line": 30, - "column": 29, + "column": 27, "program": "generic_typealias_1.ets" } } @@ -2682,7 +2682,7 @@ }, "end": { "line": 30, - "column": 31, + "column": 29, "program": "generic_typealias_1.ets" } } @@ -2695,7 +2695,7 @@ }, "end": { "line": 30, - "column": 31, + "column": 29, "program": "generic_typealias_1.ets" } } @@ -2844,7 +2844,7 @@ }, "end": { "line": 31, - "column": 32, + "column": 30, "program": "generic_typealias_1.ets" } } @@ -2857,7 +2857,7 @@ }, "end": { "line": 31, - "column": 32, + "column": 30, "program": "generic_typealias_1.ets" } } @@ -2924,7 +2924,7 @@ }, "end": { "line": 31, - "column": 34, + "column": 32, "program": "generic_typealias_1.ets" } } @@ -2937,7 +2937,7 @@ }, "end": { "line": 31, - "column": 34, + "column": 32, "program": "generic_typealias_1.ets" } } @@ -3011,7 +3011,7 @@ }, "end": { "line": 31, - "column": 45, + "column": 44, "program": "generic_typealias_1.ets" } } @@ -3024,7 +3024,7 @@ }, "end": { "line": 31, - "column": 45, + "column": 44, "program": "generic_typealias_1.ets" } } @@ -3051,7 +3051,7 @@ }, "end": { "line": 31, - "column": 46, + "column": 45, "program": "generic_typealias_1.ets" } } @@ -3064,7 +3064,7 @@ }, "end": { "line": 31, - "column": 46, + "column": 45, "program": "generic_typealias_1.ets" } } diff --git a/ets2panda/test/compiler/ets/generic_typealias_6-expected.txt b/ets2panda/test/compiler/ets/generic_typealias_6-expected.txt index 3cb0c9580f0eedf93cad8de13cba92c9a263f871..d33de970894c77c5bb041ab658b5a3b02d38321f 100644 --- a/ets2panda/test/compiler/ets/generic_typealias_6-expected.txt +++ b/ets2panda/test/compiler/ets/generic_typealias_6-expected.txt @@ -96,7 +96,7 @@ }, "end": { "line": 16, - "column": 33, + "column": 31, "program": "generic_typealias_6.ets" } } @@ -109,7 +109,7 @@ }, "end": { "line": 16, - "column": 33, + "column": 31, "program": "generic_typealias_6.ets" } } @@ -388,7 +388,7 @@ }, "end": { "line": 18, - "column": 22, + "column": 21, "program": "generic_typealias_6.ets" } } @@ -401,7 +401,7 @@ }, "end": { "line": 18, - "column": 22, + "column": 21, "program": "generic_typealias_6.ets" } } @@ -428,7 +428,7 @@ }, "end": { "line": 18, - "column": 23, + "column": 22, "program": "generic_typealias_6.ets" } } @@ -441,7 +441,7 @@ }, "end": { "line": 18, - "column": 23, + "column": 22, "program": "generic_typealias_6.ets" } } @@ -765,7 +765,7 @@ }, "end": { "line": 21, - "column": 18, + "column": 17, "program": "generic_typealias_6.ets" } } @@ -778,7 +778,7 @@ }, "end": { "line": 21, - "column": 18, + "column": 17, "program": "generic_typealias_6.ets" } } @@ -805,7 +805,7 @@ }, "end": { "line": 21, - "column": 19, + "column": 18, "program": "generic_typealias_6.ets" } } @@ -818,7 +818,7 @@ }, "end": { "line": 21, - "column": 19, + "column": 18, "program": "generic_typealias_6.ets" } } diff --git a/ets2panda/test/compiler/ets/generic_typealias_7_neg-expected.txt b/ets2panda/test/compiler/ets/generic_typealias_7_neg-expected.txt index b67e9bdf21e15180dce0e877ceece5637f3b30bd..2cb90a6edf7a0c428a1bf413cd7f90d9b9eb4e16 100644 --- a/ets2panda/test/compiler/ets/generic_typealias_7_neg-expected.txt +++ b/ets2panda/test/compiler/ets/generic_typealias_7_neg-expected.txt @@ -49,7 +49,7 @@ }, "end": { "line": 15, - "column": 20, + "column": 19, "program": "generic_typealias_7_neg.ets" } } @@ -62,7 +62,7 @@ }, "end": { "line": 15, - "column": 20, + "column": 19, "program": "generic_typealias_7_neg.ets" } } @@ -394,7 +394,7 @@ }, "end": { "line": 18, - "column": 25, + "column": 23, "program": "generic_typealias_7_neg.ets" } } @@ -407,7 +407,7 @@ }, "end": { "line": 18, - "column": 25, + "column": 23, "program": "generic_typealias_7_neg.ets" } } diff --git a/ets2panda/test/compiler/ets/generic_typealias_8-expected.txt b/ets2panda/test/compiler/ets/generic_typealias_8-expected.txt index 4f2a59a9b9a2fe97f83819206a879cbb3d512579..937661efc68a2b2ffe4c95477d728b36575960d7 100644 --- a/ets2panda/test/compiler/ets/generic_typealias_8-expected.txt +++ b/ets2panda/test/compiler/ets/generic_typealias_8-expected.txt @@ -49,7 +49,7 @@ }, "end": { "line": 15, - "column": 20, + "column": 19, "program": "generic_typealias_8.ets" } } @@ -62,7 +62,7 @@ }, "end": { "line": 15, - "column": 20, + "column": 19, "program": "generic_typealias_8.ets" } } @@ -544,7 +544,7 @@ }, "end": { "line": 19, - "column": 24, + "column": 22, "program": "generic_typealias_8.ets" } } @@ -557,7 +557,7 @@ }, "end": { "line": 19, - "column": 24, + "column": 22, "program": "generic_typealias_8.ets" } } @@ -591,7 +591,7 @@ }, "end": { "line": 19, - "column": 27, + "column": 26, "program": "generic_typealias_8.ets" } } @@ -604,7 +604,7 @@ }, "end": { "line": 19, - "column": 27, + "column": 26, "program": "generic_typealias_8.ets" } } @@ -618,7 +618,7 @@ }, "end": { "line": 19, - "column": 27, + "column": 26, "program": "generic_typealias_8.ets" } } @@ -645,7 +645,7 @@ }, "end": { "line": 19, - "column": 29, + "column": 27, "program": "generic_typealias_8.ets" } } @@ -658,7 +658,7 @@ }, "end": { "line": 19, - "column": 29, + "column": 27, "program": "generic_typealias_8.ets" } } @@ -708,7 +708,7 @@ }, "end": { "line": 19, - "column": 36, + "column": 35, "program": "generic_typealias_8.ets" } } @@ -721,7 +721,7 @@ }, "end": { "line": 19, - "column": 36, + "column": 35, "program": "generic_typealias_8.ets" } } diff --git a/ets2panda/test/compiler/ets/generic_typealias_9-expected.txt b/ets2panda/test/compiler/ets/generic_typealias_9-expected.txt index 4192403c560d3122c3b3df1d278bfa0c4d407e3f..ae00179942f1828fd98809b3bad08e6ec21c389a 100644 --- a/ets2panda/test/compiler/ets/generic_typealias_9-expected.txt +++ b/ets2panda/test/compiler/ets/generic_typealias_9-expected.txt @@ -99,8 +99,8 @@ "program": "generic_typealias_9.ets" }, "end": { - "line": 17, - "column": 9, + "line": 15, + "column": 53, "program": "generic_typealias_9.ets" } } @@ -112,8 +112,8 @@ "program": "generic_typealias_9.ets" }, "end": { - "line": 17, - "column": 9, + "line": 15, + "column": 53, "program": "generic_typealias_9.ets" } } @@ -125,8 +125,8 @@ "program": "generic_typealias_9.ets" }, "end": { - "line": 17, - "column": 9, + "line": 15, + "column": 53, "program": "generic_typealias_9.ets" } } @@ -450,7 +450,7 @@ }, "end": { "line": 18, - "column": 31, + "column": 30, "program": "generic_typealias_9.ets" } } @@ -463,7 +463,7 @@ }, "end": { "line": 18, - "column": 31, + "column": 30, "program": "generic_typealias_9.ets" } } @@ -490,7 +490,7 @@ }, "end": { "line": 18, - "column": 33, + "column": 31, "program": "generic_typealias_9.ets" } } @@ -503,7 +503,7 @@ }, "end": { "line": 18, - "column": 33, + "column": 31, "program": "generic_typealias_9.ets" } } @@ -608,7 +608,7 @@ }, "end": { "line": 18, - "column": 54, + "column": 51, "program": "generic_typealias_9.ets" } } @@ -621,7 +621,7 @@ }, "end": { "line": 18, - "column": 54, + "column": 51, "program": "generic_typealias_9.ets" } } diff --git a/ets2panda/test/compiler/ets/generic_variance_1-expected.txt b/ets2panda/test/compiler/ets/generic_variance_1-expected.txt index 4e142e0137ede1ce07ef76d690d75603267d3daf..8c085de737816c901e79f662e2ef7085c2233202 100644 --- a/ets2panda/test/compiler/ets/generic_variance_1-expected.txt +++ b/ets2panda/test/compiler/ets/generic_variance_1-expected.txt @@ -205,7 +205,7 @@ }, "end": { "line": 17, - "column": 20, + "column": 18, "program": "generic_variance_1.ets" } } @@ -218,7 +218,7 @@ }, "end": { "line": 17, - "column": 20, + "column": 18, "program": "generic_variance_1.ets" } } @@ -1024,7 +1024,7 @@ }, "end": { "line": 23, - "column": 18, + "column": 17, "program": "generic_variance_1.ets" } } @@ -1037,7 +1037,7 @@ }, "end": { "line": 23, - "column": 18, + "column": 17, "program": "generic_variance_1.ets" } } @@ -1064,7 +1064,7 @@ }, "end": { "line": 23, - "column": 20, + "column": 18, "program": "generic_variance_1.ets" } } @@ -1077,7 +1077,7 @@ }, "end": { "line": 23, - "column": 20, + "column": 18, "program": "generic_variance_1.ets" } } @@ -1151,7 +1151,7 @@ }, "end": { "line": 23, - "column": 30, + "column": 29, "program": "generic_variance_1.ets" } } @@ -1164,7 +1164,7 @@ }, "end": { "line": 23, - "column": 30, + "column": 29, "program": "generic_variance_1.ets" } } @@ -1191,7 +1191,7 @@ }, "end": { "line": 23, - "column": 31, + "column": 30, "program": "generic_variance_1.ets" } } @@ -1204,7 +1204,7 @@ }, "end": { "line": 23, - "column": 31, + "column": 30, "program": "generic_variance_1.ets" } } @@ -1312,7 +1312,7 @@ }, "end": { "line": 24, - "column": 18, + "column": 17, "program": "generic_variance_1.ets" } } @@ -1325,7 +1325,7 @@ }, "end": { "line": 24, - "column": 18, + "column": 17, "program": "generic_variance_1.ets" } } @@ -1352,7 +1352,7 @@ }, "end": { "line": 24, - "column": 20, + "column": 18, "program": "generic_variance_1.ets" } } @@ -1365,7 +1365,7 @@ }, "end": { "line": 24, - "column": 20, + "column": 18, "program": "generic_variance_1.ets" } } @@ -1439,7 +1439,7 @@ }, "end": { "line": 24, - "column": 30, + "column": 29, "program": "generic_variance_1.ets" } } @@ -1452,7 +1452,7 @@ }, "end": { "line": 24, - "column": 30, + "column": 29, "program": "generic_variance_1.ets" } } @@ -1479,7 +1479,7 @@ }, "end": { "line": 24, - "column": 31, + "column": 30, "program": "generic_variance_1.ets" } } @@ -1492,7 +1492,7 @@ }, "end": { "line": 24, - "column": 31, + "column": 30, "program": "generic_variance_1.ets" } } @@ -1600,7 +1600,7 @@ }, "end": { "line": 26, - "column": 18, + "column": 17, "program": "generic_variance_1.ets" } } @@ -1613,7 +1613,7 @@ }, "end": { "line": 26, - "column": 18, + "column": 17, "program": "generic_variance_1.ets" } } @@ -1640,7 +1640,7 @@ }, "end": { "line": 26, - "column": 20, + "column": 18, "program": "generic_variance_1.ets" } } @@ -1653,7 +1653,7 @@ }, "end": { "line": 26, - "column": 20, + "column": 18, "program": "generic_variance_1.ets" } } @@ -1727,7 +1727,7 @@ }, "end": { "line": 26, - "column": 30, + "column": 29, "program": "generic_variance_1.ets" } } @@ -1740,7 +1740,7 @@ }, "end": { "line": 26, - "column": 30, + "column": 29, "program": "generic_variance_1.ets" } } @@ -1767,7 +1767,7 @@ }, "end": { "line": 26, - "column": 31, + "column": 30, "program": "generic_variance_1.ets" } } @@ -1780,7 +1780,7 @@ }, "end": { "line": 26, - "column": 31, + "column": 30, "program": "generic_variance_1.ets" } } @@ -1888,7 +1888,7 @@ }, "end": { "line": 27, - "column": 18, + "column": 17, "program": "generic_variance_1.ets" } } @@ -1901,7 +1901,7 @@ }, "end": { "line": 27, - "column": 18, + "column": 17, "program": "generic_variance_1.ets" } } @@ -1928,7 +1928,7 @@ }, "end": { "line": 27, - "column": 20, + "column": 18, "program": "generic_variance_1.ets" } } @@ -1941,7 +1941,7 @@ }, "end": { "line": 27, - "column": 20, + "column": 18, "program": "generic_variance_1.ets" } } @@ -2015,7 +2015,7 @@ }, "end": { "line": 27, - "column": 30, + "column": 29, "program": "generic_variance_1.ets" } } @@ -2028,7 +2028,7 @@ }, "end": { "line": 27, - "column": 30, + "column": 29, "program": "generic_variance_1.ets" } } @@ -2055,7 +2055,7 @@ }, "end": { "line": 27, - "column": 31, + "column": 30, "program": "generic_variance_1.ets" } } @@ -2068,7 +2068,7 @@ }, "end": { "line": 27, - "column": 31, + "column": 30, "program": "generic_variance_1.ets" } } diff --git a/ets2panda/test/compiler/ets/generics_class_recursive_type_1-expected.txt b/ets2panda/test/compiler/ets/generics_class_recursive_type_1-expected.txt index 146ad7ffb814402b78e7866a2d315af3f5419da5..5297b107993cfed0dc6d07bf7aa984559a5053a3 100644 --- a/ets2panda/test/compiler/ets/generics_class_recursive_type_1-expected.txt +++ b/ets2panda/test/compiler/ets/generics_class_recursive_type_1-expected.txt @@ -96,7 +96,7 @@ }, "end": { "line": 16, - "column": 36, + "column": 35, "program": "generics_class_recursive_type_1.ets" } } @@ -109,7 +109,7 @@ }, "end": { "line": 16, - "column": 36, + "column": 35, "program": "generics_class_recursive_type_1.ets" } } @@ -136,7 +136,7 @@ }, "end": { "line": 16, - "column": 37, + "column": 36, "program": "generics_class_recursive_type_1.ets" } } @@ -149,7 +149,7 @@ }, "end": { "line": 16, - "column": 37, + "column": 36, "program": "generics_class_recursive_type_1.ets" } } @@ -294,7 +294,7 @@ }, "end": { "line": 17, - "column": 19, + "column": 18, "program": "generics_class_recursive_type_1.ets" } } @@ -307,7 +307,7 @@ }, "end": { "line": 17, - "column": 19, + "column": 18, "program": "generics_class_recursive_type_1.ets" } } @@ -341,7 +341,7 @@ }, "end": { "line": 17, - "column": 22, + "column": 21, "program": "generics_class_recursive_type_1.ets" } } @@ -354,7 +354,7 @@ }, "end": { "line": 17, - "column": 22, + "column": 21, "program": "generics_class_recursive_type_1.ets" } } @@ -381,7 +381,7 @@ }, "end": { "line": 17, - "column": 23, + "column": 22, "program": "generics_class_recursive_type_1.ets" } } @@ -394,7 +394,7 @@ }, "end": { "line": 17, - "column": 23, + "column": 22, "program": "generics_class_recursive_type_1.ets" } } @@ -409,7 +409,7 @@ }, "end": { "line": 17, - "column": 23, + "column": 22, "program": "generics_class_recursive_type_1.ets" } } @@ -468,7 +468,7 @@ }, "end": { "line": 18, - "column": 12, + "column": 11, "program": "generics_class_recursive_type_1.ets" } } @@ -481,7 +481,7 @@ }, "end": { "line": 18, - "column": 12, + "column": 11, "program": "generics_class_recursive_type_1.ets" } } @@ -496,7 +496,7 @@ }, "end": { "line": 18, - "column": 12, + "column": 11, "program": "generics_class_recursive_type_1.ets" } } @@ -555,7 +555,7 @@ }, "end": { "line": 19, - "column": 14, + "column": 13, "program": "generics_class_recursive_type_1.ets" } } @@ -568,7 +568,7 @@ }, "end": { "line": 19, - "column": 14, + "column": 13, "program": "generics_class_recursive_type_1.ets" } } @@ -583,7 +583,7 @@ }, "end": { "line": 19, - "column": 14, + "column": 13, "program": "generics_class_recursive_type_1.ets" } } @@ -721,7 +721,7 @@ }, "end": { "line": 21, - "column": 20, + "column": 19, "program": "generics_class_recursive_type_1.ets" } } @@ -734,7 +734,7 @@ }, "end": { "line": 21, - "column": 20, + "column": 19, "program": "generics_class_recursive_type_1.ets" } } @@ -768,7 +768,7 @@ }, "end": { "line": 21, - "column": 23, + "column": 22, "program": "generics_class_recursive_type_1.ets" } } @@ -781,7 +781,7 @@ }, "end": { "line": 21, - "column": 23, + "column": 22, "program": "generics_class_recursive_type_1.ets" } } @@ -808,7 +808,7 @@ }, "end": { "line": 21, - "column": 24, + "column": 23, "program": "generics_class_recursive_type_1.ets" } } @@ -821,7 +821,7 @@ }, "end": { "line": 21, - "column": 24, + "column": 23, "program": "generics_class_recursive_type_1.ets" } } @@ -836,7 +836,7 @@ }, "end": { "line": 21, - "column": 24, + "column": 23, "program": "generics_class_recursive_type_1.ets" } } @@ -948,7 +948,7 @@ }, "end": { "line": 23, - "column": 23, + "column": 22, "program": "generics_class_recursive_type_1.ets" } } @@ -961,7 +961,7 @@ }, "end": { "line": 23, - "column": 23, + "column": 22, "program": "generics_class_recursive_type_1.ets" } } @@ -995,7 +995,7 @@ }, "end": { "line": 23, - "column": 26, + "column": 25, "program": "generics_class_recursive_type_1.ets" } } @@ -1008,7 +1008,7 @@ }, "end": { "line": 23, - "column": 26, + "column": 25, "program": "generics_class_recursive_type_1.ets" } } @@ -1035,7 +1035,7 @@ }, "end": { "line": 23, - "column": 27, + "column": 26, "program": "generics_class_recursive_type_1.ets" } } @@ -1048,7 +1048,7 @@ }, "end": { "line": 23, - "column": 27, + "column": 26, "program": "generics_class_recursive_type_1.ets" } } @@ -1062,7 +1062,7 @@ }, "end": { "line": 23, - "column": 27, + "column": 26, "program": "generics_class_recursive_type_1.ets" } } @@ -1075,7 +1075,7 @@ }, "end": { "line": 23, - "column": 27, + "column": 26, "program": "generics_class_recursive_type_1.ets" } } @@ -1114,7 +1114,7 @@ }, "end": { "line": 24, - "column": 16, + "column": 15, "program": "generics_class_recursive_type_1.ets" } } @@ -1127,7 +1127,7 @@ }, "end": { "line": 24, - "column": 16, + "column": 15, "program": "generics_class_recursive_type_1.ets" } } @@ -1141,7 +1141,7 @@ }, "end": { "line": 24, - "column": 16, + "column": 15, "program": "generics_class_recursive_type_1.ets" } } @@ -1154,7 +1154,7 @@ }, "end": { "line": 24, - "column": 16, + "column": 15, "program": "generics_class_recursive_type_1.ets" } } @@ -1193,7 +1193,7 @@ }, "end": { "line": 25, - "column": 18, + "column": 17, "program": "generics_class_recursive_type_1.ets" } } @@ -1206,7 +1206,7 @@ }, "end": { "line": 25, - "column": 18, + "column": 17, "program": "generics_class_recursive_type_1.ets" } } @@ -1220,7 +1220,7 @@ }, "end": { "line": 25, - "column": 18, + "column": 17, "program": "generics_class_recursive_type_1.ets" } } @@ -1233,7 +1233,7 @@ }, "end": { "line": 25, - "column": 18, + "column": 17, "program": "generics_class_recursive_type_1.ets" } } @@ -1343,7 +1343,7 @@ }, "end": { "line": 27, - "column": 24, + "column": 23, "program": "generics_class_recursive_type_1.ets" } } @@ -1356,7 +1356,7 @@ }, "end": { "line": 27, - "column": 24, + "column": 23, "program": "generics_class_recursive_type_1.ets" } } @@ -1390,7 +1390,7 @@ }, "end": { "line": 27, - "column": 27, + "column": 26, "program": "generics_class_recursive_type_1.ets" } } @@ -1403,7 +1403,7 @@ }, "end": { "line": 27, - "column": 27, + "column": 26, "program": "generics_class_recursive_type_1.ets" } } @@ -1429,8 +1429,8 @@ "program": "generics_class_recursive_type_1.ets" }, "end": { - "line": 28, - "column": 10, + "line": 27, + "column": 27, "program": "generics_class_recursive_type_1.ets" } } @@ -1442,8 +1442,8 @@ "program": "generics_class_recursive_type_1.ets" }, "end": { - "line": 28, - "column": 10, + "line": 27, + "column": 27, "program": "generics_class_recursive_type_1.ets" } } @@ -1456,8 +1456,8 @@ "program": "generics_class_recursive_type_1.ets" }, "end": { - "line": 28, - "column": 10, + "line": 27, + "column": 27, "program": "generics_class_recursive_type_1.ets" } } @@ -1469,8 +1469,8 @@ "program": "generics_class_recursive_type_1.ets" }, "end": { - "line": 28, - "column": 10, + "line": 27, + "column": 27, "program": "generics_class_recursive_type_1.ets" } } @@ -2134,7 +2134,7 @@ }, "end": { "line": 39, - "column": 20, + "column": 19, "program": "generics_class_recursive_type_1.ets" } } @@ -2147,7 +2147,7 @@ }, "end": { "line": 39, - "column": 20, + "column": 19, "program": "generics_class_recursive_type_1.ets" } } @@ -2161,7 +2161,7 @@ }, "end": { "line": 39, - "column": 20, + "column": 19, "program": "generics_class_recursive_type_1.ets" } } @@ -2174,7 +2174,7 @@ }, "end": { "line": 39, - "column": 20, + "column": 19, "program": "generics_class_recursive_type_1.ets" } } @@ -2314,7 +2314,7 @@ }, "end": { "line": 40, - "column": 19, + "column": 18, "program": "generics_class_recursive_type_1.ets" } } @@ -2327,7 +2327,7 @@ }, "end": { "line": 40, - "column": 19, + "column": 18, "program": "generics_class_recursive_type_1.ets" } } @@ -2340,7 +2340,7 @@ }, "end": { "line": 40, - "column": 19, + "column": 18, "program": "generics_class_recursive_type_1.ets" } } @@ -2353,7 +2353,7 @@ }, "end": { "line": 40, - "column": 19, + "column": 18, "program": "generics_class_recursive_type_1.ets" } } @@ -2456,7 +2456,7 @@ }, "end": { "line": 41, - "column": 19, + "column": 18, "program": "generics_class_recursive_type_1.ets" } } @@ -2469,7 +2469,7 @@ }, "end": { "line": 41, - "column": 19, + "column": 18, "program": "generics_class_recursive_type_1.ets" } } @@ -2483,7 +2483,7 @@ }, "end": { "line": 41, - "column": 19, + "column": 18, "program": "generics_class_recursive_type_1.ets" } } @@ -2496,7 +2496,7 @@ }, "end": { "line": 41, - "column": 19, + "column": 18, "program": "generics_class_recursive_type_1.ets" } } @@ -2636,7 +2636,7 @@ }, "end": { "line": 42, - "column": 18, + "column": 17, "program": "generics_class_recursive_type_1.ets" } } @@ -2649,7 +2649,7 @@ }, "end": { "line": 42, - "column": 18, + "column": 17, "program": "generics_class_recursive_type_1.ets" } } @@ -2662,7 +2662,7 @@ }, "end": { "line": 42, - "column": 18, + "column": 17, "program": "generics_class_recursive_type_1.ets" } } @@ -2675,7 +2675,7 @@ }, "end": { "line": 42, - "column": 18, + "column": 17, "program": "generics_class_recursive_type_1.ets" } } @@ -2926,7 +2926,7 @@ }, "end": { "line": 44, - "column": 23, + "column": 22, "program": "generics_class_recursive_type_1.ets" } } @@ -2939,7 +2939,7 @@ }, "end": { "line": 44, - "column": 23, + "column": 22, "program": "generics_class_recursive_type_1.ets" } } @@ -2952,7 +2952,7 @@ }, "end": { "line": 44, - "column": 23, + "column": 22, "program": "generics_class_recursive_type_1.ets" } } @@ -2965,7 +2965,7 @@ }, "end": { "line": 44, - "column": 23, + "column": 22, "program": "generics_class_recursive_type_1.ets" } } @@ -3068,7 +3068,7 @@ }, "end": { "line": 45, - "column": 14, + "column": 13, "program": "generics_class_recursive_type_1.ets" } } @@ -3081,7 +3081,7 @@ }, "end": { "line": 45, - "column": 14, + "column": 13, "program": "generics_class_recursive_type_1.ets" } } @@ -3095,7 +3095,7 @@ }, "end": { "line": 45, - "column": 14, + "column": 13, "program": "generics_class_recursive_type_1.ets" } } @@ -3108,7 +3108,7 @@ }, "end": { "line": 45, - "column": 14, + "column": 13, "program": "generics_class_recursive_type_1.ets" } } @@ -3261,7 +3261,7 @@ }, "end": { "line": 46, - "column": 23, + "column": 22, "program": "generics_class_recursive_type_1.ets" } } @@ -3274,7 +3274,7 @@ }, "end": { "line": 46, - "column": 23, + "column": 22, "program": "generics_class_recursive_type_1.ets" } } @@ -3288,7 +3288,7 @@ }, "end": { "line": 46, - "column": 23, + "column": 22, "program": "generics_class_recursive_type_1.ets" } } @@ -3301,7 +3301,7 @@ }, "end": { "line": 46, - "column": 23, + "column": 22, "program": "generics_class_recursive_type_1.ets" } } @@ -3336,7 +3336,7 @@ }, "end": { "line": 46, - "column": 29, + "column": 28, "program": "generics_class_recursive_type_1.ets" } } @@ -3349,7 +3349,7 @@ }, "end": { "line": 46, - "column": 29, + "column": 28, "program": "generics_class_recursive_type_1.ets" } } @@ -3362,7 +3362,7 @@ }, "end": { "line": 46, - "column": 29, + "column": 28, "program": "generics_class_recursive_type_1.ets" } } @@ -3376,7 +3376,7 @@ }, "end": { "line": 46, - "column": 29, + "column": 28, "program": "generics_class_recursive_type_1.ets" } } @@ -3389,7 +3389,7 @@ }, "end": { "line": 46, - "column": 29, + "column": 28, "program": "generics_class_recursive_type_1.ets" } } @@ -3448,7 +3448,7 @@ }, "end": { "line": 46, - "column": 39, + "column": 38, "program": "generics_class_recursive_type_1.ets" } } @@ -3461,7 +3461,7 @@ }, "end": { "line": 46, - "column": 39, + "column": 38, "program": "generics_class_recursive_type_1.ets" } } @@ -3488,7 +3488,7 @@ }, "end": { "line": 46, - "column": 40, + "column": 39, "program": "generics_class_recursive_type_1.ets" } } @@ -3501,7 +3501,7 @@ }, "end": { "line": 46, - "column": 40, + "column": 39, "program": "generics_class_recursive_type_1.ets" } } @@ -3514,7 +3514,7 @@ }, "end": { "line": 46, - "column": 40, + "column": 39, "program": "generics_class_recursive_type_1.ets" } } @@ -3527,7 +3527,7 @@ }, "end": { "line": 46, - "column": 40, + "column": 39, "program": "generics_class_recursive_type_1.ets" } } @@ -3638,7 +3638,7 @@ }, "end": { "line": 47, - "column": 43, + "column": 42, "program": "generics_class_recursive_type_1.ets" } } @@ -3651,7 +3651,7 @@ }, "end": { "line": 47, - "column": 43, + "column": 42, "program": "generics_class_recursive_type_1.ets" } } @@ -3665,7 +3665,7 @@ }, "end": { "line": 47, - "column": 43, + "column": 42, "program": "generics_class_recursive_type_1.ets" } } @@ -3678,7 +3678,7 @@ }, "end": { "line": 47, - "column": 43, + "column": 42, "program": "generics_class_recursive_type_1.ets" } } @@ -3713,7 +3713,7 @@ }, "end": { "line": 47, - "column": 49, + "column": 48, "program": "generics_class_recursive_type_1.ets" } } @@ -3726,7 +3726,7 @@ }, "end": { "line": 47, - "column": 49, + "column": 48, "program": "generics_class_recursive_type_1.ets" } } @@ -3739,7 +3739,7 @@ }, "end": { "line": 47, - "column": 49, + "column": 48, "program": "generics_class_recursive_type_1.ets" } } @@ -3753,7 +3753,7 @@ }, "end": { "line": 47, - "column": 49, + "column": 48, "program": "generics_class_recursive_type_1.ets" } } @@ -3766,7 +3766,7 @@ }, "end": { "line": 47, - "column": 49, + "column": 48, "program": "generics_class_recursive_type_1.ets" } } @@ -3801,7 +3801,7 @@ }, "end": { "line": 47, - "column": 54, + "column": 53, "program": "generics_class_recursive_type_1.ets" } } @@ -3814,7 +3814,7 @@ }, "end": { "line": 47, - "column": 54, + "column": 53, "program": "generics_class_recursive_type_1.ets" } } @@ -3926,7 +3926,7 @@ }, "end": { "line": 47, - "column": 32, + "column": 30, "program": "generics_class_recursive_type_1.ets" } } @@ -3939,7 +3939,7 @@ }, "end": { "line": 47, - "column": 32, + "column": 30, "program": "generics_class_recursive_type_1.ets" } } @@ -4019,7 +4019,7 @@ }, "end": { "line": 47, - "column": 54, + "column": 53, "program": "generics_class_recursive_type_1.ets" } } @@ -4032,7 +4032,7 @@ }, "end": { "line": 47, - "column": 54, + "column": 53, "program": "generics_class_recursive_type_1.ets" } } @@ -4143,7 +4143,7 @@ }, "end": { "line": 48, - "column": 27, + "column": 26, "program": "generics_class_recursive_type_1.ets" } } @@ -4156,7 +4156,7 @@ }, "end": { "line": 48, - "column": 27, + "column": 26, "program": "generics_class_recursive_type_1.ets" } } @@ -4170,7 +4170,7 @@ }, "end": { "line": 48, - "column": 27, + "column": 26, "program": "generics_class_recursive_type_1.ets" } } @@ -4183,7 +4183,7 @@ }, "end": { "line": 48, - "column": 27, + "column": 26, "program": "generics_class_recursive_type_1.ets" } } @@ -4222,7 +4222,7 @@ }, "end": { "line": 48, - "column": 35, + "column": 34, "program": "generics_class_recursive_type_1.ets" } } @@ -4235,7 +4235,7 @@ }, "end": { "line": 48, - "column": 35, + "column": 34, "program": "generics_class_recursive_type_1.ets" } } @@ -4249,7 +4249,7 @@ }, "end": { "line": 48, - "column": 35, + "column": 34, "program": "generics_class_recursive_type_1.ets" } } @@ -4262,7 +4262,7 @@ }, "end": { "line": 48, - "column": 35, + "column": 34, "program": "generics_class_recursive_type_1.ets" } } @@ -4297,7 +4297,7 @@ }, "end": { "line": 48, - "column": 41, + "column": 40, "program": "generics_class_recursive_type_1.ets" } } @@ -4310,7 +4310,7 @@ }, "end": { "line": 48, - "column": 41, + "column": 40, "program": "generics_class_recursive_type_1.ets" } } @@ -4323,7 +4323,7 @@ }, "end": { "line": 48, - "column": 41, + "column": 40, "program": "generics_class_recursive_type_1.ets" } } @@ -4337,7 +4337,7 @@ }, "end": { "line": 48, - "column": 41, + "column": 40, "program": "generics_class_recursive_type_1.ets" } } @@ -4350,7 +4350,7 @@ }, "end": { "line": 48, - "column": 41, + "column": 40, "program": "generics_class_recursive_type_1.ets" } } @@ -4385,7 +4385,7 @@ }, "end": { "line": 48, - "column": 45, + "column": 44, "program": "generics_class_recursive_type_1.ets" } } @@ -4398,7 +4398,7 @@ }, "end": { "line": 48, - "column": 45, + "column": 44, "program": "generics_class_recursive_type_1.ets" } } @@ -4411,7 +4411,7 @@ }, "end": { "line": 48, - "column": 45, + "column": 44, "program": "generics_class_recursive_type_1.ets" } } @@ -4424,7 +4424,7 @@ }, "end": { "line": 48, - "column": 45, + "column": 44, "program": "generics_class_recursive_type_1.ets" } } @@ -4535,7 +4535,7 @@ }, "end": { "line": 49, - "column": 34, + "column": 33, "program": "generics_class_recursive_type_1.ets" } } @@ -4548,7 +4548,7 @@ }, "end": { "line": 49, - "column": 34, + "column": 33, "program": "generics_class_recursive_type_1.ets" } } @@ -4562,7 +4562,7 @@ }, "end": { "line": 49, - "column": 34, + "column": 33, "program": "generics_class_recursive_type_1.ets" } } @@ -4575,7 +4575,7 @@ }, "end": { "line": 49, - "column": 34, + "column": 33, "program": "generics_class_recursive_type_1.ets" } } @@ -4614,7 +4614,7 @@ }, "end": { "line": 49, - "column": 42, + "column": 41, "program": "generics_class_recursive_type_1.ets" } } @@ -4627,7 +4627,7 @@ }, "end": { "line": 49, - "column": 42, + "column": 41, "program": "generics_class_recursive_type_1.ets" } } @@ -4641,7 +4641,7 @@ }, "end": { "line": 49, - "column": 42, + "column": 41, "program": "generics_class_recursive_type_1.ets" } } @@ -4654,7 +4654,7 @@ }, "end": { "line": 49, - "column": 42, + "column": 41, "program": "generics_class_recursive_type_1.ets" } } @@ -4689,7 +4689,7 @@ }, "end": { "line": 49, - "column": 47, + "column": 46, "program": "generics_class_recursive_type_1.ets" } } @@ -4702,7 +4702,7 @@ }, "end": { "line": 49, - "column": 47, + "column": 46, "program": "generics_class_recursive_type_1.ets" } } @@ -4715,7 +4715,7 @@ }, "end": { "line": 49, - "column": 47, + "column": 46, "program": "generics_class_recursive_type_1.ets" } } @@ -4729,7 +4729,7 @@ }, "end": { "line": 49, - "column": 47, + "column": 46, "program": "generics_class_recursive_type_1.ets" } } @@ -4742,7 +4742,7 @@ }, "end": { "line": 49, - "column": 47, + "column": 46, "program": "generics_class_recursive_type_1.ets" } } @@ -4781,7 +4781,7 @@ }, "end": { "line": 49, - "column": 59, + "column": 58, "program": "generics_class_recursive_type_1.ets" } } @@ -4794,7 +4794,7 @@ }, "end": { "line": 49, - "column": 59, + "column": 58, "program": "generics_class_recursive_type_1.ets" } } @@ -4808,7 +4808,7 @@ }, "end": { "line": 49, - "column": 59, + "column": 58, "program": "generics_class_recursive_type_1.ets" } } @@ -4821,7 +4821,7 @@ }, "end": { "line": 49, - "column": 59, + "column": 58, "program": "generics_class_recursive_type_1.ets" } } @@ -4856,7 +4856,7 @@ }, "end": { "line": 49, - "column": 63, + "column": 62, "program": "generics_class_recursive_type_1.ets" } } @@ -4869,7 +4869,7 @@ }, "end": { "line": 49, - "column": 63, + "column": 62, "program": "generics_class_recursive_type_1.ets" } } @@ -4931,7 +4931,7 @@ }, "end": { "line": 49, - "column": 63, + "column": 62, "program": "generics_class_recursive_type_1.ets" } } @@ -4944,7 +4944,7 @@ }, "end": { "line": 49, - "column": 63, + "column": 62, "program": "generics_class_recursive_type_1.ets" } } @@ -5055,7 +5055,7 @@ }, "end": { "line": 50, - "column": 30, + "column": 29, "program": "generics_class_recursive_type_1.ets" } } @@ -5068,7 +5068,7 @@ }, "end": { "line": 50, - "column": 30, + "column": 29, "program": "generics_class_recursive_type_1.ets" } } @@ -5082,7 +5082,7 @@ }, "end": { "line": 50, - "column": 30, + "column": 29, "program": "generics_class_recursive_type_1.ets" } } @@ -5095,7 +5095,7 @@ }, "end": { "line": 50, - "column": 30, + "column": 29, "program": "generics_class_recursive_type_1.ets" } } @@ -5210,7 +5210,7 @@ }, "end": { "line": 50, - "column": 51, + "column": 50, "program": "generics_class_recursive_type_1.ets" } } @@ -5223,7 +5223,7 @@ }, "end": { "line": 50, - "column": 51, + "column": 50, "program": "generics_class_recursive_type_1.ets" } } @@ -5250,7 +5250,7 @@ }, "end": { "line": 50, - "column": 52, + "column": 51, "program": "generics_class_recursive_type_1.ets" } } @@ -5263,7 +5263,7 @@ }, "end": { "line": 50, - "column": 52, + "column": 51, "program": "generics_class_recursive_type_1.ets" } } @@ -5276,7 +5276,7 @@ }, "end": { "line": 50, - "column": 52, + "column": 51, "program": "generics_class_recursive_type_1.ets" } } @@ -5289,7 +5289,7 @@ }, "end": { "line": 50, - "column": 52, + "column": 51, "program": "generics_class_recursive_type_1.ets" } } @@ -5400,7 +5400,7 @@ }, "end": { "line": 51, - "column": 30, + "column": 29, "program": "generics_class_recursive_type_1.ets" } } @@ -5413,7 +5413,7 @@ }, "end": { "line": 51, - "column": 30, + "column": 29, "program": "generics_class_recursive_type_1.ets" } } @@ -5427,7 +5427,7 @@ }, "end": { "line": 51, - "column": 30, + "column": 29, "program": "generics_class_recursive_type_1.ets" } } @@ -5440,7 +5440,7 @@ }, "end": { "line": 51, - "column": 30, + "column": 29, "program": "generics_class_recursive_type_1.ets" } } @@ -5479,7 +5479,7 @@ }, "end": { "line": 51, - "column": 38, + "column": 37, "program": "generics_class_recursive_type_1.ets" } } @@ -5492,7 +5492,7 @@ }, "end": { "line": 51, - "column": 38, + "column": 37, "program": "generics_class_recursive_type_1.ets" } } @@ -5506,7 +5506,7 @@ }, "end": { "line": 51, - "column": 38, + "column": 37, "program": "generics_class_recursive_type_1.ets" } } @@ -5519,7 +5519,7 @@ }, "end": { "line": 51, - "column": 38, + "column": 37, "program": "generics_class_recursive_type_1.ets" } } @@ -5634,7 +5634,7 @@ }, "end": { "line": 51, - "column": 59, + "column": 58, "program": "generics_class_recursive_type_1.ets" } } @@ -5647,7 +5647,7 @@ }, "end": { "line": 51, - "column": 59, + "column": 58, "program": "generics_class_recursive_type_1.ets" } } @@ -5674,7 +5674,7 @@ }, "end": { "line": 51, - "column": 60, + "column": 59, "program": "generics_class_recursive_type_1.ets" } } @@ -5687,7 +5687,7 @@ }, "end": { "line": 51, - "column": 60, + "column": 59, "program": "generics_class_recursive_type_1.ets" } } @@ -5700,7 +5700,7 @@ }, "end": { "line": 51, - "column": 60, + "column": 59, "program": "generics_class_recursive_type_1.ets" } } @@ -5713,7 +5713,7 @@ }, "end": { "line": 51, - "column": 60, + "column": 59, "program": "generics_class_recursive_type_1.ets" } } @@ -5821,8 +5821,8 @@ "program": "generics_class_recursive_type_1.ets" }, "end": { - "line": 54, - "column": 6, + "line": 52, + "column": 2, "program": "generics_class_recursive_type_1.ets" } } @@ -5977,7 +5977,7 @@ }, "end": { "line": 55, - "column": 12, + "column": 11, "program": "generics_class_recursive_type_1.ets" } } @@ -5990,7 +5990,7 @@ }, "end": { "line": 55, - "column": 12, + "column": 11, "program": "generics_class_recursive_type_1.ets" } } @@ -6017,7 +6017,7 @@ }, "end": { "line": 55, - "column": 13, + "column": 12, "program": "generics_class_recursive_type_1.ets" } } @@ -6030,7 +6030,7 @@ }, "end": { "line": 55, - "column": 13, + "column": 12, "program": "generics_class_recursive_type_1.ets" } } @@ -6045,7 +6045,7 @@ }, "end": { "line": 55, - "column": 13, + "column": 12, "program": "generics_class_recursive_type_1.ets" } } @@ -6157,7 +6157,7 @@ }, "end": { "line": 56, - "column": 24, + "column": 23, "program": "generics_class_recursive_type_1.ets" } } @@ -6170,7 +6170,7 @@ }, "end": { "line": 56, - "column": 24, + "column": 23, "program": "generics_class_recursive_type_1.ets" } } @@ -6197,7 +6197,7 @@ }, "end": { "line": 56, - "column": 25, + "column": 24, "program": "generics_class_recursive_type_1.ets" } } @@ -6210,7 +6210,7 @@ }, "end": { "line": 56, - "column": 25, + "column": 24, "program": "generics_class_recursive_type_1.ets" } } @@ -6224,7 +6224,7 @@ }, "end": { "line": 56, - "column": 25, + "column": 24, "program": "generics_class_recursive_type_1.ets" } } @@ -6237,7 +6237,7 @@ }, "end": { "line": 56, - "column": 25, + "column": 24, "program": "generics_class_recursive_type_1.ets" } } @@ -6520,7 +6520,7 @@ }, "end": { "line": 61, - "column": 32, + "column": 31, "program": "generics_class_recursive_type_1.ets" } } @@ -6533,7 +6533,7 @@ }, "end": { "line": 61, - "column": 32, + "column": 31, "program": "generics_class_recursive_type_1.ets" } } @@ -6560,7 +6560,7 @@ }, "end": { "line": 61, - "column": 33, + "column": 32, "program": "generics_class_recursive_type_1.ets" } } @@ -6573,7 +6573,7 @@ }, "end": { "line": 61, - "column": 33, + "column": 32, "program": "generics_class_recursive_type_1.ets" } } @@ -6718,7 +6718,7 @@ }, "end": { "line": 62, - "column": 16, + "column": 15, "program": "generics_class_recursive_type_1.ets" } } @@ -6731,7 +6731,7 @@ }, "end": { "line": 62, - "column": 16, + "column": 15, "program": "generics_class_recursive_type_1.ets" } } @@ -6765,7 +6765,7 @@ }, "end": { "line": 62, - "column": 19, + "column": 18, "program": "generics_class_recursive_type_1.ets" } } @@ -6778,7 +6778,7 @@ }, "end": { "line": 62, - "column": 19, + "column": 18, "program": "generics_class_recursive_type_1.ets" } } @@ -6805,7 +6805,7 @@ }, "end": { "line": 62, - "column": 20, + "column": 19, "program": "generics_class_recursive_type_1.ets" } } @@ -6818,7 +6818,7 @@ }, "end": { "line": 62, - "column": 20, + "column": 19, "program": "generics_class_recursive_type_1.ets" } } @@ -6833,7 +6833,7 @@ }, "end": { "line": 62, - "column": 20, + "column": 19, "program": "generics_class_recursive_type_1.ets" } } @@ -6916,7 +6916,7 @@ }, "end": { "line": 63, - "column": 16, + "column": 15, "program": "generics_class_recursive_type_1.ets" } } @@ -6929,7 +6929,7 @@ }, "end": { "line": 63, - "column": 16, + "column": 15, "program": "generics_class_recursive_type_1.ets" } } @@ -6963,7 +6963,7 @@ }, "end": { "line": 63, - "column": 19, + "column": 18, "program": "generics_class_recursive_type_1.ets" } } @@ -6976,7 +6976,7 @@ }, "end": { "line": 63, - "column": 19, + "column": 18, "program": "generics_class_recursive_type_1.ets" } } @@ -7003,7 +7003,7 @@ }, "end": { "line": 63, - "column": 20, + "column": 19, "program": "generics_class_recursive_type_1.ets" } } @@ -7016,7 +7016,7 @@ }, "end": { "line": 63, - "column": 20, + "column": 19, "program": "generics_class_recursive_type_1.ets" } } @@ -7031,7 +7031,7 @@ }, "end": { "line": 63, - "column": 20, + "column": 19, "program": "generics_class_recursive_type_1.ets" } } @@ -7143,7 +7143,7 @@ }, "end": { "line": 65, - "column": 20, + "column": 19, "program": "generics_class_recursive_type_1.ets" } } @@ -7156,7 +7156,7 @@ }, "end": { "line": 65, - "column": 20, + "column": 19, "program": "generics_class_recursive_type_1.ets" } } @@ -7190,7 +7190,7 @@ }, "end": { "line": 65, - "column": 23, + "column": 22, "program": "generics_class_recursive_type_1.ets" } } @@ -7203,7 +7203,7 @@ }, "end": { "line": 65, - "column": 23, + "column": 22, "program": "generics_class_recursive_type_1.ets" } } @@ -7230,7 +7230,7 @@ }, "end": { "line": 65, - "column": 24, + "column": 23, "program": "generics_class_recursive_type_1.ets" } } @@ -7243,7 +7243,7 @@ }, "end": { "line": 65, - "column": 24, + "column": 23, "program": "generics_class_recursive_type_1.ets" } } @@ -7257,7 +7257,7 @@ }, "end": { "line": 65, - "column": 24, + "column": 23, "program": "generics_class_recursive_type_1.ets" } } @@ -7270,7 +7270,7 @@ }, "end": { "line": 65, - "column": 24, + "column": 23, "program": "generics_class_recursive_type_1.ets" } } @@ -7333,7 +7333,7 @@ }, "end": { "line": 66, - "column": 20, + "column": 19, "program": "generics_class_recursive_type_1.ets" } } @@ -7346,7 +7346,7 @@ }, "end": { "line": 66, - "column": 20, + "column": 19, "program": "generics_class_recursive_type_1.ets" } } @@ -7380,7 +7380,7 @@ }, "end": { "line": 66, - "column": 23, + "column": 22, "program": "generics_class_recursive_type_1.ets" } } @@ -7393,7 +7393,7 @@ }, "end": { "line": 66, - "column": 23, + "column": 22, "program": "generics_class_recursive_type_1.ets" } } @@ -7419,8 +7419,8 @@ "program": "generics_class_recursive_type_1.ets" }, "end": { - "line": 67, - "column": 10, + "line": 66, + "column": 23, "program": "generics_class_recursive_type_1.ets" } } @@ -7432,8 +7432,8 @@ "program": "generics_class_recursive_type_1.ets" }, "end": { - "line": 67, - "column": 10, + "line": 66, + "column": 23, "program": "generics_class_recursive_type_1.ets" } } @@ -7446,8 +7446,8 @@ "program": "generics_class_recursive_type_1.ets" }, "end": { - "line": 67, - "column": 10, + "line": 66, + "column": 23, "program": "generics_class_recursive_type_1.ets" } } @@ -7459,8 +7459,8 @@ "program": "generics_class_recursive_type_1.ets" }, "end": { - "line": 67, - "column": 10, + "line": 66, + "column": 23, "program": "generics_class_recursive_type_1.ets" } } diff --git a/ets2panda/test/compiler/ets/generics_implicit_lambda1-expected.txt b/ets2panda/test/compiler/ets/generics_implicit_lambda1-expected.txt index ded34117695bcd8e51ff1a5b2110816c6283ad4b..1e486d79efd4eed1b2caa3647672d3de1d686a1d 100644 --- a/ets2panda/test/compiler/ets/generics_implicit_lambda1-expected.txt +++ b/ets2panda/test/compiler/ets/generics_implicit_lambda1-expected.txt @@ -110,7 +110,7 @@ }, "end": { "line": 22, - "column": 34, + "column": 33, "program": "generics_implicit_lambda1.ets" } } @@ -123,7 +123,7 @@ }, "end": { "line": 22, - "column": 34, + "column": 33, "program": "generics_implicit_lambda1.ets" } } @@ -136,7 +136,7 @@ }, "end": { "line": 22, - "column": 34, + "column": 33, "program": "generics_implicit_lambda1.ets" } } @@ -150,7 +150,7 @@ }, "end": { "line": 22, - "column": 34, + "column": 33, "program": "generics_implicit_lambda1.ets" } } @@ -163,7 +163,7 @@ }, "end": { "line": 22, - "column": 34, + "column": 33, "program": "generics_implicit_lambda1.ets" } } @@ -261,7 +261,7 @@ }, "end": { "line": 22, - "column": 59, + "column": 57, "program": "generics_implicit_lambda1.ets" } } @@ -274,7 +274,7 @@ }, "end": { "line": 22, - "column": 59, + "column": 57, "program": "generics_implicit_lambda1.ets" } } @@ -637,7 +637,7 @@ }, "end": { "line": 28, - "column": 39, + "column": 38, "program": "generics_implicit_lambda1.ets" } } @@ -650,7 +650,7 @@ }, "end": { "line": 28, - "column": 39, + "column": 38, "program": "generics_implicit_lambda1.ets" } } @@ -663,7 +663,7 @@ }, "end": { "line": 28, - "column": 39, + "column": 38, "program": "generics_implicit_lambda1.ets" } } @@ -677,7 +677,7 @@ }, "end": { "line": 28, - "column": 39, + "column": 38, "program": "generics_implicit_lambda1.ets" } } @@ -690,7 +690,7 @@ }, "end": { "line": 28, - "column": 39, + "column": 38, "program": "generics_implicit_lambda1.ets" } } @@ -788,7 +788,7 @@ }, "end": { "line": 28, - "column": 64, + "column": 62, "program": "generics_implicit_lambda1.ets" } } @@ -801,7 +801,7 @@ }, "end": { "line": 28, - "column": 64, + "column": 62, "program": "generics_implicit_lambda1.ets" } } @@ -1425,7 +1425,7 @@ }, "end": { "line": 16, - "column": 32, + "column": 31, "program": "generics_implicit_lambda1.ets" } } @@ -1438,7 +1438,7 @@ }, "end": { "line": 16, - "column": 32, + "column": 31, "program": "generics_implicit_lambda1.ets" } } @@ -1451,7 +1451,7 @@ }, "end": { "line": 16, - "column": 32, + "column": 31, "program": "generics_implicit_lambda1.ets" } } @@ -1465,7 +1465,7 @@ }, "end": { "line": 16, - "column": 32, + "column": 31, "program": "generics_implicit_lambda1.ets" } } @@ -1478,7 +1478,7 @@ }, "end": { "line": 16, - "column": 32, + "column": 31, "program": "generics_implicit_lambda1.ets" } } @@ -1513,7 +1513,7 @@ }, "end": { "line": 16, - "column": 37, + "column": 35, "program": "generics_implicit_lambda1.ets" } } @@ -1526,7 +1526,7 @@ }, "end": { "line": 16, - "column": 37, + "column": 35, "program": "generics_implicit_lambda1.ets" } } @@ -1866,7 +1866,7 @@ }, "end": { "line": 36, - "column": 22, + "column": 19, "program": "generics_implicit_lambda1.ets" } } @@ -1879,7 +1879,7 @@ }, "end": { "line": 36, - "column": 22, + "column": 19, "program": "generics_implicit_lambda1.ets" } } @@ -2046,7 +2046,7 @@ }, "end": { "line": 38, - "column": 19, + "column": 16, "program": "generics_implicit_lambda1.ets" } } @@ -2059,7 +2059,7 @@ }, "end": { "line": 38, - "column": 19, + "column": 16, "program": "generics_implicit_lambda1.ets" } } @@ -2100,7 +2100,7 @@ }, "end": { "line": 38, - "column": 37, + "column": 36, "program": "generics_implicit_lambda1.ets" } } @@ -2113,7 +2113,7 @@ }, "end": { "line": 38, - "column": 37, + "column": 36, "program": "generics_implicit_lambda1.ets" } } @@ -2290,7 +2290,7 @@ }, "end": { "line": 41, - "column": 18, + "column": 15, "program": "generics_implicit_lambda1.ets" } } @@ -2303,7 +2303,7 @@ }, "end": { "line": 41, - "column": 18, + "column": 15, "program": "generics_implicit_lambda1.ets" } } diff --git a/ets2panda/test/compiler/ets/generics_instantiation_1-expected.txt b/ets2panda/test/compiler/ets/generics_instantiation_1-expected.txt index 7162f7a4341c48f2a6cee118061837204a1d709f..abdcea54faf396509d6d022a32ea9f8ea218427f 100644 --- a/ets2panda/test/compiler/ets/generics_instantiation_1-expected.txt +++ b/ets2panda/test/compiler/ets/generics_instantiation_1-expected.txt @@ -72,7 +72,7 @@ }, "end": { "line": 16, - "column": 26, + "column": 25, "program": "generics_instantiation_1.ets" } } @@ -85,7 +85,7 @@ }, "end": { "line": 16, - "column": 26, + "column": 25, "program": "generics_instantiation_1.ets" } } @@ -174,7 +174,7 @@ }, "end": { "line": 17, - "column": 19, + "column": 18, "program": "generics_instantiation_1.ets" } } @@ -187,7 +187,7 @@ }, "end": { "line": 17, - "column": 19, + "column": 18, "program": "generics_instantiation_1.ets" } } @@ -202,7 +202,7 @@ }, "end": { "line": 17, - "column": 19, + "column": 18, "program": "generics_instantiation_1.ets" } } @@ -290,7 +290,7 @@ }, "end": { "line": 18, - "column": 23, + "column": 22, "program": "generics_instantiation_1.ets" } } @@ -303,7 +303,7 @@ }, "end": { "line": 18, - "column": 23, + "column": 22, "program": "generics_instantiation_1.ets" } } @@ -317,7 +317,7 @@ }, "end": { "line": 18, - "column": 23, + "column": 22, "program": "generics_instantiation_1.ets" } } @@ -330,7 +330,7 @@ }, "end": { "line": 18, - "column": 23, + "column": 22, "program": "generics_instantiation_1.ets" } } @@ -569,7 +569,7 @@ }, "end": { "line": 21, - "column": 21, + "column": 19, "program": "generics_instantiation_1.ets" } } @@ -582,7 +582,7 @@ }, "end": { "line": 21, - "column": 21, + "column": 19, "program": "generics_instantiation_1.ets" } } @@ -842,7 +842,7 @@ }, "end": { "line": 27, - "column": 30, + "column": 29, "program": "generics_instantiation_1.ets" } } @@ -855,7 +855,7 @@ }, "end": { "line": 27, - "column": 30, + "column": 29, "program": "generics_instantiation_1.ets" } } @@ -869,7 +869,7 @@ }, "end": { "line": 27, - "column": 30, + "column": 29, "program": "generics_instantiation_1.ets" } } @@ -882,7 +882,7 @@ }, "end": { "line": 27, - "column": 30, + "column": 29, "program": "generics_instantiation_1.ets" } } @@ -967,7 +967,7 @@ }, "end": { "line": 28, - "column": 32, + "column": 31, "program": "generics_instantiation_1.ets" } } @@ -980,7 +980,7 @@ }, "end": { "line": 28, - "column": 32, + "column": 31, "program": "generics_instantiation_1.ets" } } @@ -1007,7 +1007,7 @@ }, "end": { "line": 28, - "column": 34, + "column": 32, "program": "generics_instantiation_1.ets" } } @@ -1020,7 +1020,7 @@ }, "end": { "line": 28, - "column": 34, + "column": 32, "program": "generics_instantiation_1.ets" } } @@ -1160,7 +1160,7 @@ }, "end": { "line": 28, - "column": 57, + "column": 56, "program": "generics_instantiation_1.ets" } } @@ -1173,7 +1173,7 @@ }, "end": { "line": 28, - "column": 57, + "column": 56, "program": "generics_instantiation_1.ets" } } @@ -1200,7 +1200,7 @@ }, "end": { "line": 28, - "column": 58, + "column": 57, "program": "generics_instantiation_1.ets" } } @@ -1213,7 +1213,7 @@ }, "end": { "line": 28, - "column": 58, + "column": 57, "program": "generics_instantiation_1.ets" } } @@ -1442,7 +1442,7 @@ }, "end": { "line": 31, - "column": 27, + "column": 26, "program": "generics_instantiation_1.ets" } } @@ -1455,7 +1455,7 @@ }, "end": { "line": 31, - "column": 27, + "column": 26, "program": "generics_instantiation_1.ets" } } @@ -1482,7 +1482,7 @@ }, "end": { "line": 31, - "column": 29, + "column": 27, "program": "generics_instantiation_1.ets" } } @@ -1495,7 +1495,7 @@ }, "end": { "line": 31, - "column": 29, + "column": 27, "program": "generics_instantiation_1.ets" } } @@ -1635,7 +1635,7 @@ }, "end": { "line": 31, - "column": 52, + "column": 51, "program": "generics_instantiation_1.ets" } } @@ -1648,7 +1648,7 @@ }, "end": { "line": 31, - "column": 52, + "column": 51, "program": "generics_instantiation_1.ets" } } @@ -1675,7 +1675,7 @@ }, "end": { "line": 31, - "column": 53, + "column": 52, "program": "generics_instantiation_1.ets" } } @@ -1688,7 +1688,7 @@ }, "end": { "line": 31, - "column": 53, + "column": 52, "program": "generics_instantiation_1.ets" } } @@ -1999,7 +1999,7 @@ }, "end": { "line": 35, - "column": 28, + "column": 26, "program": "generics_instantiation_1.ets" } } @@ -2012,7 +2012,7 @@ }, "end": { "line": 35, - "column": 28, + "column": 26, "program": "generics_instantiation_1.ets" } } @@ -2053,7 +2053,7 @@ }, "end": { "line": 35, - "column": 47, + "column": 46, "program": "generics_instantiation_1.ets" } } @@ -2066,7 +2066,7 @@ }, "end": { "line": 35, - "column": 47, + "column": 46, "program": "generics_instantiation_1.ets" } } diff --git a/ets2panda/test/compiler/ets/generics_instantiation_2-expected.txt b/ets2panda/test/compiler/ets/generics_instantiation_2-expected.txt index 86c5ee5895f6ce41480de51582eedd3a9f181639..d29f7110710a44408589133ff02751ef3d53f2ed 100644 --- a/ets2panda/test/compiler/ets/generics_instantiation_2-expected.txt +++ b/ets2panda/test/compiler/ets/generics_instantiation_2-expected.txt @@ -178,7 +178,7 @@ }, "end": { "line": 17, - "column": 22, + "column": 21, "program": "generics_instantiation_2.ets" } } @@ -191,7 +191,7 @@ }, "end": { "line": 17, - "column": 22, + "column": 21, "program": "generics_instantiation_2.ets" } } @@ -218,7 +218,7 @@ }, "end": { "line": 17, - "column": 24, + "column": 22, "program": "generics_instantiation_2.ets" } } @@ -231,7 +231,7 @@ }, "end": { "line": 17, - "column": 24, + "column": 22, "program": "generics_instantiation_2.ets" } } @@ -457,7 +457,7 @@ }, "end": { "line": 21, - "column": 21, + "column": 20, "program": "generics_instantiation_2.ets" } } @@ -470,7 +470,7 @@ }, "end": { "line": 21, - "column": 21, + "column": 20, "program": "generics_instantiation_2.ets" } } @@ -485,7 +485,7 @@ }, "end": { "line": 21, - "column": 21, + "column": 20, "program": "generics_instantiation_2.ets" } } @@ -799,7 +799,7 @@ }, "end": { "line": 25, - "column": 16, + "column": 15, "program": "generics_instantiation_2.ets" } } @@ -812,7 +812,7 @@ }, "end": { "line": 25, - "column": 16, + "column": 15, "program": "generics_instantiation_2.ets" } } @@ -839,7 +839,7 @@ }, "end": { "line": 25, - "column": 18, + "column": 16, "program": "generics_instantiation_2.ets" } } @@ -852,7 +852,7 @@ }, "end": { "line": 25, - "column": 18, + "column": 16, "program": "generics_instantiation_2.ets" } } @@ -1080,7 +1080,7 @@ }, "end": { "line": 29, - "column": 18, + "column": 17, "program": "generics_instantiation_2.ets" } } @@ -1093,7 +1093,7 @@ }, "end": { "line": 29, - "column": 18, + "column": 17, "program": "generics_instantiation_2.ets" } } @@ -1120,7 +1120,7 @@ }, "end": { "line": 29, - "column": 20, + "column": 18, "program": "generics_instantiation_2.ets" } } @@ -1133,7 +1133,7 @@ }, "end": { "line": 29, - "column": 20, + "column": 18, "program": "generics_instantiation_2.ets" } } @@ -1730,7 +1730,7 @@ }, "end": { "line": 34, - "column": 28, + "column": 27, "program": "generics_instantiation_2.ets" } } @@ -1743,7 +1743,7 @@ }, "end": { "line": 34, - "column": 28, + "column": 27, "program": "generics_instantiation_2.ets" } } @@ -1770,7 +1770,7 @@ }, "end": { "line": 34, - "column": 29, + "column": 28, "program": "generics_instantiation_2.ets" } } @@ -1783,7 +1783,7 @@ }, "end": { "line": 34, - "column": 29, + "column": 28, "program": "generics_instantiation_2.ets" } } @@ -1797,7 +1797,7 @@ }, "end": { "line": 34, - "column": 29, + "column": 28, "program": "generics_instantiation_2.ets" } } @@ -1810,7 +1810,7 @@ }, "end": { "line": 34, - "column": 29, + "column": 28, "program": "generics_instantiation_2.ets" } } @@ -1898,7 +1898,7 @@ }, "end": { "line": 35, - "column": 24, + "column": 23, "program": "generics_instantiation_2.ets" } } @@ -1911,7 +1911,7 @@ }, "end": { "line": 35, - "column": 24, + "column": 23, "program": "generics_instantiation_2.ets" } } @@ -1938,7 +1938,7 @@ }, "end": { "line": 35, - "column": 26, + "column": 24, "program": "generics_instantiation_2.ets" } } @@ -1951,7 +1951,7 @@ }, "end": { "line": 35, - "column": 26, + "column": 24, "program": "generics_instantiation_2.ets" } } @@ -2086,7 +2086,7 @@ }, "end": { "line": 35, - "column": 48, + "column": 47, "program": "generics_instantiation_2.ets" } } @@ -2099,7 +2099,7 @@ }, "end": { "line": 35, - "column": 48, + "column": 47, "program": "generics_instantiation_2.ets" } } @@ -2268,7 +2268,7 @@ }, "end": { "line": 36, - "column": 30, + "column": 27, "program": "generics_instantiation_2.ets" } } @@ -2281,7 +2281,7 @@ }, "end": { "line": 36, - "column": 30, + "column": 27, "program": "generics_instantiation_2.ets" } } @@ -2388,7 +2388,7 @@ }, "end": { "line": 36, - "column": 32, + "column": 30, "program": "generics_instantiation_2.ets" } } @@ -2401,7 +2401,7 @@ }, "end": { "line": 36, - "column": 32, + "column": 30, "program": "generics_instantiation_2.ets" } } @@ -2523,7 +2523,7 @@ }, "end": { "line": 36, - "column": 54, + "column": 51, "program": "generics_instantiation_2.ets" } } @@ -2536,7 +2536,7 @@ }, "end": { "line": 36, - "column": 54, + "column": 51, "program": "generics_instantiation_2.ets" } } @@ -2643,7 +2643,7 @@ }, "end": { "line": 36, - "column": 55, + "column": 54, "program": "generics_instantiation_2.ets" } } @@ -2656,7 +2656,7 @@ }, "end": { "line": 36, - "column": 55, + "column": 54, "program": "generics_instantiation_2.ets" } } @@ -2978,7 +2978,7 @@ }, "end": { "line": 37, - "column": 45, + "column": 44, "program": "generics_instantiation_2.ets" } } @@ -2991,7 +2991,7 @@ }, "end": { "line": 37, - "column": 45, + "column": 44, "program": "generics_instantiation_2.ets" } } diff --git a/ets2panda/test/compiler/ets/generics_instantiation_3-expected.txt b/ets2panda/test/compiler/ets/generics_instantiation_3-expected.txt index 7429ca1722ef70c3622fe7d62d2b90a4f2c19a73..aceea53fa2a4f47e388d379cb347a9a1a6afa07b 100644 --- a/ets2panda/test/compiler/ets/generics_instantiation_3-expected.txt +++ b/ets2panda/test/compiler/ets/generics_instantiation_3-expected.txt @@ -72,7 +72,7 @@ }, "end": { "line": 16, - "column": 26, + "column": 25, "program": "generics_instantiation_3.ets" } } @@ -85,7 +85,7 @@ }, "end": { "line": 16, - "column": 26, + "column": 25, "program": "generics_instantiation_3.ets" } } @@ -203,7 +203,7 @@ }, "end": { "line": 17, - "column": 21, + "column": 20, "program": "generics_instantiation_3.ets" } } @@ -216,7 +216,7 @@ }, "end": { "line": 17, - "column": 21, + "column": 20, "program": "generics_instantiation_3.ets" } } @@ -230,7 +230,7 @@ }, "end": { "line": 17, - "column": 21, + "column": 20, "program": "generics_instantiation_3.ets" } } @@ -243,7 +243,7 @@ }, "end": { "line": 17, - "column": 21, + "column": 20, "program": "generics_instantiation_3.ets" } } diff --git a/ets2panda/test/compiler/ets/generics_instantiation_4-expected.txt b/ets2panda/test/compiler/ets/generics_instantiation_4-expected.txt index 11f31c14a432c453cd0352ac4a8fc10d4cccce76..f2a521486439ce5065f9c89ecf84f68c78a0d873 100644 --- a/ets2panda/test/compiler/ets/generics_instantiation_4-expected.txt +++ b/ets2panda/test/compiler/ets/generics_instantiation_4-expected.txt @@ -180,7 +180,7 @@ }, "end": { "line": 17, - "column": 17, + "column": 16, "program": "generics_instantiation_4.ets" } } @@ -193,7 +193,7 @@ }, "end": { "line": 17, - "column": 17, + "column": 16, "program": "generics_instantiation_4.ets" } } @@ -220,7 +220,7 @@ }, "end": { "line": 17, - "column": 18, + "column": 17, "program": "generics_instantiation_4.ets" } } @@ -233,7 +233,7 @@ }, "end": { "line": 17, - "column": 18, + "column": 17, "program": "generics_instantiation_4.ets" } } @@ -247,7 +247,7 @@ }, "end": { "line": 17, - "column": 18, + "column": 17, "program": "generics_instantiation_4.ets" } } @@ -260,7 +260,7 @@ }, "end": { "line": 17, - "column": 18, + "column": 17, "program": "generics_instantiation_4.ets" } } @@ -319,7 +319,7 @@ }, "end": { "line": 17, - "column": 24, + "column": 23, "program": "generics_instantiation_4.ets" } } @@ -332,7 +332,7 @@ }, "end": { "line": 17, - "column": 24, + "column": 23, "program": "generics_instantiation_4.ets" } } @@ -359,7 +359,7 @@ }, "end": { "line": 17, - "column": 26, + "column": 24, "program": "generics_instantiation_4.ets" } } @@ -372,7 +372,7 @@ }, "end": { "line": 17, - "column": 26, + "column": 24, "program": "generics_instantiation_4.ets" } } @@ -574,7 +574,7 @@ }, "end": { "line": 21, - "column": 18, + "column": 17, "program": "generics_instantiation_4.ets" } } @@ -587,7 +587,7 @@ }, "end": { "line": 21, - "column": 18, + "column": 17, "program": "generics_instantiation_4.ets" } } @@ -614,7 +614,7 @@ }, "end": { "line": 21, - "column": 19, + "column": 18, "program": "generics_instantiation_4.ets" } } @@ -627,7 +627,7 @@ }, "end": { "line": 21, - "column": 19, + "column": 18, "program": "generics_instantiation_4.ets" } } @@ -641,7 +641,7 @@ }, "end": { "line": 21, - "column": 19, + "column": 18, "program": "generics_instantiation_4.ets" } } @@ -654,7 +654,7 @@ }, "end": { "line": 21, - "column": 19, + "column": 18, "program": "generics_instantiation_4.ets" } } @@ -713,7 +713,7 @@ }, "end": { "line": 21, - "column": 25, + "column": 24, "program": "generics_instantiation_4.ets" } } @@ -726,7 +726,7 @@ }, "end": { "line": 21, - "column": 25, + "column": 24, "program": "generics_instantiation_4.ets" } } @@ -753,7 +753,7 @@ }, "end": { "line": 21, - "column": 27, + "column": 25, "program": "generics_instantiation_4.ets" } } @@ -766,7 +766,7 @@ }, "end": { "line": 21, - "column": 27, + "column": 25, "program": "generics_instantiation_4.ets" } } @@ -1165,7 +1165,7 @@ }, "end": { "line": 27, - "column": 16, + "column": 15, "program": "generics_instantiation_4.ets" } } @@ -1178,7 +1178,7 @@ }, "end": { "line": 27, - "column": 16, + "column": 15, "program": "generics_instantiation_4.ets" } } @@ -1205,7 +1205,7 @@ }, "end": { "line": 27, - "column": 18, + "column": 16, "program": "generics_instantiation_4.ets" } } @@ -1218,7 +1218,7 @@ }, "end": { "line": 27, - "column": 18, + "column": 16, "program": "generics_instantiation_4.ets" } } @@ -1416,7 +1416,7 @@ }, "end": { "line": 31, - "column": 16, + "column": 15, "program": "generics_instantiation_4.ets" } } @@ -1429,7 +1429,7 @@ }, "end": { "line": 31, - "column": 16, + "column": 15, "program": "generics_instantiation_4.ets" } } @@ -1456,7 +1456,7 @@ }, "end": { "line": 31, - "column": 18, + "column": 16, "program": "generics_instantiation_4.ets" } } @@ -1469,7 +1469,7 @@ }, "end": { "line": 31, - "column": 18, + "column": 16, "program": "generics_instantiation_4.ets" } } @@ -1879,7 +1879,7 @@ }, "end": { "line": 37, - "column": 19, + "column": 18, "program": "generics_instantiation_4.ets" } } @@ -1892,7 +1892,7 @@ }, "end": { "line": 37, - "column": 19, + "column": 18, "program": "generics_instantiation_4.ets" } } @@ -1906,7 +1906,7 @@ }, "end": { "line": 37, - "column": 19, + "column": 18, "program": "generics_instantiation_4.ets" } } @@ -1919,7 +1919,7 @@ }, "end": { "line": 37, - "column": 19, + "column": 18, "program": "generics_instantiation_4.ets" } } @@ -1981,7 +1981,7 @@ }, "end": { "line": 37, - "column": 25, + "column": 24, "program": "generics_instantiation_4.ets" } } @@ -1994,7 +1994,7 @@ }, "end": { "line": 37, - "column": 25, + "column": 24, "program": "generics_instantiation_4.ets" } } @@ -2021,7 +2021,7 @@ }, "end": { "line": 37, - "column": 27, + "column": 25, "program": "generics_instantiation_4.ets" } } @@ -2034,7 +2034,7 @@ }, "end": { "line": 37, - "column": 27, + "column": 25, "program": "generics_instantiation_4.ets" } } @@ -2260,7 +2260,7 @@ }, "end": { "line": 41, - "column": 21, + "column": 20, "program": "generics_instantiation_4.ets" } } @@ -2273,7 +2273,7 @@ }, "end": { "line": 41, - "column": 21, + "column": 20, "program": "generics_instantiation_4.ets" } } @@ -2288,7 +2288,7 @@ }, "end": { "line": 41, - "column": 21, + "column": 20, "program": "generics_instantiation_4.ets" } } @@ -2767,7 +2767,7 @@ }, "end": { "line": 44, - "column": 26, + "column": 25, "program": "generics_instantiation_4.ets" } } @@ -2780,7 +2780,7 @@ }, "end": { "line": 44, - "column": 26, + "column": 25, "program": "generics_instantiation_4.ets" } } @@ -2807,7 +2807,7 @@ }, "end": { "line": 44, - "column": 27, + "column": 26, "program": "generics_instantiation_4.ets" } } @@ -2820,7 +2820,7 @@ }, "end": { "line": 44, - "column": 27, + "column": 26, "program": "generics_instantiation_4.ets" } } @@ -2834,7 +2834,7 @@ }, "end": { "line": 44, - "column": 27, + "column": 26, "program": "generics_instantiation_4.ets" } } @@ -2847,7 +2847,7 @@ }, "end": { "line": 44, - "column": 27, + "column": 26, "program": "generics_instantiation_4.ets" } } @@ -2932,7 +2932,7 @@ }, "end": { "line": 45, - "column": 22, + "column": 21, "program": "generics_instantiation_4.ets" } } @@ -2945,7 +2945,7 @@ }, "end": { "line": 45, - "column": 22, + "column": 21, "program": "generics_instantiation_4.ets" } } @@ -2972,7 +2972,7 @@ }, "end": { "line": 45, - "column": 24, + "column": 22, "program": "generics_instantiation_4.ets" } } @@ -2985,7 +2985,7 @@ }, "end": { "line": 45, - "column": 24, + "column": 22, "program": "generics_instantiation_4.ets" } } @@ -3059,7 +3059,7 @@ }, "end": { "line": 45, - "column": 35, + "column": 34, "program": "generics_instantiation_4.ets" } } @@ -3072,7 +3072,7 @@ }, "end": { "line": 45, - "column": 35, + "column": 34, "program": "generics_instantiation_4.ets" } } @@ -3099,7 +3099,7 @@ }, "end": { "line": 45, - "column": 36, + "column": 35, "program": "generics_instantiation_4.ets" } } @@ -3112,7 +3112,7 @@ }, "end": { "line": 45, - "column": 36, + "column": 35, "program": "generics_instantiation_4.ets" } } @@ -3324,7 +3324,7 @@ }, "end": { "line": 48, - "column": 22, + "column": 21, "program": "generics_instantiation_4.ets" } } @@ -3337,7 +3337,7 @@ }, "end": { "line": 48, - "column": 22, + "column": 21, "program": "generics_instantiation_4.ets" } } @@ -3364,7 +3364,7 @@ }, "end": { "line": 48, - "column": 24, + "column": 22, "program": "generics_instantiation_4.ets" } } @@ -3377,7 +3377,7 @@ }, "end": { "line": 48, - "column": 24, + "column": 22, "program": "generics_instantiation_4.ets" } } @@ -3510,7 +3510,7 @@ }, "end": { "line": 48, - "column": 58, + "column": 57, "program": "generics_instantiation_4.ets" } } @@ -3523,7 +3523,7 @@ }, "end": { "line": 48, - "column": 58, + "column": 57, "program": "generics_instantiation_4.ets" } } @@ -3576,7 +3576,7 @@ }, "end": { "line": 48, - "column": 46, + "column": 45, "program": "generics_instantiation_4.ets" } } @@ -3589,7 +3589,7 @@ }, "end": { "line": 48, - "column": 46, + "column": 45, "program": "generics_instantiation_4.ets" } } @@ -3758,7 +3758,7 @@ }, "end": { "line": 49, - "column": 28, + "column": 25, "program": "generics_instantiation_4.ets" } } @@ -3771,7 +3771,7 @@ }, "end": { "line": 49, - "column": 28, + "column": 25, "program": "generics_instantiation_4.ets" } } @@ -3878,7 +3878,7 @@ }, "end": { "line": 49, - "column": 30, + "column": 28, "program": "generics_instantiation_4.ets" } } @@ -3891,7 +3891,7 @@ }, "end": { "line": 49, - "column": 30, + "column": 28, "program": "generics_instantiation_4.ets" } } @@ -4013,7 +4013,7 @@ }, "end": { "line": 49, - "column": 50, + "column": 47, "program": "generics_instantiation_4.ets" } } @@ -4026,7 +4026,7 @@ }, "end": { "line": 49, - "column": 50, + "column": 47, "program": "generics_instantiation_4.ets" } } @@ -4133,7 +4133,7 @@ }, "end": { "line": 49, - "column": 51, + "column": 50, "program": "generics_instantiation_4.ets" } } @@ -4146,7 +4146,7 @@ }, "end": { "line": 49, - "column": 51, + "column": 50, "program": "generics_instantiation_4.ets" } } @@ -4300,7 +4300,7 @@ }, "end": { "line": 50, - "column": 37, + "column": 36, "program": "generics_instantiation_4.ets" } } @@ -4313,7 +4313,7 @@ }, "end": { "line": 50, - "column": 37, + "column": 36, "program": "generics_instantiation_4.ets" } } @@ -4366,7 +4366,7 @@ }, "end": { "line": 50, - "column": 25, + "column": 24, "program": "generics_instantiation_4.ets" } } @@ -4379,7 +4379,7 @@ }, "end": { "line": 50, - "column": 25, + "column": 24, "program": "generics_instantiation_4.ets" } } @@ -4695,7 +4695,7 @@ }, "end": { "line": 51, - "column": 56, + "column": 55, "program": "generics_instantiation_4.ets" } } @@ -4708,7 +4708,7 @@ }, "end": { "line": 51, - "column": 56, + "column": 55, "program": "generics_instantiation_4.ets" } } @@ -4761,7 +4761,7 @@ }, "end": { "line": 51, - "column": 44, + "column": 43, "program": "generics_instantiation_4.ets" } } @@ -4774,7 +4774,7 @@ }, "end": { "line": 51, - "column": 44, + "column": 43, "program": "generics_instantiation_4.ets" } } @@ -5090,7 +5090,7 @@ }, "end": { "line": 52, - "column": 56, + "column": 55, "program": "generics_instantiation_4.ets" } } @@ -5103,7 +5103,7 @@ }, "end": { "line": 52, - "column": 56, + "column": 55, "program": "generics_instantiation_4.ets" } } @@ -5156,7 +5156,7 @@ }, "end": { "line": 52, - "column": 44, + "column": 43, "program": "generics_instantiation_4.ets" } } @@ -5169,7 +5169,7 @@ }, "end": { "line": 52, - "column": 44, + "column": 43, "program": "generics_instantiation_4.ets" } } @@ -5291,7 +5291,7 @@ }, "end": { "line": 54, - "column": 22, + "column": 21, "program": "generics_instantiation_4.ets" } } @@ -5304,7 +5304,7 @@ }, "end": { "line": 54, - "column": 22, + "column": 21, "program": "generics_instantiation_4.ets" } } @@ -5331,7 +5331,7 @@ }, "end": { "line": 54, - "column": 24, + "column": 22, "program": "generics_instantiation_4.ets" } } @@ -5344,7 +5344,7 @@ }, "end": { "line": 54, - "column": 24, + "column": 22, "program": "generics_instantiation_4.ets" } } @@ -5477,7 +5477,7 @@ }, "end": { "line": 54, - "column": 58, + "column": 57, "program": "generics_instantiation_4.ets" } } @@ -5490,7 +5490,7 @@ }, "end": { "line": 54, - "column": 58, + "column": 57, "program": "generics_instantiation_4.ets" } } @@ -5543,7 +5543,7 @@ }, "end": { "line": 54, - "column": 46, + "column": 45, "program": "generics_instantiation_4.ets" } } @@ -5556,7 +5556,7 @@ }, "end": { "line": 54, - "column": 46, + "column": 45, "program": "generics_instantiation_4.ets" } } @@ -5725,7 +5725,7 @@ }, "end": { "line": 55, - "column": 28, + "column": 25, "program": "generics_instantiation_4.ets" } } @@ -5738,7 +5738,7 @@ }, "end": { "line": 55, - "column": 28, + "column": 25, "program": "generics_instantiation_4.ets" } } @@ -5845,7 +5845,7 @@ }, "end": { "line": 55, - "column": 30, + "column": 28, "program": "generics_instantiation_4.ets" } } @@ -5858,7 +5858,7 @@ }, "end": { "line": 55, - "column": 30, + "column": 28, "program": "generics_instantiation_4.ets" } } @@ -5980,7 +5980,7 @@ }, "end": { "line": 55, - "column": 50, + "column": 47, "program": "generics_instantiation_4.ets" } } @@ -5993,7 +5993,7 @@ }, "end": { "line": 55, - "column": 50, + "column": 47, "program": "generics_instantiation_4.ets" } } @@ -6100,7 +6100,7 @@ }, "end": { "line": 55, - "column": 51, + "column": 50, "program": "generics_instantiation_4.ets" } } @@ -6113,7 +6113,7 @@ }, "end": { "line": 55, - "column": 51, + "column": 50, "program": "generics_instantiation_4.ets" } } diff --git a/ets2panda/test/compiler/ets/generics_interface_bounds_1-expected.txt b/ets2panda/test/compiler/ets/generics_interface_bounds_1-expected.txt index 8826b894a9fdd6518f0d8512089b7945b4c4d031..2043e2eefff15b1508e4d336b1b9f9334f8915a8 100644 --- a/ets2panda/test/compiler/ets/generics_interface_bounds_1-expected.txt +++ b/ets2panda/test/compiler/ets/generics_interface_bounds_1-expected.txt @@ -89,7 +89,7 @@ }, "end": { "line": 17, - "column": 15, + "column": 14, "program": "generics_interface_bounds_1.ets" } } @@ -102,7 +102,7 @@ }, "end": { "line": 17, - "column": 15, + "column": 14, "program": "generics_interface_bounds_1.ets" } } @@ -116,7 +116,7 @@ }, "end": { "line": 17, - "column": 15, + "column": 14, "program": "generics_interface_bounds_1.ets" } } @@ -129,7 +129,7 @@ }, "end": { "line": 17, - "column": 15, + "column": 14, "program": "generics_interface_bounds_1.ets" } } @@ -279,8 +279,8 @@ "program": "generics_interface_bounds_1.ets" }, "end": { - "line": 20, - "column": 6, + "line": 18, + "column": 2, "program": "generics_interface_bounds_1.ets" } } @@ -380,7 +380,7 @@ }, "end": { "line": 20, - "column": 29, + "column": 27, "program": "generics_interface_bounds_1.ets" } } @@ -393,7 +393,7 @@ }, "end": { "line": 20, - "column": 29, + "column": 27, "program": "generics_interface_bounds_1.ets" } } @@ -522,7 +522,7 @@ }, "end": { "line": 21, - "column": 23, + "column": 22, "program": "generics_interface_bounds_1.ets" } } @@ -535,7 +535,7 @@ }, "end": { "line": 21, - "column": 23, + "column": 22, "program": "generics_interface_bounds_1.ets" } } @@ -550,7 +550,7 @@ }, "end": { "line": 21, - "column": 23, + "column": 22, "program": "generics_interface_bounds_1.ets" } } @@ -638,7 +638,7 @@ }, "end": { "line": 23, - "column": 27, + "column": 26, "program": "generics_interface_bounds_1.ets" } } @@ -651,7 +651,7 @@ }, "end": { "line": 23, - "column": 27, + "column": 26, "program": "generics_interface_bounds_1.ets" } } @@ -665,7 +665,7 @@ }, "end": { "line": 23, - "column": 27, + "column": 26, "program": "generics_interface_bounds_1.ets" } } @@ -678,7 +678,7 @@ }, "end": { "line": 23, - "column": 27, + "column": 26, "program": "generics_interface_bounds_1.ets" } } @@ -943,7 +943,7 @@ }, "end": { "line": 28, - "column": 24, + "column": 22, "program": "generics_interface_bounds_1.ets" } } @@ -956,7 +956,7 @@ }, "end": { "line": 28, - "column": 24, + "column": 22, "program": "generics_interface_bounds_1.ets" } } diff --git a/ets2panda/test/compiler/ets/generics_interface_bounds_2-expected.txt b/ets2panda/test/compiler/ets/generics_interface_bounds_2-expected.txt index 59a5dffb4e5ab0e4b9c8917e78b494147a3fa538..6901d8c7563fceaa1fbdbfb9ad336ca2ea9ef328 100644 --- a/ets2panda/test/compiler/ets/generics_interface_bounds_2-expected.txt +++ b/ets2panda/test/compiler/ets/generics_interface_bounds_2-expected.txt @@ -44,8 +44,8 @@ "program": "generics_interface_bounds_2.ets" }, "end": { - "line": 17, - "column": 10, + "line": 16, + "column": 18, "program": "generics_interface_bounds_2.ets" } } @@ -169,7 +169,7 @@ }, "end": { "line": 17, - "column": 28, + "column": 27, "program": "generics_interface_bounds_2.ets" } } @@ -182,7 +182,7 @@ }, "end": { "line": 17, - "column": 28, + "column": 27, "program": "generics_interface_bounds_2.ets" } } @@ -248,7 +248,7 @@ }, "end": { "line": 17, - "column": 44, + "column": 43, "program": "generics_interface_bounds_2.ets" } } @@ -261,7 +261,7 @@ }, "end": { "line": 17, - "column": 44, + "column": 43, "program": "generics_interface_bounds_2.ets" } } @@ -300,8 +300,8 @@ "program": "generics_interface_bounds_2.ets" }, "end": { - "line": 18, - "column": 1, + "line": 17, + "column": 47, "program": "generics_interface_bounds_2.ets" } } diff --git a/ets2panda/test/compiler/ets/generics_primitive_type_param_1-expected.txt b/ets2panda/test/compiler/ets/generics_primitive_type_param_1-expected.txt index ffa5c1097054a5ea00150ab0c2c14934d5813a9b..1f91de0de8188bd3d99b3ec5418e91b9b6c9e5cf 100644 --- a/ets2panda/test/compiler/ets/generics_primitive_type_param_1-expected.txt +++ b/ets2panda/test/compiler/ets/generics_primitive_type_param_1-expected.txt @@ -127,7 +127,7 @@ }, "end": { "line": 17, - "column": 21, + "column": 20, "program": "generics_primitive_type_param_1.ets" } } @@ -140,7 +140,7 @@ }, "end": { "line": 17, - "column": 21, + "column": 20, "program": "generics_primitive_type_param_1.ets" } } @@ -155,7 +155,7 @@ }, "end": { "line": 17, - "column": 21, + "column": 20, "program": "generics_primitive_type_param_1.ets" } } @@ -903,7 +903,7 @@ }, "end": { "line": 24, - "column": 24, + "column": 22, "program": "generics_primitive_type_param_1.ets" } } @@ -916,7 +916,7 @@ }, "end": { "line": 24, - "column": 24, + "column": 22, "program": "generics_primitive_type_param_1.ets" } } @@ -998,7 +998,7 @@ }, "end": { "line": 24, - "column": 36, + "column": 35, "program": "generics_primitive_type_param_1.ets" } } @@ -1011,7 +1011,7 @@ }, "end": { "line": 24, - "column": 36, + "column": 35, "program": "generics_primitive_type_param_1.ets" } } @@ -1790,7 +1790,7 @@ }, "end": { "line": 32, - "column": 30, + "column": 28, "program": "generics_primitive_type_param_1.ets" } } @@ -1803,7 +1803,7 @@ }, "end": { "line": 32, - "column": 30, + "column": 28, "program": "generics_primitive_type_param_1.ets" } } @@ -1885,7 +1885,7 @@ }, "end": { "line": 32, - "column": 45, + "column": 44, "program": "generics_primitive_type_param_1.ets" } } @@ -1898,7 +1898,7 @@ }, "end": { "line": 32, - "column": 45, + "column": 44, "program": "generics_primitive_type_param_1.ets" } } @@ -2245,7 +2245,7 @@ }, "end": { "line": 36, - "column": 32, + "column": 30, "program": "generics_primitive_type_param_1.ets" } } @@ -2258,7 +2258,7 @@ }, "end": { "line": 36, - "column": 32, + "column": 30, "program": "generics_primitive_type_param_1.ets" } } @@ -2340,7 +2340,7 @@ }, "end": { "line": 36, - "column": 48, + "column": 47, "program": "generics_primitive_type_param_1.ets" } } @@ -2353,7 +2353,7 @@ }, "end": { "line": 36, - "column": 48, + "column": 47, "program": "generics_primitive_type_param_1.ets" } } diff --git a/ets2panda/test/compiler/ets/identifierReference14-expected.txt b/ets2panda/test/compiler/ets/identifierReference14-expected.txt index e0f435c79bc6ca9988ee5cd9eed8f7a60d6717fd..754ec9e3c423892fad412fdfd08962f56e35f991 100644 --- a/ets2panda/test/compiler/ets/identifierReference14-expected.txt +++ b/ets2panda/test/compiler/ets/identifierReference14-expected.txt @@ -326,7 +326,7 @@ }, "end": { "line": 27, - "column": 20, + "column": 18, "program": "identifierReference14.ets" } } @@ -339,7 +339,7 @@ }, "end": { "line": 27, - "column": 20, + "column": 18, "program": "identifierReference14.ets" } } diff --git a/ets2panda/test/compiler/ets/identifierReference4-expected.txt b/ets2panda/test/compiler/ets/identifierReference4-expected.txt index 4b321f925a4192275a4616e481651836bd81653e..f51171adb7303678382d024c1149a53dfb4ae3e7 100644 --- a/ets2panda/test/compiler/ets/identifierReference4-expected.txt +++ b/ets2panda/test/compiler/ets/identifierReference4-expected.txt @@ -94,7 +94,7 @@ }, "end": { "line": 19, - "column": 14, + "column": 12, "program": "identifierReference4.ets" } } @@ -107,7 +107,7 @@ }, "end": { "line": 19, - "column": 14, + "column": 12, "program": "identifierReference4.ets" } } @@ -308,7 +308,7 @@ }, "end": { "line": 22, - "column": 20, + "column": 18, "program": "identifierReference4.ets" } } @@ -321,7 +321,7 @@ }, "end": { "line": 22, - "column": 20, + "column": 18, "program": "identifierReference4.ets" } } diff --git a/ets2panda/test/compiler/ets/implicit-conversion-expected.txt b/ets2panda/test/compiler/ets/implicit-conversion-expected.txt index 65183ede7ddd18a2f12bcf40a9b70c7d92132c2f..05b5c865db8791487bad59440eeaa79fb4dc91f1 100644 --- a/ets2panda/test/compiler/ets/implicit-conversion-expected.txt +++ b/ets2panda/test/compiler/ets/implicit-conversion-expected.txt @@ -234,7 +234,7 @@ }, "end": { "line": 17, - "column": 23, + "column": 21, "program": "implicit-conversion.ets" } } @@ -247,7 +247,7 @@ }, "end": { "line": 17, - "column": 23, + "column": 21, "program": "implicit-conversion.ets" } } @@ -347,7 +347,7 @@ }, "end": { "line": 18, - "column": 25, + "column": 23, "program": "implicit-conversion.ets" } } @@ -360,7 +360,7 @@ }, "end": { "line": 18, - "column": 25, + "column": 23, "program": "implicit-conversion.ets" } } @@ -460,7 +460,7 @@ }, "end": { "line": 19, - "column": 23, + "column": 21, "program": "implicit-conversion.ets" } } @@ -473,7 +473,7 @@ }, "end": { "line": 19, - "column": 23, + "column": 21, "program": "implicit-conversion.ets" } } @@ -573,7 +573,7 @@ }, "end": { "line": 20, - "column": 22, + "column": 20, "program": "implicit-conversion.ets" } } @@ -586,7 +586,7 @@ }, "end": { "line": 20, - "column": 22, + "column": 20, "program": "implicit-conversion.ets" } } @@ -755,7 +755,7 @@ }, "end": { "line": 21, - "column": 29, + "column": 27, "program": "implicit-conversion.ets" } } @@ -768,7 +768,7 @@ }, "end": { "line": 21, - "column": 29, + "column": 27, "program": "implicit-conversion.ets" } } @@ -937,7 +937,7 @@ }, "end": { "line": 22, - "column": 22, + "column": 20, "program": "implicit-conversion.ets" } } @@ -950,7 +950,7 @@ }, "end": { "line": 22, - "column": 22, + "column": 20, "program": "implicit-conversion.ets" } } @@ -1119,7 +1119,7 @@ }, "end": { "line": 23, - "column": 25, + "column": 23, "program": "implicit-conversion.ets" } } @@ -1132,7 +1132,7 @@ }, "end": { "line": 23, - "column": 25, + "column": 23, "program": "implicit-conversion.ets" } } @@ -1232,7 +1232,7 @@ }, "end": { "line": 24, - "column": 33, + "column": 31, "program": "implicit-conversion.ets" } } @@ -1245,7 +1245,7 @@ }, "end": { "line": 24, - "column": 33, + "column": 31, "program": "implicit-conversion.ets" } } @@ -1345,7 +1345,7 @@ }, "end": { "line": 25, - "column": 28, + "column": 26, "program": "implicit-conversion.ets" } } @@ -1358,7 +1358,7 @@ }, "end": { "line": 25, - "column": 28, + "column": 26, "program": "implicit-conversion.ets" } } @@ -1458,7 +1458,7 @@ }, "end": { "line": 28, - "column": 28, + "column": 26, "program": "implicit-conversion.ets" } } @@ -1471,7 +1471,7 @@ }, "end": { "line": 28, - "column": 28, + "column": 26, "program": "implicit-conversion.ets" } } @@ -1640,7 +1640,7 @@ }, "end": { "line": 29, - "column": 27, + "column": 25, "program": "implicit-conversion.ets" } } @@ -1653,7 +1653,7 @@ }, "end": { "line": 29, - "column": 27, + "column": 25, "program": "implicit-conversion.ets" } } @@ -1822,7 +1822,7 @@ }, "end": { "line": 30, - "column": 24, + "column": 22, "program": "implicit-conversion.ets" } } @@ -1835,7 +1835,7 @@ }, "end": { "line": 30, - "column": 24, + "column": 22, "program": "implicit-conversion.ets" } } diff --git a/ets2panda/test/compiler/ets/implicit_package_import/package_test_1/package_module_1-expected.txt b/ets2panda/test/compiler/ets/implicit_package_import/package_test_1/package_module_1-expected.txt index 9088eefd25cec349a632a39b86615b34018328da..fe9fcbe7649c15d678e598e42bea303e5ca74d3d 100644 --- a/ets2panda/test/compiler/ets/implicit_package_import/package_test_1/package_module_1-expected.txt +++ b/ets2panda/test/compiler/ets/implicit_package_import/package_test_1/package_module_1-expected.txt @@ -751,7 +751,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "package_module_1.ets" } } @@ -764,7 +764,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "package_module_1.ets" } } @@ -838,7 +838,7 @@ }, "end": { "line": 20, - "column": 21, + "column": 19, "program": "package_module_1.ets" } } @@ -851,7 +851,7 @@ }, "end": { "line": 20, - "column": 21, + "column": 19, "program": "package_module_1.ets" } } @@ -960,7 +960,7 @@ }, "end": { "line": 23, - "column": 23, + "column": 21, "program": "package_module_1.ets" } } @@ -973,7 +973,7 @@ }, "end": { "line": 23, - "column": 23, + "column": 21, "program": "package_module_1.ets" } } @@ -1023,7 +1023,7 @@ }, "end": { "line": 23, - "column": 38, + "column": 37, "program": "package_module_1.ets" } } @@ -1036,7 +1036,7 @@ }, "end": { "line": 23, - "column": 38, + "column": 37, "program": "package_module_1.ets" } } @@ -1120,7 +1120,7 @@ }, "end": { "line": 24, - "column": 20, + "column": 18, "program": "package_module_1.ets" } } @@ -1133,7 +1133,7 @@ }, "end": { "line": 24, - "column": 20, + "column": 18, "program": "package_module_1.ets" } } @@ -1234,7 +1234,7 @@ }, "end": { "line": 25, - "column": 20, + "column": 18, "program": "package_module_1.ets" } } @@ -1247,7 +1247,7 @@ }, "end": { "line": 25, - "column": 20, + "column": 18, "program": "package_module_1.ets" } } @@ -1348,7 +1348,7 @@ }, "end": { "line": 26, - "column": 20, + "column": 18, "program": "package_module_1.ets" } } @@ -1361,7 +1361,7 @@ }, "end": { "line": 26, - "column": 20, + "column": 18, "program": "package_module_1.ets" } } @@ -1462,7 +1462,7 @@ }, "end": { "line": 27, - "column": 20, + "column": 18, "program": "package_module_1.ets" } } @@ -1475,7 +1475,7 @@ }, "end": { "line": 27, - "column": 20, + "column": 18, "program": "package_module_1.ets" } } @@ -1576,7 +1576,7 @@ }, "end": { "line": 28, - "column": 20, + "column": 18, "program": "package_module_1.ets" } } @@ -1589,7 +1589,7 @@ }, "end": { "line": 28, - "column": 20, + "column": 18, "program": "package_module_1.ets" } } @@ -1707,7 +1707,7 @@ }, "end": { "line": 29, - "column": 20, + "column": 18, "program": "package_module_1.ets" } } @@ -1720,7 +1720,7 @@ }, "end": { "line": 29, - "column": 20, + "column": 18, "program": "package_module_1.ets" } } diff --git a/ets2panda/test/compiler/ets/implicit_package_import/package_test_1/package_module_2-expected.txt b/ets2panda/test/compiler/ets/implicit_package_import/package_test_1/package_module_2-expected.txt index 4a7b7b6d6fb680381ad068f48ad10b0fcaf4ef4f..d15a9fd865c3a8a8b2906c8415d5576c258f5514 100644 --- a/ets2panda/test/compiler/ets/implicit_package_import/package_test_1/package_module_2-expected.txt +++ b/ets2panda/test/compiler/ets/implicit_package_import/package_test_1/package_module_2-expected.txt @@ -208,7 +208,7 @@ }, "end": { "line": 28, - "column": 19, + "column": 17, "program": "package_module_2.ets" } } @@ -221,7 +221,7 @@ }, "end": { "line": 28, - "column": 19, + "column": 17, "program": "package_module_2.ets" } } @@ -751,7 +751,7 @@ }, "end": { "line": 19, - "column": 20, + "column": 19, "program": "package_module_2.ets" } } @@ -764,7 +764,7 @@ }, "end": { "line": 19, - "column": 20, + "column": 19, "program": "package_module_2.ets" } } @@ -862,7 +862,7 @@ }, "end": { "line": 22, - "column": 25, + "column": 23, "program": "package_module_2.ets" } } @@ -875,7 +875,7 @@ }, "end": { "line": 22, - "column": 25, + "column": 23, "program": "package_module_2.ets" } } @@ -920,7 +920,7 @@ }, "end": { "line": 23, - "column": 28, + "column": 26, "program": "package_module_2.ets" } } @@ -933,7 +933,7 @@ }, "end": { "line": 23, - "column": 28, + "column": 26, "program": "package_module_2.ets" } } @@ -1410,7 +1410,7 @@ }, "end": { "line": 23, - "column": 7, + "column": 6, "program": "package_module_1.ets" } } @@ -1423,7 +1423,7 @@ }, "end": { "line": 23, - "column": 7, + "column": 6, "program": "package_module_1.ets" } } diff --git a/ets2panda/test/compiler/ets/implicit_package_import/package_test_1/separate_module_1-expected.txt b/ets2panda/test/compiler/ets/implicit_package_import/package_test_1/separate_module_1-expected.txt index ce069d891f562ee1bd65e8aeff9e23bad55b2949..63ecb4ba5647644d986d805cff59dd9ba1f3f928 100644 --- a/ets2panda/test/compiler/ets/implicit_package_import/package_test_1/separate_module_1-expected.txt +++ b/ets2panda/test/compiler/ets/implicit_package_import/package_test_1/separate_module_1-expected.txt @@ -355,7 +355,7 @@ }, "end": { "line": 16, - "column": 32, + "column": 30, "program": "separate_module_1.ets" } } @@ -368,7 +368,7 @@ }, "end": { "line": 16, - "column": 32, + "column": 30, "program": "separate_module_1.ets" } } diff --git a/ets2panda/test/compiler/ets/implicit_package_import/package_test_2/subpackage_1/package_module_1-expected.txt b/ets2panda/test/compiler/ets/implicit_package_import/package_test_2/subpackage_1/package_module_1-expected.txt index 4b6dcadf6c7acd38c531695bd654ce6ca565e0e3..64386964c3aa028fd39f503624c5dbe83b726f92 100644 --- a/ets2panda/test/compiler/ets/implicit_package_import/package_test_2/subpackage_1/package_module_1-expected.txt +++ b/ets2panda/test/compiler/ets/implicit_package_import/package_test_2/subpackage_1/package_module_1-expected.txt @@ -636,7 +636,7 @@ }, "end": { "line": 19, - "column": 20, + "column": 18, "program": "package_module_1.ets" } } @@ -649,7 +649,7 @@ }, "end": { "line": 19, - "column": 20, + "column": 18, "program": "package_module_1.ets" } } @@ -767,7 +767,7 @@ }, "end": { "line": 20, - "column": 20, + "column": 18, "program": "package_module_1.ets" } } @@ -780,7 +780,7 @@ }, "end": { "line": 20, - "column": 20, + "column": 18, "program": "package_module_1.ets" } } diff --git a/ets2panda/test/compiler/ets/implicit_package_import/package_test_2/subpackage_1/package_module_2-expected.txt b/ets2panda/test/compiler/ets/implicit_package_import/package_test_2/subpackage_1/package_module_2-expected.txt index b2196585c2a61fb2d8f6fd54acff0fc01888901a..eef0229922211d82ad446a1fed4c492ef0a97119 100644 --- a/ets2panda/test/compiler/ets/implicit_package_import/package_test_2/subpackage_1/package_module_2-expected.txt +++ b/ets2panda/test/compiler/ets/implicit_package_import/package_test_2/subpackage_1/package_module_2-expected.txt @@ -253,7 +253,7 @@ }, "end": { "line": 21, - "column": 24, + "column": 21, "program": "package_module_2.ets" } } @@ -266,7 +266,7 @@ }, "end": { "line": 21, - "column": 24, + "column": 21, "program": "package_module_2.ets" } } @@ -604,7 +604,7 @@ }, "end": { "line": 19, - "column": 23, + "column": 22, "program": "package_module_2.ets" } } @@ -617,7 +617,7 @@ }, "end": { "line": 19, - "column": 23, + "column": 22, "program": "package_module_2.ets" } } @@ -630,7 +630,7 @@ }, "end": { "line": 19, - "column": 23, + "column": 22, "program": "package_module_2.ets" } } diff --git a/ets2panda/test/compiler/ets/implicit_package_import/package_test_2/subpackage_2/separate_module_1-expected.txt b/ets2panda/test/compiler/ets/implicit_package_import/package_test_2/subpackage_2/separate_module_1-expected.txt index e4917aa0975756ea4c63bde62ee7c335dac16a47..19601ac067ea14cc30cde5f721af0ab0a05ff46a 100644 --- a/ets2panda/test/compiler/ets/implicit_package_import/package_test_2/subpackage_2/separate_module_1-expected.txt +++ b/ets2panda/test/compiler/ets/implicit_package_import/package_test_2/subpackage_2/separate_module_1-expected.txt @@ -355,7 +355,7 @@ }, "end": { "line": 16, - "column": 27, + "column": 25, "program": "separate_module_1.ets" } } @@ -368,7 +368,7 @@ }, "end": { "line": 16, - "column": 27, + "column": 25, "program": "separate_module_1.ets" } } diff --git a/ets2panda/test/compiler/ets/import_tests/asyncfun_lambda_lib-expected.txt b/ets2panda/test/compiler/ets/import_tests/asyncfun_lambda_lib-expected.txt index 3c874f399f65f06deadcf8d53e753c6bf1be0cb4..ae9bb2e03a6efa3189c4b693b1474e05dca44059 100644 --- a/ets2panda/test/compiler/ets/import_tests/asyncfun_lambda_lib-expected.txt +++ b/ets2panda/test/compiler/ets/import_tests/asyncfun_lambda_lib-expected.txt @@ -129,7 +129,7 @@ }, "end": { "line": 16, - "column": 47, + "column": 46, "program": "asyncfun_lambda_lib.ets" } } @@ -142,7 +142,7 @@ }, "end": { "line": 16, - "column": 47, + "column": 46, "program": "asyncfun_lambda_lib.ets" } } @@ -198,7 +198,7 @@ }, "end": { "line": 16, - "column": 54, + "column": 52, "program": "asyncfun_lambda_lib.ets" } } @@ -211,7 +211,7 @@ }, "end": { "line": 16, - "column": 54, + "column": 52, "program": "asyncfun_lambda_lib.ets" } } @@ -541,7 +541,7 @@ }, "end": { "line": 17, - "column": 34, + "column": 32, "program": "asyncfun_lambda_lib.ets" } } @@ -554,7 +554,7 @@ }, "end": { "line": 17, - "column": 34, + "column": 32, "program": "asyncfun_lambda_lib.ets" } } diff --git a/ets2panda/test/compiler/ets/import_tests/asyncfunc_lambda_main-expected.txt b/ets2panda/test/compiler/ets/import_tests/asyncfunc_lambda_main-expected.txt index 0a3c93a371442f8bc093c36154acec3833dbbe58..9ae6ae1cfbe9ba1e3f22a745204faa0639addde7 100644 --- a/ets2panda/test/compiler/ets/import_tests/asyncfunc_lambda_main-expected.txt +++ b/ets2panda/test/compiler/ets/import_tests/asyncfunc_lambda_main-expected.txt @@ -562,7 +562,7 @@ }, "end": { "line": 23, - "column": 21, + "column": 19, "program": "asyncfunc_lambda_main.ets" } } @@ -575,7 +575,7 @@ }, "end": { "line": 23, - "column": 21, + "column": 19, "program": "asyncfunc_lambda_main.ets" } } @@ -625,7 +625,7 @@ }, "end": { "line": 23, - "column": 29, + "column": 28, "program": "asyncfunc_lambda_main.ets" } } @@ -638,7 +638,7 @@ }, "end": { "line": 23, - "column": 29, + "column": 28, "program": "asyncfunc_lambda_main.ets" } } @@ -820,7 +820,7 @@ }, "end": { "line": 26, - "column": 21, + "column": 19, "program": "asyncfunc_lambda_main.ets" } } @@ -833,7 +833,7 @@ }, "end": { "line": 26, - "column": 21, + "column": 19, "program": "asyncfunc_lambda_main.ets" } } @@ -883,7 +883,7 @@ }, "end": { "line": 26, - "column": 29, + "column": 28, "program": "asyncfunc_lambda_main.ets" } } @@ -896,7 +896,7 @@ }, "end": { "line": 26, - "column": 29, + "column": 28, "program": "asyncfunc_lambda_main.ets" } } @@ -1063,7 +1063,7 @@ }, "end": { "line": 29, - "column": 21, + "column": 19, "program": "asyncfunc_lambda_main.ets" } } @@ -1076,7 +1076,7 @@ }, "end": { "line": 29, - "column": 21, + "column": 19, "program": "asyncfunc_lambda_main.ets" } } @@ -1126,7 +1126,7 @@ }, "end": { "line": 29, - "column": 29, + "column": 28, "program": "asyncfunc_lambda_main.ets" } } @@ -1139,7 +1139,7 @@ }, "end": { "line": 29, - "column": 29, + "column": 28, "program": "asyncfunc_lambda_main.ets" } } @@ -1373,7 +1373,7 @@ }, "end": { "line": 32, - "column": 21, + "column": 19, "program": "asyncfunc_lambda_main.ets" } } @@ -1386,7 +1386,7 @@ }, "end": { "line": 32, - "column": 21, + "column": 19, "program": "asyncfunc_lambda_main.ets" } } @@ -1436,7 +1436,7 @@ }, "end": { "line": 32, - "column": 29, + "column": 28, "program": "asyncfunc_lambda_main.ets" } } @@ -1449,7 +1449,7 @@ }, "end": { "line": 32, - "column": 29, + "column": 28, "program": "asyncfunc_lambda_main.ets" } } diff --git a/ets2panda/test/compiler/ets/import_tests/enum_export-expected.txt b/ets2panda/test/compiler/ets/import_tests/enum_export-expected.txt index b637e562e8c0001d098f5937ddf36c5749c31037..187f6198c00316aa9623dad6f4e0313e3be71f98 100644 --- a/ets2panda/test/compiler/ets/import_tests/enum_export-expected.txt +++ b/ets2panda/test/compiler/ets/import_tests/enum_export-expected.txt @@ -12509,7 +12509,7 @@ }, "end": { "line": 32, - "column": 21, + "column": 19, "program": "enum_export.ets" } } @@ -12522,7 +12522,7 @@ }, "end": { "line": 32, - "column": 21, + "column": 19, "program": "enum_export.ets" } } diff --git a/ets2panda/test/compiler/ets/import_tests/export_class_with_getters_setters-expected.txt b/ets2panda/test/compiler/ets/import_tests/export_class_with_getters_setters-expected.txt index 5259630c3600c7d7439c154ef56cba9e48beeecb..918f5784e7b9d0fb9e9406f49dc9a14c67ee58c8 100644 --- a/ets2panda/test/compiler/ets/import_tests/export_class_with_getters_setters-expected.txt +++ b/ets2panda/test/compiler/ets/import_tests/export_class_with_getters_setters-expected.txt @@ -238,8 +238,8 @@ "program": "export_class_with_getters_setters.ets" }, "end": { - "line": 20, - "column": 2, + "line": 19, + "column": 18, "program": "export_class_with_getters_setters.ets" } } @@ -251,8 +251,8 @@ "program": "export_class_with_getters_setters.ets" }, "end": { - "line": 20, - "column": 2, + "line": 19, + "column": 18, "program": "export_class_with_getters_setters.ets" } } @@ -264,8 +264,8 @@ "program": "export_class_with_getters_setters.ets" }, "end": { - "line": 20, - "column": 2, + "line": 19, + "column": 18, "program": "export_class_with_getters_setters.ets" } } @@ -277,8 +277,8 @@ "program": "export_class_with_getters_setters.ets" }, "end": { - "line": 20, - "column": 2, + "line": 19, + "column": 18, "program": "export_class_with_getters_setters.ets" } } @@ -366,8 +366,8 @@ "program": "export_class_with_getters_setters.ets" }, "end": { - "line": 20, - "column": 2, + "line": 19, + "column": 18, "program": "export_class_with_getters_setters.ets" } } @@ -379,8 +379,8 @@ "program": "export_class_with_getters_setters.ets" }, "end": { - "line": 20, - "column": 2, + "line": 19, + "column": 18, "program": "export_class_with_getters_setters.ets" } } @@ -420,8 +420,8 @@ "program": "export_class_with_getters_setters.ets" }, "end": { - "line": 20, - "column": 2, + "line": 19, + "column": 18, "program": "export_class_with_getters_setters.ets" } } @@ -433,8 +433,8 @@ "program": "export_class_with_getters_setters.ets" }, "end": { - "line": 20, - "column": 2, + "line": 19, + "column": 18, "program": "export_class_with_getters_setters.ets" } } @@ -448,8 +448,8 @@ "program": "export_class_with_getters_setters.ets" }, "end": { - "line": 20, - "column": 2, + "line": 19, + "column": 18, "program": "export_class_with_getters_setters.ets" } } @@ -463,8 +463,8 @@ "program": "export_class_with_getters_setters.ets" }, "end": { - "line": 20, - "column": 2, + "line": 19, + "column": 18, "program": "export_class_with_getters_setters.ets" } } @@ -508,8 +508,8 @@ "program": "export_class_with_getters_setters.ets" }, "end": { - "line": 22, - "column": 7, + "line": 20, + "column": 2, "program": "export_class_with_getters_setters.ets" } } @@ -567,7 +567,7 @@ }, "end": { "line": 22, - "column": 49, + "column": 47, "program": "export_class_with_getters_setters.ets" } } @@ -580,7 +580,7 @@ }, "end": { "line": 22, - "column": 49, + "column": 47, "program": "export_class_with_getters_setters.ets" } } @@ -650,7 +650,7 @@ }, "end": { "line": 23, - "column": 35, + "column": 34, "program": "export_class_with_getters_setters.ets" } } @@ -663,7 +663,7 @@ }, "end": { "line": 23, - "column": 35, + "column": 34, "program": "export_class_with_getters_setters.ets" } } @@ -717,7 +717,7 @@ }, "end": { "line": 23, - "column": 20, + "column": 18, "program": "export_class_with_getters_setters.ets" } } @@ -730,7 +730,7 @@ }, "end": { "line": 23, - "column": 20, + "column": 18, "program": "export_class_with_getters_setters.ets" } } diff --git a/ets2panda/test/compiler/ets/import_tests/generic_typealias_func_type-expected.txt b/ets2panda/test/compiler/ets/import_tests/generic_typealias_func_type-expected.txt index 2726b422afa89eaa2a215216a42305e40d3ced11..e61728f4130d1e2e6662ac7d185d95f177b2d113 100644 --- a/ets2panda/test/compiler/ets/import_tests/generic_typealias_func_type-expected.txt +++ b/ets2panda/test/compiler/ets/import_tests/generic_typealias_func_type-expected.txt @@ -329,7 +329,7 @@ }, "end": { "line": 19, - "column": 21, + "column": 20, "program": "generic_typealias_func_type.ets" } } @@ -342,7 +342,7 @@ }, "end": { "line": 19, - "column": 21, + "column": 20, "program": "generic_typealias_func_type.ets" } } @@ -356,7 +356,7 @@ }, "end": { "line": 19, - "column": 21, + "column": 20, "program": "generic_typealias_func_type.ets" } } @@ -369,7 +369,7 @@ }, "end": { "line": 19, - "column": 21, + "column": 20, "program": "generic_typealias_func_type.ets" } } @@ -411,7 +411,7 @@ }, "end": { "line": 19, - "column": 33, + "column": 32, "program": "generic_typealias_func_type.ets" } } @@ -424,7 +424,7 @@ }, "end": { "line": 19, - "column": 33, + "column": 32, "program": "generic_typealias_func_type.ets" } } diff --git a/ets2panda/test/compiler/ets/import_tests/generic_typealias_func_type_lib-expected.txt b/ets2panda/test/compiler/ets/import_tests/generic_typealias_func_type_lib-expected.txt index 6b6704bf2372c51b505dd82a96db1301f64e7915..d701d4946ba15f17a39fa8bfbd318bd682f1eb00 100644 --- a/ets2panda/test/compiler/ets/import_tests/generic_typealias_func_type_lib-expected.txt +++ b/ets2panda/test/compiler/ets/import_tests/generic_typealias_func_type_lib-expected.txt @@ -57,7 +57,7 @@ }, "end": { "line": 16, - "column": 38, + "column": 37, "program": "generic_typealias_func_type_lib.ets" } } @@ -70,7 +70,7 @@ }, "end": { "line": 16, - "column": 38, + "column": 37, "program": "generic_typealias_func_type_lib.ets" } } @@ -84,7 +84,7 @@ }, "end": { "line": 16, - "column": 38, + "column": 37, "program": "generic_typealias_func_type_lib.ets" } } @@ -97,7 +97,7 @@ }, "end": { "line": 16, - "column": 38, + "column": 37, "program": "generic_typealias_func_type_lib.ets" } } @@ -131,8 +131,8 @@ "program": "generic_typealias_func_type_lib.ets" }, "end": { - "line": 18, - "column": 7, + "line": 16, + "column": 43, "program": "generic_typealias_func_type_lib.ets" } } @@ -144,8 +144,8 @@ "program": "generic_typealias_func_type_lib.ets" }, "end": { - "line": 18, - "column": 7, + "line": 16, + "column": 43, "program": "generic_typealias_func_type_lib.ets" } } @@ -157,8 +157,8 @@ "program": "generic_typealias_func_type_lib.ets" }, "end": { - "line": 18, - "column": 7, + "line": 16, + "column": 43, "program": "generic_typealias_func_type_lib.ets" } } @@ -599,7 +599,7 @@ }, "end": { "line": 18, - "column": 42, + "column": 41, "program": "generic_typealias_func_type_lib.ets" } } @@ -612,7 +612,7 @@ }, "end": { "line": 18, - "column": 42, + "column": 41, "program": "generic_typealias_func_type_lib.ets" } } @@ -646,7 +646,7 @@ }, "end": { "line": 18, - "column": 45, + "column": 44, "program": "generic_typealias_func_type_lib.ets" } } @@ -659,7 +659,7 @@ }, "end": { "line": 18, - "column": 45, + "column": 44, "program": "generic_typealias_func_type_lib.ets" } } @@ -686,7 +686,7 @@ }, "end": { "line": 18, - "column": 46, + "column": 45, "program": "generic_typealias_func_type_lib.ets" } } @@ -699,7 +699,7 @@ }, "end": { "line": 18, - "column": 46, + "column": 45, "program": "generic_typealias_func_type_lib.ets" } } @@ -713,7 +713,7 @@ }, "end": { "line": 18, - "column": 46, + "column": 45, "program": "generic_typealias_func_type_lib.ets" } } @@ -726,7 +726,7 @@ }, "end": { "line": 18, - "column": 46, + "column": 45, "program": "generic_typealias_func_type_lib.ets" } } @@ -761,7 +761,7 @@ }, "end": { "line": 18, - "column": 51, + "column": 49, "program": "generic_typealias_func_type_lib.ets" } } @@ -774,7 +774,7 @@ }, "end": { "line": 18, - "column": 51, + "column": 49, "program": "generic_typealias_func_type_lib.ets" } } diff --git a/ets2panda/test/compiler/ets/import_tests/import_class_with_getters_setters-expected.txt b/ets2panda/test/compiler/ets/import_tests/import_class_with_getters_setters-expected.txt index 831bf3e6e7b47623f78ba6b3652849c848eb5505..04ebd0a98abde79551fbd2382401fbf7838ac722 100644 --- a/ets2panda/test/compiler/ets/import_tests/import_class_with_getters_setters-expected.txt +++ b/ets2panda/test/compiler/ets/import_tests/import_class_with_getters_setters-expected.txt @@ -381,7 +381,7 @@ }, "end": { "line": 19, - "column": 25, + "column": 24, "program": "import_class_with_getters_setters.ets" } } @@ -394,7 +394,7 @@ }, "end": { "line": 19, - "column": 25, + "column": 24, "program": "import_class_with_getters_setters.ets" } } @@ -478,7 +478,7 @@ }, "end": { "line": 20, - "column": 21, + "column": 19, "program": "import_class_with_getters_setters.ets" } } @@ -491,7 +491,7 @@ }, "end": { "line": 20, - "column": 21, + "column": 19, "program": "import_class_with_getters_setters.ets" } } @@ -541,7 +541,7 @@ }, "end": { "line": 20, - "column": 36, + "column": 35, "program": "import_class_with_getters_setters.ets" } } @@ -554,7 +554,7 @@ }, "end": { "line": 20, - "column": 36, + "column": 35, "program": "import_class_with_getters_setters.ets" } } diff --git a/ets2panda/test/compiler/ets/import_tests/infer_imported_function_return_type-expected.txt b/ets2panda/test/compiler/ets/import_tests/infer_imported_function_return_type-expected.txt index fafbcca9302162fb4d8cad70fbdb7e7d7f535eb1..123d6ef92b92631e98147689930b4443fb329d8b 100644 --- a/ets2panda/test/compiler/ets/import_tests/infer_imported_function_return_type-expected.txt +++ b/ets2panda/test/compiler/ets/import_tests/infer_imported_function_return_type-expected.txt @@ -304,7 +304,7 @@ }, "end": { "line": 19, - "column": 20, + "column": 18, "program": "infer_imported_function_return_type.ets" } } @@ -317,7 +317,7 @@ }, "end": { "line": 19, - "column": 20, + "column": 18, "program": "infer_imported_function_return_type.ets" } } diff --git a/ets2panda/test/compiler/ets/import_tests/re-export_with_alias/export-expected.txt b/ets2panda/test/compiler/ets/import_tests/re-export_with_alias/export-expected.txt index d7e4adcd2f8c375dc568a745915f8a63b118c27b..f057022919715ce7420de0b9c218226ac13814ee 100644 --- a/ets2panda/test/compiler/ets/import_tests/re-export_with_alias/export-expected.txt +++ b/ets2panda/test/compiler/ets/import_tests/re-export_with_alias/export-expected.txt @@ -732,7 +732,7 @@ }, "end": { "line": 16, - "column": 30, + "column": 28, "program": "export.ets" } } @@ -745,7 +745,7 @@ }, "end": { "line": 16, - "column": 30, + "column": 28, "program": "export.ets" } } diff --git a/ets2panda/test/compiler/ets/import_tests/re-export_with_alias/import_aliased_re-export-expected.txt b/ets2panda/test/compiler/ets/import_tests/re-export_with_alias/import_aliased_re-export-expected.txt index 06e3ee1472d9ac1dd9b4042e87a29c46d5b23472..ca23088a88f9b7a08747d92e9540c3a124da13c8 100644 --- a/ets2panda/test/compiler/ets/import_tests/re-export_with_alias/import_aliased_re-export-expected.txt +++ b/ets2panda/test/compiler/ets/import_tests/re-export_with_alias/import_aliased_re-export-expected.txt @@ -629,7 +629,7 @@ }, "end": { "line": 23, - "column": 32, + "column": 30, "program": "import_aliased_re-export.ets" } } @@ -642,7 +642,7 @@ }, "end": { "line": 23, - "column": 32, + "column": 30, "program": "import_aliased_re-export.ets" } } @@ -692,7 +692,7 @@ }, "end": { "line": 23, - "column": 50, + "column": 49, "program": "import_aliased_re-export.ets" } } @@ -705,7 +705,7 @@ }, "end": { "line": 23, - "column": 50, + "column": 49, "program": "import_aliased_re-export.ets" } } diff --git a/ets2panda/test/compiler/ets/import_tests/selective_export_tests/import_interface-expected.txt b/ets2panda/test/compiler/ets/import_tests/selective_export_tests/import_interface-expected.txt index dd90a1ec71509d7739ffe550e7fa2a95b99cf8a7..916c83e08dc578125217bdfe6f7769261053accb 100644 --- a/ets2panda/test/compiler/ets/import_tests/selective_export_tests/import_interface-expected.txt +++ b/ets2panda/test/compiler/ets/import_tests/selective_export_tests/import_interface-expected.txt @@ -185,7 +185,7 @@ }, "end": { "line": 18, - "column": 43, + "column": 41, "program": "import_interface.ets" } } @@ -198,7 +198,7 @@ }, "end": { "line": 18, - "column": 43, + "column": 41, "program": "import_interface.ets" } } @@ -403,7 +403,7 @@ }, "end": { "line": 20, - "column": 47, + "column": 45, "program": "import_interface.ets" } } @@ -416,7 +416,7 @@ }, "end": { "line": 20, - "column": 47, + "column": 45, "program": "import_interface.ets" } } diff --git a/ets2panda/test/compiler/ets/import_tests/selective_export_tests/selective_export-expected.txt b/ets2panda/test/compiler/ets/import_tests/selective_export_tests/selective_export-expected.txt index 08cdb11de239bedf2ce781598539ddb8a9f45687..c736677ef8c3750adb6cacd083a91dbe3bb3b01f 100644 --- a/ets2panda/test/compiler/ets/import_tests/selective_export_tests/selective_export-expected.txt +++ b/ets2panda/test/compiler/ets/import_tests/selective_export_tests/selective_export-expected.txt @@ -758,7 +758,7 @@ }, "end": { "line": 34, - "column": 27, + "column": 26, "program": "selective_export.ets" } } @@ -771,7 +771,7 @@ }, "end": { "line": 34, - "column": 27, + "column": 26, "program": "selective_export.ets" } } diff --git a/ets2panda/test/compiler/ets/import_tests/selective_export_tests/selective_export_interface-expected.txt b/ets2panda/test/compiler/ets/import_tests/selective_export_tests/selective_export_interface-expected.txt index 986b4a3f83abe6dc6e103f10d3463966ad63ff8f..ebc273ec89ffa57d0a28d82bbc51454a99530acd 100644 --- a/ets2panda/test/compiler/ets/import_tests/selective_export_tests/selective_export_interface-expected.txt +++ b/ets2panda/test/compiler/ets/import_tests/selective_export_tests/selective_export_interface-expected.txt @@ -44,8 +44,8 @@ "program": "selective_export_interface.ets" }, "end": { - "line": 17, - "column": 10, + "line": 16, + "column": 27, "program": "selective_export_interface.ets" } } @@ -93,8 +93,8 @@ "program": "selective_export_interface.ets" }, "end": { - "line": 19, - "column": 7, + "line": 17, + "column": 30, "program": "selective_export_interface.ets" } } diff --git a/ets2panda/test/compiler/ets/import_tests/selective_export_tests/selective_import_with_alias_1-expected.txt b/ets2panda/test/compiler/ets/import_tests/selective_export_tests/selective_import_with_alias_1-expected.txt index d2e7b53338026f289d1c9e05d454808b1ec4bf7f..98d04ba6e3028cc23328ea18ad1a95a11dd2ed28 100644 --- a/ets2panda/test/compiler/ets/import_tests/selective_export_tests/selective_import_with_alias_1-expected.txt +++ b/ets2panda/test/compiler/ets/import_tests/selective_export_tests/selective_import_with_alias_1-expected.txt @@ -136,7 +136,7 @@ }, "end": { "line": 18, - "column": 47, + "column": 45, "program": "selective_import_with_alias_1.ets" } } @@ -149,7 +149,7 @@ }, "end": { "line": 18, - "column": 47, + "column": 45, "program": "selective_import_with_alias_1.ets" } } diff --git a/ets2panda/test/compiler/ets/import_tests/selective_export_tests/selective_import_with_alias_2-expected.txt b/ets2panda/test/compiler/ets/import_tests/selective_export_tests/selective_import_with_alias_2-expected.txt index be43e25602f47ad945db28ae1ff6f8165c27bcd3..14afa4bb5f3cf84166bcf627dd9386d7bebf224d 100644 --- a/ets2panda/test/compiler/ets/import_tests/selective_export_tests/selective_import_with_alias_2-expected.txt +++ b/ets2panda/test/compiler/ets/import_tests/selective_export_tests/selective_import_with_alias_2-expected.txt @@ -136,7 +136,7 @@ }, "end": { "line": 18, - "column": 44, + "column": 42, "program": "selective_import_with_alias_2.ets" } } @@ -149,7 +149,7 @@ }, "end": { "line": 18, - "column": 44, + "column": 42, "program": "selective_import_with_alias_2.ets" } } diff --git a/ets2panda/test/compiler/ets/import_type-expected.txt b/ets2panda/test/compiler/ets/import_type-expected.txt index a7d06b7c06d5abc362c814de63f8450520d29c15..e0d55b07a97af299aef8c94d8c6aee882713fa2d 100644 --- a/ets2panda/test/compiler/ets/import_type-expected.txt +++ b/ets2panda/test/compiler/ets/import_type-expected.txt @@ -234,7 +234,7 @@ }, "end": { "line": 19, - "column": 23, + "column": 21, "program": "import_type.ets" } } @@ -247,7 +247,7 @@ }, "end": { "line": 19, - "column": 23, + "column": 21, "program": "import_type.ets" } } @@ -633,7 +633,7 @@ }, "end": { "line": 18, - "column": 15, + "column": 14, "program": "import_type.ets" } } @@ -646,7 +646,7 @@ }, "end": { "line": 18, - "column": 15, + "column": 14, "program": "import_type.ets" } } @@ -744,7 +744,7 @@ }, "end": { "line": 20, - "column": 15, + "column": 14, "program": "import_type.ets" } } @@ -757,7 +757,7 @@ }, "end": { "line": 20, - "column": 15, + "column": 14, "program": "import_type.ets" } } @@ -855,7 +855,7 @@ }, "end": { "line": 21, - "column": 15, + "column": 14, "program": "import_type.ets" } } @@ -868,7 +868,7 @@ }, "end": { "line": 21, - "column": 15, + "column": 14, "program": "import_type.ets" } } @@ -1018,7 +1018,7 @@ }, "end": { "line": 18, - "column": 15, + "column": 14, "program": "import_type.ets" } } @@ -1031,7 +1031,7 @@ }, "end": { "line": 18, - "column": 15, + "column": 14, "program": "import_type.ets" } } @@ -1121,7 +1121,7 @@ }, "end": { "line": 20, - "column": 15, + "column": 14, "program": "import_type.ets" } } @@ -1134,7 +1134,7 @@ }, "end": { "line": 20, - "column": 15, + "column": 14, "program": "import_type.ets" } } @@ -1224,7 +1224,7 @@ }, "end": { "line": 21, - "column": 15, + "column": 14, "program": "import_type.ets" } } @@ -1237,7 +1237,7 @@ }, "end": { "line": 21, - "column": 15, + "column": 14, "program": "import_type.ets" } } diff --git a/ets2panda/test/compiler/ets/inferTypeOfArray-expected.txt b/ets2panda/test/compiler/ets/inferTypeOfArray-expected.txt index bd593cc9727b5938844e545ba9f392b89c48323d..84f87a126b659e02cc74a38b8ae2ada0ae5ecf4b 100644 --- a/ets2panda/test/compiler/ets/inferTypeOfArray-expected.txt +++ b/ets2panda/test/compiler/ets/inferTypeOfArray-expected.txt @@ -625,7 +625,7 @@ }, "end": { "line": 20, - "column": 32, + "column": 31, "program": "inferTypeOfArray.ets" } } @@ -638,7 +638,7 @@ }, "end": { "line": 20, - "column": 32, + "column": 31, "program": "inferTypeOfArray.ets" } } @@ -1548,7 +1548,7 @@ }, "end": { "line": 20, - "column": 32, + "column": 31, "program": "inferTypeOfArray.ets" } } @@ -1561,7 +1561,7 @@ }, "end": { "line": 20, - "column": 32, + "column": 31, "program": "inferTypeOfArray.ets" } } diff --git a/ets2panda/test/compiler/ets/instanceof_object_long-expected.txt b/ets2panda/test/compiler/ets/instanceof_object_long-expected.txt index a93110f754debfe08fdc81ababcd8498c28cd89e..0eb332b3dd46d8953da904f188ec275ba17314e2 100644 --- a/ets2panda/test/compiler/ets/instanceof_object_long-expected.txt +++ b/ets2panda/test/compiler/ets/instanceof_object_long-expected.txt @@ -319,7 +319,7 @@ }, "end": { "line": 20, - "column": 23, + "column": 22, "program": "instanceof_object_long.ets" } } @@ -332,7 +332,7 @@ }, "end": { "line": 20, - "column": 23, + "column": 22, "program": "instanceof_object_long.ets" } } @@ -346,7 +346,7 @@ }, "end": { "line": 20, - "column": 23, + "column": 22, "program": "instanceof_object_long.ets" } } @@ -359,7 +359,7 @@ }, "end": { "line": 20, - "column": 23, + "column": 22, "program": "instanceof_object_long.ets" } } diff --git a/ets2panda/test/compiler/ets/interface_noreturn_type_function-expected.txt b/ets2panda/test/compiler/ets/interface_noreturn_type_function-expected.txt index 07eb0caf22736a56bc0fbc51ac99b740d6ae8e1e..64bf23e6ca67c677da8f07eb0a19b0a6ed0b291d 100644 --- a/ets2panda/test/compiler/ets/interface_noreturn_type_function-expected.txt +++ b/ets2panda/test/compiler/ets/interface_noreturn_type_function-expected.txt @@ -183,8 +183,8 @@ "program": "interface_noreturn_type_function.ets" }, "end": { - "line": 22, - "column": 6, + "line": 20, + "column": 2, "program": "interface_noreturn_type_function.ets" } } @@ -242,7 +242,7 @@ }, "end": { "line": 22, - "column": 23, + "column": 21, "program": "interface_noreturn_type_function.ets" } } @@ -255,7 +255,7 @@ }, "end": { "line": 22, - "column": 23, + "column": 21, "program": "interface_noreturn_type_function.ets" } } @@ -656,7 +656,7 @@ }, "end": { "line": 25, - "column": 19, + "column": 18, "program": "interface_noreturn_type_function.ets" } } @@ -669,7 +669,7 @@ }, "end": { "line": 25, - "column": 19, + "column": 18, "program": "interface_noreturn_type_function.ets" } } diff --git a/ets2panda/test/compiler/ets/invalidInheritance3-expected.txt b/ets2panda/test/compiler/ets/invalidInheritance3-expected.txt index 3e6c99e7bee3bbf28cf1d1c662c8b4fcde7cd010..9c8b9b2aed8ce9bbe4ea8688df0855fd0c03a2e6 100644 --- a/ets2panda/test/compiler/ets/invalidInheritance3-expected.txt +++ b/ets2panda/test/compiler/ets/invalidInheritance3-expected.txt @@ -534,7 +534,7 @@ }, "end": { "line": 20, - "column": 20, + "column": 18, "program": "invalidInheritance3.ets" } } @@ -547,7 +547,7 @@ }, "end": { "line": 20, - "column": 20, + "column": 18, "program": "invalidInheritance3.ets" } } diff --git a/ets2panda/test/compiler/ets/lambdaFunction1-expected.txt b/ets2panda/test/compiler/ets/lambdaFunction1-expected.txt index 327c2296c5e534ba460bf42e7ee0401c01e5f9b6..d69b6613e44e0e37d5fbe2bc252c3c1b16c846eb 100644 --- a/ets2panda/test/compiler/ets/lambdaFunction1-expected.txt +++ b/ets2panda/test/compiler/ets/lambdaFunction1-expected.txt @@ -1885,7 +1885,7 @@ }, "end": { "line": 40, - "column": 19, + "column": 18, "program": "lambdaFunction1.ets" } } @@ -1898,7 +1898,7 @@ }, "end": { "line": 40, - "column": 19, + "column": 18, "program": "lambdaFunction1.ets" } } diff --git a/ets2panda/test/compiler/ets/lambdaFunctionArrayDeclaration-expected.txt b/ets2panda/test/compiler/ets/lambdaFunctionArrayDeclaration-expected.txt index d8d092b9db6287863a232a4051946bf7bf882bbb..c9c0acc44125c3a98166b3840245c48a43fc0e4d 100644 --- a/ets2panda/test/compiler/ets/lambdaFunctionArrayDeclaration-expected.txt +++ b/ets2panda/test/compiler/ets/lambdaFunctionArrayDeclaration-expected.txt @@ -440,7 +440,7 @@ }, "end": { "line": 17, - "column": 48, + "column": 47, "program": "lambdaFunctionArrayDeclaration.ets" } } @@ -453,7 +453,7 @@ }, "end": { "line": 17, - "column": 48, + "column": 47, "program": "lambdaFunctionArrayDeclaration.ets" } } @@ -467,7 +467,7 @@ }, "end": { "line": 17, - "column": 48, + "column": 47, "program": "lambdaFunctionArrayDeclaration.ets" } } @@ -480,7 +480,7 @@ }, "end": { "line": 17, - "column": 48, + "column": 47, "program": "lambdaFunctionArrayDeclaration.ets" } } diff --git a/ets2panda/test/compiler/ets/lambda_capturing-expected.txt b/ets2panda/test/compiler/ets/lambda_capturing-expected.txt index 47376b0f3a3b3fffe9ff5e322957f29a3a610bfb..244dd1303d727ff543805400e25526ccfd2afdab 100644 --- a/ets2panda/test/compiler/ets/lambda_capturing-expected.txt +++ b/ets2panda/test/compiler/ets/lambda_capturing-expected.txt @@ -473,7 +473,7 @@ }, "end": { "line": 18, - "column": 40, + "column": 38, "program": "lambda_capturing.ets" } } @@ -486,7 +486,7 @@ }, "end": { "line": 18, - "column": 40, + "column": 38, "program": "lambda_capturing.ets" } } diff --git a/ets2panda/test/compiler/ets/lambda_infer_type/lambda_cast_infer_type_narrowing-expected.txt b/ets2panda/test/compiler/ets/lambda_infer_type/lambda_cast_infer_type_narrowing-expected.txt index 7ee5a14864c4ca74b7827e57441b7f850457bc7c..65842d8dfeef41e81a7a286e119317a57ea9609b 100644 --- a/ets2panda/test/compiler/ets/lambda_infer_type/lambda_cast_infer_type_narrowing-expected.txt +++ b/ets2panda/test/compiler/ets/lambda_infer_type/lambda_cast_infer_type_narrowing-expected.txt @@ -205,7 +205,7 @@ }, "end": { "line": 20, - "column": 20, + "column": 18, "program": "lambda_cast_infer_type_narrowing.ets" } } @@ -218,7 +218,7 @@ }, "end": { "line": 20, - "column": 20, + "column": 18, "program": "lambda_cast_infer_type_narrowing.ets" } } @@ -344,7 +344,7 @@ }, "end": { "line": 22, - "column": 24, + "column": 23, "program": "lambda_cast_infer_type_narrowing.ets" } } @@ -357,7 +357,7 @@ }, "end": { "line": 22, - "column": 24, + "column": 23, "program": "lambda_cast_infer_type_narrowing.ets" } } @@ -371,7 +371,7 @@ }, "end": { "line": 22, - "column": 24, + "column": 23, "program": "lambda_cast_infer_type_narrowing.ets" } } @@ -384,7 +384,7 @@ }, "end": { "line": 22, - "column": 24, + "column": 23, "program": "lambda_cast_infer_type_narrowing.ets" } } @@ -426,7 +426,7 @@ }, "end": { "line": 22, - "column": 43, + "column": 42, "program": "lambda_cast_infer_type_narrowing.ets" } } @@ -439,7 +439,7 @@ }, "end": { "line": 22, - "column": 43, + "column": 42, "program": "lambda_cast_infer_type_narrowing.ets" } } @@ -548,7 +548,7 @@ }, "end": { "line": 22, - "column": 57, + "column": 56, "program": "lambda_cast_infer_type_narrowing.ets" } } @@ -561,7 +561,7 @@ }, "end": { "line": 22, - "column": 57, + "column": 56, "program": "lambda_cast_infer_type_narrowing.ets" } } @@ -575,7 +575,7 @@ }, "end": { "line": 22, - "column": 57, + "column": 56, "program": "lambda_cast_infer_type_narrowing.ets" } } @@ -588,7 +588,7 @@ }, "end": { "line": 22, - "column": 57, + "column": 56, "program": "lambda_cast_infer_type_narrowing.ets" } } @@ -622,8 +622,8 @@ "program": "lambda_cast_infer_type_narrowing.ets" }, "end": { - "line": 23, - "column": 12, + "line": 22, + "column": 62, "program": "lambda_cast_infer_type_narrowing.ets" } } @@ -635,8 +635,8 @@ "program": "lambda_cast_infer_type_narrowing.ets" }, "end": { - "line": 23, - "column": 12, + "line": 22, + "column": 62, "program": "lambda_cast_infer_type_narrowing.ets" } } @@ -648,8 +648,8 @@ "program": "lambda_cast_infer_type_narrowing.ets" }, "end": { - "line": 23, - "column": 12, + "line": 22, + "column": 62, "program": "lambda_cast_infer_type_narrowing.ets" } } @@ -740,7 +740,7 @@ }, "end": { "line": 23, - "column": 31, + "column": 30, "program": "lambda_cast_infer_type_narrowing.ets" } } @@ -753,7 +753,7 @@ }, "end": { "line": 23, - "column": 31, + "column": 30, "program": "lambda_cast_infer_type_narrowing.ets" } } @@ -767,7 +767,7 @@ }, "end": { "line": 23, - "column": 31, + "column": 30, "program": "lambda_cast_infer_type_narrowing.ets" } } @@ -780,7 +780,7 @@ }, "end": { "line": 23, - "column": 31, + "column": 30, "program": "lambda_cast_infer_type_narrowing.ets" } } @@ -815,7 +815,7 @@ }, "end": { "line": 23, - "column": 38, + "column": 36, "program": "lambda_cast_infer_type_narrowing.ets" } } @@ -828,7 +828,7 @@ }, "end": { "line": 23, - "column": 38, + "column": 36, "program": "lambda_cast_infer_type_narrowing.ets" } } @@ -841,7 +841,7 @@ }, "end": { "line": 23, - "column": 38, + "column": 36, "program": "lambda_cast_infer_type_narrowing.ets" } } diff --git a/ets2panda/test/compiler/ets/lambda_infer_type/lambda_cast_infer_type_widening-expected.txt b/ets2panda/test/compiler/ets/lambda_infer_type/lambda_cast_infer_type_widening-expected.txt index 39f4aa30bb6d8e33bca8108165494f633aeba79b..cc44cc1b53310a4a643f7d6f0cd46e78369643c4 100644 --- a/ets2panda/test/compiler/ets/lambda_infer_type/lambda_cast_infer_type_widening-expected.txt +++ b/ets2panda/test/compiler/ets/lambda_infer_type/lambda_cast_infer_type_widening-expected.txt @@ -205,7 +205,7 @@ }, "end": { "line": 20, - "column": 20, + "column": 18, "program": "lambda_cast_infer_type_widening.ets" } } @@ -218,7 +218,7 @@ }, "end": { "line": 20, - "column": 20, + "column": 18, "program": "lambda_cast_infer_type_widening.ets" } } @@ -344,7 +344,7 @@ }, "end": { "line": 22, - "column": 24, + "column": 23, "program": "lambda_cast_infer_type_widening.ets" } } @@ -357,7 +357,7 @@ }, "end": { "line": 22, - "column": 24, + "column": 23, "program": "lambda_cast_infer_type_widening.ets" } } @@ -371,7 +371,7 @@ }, "end": { "line": 22, - "column": 24, + "column": 23, "program": "lambda_cast_infer_type_widening.ets" } } @@ -384,7 +384,7 @@ }, "end": { "line": 22, - "column": 24, + "column": 23, "program": "lambda_cast_infer_type_widening.ets" } } @@ -426,7 +426,7 @@ }, "end": { "line": 22, - "column": 44, + "column": 42, "program": "lambda_cast_infer_type_widening.ets" } } @@ -439,7 +439,7 @@ }, "end": { "line": 22, - "column": 44, + "column": 42, "program": "lambda_cast_infer_type_widening.ets" } } @@ -548,7 +548,7 @@ }, "end": { "line": 22, - "column": 55, + "column": 54, "program": "lambda_cast_infer_type_widening.ets" } } @@ -561,7 +561,7 @@ }, "end": { "line": 22, - "column": 55, + "column": 54, "program": "lambda_cast_infer_type_widening.ets" } } @@ -575,7 +575,7 @@ }, "end": { "line": 22, - "column": 55, + "column": 54, "program": "lambda_cast_infer_type_widening.ets" } } @@ -588,7 +588,7 @@ }, "end": { "line": 22, - "column": 55, + "column": 54, "program": "lambda_cast_infer_type_widening.ets" } } @@ -622,8 +622,8 @@ "program": "lambda_cast_infer_type_widening.ets" }, "end": { - "line": 23, - "column": 12, + "line": 22, + "column": 60, "program": "lambda_cast_infer_type_widening.ets" } } @@ -635,8 +635,8 @@ "program": "lambda_cast_infer_type_widening.ets" }, "end": { - "line": 23, - "column": 12, + "line": 22, + "column": 60, "program": "lambda_cast_infer_type_widening.ets" } } @@ -648,8 +648,8 @@ "program": "lambda_cast_infer_type_widening.ets" }, "end": { - "line": 23, - "column": 12, + "line": 22, + "column": 60, "program": "lambda_cast_infer_type_widening.ets" } } @@ -740,7 +740,7 @@ }, "end": { "line": 23, - "column": 31, + "column": 30, "program": "lambda_cast_infer_type_widening.ets" } } @@ -753,7 +753,7 @@ }, "end": { "line": 23, - "column": 31, + "column": 30, "program": "lambda_cast_infer_type_widening.ets" } } @@ -767,7 +767,7 @@ }, "end": { "line": 23, - "column": 31, + "column": 30, "program": "lambda_cast_infer_type_widening.ets" } } @@ -780,7 +780,7 @@ }, "end": { "line": 23, - "column": 31, + "column": 30, "program": "lambda_cast_infer_type_widening.ets" } } @@ -815,7 +815,7 @@ }, "end": { "line": 23, - "column": 38, + "column": 36, "program": "lambda_cast_infer_type_widening.ets" } } @@ -828,7 +828,7 @@ }, "end": { "line": 23, - "column": 38, + "column": 36, "program": "lambda_cast_infer_type_widening.ets" } } @@ -841,7 +841,7 @@ }, "end": { "line": 23, - "column": 38, + "column": 36, "program": "lambda_cast_infer_type_widening.ets" } } diff --git a/ets2panda/test/compiler/ets/lambda_infer_type/lambda_cast_type_has_pramas-expected.txt b/ets2panda/test/compiler/ets/lambda_infer_type/lambda_cast_type_has_pramas-expected.txt index 2785b4bdfcb3a0da81d47dbdce58f790c3e7aefe..8506f7bb23fd1384f13dd6cf4bb0b66d6c5af611 100644 --- a/ets2panda/test/compiler/ets/lambda_infer_type/lambda_cast_type_has_pramas-expected.txt +++ b/ets2panda/test/compiler/ets/lambda_infer_type/lambda_cast_type_has_pramas-expected.txt @@ -249,7 +249,7 @@ }, "end": { "line": 17, - "column": 22, + "column": 21, "program": "lambda_cast_type_has_pramas.ets" } } @@ -262,7 +262,7 @@ }, "end": { "line": 17, - "column": 22, + "column": 21, "program": "lambda_cast_type_has_pramas.ets" } } @@ -276,7 +276,7 @@ }, "end": { "line": 17, - "column": 22, + "column": 21, "program": "lambda_cast_type_has_pramas.ets" } } @@ -289,7 +289,7 @@ }, "end": { "line": 17, - "column": 22, + "column": 21, "program": "lambda_cast_type_has_pramas.ets" } } @@ -406,7 +406,7 @@ }, "end": { "line": 17, - "column": 52, + "column": 51, "program": "lambda_cast_type_has_pramas.ets" } } @@ -419,7 +419,7 @@ }, "end": { "line": 17, - "column": 52, + "column": 51, "program": "lambda_cast_type_has_pramas.ets" } } @@ -433,7 +433,7 @@ }, "end": { "line": 17, - "column": 52, + "column": 51, "program": "lambda_cast_type_has_pramas.ets" } } @@ -446,7 +446,7 @@ }, "end": { "line": 17, - "column": 52, + "column": 51, "program": "lambda_cast_type_has_pramas.ets" } } @@ -480,8 +480,8 @@ "program": "lambda_cast_type_has_pramas.ets" }, "end": { - "line": 18, - "column": 8, + "line": 17, + "column": 59, "program": "lambda_cast_type_has_pramas.ets" } } @@ -493,8 +493,8 @@ "program": "lambda_cast_type_has_pramas.ets" }, "end": { - "line": 18, - "column": 8, + "line": 17, + "column": 59, "program": "lambda_cast_type_has_pramas.ets" } } @@ -506,8 +506,8 @@ "program": "lambda_cast_type_has_pramas.ets" }, "end": { - "line": 18, - "column": 8, + "line": 17, + "column": 59, "program": "lambda_cast_type_has_pramas.ets" } } @@ -598,7 +598,7 @@ }, "end": { "line": 18, - "column": 29, + "column": 28, "program": "lambda_cast_type_has_pramas.ets" } } @@ -611,7 +611,7 @@ }, "end": { "line": 18, - "column": 29, + "column": 28, "program": "lambda_cast_type_has_pramas.ets" } } @@ -625,7 +625,7 @@ }, "end": { "line": 18, - "column": 29, + "column": 28, "program": "lambda_cast_type_has_pramas.ets" } } @@ -638,7 +638,7 @@ }, "end": { "line": 18, - "column": 29, + "column": 28, "program": "lambda_cast_type_has_pramas.ets" } } @@ -673,7 +673,7 @@ }, "end": { "line": 18, - "column": 38, + "column": 36, "program": "lambda_cast_type_has_pramas.ets" } } @@ -686,7 +686,7 @@ }, "end": { "line": 18, - "column": 38, + "column": 36, "program": "lambda_cast_type_has_pramas.ets" } } @@ -699,7 +699,7 @@ }, "end": { "line": 18, - "column": 38, + "column": 36, "program": "lambda_cast_type_has_pramas.ets" } } diff --git a/ets2panda/test/compiler/ets/lambda_infer_type/lambda_infer_type_arrow_expression-expected.txt b/ets2panda/test/compiler/ets/lambda_infer_type/lambda_infer_type_arrow_expression-expected.txt index 94ab0e2a26aca4d4178255bb30d17be96d2c82b0..a417023c36f2f1926983753b1c3ed40074a73745 100644 --- a/ets2panda/test/compiler/ets/lambda_infer_type/lambda_infer_type_arrow_expression-expected.txt +++ b/ets2panda/test/compiler/ets/lambda_infer_type/lambda_infer_type_arrow_expression-expected.txt @@ -143,7 +143,7 @@ }, "end": { "line": 18, - "column": 29, + "column": 28, "program": "lambda_infer_type_arrow_expression.ets" } } @@ -156,7 +156,7 @@ }, "end": { "line": 18, - "column": 29, + "column": 28, "program": "lambda_infer_type_arrow_expression.ets" } } @@ -296,7 +296,7 @@ }, "end": { "line": 19, - "column": 33, + "column": 31, "program": "lambda_infer_type_arrow_expression.ets" } } @@ -309,7 +309,7 @@ }, "end": { "line": 19, - "column": 33, + "column": 31, "program": "lambda_infer_type_arrow_expression.ets" } } @@ -322,7 +322,7 @@ }, "end": { "line": 19, - "column": 33, + "column": 31, "program": "lambda_infer_type_arrow_expression.ets" } } diff --git a/ets2panda/test/compiler/ets/lambda_infer_type/lambda_infer_type_arrow_expression_literal-expected.txt b/ets2panda/test/compiler/ets/lambda_infer_type/lambda_infer_type_arrow_expression_literal-expected.txt index 84d41df13bbb4fdbbeb9d54c4501090a40ced3ec..1b5b31b5826579c80b529284efffd899f5c4512f 100644 --- a/ets2panda/test/compiler/ets/lambda_infer_type/lambda_infer_type_arrow_expression_literal-expected.txt +++ b/ets2panda/test/compiler/ets/lambda_infer_type/lambda_infer_type_arrow_expression_literal-expected.txt @@ -249,7 +249,7 @@ }, "end": { "line": 19, - "column": 35, + "column": 33, "program": "lambda_infer_type_arrow_expression_literal.ets" } } @@ -262,7 +262,7 @@ }, "end": { "line": 19, - "column": 35, + "column": 33, "program": "lambda_infer_type_arrow_expression_literal.ets" } } @@ -275,7 +275,7 @@ }, "end": { "line": 19, - "column": 35, + "column": 33, "program": "lambda_infer_type_arrow_expression_literal.ets" } } diff --git a/ets2panda/test/compiler/ets/lambda_infer_type/lambda_infer_type_has_return-expected.txt b/ets2panda/test/compiler/ets/lambda_infer_type/lambda_infer_type_has_return-expected.txt index 84661a995155d4c52d49b6c30fc49351af319275..68328b0b6e0ca810f07444d78e7e6ebf3628c3f1 100644 --- a/ets2panda/test/compiler/ets/lambda_infer_type/lambda_infer_type_has_return-expected.txt +++ b/ets2panda/test/compiler/ets/lambda_infer_type/lambda_infer_type_has_return-expected.txt @@ -147,7 +147,7 @@ }, "end": { "line": 19, - "column": 23, + "column": 21, "program": "lambda_infer_type_has_return.ets" } } @@ -160,7 +160,7 @@ }, "end": { "line": 19, - "column": 23, + "column": 21, "program": "lambda_infer_type_has_return.ets" } } @@ -210,7 +210,7 @@ }, "end": { "line": 19, - "column": 30, + "column": 29, "program": "lambda_infer_type_has_return.ets" } } @@ -223,7 +223,7 @@ }, "end": { "line": 19, - "column": 30, + "column": 29, "program": "lambda_infer_type_has_return.ets" } } @@ -410,7 +410,7 @@ }, "end": { "line": 22, - "column": 33, + "column": 31, "program": "lambda_infer_type_has_return.ets" } } @@ -423,7 +423,7 @@ }, "end": { "line": 22, - "column": 33, + "column": 31, "program": "lambda_infer_type_has_return.ets" } } @@ -436,7 +436,7 @@ }, "end": { "line": 22, - "column": 33, + "column": 31, "program": "lambda_infer_type_has_return.ets" } } diff --git a/ets2panda/test/compiler/ets/lambda_infer_type/lambda_infer_type_return_lambda-expected.txt b/ets2panda/test/compiler/ets/lambda_infer_type/lambda_infer_type_return_lambda-expected.txt index 1b6f4822a16ab8c4fabd0743d8d2db62744cd8ca..4922fd7dd603851d933617d75d1822227f92d6c1 100644 --- a/ets2panda/test/compiler/ets/lambda_infer_type/lambda_infer_type_return_lambda-expected.txt +++ b/ets2panda/test/compiler/ets/lambda_infer_type/lambda_infer_type_return_lambda-expected.txt @@ -492,7 +492,7 @@ }, "end": { "line": 23, - "column": 37, + "column": 35, "program": "lambda_infer_type_return_lambda.ets" } } @@ -505,7 +505,7 @@ }, "end": { "line": 23, - "column": 37, + "column": 35, "program": "lambda_infer_type_return_lambda.ets" } } @@ -518,7 +518,7 @@ }, "end": { "line": 23, - "column": 37, + "column": 35, "program": "lambda_infer_type_return_lambda.ets" } } @@ -531,7 +531,7 @@ }, "end": { "line": 23, - "column": 37, + "column": 35, "program": "lambda_infer_type_return_lambda.ets" } } diff --git a/ets2panda/test/compiler/ets/lambda_infer_type/lambda_infer_type_return_literal-expected.txt b/ets2panda/test/compiler/ets/lambda_infer_type/lambda_infer_type_return_literal-expected.txt index e52b2b93df82be19d0394a0c906fd04876dcc585..3f706b38020be4db9a545ac25a4bd71180f0c0ca 100644 --- a/ets2panda/test/compiler/ets/lambda_infer_type/lambda_infer_type_return_literal-expected.txt +++ b/ets2panda/test/compiler/ets/lambda_infer_type/lambda_infer_type_return_literal-expected.txt @@ -355,7 +355,7 @@ }, "end": { "line": 20, - "column": 31, + "column": 29, "program": "lambda_infer_type_return_literal.ets" } } @@ -368,7 +368,7 @@ }, "end": { "line": 20, - "column": 31, + "column": 29, "program": "lambda_infer_type_return_literal.ets" } } @@ -381,7 +381,7 @@ }, "end": { "line": 20, - "column": 31, + "column": 29, "program": "lambda_infer_type_return_literal.ets" } } diff --git a/ets2panda/test/compiler/ets/lambda_infer_type/lambda_infer_type_return_union-expected.txt b/ets2panda/test/compiler/ets/lambda_infer_type/lambda_infer_type_return_union-expected.txt index 15901d7ccce2625c9c7677fab434e34fd5c5aba9..687fd2385a9d900885cf1d6916449552b111e564 100644 --- a/ets2panda/test/compiler/ets/lambda_infer_type/lambda_infer_type_return_union-expected.txt +++ b/ets2panda/test/compiler/ets/lambda_infer_type/lambda_infer_type_return_union-expected.txt @@ -256,7 +256,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 18, "program": "lambda_infer_type_return_union.ets" } } @@ -269,7 +269,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 18, "program": "lambda_infer_type_return_union.ets" } } @@ -303,7 +303,7 @@ }, "end": { "line": 18, - "column": 29, + "column": 27, "program": "lambda_infer_type_return_union.ets" } } @@ -316,7 +316,7 @@ }, "end": { "line": 18, - "column": 29, + "column": 27, "program": "lambda_infer_type_return_union.ets" } } @@ -330,7 +330,7 @@ }, "end": { "line": 18, - "column": 29, + "column": 27, "program": "lambda_infer_type_return_union.ets" } } @@ -536,7 +536,7 @@ }, "end": { "line": 21, - "column": 29, + "column": 27, "program": "lambda_infer_type_return_union.ets" } } @@ -549,7 +549,7 @@ }, "end": { "line": 21, - "column": 29, + "column": 27, "program": "lambda_infer_type_return_union.ets" } } @@ -583,7 +583,7 @@ }, "end": { "line": 21, - "column": 38, + "column": 36, "program": "lambda_infer_type_return_union.ets" } } @@ -596,7 +596,7 @@ }, "end": { "line": 21, - "column": 38, + "column": 36, "program": "lambda_infer_type_return_union.ets" } } @@ -610,7 +610,7 @@ }, "end": { "line": 21, - "column": 38, + "column": 36, "program": "lambda_infer_type_return_union.ets" } } @@ -623,7 +623,7 @@ }, "end": { "line": 21, - "column": 38, + "column": 36, "program": "lambda_infer_type_return_union.ets" } } diff --git a/ets2panda/test/compiler/ets/launch_expression-expected.txt b/ets2panda/test/compiler/ets/launch_expression-expected.txt index 10c0205c50bba937497ad4f25665ab574f5ca32d..481e964e2e640f9e7e7b2974ca263d4602640b98 100644 --- a/ets2panda/test/compiler/ets/launch_expression-expected.txt +++ b/ets2panda/test/compiler/ets/launch_expression-expected.txt @@ -158,7 +158,7 @@ }, "end": { "line": 22, - "column": 18, + "column": 17, "program": "launch_expression.ets" } } @@ -171,7 +171,7 @@ }, "end": { "line": 22, - "column": 18, + "column": 17, "program": "launch_expression.ets" } } @@ -198,7 +198,7 @@ }, "end": { "line": 22, - "column": 20, + "column": 18, "program": "launch_expression.ets" } } @@ -211,7 +211,7 @@ }, "end": { "line": 22, - "column": 20, + "column": 18, "program": "launch_expression.ets" } } @@ -1548,7 +1548,7 @@ }, "end": { "line": 28, - "column": 21, + "column": 20, "program": "launch_expression.ets" } } @@ -1561,7 +1561,7 @@ }, "end": { "line": 28, - "column": 21, + "column": 20, "program": "launch_expression.ets" } } @@ -1774,7 +1774,7 @@ }, "end": { "line": 30, - "column": 30, + "column": 28, "program": "launch_expression.ets" } } @@ -1787,7 +1787,7 @@ }, "end": { "line": 30, - "column": 30, + "column": 28, "program": "launch_expression.ets" } } @@ -2173,7 +2173,7 @@ }, "end": { "line": 34, - "column": 24, + "column": 23, "program": "launch_expression.ets" } } @@ -2186,7 +2186,7 @@ }, "end": { "line": 34, - "column": 24, + "column": 23, "program": "launch_expression.ets" } } @@ -2613,7 +2613,7 @@ }, "end": { "line": 36, - "column": 27, + "column": 26, "program": "launch_expression.ets" } } @@ -2626,7 +2626,7 @@ }, "end": { "line": 36, - "column": 27, + "column": 26, "program": "launch_expression.ets" } } @@ -2711,7 +2711,7 @@ }, "end": { "line": 36, - "column": 44, + "column": 43, "program": "launch_expression.ets" } } @@ -2724,7 +2724,7 @@ }, "end": { "line": 36, - "column": 44, + "column": 43, "program": "launch_expression.ets" } } @@ -2737,7 +2737,7 @@ }, "end": { "line": 36, - "column": 44, + "column": 43, "program": "launch_expression.ets" } } @@ -5018,7 +5018,7 @@ }, "end": { "line": 60, - "column": 24, + "column": 23, "program": "launch_expression.ets" } } @@ -5031,7 +5031,7 @@ }, "end": { "line": 60, - "column": 24, + "column": 23, "program": "launch_expression.ets" } } @@ -5116,7 +5116,7 @@ }, "end": { "line": 60, - "column": 41, + "column": 40, "program": "launch_expression.ets" } } @@ -5129,7 +5129,7 @@ }, "end": { "line": 60, - "column": 41, + "column": 40, "program": "launch_expression.ets" } } @@ -5142,7 +5142,7 @@ }, "end": { "line": 60, - "column": 41, + "column": 40, "program": "launch_expression.ets" } } diff --git a/ets2panda/test/compiler/ets/loopWithinLambda-expected.txt b/ets2panda/test/compiler/ets/loopWithinLambda-expected.txt index a281d834d864004f01d98fc2c7be01f8ad7fed7e..503cb31471ee5e28a50b0aafaae1ad6abbddd6dc 100644 --- a/ets2panda/test/compiler/ets/loopWithinLambda-expected.txt +++ b/ets2panda/test/compiler/ets/loopWithinLambda-expected.txt @@ -690,7 +690,7 @@ }, "end": { "line": 21, - "column": 29, + "column": 27, "program": "loopWithinLambda.ets" } } @@ -703,7 +703,7 @@ }, "end": { "line": 21, - "column": 29, + "column": 27, "program": "loopWithinLambda.ets" } } @@ -1065,7 +1065,7 @@ }, "end": { "line": 22, - "column": 17, + "column": 15, "program": "loopWithinLambda.ets" } } @@ -1078,7 +1078,7 @@ }, "end": { "line": 22, - "column": 17, + "column": 15, "program": "loopWithinLambda.ets" } } @@ -1528,7 +1528,7 @@ }, "end": { "line": 20, - "column": 16, + "column": 14, "program": "loopWithinLambda.ets" } } @@ -1541,7 +1541,7 @@ }, "end": { "line": 20, - "column": 16, + "column": 14, "program": "loopWithinLambda.ets" } } diff --git a/ets2panda/test/compiler/ets/lowering-interaction-expected.txt b/ets2panda/test/compiler/ets/lowering-interaction-expected.txt index e97d598b79a08a38383a7d23df203a04184926ca..8007472e0731d77d71853bbe0db510e36da97698 100644 --- a/ets2panda/test/compiler/ets/lowering-interaction-expected.txt +++ b/ets2panda/test/compiler/ets/lowering-interaction-expected.txt @@ -229,7 +229,7 @@ }, "end": { "line": 19, - "column": 22, + "column": 21, "program": "lowering-interaction.ets" } } @@ -242,7 +242,7 @@ }, "end": { "line": 19, - "column": 22, + "column": 21, "program": "lowering-interaction.ets" } } @@ -296,7 +296,7 @@ }, "end": { "line": 19, - "column": 15, + "column": 13, "program": "lowering-interaction.ets" } } @@ -309,7 +309,7 @@ }, "end": { "line": 19, - "column": 15, + "column": 13, "program": "lowering-interaction.ets" } } @@ -1132,7 +1132,7 @@ }, "end": { "line": 31, - "column": 15, + "column": 13, "program": "lowering-interaction.ets" } } @@ -1145,7 +1145,7 @@ }, "end": { "line": 31, - "column": 15, + "column": 13, "program": "lowering-interaction.ets" } } diff --git a/ets2panda/test/compiler/ets/manyLocalsParamRegUsage-expected.txt b/ets2panda/test/compiler/ets/manyLocalsParamRegUsage-expected.txt index c1180a718459eb9c63b45fbfa7914154829915eb..b72bb48d94e2a079ef3073995219b2878a0c9787 100644 --- a/ets2panda/test/compiler/ets/manyLocalsParamRegUsage-expected.txt +++ b/ets2panda/test/compiler/ets/manyLocalsParamRegUsage-expected.txt @@ -12318,7 +12318,7 @@ }, "end": { "line": 281, - "column": 25, + "column": 24, "program": "manyLocalsParamRegUsage.ets" } } @@ -12331,7 +12331,7 @@ }, "end": { "line": 281, - "column": 25, + "column": 24, "program": "manyLocalsParamRegUsage.ets" } } @@ -17682,7 +17682,7 @@ }, "end": { "line": 558, - "column": 28, + "column": 26, "program": "manyLocalsParamRegUsage.ets" } } @@ -17695,7 +17695,7 @@ }, "end": { "line": 558, - "column": 28, + "column": 26, "program": "manyLocalsParamRegUsage.ets" } } @@ -17708,7 +17708,7 @@ }, "end": { "line": 558, - "column": 28, + "column": 26, "program": "manyLocalsParamRegUsage.ets" } } @@ -17765,7 +17765,7 @@ }, "end": { "line": 558, - "column": 40, + "column": 37, "program": "manyLocalsParamRegUsage.ets" } } @@ -17778,7 +17778,7 @@ }, "end": { "line": 558, - "column": 40, + "column": 37, "program": "manyLocalsParamRegUsage.ets" } } diff --git a/ets2panda/test/compiler/ets/memberExprInLambda-expected.txt b/ets2panda/test/compiler/ets/memberExprInLambda-expected.txt index 4d8fc13a42788c7bae84e1ac1159554db91b0e53..1b860e11cafe97d999d2bb8937371a66c35806ef 100644 --- a/ets2panda/test/compiler/ets/memberExprInLambda-expected.txt +++ b/ets2panda/test/compiler/ets/memberExprInLambda-expected.txt @@ -645,7 +645,7 @@ }, "end": { "line": 20, - "column": 40, + "column": 38, "program": "memberExprInLambda.ets" } } @@ -658,7 +658,7 @@ }, "end": { "line": 20, - "column": 40, + "column": 38, "program": "memberExprInLambda.ets" } } diff --git a/ets2panda/test/compiler/ets/memberExpressionFromStaticContext-expected.txt b/ets2panda/test/compiler/ets/memberExpressionFromStaticContext-expected.txt index aa4becc7505ed859a78b5d938de9b707a9814ed6..d7379dffb504ac946a9056fab5fbb378d914665f 100644 --- a/ets2panda/test/compiler/ets/memberExpressionFromStaticContext-expected.txt +++ b/ets2panda/test/compiler/ets/memberExpressionFromStaticContext-expected.txt @@ -349,7 +349,7 @@ }, "end": { "line": 20, - "column": 28, + "column": 27, "program": "memberExpressionFromStaticContext.ets" } } @@ -362,7 +362,7 @@ }, "end": { "line": 20, - "column": 28, + "column": 27, "program": "memberExpressionFromStaticContext.ets" } } @@ -376,7 +376,7 @@ }, "end": { "line": 20, - "column": 28, + "column": 27, "program": "memberExpressionFromStaticContext.ets" } } @@ -389,7 +389,7 @@ }, "end": { "line": 20, - "column": 28, + "column": 27, "program": "memberExpressionFromStaticContext.ets" } } @@ -1114,7 +1114,7 @@ }, "end": { "line": 30, - "column": 28, + "column": 27, "program": "memberExpressionFromStaticContext.ets" } } @@ -1127,7 +1127,7 @@ }, "end": { "line": 30, - "column": 28, + "column": 27, "program": "memberExpressionFromStaticContext.ets" } } @@ -1141,7 +1141,7 @@ }, "end": { "line": 30, - "column": 28, + "column": 27, "program": "memberExpressionFromStaticContext.ets" } } @@ -1154,7 +1154,7 @@ }, "end": { "line": 30, - "column": 28, + "column": 27, "program": "memberExpressionFromStaticContext.ets" } } @@ -1480,7 +1480,7 @@ }, "end": { "line": 35, - "column": 32, + "column": 31, "program": "memberExpressionFromStaticContext.ets" } } @@ -1493,7 +1493,7 @@ }, "end": { "line": 35, - "column": 32, + "column": 31, "program": "memberExpressionFromStaticContext.ets" } } @@ -1859,7 +1859,7 @@ }, "end": { "line": 40, - "column": 20, + "column": 18, "program": "memberExpressionFromStaticContext.ets" } } @@ -1872,7 +1872,7 @@ }, "end": { "line": 40, - "column": 20, + "column": 18, "program": "memberExpressionFromStaticContext.ets" } } @@ -2204,7 +2204,7 @@ }, "end": { "line": 44, - "column": 28, + "column": 27, "program": "memberExpressionFromStaticContext.ets" } } @@ -2217,7 +2217,7 @@ }, "end": { "line": 44, - "column": 28, + "column": 27, "program": "memberExpressionFromStaticContext.ets" } } @@ -2231,7 +2231,7 @@ }, "end": { "line": 44, - "column": 28, + "column": 27, "program": "memberExpressionFromStaticContext.ets" } } @@ -2244,7 +2244,7 @@ }, "end": { "line": 44, - "column": 28, + "column": 27, "program": "memberExpressionFromStaticContext.ets" } } @@ -2570,7 +2570,7 @@ }, "end": { "line": 49, - "column": 32, + "column": 31, "program": "memberExpressionFromStaticContext.ets" } } @@ -2583,7 +2583,7 @@ }, "end": { "line": 49, - "column": 32, + "column": 31, "program": "memberExpressionFromStaticContext.ets" } } diff --git a/ets2panda/test/compiler/ets/method-resolution-class-and-interface-in-signatures_5-expected.txt b/ets2panda/test/compiler/ets/method-resolution-class-and-interface-in-signatures_5-expected.txt index b70b285df181a5daebfc70f4cd65834f5a84dcb0..a7d0864e6dec5ef9b2b8456d3041f5884bdef6e3 100644 --- a/ets2panda/test/compiler/ets/method-resolution-class-and-interface-in-signatures_5-expected.txt +++ b/ets2panda/test/compiler/ets/method-resolution-class-and-interface-in-signatures_5-expected.txt @@ -44,8 +44,8 @@ "program": "method-resolution-class-and-interface-in-signatures_5.ets" }, "end": { - "line": 17, - "column": 10, + "line": 16, + "column": 15, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -93,8 +93,8 @@ "program": "method-resolution-class-and-interface-in-signatures_5.ets" }, "end": { - "line": 19, - "column": 6, + "line": 17, + "column": 15, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -303,7 +303,7 @@ }, "end": { "line": 20, - "column": 29, + "column": 18, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -316,7 +316,7 @@ }, "end": { "line": 20, - "column": 29, + "column": 18, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -353,7 +353,7 @@ }, "end": { "line": 20, - "column": 32, + "column": 31, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -366,7 +366,7 @@ }, "end": { "line": 20, - "column": 32, + "column": 31, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -415,7 +415,7 @@ }, "end": { "line": 20, - "column": 36, + "column": 34, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -428,7 +428,7 @@ }, "end": { "line": 20, - "column": 36, + "column": 34, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -629,7 +629,7 @@ }, "end": { "line": 21, - "column": 20, + "column": 18, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -642,7 +642,7 @@ }, "end": { "line": 21, - "column": 20, + "column": 18, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -993,7 +993,7 @@ }, "end": { "line": 23, - "column": 19, + "column": 18, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -1006,7 +1006,7 @@ }, "end": { "line": 23, - "column": 19, + "column": 18, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -1020,7 +1020,7 @@ }, "end": { "line": 23, - "column": 19, + "column": 18, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -1033,7 +1033,7 @@ }, "end": { "line": 23, - "column": 19, + "column": 18, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -1068,7 +1068,7 @@ }, "end": { "line": 23, - "column": 29, + "column": 27, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -1081,7 +1081,7 @@ }, "end": { "line": 23, - "column": 29, + "column": 27, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -1244,7 +1244,7 @@ }, "end": { "line": 26, - "column": 19, + "column": 18, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -1257,7 +1257,7 @@ }, "end": { "line": 26, - "column": 19, + "column": 18, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -1271,7 +1271,7 @@ }, "end": { "line": 26, - "column": 19, + "column": 18, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -1284,7 +1284,7 @@ }, "end": { "line": 26, - "column": 19, + "column": 18, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -1319,7 +1319,7 @@ }, "end": { "line": 26, - "column": 29, + "column": 27, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -1332,7 +1332,7 @@ }, "end": { "line": 26, - "column": 29, + "column": 27, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -1509,7 +1509,7 @@ }, "end": { "line": 29, - "column": 19, + "column": 18, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -1522,7 +1522,7 @@ }, "end": { "line": 29, - "column": 19, + "column": 18, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -1536,7 +1536,7 @@ }, "end": { "line": 29, - "column": 19, + "column": 18, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -1549,7 +1549,7 @@ }, "end": { "line": 29, - "column": 19, + "column": 18, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -1584,7 +1584,7 @@ }, "end": { "line": 29, - "column": 29, + "column": 27, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -1597,7 +1597,7 @@ }, "end": { "line": 29, - "column": 29, + "column": 27, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -1774,7 +1774,7 @@ }, "end": { "line": 32, - "column": 19, + "column": 18, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -1787,7 +1787,7 @@ }, "end": { "line": 32, - "column": 19, + "column": 18, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -1801,7 +1801,7 @@ }, "end": { "line": 32, - "column": 19, + "column": 18, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -1814,7 +1814,7 @@ }, "end": { "line": 32, - "column": 19, + "column": 18, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -1849,7 +1849,7 @@ }, "end": { "line": 32, - "column": 29, + "column": 27, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -1862,7 +1862,7 @@ }, "end": { "line": 32, - "column": 29, + "column": 27, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -2075,7 +2075,7 @@ }, "end": { "line": 37, - "column": 21, + "column": 19, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -2088,7 +2088,7 @@ }, "end": { "line": 37, - "column": 21, + "column": 19, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -2158,7 +2158,7 @@ }, "end": { "line": 37, - "column": 32, + "column": 31, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } @@ -2171,7 +2171,7 @@ }, "end": { "line": 37, - "column": 32, + "column": 31, "program": "method-resolution-class-and-interface-in-signatures_5.ets" } } diff --git a/ets2panda/test/compiler/ets/methodOverrideAsyncMethod-expected.txt b/ets2panda/test/compiler/ets/methodOverrideAsyncMethod-expected.txt index 206c21a66145dfee42c0bf2cd59bbef5999770fb..ba95703b1a50fa81217f019e070e61f4061ea037 100644 --- a/ets2panda/test/compiler/ets/methodOverrideAsyncMethod-expected.txt +++ b/ets2panda/test/compiler/ets/methodOverrideAsyncMethod-expected.txt @@ -198,7 +198,7 @@ }, "end": { "line": 17, - "column": 57, + "column": 55, "program": "methodOverrideAsyncMethod.ets" } } @@ -211,7 +211,7 @@ }, "end": { "line": 17, - "column": 57, + "column": 55, "program": "methodOverrideAsyncMethod.ets" } } @@ -734,7 +734,7 @@ }, "end": { "line": 25, - "column": 63, + "column": 61, "program": "methodOverrideAsyncMethod.ets" } } @@ -747,7 +747,7 @@ }, "end": { "line": 25, - "column": 63, + "column": 61, "program": "methodOverrideAsyncMethod.ets" } } diff --git a/ets2panda/test/compiler/ets/methodOverrideCovariantReturnType-expected.txt b/ets2panda/test/compiler/ets/methodOverrideCovariantReturnType-expected.txt index f0848c04faf478b110ae7baa8a504a839731a11c..b6fe78b2f8c0bfd9e517b905584a72fda0e2647d 100644 --- a/ets2panda/test/compiler/ets/methodOverrideCovariantReturnType-expected.txt +++ b/ets2panda/test/compiler/ets/methodOverrideCovariantReturnType-expected.txt @@ -102,7 +102,7 @@ }, "end": { "line": 17, - "column": 23, + "column": 22, "program": "methodOverrideCovariantReturnType.ets" } } @@ -115,7 +115,7 @@ }, "end": { "line": 17, - "column": 23, + "column": 22, "program": "methodOverrideCovariantReturnType.ets" } } @@ -442,8 +442,8 @@ "program": "methodOverrideCovariantReturnType.ets" }, "end": { - "line": 24, - "column": 6, + "line": 22, + "column": 2, "program": "methodOverrideCovariantReturnType.ets" } } @@ -497,7 +497,7 @@ }, "end": { "line": 24, - "column": 29, + "column": 18, "program": "methodOverrideCovariantReturnType.ets" } } @@ -510,7 +510,7 @@ }, "end": { "line": 24, - "column": 29, + "column": 18, "program": "methodOverrideCovariantReturnType.ets" } } @@ -547,7 +547,7 @@ }, "end": { "line": 24, - "column": 32, + "column": 31, "program": "methodOverrideCovariantReturnType.ets" } } @@ -560,7 +560,7 @@ }, "end": { "line": 24, - "column": 32, + "column": 31, "program": "methodOverrideCovariantReturnType.ets" } } @@ -658,7 +658,7 @@ }, "end": { "line": 25, - "column": 24, + "column": 22, "program": "methodOverrideCovariantReturnType.ets" } } @@ -671,7 +671,7 @@ }, "end": { "line": 25, - "column": 24, + "column": 22, "program": "methodOverrideCovariantReturnType.ets" } } @@ -1238,7 +1238,7 @@ }, "end": { "line": 37, - "column": 20, + "column": 18, "program": "methodOverrideCovariantReturnType.ets" } } @@ -1251,7 +1251,7 @@ }, "end": { "line": 37, - "column": 20, + "column": 18, "program": "methodOverrideCovariantReturnType.ets" } } @@ -1336,7 +1336,7 @@ }, "end": { "line": 38, - "column": 24, + "column": 22, "program": "methodOverrideCovariantReturnType.ets" } } @@ -1349,7 +1349,7 @@ }, "end": { "line": 38, - "column": 24, + "column": 22, "program": "methodOverrideCovariantReturnType.ets" } } @@ -1394,7 +1394,7 @@ }, "end": { "line": 39, - "column": 24, + "column": 22, "program": "methodOverrideCovariantReturnType.ets" } } @@ -1407,7 +1407,7 @@ }, "end": { "line": 39, - "column": 24, + "column": 22, "program": "methodOverrideCovariantReturnType.ets" } } @@ -1457,7 +1457,7 @@ }, "end": { "line": 39, - "column": 31, + "column": 30, "program": "methodOverrideCovariantReturnType.ets" } } @@ -1470,7 +1470,7 @@ }, "end": { "line": 39, - "column": 31, + "column": 30, "program": "methodOverrideCovariantReturnType.ets" } } @@ -1716,7 +1716,7 @@ }, "end": { "line": 42, - "column": 21, + "column": 19, "program": "methodOverrideCovariantReturnType.ets" } } @@ -1729,7 +1729,7 @@ }, "end": { "line": 42, - "column": 21, + "column": 19, "program": "methodOverrideCovariantReturnType.ets" } } @@ -1774,7 +1774,7 @@ }, "end": { "line": 43, - "column": 24, + "column": 22, "program": "methodOverrideCovariantReturnType.ets" } } @@ -1787,7 +1787,7 @@ }, "end": { "line": 43, - "column": 24, + "column": 22, "program": "methodOverrideCovariantReturnType.ets" } } @@ -1837,7 +1837,7 @@ }, "end": { "line": 43, - "column": 31, + "column": 30, "program": "methodOverrideCovariantReturnType.ets" } } @@ -1850,7 +1850,7 @@ }, "end": { "line": 43, - "column": 31, + "column": 30, "program": "methodOverrideCovariantReturnType.ets" } } diff --git a/ets2panda/test/compiler/ets/methodOverrideDifferentSignature-expected.txt b/ets2panda/test/compiler/ets/methodOverrideDifferentSignature-expected.txt index 5ff1567cc22b497fd6b6ee232643fed850d56718..02bf5b60ba3f06d97f755ca0d783edb38842c253 100644 --- a/ets2panda/test/compiler/ets/methodOverrideDifferentSignature-expected.txt +++ b/ets2panda/test/compiler/ets/methodOverrideDifferentSignature-expected.txt @@ -150,8 +150,8 @@ "program": "methodOverrideDifferentSignature.ets" }, "end": { - "line": 20, - "column": 9, + "line": 18, + "column": 2, "program": "methodOverrideDifferentSignature.ets" } } @@ -209,7 +209,7 @@ }, "end": { "line": 20, - "column": 32, + "column": 30, "program": "methodOverrideDifferentSignature.ets" } } @@ -222,7 +222,7 @@ }, "end": { "line": 20, - "column": 32, + "column": 30, "program": "methodOverrideDifferentSignature.ets" } } @@ -972,7 +972,7 @@ }, "end": { "line": 31, - "column": 20, + "column": 18, "program": "methodOverrideDifferentSignature.ets" } } @@ -985,7 +985,7 @@ }, "end": { "line": 31, - "column": 20, + "column": 18, "program": "methodOverrideDifferentSignature.ets" } } diff --git a/ets2panda/test/compiler/ets/methodOverrideWithoutModifier-expected.txt b/ets2panda/test/compiler/ets/methodOverrideWithoutModifier-expected.txt index b0e01bfbf17c390c2353ced75ecce30bf12f7c2a..3542cd7533e0b6cbe3dc89ed63b5b61c9ea716a5 100644 --- a/ets2panda/test/compiler/ets/methodOverrideWithoutModifier-expected.txt +++ b/ets2panda/test/compiler/ets/methodOverrideWithoutModifier-expected.txt @@ -326,7 +326,7 @@ }, "end": { "line": 22, - "column": 20, + "column": 18, "program": "methodOverrideWithoutModifier.ets" } } @@ -339,7 +339,7 @@ }, "end": { "line": 22, - "column": 20, + "column": 18, "program": "methodOverrideWithoutModifier.ets" } } diff --git a/ets2panda/test/compiler/ets/multipleMethodOverride-expected.txt b/ets2panda/test/compiler/ets/multipleMethodOverride-expected.txt index 89d9bd12269a401aa00ec6f8046cdbc796829849..3aab31ccb78105e759c8a96d2619cb79698bfa87 100644 --- a/ets2panda/test/compiler/ets/multipleMethodOverride-expected.txt +++ b/ets2panda/test/compiler/ets/multipleMethodOverride-expected.txt @@ -326,7 +326,7 @@ }, "end": { "line": 22, - "column": 19, + "column": 18, "program": "multipleMethodOverride.ets" } } @@ -339,7 +339,7 @@ }, "end": { "line": 22, - "column": 19, + "column": 18, "program": "multipleMethodOverride.ets" } } @@ -648,7 +648,7 @@ }, "end": { "line": 29, - "column": 19, + "column": 18, "program": "multipleMethodOverride.ets" } } @@ -661,7 +661,7 @@ }, "end": { "line": 29, - "column": 19, + "column": 18, "program": "multipleMethodOverride.ets" } } @@ -849,7 +849,7 @@ }, "end": { "line": 33, - "column": 20, + "column": 18, "program": "multipleMethodOverride.ets" } } @@ -862,7 +862,7 @@ }, "end": { "line": 33, - "column": 20, + "column": 18, "program": "multipleMethodOverride.ets" } } diff --git a/ets2panda/test/compiler/ets/n_nullableTypeInArgNotRef-expected.txt b/ets2panda/test/compiler/ets/n_nullableTypeInArgNotRef-expected.txt index 54d1502833e81a91d7314dd2307fde34807124ba..6fe61e5e2f4c2131ad90e23beaad29c43839a0d3 100644 --- a/ets2panda/test/compiler/ets/n_nullableTypeInArgNotRef-expected.txt +++ b/ets2panda/test/compiler/ets/n_nullableTypeInArgNotRef-expected.txt @@ -631,7 +631,7 @@ }, "end": { "line": 21, - "column": 37, + "column": 35, "program": "n_nullableTypeInArgNotRef.ets" } } @@ -644,7 +644,7 @@ }, "end": { "line": 21, - "column": 37, + "column": 35, "program": "n_nullableTypeInArgNotRef.ets" } } diff --git a/ets2panda/test/compiler/ets/native_toplevel-expected.txt b/ets2panda/test/compiler/ets/native_toplevel-expected.txt index 58147c8f0afc348e7c4961208edd330a10e74cf7..9c847e756b69fe995607e8ff5d84cabec36801a3 100644 --- a/ets2panda/test/compiler/ets/native_toplevel-expected.txt +++ b/ets2panda/test/compiler/ets/native_toplevel-expected.txt @@ -319,7 +319,7 @@ }, "end": { "line": 16, - "column": 35, + "column": 34, "program": "native_toplevel.ets" } } @@ -332,7 +332,7 @@ }, "end": { "line": 16, - "column": 35, + "column": 34, "program": "native_toplevel.ets" } } @@ -346,7 +346,7 @@ }, "end": { "line": 16, - "column": 35, + "column": 34, "program": "native_toplevel.ets" } } @@ -359,7 +359,7 @@ }, "end": { "line": 16, - "column": 35, + "column": 34, "program": "native_toplevel.ets" } } @@ -394,7 +394,7 @@ }, "end": { "line": 16, - "column": 44, + "column": 43, "program": "native_toplevel.ets" } } @@ -407,7 +407,7 @@ }, "end": { "line": 16, - "column": 44, + "column": 43, "program": "native_toplevel.ets" } } diff --git a/ets2panda/test/compiler/ets/null_coalescing_generic_1-expected.txt b/ets2panda/test/compiler/ets/null_coalescing_generic_1-expected.txt index c03de913a8c4d99593313313e31701477efa04fb..a353fa605b5ebac89918d732a07a671cc87029b8 100644 --- a/ets2panda/test/compiler/ets/null_coalescing_generic_1-expected.txt +++ b/ets2panda/test/compiler/ets/null_coalescing_generic_1-expected.txt @@ -477,7 +477,7 @@ }, "end": { "line": 17, - "column": 14, + "column": 12, "program": "null_coalescing_generic_1.ets" } } @@ -490,7 +490,7 @@ }, "end": { "line": 17, - "column": 14, + "column": 12, "program": "null_coalescing_generic_1.ets" } } @@ -596,7 +596,7 @@ }, "end": { "line": 18, - "column": 24, + "column": 22, "program": "null_coalescing_generic_1.ets" } } @@ -609,7 +609,7 @@ }, "end": { "line": 18, - "column": 24, + "column": 22, "program": "null_coalescing_generic_1.ets" } } @@ -699,8 +699,8 @@ "program": "null_coalescing_generic_1.ets" }, "end": { - "line": 19, - "column": 2, + "line": 18, + "column": 40, "program": "null_coalescing_generic_1.ets" } } @@ -712,8 +712,8 @@ "program": "null_coalescing_generic_1.ets" }, "end": { - "line": 19, - "column": 2, + "line": 18, + "column": 40, "program": "null_coalescing_generic_1.ets" } } @@ -725,8 +725,8 @@ "program": "null_coalescing_generic_1.ets" }, "end": { - "line": 19, - "column": 2, + "line": 18, + "column": 40, "program": "null_coalescing_generic_1.ets" } } @@ -739,8 +739,8 @@ "program": "null_coalescing_generic_1.ets" }, "end": { - "line": 19, - "column": 2, + "line": 18, + "column": 40, "program": "null_coalescing_generic_1.ets" } } @@ -752,8 +752,8 @@ "program": "null_coalescing_generic_1.ets" }, "end": { - "line": 19, - "column": 2, + "line": 18, + "column": 40, "program": "null_coalescing_generic_1.ets" } } @@ -788,7 +788,7 @@ }, "end": { "line": 19, - "column": 7, + "column": 5, "program": "null_coalescing_generic_1.ets" } } @@ -801,7 +801,7 @@ }, "end": { "line": 19, - "column": 7, + "column": 5, "program": "null_coalescing_generic_1.ets" } } @@ -857,7 +857,7 @@ }, "end": { "line": 16, - "column": 35, + "column": 34, "program": "null_coalescing_generic_1.ets" } } @@ -870,7 +870,7 @@ }, "end": { "line": 16, - "column": 35, + "column": 34, "program": "null_coalescing_generic_1.ets" } } @@ -1174,7 +1174,7 @@ }, "end": { "line": 24, - "column": 37, + "column": 36, "program": "null_coalescing_generic_1.ets" } } @@ -1187,7 +1187,7 @@ }, "end": { "line": 24, - "column": 37, + "column": 36, "program": "null_coalescing_generic_1.ets" } } @@ -1201,7 +1201,7 @@ }, "end": { "line": 24, - "column": 37, + "column": 36, "program": "null_coalescing_generic_1.ets" } } @@ -1214,7 +1214,7 @@ }, "end": { "line": 24, - "column": 37, + "column": 36, "program": "null_coalescing_generic_1.ets" } } @@ -1286,7 +1286,7 @@ }, "end": { "line": 24, - "column": 28, + "column": 27, "program": "null_coalescing_generic_1.ets" } } @@ -1299,7 +1299,7 @@ }, "end": { "line": 24, - "column": 28, + "column": 27, "program": "null_coalescing_generic_1.ets" } } @@ -1371,7 +1371,7 @@ }, "end": { "line": 25, - "column": 21, + "column": 19, "program": "null_coalescing_generic_1.ets" } } @@ -1384,7 +1384,7 @@ }, "end": { "line": 25, - "column": 21, + "column": 19, "program": "null_coalescing_generic_1.ets" } } @@ -1434,7 +1434,7 @@ }, "end": { "line": 25, - "column": 28, + "column": 27, "program": "null_coalescing_generic_1.ets" } } @@ -1447,7 +1447,7 @@ }, "end": { "line": 25, - "column": 28, + "column": 27, "program": "null_coalescing_generic_1.ets" } } @@ -1531,7 +1531,7 @@ }, "end": { "line": 26, - "column": 24, + "column": 22, "program": "null_coalescing_generic_1.ets" } } @@ -1544,7 +1544,7 @@ }, "end": { "line": 26, - "column": 24, + "column": 22, "program": "null_coalescing_generic_1.ets" } } @@ -1779,7 +1779,7 @@ }, "end": { "line": 29, - "column": 35, + "column": 34, "program": "null_coalescing_generic_1.ets" } } @@ -1792,7 +1792,7 @@ }, "end": { "line": 29, - "column": 35, + "column": 34, "program": "null_coalescing_generic_1.ets" } } @@ -1806,7 +1806,7 @@ }, "end": { "line": 29, - "column": 35, + "column": 34, "program": "null_coalescing_generic_1.ets" } } @@ -1819,7 +1819,7 @@ }, "end": { "line": 29, - "column": 35, + "column": 34, "program": "null_coalescing_generic_1.ets" } } @@ -1854,7 +1854,7 @@ }, "end": { "line": 29, - "column": 47, + "column": 45, "program": "null_coalescing_generic_1.ets" } } @@ -1867,7 +1867,7 @@ }, "end": { "line": 29, - "column": 47, + "column": 45, "program": "null_coalescing_generic_1.ets" } } @@ -1923,7 +1923,7 @@ }, "end": { "line": 29, - "column": 28, + "column": 27, "program": "null_coalescing_generic_1.ets" } } @@ -1936,7 +1936,7 @@ }, "end": { "line": 29, - "column": 28, + "column": 27, "program": "null_coalescing_generic_1.ets" } } @@ -2008,7 +2008,7 @@ }, "end": { "line": 30, - "column": 23, + "column": 21, "program": "null_coalescing_generic_1.ets" } } @@ -2021,7 +2021,7 @@ }, "end": { "line": 30, - "column": 23, + "column": 21, "program": "null_coalescing_generic_1.ets" } } diff --git a/ets2panda/test/compiler/ets/nullableTuple-expected.txt b/ets2panda/test/compiler/ets/nullableTuple-expected.txt index b8e7ca99db58d69397c9dc39d699536398a8df5f..38ba719834b50c4fd351903397b6d5b3a977226f 100644 --- a/ets2panda/test/compiler/ets/nullableTuple-expected.txt +++ b/ets2panda/test/compiler/ets/nullableTuple-expected.txt @@ -52,7 +52,7 @@ }, "end": { "line": 16, - "column": 34, + "column": 33, "program": "nullableTuple.ets" } } @@ -65,7 +65,7 @@ }, "end": { "line": 16, - "column": 34, + "column": 33, "program": "nullableTuple.ets" } } @@ -99,7 +99,7 @@ }, "end": { "line": 16, - "column": 42, + "column": 41, "program": "nullableTuple.ets" } } @@ -112,7 +112,7 @@ }, "end": { "line": 16, - "column": 42, + "column": 41, "program": "nullableTuple.ets" } } @@ -195,7 +195,7 @@ }, "end": { "line": 17, - "column": 38, + "column": 37, "program": "nullableTuple.ets" } } @@ -208,7 +208,7 @@ }, "end": { "line": 17, - "column": 38, + "column": 37, "program": "nullableTuple.ets" } } @@ -488,7 +488,7 @@ }, "end": { "line": 20, - "column": 30, + "column": 28, "program": "nullableTuple.ets" } } @@ -501,7 +501,7 @@ }, "end": { "line": 20, - "column": 30, + "column": 28, "program": "nullableTuple.ets" } } @@ -634,7 +634,7 @@ }, "end": { "line": 21, - "column": 24, + "column": 22, "program": "nullableTuple.ets" } } @@ -647,7 +647,7 @@ }, "end": { "line": 21, - "column": 24, + "column": 22, "program": "nullableTuple.ets" } } diff --git a/ets2panda/test/compiler/ets/nullable_type_in_arithmeticdiv-expected.txt b/ets2panda/test/compiler/ets/nullable_type_in_arithmeticdiv-expected.txt index 8ba128c655796205b0933d2b4cbf456b94bdc96f..b933d7cb695ff8700287a273b317930650257841 100644 --- a/ets2panda/test/compiler/ets/nullable_type_in_arithmeticdiv-expected.txt +++ b/ets2panda/test/compiler/ets/nullable_type_in_arithmeticdiv-expected.txt @@ -222,7 +222,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 15, "program": "nullable_type_in_arithmeticdiv.ets" } } @@ -235,7 +235,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 15, "program": "nullable_type_in_arithmeticdiv.ets" } } @@ -367,7 +367,7 @@ }, "end": { "line": 18, - "column": 19, + "column": 18, "program": "nullable_type_in_arithmeticdiv.ets" } } @@ -380,7 +380,7 @@ }, "end": { "line": 18, - "column": 19, + "column": 18, "program": "nullable_type_in_arithmeticdiv.ets" } } diff --git a/ets2panda/test/compiler/ets/nullable_type_in_arithmeticplus-expected.txt b/ets2panda/test/compiler/ets/nullable_type_in_arithmeticplus-expected.txt index 44d8c319bc5713a56384c20423505df4d911d024..dc6a8bf4b31848a545261159f714309688428c65 100644 --- a/ets2panda/test/compiler/ets/nullable_type_in_arithmeticplus-expected.txt +++ b/ets2panda/test/compiler/ets/nullable_type_in_arithmeticplus-expected.txt @@ -222,7 +222,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 15, "program": "nullable_type_in_arithmeticplus.ets" } } @@ -235,7 +235,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 15, "program": "nullable_type_in_arithmeticplus.ets" } } @@ -367,7 +367,7 @@ }, "end": { "line": 18, - "column": 19, + "column": 18, "program": "nullable_type_in_arithmeticplus.ets" } } @@ -380,7 +380,7 @@ }, "end": { "line": 18, - "column": 19, + "column": 18, "program": "nullable_type_in_arithmeticplus.ets" } } diff --git a/ets2panda/test/compiler/ets/objectLiteralInterface-expected.txt b/ets2panda/test/compiler/ets/objectLiteralInterface-expected.txt index f8825ab52efa3e2d0ae94c6df0cdfb4ba4a6d617..87538967ebb94041cc45e68021041974c841d63c 100644 --- a/ets2panda/test/compiler/ets/objectLiteralInterface-expected.txt +++ b/ets2panda/test/compiler/ets/objectLiteralInterface-expected.txt @@ -44,8 +44,8 @@ "program": "objectLiteralInterface.ets" }, "end": { - "line": 18, - "column": 4, + "line": 16, + "column": 15, "program": "objectLiteralInterface.ets" } } @@ -404,7 +404,7 @@ }, "end": { "line": 18, - "column": 11, + "column": 9, "program": "objectLiteralInterface.ets" } } @@ -417,7 +417,7 @@ }, "end": { "line": 18, - "column": 11, + "column": 9, "program": "objectLiteralInterface.ets" } } diff --git a/ets2panda/test/compiler/ets/objectLiteralReadonlyKey-expected.txt b/ets2panda/test/compiler/ets/objectLiteralReadonlyKey-expected.txt index c6b01e8dda0efed4e8c3a6de37d34887bc6ce4f4..7542430a1ad19191a625e750e18de14df46b28c3 100644 --- a/ets2panda/test/compiler/ets/objectLiteralReadonlyKey-expected.txt +++ b/ets2panda/test/compiler/ets/objectLiteralReadonlyKey-expected.txt @@ -618,7 +618,7 @@ }, "end": { "line": 20, - "column": 11, + "column": 9, "program": "objectLiteralReadonlyKey.ets" } } @@ -631,7 +631,7 @@ }, "end": { "line": 20, - "column": 11, + "column": 9, "program": "objectLiteralReadonlyKey.ets" } } diff --git a/ets2panda/test/compiler/ets/overload_with_generics-expected.txt b/ets2panda/test/compiler/ets/overload_with_generics-expected.txt index d7052bb0488568412705c9079f24598ac0853916..b9f327529ea6724f150735e69ad878a8b744039f 100644 --- a/ets2panda/test/compiler/ets/overload_with_generics-expected.txt +++ b/ets2panda/test/compiler/ets/overload_with_generics-expected.txt @@ -107,7 +107,7 @@ }, "end": { "line": 17, - "column": 35, + "column": 34, "program": "overload_with_generics.ets" } } @@ -120,7 +120,7 @@ }, "end": { "line": 17, - "column": 35, + "column": 34, "program": "overload_with_generics.ets" } } @@ -134,7 +134,7 @@ }, "end": { "line": 17, - "column": 35, + "column": 34, "program": "overload_with_generics.ets" } } @@ -147,7 +147,7 @@ }, "end": { "line": 17, - "column": 35, + "column": 34, "program": "overload_with_generics.ets" } } @@ -343,7 +343,7 @@ }, "end": { "line": 18, - "column": 40, + "column": 39, "program": "overload_with_generics.ets" } } @@ -356,7 +356,7 @@ }, "end": { "line": 18, - "column": 40, + "column": 39, "program": "overload_with_generics.ets" } } @@ -370,7 +370,7 @@ }, "end": { "line": 18, - "column": 40, + "column": 39, "program": "overload_with_generics.ets" } } @@ -383,7 +383,7 @@ }, "end": { "line": 18, - "column": 40, + "column": 39, "program": "overload_with_generics.ets" } } @@ -422,7 +422,7 @@ }, "end": { "line": 18, - "column": 50, + "column": 49, "program": "overload_with_generics.ets" } } @@ -435,7 +435,7 @@ }, "end": { "line": 18, - "column": 50, + "column": 49, "program": "overload_with_generics.ets" } } @@ -449,7 +449,7 @@ }, "end": { "line": 18, - "column": 50, + "column": 49, "program": "overload_with_generics.ets" } } @@ -462,7 +462,7 @@ }, "end": { "line": 18, - "column": 50, + "column": 49, "program": "overload_with_generics.ets" } } diff --git a/ets2panda/test/compiler/ets/override-expected.txt b/ets2panda/test/compiler/ets/override-expected.txt index e10847ed61a37d7d20542ba4f32265b712f88507..c6bb156134729287207836534e371f99130ea7d8 100644 --- a/ets2panda/test/compiler/ets/override-expected.txt +++ b/ets2panda/test/compiler/ets/override-expected.txt @@ -84,7 +84,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 15, "program": "override.ets" } } @@ -97,7 +97,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 15, "program": "override.ets" } } @@ -110,7 +110,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 15, "program": "override.ets" } } @@ -123,7 +123,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 15, "program": "override.ets" } } @@ -221,7 +221,7 @@ }, "end": { "line": 18, - "column": 17, + "column": 16, "program": "override.ets" } } @@ -234,7 +234,7 @@ }, "end": { "line": 18, - "column": 17, + "column": 16, "program": "override.ets" } } @@ -247,7 +247,7 @@ }, "end": { "line": 18, - "column": 17, + "column": 16, "program": "override.ets" } } @@ -260,7 +260,7 @@ }, "end": { "line": 18, - "column": 17, + "column": 16, "program": "override.ets" } } @@ -358,7 +358,7 @@ }, "end": { "line": 19, - "column": 17, + "column": 16, "program": "override.ets" } } @@ -371,7 +371,7 @@ }, "end": { "line": 19, - "column": 17, + "column": 16, "program": "override.ets" } } @@ -384,7 +384,7 @@ }, "end": { "line": 19, - "column": 17, + "column": 16, "program": "override.ets" } } @@ -397,7 +397,7 @@ }, "end": { "line": 19, - "column": 17, + "column": 16, "program": "override.ets" } } @@ -519,7 +519,7 @@ }, "end": { "line": 20, - "column": 28, + "column": 27, "program": "override.ets" } } @@ -532,7 +532,7 @@ }, "end": { "line": 20, - "column": 28, + "column": 27, "program": "override.ets" } } @@ -559,7 +559,7 @@ }, "end": { "line": 20, - "column": 29, + "column": 28, "program": "override.ets" } } @@ -572,7 +572,7 @@ }, "end": { "line": 20, - "column": 29, + "column": 28, "program": "override.ets" } } @@ -585,7 +585,7 @@ }, "end": { "line": 20, - "column": 29, + "column": 28, "program": "override.ets" } } @@ -598,7 +598,7 @@ }, "end": { "line": 20, - "column": 29, + "column": 28, "program": "override.ets" } } @@ -657,8 +657,8 @@ "program": "override.ets" }, "end": { - "line": 23, - "column": 6, + "line": 21, + "column": 2, "program": "override.ets" } } @@ -716,7 +716,7 @@ }, "end": { "line": 23, - "column": 23, + "column": 21, "program": "override.ets" } } @@ -729,7 +729,7 @@ }, "end": { "line": 23, - "column": 23, + "column": 21, "program": "override.ets" } } @@ -827,7 +827,7 @@ }, "end": { "line": 24, - "column": 26, + "column": 24, "program": "override.ets" } } @@ -840,7 +840,7 @@ }, "end": { "line": 24, - "column": 26, + "column": 24, "program": "override.ets" } } @@ -1036,7 +1036,7 @@ }, "end": { "line": 25, - "column": 37, + "column": 36, "program": "override.ets" } } @@ -1049,7 +1049,7 @@ }, "end": { "line": 25, - "column": 37, + "column": 36, "program": "override.ets" } } @@ -1076,7 +1076,7 @@ }, "end": { "line": 25, - "column": 39, + "column": 37, "program": "override.ets" } } @@ -1089,7 +1089,7 @@ }, "end": { "line": 25, - "column": 39, + "column": 37, "program": "override.ets" } } @@ -1133,7 +1133,7 @@ }, "end": { "line": 25, - "column": 59, + "column": 58, "program": "override.ets" } } @@ -1146,7 +1146,7 @@ }, "end": { "line": 25, - "column": 59, + "column": 58, "program": "override.ets" } } @@ -1357,7 +1357,7 @@ }, "end": { "line": 26, - "column": 36, + "column": 34, "program": "override.ets" } } @@ -1370,7 +1370,7 @@ }, "end": { "line": 26, - "column": 36, + "column": 34, "program": "override.ets" } } @@ -1583,7 +1583,7 @@ }, "end": { "line": 27, - "column": 37, + "column": 36, "program": "override.ets" } } @@ -1596,7 +1596,7 @@ }, "end": { "line": 27, - "column": 37, + "column": 36, "program": "override.ets" } } @@ -1623,7 +1623,7 @@ }, "end": { "line": 27, - "column": 39, + "column": 37, "program": "override.ets" } } @@ -1636,7 +1636,7 @@ }, "end": { "line": 27, - "column": 39, + "column": 37, "program": "override.ets" } } diff --git a/ets2panda/test/compiler/ets/override10-expected.txt b/ets2panda/test/compiler/ets/override10-expected.txt index 9d7a82d6d2a8789e2bb082084af25106f9ebe9bc..f71899b72ae243d19af2f2084c03ad4109905e04 100644 --- a/ets2panda/test/compiler/ets/override10-expected.txt +++ b/ets2panda/test/compiler/ets/override10-expected.txt @@ -480,7 +480,7 @@ }, "end": { "line": 20, - "column": 26, + "column": 25, "program": "override10.ets" } } @@ -493,7 +493,7 @@ }, "end": { "line": 20, - "column": 26, + "column": 25, "program": "override10.ets" } } @@ -520,7 +520,7 @@ }, "end": { "line": 20, - "column": 28, + "column": 26, "program": "override10.ets" } } @@ -533,7 +533,7 @@ }, "end": { "line": 20, - "column": 28, + "column": 26, "program": "override10.ets" } } diff --git a/ets2panda/test/compiler/ets/override12-expected.txt b/ets2panda/test/compiler/ets/override12-expected.txt index 35d00ec6c99a99c7bef3597f65754c15b1c25339..8fa610e91cf4860114b6b2d7339be92df0bcf9a2 100644 --- a/ets2panda/test/compiler/ets/override12-expected.txt +++ b/ets2panda/test/compiler/ets/override12-expected.txt @@ -156,7 +156,7 @@ }, "end": { "line": 17, - "column": 11, + "column": 10, "program": "override12.ets" } } @@ -169,7 +169,7 @@ }, "end": { "line": 17, - "column": 11, + "column": 10, "program": "override12.ets" } } @@ -183,7 +183,7 @@ }, "end": { "line": 17, - "column": 11, + "column": 10, "program": "override12.ets" } } @@ -196,7 +196,7 @@ }, "end": { "line": 17, - "column": 11, + "column": 10, "program": "override12.ets" } } @@ -231,7 +231,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 14, "program": "override12.ets" } } @@ -244,7 +244,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 14, "program": "override12.ets" } } @@ -422,7 +422,7 @@ }, "end": { "line": 18, - "column": 12, + "column": 11, "program": "override12.ets" } } @@ -435,7 +435,7 @@ }, "end": { "line": 18, - "column": 12, + "column": 11, "program": "override12.ets" } } @@ -449,7 +449,7 @@ }, "end": { "line": 18, - "column": 12, + "column": 11, "program": "override12.ets" } } @@ -462,7 +462,7 @@ }, "end": { "line": 18, - "column": 12, + "column": 11, "program": "override12.ets" } } @@ -497,7 +497,7 @@ }, "end": { "line": 18, - "column": 17, + "column": 15, "program": "override12.ets" } } @@ -510,7 +510,7 @@ }, "end": { "line": 18, - "column": 17, + "column": 15, "program": "override12.ets" } } @@ -810,7 +810,7 @@ }, "end": { "line": 21, - "column": 26, + "column": 25, "program": "override12.ets" } } @@ -823,7 +823,7 @@ }, "end": { "line": 21, - "column": 26, + "column": 25, "program": "override12.ets" } } @@ -850,7 +850,7 @@ }, "end": { "line": 21, - "column": 28, + "column": 26, "program": "override12.ets" } } @@ -863,7 +863,7 @@ }, "end": { "line": 21, - "column": 28, + "column": 26, "program": "override12.ets" } } @@ -953,7 +953,7 @@ }, "end": { "line": 22, - "column": 25, + "column": 24, "program": "override12.ets" } } @@ -966,7 +966,7 @@ }, "end": { "line": 22, - "column": 25, + "column": 24, "program": "override12.ets" } } @@ -980,7 +980,7 @@ }, "end": { "line": 22, - "column": 25, + "column": 24, "program": "override12.ets" } } @@ -993,7 +993,7 @@ }, "end": { "line": 22, - "column": 25, + "column": 24, "program": "override12.ets" } } @@ -1028,7 +1028,7 @@ }, "end": { "line": 22, - "column": 35, + "column": 33, "program": "override12.ets" } } @@ -1041,7 +1041,7 @@ }, "end": { "line": 22, - "column": 35, + "column": 33, "program": "override12.ets" } } @@ -1219,7 +1219,7 @@ }, "end": { "line": 25, - "column": 26, + "column": 25, "program": "override12.ets" } } @@ -1232,7 +1232,7 @@ }, "end": { "line": 25, - "column": 26, + "column": 25, "program": "override12.ets" } } @@ -1246,7 +1246,7 @@ }, "end": { "line": 25, - "column": 26, + "column": 25, "program": "override12.ets" } } @@ -1259,7 +1259,7 @@ }, "end": { "line": 25, - "column": 26, + "column": 25, "program": "override12.ets" } } @@ -1294,7 +1294,7 @@ }, "end": { "line": 25, - "column": 36, + "column": 34, "program": "override12.ets" } } @@ -1307,7 +1307,7 @@ }, "end": { "line": 25, - "column": 36, + "column": 34, "program": "override12.ets" } } diff --git a/ets2panda/test/compiler/ets/override13-expected.txt b/ets2panda/test/compiler/ets/override13-expected.txt index f38d28582b64e2eb25c336f5710ef72459d64f47..41aed5b46950d4e21f76c7128501c5c4db614d0d 100644 --- a/ets2panda/test/compiler/ets/override13-expected.txt +++ b/ets2panda/test/compiler/ets/override13-expected.txt @@ -107,7 +107,7 @@ }, "end": { "line": 17, - "column": 14, + "column": 13, "program": "override13.ets" } } @@ -120,7 +120,7 @@ }, "end": { "line": 17, - "column": 14, + "column": 13, "program": "override13.ets" } } @@ -134,7 +134,7 @@ }, "end": { "line": 17, - "column": 14, + "column": 13, "program": "override13.ets" } } @@ -147,7 +147,7 @@ }, "end": { "line": 17, - "column": 14, + "column": 13, "program": "override13.ets" } } @@ -182,7 +182,7 @@ }, "end": { "line": 17, - "column": 19, + "column": 17, "program": "override13.ets" } } @@ -195,7 +195,7 @@ }, "end": { "line": 17, - "column": 19, + "column": 17, "program": "override13.ets" } } @@ -520,7 +520,7 @@ }, "end": { "line": 20, - "column": 20, + "column": 18, "program": "override13.ets" } } @@ -533,7 +533,7 @@ }, "end": { "line": 20, - "column": 20, + "column": 18, "program": "override13.ets" } } @@ -623,7 +623,7 @@ }, "end": { "line": 21, - "column": 33, + "column": 32, "program": "override13.ets" } } @@ -636,7 +636,7 @@ }, "end": { "line": 21, - "column": 33, + "column": 32, "program": "override13.ets" } } @@ -650,7 +650,7 @@ }, "end": { "line": 21, - "column": 33, + "column": 32, "program": "override13.ets" } } @@ -663,7 +663,7 @@ }, "end": { "line": 21, - "column": 33, + "column": 32, "program": "override13.ets" } } @@ -698,7 +698,7 @@ }, "end": { "line": 21, - "column": 43, + "column": 41, "program": "override13.ets" } } @@ -711,7 +711,7 @@ }, "end": { "line": 21, - "column": 43, + "column": 41, "program": "override13.ets" } } diff --git a/ets2panda/test/compiler/ets/override16-expected.txt b/ets2panda/test/compiler/ets/override16-expected.txt index cb2c09ed0f08bc6fe92220dcfcb6c5aa1ec2d788..28e49dc4fdeb1848bcb35189a761e41d3f494967 100644 --- a/ets2panda/test/compiler/ets/override16-expected.txt +++ b/ets2panda/test/compiler/ets/override16-expected.txt @@ -358,7 +358,7 @@ }, "end": { "line": 22, - "column": 20, + "column": 18, "program": "override16.ets" } } @@ -371,7 +371,7 @@ }, "end": { "line": 22, - "column": 20, + "column": 18, "program": "override16.ets" } } diff --git a/ets2panda/test/compiler/ets/override17-expected.txt b/ets2panda/test/compiler/ets/override17-expected.txt index 004feec041d312139b76f971cf45f07a1a0b6061..6cfdf1562383615de6eeb872726272571613421d 100644 --- a/ets2panda/test/compiler/ets/override17-expected.txt +++ b/ets2panda/test/compiler/ets/override17-expected.txt @@ -358,7 +358,7 @@ }, "end": { "line": 22, - "column": 20, + "column": 18, "program": "override17.ets" } } @@ -371,7 +371,7 @@ }, "end": { "line": 22, - "column": 20, + "column": 18, "program": "override17.ets" } } diff --git a/ets2panda/test/compiler/ets/override19-expected.txt b/ets2panda/test/compiler/ets/override19-expected.txt index 41840f86e8559f22e4b48f3c4dce72e7de859364..39b8700737d4dcb04407e5a1f98c311e255d4ff1 100644 --- a/ets2panda/test/compiler/ets/override19-expected.txt +++ b/ets2panda/test/compiler/ets/override19-expected.txt @@ -102,7 +102,7 @@ }, "end": { "line": 17, - "column": 34, + "column": 32, "program": "override19.ets" } } @@ -115,7 +115,7 @@ }, "end": { "line": 17, - "column": 34, + "column": 32, "program": "override19.ets" } } @@ -543,7 +543,7 @@ }, "end": { "line": 25, - "column": 22, + "column": 21, "program": "override19.ets" } } @@ -556,7 +556,7 @@ }, "end": { "line": 25, - "column": 22, + "column": 21, "program": "override19.ets" } } @@ -928,7 +928,7 @@ }, "end": { "line": 29, - "column": 18, + "column": 16, "program": "override19.ets" } } @@ -941,7 +941,7 @@ }, "end": { "line": 29, - "column": 18, + "column": 16, "program": "override19.ets" } } @@ -991,7 +991,7 @@ }, "end": { "line": 29, - "column": 28, + "column": 27, "program": "override19.ets" } } @@ -1004,7 +1004,7 @@ }, "end": { "line": 29, - "column": 28, + "column": 27, "program": "override19.ets" } } diff --git a/ets2panda/test/compiler/ets/override2-expected.txt b/ets2panda/test/compiler/ets/override2-expected.txt index fb39e96cddac7d3bdcc3cd15c58ab7429a2104ba..a1238b2ade58eca640fa5a56f8e180e5ad9f9d72 100644 --- a/ets2panda/test/compiler/ets/override2-expected.txt +++ b/ets2panda/test/compiler/ets/override2-expected.txt @@ -150,8 +150,8 @@ "program": "override2.ets" }, "end": { - "line": 20, - "column": 6, + "line": 18, + "column": 2, "program": "override2.ets" } } @@ -513,7 +513,7 @@ }, "end": { "line": 24, - "column": 38, + "column": 27, "program": "override2.ets" } } @@ -526,7 +526,7 @@ }, "end": { "line": 24, - "column": 38, + "column": 27, "program": "override2.ets" } } @@ -563,7 +563,7 @@ }, "end": { "line": 24, - "column": 42, + "column": 40, "program": "override2.ets" } } @@ -576,7 +576,7 @@ }, "end": { "line": 24, - "column": 42, + "column": 40, "program": "override2.ets" } } diff --git a/ets2panda/test/compiler/ets/override4-expected.txt b/ets2panda/test/compiler/ets/override4-expected.txt index f967d535dd291aea0e4e6cafc1c1117f166a4279..15db789e8ef0b13d797a3a628d17295b33349092 100644 --- a/ets2panda/test/compiler/ets/override4-expected.txt +++ b/ets2panda/test/compiler/ets/override4-expected.txt @@ -198,8 +198,8 @@ "program": "override4.ets" }, "end": { - "line": 20, - "column": 6, + "line": 18, + "column": 2, "program": "override4.ets" } } @@ -561,7 +561,7 @@ }, "end": { "line": 24, - "column": 29, + "column": 18, "program": "override4.ets" } } @@ -574,7 +574,7 @@ }, "end": { "line": 24, - "column": 29, + "column": 18, "program": "override4.ets" } } @@ -611,7 +611,7 @@ }, "end": { "line": 24, - "column": 33, + "column": 31, "program": "override4.ets" } } @@ -624,7 +624,7 @@ }, "end": { "line": 24, - "column": 33, + "column": 31, "program": "override4.ets" } } diff --git a/ets2panda/test/compiler/ets/override5-expected.txt b/ets2panda/test/compiler/ets/override5-expected.txt index 144d24fdb4ae80617aa9d41d17b9f3343dec8497..d67021c936fa4a788191b2ed44f15c975b7bbd57 100644 --- a/ets2panda/test/compiler/ets/override5-expected.txt +++ b/ets2panda/test/compiler/ets/override5-expected.txt @@ -358,7 +358,7 @@ }, "end": { "line": 20, - "column": 20, + "column": 18, "program": "override5.ets" } } @@ -371,7 +371,7 @@ }, "end": { "line": 20, - "column": 20, + "column": 18, "program": "override5.ets" } } diff --git a/ets2panda/test/compiler/ets/override6-expected.txt b/ets2panda/test/compiler/ets/override6-expected.txt index f7aa2706ddd8da94c088e3aa285f5a78ee252cce..608592351d3408cc692f5ec335fda426373601cd 100644 --- a/ets2panda/test/compiler/ets/override6-expected.txt +++ b/ets2panda/test/compiler/ets/override6-expected.txt @@ -150,8 +150,8 @@ "program": "override6.ets" }, "end": { - "line": 20, - "column": 10, + "line": 18, + "column": 2, "program": "override6.ets" } } @@ -223,7 +223,7 @@ }, "end": { "line": 20, - "column": 24, + "column": 22, "program": "override6.ets" } } @@ -236,7 +236,7 @@ }, "end": { "line": 20, - "column": 24, + "column": 22, "program": "override6.ets" } } @@ -249,7 +249,7 @@ }, "end": { "line": 20, - "column": 24, + "column": 22, "program": "override6.ets" } } @@ -262,8 +262,8 @@ "program": "override6.ets" }, "end": { - "line": 22, - "column": 6, + "line": 20, + "column": 25, "program": "override6.ets" } } @@ -321,7 +321,7 @@ }, "end": { "line": 22, - "column": 23, + "column": 21, "program": "override6.ets" } } @@ -334,7 +334,7 @@ }, "end": { "line": 22, - "column": 23, + "column": 21, "program": "override6.ets" } } diff --git a/ets2panda/test/compiler/ets/override8-expected.txt b/ets2panda/test/compiler/ets/override8-expected.txt index d2f411e07260c9b7de410d7e76a5d3c5dd5a9258..9ece98b7fb44a40a3d0a8889a7153c614f67323d 100644 --- a/ets2panda/test/compiler/ets/override8-expected.txt +++ b/ets2panda/test/compiler/ets/override8-expected.txt @@ -84,7 +84,7 @@ }, "end": { "line": 17, - "column": 13, + "column": 12, "program": "override8.ets" } } @@ -97,7 +97,7 @@ }, "end": { "line": 17, - "column": 13, + "column": 12, "program": "override8.ets" } } @@ -110,7 +110,7 @@ }, "end": { "line": 17, - "column": 13, + "column": 12, "program": "override8.ets" } } @@ -123,7 +123,7 @@ }, "end": { "line": 17, - "column": 13, + "column": 12, "program": "override8.ets" } } @@ -182,8 +182,8 @@ "program": "override8.ets" }, "end": { - "line": 20, - "column": 6, + "line": 18, + "column": 2, "program": "override8.ets" } } @@ -241,7 +241,7 @@ }, "end": { "line": 20, - "column": 23, + "column": 21, "program": "override8.ets" } } @@ -254,7 +254,7 @@ }, "end": { "line": 20, - "column": 23, + "column": 21, "program": "override8.ets" } } @@ -352,7 +352,7 @@ }, "end": { "line": 21, - "column": 30, + "column": 28, "program": "override8.ets" } } @@ -365,7 +365,7 @@ }, "end": { "line": 21, - "column": 30, + "column": 28, "program": "override8.ets" } } diff --git a/ets2panda/test/compiler/ets/override9-expected.txt b/ets2panda/test/compiler/ets/override9-expected.txt index 5f519f8d23badb8471099ccd3aaba6629f7954bb..691a51b7a08132f90596de9bfe70442325bf5de3 100644 --- a/ets2panda/test/compiler/ets/override9-expected.txt +++ b/ets2panda/test/compiler/ets/override9-expected.txt @@ -84,7 +84,7 @@ }, "end": { "line": 17, - "column": 13, + "column": 12, "program": "override9.ets" } } @@ -97,7 +97,7 @@ }, "end": { "line": 17, - "column": 13, + "column": 12, "program": "override9.ets" } } @@ -110,7 +110,7 @@ }, "end": { "line": 17, - "column": 13, + "column": 12, "program": "override9.ets" } } @@ -123,7 +123,7 @@ }, "end": { "line": 17, - "column": 13, + "column": 12, "program": "override9.ets" } } @@ -182,8 +182,8 @@ "program": "override9.ets" }, "end": { - "line": 20, - "column": 10, + "line": 18, + "column": 2, "program": "override9.ets" } } @@ -255,7 +255,7 @@ }, "end": { "line": 20, - "column": 25, + "column": 23, "program": "override9.ets" } } @@ -268,7 +268,7 @@ }, "end": { "line": 20, - "column": 25, + "column": 23, "program": "override9.ets" } } @@ -281,7 +281,7 @@ }, "end": { "line": 20, - "column": 25, + "column": 23, "program": "override9.ets" } } @@ -294,8 +294,8 @@ "program": "override9.ets" }, "end": { - "line": 22, - "column": 6, + "line": 20, + "column": 26, "program": "override9.ets" } } @@ -353,7 +353,7 @@ }, "end": { "line": 22, - "column": 24, + "column": 22, "program": "override9.ets" } } @@ -366,7 +366,7 @@ }, "end": { "line": 22, - "column": 24, + "column": 22, "program": "override9.ets" } } @@ -464,7 +464,7 @@ }, "end": { "line": 23, - "column": 31, + "column": 29, "program": "override9.ets" } } @@ -477,7 +477,7 @@ }, "end": { "line": 23, - "column": 31, + "column": 29, "program": "override9.ets" } } diff --git a/ets2panda/test/compiler/ets/parenthesizedType-expected.txt b/ets2panda/test/compiler/ets/parenthesizedType-expected.txt index f51678869e43bb3c90e309d91e611e16c20f92e5..4f0f58731dc94bcda331b52ab44975097964ffec 100644 --- a/ets2panda/test/compiler/ets/parenthesizedType-expected.txt +++ b/ets2panda/test/compiler/ets/parenthesizedType-expected.txt @@ -300,7 +300,7 @@ }, "end": { "line": 18, - "column": 19, + "column": 18, "program": "parenthesizedType.ets" } } @@ -313,7 +313,7 @@ }, "end": { "line": 18, - "column": 19, + "column": 18, "program": "parenthesizedType.ets" } } @@ -401,7 +401,7 @@ }, "end": { "line": 19, - "column": 20, + "column": 18, "program": "parenthesizedType.ets" } } @@ -414,7 +414,7 @@ }, "end": { "line": 19, - "column": 20, + "column": 18, "program": "parenthesizedType.ets" } } diff --git a/ets2panda/test/compiler/ets/requiredType_1-expected.txt b/ets2panda/test/compiler/ets/requiredType_1-expected.txt index 2059ce24101b2f9a51614251b6b35a31577d4210..d0a92fe034abda0da3b713c9907c41c6707c9bbc 100644 --- a/ets2panda/test/compiler/ets/requiredType_1-expected.txt +++ b/ets2panda/test/compiler/ets/requiredType_1-expected.txt @@ -97,7 +97,7 @@ }, "end": { "line": 17, - "column": 17, + "column": 16, "program": "requiredType_1.ets" } } @@ -110,7 +110,7 @@ }, "end": { "line": 17, - "column": 17, + "column": 16, "program": "requiredType_1.ets" } } @@ -548,7 +548,7 @@ }, "end": { "line": 21, - "column": 27, + "column": 26, "program": "requiredType_1.ets" } } @@ -561,7 +561,7 @@ }, "end": { "line": 21, - "column": 27, + "column": 26, "program": "requiredType_1.ets" } } @@ -588,7 +588,7 @@ }, "end": { "line": 21, - "column": 29, + "column": 27, "program": "requiredType_1.ets" } } @@ -601,7 +601,7 @@ }, "end": { "line": 21, - "column": 29, + "column": 27, "program": "requiredType_1.ets" } } @@ -754,7 +754,7 @@ }, "end": { "line": 22, - "column": 24, + "column": 22, "program": "requiredType_1.ets" } } @@ -767,7 +767,7 @@ }, "end": { "line": 22, - "column": 24, + "column": 22, "program": "requiredType_1.ets" } } diff --git a/ets2panda/test/compiler/ets/requiredType_11-expected.txt b/ets2panda/test/compiler/ets/requiredType_11-expected.txt index 41e27345ba492fd631ba8f586d432b425cd9c39f..2b29e7ecd961b74d38ecd9471f598df3556f9caa 100644 --- a/ets2panda/test/compiler/ets/requiredType_11-expected.txt +++ b/ets2panda/test/compiler/ets/requiredType_11-expected.txt @@ -81,7 +81,7 @@ }, "end": { "line": 17, - "column": 19, + "column": 18, "program": "requiredType_11.ets" } } @@ -94,7 +94,7 @@ }, "end": { "line": 17, - "column": 19, + "column": 18, "program": "requiredType_11.ets" } } @@ -425,7 +425,7 @@ }, "end": { "line": 21, - "column": 21, + "column": 20, "program": "requiredType_11.ets" } } @@ -438,7 +438,7 @@ }, "end": { "line": 21, - "column": 21, + "column": 20, "program": "requiredType_11.ets" } } @@ -465,7 +465,7 @@ }, "end": { "line": 21, - "column": 22, + "column": 21, "program": "requiredType_11.ets" } } @@ -478,7 +478,7 @@ }, "end": { "line": 21, - "column": 22, + "column": 21, "program": "requiredType_11.ets" } } @@ -493,7 +493,7 @@ }, "end": { "line": 21, - "column": 22, + "column": 21, "program": "requiredType_11.ets" } } @@ -935,7 +935,7 @@ }, "end": { "line": 25, - "column": 40, + "column": 37, "program": "requiredType_11.ets" } } @@ -948,7 +948,7 @@ }, "end": { "line": 25, - "column": 40, + "column": 37, "program": "requiredType_11.ets" } } @@ -1055,7 +1055,7 @@ }, "end": { "line": 25, - "column": 42, + "column": 40, "program": "requiredType_11.ets" } } @@ -1068,7 +1068,7 @@ }, "end": { "line": 25, - "column": 42, + "column": 40, "program": "requiredType_11.ets" } } diff --git a/ets2panda/test/compiler/ets/requiredType_4-expected.txt b/ets2panda/test/compiler/ets/requiredType_4-expected.txt index 4c9bbeee77d91f3ea0d814de51cb52328e31b2fa..23aee53c5f21832b822abe723638aa1fc82e769c 100644 --- a/ets2panda/test/compiler/ets/requiredType_4-expected.txt +++ b/ets2panda/test/compiler/ets/requiredType_4-expected.txt @@ -97,7 +97,7 @@ }, "end": { "line": 17, - "column": 17, + "column": 16, "program": "requiredType_4.ets" } } @@ -110,7 +110,7 @@ }, "end": { "line": 17, - "column": 17, + "column": 16, "program": "requiredType_4.ets" } } @@ -503,7 +503,7 @@ }, "end": { "line": 20, - "column": 25, + "column": 24, "program": "requiredType_4.ets" } } @@ -516,7 +516,7 @@ }, "end": { "line": 20, - "column": 25, + "column": 24, "program": "requiredType_4.ets" } } @@ -530,7 +530,7 @@ }, "end": { "line": 20, - "column": 25, + "column": 24, "program": "requiredType_4.ets" } } @@ -543,7 +543,7 @@ }, "end": { "line": 20, - "column": 25, + "column": 24, "program": "requiredType_4.ets" } } @@ -749,7 +749,7 @@ }, "end": { "line": 23, - "column": 27, + "column": 26, "program": "requiredType_4.ets" } } @@ -762,7 +762,7 @@ }, "end": { "line": 23, - "column": 27, + "column": 26, "program": "requiredType_4.ets" } } @@ -789,7 +789,7 @@ }, "end": { "line": 23, - "column": 29, + "column": 27, "program": "requiredType_4.ets" } } @@ -802,7 +802,7 @@ }, "end": { "line": 23, - "column": 29, + "column": 27, "program": "requiredType_4.ets" } } diff --git a/ets2panda/test/compiler/ets/requiredType_5-expected.txt b/ets2panda/test/compiler/ets/requiredType_5-expected.txt index 82b78550bb9d3618d4a8bfdb4cbd09d9866be557..e03749b90acd7c73a5dba429691636bf48d58983 100644 --- a/ets2panda/test/compiler/ets/requiredType_5-expected.txt +++ b/ets2panda/test/compiler/ets/requiredType_5-expected.txt @@ -97,7 +97,7 @@ }, "end": { "line": 17, - "column": 18, + "column": 16, "program": "requiredType_5.ets" } } @@ -110,7 +110,7 @@ }, "end": { "line": 17, - "column": 18, + "column": 16, "program": "requiredType_5.ets" } } @@ -232,7 +232,7 @@ }, "end": { "line": 18, - "column": 16, + "column": 14, "program": "requiredType_5.ets" } } @@ -245,7 +245,7 @@ }, "end": { "line": 18, - "column": 16, + "column": 14, "program": "requiredType_5.ets" } } @@ -698,7 +698,7 @@ }, "end": { "line": 22, - "column": 27, + "column": 26, "program": "requiredType_5.ets" } } @@ -711,7 +711,7 @@ }, "end": { "line": 22, - "column": 27, + "column": 26, "program": "requiredType_5.ets" } } @@ -738,7 +738,7 @@ }, "end": { "line": 22, - "column": 29, + "column": 27, "program": "requiredType_5.ets" } } @@ -751,7 +751,7 @@ }, "end": { "line": 22, - "column": 29, + "column": 27, "program": "requiredType_5.ets" } } diff --git a/ets2panda/test/compiler/ets/requiredType_9-expected.txt b/ets2panda/test/compiler/ets/requiredType_9-expected.txt index 2b7ed4053ec366dbb518a6dcca46e30c5f78d359..6acb9904d878fed216f0fd99615f2106ffd815a7 100644 --- a/ets2panda/test/compiler/ets/requiredType_9-expected.txt +++ b/ets2panda/test/compiler/ets/requiredType_9-expected.txt @@ -78,7 +78,7 @@ }, "end": { "line": 17, - "column": 19, + "column": 18, "program": "requiredType_9.ets" } } @@ -91,7 +91,7 @@ }, "end": { "line": 17, - "column": 19, + "column": 18, "program": "requiredType_9.ets" } } @@ -106,7 +106,7 @@ }, "end": { "line": 17, - "column": 19, + "column": 18, "program": "requiredType_9.ets" } } @@ -372,7 +372,7 @@ }, "end": { "line": 21, - "column": 13, + "column": 11, "program": "requiredType_9.ets" } } @@ -385,7 +385,7 @@ }, "end": { "line": 21, - "column": 13, + "column": 11, "program": "requiredType_9.ets" } } @@ -512,7 +512,7 @@ }, "end": { "line": 22, - "column": 22, + "column": 21, "program": "requiredType_9.ets" } } @@ -525,7 +525,7 @@ }, "end": { "line": 22, - "column": 22, + "column": 21, "program": "requiredType_9.ets" } } @@ -552,7 +552,7 @@ }, "end": { "line": 22, - "column": 23, + "column": 22, "program": "requiredType_9.ets" } } @@ -565,7 +565,7 @@ }, "end": { "line": 22, - "column": 23, + "column": 22, "program": "requiredType_9.ets" } } @@ -580,7 +580,7 @@ }, "end": { "line": 22, - "column": 23, + "column": 22, "program": "requiredType_9.ets" } } @@ -666,7 +666,7 @@ }, "end": { "line": 23, - "column": 22, + "column": 21, "program": "requiredType_9.ets" } } @@ -679,7 +679,7 @@ }, "end": { "line": 23, - "column": 22, + "column": 21, "program": "requiredType_9.ets" } } @@ -734,8 +734,8 @@ "program": "requiredType_9.ets" }, "end": { - "line": 24, - "column": 2, + "line": 23, + "column": 32, "program": "requiredType_9.ets" } } @@ -747,8 +747,8 @@ "program": "requiredType_9.ets" }, "end": { - "line": 24, - "column": 2, + "line": 23, + "column": 32, "program": "requiredType_9.ets" } } @@ -762,8 +762,8 @@ "program": "requiredType_9.ets" }, "end": { - "line": 24, - "column": 2, + "line": 23, + "column": 32, "program": "requiredType_9.ets" } } @@ -1181,7 +1181,7 @@ }, "end": { "line": 27, - "column": 30, + "column": 28, "program": "requiredType_9.ets" } } @@ -1194,7 +1194,7 @@ }, "end": { "line": 27, - "column": 30, + "column": 28, "program": "requiredType_9.ets" } } @@ -1261,7 +1261,7 @@ }, "end": { "line": 27, - "column": 32, + "column": 30, "program": "requiredType_9.ets" } } @@ -1274,7 +1274,7 @@ }, "end": { "line": 27, - "column": 32, + "column": 30, "program": "requiredType_9.ets" } } @@ -1349,7 +1349,7 @@ }, "end": { "line": 27, - "column": 45, + "column": 44, "program": "requiredType_9.ets" } } @@ -1362,7 +1362,7 @@ }, "end": { "line": 27, - "column": 45, + "column": 44, "program": "requiredType_9.ets" } } diff --git a/ets2panda/test/compiler/ets/returnTypeGenericArray-expected.txt b/ets2panda/test/compiler/ets/returnTypeGenericArray-expected.txt index 0ea37958658ff71e62add4310fb5e37023499181..04311c1709d3435b2eba5bf331bbc4c5f7dcfabe 100644 --- a/ets2panda/test/compiler/ets/returnTypeGenericArray-expected.txt +++ b/ets2panda/test/compiler/ets/returnTypeGenericArray-expected.txt @@ -327,8 +327,8 @@ "program": "returnTypeGenericArray.ets" }, "end": { - "line": 20, - "column": 6, + "line": 18, + "column": 2, "program": "returnTypeGenericArray.ets" } } @@ -459,7 +459,7 @@ }, "end": { "line": 20, - "column": 33, + "column": 32, "program": "returnTypeGenericArray.ets" } } @@ -472,7 +472,7 @@ }, "end": { "line": 20, - "column": 33, + "column": 32, "program": "returnTypeGenericArray.ets" } } @@ -499,7 +499,7 @@ }, "end": { "line": 20, - "column": 35, + "column": 33, "program": "returnTypeGenericArray.ets" } } @@ -512,7 +512,7 @@ }, "end": { "line": 20, - "column": 35, + "column": 33, "program": "returnTypeGenericArray.ets" } } @@ -763,7 +763,7 @@ }, "end": { "line": 22, - "column": 24, + "column": 22, "program": "returnTypeGenericArray.ets" } } @@ -776,7 +776,7 @@ }, "end": { "line": 22, - "column": 24, + "column": 22, "program": "returnTypeGenericArray.ets" } } diff --git a/ets2panda/test/compiler/ets/switchStatementBoxing-expected.txt b/ets2panda/test/compiler/ets/switchStatementBoxing-expected.txt index 93586bf6dda0f18d91ab7ef7dd87ef528cadea28..7708bb42db1c24b70f731d012b6141471cc248e4 100644 --- a/ets2panda/test/compiler/ets/switchStatementBoxing-expected.txt +++ b/ets2panda/test/compiler/ets/switchStatementBoxing-expected.txt @@ -128,7 +128,7 @@ }, "end": { "line": 18, - "column": 21, + "column": 19, "program": "switchStatementBoxing.ets" } } @@ -141,7 +141,7 @@ }, "end": { "line": 18, - "column": 21, + "column": 19, "program": "switchStatementBoxing.ets" } } diff --git a/ets2panda/test/compiler/ets/switchStatementCorrectConversion-expected.txt b/ets2panda/test/compiler/ets/switchStatementCorrectConversion-expected.txt index af7db0e4eb3431308cef711dbd0edd68f0c27a03..e7d4780552a51b5f6aaffa8eda2f4228ac861f17 100644 --- a/ets2panda/test/compiler/ets/switchStatementCorrectConversion-expected.txt +++ b/ets2panda/test/compiler/ets/switchStatementCorrectConversion-expected.txt @@ -488,7 +488,7 @@ }, "end": { "line": 32, - "column": 21, + "column": 19, "program": "switchStatementCorrectConversion.ets" } } @@ -501,7 +501,7 @@ }, "end": { "line": 32, - "column": 21, + "column": 19, "program": "switchStatementCorrectConversion.ets" } } diff --git a/ets2panda/test/compiler/ets/throwInCatchClause3-expected.txt b/ets2panda/test/compiler/ets/throwInCatchClause3-expected.txt index 464bf819e4d2b828b3844aca9d7171d65bff5532..54aebbadb780e24b16619a3b6d4ffe10bd3777f4 100644 --- a/ets2panda/test/compiler/ets/throwInCatchClause3-expected.txt +++ b/ets2panda/test/compiler/ets/throwInCatchClause3-expected.txt @@ -346,7 +346,7 @@ }, "end": { "line": 19, - "column": 33, + "column": 32, "program": "throwInCatchClause3.ets" } } @@ -359,7 +359,7 @@ }, "end": { "line": 19, - "column": 33, + "column": 32, "program": "throwInCatchClause3.ets" } } @@ -461,7 +461,7 @@ }, "end": { "line": 21, - "column": 34, + "column": 33, "program": "throwInCatchClause3.ets" } } @@ -474,7 +474,7 @@ }, "end": { "line": 21, - "column": 34, + "column": 33, "program": "throwInCatchClause3.ets" } } diff --git a/ets2panda/test/compiler/ets/throwInFinallyBlock1-expected.txt b/ets2panda/test/compiler/ets/throwInFinallyBlock1-expected.txt index b02aacc5c6c4746bdfa22a711a2fba79f9f7ce1d..3a281c7e24bff4578329e68116c63a72e262b362 100644 --- a/ets2panda/test/compiler/ets/throwInFinallyBlock1-expected.txt +++ b/ets2panda/test/compiler/ets/throwInFinallyBlock1-expected.txt @@ -235,7 +235,7 @@ }, "end": { "line": 18, - "column": 25, + "column": 24, "program": "throwInFinallyBlock1.ets" } } @@ -248,7 +248,7 @@ }, "end": { "line": 18, - "column": 25, + "column": 24, "program": "throwInFinallyBlock1.ets" } } @@ -409,7 +409,7 @@ }, "end": { "line": 24, - "column": 29, + "column": 28, "program": "throwInFinallyBlock1.ets" } } @@ -422,7 +422,7 @@ }, "end": { "line": 24, - "column": 29, + "column": 28, "program": "throwInFinallyBlock1.ets" } } @@ -645,7 +645,7 @@ }, "end": { "line": 30, - "column": 27, + "column": 26, "program": "throwInFinallyBlock1.ets" } } @@ -658,7 +658,7 @@ }, "end": { "line": 30, - "column": 27, + "column": 26, "program": "throwInFinallyBlock1.ets" } } diff --git a/ets2panda/test/compiler/ets/throwInTryStatement-expected.txt b/ets2panda/test/compiler/ets/throwInTryStatement-expected.txt index fcf93a23b72d9b628d6eb0eb61681f2827af88fd..70fc90ffac33214b38a28dee6aad230a40e7e6c2 100644 --- a/ets2panda/test/compiler/ets/throwInTryStatement-expected.txt +++ b/ets2panda/test/compiler/ets/throwInTryStatement-expected.txt @@ -235,7 +235,7 @@ }, "end": { "line": 18, - "column": 25, + "column": 24, "program": "throwInTryStatement.ets" } } @@ -248,7 +248,7 @@ }, "end": { "line": 18, - "column": 25, + "column": 24, "program": "throwInTryStatement.ets" } } diff --git a/ets2panda/test/compiler/ets/tryCatchErrorMissingParamType-expected.txt b/ets2panda/test/compiler/ets/tryCatchErrorMissingParamType-expected.txt index 8517a871da96c76d0e4de0297c38a5e483efa56d..96aab42d0b0b13a9b78d64d2576dd52e0d3885db 100644 --- a/ets2panda/test/compiler/ets/tryCatchErrorMissingParamType-expected.txt +++ b/ets2panda/test/compiler/ets/tryCatchErrorMissingParamType-expected.txt @@ -235,7 +235,7 @@ }, "end": { "line": 18, - "column": 25, + "column": 24, "program": "tryCatchErrorMissingParamType.ets" } } @@ -248,7 +248,7 @@ }, "end": { "line": 18, - "column": 25, + "column": 24, "program": "tryCatchErrorMissingParamType.ets" } } diff --git a/ets2panda/test/compiler/ets/tryCatchMissingParamType-expected.txt b/ets2panda/test/compiler/ets/tryCatchMissingParamType-expected.txt index 4b3df3d3296ea06877596862a0daa295db17a08f..ccaa3c2b2f666062dddb0e1fa5840c72fe2cf275 100644 --- a/ets2panda/test/compiler/ets/tryCatchMissingParamType-expected.txt +++ b/ets2panda/test/compiler/ets/tryCatchMissingParamType-expected.txt @@ -235,7 +235,7 @@ }, "end": { "line": 18, - "column": 29, + "column": 28, "program": "tryCatchMissingParamType.ets" } } @@ -248,7 +248,7 @@ }, "end": { "line": 18, - "column": 29, + "column": 28, "program": "tryCatchMissingParamType.ets" } } diff --git a/ets2panda/test/compiler/ets/tryDefaultCatches-expected.txt b/ets2panda/test/compiler/ets/tryDefaultCatches-expected.txt index cae4964823da63113cf6213747eb22040b08f222..1a1a65b7c403b7909f9733e719eb3fffbdb28afb 100644 --- a/ets2panda/test/compiler/ets/tryDefaultCatches-expected.txt +++ b/ets2panda/test/compiler/ets/tryDefaultCatches-expected.txt @@ -235,7 +235,7 @@ }, "end": { "line": 18, - "column": 32, + "column": 31, "program": "tryDefaultCatches.ets" } } @@ -248,7 +248,7 @@ }, "end": { "line": 18, - "column": 32, + "column": 31, "program": "tryDefaultCatches.ets" } } @@ -345,7 +345,7 @@ }, "end": { "line": 19, - "column": 25, + "column": 24, "program": "tryDefaultCatches.ets" } } @@ -358,7 +358,7 @@ }, "end": { "line": 19, - "column": 25, + "column": 24, "program": "tryDefaultCatches.ets" } } diff --git a/ets2panda/test/compiler/ets/tuple_types_1-expected.txt b/ets2panda/test/compiler/ets/tuple_types_1-expected.txt index f03f541e3417022217d455109abf1836ccc4fbec..78dbf2657cee84a80fd4ed0b68fe7f6eedc49b31 100644 --- a/ets2panda/test/compiler/ets/tuple_types_1-expected.txt +++ b/ets2panda/test/compiler/ets/tuple_types_1-expected.txt @@ -311,7 +311,7 @@ }, "end": { "line": 17, - "column": 20, + "column": 18, "program": "tuple_types_1.ets" } } @@ -324,7 +324,7 @@ }, "end": { "line": 17, - "column": 20, + "column": 18, "program": "tuple_types_1.ets" } } @@ -620,7 +620,7 @@ }, "end": { "line": 19, - "column": 33, + "column": 32, "program": "tuple_types_1.ets" } } @@ -633,7 +633,7 @@ }, "end": { "line": 19, - "column": 33, + "column": 32, "program": "tuple_types_1.ets" } } @@ -667,7 +667,7 @@ }, "end": { "line": 19, - "column": 41, + "column": 40, "program": "tuple_types_1.ets" } } @@ -680,7 +680,7 @@ }, "end": { "line": 19, - "column": 41, + "column": 40, "program": "tuple_types_1.ets" } } @@ -714,7 +714,7 @@ }, "end": { "line": 19, - "column": 49, + "column": 48, "program": "tuple_types_1.ets" } } @@ -727,7 +727,7 @@ }, "end": { "line": 19, - "column": 49, + "column": 48, "program": "tuple_types_1.ets" } } @@ -810,7 +810,7 @@ }, "end": { "line": 20, - "column": 49, + "column": 48, "program": "tuple_types_1.ets" } } @@ -823,7 +823,7 @@ }, "end": { "line": 20, - "column": 49, + "column": 48, "program": "tuple_types_1.ets" } } @@ -2995,7 +2995,7 @@ }, "end": { "line": 39, - "column": 24, + "column": 23, "program": "tuple_types_1.ets" } } @@ -3008,7 +3008,7 @@ }, "end": { "line": 39, - "column": 24, + "column": 23, "program": "tuple_types_1.ets" } } @@ -3042,7 +3042,7 @@ }, "end": { "line": 39, - "column": 32, + "column": 31, "program": "tuple_types_1.ets" } } @@ -3055,7 +3055,7 @@ }, "end": { "line": 39, - "column": 32, + "column": 31, "program": "tuple_types_1.ets" } } @@ -3205,7 +3205,7 @@ }, "end": { "line": 40, - "column": 24, + "column": 23, "program": "tuple_types_1.ets" } } @@ -3218,7 +3218,7 @@ }, "end": { "line": 40, - "column": 24, + "column": 23, "program": "tuple_types_1.ets" } } @@ -3252,7 +3252,7 @@ }, "end": { "line": 40, - "column": 32, + "column": 31, "program": "tuple_types_1.ets" } } @@ -3265,7 +3265,7 @@ }, "end": { "line": 40, - "column": 32, + "column": 31, "program": "tuple_types_1.ets" } } @@ -3446,7 +3446,7 @@ }, "end": { "line": 41, - "column": 24, + "column": 23, "program": "tuple_types_1.ets" } } @@ -3459,7 +3459,7 @@ }, "end": { "line": 41, - "column": 24, + "column": 23, "program": "tuple_types_1.ets" } } @@ -3493,7 +3493,7 @@ }, "end": { "line": 41, - "column": 32, + "column": 31, "program": "tuple_types_1.ets" } } @@ -3506,7 +3506,7 @@ }, "end": { "line": 41, - "column": 32, + "column": 31, "program": "tuple_types_1.ets" } } @@ -3555,7 +3555,7 @@ }, "end": { "line": 41, - "column": 49, + "column": 48, "program": "tuple_types_1.ets" } } @@ -3568,7 +3568,7 @@ }, "end": { "line": 41, - "column": 49, + "column": 48, "program": "tuple_types_1.ets" } } @@ -3602,7 +3602,7 @@ }, "end": { "line": 41, - "column": 57, + "column": 56, "program": "tuple_types_1.ets" } } @@ -3615,7 +3615,7 @@ }, "end": { "line": 41, - "column": 57, + "column": 56, "program": "tuple_types_1.ets" } } diff --git a/ets2panda/test/compiler/ets/tuple_types_12-expected.txt b/ets2panda/test/compiler/ets/tuple_types_12-expected.txt index 64c9f8e3d79509f01c16e89b987e0c70db577f60..561479485e32636239df13462524ef6f00dddda2 100644 --- a/ets2panda/test/compiler/ets/tuple_types_12-expected.txt +++ b/ets2panda/test/compiler/ets/tuple_types_12-expected.txt @@ -52,7 +52,7 @@ }, "end": { "line": 16, - "column": 34, + "column": 33, "program": "tuple_types_12.ets" } } @@ -65,7 +65,7 @@ }, "end": { "line": 16, - "column": 34, + "column": 33, "program": "tuple_types_12.ets" } } @@ -422,7 +422,7 @@ }, "end": { "line": 19, - "column": 20, + "column": 18, "program": "tuple_types_12.ets" } } @@ -435,7 +435,7 @@ }, "end": { "line": 19, - "column": 20, + "column": 18, "program": "tuple_types_12.ets" } } @@ -934,7 +934,7 @@ }, "end": { "line": 22, - "column": 30, + "column": 29, "program": "tuple_types_12.ets" } } @@ -947,7 +947,7 @@ }, "end": { "line": 22, - "column": 30, + "column": 29, "program": "tuple_types_12.ets" } } @@ -998,7 +998,7 @@ }, "end": { "line": 22, - "column": 51, + "column": 50, "program": "tuple_types_12.ets" } } @@ -1011,7 +1011,7 @@ }, "end": { "line": 22, - "column": 51, + "column": 50, "program": "tuple_types_12.ets" } } @@ -1062,7 +1062,7 @@ }, "end": { "line": 22, - "column": 56, + "column": 55, "program": "tuple_types_12.ets" } } @@ -1075,7 +1075,7 @@ }, "end": { "line": 22, - "column": 56, + "column": 55, "program": "tuple_types_12.ets" } } @@ -1109,7 +1109,7 @@ }, "end": { "line": 22, - "column": 59, + "column": 58, "program": "tuple_types_12.ets" } } @@ -1122,7 +1122,7 @@ }, "end": { "line": 22, - "column": 59, + "column": 58, "program": "tuple_types_12.ets" } } @@ -1432,7 +1432,7 @@ }, "end": { "line": 22, - "column": 112, + "column": 111, "program": "tuple_types_12.ets" } } @@ -1445,7 +1445,7 @@ }, "end": { "line": 22, - "column": 112, + "column": 111, "program": "tuple_types_12.ets" } } @@ -1495,7 +1495,7 @@ }, "end": { "line": 22, - "column": 121, + "column": 120, "program": "tuple_types_12.ets" } } @@ -1508,7 +1508,7 @@ }, "end": { "line": 22, - "column": 121, + "column": 120, "program": "tuple_types_12.ets" } } @@ -1784,7 +1784,7 @@ }, "end": { "line": 23, - "column": 25, + "column": 23, "program": "tuple_types_12.ets" } } @@ -1797,7 +1797,7 @@ }, "end": { "line": 23, - "column": 25, + "column": 23, "program": "tuple_types_12.ets" } } @@ -1997,7 +1997,7 @@ }, "end": { "line": 24, - "column": 27, + "column": 25, "program": "tuple_types_12.ets" } } @@ -2010,7 +2010,7 @@ }, "end": { "line": 24, - "column": 27, + "column": 25, "program": "tuple_types_12.ets" } } diff --git a/ets2panda/test/compiler/ets/tuple_types_13-expected.txt b/ets2panda/test/compiler/ets/tuple_types_13-expected.txt index 20eb7a92ff65115a067895f2aa525059c8e85708..bc526212dd30535e088c26f6ca5270015842672c 100644 --- a/ets2panda/test/compiler/ets/tuple_types_13-expected.txt +++ b/ets2panda/test/compiler/ets/tuple_types_13-expected.txt @@ -52,7 +52,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "tuple_types_13.ets" } } @@ -65,7 +65,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "tuple_types_13.ets" } } @@ -99,7 +99,7 @@ }, "end": { "line": 16, - "column": 36, + "column": 35, "program": "tuple_types_13.ets" } } @@ -112,7 +112,7 @@ }, "end": { "line": 16, - "column": 36, + "column": 35, "program": "tuple_types_13.ets" } } @@ -146,7 +146,7 @@ }, "end": { "line": 16, - "column": 44, + "column": 43, "program": "tuple_types_13.ets" } } @@ -159,7 +159,7 @@ }, "end": { "line": 16, - "column": 44, + "column": 43, "program": "tuple_types_13.ets" } } diff --git a/ets2panda/test/compiler/ets/tuple_types_14-expected.txt b/ets2panda/test/compiler/ets/tuple_types_14-expected.txt index 1e2a45c98472fe0ca980fa88476daf3b71898f1a..839a7b57d75fa3e96e9884c208d8f63cb3d44119 100644 --- a/ets2panda/test/compiler/ets/tuple_types_14-expected.txt +++ b/ets2panda/test/compiler/ets/tuple_types_14-expected.txt @@ -127,7 +127,7 @@ }, "end": { "line": 17, - "column": 13, + "column": 12, "program": "tuple_types_14.ets" } } @@ -140,7 +140,7 @@ }, "end": { "line": 17, - "column": 13, + "column": 12, "program": "tuple_types_14.ets" } } @@ -155,7 +155,7 @@ }, "end": { "line": 17, - "column": 13, + "column": 12, "program": "tuple_types_14.ets" } } @@ -243,7 +243,7 @@ }, "end": { "line": 18, - "column": 15, + "column": 14, "program": "tuple_types_14.ets" } } @@ -256,7 +256,7 @@ }, "end": { "line": 18, - "column": 15, + "column": 14, "program": "tuple_types_14.ets" } } @@ -270,7 +270,7 @@ }, "end": { "line": 18, - "column": 15, + "column": 14, "program": "tuple_types_14.ets" } } @@ -283,7 +283,7 @@ }, "end": { "line": 18, - "column": 15, + "column": 14, "program": "tuple_types_14.ets" } } @@ -439,7 +439,7 @@ }, "end": { "line": 19, - "column": 15, + "column": 13, "program": "tuple_types_14.ets" } } @@ -452,7 +452,7 @@ }, "end": { "line": 19, - "column": 15, + "column": 13, "program": "tuple_types_14.ets" } } @@ -986,7 +986,7 @@ }, "end": { "line": 25, - "column": 32, + "column": 31, "program": "tuple_types_14.ets" } } @@ -999,7 +999,7 @@ }, "end": { "line": 25, - "column": 32, + "column": 31, "program": "tuple_types_14.ets" } } @@ -1040,7 +1040,7 @@ }, "end": { "line": 25, - "column": 35, + "column": 33, "program": "tuple_types_14.ets" } } @@ -1053,7 +1053,7 @@ }, "end": { "line": 25, - "column": 35, + "column": 33, "program": "tuple_types_14.ets" } } @@ -1145,7 +1145,7 @@ }, "end": { "line": 25, - "column": 55, + "column": 54, "program": "tuple_types_14.ets" } } @@ -1158,7 +1158,7 @@ }, "end": { "line": 25, - "column": 55, + "column": 54, "program": "tuple_types_14.ets" } } @@ -1199,7 +1199,7 @@ }, "end": { "line": 25, - "column": 57, + "column": 56, "program": "tuple_types_14.ets" } } @@ -1212,7 +1212,7 @@ }, "end": { "line": 25, - "column": 57, + "column": 56, "program": "tuple_types_14.ets" } } @@ -1445,7 +1445,7 @@ }, "end": { "line": 27, - "column": 27, + "column": 26, "program": "tuple_types_14.ets" } } @@ -1458,7 +1458,7 @@ }, "end": { "line": 27, - "column": 27, + "column": 26, "program": "tuple_types_14.ets" } } @@ -1748,7 +1748,7 @@ }, "end": { "line": 30, - "column": 34, + "column": 33, "program": "tuple_types_14.ets" } } @@ -1761,7 +1761,7 @@ }, "end": { "line": 30, - "column": 34, + "column": 33, "program": "tuple_types_14.ets" } } @@ -1802,7 +1802,7 @@ }, "end": { "line": 30, - "column": 37, + "column": 35, "program": "tuple_types_14.ets" } } @@ -1815,7 +1815,7 @@ }, "end": { "line": 30, - "column": 37, + "column": 35, "program": "tuple_types_14.ets" } } @@ -1907,7 +1907,7 @@ }, "end": { "line": 30, - "column": 57, + "column": 56, "program": "tuple_types_14.ets" } } @@ -1920,7 +1920,7 @@ }, "end": { "line": 30, - "column": 57, + "column": 56, "program": "tuple_types_14.ets" } } @@ -1961,7 +1961,7 @@ }, "end": { "line": 30, - "column": 59, + "column": 58, "program": "tuple_types_14.ets" } } @@ -1974,7 +1974,7 @@ }, "end": { "line": 30, - "column": 59, + "column": 58, "program": "tuple_types_14.ets" } } diff --git a/ets2panda/test/compiler/ets/tuple_types_15-expected.txt b/ets2panda/test/compiler/ets/tuple_types_15-expected.txt index 9f4319f7ac4cf57bc19a603a6d73e362bcf6ac5b..f09d55ff9ae996674978b9d806407902beeefa9e 100644 --- a/ets2panda/test/compiler/ets/tuple_types_15-expected.txt +++ b/ets2panda/test/compiler/ets/tuple_types_15-expected.txt @@ -52,7 +52,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "tuple_types_15.ets" } } @@ -65,7 +65,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "tuple_types_15.ets" } } @@ -322,7 +322,7 @@ }, "end": { "line": 18, - "column": 37, + "column": 36, "program": "tuple_types_15.ets" } } @@ -335,7 +335,7 @@ }, "end": { "line": 18, - "column": 37, + "column": 36, "program": "tuple_types_15.ets" } } @@ -369,7 +369,7 @@ }, "end": { "line": 18, - "column": 45, + "column": 44, "program": "tuple_types_15.ets" } } @@ -382,7 +382,7 @@ }, "end": { "line": 18, - "column": 45, + "column": 44, "program": "tuple_types_15.ets" } } @@ -444,7 +444,7 @@ }, "end": { "line": 19, - "column": 22, + "column": 21, "program": "tuple_types_15.ets" } } @@ -457,7 +457,7 @@ }, "end": { "line": 19, - "column": 22, + "column": 21, "program": "tuple_types_15.ets" } } @@ -491,7 +491,7 @@ }, "end": { "line": 19, - "column": 30, + "column": 29, "program": "tuple_types_15.ets" } } @@ -504,7 +504,7 @@ }, "end": { "line": 19, - "column": 30, + "column": 29, "program": "tuple_types_15.ets" } } @@ -808,7 +808,7 @@ }, "end": { "line": 24, - "column": 31, + "column": 30, "program": "tuple_types_15.ets" } } @@ -821,7 +821,7 @@ }, "end": { "line": 24, - "column": 31, + "column": 30, "program": "tuple_types_15.ets" } } @@ -870,7 +870,7 @@ }, "end": { "line": 24, - "column": 48, + "column": 47, "program": "tuple_types_15.ets" } } @@ -883,7 +883,7 @@ }, "end": { "line": 24, - "column": 48, + "column": 47, "program": "tuple_types_15.ets" } } @@ -917,7 +917,7 @@ }, "end": { "line": 24, - "column": 56, + "column": 55, "program": "tuple_types_15.ets" } } @@ -930,7 +930,7 @@ }, "end": { "line": 24, - "column": 56, + "column": 55, "program": "tuple_types_15.ets" } } @@ -1109,7 +1109,7 @@ }, "end": { "line": 31, - "column": 25, + "column": 23, "program": "tuple_types_15.ets" } } @@ -1122,7 +1122,7 @@ }, "end": { "line": 31, - "column": 25, + "column": 23, "program": "tuple_types_15.ets" } } @@ -2155,7 +2155,7 @@ }, "end": { "line": 37, - "column": 24, + "column": 23, "program": "tuple_types_15.ets" } } @@ -2168,7 +2168,7 @@ }, "end": { "line": 37, - "column": 24, + "column": 23, "program": "tuple_types_15.ets" } } @@ -2202,7 +2202,7 @@ }, "end": { "line": 37, - "column": 32, + "column": 31, "program": "tuple_types_15.ets" } } @@ -2215,7 +2215,7 @@ }, "end": { "line": 37, - "column": 32, + "column": 31, "program": "tuple_types_15.ets" } } diff --git a/ets2panda/test/compiler/ets/tuple_types_16-expected.txt b/ets2panda/test/compiler/ets/tuple_types_16-expected.txt index e467d2ac934a09ec37078ec612abc40ea3044226..cbd8e600f0c5d804717b0d4dd444d3f84f13da57 100644 --- a/ets2panda/test/compiler/ets/tuple_types_16-expected.txt +++ b/ets2panda/test/compiler/ets/tuple_types_16-expected.txt @@ -57,7 +57,7 @@ }, "end": { "line": 16, - "column": 29, + "column": 28, "program": "tuple_types_16.ets" } } @@ -70,7 +70,7 @@ }, "end": { "line": 16, - "column": 29, + "column": 28, "program": "tuple_types_16.ets" } } @@ -84,7 +84,7 @@ }, "end": { "line": 16, - "column": 29, + "column": 28, "program": "tuple_types_16.ets" } } @@ -97,7 +97,7 @@ }, "end": { "line": 16, - "column": 29, + "column": 28, "program": "tuple_types_16.ets" } } @@ -258,7 +258,7 @@ }, "end": { "line": 18, - "column": 26, + "column": 25, "program": "tuple_types_16.ets" } } @@ -271,7 +271,7 @@ }, "end": { "line": 18, - "column": 26, + "column": 25, "program": "tuple_types_16.ets" } } @@ -305,7 +305,7 @@ }, "end": { "line": 18, - "column": 33, + "column": 32, "program": "tuple_types_16.ets" } } @@ -318,7 +318,7 @@ }, "end": { "line": 18, - "column": 33, + "column": 32, "program": "tuple_types_16.ets" } } @@ -401,7 +401,7 @@ }, "end": { "line": 19, - "column": 26, + "column": 25, "program": "tuple_types_16.ets" } } @@ -414,7 +414,7 @@ }, "end": { "line": 19, - "column": 26, + "column": 25, "program": "tuple_types_16.ets" } } @@ -448,7 +448,7 @@ }, "end": { "line": 19, - "column": 33, + "column": 32, "program": "tuple_types_16.ets" } } @@ -461,7 +461,7 @@ }, "end": { "line": 19, - "column": 33, + "column": 32, "program": "tuple_types_16.ets" } } @@ -495,7 +495,7 @@ }, "end": { "line": 19, - "column": 40, + "column": 39, "program": "tuple_types_16.ets" } } @@ -508,7 +508,7 @@ }, "end": { "line": 19, - "column": 40, + "column": 39, "program": "tuple_types_16.ets" } } @@ -773,7 +773,7 @@ }, "end": { "line": 22, - "column": 23, + "column": 21, "program": "tuple_types_16.ets" } } @@ -786,7 +786,7 @@ }, "end": { "line": 22, - "column": 23, + "column": 21, "program": "tuple_types_16.ets" } } @@ -851,7 +851,7 @@ }, "end": { "line": 22, - "column": 40, + "column": 39, "program": "tuple_types_16.ets" } } @@ -864,7 +864,7 @@ }, "end": { "line": 22, - "column": 40, + "column": 39, "program": "tuple_types_16.ets" } } @@ -878,7 +878,7 @@ }, "end": { "line": 22, - "column": 40, + "column": 39, "program": "tuple_types_16.ets" } } @@ -891,7 +891,7 @@ }, "end": { "line": 22, - "column": 40, + "column": 39, "program": "tuple_types_16.ets" } } @@ -982,7 +982,7 @@ }, "end": { "line": 22, - "column": 63, + "column": 62, "program": "tuple_types_16.ets" } } @@ -995,7 +995,7 @@ }, "end": { "line": 22, - "column": 63, + "column": 62, "program": "tuple_types_16.ets" } } @@ -1009,7 +1009,7 @@ }, "end": { "line": 22, - "column": 63, + "column": 62, "program": "tuple_types_16.ets" } } @@ -1022,7 +1022,7 @@ }, "end": { "line": 22, - "column": 63, + "column": 62, "program": "tuple_types_16.ets" } } @@ -1149,7 +1149,7 @@ }, "end": { "line": 23, - "column": 23, + "column": 21, "program": "tuple_types_16.ets" } } @@ -1162,7 +1162,7 @@ }, "end": { "line": 23, - "column": 23, + "column": 21, "program": "tuple_types_16.ets" } } @@ -1227,7 +1227,7 @@ }, "end": { "line": 23, - "column": 40, + "column": 39, "program": "tuple_types_16.ets" } } @@ -1240,7 +1240,7 @@ }, "end": { "line": 23, - "column": 40, + "column": 39, "program": "tuple_types_16.ets" } } @@ -1254,7 +1254,7 @@ }, "end": { "line": 23, - "column": 40, + "column": 39, "program": "tuple_types_16.ets" } } @@ -1267,7 +1267,7 @@ }, "end": { "line": 23, - "column": 40, + "column": 39, "program": "tuple_types_16.ets" } } @@ -1358,7 +1358,7 @@ }, "end": { "line": 23, - "column": 63, + "column": 62, "program": "tuple_types_16.ets" } } @@ -1371,7 +1371,7 @@ }, "end": { "line": 23, - "column": 63, + "column": 62, "program": "tuple_types_16.ets" } } @@ -1385,7 +1385,7 @@ }, "end": { "line": 23, - "column": 63, + "column": 62, "program": "tuple_types_16.ets" } } @@ -1398,7 +1398,7 @@ }, "end": { "line": 23, - "column": 63, + "column": 62, "program": "tuple_types_16.ets" } } diff --git a/ets2panda/test/compiler/ets/tuple_types_17-expected.txt b/ets2panda/test/compiler/ets/tuple_types_17-expected.txt index 984be6af6d5d4402e53dfb5b57d0994390710b12..d56516ef3a441d83c219a51ea99ae8b9b8aebf86 100644 --- a/ets2panda/test/compiler/ets/tuple_types_17-expected.txt +++ b/ets2panda/test/compiler/ets/tuple_types_17-expected.txt @@ -55,7 +55,7 @@ }, "end": { "line": 16, - "column": 17, + "column": 16, "program": "tuple_types_17.ets" } } @@ -68,7 +68,7 @@ }, "end": { "line": 16, - "column": 17, + "column": 16, "program": "tuple_types_17.ets" } } @@ -131,7 +131,7 @@ }, "end": { "line": 16, - "column": 35, + "column": 34, "program": "tuple_types_17.ets" } } @@ -144,7 +144,7 @@ }, "end": { "line": 16, - "column": 35, + "column": 34, "program": "tuple_types_17.ets" } } @@ -409,7 +409,7 @@ }, "end": { "line": 18, - "column": 17, + "column": 15, "program": "tuple_types_17.ets" } } @@ -422,7 +422,7 @@ }, "end": { "line": 18, - "column": 17, + "column": 15, "program": "tuple_types_17.ets" } } diff --git a/ets2panda/test/compiler/ets/tuple_types_18-expected.txt b/ets2panda/test/compiler/ets/tuple_types_18-expected.txt index 6c2c9e5f60165e3078191d631cc60bcdd49b6712..07ddd1e6ea2297f84131b8eca2ddffbab79770c5 100644 --- a/ets2panda/test/compiler/ets/tuple_types_18-expected.txt +++ b/ets2panda/test/compiler/ets/tuple_types_18-expected.txt @@ -102,7 +102,7 @@ }, "end": { "line": 18, - "column": 17, + "column": 16, "program": "tuple_types_18.ets" } } @@ -115,7 +115,7 @@ }, "end": { "line": 18, - "column": 17, + "column": 16, "program": "tuple_types_18.ets" } } @@ -178,7 +178,7 @@ }, "end": { "line": 18, - "column": 35, + "column": 34, "program": "tuple_types_18.ets" } } @@ -191,7 +191,7 @@ }, "end": { "line": 18, - "column": 35, + "column": 34, "program": "tuple_types_18.ets" } } @@ -456,7 +456,7 @@ }, "end": { "line": 21, - "column": 17, + "column": 15, "program": "tuple_types_18.ets" } } @@ -469,7 +469,7 @@ }, "end": { "line": 21, - "column": 17, + "column": 15, "program": "tuple_types_18.ets" } } diff --git a/ets2panda/test/compiler/ets/tuple_types_19-expected.txt b/ets2panda/test/compiler/ets/tuple_types_19-expected.txt index 1dd4cab4050233f07199a8355ad8e4650ca908c4..bd66c1c9b2881ce53fdb1f35481c823ee89615c0 100644 --- a/ets2panda/test/compiler/ets/tuple_types_19-expected.txt +++ b/ets2panda/test/compiler/ets/tuple_types_19-expected.txt @@ -162,7 +162,7 @@ }, "end": { "line": 17, - "column": 13, + "column": 12, "program": "tuple_types_19.ets" } } @@ -175,7 +175,7 @@ }, "end": { "line": 17, - "column": 13, + "column": 12, "program": "tuple_types_19.ets" } } @@ -209,7 +209,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 15, "program": "tuple_types_19.ets" } } @@ -222,7 +222,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 15, "program": "tuple_types_19.ets" } } @@ -342,7 +342,7 @@ }, "end": { "line": 18, - "column": 27, + "column": 26, "program": "tuple_types_19.ets" } } @@ -355,7 +355,7 @@ }, "end": { "line": 18, - "column": 27, + "column": 26, "program": "tuple_types_19.ets" } } @@ -389,7 +389,7 @@ }, "end": { "line": 18, - "column": 30, + "column": 29, "program": "tuple_types_19.ets" } } @@ -402,7 +402,7 @@ }, "end": { "line": 18, - "column": 30, + "column": 29, "program": "tuple_types_19.ets" } } @@ -685,7 +685,7 @@ }, "end": { "line": 19, - "column": 26, + "column": 25, "program": "tuple_types_19.ets" } } @@ -698,7 +698,7 @@ }, "end": { "line": 19, - "column": 26, + "column": 25, "program": "tuple_types_19.ets" } } @@ -732,7 +732,7 @@ }, "end": { "line": 19, - "column": 29, + "column": 28, "program": "tuple_types_19.ets" } } @@ -745,7 +745,7 @@ }, "end": { "line": 19, - "column": 29, + "column": 28, "program": "tuple_types_19.ets" } } @@ -1042,7 +1042,7 @@ }, "end": { "line": 23, - "column": 14, + "column": 13, "program": "tuple_types_19.ets" } } @@ -1055,7 +1055,7 @@ }, "end": { "line": 23, - "column": 14, + "column": 13, "program": "tuple_types_19.ets" } } @@ -1089,7 +1089,7 @@ }, "end": { "line": 23, - "column": 17, + "column": 16, "program": "tuple_types_19.ets" } } @@ -1102,7 +1102,7 @@ }, "end": { "line": 23, - "column": 17, + "column": 16, "program": "tuple_types_19.ets" } } @@ -1222,7 +1222,7 @@ }, "end": { "line": 24, - "column": 27, + "column": 26, "program": "tuple_types_19.ets" } } @@ -1235,7 +1235,7 @@ }, "end": { "line": 24, - "column": 27, + "column": 26, "program": "tuple_types_19.ets" } } @@ -1269,7 +1269,7 @@ }, "end": { "line": 24, - "column": 30, + "column": 29, "program": "tuple_types_19.ets" } } @@ -1282,7 +1282,7 @@ }, "end": { "line": 24, - "column": 30, + "column": 29, "program": "tuple_types_19.ets" } } @@ -1565,7 +1565,7 @@ }, "end": { "line": 25, - "column": 26, + "column": 25, "program": "tuple_types_19.ets" } } @@ -1578,7 +1578,7 @@ }, "end": { "line": 25, - "column": 26, + "column": 25, "program": "tuple_types_19.ets" } } @@ -1612,7 +1612,7 @@ }, "end": { "line": 25, - "column": 29, + "column": 28, "program": "tuple_types_19.ets" } } @@ -1625,7 +1625,7 @@ }, "end": { "line": 25, - "column": 29, + "column": 28, "program": "tuple_types_19.ets" } } @@ -2120,7 +2120,7 @@ }, "end": { "line": 29, - "column": 29, + "column": 28, "program": "tuple_types_19.ets" } } @@ -2133,7 +2133,7 @@ }, "end": { "line": 29, - "column": 29, + "column": 28, "program": "tuple_types_19.ets" } } @@ -2167,7 +2167,7 @@ }, "end": { "line": 29, - "column": 37, + "column": 36, "program": "tuple_types_19.ets" } } @@ -2180,7 +2180,7 @@ }, "end": { "line": 29, - "column": 37, + "column": 36, "program": "tuple_types_19.ets" } } @@ -2351,7 +2351,7 @@ }, "end": { "line": 30, - "column": 34, + "column": 33, "program": "tuple_types_19.ets" } } @@ -2364,7 +2364,7 @@ }, "end": { "line": 30, - "column": 34, + "column": 33, "program": "tuple_types_19.ets" } } @@ -2391,7 +2391,7 @@ }, "end": { "line": 30, - "column": 36, + "column": 34, "program": "tuple_types_19.ets" } } @@ -2404,7 +2404,7 @@ }, "end": { "line": 30, - "column": 36, + "column": 34, "program": "tuple_types_19.ets" } } @@ -2478,7 +2478,7 @@ }, "end": { "line": 30, - "column": 62, + "column": 61, "program": "tuple_types_19.ets" } } @@ -2491,7 +2491,7 @@ }, "end": { "line": 30, - "column": 62, + "column": 61, "program": "tuple_types_19.ets" } } @@ -2518,7 +2518,7 @@ }, "end": { "line": 30, - "column": 63, + "column": 62, "program": "tuple_types_19.ets" } } @@ -2531,7 +2531,7 @@ }, "end": { "line": 30, - "column": 63, + "column": 62, "program": "tuple_types_19.ets" } } @@ -2636,7 +2636,7 @@ }, "end": { "line": 31, - "column": 25, + "column": 24, "program": "tuple_types_19.ets" } } @@ -2649,7 +2649,7 @@ }, "end": { "line": 31, - "column": 25, + "column": 24, "program": "tuple_types_19.ets" } } @@ -2683,7 +2683,7 @@ }, "end": { "line": 31, - "column": 33, + "column": 32, "program": "tuple_types_19.ets" } } @@ -2696,7 +2696,7 @@ }, "end": { "line": 31, - "column": 33, + "column": 32, "program": "tuple_types_19.ets" } } diff --git a/ets2panda/test/compiler/ets/tuple_types_7-expected.txt b/ets2panda/test/compiler/ets/tuple_types_7-expected.txt index ec5cc856c23fd7769d331760412a0884202b4e99..8edfc5520f7d77ecbe4648e25bb43698af7e7a38 100644 --- a/ets2panda/test/compiler/ets/tuple_types_7-expected.txt +++ b/ets2panda/test/compiler/ets/tuple_types_7-expected.txt @@ -237,7 +237,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "tuple_types_7.ets" } } @@ -250,7 +250,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "tuple_types_7.ets" } } @@ -284,7 +284,7 @@ }, "end": { "line": 18, - "column": 28, + "column": 27, "program": "tuple_types_7.ets" } } @@ -297,7 +297,7 @@ }, "end": { "line": 18, - "column": 28, + "column": 27, "program": "tuple_types_7.ets" } } @@ -331,7 +331,7 @@ }, "end": { "line": 18, - "column": 33, + "column": 32, "program": "tuple_types_7.ets" } } @@ -344,7 +344,7 @@ }, "end": { "line": 18, - "column": 33, + "column": 32, "program": "tuple_types_7.ets" } } @@ -510,7 +510,7 @@ }, "end": { "line": 19, - "column": 20, + "column": 19, "program": "tuple_types_7.ets" } } @@ -523,7 +523,7 @@ }, "end": { "line": 19, - "column": 20, + "column": 19, "program": "tuple_types_7.ets" } } @@ -557,7 +557,7 @@ }, "end": { "line": 19, - "column": 28, + "column": 27, "program": "tuple_types_7.ets" } } @@ -570,7 +570,7 @@ }, "end": { "line": 19, - "column": 28, + "column": 27, "program": "tuple_types_7.ets" } } @@ -604,7 +604,7 @@ }, "end": { "line": 19, - "column": 33, + "column": 32, "program": "tuple_types_7.ets" } } @@ -617,7 +617,7 @@ }, "end": { "line": 19, - "column": 33, + "column": 32, "program": "tuple_types_7.ets" } } diff --git a/ets2panda/test/compiler/ets/typeVarReferenceFromStaticContext2-expected.txt b/ets2panda/test/compiler/ets/typeVarReferenceFromStaticContext2-expected.txt index 99dd369916bdffb1c9c7671cddab81777a84c220..3fac9cb519458c1c06b344a059067030ba0cd80e 100644 --- a/ets2panda/test/compiler/ets/typeVarReferenceFromStaticContext2-expected.txt +++ b/ets2panda/test/compiler/ets/typeVarReferenceFromStaticContext2-expected.txt @@ -175,7 +175,7 @@ }, "end": { "line": 17, - "column": 32, + "column": 31, "program": "typeVarReferenceFromStaticContext2.ets" } } @@ -188,7 +188,7 @@ }, "end": { "line": 17, - "column": 32, + "column": 31, "program": "typeVarReferenceFromStaticContext2.ets" } } @@ -215,7 +215,7 @@ }, "end": { "line": 17, - "column": 34, + "column": 32, "program": "typeVarReferenceFromStaticContext2.ets" } } @@ -228,7 +228,7 @@ }, "end": { "line": 17, - "column": 34, + "column": 32, "program": "typeVarReferenceFromStaticContext2.ets" } } @@ -342,7 +342,7 @@ }, "end": { "line": 18, - "column": 26, + "column": 25, "program": "typeVarReferenceFromStaticContext2.ets" } } @@ -355,7 +355,7 @@ }, "end": { "line": 18, - "column": 26, + "column": 25, "program": "typeVarReferenceFromStaticContext2.ets" } } @@ -382,7 +382,7 @@ }, "end": { "line": 18, - "column": 27, + "column": 26, "program": "typeVarReferenceFromStaticContext2.ets" } } @@ -395,7 +395,7 @@ }, "end": { "line": 18, - "column": 27, + "column": 26, "program": "typeVarReferenceFromStaticContext2.ets" } } diff --git a/ets2panda/test/compiler/ets/union_types_1-expected.txt b/ets2panda/test/compiler/ets/union_types_1-expected.txt index 67fb8db8dc720f0f928d174b924f384bc19ac9f0..64c30d77428b89ece811d3531b835e8896e570c5 100644 --- a/ets2panda/test/compiler/ets/union_types_1-expected.txt +++ b/ets2panda/test/compiler/ets/union_types_1-expected.txt @@ -1227,7 +1227,7 @@ }, "end": { "line": 34, - "column": 21, + "column": 19, "program": "union_types_1.ets" } } @@ -1240,7 +1240,7 @@ }, "end": { "line": 34, - "column": 21, + "column": 19, "program": "union_types_1.ets" } } @@ -1274,7 +1274,7 @@ }, "end": { "line": 34, - "column": 25, + "column": 23, "program": "union_types_1.ets" } } @@ -1287,7 +1287,7 @@ }, "end": { "line": 34, - "column": 25, + "column": 23, "program": "union_types_1.ets" } } @@ -1321,7 +1321,7 @@ }, "end": { "line": 34, - "column": 28, + "column": 27, "program": "union_types_1.ets" } } @@ -1334,7 +1334,7 @@ }, "end": { "line": 34, - "column": 28, + "column": 27, "program": "union_types_1.ets" } } @@ -1348,7 +1348,7 @@ }, "end": { "line": 34, - "column": 28, + "column": 27, "program": "union_types_1.ets" } } @@ -1362,7 +1362,7 @@ }, "end": { "line": 34, - "column": 28, + "column": 27, "program": "union_types_1.ets" } } @@ -1375,7 +1375,7 @@ }, "end": { "line": 34, - "column": 28, + "column": 27, "program": "union_types_1.ets" } } @@ -1435,7 +1435,7 @@ }, "end": { "line": 35, - "column": 24, + "column": 23, "program": "union_types_1.ets" } } @@ -1448,7 +1448,7 @@ }, "end": { "line": 35, - "column": 24, + "column": 23, "program": "union_types_1.ets" } } @@ -1461,7 +1461,7 @@ }, "end": { "line": 35, - "column": 24, + "column": 23, "program": "union_types_1.ets" } } @@ -1539,7 +1539,7 @@ }, "end": { "line": 36, - "column": 25, + "column": 24, "program": "union_types_1.ets" } } @@ -1552,7 +1552,7 @@ }, "end": { "line": 36, - "column": 25, + "column": 24, "program": "union_types_1.ets" } } @@ -1861,7 +1861,7 @@ }, "end": { "line": 39, - "column": 24, + "column": 23, "program": "union_types_1.ets" } } @@ -1874,7 +1874,7 @@ }, "end": { "line": 39, - "column": 24, + "column": 23, "program": "union_types_1.ets" } } @@ -1887,7 +1887,7 @@ }, "end": { "line": 39, - "column": 24, + "column": 23, "program": "union_types_1.ets" } } @@ -2899,7 +2899,7 @@ }, "end": { "line": 50, - "column": 16, + "column": 14, "program": "union_types_1.ets" } } @@ -2912,7 +2912,7 @@ }, "end": { "line": 50, - "column": 16, + "column": 14, "program": "union_types_1.ets" } } @@ -2946,7 +2946,7 @@ }, "end": { "line": 50, - "column": 20, + "column": 18, "program": "union_types_1.ets" } } @@ -2959,7 +2959,7 @@ }, "end": { "line": 50, - "column": 20, + "column": 18, "program": "union_types_1.ets" } } @@ -2993,7 +2993,7 @@ }, "end": { "line": 50, - "column": 23, + "column": 22, "program": "union_types_1.ets" } } @@ -3006,7 +3006,7 @@ }, "end": { "line": 50, - "column": 23, + "column": 22, "program": "union_types_1.ets" } } @@ -3020,7 +3020,7 @@ }, "end": { "line": 50, - "column": 23, + "column": 22, "program": "union_types_1.ets" } } @@ -3121,7 +3121,7 @@ }, "end": { "line": 51, - "column": 15, + "column": 14, "program": "union_types_1.ets" } } @@ -3134,7 +3134,7 @@ }, "end": { "line": 51, - "column": 15, + "column": 14, "program": "union_types_1.ets" } } @@ -3481,7 +3481,7 @@ }, "end": { "line": 54, - "column": 24, + "column": 23, "program": "union_types_1.ets" } } @@ -3494,7 +3494,7 @@ }, "end": { "line": 54, - "column": 24, + "column": 23, "program": "union_types_1.ets" } } @@ -3507,7 +3507,7 @@ }, "end": { "line": 54, - "column": 24, + "column": 23, "program": "union_types_1.ets" } } @@ -3585,7 +3585,7 @@ }, "end": { "line": 55, - "column": 25, + "column": 24, "program": "union_types_1.ets" } } @@ -3598,7 +3598,7 @@ }, "end": { "line": 55, - "column": 25, + "column": 24, "program": "union_types_1.ets" } } @@ -3907,7 +3907,7 @@ }, "end": { "line": 58, - "column": 24, + "column": 23, "program": "union_types_1.ets" } } @@ -3920,7 +3920,7 @@ }, "end": { "line": 58, - "column": 24, + "column": 23, "program": "union_types_1.ets" } } @@ -3933,7 +3933,7 @@ }, "end": { "line": 58, - "column": 24, + "column": 23, "program": "union_types_1.ets" } } @@ -4138,7 +4138,7 @@ }, "end": { "line": 61, - "column": 15, + "column": 14, "program": "union_types_1.ets" } } @@ -4151,7 +4151,7 @@ }, "end": { "line": 61, - "column": 15, + "column": 14, "program": "union_types_1.ets" } } @@ -4416,7 +4416,7 @@ }, "end": { "line": 63, - "column": 15, + "column": 14, "program": "union_types_1.ets" } } @@ -4429,7 +4429,7 @@ }, "end": { "line": 63, - "column": 15, + "column": 14, "program": "union_types_1.ets" } } diff --git a/ets2panda/test/compiler/ets/union_types_3-expected.txt b/ets2panda/test/compiler/ets/union_types_3-expected.txt index a5f9e2000f25b236d5c87b4bd718924975357fd0..c8e3fd1a93dc34625268817d6b906f18142a9afc 100644 --- a/ets2panda/test/compiler/ets/union_types_3-expected.txt +++ b/ets2panda/test/compiler/ets/union_types_3-expected.txt @@ -237,7 +237,7 @@ }, "end": { "line": 17, - "column": 28, + "column": 26, "program": "union_types_3.ets" } } @@ -250,7 +250,7 @@ }, "end": { "line": 17, - "column": 28, + "column": 26, "program": "union_types_3.ets" } } @@ -1198,7 +1198,7 @@ }, "end": { "line": 24, - "column": 39, + "column": 38, "program": "union_types_3.ets" } } @@ -1211,7 +1211,7 @@ }, "end": { "line": 24, - "column": 39, + "column": 38, "program": "union_types_3.ets" } } @@ -1406,7 +1406,7 @@ }, "end": { "line": 25, - "column": 22, + "column": 20, "program": "union_types_3.ets" } } @@ -1419,7 +1419,7 @@ }, "end": { "line": 25, - "column": 22, + "column": 20, "program": "union_types_3.ets" } } @@ -1562,7 +1562,7 @@ }, "end": { "line": 26, - "column": 30, + "column": 29, "program": "union_types_3.ets" } } @@ -1575,7 +1575,7 @@ }, "end": { "line": 26, - "column": 30, + "column": 29, "program": "union_types_3.ets" } } @@ -1588,7 +1588,7 @@ }, "end": { "line": 26, - "column": 30, + "column": 29, "program": "union_types_3.ets" } } @@ -1704,7 +1704,7 @@ }, "end": { "line": 27, - "column": 42, + "column": 41, "program": "union_types_3.ets" } } @@ -1717,7 +1717,7 @@ }, "end": { "line": 27, - "column": 42, + "column": 41, "program": "union_types_3.ets" } } @@ -1911,7 +1911,7 @@ }, "end": { "line": 29, - "column": 22, + "column": 20, "program": "union_types_3.ets" } } @@ -1924,7 +1924,7 @@ }, "end": { "line": 29, - "column": 22, + "column": 20, "program": "union_types_3.ets" } } @@ -2249,7 +2249,7 @@ }, "end": { "line": 31, - "column": 22, + "column": 20, "program": "union_types_3.ets" } } @@ -2262,7 +2262,7 @@ }, "end": { "line": 31, - "column": 22, + "column": 20, "program": "union_types_3.ets" } } @@ -2488,7 +2488,7 @@ }, "end": { "line": 33, - "column": 36, + "column": 35, "program": "union_types_3.ets" } } @@ -2501,7 +2501,7 @@ }, "end": { "line": 33, - "column": 36, + "column": 35, "program": "union_types_3.ets" } } diff --git a/ets2panda/test/compiler/ets/union_types_5-expected.txt b/ets2panda/test/compiler/ets/union_types_5-expected.txt index 377f67e68e51ab36cb55a2b5ac4153f4735ebf6a..f650c418b462ad9e24606ecde380339014f1b07d 100644 --- a/ets2panda/test/compiler/ets/union_types_5-expected.txt +++ b/ets2panda/test/compiler/ets/union_types_5-expected.txt @@ -72,7 +72,7 @@ }, "end": { "line": 16, - "column": 26, + "column": 25, "program": "union_types_5.ets" } } @@ -85,7 +85,7 @@ }, "end": { "line": 16, - "column": 26, + "column": 25, "program": "union_types_5.ets" } } @@ -174,7 +174,7 @@ }, "end": { "line": 17, - "column": 15, + "column": 14, "program": "union_types_5.ets" } } @@ -187,7 +187,7 @@ }, "end": { "line": 17, - "column": 15, + "column": 14, "program": "union_types_5.ets" } } @@ -202,7 +202,7 @@ }, "end": { "line": 17, - "column": 15, + "column": 14, "program": "union_types_5.ets" } } @@ -290,7 +290,7 @@ }, "end": { "line": 18, - "column": 27, + "column": 26, "program": "union_types_5.ets" } } @@ -303,7 +303,7 @@ }, "end": { "line": 18, - "column": 27, + "column": 26, "program": "union_types_5.ets" } } @@ -317,7 +317,7 @@ }, "end": { "line": 18, - "column": 27, + "column": 26, "program": "union_types_5.ets" } } @@ -330,7 +330,7 @@ }, "end": { "line": 18, - "column": 27, + "column": 26, "program": "union_types_5.ets" } } @@ -1185,7 +1185,7 @@ }, "end": { "line": 29, - "column": 19, + "column": 18, "program": "union_types_5.ets" } } @@ -1198,7 +1198,7 @@ }, "end": { "line": 29, - "column": 19, + "column": 18, "program": "union_types_5.ets" } } @@ -1232,7 +1232,7 @@ }, "end": { "line": 29, - "column": 21, + "column": 20, "program": "union_types_5.ets" } } @@ -1245,7 +1245,7 @@ }, "end": { "line": 29, - "column": 21, + "column": 20, "program": "union_types_5.ets" } } @@ -1259,7 +1259,7 @@ }, "end": { "line": 29, - "column": 21, + "column": 20, "program": "union_types_5.ets" } } @@ -1273,7 +1273,7 @@ }, "end": { "line": 29, - "column": 21, + "column": 20, "program": "union_types_5.ets" } } @@ -1286,7 +1286,7 @@ }, "end": { "line": 29, - "column": 21, + "column": 20, "program": "union_types_5.ets" } } @@ -1346,7 +1346,7 @@ }, "end": { "line": 30, - "column": 24, + "column": 23, "program": "union_types_5.ets" } } @@ -1359,7 +1359,7 @@ }, "end": { "line": 30, - "column": 24, + "column": 23, "program": "union_types_5.ets" } } @@ -1372,7 +1372,7 @@ }, "end": { "line": 30, - "column": 24, + "column": 23, "program": "union_types_5.ets" } } @@ -1612,7 +1612,7 @@ }, "end": { "line": 32, - "column": 31, + "column": 30, "program": "union_types_5.ets" } } @@ -1625,7 +1625,7 @@ }, "end": { "line": 32, - "column": 31, + "column": 30, "program": "union_types_5.ets" } } @@ -1638,7 +1638,7 @@ }, "end": { "line": 32, - "column": 31, + "column": 30, "program": "union_types_5.ets" } } @@ -2151,7 +2151,7 @@ }, "end": { "line": 39, - "column": 21, + "column": 20, "program": "union_types_5.ets" } } @@ -2164,7 +2164,7 @@ }, "end": { "line": 39, - "column": 21, + "column": 20, "program": "union_types_5.ets" } } @@ -2198,7 +2198,7 @@ }, "end": { "line": 39, - "column": 23, + "column": 22, "program": "union_types_5.ets" } } @@ -2211,7 +2211,7 @@ }, "end": { "line": 39, - "column": 23, + "column": 22, "program": "union_types_5.ets" } } @@ -2225,7 +2225,7 @@ }, "end": { "line": 39, - "column": 23, + "column": 22, "program": "union_types_5.ets" } } @@ -2252,7 +2252,7 @@ }, "end": { "line": 39, - "column": 24, + "column": 23, "program": "union_types_5.ets" } } @@ -2265,7 +2265,7 @@ }, "end": { "line": 39, - "column": 24, + "column": 23, "program": "union_types_5.ets" } } @@ -2279,7 +2279,7 @@ }, "end": { "line": 39, - "column": 24, + "column": 23, "program": "union_types_5.ets" } } @@ -2292,7 +2292,7 @@ }, "end": { "line": 39, - "column": 24, + "column": 23, "program": "union_types_5.ets" } } @@ -2386,7 +2386,7 @@ }, "end": { "line": 40, - "column": 31, + "column": 30, "program": "union_types_5.ets" } } @@ -2399,7 +2399,7 @@ }, "end": { "line": 40, - "column": 31, + "column": 30, "program": "union_types_5.ets" } } @@ -2412,7 +2412,7 @@ }, "end": { "line": 40, - "column": 31, + "column": 30, "program": "union_types_5.ets" } } @@ -2720,7 +2720,7 @@ }, "end": { "line": 42, - "column": 38, + "column": 37, "program": "union_types_5.ets" } } @@ -2733,7 +2733,7 @@ }, "end": { "line": 42, - "column": 38, + "column": 37, "program": "union_types_5.ets" } } @@ -2746,7 +2746,7 @@ }, "end": { "line": 42, - "column": 38, + "column": 37, "program": "union_types_5.ets" } } @@ -3314,7 +3314,7 @@ }, "end": { "line": 50, - "column": 16, + "column": 15, "program": "union_types_5.ets" } } @@ -3327,7 +3327,7 @@ }, "end": { "line": 50, - "column": 16, + "column": 15, "program": "union_types_5.ets" } } @@ -3361,7 +3361,7 @@ }, "end": { "line": 50, - "column": 18, + "column": 17, "program": "union_types_5.ets" } } @@ -3374,7 +3374,7 @@ }, "end": { "line": 50, - "column": 18, + "column": 17, "program": "union_types_5.ets" } } @@ -3388,7 +3388,7 @@ }, "end": { "line": 50, - "column": 18, + "column": 17, "program": "union_types_5.ets" } } @@ -3415,7 +3415,7 @@ }, "end": { "line": 50, - "column": 20, + "column": 18, "program": "union_types_5.ets" } } @@ -3428,7 +3428,7 @@ }, "end": { "line": 50, - "column": 20, + "column": 18, "program": "union_types_5.ets" } } @@ -3505,7 +3505,7 @@ }, "end": { "line": 50, - "column": 29, + "column": 28, "program": "union_types_5.ets" } } @@ -3518,7 +3518,7 @@ }, "end": { "line": 50, - "column": 29, + "column": 28, "program": "union_types_5.ets" } } @@ -3552,7 +3552,7 @@ }, "end": { "line": 50, - "column": 31, + "column": 30, "program": "union_types_5.ets" } } @@ -3565,7 +3565,7 @@ }, "end": { "line": 50, - "column": 31, + "column": 30, "program": "union_types_5.ets" } } @@ -3579,7 +3579,7 @@ }, "end": { "line": 50, - "column": 31, + "column": 30, "program": "union_types_5.ets" } } @@ -3606,7 +3606,7 @@ }, "end": { "line": 50, - "column": 32, + "column": 31, "program": "union_types_5.ets" } } @@ -3619,7 +3619,7 @@ }, "end": { "line": 50, - "column": 32, + "column": 31, "program": "union_types_5.ets" } } @@ -3656,7 +3656,7 @@ }, "end": { "line": 50, - "column": 38, + "column": 37, "program": "union_types_5.ets" } } @@ -3669,7 +3669,7 @@ }, "end": { "line": 50, - "column": 38, + "column": 37, "program": "union_types_5.ets" } } @@ -3985,7 +3985,7 @@ }, "end": { "line": 53, - "column": 22, + "column": 21, "program": "union_types_5.ets" } } @@ -3998,7 +3998,7 @@ }, "end": { "line": 53, - "column": 22, + "column": 21, "program": "union_types_5.ets" } } diff --git a/ets2panda/test/compiler/ets/union_types_merging-expected.txt b/ets2panda/test/compiler/ets/union_types_merging-expected.txt index 54b9ed2d39bc295d35e3656d422003f6daa00c08..30bd4b0e8a20012bb1b418ee3c246b3296940bbc 100644 --- a/ets2panda/test/compiler/ets/union_types_merging-expected.txt +++ b/ets2panda/test/compiler/ets/union_types_merging-expected.txt @@ -205,7 +205,7 @@ }, "end": { "line": 30, - "column": 22, + "column": 20, "program": "union_types_merging.ets" } } @@ -218,7 +218,7 @@ }, "end": { "line": 30, - "column": 22, + "column": 20, "program": "union_types_merging.ets" } } @@ -406,7 +406,7 @@ }, "end": { "line": 31, - "column": 22, + "column": 20, "program": "union_types_merging.ets" } } @@ -419,7 +419,7 @@ }, "end": { "line": 31, - "column": 22, + "column": 20, "program": "union_types_merging.ets" } } @@ -607,7 +607,7 @@ }, "end": { "line": 32, - "column": 22, + "column": 20, "program": "union_types_merging.ets" } } @@ -620,7 +620,7 @@ }, "end": { "line": 32, - "column": 22, + "column": 20, "program": "union_types_merging.ets" } } @@ -808,7 +808,7 @@ }, "end": { "line": 33, - "column": 22, + "column": 20, "program": "union_types_merging.ets" } } @@ -821,7 +821,7 @@ }, "end": { "line": 33, - "column": 22, + "column": 20, "program": "union_types_merging.ets" } } @@ -1164,7 +1164,7 @@ }, "end": { "line": 36, - "column": 22, + "column": 20, "program": "union_types_merging.ets" } } @@ -1177,7 +1177,7 @@ }, "end": { "line": 36, - "column": 22, + "column": 20, "program": "union_types_merging.ets" } } @@ -1365,7 +1365,7 @@ }, "end": { "line": 37, - "column": 22, + "column": 20, "program": "union_types_merging.ets" } } @@ -1378,7 +1378,7 @@ }, "end": { "line": 37, - "column": 22, + "column": 20, "program": "union_types_merging.ets" } } @@ -1566,7 +1566,7 @@ }, "end": { "line": 38, - "column": 22, + "column": 20, "program": "union_types_merging.ets" } } @@ -1579,7 +1579,7 @@ }, "end": { "line": 38, - "column": 22, + "column": 20, "program": "union_types_merging.ets" } } @@ -1767,7 +1767,7 @@ }, "end": { "line": 39, - "column": 22, + "column": 20, "program": "union_types_merging.ets" } } @@ -1780,7 +1780,7 @@ }, "end": { "line": 39, - "column": 22, + "column": 20, "program": "union_types_merging.ets" } } @@ -2155,7 +2155,7 @@ }, "end": { "line": 17, - "column": 20, + "column": 18, "program": "union_types_merging.ets" } } @@ -2168,7 +2168,7 @@ }, "end": { "line": 17, - "column": 20, + "column": 18, "program": "union_types_merging.ets" } } @@ -2202,7 +2202,7 @@ }, "end": { "line": 17, - "column": 25, + "column": 23, "program": "union_types_merging.ets" } } @@ -2215,7 +2215,7 @@ }, "end": { "line": 17, - "column": 25, + "column": 23, "program": "union_types_merging.ets" } } @@ -2249,7 +2249,7 @@ }, "end": { "line": 17, - "column": 30, + "column": 28, "program": "union_types_merging.ets" } } @@ -2262,7 +2262,7 @@ }, "end": { "line": 17, - "column": 30, + "column": 28, "program": "union_types_merging.ets" } } @@ -2296,7 +2296,7 @@ }, "end": { "line": 17, - "column": 35, + "column": 33, "program": "union_types_merging.ets" } } @@ -2309,7 +2309,7 @@ }, "end": { "line": 17, - "column": 35, + "column": 33, "program": "union_types_merging.ets" } } @@ -2343,7 +2343,7 @@ }, "end": { "line": 17, - "column": 39, + "column": 38, "program": "union_types_merging.ets" } } @@ -2356,7 +2356,7 @@ }, "end": { "line": 17, - "column": 39, + "column": 38, "program": "union_types_merging.ets" } } @@ -2370,7 +2370,7 @@ }, "end": { "line": 17, - "column": 39, + "column": 38, "program": "union_types_merging.ets" } } @@ -2458,7 +2458,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 18, "program": "union_types_merging.ets" } } @@ -2471,7 +2471,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 18, "program": "union_types_merging.ets" } } @@ -2505,7 +2505,7 @@ }, "end": { "line": 18, - "column": 25, + "column": 23, "program": "union_types_merging.ets" } } @@ -2518,7 +2518,7 @@ }, "end": { "line": 18, - "column": 25, + "column": 23, "program": "union_types_merging.ets" } } @@ -2552,7 +2552,7 @@ }, "end": { "line": 18, - "column": 30, + "column": 28, "program": "union_types_merging.ets" } } @@ -2565,7 +2565,7 @@ }, "end": { "line": 18, - "column": 30, + "column": 28, "program": "union_types_merging.ets" } } @@ -2599,7 +2599,7 @@ }, "end": { "line": 18, - "column": 35, + "column": 33, "program": "union_types_merging.ets" } } @@ -2612,7 +2612,7 @@ }, "end": { "line": 18, - "column": 35, + "column": 33, "program": "union_types_merging.ets" } } @@ -2646,7 +2646,7 @@ }, "end": { "line": 18, - "column": 39, + "column": 38, "program": "union_types_merging.ets" } } @@ -2659,7 +2659,7 @@ }, "end": { "line": 18, - "column": 39, + "column": 38, "program": "union_types_merging.ets" } } @@ -2673,7 +2673,7 @@ }, "end": { "line": 18, - "column": 39, + "column": 38, "program": "union_types_merging.ets" } } @@ -2761,7 +2761,7 @@ }, "end": { "line": 19, - "column": 20, + "column": 18, "program": "union_types_merging.ets" } } @@ -2774,7 +2774,7 @@ }, "end": { "line": 19, - "column": 20, + "column": 18, "program": "union_types_merging.ets" } } @@ -2808,7 +2808,7 @@ }, "end": { "line": 19, - "column": 25, + "column": 23, "program": "union_types_merging.ets" } } @@ -2821,7 +2821,7 @@ }, "end": { "line": 19, - "column": 25, + "column": 23, "program": "union_types_merging.ets" } } @@ -2855,7 +2855,7 @@ }, "end": { "line": 19, - "column": 30, + "column": 28, "program": "union_types_merging.ets" } } @@ -2868,7 +2868,7 @@ }, "end": { "line": 19, - "column": 30, + "column": 28, "program": "union_types_merging.ets" } } @@ -2902,7 +2902,7 @@ }, "end": { "line": 19, - "column": 35, + "column": 33, "program": "union_types_merging.ets" } } @@ -2915,7 +2915,7 @@ }, "end": { "line": 19, - "column": 35, + "column": 33, "program": "union_types_merging.ets" } } @@ -2949,7 +2949,7 @@ }, "end": { "line": 19, - "column": 40, + "column": 38, "program": "union_types_merging.ets" } } @@ -2962,7 +2962,7 @@ }, "end": { "line": 19, - "column": 40, + "column": 38, "program": "union_types_merging.ets" } } @@ -2996,7 +2996,7 @@ }, "end": { "line": 19, - "column": 45, + "column": 43, "program": "union_types_merging.ets" } } @@ -3009,7 +3009,7 @@ }, "end": { "line": 19, - "column": 45, + "column": 43, "program": "union_types_merging.ets" } } @@ -3043,7 +3043,7 @@ }, "end": { "line": 19, - "column": 50, + "column": 48, "program": "union_types_merging.ets" } } @@ -3056,7 +3056,7 @@ }, "end": { "line": 19, - "column": 50, + "column": 48, "program": "union_types_merging.ets" } } @@ -3090,7 +3090,7 @@ }, "end": { "line": 19, - "column": 55, + "column": 53, "program": "union_types_merging.ets" } } @@ -3103,7 +3103,7 @@ }, "end": { "line": 19, - "column": 55, + "column": 53, "program": "union_types_merging.ets" } } @@ -3137,7 +3137,7 @@ }, "end": { "line": 19, - "column": 60, + "column": 58, "program": "union_types_merging.ets" } } @@ -3150,7 +3150,7 @@ }, "end": { "line": 19, - "column": 60, + "column": 58, "program": "union_types_merging.ets" } } @@ -3184,7 +3184,7 @@ }, "end": { "line": 19, - "column": 64, + "column": 63, "program": "union_types_merging.ets" } } @@ -3197,7 +3197,7 @@ }, "end": { "line": 19, - "column": 64, + "column": 63, "program": "union_types_merging.ets" } } @@ -3211,7 +3211,7 @@ }, "end": { "line": 19, - "column": 64, + "column": 63, "program": "union_types_merging.ets" } } @@ -3299,7 +3299,7 @@ }, "end": { "line": 20, - "column": 20, + "column": 18, "program": "union_types_merging.ets" } } @@ -3312,7 +3312,7 @@ }, "end": { "line": 20, - "column": 20, + "column": 18, "program": "union_types_merging.ets" } } @@ -3346,7 +3346,7 @@ }, "end": { "line": 20, - "column": 25, + "column": 23, "program": "union_types_merging.ets" } } @@ -3359,7 +3359,7 @@ }, "end": { "line": 20, - "column": 25, + "column": 23, "program": "union_types_merging.ets" } } @@ -3393,7 +3393,7 @@ }, "end": { "line": 20, - "column": 30, + "column": 28, "program": "union_types_merging.ets" } } @@ -3406,7 +3406,7 @@ }, "end": { "line": 20, - "column": 30, + "column": 28, "program": "union_types_merging.ets" } } @@ -3440,7 +3440,7 @@ }, "end": { "line": 20, - "column": 35, + "column": 33, "program": "union_types_merging.ets" } } @@ -3453,7 +3453,7 @@ }, "end": { "line": 20, - "column": 35, + "column": 33, "program": "union_types_merging.ets" } } @@ -3487,7 +3487,7 @@ }, "end": { "line": 20, - "column": 40, + "column": 38, "program": "union_types_merging.ets" } } @@ -3500,7 +3500,7 @@ }, "end": { "line": 20, - "column": 40, + "column": 38, "program": "union_types_merging.ets" } } @@ -3534,7 +3534,7 @@ }, "end": { "line": 20, - "column": 49, + "column": 47, "program": "union_types_merging.ets" } } @@ -3547,7 +3547,7 @@ }, "end": { "line": 20, - "column": 49, + "column": 47, "program": "union_types_merging.ets" } } @@ -3581,7 +3581,7 @@ }, "end": { "line": 20, - "column": 54, + "column": 52, "program": "union_types_merging.ets" } } @@ -3594,7 +3594,7 @@ }, "end": { "line": 20, - "column": 54, + "column": 52, "program": "union_types_merging.ets" } } @@ -3628,7 +3628,7 @@ }, "end": { "line": 20, - "column": 59, + "column": 57, "program": "union_types_merging.ets" } } @@ -3641,7 +3641,7 @@ }, "end": { "line": 20, - "column": 59, + "column": 57, "program": "union_types_merging.ets" } } @@ -3675,7 +3675,7 @@ }, "end": { "line": 20, - "column": 64, + "column": 62, "program": "union_types_merging.ets" } } @@ -3688,7 +3688,7 @@ }, "end": { "line": 20, - "column": 64, + "column": 62, "program": "union_types_merging.ets" } } @@ -3722,7 +3722,7 @@ }, "end": { "line": 20, - "column": 69, + "column": 67, "program": "union_types_merging.ets" } } @@ -3735,7 +3735,7 @@ }, "end": { "line": 20, - "column": 69, + "column": 67, "program": "union_types_merging.ets" } } @@ -3769,7 +3769,7 @@ }, "end": { "line": 20, - "column": 73, + "column": 72, "program": "union_types_merging.ets" } } @@ -3782,7 +3782,7 @@ }, "end": { "line": 20, - "column": 73, + "column": 72, "program": "union_types_merging.ets" } } @@ -3796,7 +3796,7 @@ }, "end": { "line": 20, - "column": 73, + "column": 72, "program": "union_types_merging.ets" } } @@ -3897,7 +3897,7 @@ }, "end": { "line": 22, - "column": 19, + "column": 18, "program": "union_types_merging.ets" } } @@ -3910,7 +3910,7 @@ }, "end": { "line": 22, - "column": 19, + "column": 18, "program": "union_types_merging.ets" } } @@ -4008,7 +4008,7 @@ }, "end": { "line": 23, - "column": 19, + "column": 18, "program": "union_types_merging.ets" } } @@ -4021,7 +4021,7 @@ }, "end": { "line": 23, - "column": 19, + "column": 18, "program": "union_types_merging.ets" } } @@ -4119,7 +4119,7 @@ }, "end": { "line": 24, - "column": 19, + "column": 18, "program": "union_types_merging.ets" } } @@ -4132,7 +4132,7 @@ }, "end": { "line": 24, - "column": 19, + "column": 18, "program": "union_types_merging.ets" } } @@ -4230,7 +4230,7 @@ }, "end": { "line": 25, - "column": 19, + "column": 18, "program": "union_types_merging.ets" } } @@ -4243,7 +4243,7 @@ }, "end": { "line": 25, - "column": 19, + "column": 18, "program": "union_types_merging.ets" } } @@ -4341,7 +4341,7 @@ }, "end": { "line": 26, - "column": 23, + "column": 22, "program": "union_types_merging.ets" } } @@ -4354,7 +4354,7 @@ }, "end": { "line": 26, - "column": 23, + "column": 22, "program": "union_types_merging.ets" } } diff --git a/ets2panda/test/parser/ets/AccessBinaryTrees-expected.txt b/ets2panda/test/parser/ets/AccessBinaryTrees-expected.txt index 741fd7deaa4cfd15a30f179682f9f6666a394b46..0b6c86dc5831d6c93deb6faf2a0014f18fbd73c1 100644 --- a/ets2panda/test/parser/ets/AccessBinaryTrees-expected.txt +++ b/ets2panda/test/parser/ets/AccessBinaryTrees-expected.txt @@ -81,7 +81,7 @@ }, "end": { "line": 17, - "column": 27, + "column": 25, "program": "AccessBinaryTrees.ets" } } @@ -94,7 +94,7 @@ }, "end": { "line": 17, - "column": 27, + "column": 25, "program": "AccessBinaryTrees.ets" } } @@ -200,7 +200,7 @@ }, "end": { "line": 18, - "column": 28, + "column": 26, "program": "AccessBinaryTrees.ets" } } @@ -213,7 +213,7 @@ }, "end": { "line": 18, - "column": 28, + "column": 26, "program": "AccessBinaryTrees.ets" } } @@ -403,7 +403,7 @@ }, "end": { "line": 21, - "column": 31, + "column": 29, "program": "AccessBinaryTrees.ets" } } @@ -416,7 +416,7 @@ }, "end": { "line": 21, - "column": 31, + "column": 29, "program": "AccessBinaryTrees.ets" } } @@ -514,7 +514,7 @@ }, "end": { "line": 21, - "column": 55, + "column": 53, "program": "AccessBinaryTrees.ets" } } @@ -527,7 +527,7 @@ }, "end": { "line": 21, - "column": 55, + "column": 53, "program": "AccessBinaryTrees.ets" } } @@ -1984,7 +1984,7 @@ }, "end": { "line": 40, - "column": 57, + "column": 55, "program": "AccessBinaryTrees.ets" } } @@ -1997,7 +1997,7 @@ }, "end": { "line": 40, - "column": 57, + "column": 55, "program": "AccessBinaryTrees.ets" } } @@ -2092,7 +2092,7 @@ }, "end": { "line": 42, - "column": 26, + "column": 25, "program": "AccessBinaryTrees.ets" } } @@ -2105,7 +2105,7 @@ }, "end": { "line": 42, - "column": 26, + "column": 25, "program": "AccessBinaryTrees.ets" } } @@ -2582,7 +2582,7 @@ }, "end": { "line": 48, - "column": 24, + "column": 23, "program": "AccessBinaryTrees.ets" } } @@ -2595,7 +2595,7 @@ }, "end": { "line": 48, - "column": 24, + "column": 23, "program": "AccessBinaryTrees.ets" } } @@ -5552,7 +5552,7 @@ }, "end": { "line": 80, - "column": 33, + "column": 32, "program": "AccessBinaryTrees.ets" } } @@ -5565,7 +5565,7 @@ }, "end": { "line": 80, - "column": 33, + "column": 32, "program": "AccessBinaryTrees.ets" } } diff --git a/ets2panda/test/parser/ets/AccessFannkuch-expected.txt b/ets2panda/test/parser/ets/AccessFannkuch-expected.txt index 65ec727abb3bc332e0b40d1a22d49972a0737523..90c12dddd90c0982859568994e8d9ac2e03fd7e8 100644 --- a/ets2panda/test/parser/ets/AccessFannkuch-expected.txt +++ b/ets2panda/test/parser/ets/AccessFannkuch-expected.txt @@ -6369,7 +6369,7 @@ }, "end": { "line": 91, - "column": 32, + "column": 31, "program": "AccessFannkuch.ets" } } @@ -6382,7 +6382,7 @@ }, "end": { "line": 91, - "column": 32, + "column": 31, "program": "AccessFannkuch.ets" } } diff --git a/ets2panda/test/parser/ets/AccessNBody-expected.txt b/ets2panda/test/parser/ets/AccessNBody-expected.txt index c64a0444fa9d482e6e1cd22c9716b4c941417798..6c6c6d7bb8399492918f457136213b42d7e15db7 100644 --- a/ets2panda/test/parser/ets/AccessNBody-expected.txt +++ b/ets2panda/test/parser/ets/AccessNBody-expected.txt @@ -1964,7 +1964,7 @@ }, "end": { "line": 38, - "column": 75, + "column": 73, "program": "AccessNBody.ets" } } @@ -1977,7 +1977,7 @@ }, "end": { "line": 38, - "column": 75, + "column": 73, "program": "AccessNBody.ets" } } @@ -3750,7 +3750,7 @@ }, "end": { "line": 55, - "column": 28, + "column": 26, "program": "AccessNBody.ets" } } @@ -3763,7 +3763,7 @@ }, "end": { "line": 55, - "column": 28, + "column": 26, "program": "AccessNBody.ets" } } @@ -5538,7 +5538,7 @@ }, "end": { "line": 72, - "column": 32, + "column": 30, "program": "AccessNBody.ets" } } @@ -5551,7 +5551,7 @@ }, "end": { "line": 72, - "column": 32, + "column": 30, "program": "AccessNBody.ets" } } @@ -5921,7 +5921,7 @@ }, "end": { "line": 74, - "column": 36, + "column": 34, "program": "AccessNBody.ets" } } @@ -5934,7 +5934,7 @@ }, "end": { "line": 74, - "column": 36, + "column": 34, "program": "AccessNBody.ets" } } @@ -8446,7 +8446,7 @@ }, "end": { "line": 89, - "column": 31, + "column": 29, "program": "AccessNBody.ets" } } @@ -8459,7 +8459,7 @@ }, "end": { "line": 89, - "column": 31, + "column": 29, "program": "AccessNBody.ets" } } @@ -9987,7 +9987,7 @@ }, "end": { "line": 103, - "column": 32, + "column": 30, "program": "AccessNBody.ets" } } @@ -10000,7 +10000,7 @@ }, "end": { "line": 103, - "column": 32, + "column": 30, "program": "AccessNBody.ets" } } @@ -10903,7 +10903,7 @@ }, "end": { "line": 106, - "column": 36, + "column": 34, "program": "AccessNBody.ets" } } @@ -10916,7 +10916,7 @@ }, "end": { "line": 106, - "column": 36, + "column": 34, "program": "AccessNBody.ets" } } @@ -12627,7 +12627,7 @@ }, "end": { "line": 124, - "column": 29, + "column": 27, "program": "AccessNBody.ets" } } @@ -12640,7 +12640,7 @@ }, "end": { "line": 124, - "column": 29, + "column": 27, "program": "AccessNBody.ets" } } @@ -12681,7 +12681,7 @@ }, "end": { "line": 125, - "column": 25, + "column": 24, "program": "AccessNBody.ets" } } @@ -12694,7 +12694,7 @@ }, "end": { "line": 125, - "column": 25, + "column": 24, "program": "AccessNBody.ets" } } @@ -13039,7 +13039,7 @@ }, "end": { "line": 127, - "column": 28, + "column": 26, "program": "AccessNBody.ets" } } @@ -13052,7 +13052,7 @@ }, "end": { "line": 127, - "column": 28, + "column": 26, "program": "AccessNBody.ets" } } @@ -13093,7 +13093,7 @@ }, "end": { "line": 128, - "column": 25, + "column": 24, "program": "AccessNBody.ets" } } @@ -13106,7 +13106,7 @@ }, "end": { "line": 128, - "column": 25, + "column": 24, "program": "AccessNBody.ets" } } @@ -13451,7 +13451,7 @@ }, "end": { "line": 130, - "column": 28, + "column": 26, "program": "AccessNBody.ets" } } @@ -13464,7 +13464,7 @@ }, "end": { "line": 130, - "column": 28, + "column": 26, "program": "AccessNBody.ets" } } @@ -13505,7 +13505,7 @@ }, "end": { "line": 131, - "column": 25, + "column": 24, "program": "AccessNBody.ets" } } @@ -13518,7 +13518,7 @@ }, "end": { "line": 131, - "column": 25, + "column": 24, "program": "AccessNBody.ets" } } @@ -13863,7 +13863,7 @@ }, "end": { "line": 133, - "column": 29, + "column": 27, "program": "AccessNBody.ets" } } @@ -13876,7 +13876,7 @@ }, "end": { "line": 133, - "column": 29, + "column": 27, "program": "AccessNBody.ets" } } @@ -13917,7 +13917,7 @@ }, "end": { "line": 134, - "column": 25, + "column": 24, "program": "AccessNBody.ets" } } @@ -13930,7 +13930,7 @@ }, "end": { "line": 134, - "column": 25, + "column": 24, "program": "AccessNBody.ets" } } @@ -14275,7 +14275,7 @@ }, "end": { "line": 136, - "column": 25, + "column": 23, "program": "AccessNBody.ets" } } @@ -14288,7 +14288,7 @@ }, "end": { "line": 136, - "column": 25, + "column": 23, "program": "AccessNBody.ets" } } @@ -14329,7 +14329,7 @@ }, "end": { "line": 137, - "column": 25, + "column": 24, "program": "AccessNBody.ets" } } @@ -14342,7 +14342,7 @@ }, "end": { "line": 137, - "column": 25, + "column": 24, "program": "AccessNBody.ets" } } @@ -15083,7 +15083,7 @@ }, "end": { "line": 143, - "column": 39, + "column": 37, "program": "AccessNBody.ets" } } @@ -15096,7 +15096,7 @@ }, "end": { "line": 143, - "column": 39, + "column": 37, "program": "AccessNBody.ets" } } @@ -15146,7 +15146,7 @@ }, "end": { "line": 143, - "column": 56, + "column": 55, "program": "AccessNBody.ets" } } @@ -15159,7 +15159,7 @@ }, "end": { "line": 143, - "column": 56, + "column": 55, "program": "AccessNBody.ets" } } @@ -16836,7 +16836,7 @@ }, "end": { "line": 157, - "column": 27, + "column": 26, "program": "AccessNBody.ets" } } @@ -16849,7 +16849,7 @@ }, "end": { "line": 157, - "column": 27, + "column": 26, "program": "AccessNBody.ets" } } diff --git a/ets2panda/test/parser/ets/AccessNSieve-expected.txt b/ets2panda/test/parser/ets/AccessNSieve-expected.txt index 55fb9c7065a4bc77dc6cea53a79959c2e2c24de1..2bedee7c9ff25524311309d253c169f719fc5c08 100644 --- a/ets2panda/test/parser/ets/AccessNSieve-expected.txt +++ b/ets2panda/test/parser/ets/AccessNSieve-expected.txt @@ -3457,7 +3457,7 @@ }, "end": { "line": 60, - "column": 28, + "column": 27, "program": "AccessNSieve.ets" } } @@ -3470,7 +3470,7 @@ }, "end": { "line": 60, - "column": 28, + "column": 27, "program": "AccessNSieve.ets" } } diff --git a/ets2panda/test/parser/ets/Bitops3BitBitsInByte-expected.txt b/ets2panda/test/parser/ets/Bitops3BitBitsInByte-expected.txt index b1f1dd0298834f30d9d72604d003897a04b723d8..48f0e5eeac9842a123023b04f783929a700a9a5f 100644 --- a/ets2panda/test/parser/ets/Bitops3BitBitsInByte-expected.txt +++ b/ets2panda/test/parser/ets/Bitops3BitBitsInByte-expected.txt @@ -2477,7 +2477,7 @@ }, "end": { "line": 42, - "column": 36, + "column": 35, "program": "Bitops3BitBitsInByte.ets" } } @@ -2490,7 +2490,7 @@ }, "end": { "line": 42, - "column": 36, + "column": 35, "program": "Bitops3BitBitsInByte.ets" } } diff --git a/ets2panda/test/parser/ets/BitopsBitsInByte-expected.txt b/ets2panda/test/parser/ets/BitopsBitsInByte-expected.txt index 17e1544ecf64f15b39b4b5117b10c86b8645276a..3ca02a5e2981f891790feb75b2e22ed978d710ea 100644 --- a/ets2panda/test/parser/ets/BitopsBitsInByte-expected.txt +++ b/ets2panda/test/parser/ets/BitopsBitsInByte-expected.txt @@ -2219,7 +2219,7 @@ }, "end": { "line": 45, - "column": 32, + "column": 31, "program": "BitopsBitsInByte.ets" } } @@ -2232,7 +2232,7 @@ }, "end": { "line": 45, - "column": 32, + "column": 31, "program": "BitopsBitsInByte.ets" } } diff --git a/ets2panda/test/parser/ets/BitopsBitwiseAnd-expected.txt b/ets2panda/test/parser/ets/BitopsBitwiseAnd-expected.txt index 8d065daf16682acc8ba60e0c89d590fca77a838f..614115c9e415696c5c9f9dd7ecae88950082c0a6 100644 --- a/ets2panda/test/parser/ets/BitopsBitwiseAnd-expected.txt +++ b/ets2panda/test/parser/ets/BitopsBitwiseAnd-expected.txt @@ -1210,7 +1210,7 @@ }, "end": { "line": 31, - "column": 32, + "column": 31, "program": "BitopsBitwiseAnd.ets" } } @@ -1223,7 +1223,7 @@ }, "end": { "line": 31, - "column": 32, + "column": 31, "program": "BitopsBitwiseAnd.ets" } } diff --git a/ets2panda/test/parser/ets/BitopsNSieveBits-expected.txt b/ets2panda/test/parser/ets/BitopsNSieveBits-expected.txt index 5ca725511bbeb5af8077a434f8c60b3a3b691ce8..a56f3926beb25cc89a230990a7a62d48f212521b 100644 --- a/ets2panda/test/parser/ets/BitopsNSieveBits-expected.txt +++ b/ets2panda/test/parser/ets/BitopsNSieveBits-expected.txt @@ -4088,7 +4088,7 @@ }, "end": { "line": 58, - "column": 32, + "column": 31, "program": "BitopsNSieveBits.ets" } } @@ -4101,7 +4101,7 @@ }, "end": { "line": 58, - "column": 32, + "column": 31, "program": "BitopsNSieveBits.ets" } } diff --git a/ets2panda/test/parser/ets/Boolean_bitwise-expected.txt b/ets2panda/test/parser/ets/Boolean_bitwise-expected.txt index c18cffd19e240daccd38029ec5f1780d2cf4a4e0..2c9b987ef66b3d2dc3e439085cf146c8cf5f16af 100644 --- a/ets2panda/test/parser/ets/Boolean_bitwise-expected.txt +++ b/ets2panda/test/parser/ets/Boolean_bitwise-expected.txt @@ -234,7 +234,7 @@ }, "end": { "line": 17, - "column": 19, + "column": 17, "program": "Boolean_bitwise.ets" } } @@ -247,7 +247,7 @@ }, "end": { "line": 17, - "column": 19, + "column": 17, "program": "Boolean_bitwise.ets" } } @@ -347,7 +347,7 @@ }, "end": { "line": 18, - "column": 19, + "column": 17, "program": "Boolean_bitwise.ets" } } @@ -360,7 +360,7 @@ }, "end": { "line": 18, - "column": 19, + "column": 17, "program": "Boolean_bitwise.ets" } } @@ -460,7 +460,7 @@ }, "end": { "line": 19, - "column": 22, + "column": 20, "program": "Boolean_bitwise.ets" } } @@ -473,7 +473,7 @@ }, "end": { "line": 19, - "column": 22, + "column": 20, "program": "Boolean_bitwise.ets" } } diff --git a/ets2panda/test/parser/ets/Dollar_dollar_2-expected.txt b/ets2panda/test/parser/ets/Dollar_dollar_2-expected.txt index 9e4bd37922b1681671beb99d984c6a4babdac69b..76ddf4bd455d9988efbd3347160ff7f52a8f1515 100644 --- a/ets2panda/test/parser/ets/Dollar_dollar_2-expected.txt +++ b/ets2panda/test/parser/ets/Dollar_dollar_2-expected.txt @@ -236,7 +236,7 @@ }, "end": { "line": 19, - "column": 23, + "column": 21, "program": "Dollar_dollar_2.ets" } } @@ -249,7 +249,7 @@ }, "end": { "line": 19, - "column": 23, + "column": 21, "program": "Dollar_dollar_2.ets" } } @@ -446,7 +446,7 @@ }, "end": { "line": 20, - "column": 53, + "column": 52, "program": "Dollar_dollar_2.ets" } } @@ -459,7 +459,7 @@ }, "end": { "line": 20, - "column": 53, + "column": 52, "program": "Dollar_dollar_2.ets" } } @@ -473,7 +473,7 @@ }, "end": { "line": 20, - "column": 53, + "column": 52, "program": "Dollar_dollar_2.ets" } } @@ -486,7 +486,7 @@ }, "end": { "line": 20, - "column": 53, + "column": 52, "program": "Dollar_dollar_2.ets" } } diff --git a/ets2panda/test/parser/ets/Dollar_dollar_3-expected.txt b/ets2panda/test/parser/ets/Dollar_dollar_3-expected.txt index 1320b38631ba6fa1a5dbf9d83051ed64aa3435f1..bc0661f2d5036f890a0ec65cd94238107737250e 100644 --- a/ets2panda/test/parser/ets/Dollar_dollar_3-expected.txt +++ b/ets2panda/test/parser/ets/Dollar_dollar_3-expected.txt @@ -390,7 +390,7 @@ }, "end": { "line": 17, - "column": 17, + "column": 16, "program": "Dollar_dollar_3.ets" } } @@ -403,7 +403,7 @@ }, "end": { "line": 17, - "column": 17, + "column": 16, "program": "Dollar_dollar_3.ets" } } @@ -618,7 +618,7 @@ }, "end": { "line": 17, - "column": 17, + "column": 16, "program": "Dollar_dollar_3.ets" } } @@ -631,7 +631,7 @@ }, "end": { "line": 17, - "column": 17, + "column": 16, "program": "Dollar_dollar_3.ets" } } diff --git a/ets2panda/test/parser/ets/FunctionalTypeAsTypeArgument-expected.txt b/ets2panda/test/parser/ets/FunctionalTypeAsTypeArgument-expected.txt index 8f915148482cec6e1273ee1b821465983f867d14..1033be506370e5deddef5f70354972fe5d64d6f5 100644 --- a/ets2panda/test/parser/ets/FunctionalTypeAsTypeArgument-expected.txt +++ b/ets2panda/test/parser/ets/FunctionalTypeAsTypeArgument-expected.txt @@ -318,7 +318,7 @@ }, "end": { "line": 16, - "column": 38, + "column": 37, "program": "FunctionalTypeAsTypeArgument.ets" } } @@ -331,7 +331,7 @@ }, "end": { "line": 16, - "column": 38, + "column": 37, "program": "FunctionalTypeAsTypeArgument.ets" } } @@ -345,7 +345,7 @@ }, "end": { "line": 16, - "column": 38, + "column": 37, "program": "FunctionalTypeAsTypeArgument.ets" } } @@ -358,7 +358,7 @@ }, "end": { "line": 16, - "column": 38, + "column": 37, "program": "FunctionalTypeAsTypeArgument.ets" } } @@ -414,7 +414,7 @@ }, "end": { "line": 16, - "column": 48, + "column": 47, "program": "FunctionalTypeAsTypeArgument.ets" } } @@ -427,7 +427,7 @@ }, "end": { "line": 16, - "column": 48, + "column": 47, "program": "FunctionalTypeAsTypeArgument.ets" } } diff --git a/ets2panda/test/parser/ets/InferTypeParamFromParam1-expected.txt b/ets2panda/test/parser/ets/InferTypeParamFromParam1-expected.txt index 4423a330e5588e104144c4b64e844ad7efae8819..d3595fb50d3fda397adedbac878d86f84ffd0e06 100644 --- a/ets2panda/test/parser/ets/InferTypeParamFromParam1-expected.txt +++ b/ets2panda/test/parser/ets/InferTypeParamFromParam1-expected.txt @@ -93,8 +93,8 @@ "program": "InferTypeParamFromParam1.ets" }, "end": { - "line": 17, - "column": 10, + "line": 16, + "column": 27, "program": "InferTypeParamFromParam1.ets" } } @@ -190,7 +190,7 @@ }, "end": { "line": 17, - "column": 46, + "column": 45, "program": "InferTypeParamFromParam1.ets" } } @@ -203,7 +203,7 @@ }, "end": { "line": 17, - "column": 46, + "column": 45, "program": "InferTypeParamFromParam1.ets" } } @@ -230,7 +230,7 @@ }, "end": { "line": 17, - "column": 48, + "column": 46, "program": "InferTypeParamFromParam1.ets" } } @@ -243,7 +243,7 @@ }, "end": { "line": 17, - "column": 48, + "column": 46, "program": "InferTypeParamFromParam1.ets" } } @@ -256,7 +256,7 @@ }, "end": { "line": 17, - "column": 48, + "column": 46, "program": "InferTypeParamFromParam1.ets" } } @@ -318,8 +318,8 @@ "program": "InferTypeParamFromParam1.ets" }, "end": { - "line": 18, - "column": 6, + "line": 17, + "column": 49, "program": "InferTypeParamFromParam1.ets" } } @@ -450,7 +450,7 @@ }, "end": { "line": 18, - "column": 42, + "column": 41, "program": "InferTypeParamFromParam1.ets" } } @@ -463,7 +463,7 @@ }, "end": { "line": 18, - "column": 42, + "column": 41, "program": "InferTypeParamFromParam1.ets" } } @@ -490,7 +490,7 @@ }, "end": { "line": 18, - "column": 43, + "column": 42, "program": "InferTypeParamFromParam1.ets" } } @@ -503,7 +503,7 @@ }, "end": { "line": 18, - "column": 43, + "column": 42, "program": "InferTypeParamFromParam1.ets" } } @@ -781,7 +781,7 @@ }, "end": { "line": 20, - "column": 52, + "column": 51, "program": "InferTypeParamFromParam1.ets" } } @@ -794,7 +794,7 @@ }, "end": { "line": 20, - "column": 52, + "column": 51, "program": "InferTypeParamFromParam1.ets" } } @@ -821,7 +821,7 @@ }, "end": { "line": 20, - "column": 53, + "column": 52, "program": "InferTypeParamFromParam1.ets" } } @@ -834,7 +834,7 @@ }, "end": { "line": 20, - "column": 53, + "column": 52, "program": "InferTypeParamFromParam1.ets" } } @@ -961,7 +961,7 @@ }, "end": { "line": 21, - "column": 55, + "column": 54, "program": "InferTypeParamFromParam1.ets" } } @@ -974,7 +974,7 @@ }, "end": { "line": 21, - "column": 55, + "column": 54, "program": "InferTypeParamFromParam1.ets" } } @@ -1001,7 +1001,7 @@ }, "end": { "line": 21, - "column": 56, + "column": 55, "program": "InferTypeParamFromParam1.ets" } } @@ -1014,7 +1014,7 @@ }, "end": { "line": 21, - "column": 56, + "column": 55, "program": "InferTypeParamFromParam1.ets" } } @@ -1028,7 +1028,7 @@ }, "end": { "line": 21, - "column": 56, + "column": 55, "program": "InferTypeParamFromParam1.ets" } } @@ -1041,7 +1041,7 @@ }, "end": { "line": 21, - "column": 56, + "column": 55, "program": "InferTypeParamFromParam1.ets" } } @@ -1100,7 +1100,7 @@ }, "end": { "line": 21, - "column": 73, + "column": 72, "program": "InferTypeParamFromParam1.ets" } } @@ -1113,7 +1113,7 @@ }, "end": { "line": 21, - "column": 73, + "column": 72, "program": "InferTypeParamFromParam1.ets" } } @@ -1140,7 +1140,7 @@ }, "end": { "line": 21, - "column": 75, + "column": 73, "program": "InferTypeParamFromParam1.ets" } } @@ -1153,7 +1153,7 @@ }, "end": { "line": 21, - "column": 75, + "column": 73, "program": "InferTypeParamFromParam1.ets" } } @@ -1267,7 +1267,7 @@ }, "end": { "line": 22, - "column": 34, + "column": 33, "program": "InferTypeParamFromParam1.ets" } } @@ -1280,7 +1280,7 @@ }, "end": { "line": 22, - "column": 34, + "column": 33, "program": "InferTypeParamFromParam1.ets" } } @@ -1307,7 +1307,7 @@ }, "end": { "line": 22, - "column": 35, + "column": 34, "program": "InferTypeParamFromParam1.ets" } } @@ -1320,7 +1320,7 @@ }, "end": { "line": 22, - "column": 35, + "column": 34, "program": "InferTypeParamFromParam1.ets" } } @@ -1476,7 +1476,7 @@ }, "end": { "line": 25, - "column": 49, + "column": 48, "program": "InferTypeParamFromParam1.ets" } } @@ -1489,7 +1489,7 @@ }, "end": { "line": 25, - "column": 49, + "column": 48, "program": "InferTypeParamFromParam1.ets" } } @@ -1503,7 +1503,7 @@ }, "end": { "line": 25, - "column": 49, + "column": 48, "program": "InferTypeParamFromParam1.ets" } } @@ -1516,7 +1516,7 @@ }, "end": { "line": 25, - "column": 49, + "column": 48, "program": "InferTypeParamFromParam1.ets" } } @@ -2044,7 +2044,7 @@ }, "end": { "line": 30, - "column": 30, + "column": 29, "program": "InferTypeParamFromParam1.ets" } } @@ -2057,7 +2057,7 @@ }, "end": { "line": 30, - "column": 30, + "column": 29, "program": "InferTypeParamFromParam1.ets" } } @@ -2084,7 +2084,7 @@ }, "end": { "line": 30, - "column": 31, + "column": 30, "program": "InferTypeParamFromParam1.ets" } } @@ -2097,7 +2097,7 @@ }, "end": { "line": 30, - "column": 31, + "column": 30, "program": "InferTypeParamFromParam1.ets" } } @@ -2111,7 +2111,7 @@ }, "end": { "line": 30, - "column": 31, + "column": 30, "program": "InferTypeParamFromParam1.ets" } } @@ -2124,7 +2124,7 @@ }, "end": { "line": 30, - "column": 31, + "column": 30, "program": "InferTypeParamFromParam1.ets" } } @@ -2438,7 +2438,7 @@ }, "end": { "line": 35, - "column": 31, + "column": 30, "program": "InferTypeParamFromParam1.ets" } } @@ -2451,7 +2451,7 @@ }, "end": { "line": 35, - "column": 31, + "column": 30, "program": "InferTypeParamFromParam1.ets" } } @@ -2478,7 +2478,7 @@ }, "end": { "line": 35, - "column": 32, + "column": 31, "program": "InferTypeParamFromParam1.ets" } } @@ -2491,7 +2491,7 @@ }, "end": { "line": 35, - "column": 32, + "column": 31, "program": "InferTypeParamFromParam1.ets" } } diff --git a/ets2panda/test/parser/ets/InferTypeParamFromParam3-expected.txt b/ets2panda/test/parser/ets/InferTypeParamFromParam3-expected.txt index f043cd239edd03c79aba05aecc21fe398a86b722..5e7e8adbcd299ea5e3017c9522760e6ead0ba545 100644 --- a/ets2panda/test/parser/ets/InferTypeParamFromParam3-expected.txt +++ b/ets2panda/test/parser/ets/InferTypeParamFromParam3-expected.txt @@ -125,8 +125,8 @@ "program": "InferTypeParamFromParam3.ets" }, "end": { - "line": 17, - "column": 10, + "line": 16, + "column": 30, "program": "InferTypeParamFromParam3.ets" } } @@ -222,7 +222,7 @@ }, "end": { "line": 17, - "column": 49, + "column": 48, "program": "InferTypeParamFromParam3.ets" } } @@ -235,7 +235,7 @@ }, "end": { "line": 17, - "column": 49, + "column": 48, "program": "InferTypeParamFromParam3.ets" } } @@ -269,7 +269,7 @@ }, "end": { "line": 17, - "column": 52, + "column": 51, "program": "InferTypeParamFromParam3.ets" } } @@ -282,7 +282,7 @@ }, "end": { "line": 17, - "column": 52, + "column": 51, "program": "InferTypeParamFromParam3.ets" } } @@ -309,7 +309,7 @@ }, "end": { "line": 17, - "column": 54, + "column": 52, "program": "InferTypeParamFromParam3.ets" } } @@ -322,7 +322,7 @@ }, "end": { "line": 17, - "column": 54, + "column": 52, "program": "InferTypeParamFromParam3.ets" } } @@ -335,7 +335,7 @@ }, "end": { "line": 17, - "column": 54, + "column": 52, "program": "InferTypeParamFromParam3.ets" } } @@ -429,8 +429,8 @@ "program": "InferTypeParamFromParam3.ets" }, "end": { - "line": 18, - "column": 6, + "line": 17, + "column": 55, "program": "InferTypeParamFromParam3.ets" } } @@ -593,7 +593,7 @@ }, "end": { "line": 18, - "column": 45, + "column": 44, "program": "InferTypeParamFromParam3.ets" } } @@ -606,7 +606,7 @@ }, "end": { "line": 18, - "column": 45, + "column": 44, "program": "InferTypeParamFromParam3.ets" } } @@ -640,7 +640,7 @@ }, "end": { "line": 18, - "column": 48, + "column": 47, "program": "InferTypeParamFromParam3.ets" } } @@ -653,7 +653,7 @@ }, "end": { "line": 18, - "column": 48, + "column": 47, "program": "InferTypeParamFromParam3.ets" } } @@ -680,7 +680,7 @@ }, "end": { "line": 18, - "column": 49, + "column": 48, "program": "InferTypeParamFromParam3.ets" } } @@ -693,7 +693,7 @@ }, "end": { "line": 18, - "column": 49, + "column": 48, "program": "InferTypeParamFromParam3.ets" } } @@ -1003,7 +1003,7 @@ }, "end": { "line": 20, - "column": 55, + "column": 54, "program": "InferTypeParamFromParam3.ets" } } @@ -1016,7 +1016,7 @@ }, "end": { "line": 20, - "column": 55, + "column": 54, "program": "InferTypeParamFromParam3.ets" } } @@ -1050,7 +1050,7 @@ }, "end": { "line": 20, - "column": 58, + "column": 57, "program": "InferTypeParamFromParam3.ets" } } @@ -1063,7 +1063,7 @@ }, "end": { "line": 20, - "column": 58, + "column": 57, "program": "InferTypeParamFromParam3.ets" } } @@ -1090,7 +1090,7 @@ }, "end": { "line": 20, - "column": 59, + "column": 58, "program": "InferTypeParamFromParam3.ets" } } @@ -1103,7 +1103,7 @@ }, "end": { "line": 20, - "column": 59, + "column": 58, "program": "InferTypeParamFromParam3.ets" } } @@ -1230,7 +1230,7 @@ }, "end": { "line": 21, - "column": 67, + "column": 66, "program": "InferTypeParamFromParam3.ets" } } @@ -1243,7 +1243,7 @@ }, "end": { "line": 21, - "column": 67, + "column": 66, "program": "InferTypeParamFromParam3.ets" } } @@ -1277,7 +1277,7 @@ }, "end": { "line": 21, - "column": 70, + "column": 69, "program": "InferTypeParamFromParam3.ets" } } @@ -1290,7 +1290,7 @@ }, "end": { "line": 21, - "column": 70, + "column": 69, "program": "InferTypeParamFromParam3.ets" } } @@ -1317,7 +1317,7 @@ }, "end": { "line": 21, - "column": 71, + "column": 70, "program": "InferTypeParamFromParam3.ets" } } @@ -1330,7 +1330,7 @@ }, "end": { "line": 21, - "column": 71, + "column": 70, "program": "InferTypeParamFromParam3.ets" } } @@ -1344,7 +1344,7 @@ }, "end": { "line": 21, - "column": 71, + "column": 70, "program": "InferTypeParamFromParam3.ets" } } @@ -1357,7 +1357,7 @@ }, "end": { "line": 21, - "column": 71, + "column": 70, "program": "InferTypeParamFromParam3.ets" } } @@ -1416,7 +1416,7 @@ }, "end": { "line": 21, - "column": 88, + "column": 87, "program": "InferTypeParamFromParam3.ets" } } @@ -1429,7 +1429,7 @@ }, "end": { "line": 21, - "column": 88, + "column": 87, "program": "InferTypeParamFromParam3.ets" } } @@ -1463,7 +1463,7 @@ }, "end": { "line": 21, - "column": 91, + "column": 90, "program": "InferTypeParamFromParam3.ets" } } @@ -1476,7 +1476,7 @@ }, "end": { "line": 21, - "column": 91, + "column": 90, "program": "InferTypeParamFromParam3.ets" } } @@ -1503,7 +1503,7 @@ }, "end": { "line": 21, - "column": 93, + "column": 91, "program": "InferTypeParamFromParam3.ets" } } @@ -1516,7 +1516,7 @@ }, "end": { "line": 21, - "column": 93, + "column": 91, "program": "InferTypeParamFromParam3.ets" } } @@ -1604,7 +1604,7 @@ }, "end": { "line": 21, - "column": 48, + "column": 47, "program": "InferTypeParamFromParam3.ets" } } @@ -1617,7 +1617,7 @@ }, "end": { "line": 21, - "column": 48, + "column": 47, "program": "InferTypeParamFromParam3.ets" } } @@ -1709,7 +1709,7 @@ }, "end": { "line": 22, - "column": 34, + "column": 33, "program": "InferTypeParamFromParam3.ets" } } @@ -1722,7 +1722,7 @@ }, "end": { "line": 22, - "column": 34, + "column": 33, "program": "InferTypeParamFromParam3.ets" } } @@ -1756,7 +1756,7 @@ }, "end": { "line": 22, - "column": 37, + "column": 36, "program": "InferTypeParamFromParam3.ets" } } @@ -1769,7 +1769,7 @@ }, "end": { "line": 22, - "column": 37, + "column": 36, "program": "InferTypeParamFromParam3.ets" } } @@ -1796,7 +1796,7 @@ }, "end": { "line": 22, - "column": 38, + "column": 37, "program": "InferTypeParamFromParam3.ets" } } @@ -1809,7 +1809,7 @@ }, "end": { "line": 22, - "column": 38, + "column": 37, "program": "InferTypeParamFromParam3.ets" } } @@ -2264,7 +2264,7 @@ }, "end": { "line": 26, - "column": 30, + "column": 29, "program": "InferTypeParamFromParam3.ets" } } @@ -2277,7 +2277,7 @@ }, "end": { "line": 26, - "column": 30, + "column": 29, "program": "InferTypeParamFromParam3.ets" } } @@ -2311,7 +2311,7 @@ }, "end": { "line": 26, - "column": 38, + "column": 37, "program": "InferTypeParamFromParam3.ets" } } @@ -2324,7 +2324,7 @@ }, "end": { "line": 26, - "column": 38, + "column": 37, "program": "InferTypeParamFromParam3.ets" } } @@ -2351,7 +2351,7 @@ }, "end": { "line": 26, - "column": 39, + "column": 38, "program": "InferTypeParamFromParam3.ets" } } @@ -2364,7 +2364,7 @@ }, "end": { "line": 26, - "column": 39, + "column": 38, "program": "InferTypeParamFromParam3.ets" } } @@ -2378,7 +2378,7 @@ }, "end": { "line": 26, - "column": 39, + "column": 38, "program": "InferTypeParamFromParam3.ets" } } @@ -2391,7 +2391,7 @@ }, "end": { "line": 26, - "column": 39, + "column": 38, "program": "InferTypeParamFromParam3.ets" } } @@ -2705,7 +2705,7 @@ }, "end": { "line": 31, - "column": 31, + "column": 30, "program": "InferTypeParamFromParam3.ets" } } @@ -2718,7 +2718,7 @@ }, "end": { "line": 31, - "column": 31, + "column": 30, "program": "InferTypeParamFromParam3.ets" } } @@ -2752,7 +2752,7 @@ }, "end": { "line": 31, - "column": 39, + "column": 38, "program": "InferTypeParamFromParam3.ets" } } @@ -2765,7 +2765,7 @@ }, "end": { "line": 31, - "column": 39, + "column": 38, "program": "InferTypeParamFromParam3.ets" } } @@ -2792,7 +2792,7 @@ }, "end": { "line": 31, - "column": 40, + "column": 39, "program": "InferTypeParamFromParam3.ets" } } @@ -2805,7 +2805,7 @@ }, "end": { "line": 31, - "column": 40, + "column": 39, "program": "InferTypeParamFromParam3.ets" } } diff --git a/ets2panda/test/parser/ets/MathCordic-expected.txt b/ets2panda/test/parser/ets/MathCordic-expected.txt index ab95c14b4120f9fa58b43bddc85db83f0207bd73..4fee71fabff9f2e85d1ef7909812c097325dfe07 100644 --- a/ets2panda/test/parser/ets/MathCordic-expected.txt +++ b/ets2panda/test/parser/ets/MathCordic-expected.txt @@ -6250,7 +6250,7 @@ }, "end": { "line": 79, - "column": 26, + "column": 25, "program": "MathCordic.ets" } } @@ -6263,7 +6263,7 @@ }, "end": { "line": 79, - "column": 26, + "column": 25, "program": "MathCordic.ets" } } diff --git a/ets2panda/test/parser/ets/MathSpectralNorm-expected.txt b/ets2panda/test/parser/ets/MathSpectralNorm-expected.txt index 81b830b8f126e6d207666027430ee16f888f54df..e23fab3c9d9d4c30bacd1885f7cfbaf66190ef00 100644 --- a/ets2panda/test/parser/ets/MathSpectralNorm-expected.txt +++ b/ets2panda/test/parser/ets/MathSpectralNorm-expected.txt @@ -7361,7 +7361,7 @@ }, "end": { "line": 92, - "column": 32, + "column": 31, "program": "MathSpectralNorm.ets" } } @@ -7374,7 +7374,7 @@ }, "end": { "line": 92, - "column": 32, + "column": 31, "program": "MathSpectralNorm.ets" } } diff --git a/ets2panda/test/parser/ets/Morph3d-expected.txt b/ets2panda/test/parser/ets/Morph3d-expected.txt index 35ffe6f1196f50d1c3b9955e7c2c3ac73f070619..efa82de7ffb01c7106c744c414006696ede41b6a 100644 --- a/ets2panda/test/parser/ets/Morph3d-expected.txt +++ b/ets2panda/test/parser/ets/Morph3d-expected.txt @@ -4014,7 +4014,7 @@ }, "end": { "line": 61, - "column": 23, + "column": 22, "program": "Morph3d.ets" } } @@ -4027,7 +4027,7 @@ }, "end": { "line": 61, - "column": 23, + "column": 22, "program": "Morph3d.ets" } } diff --git a/ets2panda/test/parser/ets/OptionalParametersWithGenericReturnTypes-expected.txt b/ets2panda/test/parser/ets/OptionalParametersWithGenericReturnTypes-expected.txt index f87faf7ebadb0e268245bfd599b93c373cf4dcd2..dbf4d1436d177956ccf328beaf2517e0e2b8af7a 100644 --- a/ets2panda/test/parser/ets/OptionalParametersWithGenericReturnTypes-expected.txt +++ b/ets2panda/test/parser/ets/OptionalParametersWithGenericReturnTypes-expected.txt @@ -156,7 +156,7 @@ }, "end": { "line": 17, - "column": 24, + "column": 23, "program": "OptionalParametersWithGenericReturnTypes.ets" } } @@ -169,7 +169,7 @@ }, "end": { "line": 17, - "column": 24, + "column": 23, "program": "OptionalParametersWithGenericReturnTypes.ets" } } @@ -183,7 +183,7 @@ }, "end": { "line": 17, - "column": 24, + "column": 23, "program": "OptionalParametersWithGenericReturnTypes.ets" } } @@ -196,7 +196,7 @@ }, "end": { "line": 17, - "column": 24, + "column": 23, "program": "OptionalParametersWithGenericReturnTypes.ets" } } @@ -255,7 +255,7 @@ }, "end": { "line": 17, - "column": 30, + "column": 29, "program": "OptionalParametersWithGenericReturnTypes.ets" } } @@ -268,7 +268,7 @@ }, "end": { "line": 17, - "column": 30, + "column": 29, "program": "OptionalParametersWithGenericReturnTypes.ets" } } @@ -295,7 +295,7 @@ }, "end": { "line": 17, - "column": 32, + "column": 30, "program": "OptionalParametersWithGenericReturnTypes.ets" } } @@ -308,7 +308,7 @@ }, "end": { "line": 17, - "column": 32, + "column": 30, "program": "OptionalParametersWithGenericReturnTypes.ets" } } @@ -872,7 +872,7 @@ }, "end": { "line": 23, - "column": 24, + "column": 23, "program": "OptionalParametersWithGenericReturnTypes.ets" } } @@ -885,7 +885,7 @@ }, "end": { "line": 23, - "column": 24, + "column": 23, "program": "OptionalParametersWithGenericReturnTypes.ets" } } @@ -899,7 +899,7 @@ }, "end": { "line": 23, - "column": 24, + "column": 23, "program": "OptionalParametersWithGenericReturnTypes.ets" } } @@ -912,7 +912,7 @@ }, "end": { "line": 23, - "column": 24, + "column": 23, "program": "OptionalParametersWithGenericReturnTypes.ets" } } @@ -971,7 +971,7 @@ }, "end": { "line": 23, - "column": 30, + "column": 29, "program": "OptionalParametersWithGenericReturnTypes.ets" } } @@ -984,7 +984,7 @@ }, "end": { "line": 23, - "column": 30, + "column": 29, "program": "OptionalParametersWithGenericReturnTypes.ets" } } @@ -1018,7 +1018,7 @@ }, "end": { "line": 23, - "column": 32, + "column": 31, "program": "OptionalParametersWithGenericReturnTypes.ets" } } @@ -1031,7 +1031,7 @@ }, "end": { "line": 23, - "column": 32, + "column": 31, "program": "OptionalParametersWithGenericReturnTypes.ets" } } @@ -1058,7 +1058,7 @@ }, "end": { "line": 23, - "column": 34, + "column": 32, "program": "OptionalParametersWithGenericReturnTypes.ets" } } @@ -1071,7 +1071,7 @@ }, "end": { "line": 23, - "column": 34, + "column": 32, "program": "OptionalParametersWithGenericReturnTypes.ets" } } diff --git a/ets2panda/test/parser/ets/StaticFieldAndMethodSameName-expected.txt b/ets2panda/test/parser/ets/StaticFieldAndMethodSameName-expected.txt index 583a8f6d7d5ad61d3b1c3b03bd26d4ccca061da6..bf69b66fa948d6860445f590ad2eee8c7aa051ad 100644 --- a/ets2panda/test/parser/ets/StaticFieldAndMethodSameName-expected.txt +++ b/ets2panda/test/parser/ets/StaticFieldAndMethodSameName-expected.txt @@ -94,7 +94,7 @@ }, "end": { "line": 17, - "column": 15, + "column": 13, "program": "StaticFieldAndMethodSameName.ets" } } @@ -107,7 +107,7 @@ }, "end": { "line": 17, - "column": 15, + "column": 13, "program": "StaticFieldAndMethodSameName.ets" } } @@ -694,7 +694,7 @@ }, "end": { "line": 23, - "column": 11, + "column": 10, "program": "StaticFieldAndMethodSameName.ets" } } @@ -707,7 +707,7 @@ }, "end": { "line": 23, - "column": 11, + "column": 10, "program": "StaticFieldAndMethodSameName.ets" } } diff --git a/ets2panda/test/parser/ets/StaticFieldAndMethodSameNameInheritance-expected.txt b/ets2panda/test/parser/ets/StaticFieldAndMethodSameNameInheritance-expected.txt index 02df1019bffd4bd1f6fc59d107273ac9d5b30f26..4ed09144c7cca2f024a47f96e541511f9327a4c3 100644 --- a/ets2panda/test/parser/ets/StaticFieldAndMethodSameNameInheritance-expected.txt +++ b/ets2panda/test/parser/ets/StaticFieldAndMethodSameNameInheritance-expected.txt @@ -326,7 +326,7 @@ }, "end": { "line": 20, - "column": 20, + "column": 18, "program": "StaticFieldAndMethodSameNameInheritance.ets" } } @@ -339,7 +339,7 @@ }, "end": { "line": 20, - "column": 20, + "column": 18, "program": "StaticFieldAndMethodSameNameInheritance.ets" } } @@ -416,7 +416,7 @@ }, "end": { "line": 21, - "column": 15, + "column": 13, "program": "StaticFieldAndMethodSameNameInheritance.ets" } } @@ -429,7 +429,7 @@ }, "end": { "line": 21, - "column": 15, + "column": 13, "program": "StaticFieldAndMethodSameNameInheritance.ets" } } @@ -895,7 +895,7 @@ }, "end": { "line": 26, - "column": 11, + "column": 10, "program": "StaticFieldAndMethodSameNameInheritance.ets" } } @@ -908,7 +908,7 @@ }, "end": { "line": 26, - "column": 11, + "column": 10, "program": "StaticFieldAndMethodSameNameInheritance.ets" } } diff --git a/ets2panda/test/parser/ets/StringBase64-expected.txt b/ets2panda/test/parser/ets/StringBase64-expected.txt index 3f5fe930faee5bbf69b9544581ae67dbe4676c80..0c52d2cd0dc9ffaabf66fb75ab1ca7958c45c02a 100644 --- a/ets2panda/test/parser/ets/StringBase64-expected.txt +++ b/ets2panda/test/parser/ets/StringBase64-expected.txt @@ -94,7 +94,7 @@ }, "end": { "line": 17, - "column": 47, + "column": 45, "program": "StringBase64.ets" } } @@ -107,7 +107,7 @@ }, "end": { "line": 17, - "column": 47, + "column": 45, "program": "StringBase64.ets" } } @@ -2465,7 +2465,7 @@ }, "end": { "line": 20, - "column": 29, + "column": 28, "program": "StringBase64.ets" } } @@ -2478,7 +2478,7 @@ }, "end": { "line": 20, - "column": 29, + "column": 28, "program": "StringBase64.ets" } } @@ -2492,7 +2492,7 @@ }, "end": { "line": 20, - "column": 29, + "column": 28, "program": "StringBase64.ets" } } @@ -2505,7 +2505,7 @@ }, "end": { "line": 20, - "column": 29, + "column": 28, "program": "StringBase64.ets" } } @@ -2540,7 +2540,7 @@ }, "end": { "line": 20, - "column": 39, + "column": 37, "program": "StringBase64.ets" } } @@ -2553,7 +2553,7 @@ }, "end": { "line": 20, - "column": 39, + "column": 37, "program": "StringBase64.ets" } } @@ -2598,7 +2598,7 @@ }, "end": { "line": 21, - "column": 37, + "column": 35, "program": "StringBase64.ets" } } @@ -2611,7 +2611,7 @@ }, "end": { "line": 21, - "column": 37, + "column": 35, "program": "StringBase64.ets" } } @@ -2661,7 +2661,7 @@ }, "end": { "line": 21, - "column": 56, + "column": 55, "program": "StringBase64.ets" } } @@ -2674,7 +2674,7 @@ }, "end": { "line": 21, - "column": 56, + "column": 55, "program": "StringBase64.ets" } } @@ -6975,7 +6975,7 @@ }, "end": { "line": 46, - "column": 35, + "column": 34, "program": "StringBase64.ets" } } @@ -6988,7 +6988,7 @@ }, "end": { "line": 46, - "column": 35, + "column": 34, "program": "StringBase64.ets" } } @@ -7002,7 +7002,7 @@ }, "end": { "line": 46, - "column": 35, + "column": 34, "program": "StringBase64.ets" } } @@ -7015,7 +7015,7 @@ }, "end": { "line": 46, - "column": 35, + "column": 34, "program": "StringBase64.ets" } } @@ -7050,7 +7050,7 @@ }, "end": { "line": 46, - "column": 45, + "column": 43, "program": "StringBase64.ets" } } @@ -7063,7 +7063,7 @@ }, "end": { "line": 46, - "column": 45, + "column": 43, "program": "StringBase64.ets" } } @@ -7108,7 +7108,7 @@ }, "end": { "line": 47, - "column": 37, + "column": 35, "program": "StringBase64.ets" } } @@ -7121,7 +7121,7 @@ }, "end": { "line": 47, - "column": 37, + "column": 35, "program": "StringBase64.ets" } } @@ -7171,7 +7171,7 @@ }, "end": { "line": 47, - "column": 56, + "column": 55, "program": "StringBase64.ets" } } @@ -7184,7 +7184,7 @@ }, "end": { "line": 47, - "column": 56, + "column": 55, "program": "StringBase64.ets" } } @@ -9374,7 +9374,7 @@ }, "end": { "line": 73, - "column": 27, + "column": 25, "program": "StringBase64.ets" } } @@ -9387,7 +9387,7 @@ }, "end": { "line": 73, - "column": 27, + "column": 25, "program": "StringBase64.ets" } } @@ -10214,7 +10214,7 @@ }, "end": { "line": 78, - "column": 34, + "column": 32, "program": "StringBase64.ets" } } @@ -10227,7 +10227,7 @@ }, "end": { "line": 78, - "column": 34, + "column": 32, "program": "StringBase64.ets" } } @@ -10395,7 +10395,7 @@ }, "end": { "line": 79, - "column": 35, + "column": 33, "program": "StringBase64.ets" } } @@ -10408,7 +10408,7 @@ }, "end": { "line": 79, - "column": 35, + "column": 33, "program": "StringBase64.ets" } } @@ -11202,7 +11202,7 @@ }, "end": { "line": 89, - "column": 28, + "column": 27, "program": "StringBase64.ets" } } @@ -11215,7 +11215,7 @@ }, "end": { "line": 89, - "column": 28, + "column": 27, "program": "StringBase64.ets" } } diff --git a/ets2panda/test/parser/ets/ambient_call_signature-expected.txt b/ets2panda/test/parser/ets/ambient_call_signature-expected.txt index 2af8e374b297cff1dbf35765eb13461f9531d663..cac03c53accbad9b91c8b279b277ba1c22d8a477 100644 --- a/ets2panda/test/parser/ets/ambient_call_signature-expected.txt +++ b/ets2panda/test/parser/ets/ambient_call_signature-expected.txt @@ -107,7 +107,7 @@ }, "end": { "line": 17, - "column": 15, + "column": 14, "program": "ambient_call_signature.ets" } } @@ -120,7 +120,7 @@ }, "end": { "line": 17, - "column": 15, + "column": 14, "program": "ambient_call_signature.ets" } } @@ -134,7 +134,7 @@ }, "end": { "line": 17, - "column": 15, + "column": 14, "program": "ambient_call_signature.ets" } } @@ -147,7 +147,7 @@ }, "end": { "line": 17, - "column": 15, + "column": 14, "program": "ambient_call_signature.ets" } } @@ -181,8 +181,8 @@ "program": "ambient_call_signature.ets" }, "end": { - "line": 18, - "column": 2, + "line": 17, + "column": 22, "program": "ambient_call_signature.ets" } } @@ -194,8 +194,8 @@ "program": "ambient_call_signature.ets" }, "end": { - "line": 18, - "column": 2, + "line": 17, + "column": 22, "program": "ambient_call_signature.ets" } } diff --git a/ets2panda/test/parser/ets/ambient_indexer_1-expected.txt b/ets2panda/test/parser/ets/ambient_indexer_1-expected.txt index 0cbb526fdccf5bd95cc739d624b802f4afcc95c9..94274e8f4bbbcc9fcaf428f992cf3ed6cc218303 100644 --- a/ets2panda/test/parser/ets/ambient_indexer_1-expected.txt +++ b/ets2panda/test/parser/ets/ambient_indexer_1-expected.txt @@ -857,7 +857,7 @@ }, "end": { "line": 21, - "column": 16, + "column": 14, "program": "ambient_indexer_1.ets" } } @@ -870,7 +870,7 @@ }, "end": { "line": 21, - "column": 16, + "column": 14, "program": "ambient_indexer_1.ets" } } @@ -920,7 +920,7 @@ }, "end": { "line": 21, - "column": 23, + "column": 22, "program": "ambient_indexer_1.ets" } } @@ -933,7 +933,7 @@ }, "end": { "line": 21, - "column": 23, + "column": 22, "program": "ambient_indexer_1.ets" } } diff --git a/ets2panda/test/parser/ets/ambient_indexer_6-expected.txt b/ets2panda/test/parser/ets/ambient_indexer_6-expected.txt index 87d901d090d73e5a0c80cdade1061491f2498b3f..c4b51ab23cd56efc09ca10065c05962278f3d64d 100644 --- a/ets2panda/test/parser/ets/ambient_indexer_6-expected.txt +++ b/ets2panda/test/parser/ets/ambient_indexer_6-expected.txt @@ -857,7 +857,7 @@ }, "end": { "line": 21, - "column": 16, + "column": 14, "program": "ambient_indexer_6.ets" } } @@ -870,7 +870,7 @@ }, "end": { "line": 21, - "column": 16, + "column": 14, "program": "ambient_indexer_6.ets" } } @@ -920,7 +920,7 @@ }, "end": { "line": 21, - "column": 23, + "column": 22, "program": "ambient_indexer_6.ets" } } @@ -933,7 +933,7 @@ }, "end": { "line": 21, - "column": 23, + "column": 22, "program": "ambient_indexer_6.ets" } } diff --git a/ets2panda/test/parser/ets/ambient_object_iterable-expected.txt b/ets2panda/test/parser/ets/ambient_object_iterable-expected.txt index a0db0354614621a800f254dadff157a41163e52a..b63cb1f23429598d1e245dbaa99854938a4270b4 100644 --- a/ets2panda/test/parser/ets/ambient_object_iterable-expected.txt +++ b/ets2panda/test/parser/ets/ambient_object_iterable-expected.txt @@ -78,7 +78,7 @@ }, "end": { "line": 16, - "column": 52, + "column": 51, "program": "ambient_object_iterable.ets" } } @@ -91,7 +91,7 @@ }, "end": { "line": 16, - "column": 52, + "column": 51, "program": "ambient_object_iterable.ets" } } @@ -118,7 +118,7 @@ }, "end": { "line": 16, - "column": 54, + "column": 52, "program": "ambient_object_iterable.ets" } } @@ -131,7 +131,7 @@ }, "end": { "line": 16, - "column": 54, + "column": 52, "program": "ambient_object_iterable.ets" } } @@ -260,7 +260,7 @@ }, "end": { "line": 19, - "column": 19, + "column": 18, "program": "ambient_object_iterable.ets" } } @@ -273,7 +273,7 @@ }, "end": { "line": 19, - "column": 19, + "column": 18, "program": "ambient_object_iterable.ets" } } @@ -288,7 +288,7 @@ }, "end": { "line": 19, - "column": 19, + "column": 18, "program": "ambient_object_iterable.ets" } } @@ -376,7 +376,7 @@ }, "end": { "line": 21, - "column": 24, + "column": 23, "program": "ambient_object_iterable.ets" } } @@ -389,7 +389,7 @@ }, "end": { "line": 21, - "column": 24, + "column": 23, "program": "ambient_object_iterable.ets" } } @@ -403,7 +403,7 @@ }, "end": { "line": 21, - "column": 24, + "column": 23, "program": "ambient_object_iterable.ets" } } @@ -416,7 +416,7 @@ }, "end": { "line": 21, - "column": 24, + "column": 23, "program": "ambient_object_iterable.ets" } } @@ -566,7 +566,7 @@ }, "end": { "line": 23, - "column": 42, + "column": 41, "program": "ambient_object_iterable.ets" } } @@ -579,7 +579,7 @@ }, "end": { "line": 23, - "column": 42, + "column": 41, "program": "ambient_object_iterable.ets" } } @@ -605,8 +605,8 @@ "program": "ambient_object_iterable.ets" }, "end": { - "line": 24, - "column": 2, + "line": 23, + "column": 42, "program": "ambient_object_iterable.ets" } } @@ -618,8 +618,8 @@ "program": "ambient_object_iterable.ets" }, "end": { - "line": 24, - "column": 2, + "line": 23, + "column": 42, "program": "ambient_object_iterable.ets" } } @@ -944,8 +944,8 @@ "program": "ambient_object_iterable.ets" }, "end": { - "line": 30, - "column": 2, + "line": 29, + "column": 33, "program": "ambient_object_iterable.ets" } } @@ -957,8 +957,8 @@ "program": "ambient_object_iterable.ets" }, "end": { - "line": 30, - "column": 2, + "line": 29, + "column": 33, "program": "ambient_object_iterable.ets" } } @@ -1386,7 +1386,7 @@ }, "end": { "line": 34, - "column": 17, + "column": 16, "program": "ambient_object_iterable.ets" } } @@ -1399,7 +1399,7 @@ }, "end": { "line": 34, - "column": 17, + "column": 16, "program": "ambient_object_iterable.ets" } } diff --git a/ets2panda/test/parser/ets/array_creation_expression-expected.txt b/ets2panda/test/parser/ets/array_creation_expression-expected.txt index 1a0fdd026edbe1f9c7fe19950bd45ff90d2dc04f..c1cf9705a89d35f88d9919d70559ce7d9bb23a1a 100644 --- a/ets2panda/test/parser/ets/array_creation_expression-expected.txt +++ b/ets2panda/test/parser/ets/array_creation_expression-expected.txt @@ -78,7 +78,7 @@ }, "end": { "line": 17, - "column": 15, + "column": 14, "program": "array_creation_expression.ets" } } @@ -91,7 +91,7 @@ }, "end": { "line": 17, - "column": 15, + "column": 14, "program": "array_creation_expression.ets" } } @@ -106,7 +106,7 @@ }, "end": { "line": 17, - "column": 15, + "column": 14, "program": "array_creation_expression.ets" } } @@ -165,7 +165,7 @@ }, "end": { "line": 18, - "column": 15, + "column": 14, "program": "array_creation_expression.ets" } } @@ -178,7 +178,7 @@ }, "end": { "line": 18, - "column": 15, + "column": 14, "program": "array_creation_expression.ets" } } @@ -193,7 +193,7 @@ }, "end": { "line": 18, - "column": 15, + "column": 14, "program": "array_creation_expression.ets" } } @@ -638,7 +638,7 @@ }, "end": { "line": 25, - "column": 29, + "column": 27, "program": "array_creation_expression.ets" } } @@ -651,7 +651,7 @@ }, "end": { "line": 25, - "column": 29, + "column": 27, "program": "array_creation_expression.ets" } } @@ -1342,7 +1342,7 @@ }, "end": { "line": 32, - "column": 24, + "column": 23, "program": "array_creation_expression.ets" } } @@ -1355,7 +1355,7 @@ }, "end": { "line": 32, - "column": 24, + "column": 23, "program": "array_creation_expression.ets" } } @@ -1470,7 +1470,7 @@ }, "end": { "line": 33, - "column": 24, + "column": 23, "program": "array_creation_expression.ets" } } @@ -1483,7 +1483,7 @@ }, "end": { "line": 33, - "column": 24, + "column": 23, "program": "array_creation_expression.ets" } } @@ -1598,7 +1598,7 @@ }, "end": { "line": 34, - "column": 21, + "column": 20, "program": "array_creation_expression.ets" } } @@ -1611,7 +1611,7 @@ }, "end": { "line": 34, - "column": 21, + "column": 20, "program": "array_creation_expression.ets" } } @@ -1726,7 +1726,7 @@ }, "end": { "line": 35, - "column": 23, + "column": 22, "program": "array_creation_expression.ets" } } @@ -1739,7 +1739,7 @@ }, "end": { "line": 35, - "column": 23, + "column": 22, "program": "array_creation_expression.ets" } } @@ -1878,7 +1878,7 @@ }, "end": { "line": 36, - "column": 32, + "column": 31, "program": "array_creation_expression.ets" } } @@ -1891,7 +1891,7 @@ }, "end": { "line": 36, - "column": 32, + "column": 31, "program": "array_creation_expression.ets" } } @@ -1918,7 +1918,7 @@ }, "end": { "line": 36, - "column": 33, + "column": 32, "program": "array_creation_expression.ets" } } @@ -1931,7 +1931,7 @@ }, "end": { "line": 36, - "column": 33, + "column": 32, "program": "array_creation_expression.ets" } } diff --git a/ets2panda/test/parser/ets/assignNullableFromMethodToNullableParam-expected.txt b/ets2panda/test/parser/ets/assignNullableFromMethodToNullableParam-expected.txt index 63d8c1ba459f732be2fc0f09a483fd8ad0f4aab5..3d381f859d5c2972747fff4efccd2a5f0cfd7217 100644 --- a/ets2panda/test/parser/ets/assignNullableFromMethodToNullableParam-expected.txt +++ b/ets2panda/test/parser/ets/assignNullableFromMethodToNullableParam-expected.txt @@ -105,7 +105,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 14, "program": "assignNullableFromMethodToNullableParam.ets" } } @@ -118,7 +118,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 14, "program": "assignNullableFromMethodToNullableParam.ets" } } @@ -188,7 +188,7 @@ }, "end": { "line": 18, - "column": 22, + "column": 21, "program": "assignNullableFromMethodToNullableParam.ets" } } @@ -201,7 +201,7 @@ }, "end": { "line": 18, - "column": 22, + "column": 21, "program": "assignNullableFromMethodToNullableParam.ets" } } @@ -656,7 +656,7 @@ }, "end": { "line": 23, - "column": 17, + "column": 15, "program": "assignNullableFromMethodToNullableParam.ets" } } @@ -669,7 +669,7 @@ }, "end": { "line": 23, - "column": 17, + "column": 15, "program": "assignNullableFromMethodToNullableParam.ets" } } @@ -748,7 +748,7 @@ }, "end": { "line": 23, - "column": 31, + "column": 30, "program": "assignNullableFromMethodToNullableParam.ets" } } @@ -761,7 +761,7 @@ }, "end": { "line": 23, - "column": 31, + "column": 30, "program": "assignNullableFromMethodToNullableParam.ets" } } @@ -845,7 +845,7 @@ }, "end": { "line": 24, - "column": 21, + "column": 19, "program": "assignNullableFromMethodToNullableParam.ets" } } @@ -858,7 +858,7 @@ }, "end": { "line": 24, - "column": 21, + "column": 19, "program": "assignNullableFromMethodToNullableParam.ets" } } diff --git a/ets2panda/test/parser/ets/assignNullableToNonNullable-expected.txt b/ets2panda/test/parser/ets/assignNullableToNonNullable-expected.txt index 2aca76bfaea1760e1a6c1f7b5d60f8ffbf34656c..cee3555d6ffd9f91a98265584627305f664fa42d 100644 --- a/ets2panda/test/parser/ets/assignNullableToNonNullable-expected.txt +++ b/ets2panda/test/parser/ets/assignNullableToNonNullable-expected.txt @@ -389,7 +389,7 @@ }, "end": { "line": 19, - "column": 20, + "column": 19, "program": "assignNullableToNonNullable.ets" } } @@ -402,7 +402,7 @@ }, "end": { "line": 19, - "column": 20, + "column": 19, "program": "assignNullableToNonNullable.ets" } } @@ -490,7 +490,7 @@ }, "end": { "line": 20, - "column": 17, + "column": 15, "program": "assignNullableToNonNullable.ets" } } @@ -503,7 +503,7 @@ }, "end": { "line": 20, - "column": 17, + "column": 15, "program": "assignNullableToNonNullable.ets" } } @@ -582,7 +582,7 @@ }, "end": { "line": 20, - "column": 31, + "column": 30, "program": "assignNullableToNonNullable.ets" } } @@ -595,7 +595,7 @@ }, "end": { "line": 20, - "column": 31, + "column": 30, "program": "assignNullableToNonNullable.ets" } } diff --git a/ets2panda/test/parser/ets/assignNullableToNonNullableArray-expected.txt b/ets2panda/test/parser/ets/assignNullableToNonNullableArray-expected.txt index 42083111fb83d4ed5434b8d4b2c5650758f19b4d..c3d394c6e9352cba865c05e5cc30d2885f83c31f 100644 --- a/ets2panda/test/parser/ets/assignNullableToNonNullableArray-expected.txt +++ b/ets2panda/test/parser/ets/assignNullableToNonNullableArray-expected.txt @@ -413,7 +413,7 @@ }, "end": { "line": 19, - "column": 32, + "column": 31, "program": "assignNullableToNonNullableArray.ets" } } @@ -426,7 +426,7 @@ }, "end": { "line": 19, - "column": 32, + "column": 31, "program": "assignNullableToNonNullableArray.ets" } } @@ -453,7 +453,7 @@ }, "end": { "line": 19, - "column": 33, + "column": 32, "program": "assignNullableToNonNullableArray.ets" } } @@ -466,7 +466,7 @@ }, "end": { "line": 19, - "column": 33, + "column": 32, "program": "assignNullableToNonNullableArray.ets" } } @@ -578,7 +578,7 @@ }, "end": { "line": 20, - "column": 27, + "column": 26, "program": "assignNullableToNonNullableArray.ets" } } @@ -591,7 +591,7 @@ }, "end": { "line": 20, - "column": 27, + "column": 26, "program": "assignNullableToNonNullableArray.ets" } } @@ -618,7 +618,7 @@ }, "end": { "line": 20, - "column": 29, + "column": 27, "program": "assignNullableToNonNullableArray.ets" } } @@ -631,7 +631,7 @@ }, "end": { "line": 20, - "column": 29, + "column": 27, "program": "assignNullableToNonNullableArray.ets" } } @@ -713,7 +713,7 @@ }, "end": { "line": 20, - "column": 44, + "column": 43, "program": "assignNullableToNonNullableArray.ets" } } @@ -726,7 +726,7 @@ }, "end": { "line": 20, - "column": 44, + "column": 43, "program": "assignNullableToNonNullableArray.ets" } } @@ -776,7 +776,7 @@ }, "end": { "line": 20, - "column": 53, + "column": 52, "program": "assignNullableToNonNullableArray.ets" } } @@ -789,7 +789,7 @@ }, "end": { "line": 20, - "column": 53, + "column": 52, "program": "assignNullableToNonNullableArray.ets" } } diff --git a/ets2panda/test/parser/ets/assignNullableToNonNullableTypeAlias-expected.txt b/ets2panda/test/parser/ets/assignNullableToNonNullableTypeAlias-expected.txt index 6c337052f3c35cd055a6a704dd96c330f3a2decb..12eaa2d99e14a04d67e59dde4d2d01325c7fce8e 100644 --- a/ets2panda/test/parser/ets/assignNullableToNonNullableTypeAlias-expected.txt +++ b/ets2panda/test/parser/ets/assignNullableToNonNullableTypeAlias-expected.txt @@ -207,7 +207,7 @@ }, "end": { "line": 18, - "column": 14, + "column": 12, "program": "assignNullableToNonNullableTypeAlias.ets" } } @@ -220,7 +220,7 @@ }, "end": { "line": 18, - "column": 14, + "column": 12, "program": "assignNullableToNonNullableTypeAlias.ets" } } @@ -500,7 +500,7 @@ }, "end": { "line": 21, - "column": 20, + "column": 19, "program": "assignNullableToNonNullableTypeAlias.ets" } } @@ -513,7 +513,7 @@ }, "end": { "line": 21, - "column": 20, + "column": 19, "program": "assignNullableToNonNullableTypeAlias.ets" } } @@ -598,7 +598,7 @@ }, "end": { "line": 22, - "column": 18, + "column": 16, "program": "assignNullableToNonNullableTypeAlias.ets" } } @@ -611,7 +611,7 @@ }, "end": { "line": 22, - "column": 18, + "column": 16, "program": "assignNullableToNonNullableTypeAlias.ets" } } @@ -661,7 +661,7 @@ }, "end": { "line": 22, - "column": 25, + "column": 24, "program": "assignNullableToNonNullableTypeAlias.ets" } } @@ -674,7 +674,7 @@ }, "end": { "line": 22, - "column": 25, + "column": 24, "program": "assignNullableToNonNullableTypeAlias.ets" } } diff --git a/ets2panda/test/parser/ets/async_func_return_type-expected.txt b/ets2panda/test/parser/ets/async_func_return_type-expected.txt index 79eae8cee49f4fc1bded6757008af034112cd0ee..1773d4d19a1f115674b989266236c6182e4dd3be 100644 --- a/ets2panda/test/parser/ets/async_func_return_type-expected.txt +++ b/ets2panda/test/parser/ets/async_func_return_type-expected.txt @@ -346,7 +346,7 @@ }, "end": { "line": 16, - "column": 50, + "column": 49, "program": "async_func_return_type.ets" } } @@ -359,7 +359,7 @@ }, "end": { "line": 16, - "column": 50, + "column": 49, "program": "async_func_return_type.ets" } } @@ -515,7 +515,7 @@ }, "end": { "line": 18, - "column": 37, + "column": 35, "program": "async_func_return_type.ets" } } @@ -528,7 +528,7 @@ }, "end": { "line": 18, - "column": 37, + "column": 35, "program": "async_func_return_type.ets" } } @@ -780,7 +780,7 @@ }, "end": { "line": 22, - "column": 53, + "column": 51, "program": "async_func_return_type.ets" } } @@ -793,7 +793,7 @@ }, "end": { "line": 22, - "column": 53, + "column": 51, "program": "async_func_return_type.ets" } } diff --git a/ets2panda/test/parser/ets/async_function-expected.txt b/ets2panda/test/parser/ets/async_function-expected.txt index 07c34ec1ac43ec4e745b3234ff26516091ca8067..89e223dc4425a6e6acdd8ae8d5f9525bd8cb3da2 100644 --- a/ets2panda/test/parser/ets/async_function-expected.txt +++ b/ets2panda/test/parser/ets/async_function-expected.txt @@ -129,7 +129,7 @@ }, "end": { "line": 17, - "column": 41, + "column": 39, "program": "async_function.ets" } } @@ -142,7 +142,7 @@ }, "end": { "line": 17, - "column": 41, + "column": 39, "program": "async_function.ets" } } @@ -198,7 +198,7 @@ }, "end": { "line": 17, - "column": 49, + "column": 47, "program": "async_function.ets" } } @@ -211,7 +211,7 @@ }, "end": { "line": 17, - "column": 49, + "column": 47, "program": "async_function.ets" } } @@ -705,7 +705,7 @@ }, "end": { "line": 22, - "column": 70, + "column": 68, "program": "async_function.ets" } } @@ -718,7 +718,7 @@ }, "end": { "line": 22, - "column": 70, + "column": 68, "program": "async_function.ets" } } @@ -774,7 +774,7 @@ }, "end": { "line": 22, - "column": 79, + "column": 76, "program": "async_function.ets" } } @@ -787,7 +787,7 @@ }, "end": { "line": 22, - "column": 79, + "column": 76, "program": "async_function.ets" } } @@ -1052,7 +1052,7 @@ }, "end": { "line": 20, - "column": 39, + "column": 37, "program": "async_function.ets" } } @@ -1065,7 +1065,7 @@ }, "end": { "line": 20, - "column": 39, + "column": 37, "program": "async_function.ets" } } @@ -1121,7 +1121,7 @@ }, "end": { "line": 20, - "column": 47, + "column": 45, "program": "async_function.ets" } } @@ -1134,7 +1134,7 @@ }, "end": { "line": 20, - "column": 47, + "column": 45, "program": "async_function.ets" } } @@ -1312,7 +1312,7 @@ }, "end": { "line": 22, - "column": 35, + "column": 33, "program": "async_function.ets" } } @@ -1325,7 +1325,7 @@ }, "end": { "line": 22, - "column": 35, + "column": 33, "program": "async_function.ets" } } @@ -1381,7 +1381,7 @@ }, "end": { "line": 22, - "column": 43, + "column": 41, "program": "async_function.ets" } } @@ -1394,7 +1394,7 @@ }, "end": { "line": 22, - "column": 43, + "column": 41, "program": "async_function.ets" } } @@ -1407,7 +1407,7 @@ }, "end": { "line": 22, - "column": 43, + "column": 41, "program": "async_function.ets" } } diff --git a/ets2panda/test/parser/ets/async_overload-expected.txt b/ets2panda/test/parser/ets/async_overload-expected.txt index ca6a8d918f60081a8931d442fae97edd453b6335..9930044848b7e37d1c76072a540b5bffc072d798 100644 --- a/ets2panda/test/parser/ets/async_overload-expected.txt +++ b/ets2panda/test/parser/ets/async_overload-expected.txt @@ -177,7 +177,7 @@ }, "end": { "line": 17, - "column": 40, + "column": 38, "program": "async_overload.ets" } } @@ -190,7 +190,7 @@ }, "end": { "line": 17, - "column": 40, + "column": 38, "program": "async_overload.ets" } } @@ -246,7 +246,7 @@ }, "end": { "line": 17, - "column": 48, + "column": 46, "program": "async_overload.ets" } } @@ -259,7 +259,7 @@ }, "end": { "line": 17, - "column": 48, + "column": 46, "program": "async_overload.ets" } } @@ -425,7 +425,7 @@ }, "end": { "line": 21, - "column": 26, + "column": 24, "program": "async_overload.ets" } } @@ -438,7 +438,7 @@ }, "end": { "line": 21, - "column": 26, + "column": 24, "program": "async_overload.ets" } } @@ -603,7 +603,7 @@ }, "end": { "line": 21, - "column": 58, + "column": 56, "program": "async_overload.ets" } } @@ -616,7 +616,7 @@ }, "end": { "line": 21, - "column": 58, + "column": 56, "program": "async_overload.ets" } } @@ -672,7 +672,7 @@ }, "end": { "line": 21, - "column": 66, + "column": 64, "program": "async_overload.ets" } } @@ -685,7 +685,7 @@ }, "end": { "line": 21, - "column": 66, + "column": 64, "program": "async_overload.ets" } } @@ -1176,7 +1176,7 @@ }, "end": { "line": 25, - "column": 45, + "column": 43, "program": "async_overload.ets" } } @@ -1189,7 +1189,7 @@ }, "end": { "line": 25, - "column": 45, + "column": 43, "program": "async_overload.ets" } } @@ -1245,7 +1245,7 @@ }, "end": { "line": 25, - "column": 53, + "column": 51, "program": "async_overload.ets" } } @@ -1258,7 +1258,7 @@ }, "end": { "line": 25, - "column": 53, + "column": 51, "program": "async_overload.ets" } } @@ -1424,7 +1424,7 @@ }, "end": { "line": 29, - "column": 31, + "column": 29, "program": "async_overload.ets" } } @@ -1437,7 +1437,7 @@ }, "end": { "line": 29, - "column": 31, + "column": 29, "program": "async_overload.ets" } } @@ -1602,7 +1602,7 @@ }, "end": { "line": 29, - "column": 63, + "column": 61, "program": "async_overload.ets" } } @@ -1615,7 +1615,7 @@ }, "end": { "line": 29, - "column": 63, + "column": 61, "program": "async_overload.ets" } } @@ -1671,7 +1671,7 @@ }, "end": { "line": 29, - "column": 70, + "column": 69, "program": "async_overload.ets" } } @@ -1684,7 +1684,7 @@ }, "end": { "line": 29, - "column": 70, + "column": 69, "program": "async_overload.ets" } } @@ -2061,7 +2061,7 @@ }, "end": { "line": 36, - "column": 23, + "column": 22, "program": "async_overload.ets" } } @@ -2074,7 +2074,7 @@ }, "end": { "line": 36, - "column": 23, + "column": 22, "program": "async_overload.ets" } } diff --git a/ets2panda/test/parser/ets/async_with_lambda-expected.txt b/ets2panda/test/parser/ets/async_with_lambda-expected.txt index 9e47c47d77fd0bc236d66dc08df2976189603faf..a8b26e25f2c986af95a3486778f05b6061f00335 100644 --- a/ets2panda/test/parser/ets/async_with_lambda-expected.txt +++ b/ets2panda/test/parser/ets/async_with_lambda-expected.txt @@ -444,7 +444,7 @@ }, "end": { "line": 18, - "column": 50, + "column": 48, "program": "async_with_lambda.ets" } } @@ -457,7 +457,7 @@ }, "end": { "line": 18, - "column": 50, + "column": 48, "program": "async_with_lambda.ets" } } @@ -513,7 +513,7 @@ }, "end": { "line": 18, - "column": 58, + "column": 56, "program": "async_with_lambda.ets" } } @@ -526,7 +526,7 @@ }, "end": { "line": 18, - "column": 58, + "column": 56, "program": "async_with_lambda.ets" } } @@ -977,7 +977,7 @@ }, "end": { "line": 26, - "column": 45, + "column": 43, "program": "async_with_lambda.ets" } } @@ -990,7 +990,7 @@ }, "end": { "line": 26, - "column": 45, + "column": 43, "program": "async_with_lambda.ets" } } @@ -1046,7 +1046,7 @@ }, "end": { "line": 26, - "column": 53, + "column": 51, "program": "async_with_lambda.ets" } } @@ -1059,7 +1059,7 @@ }, "end": { "line": 26, - "column": 53, + "column": 51, "program": "async_with_lambda.ets" } } @@ -1072,7 +1072,7 @@ }, "end": { "line": 26, - "column": 53, + "column": 51, "program": "async_with_lambda.ets" } } @@ -1156,7 +1156,7 @@ }, "end": { "line": 26, - "column": 80, + "column": 78, "program": "async_with_lambda.ets" } } @@ -1169,7 +1169,7 @@ }, "end": { "line": 26, - "column": 80, + "column": 78, "program": "async_with_lambda.ets" } } @@ -1225,7 +1225,7 @@ }, "end": { "line": 26, - "column": 89, + "column": 86, "program": "async_with_lambda.ets" } } @@ -1238,7 +1238,7 @@ }, "end": { "line": 26, - "column": 89, + "column": 86, "program": "async_with_lambda.ets" } } @@ -1571,7 +1571,7 @@ }, "end": { "line": 33, - "column": 43, + "column": 42, "program": "async_with_lambda.ets" } } @@ -1584,7 +1584,7 @@ }, "end": { "line": 33, - "column": 43, + "column": 42, "program": "async_with_lambda.ets" } } @@ -1611,7 +1611,7 @@ }, "end": { "line": 33, - "column": 45, + "column": 43, "program": "async_with_lambda.ets" } } @@ -1624,7 +1624,7 @@ }, "end": { "line": 33, - "column": 45, + "column": 43, "program": "async_with_lambda.ets" } } @@ -1637,7 +1637,7 @@ }, "end": { "line": 33, - "column": 45, + "column": 43, "program": "async_with_lambda.ets" } } @@ -1718,7 +1718,7 @@ }, "end": { "line": 33, - "column": 71, + "column": 70, "program": "async_with_lambda.ets" } } @@ -1731,7 +1731,7 @@ }, "end": { "line": 33, - "column": 71, + "column": 70, "program": "async_with_lambda.ets" } } @@ -1758,7 +1758,7 @@ }, "end": { "line": 33, - "column": 74, + "column": 71, "program": "async_with_lambda.ets" } } @@ -1771,7 +1771,7 @@ }, "end": { "line": 33, - "column": 74, + "column": 71, "program": "async_with_lambda.ets" } } @@ -1836,7 +1836,7 @@ }, "end": { "line": 34, - "column": 35, + "column": 34, "program": "async_with_lambda.ets" } } @@ -1849,7 +1849,7 @@ }, "end": { "line": 34, - "column": 35, + "column": 34, "program": "async_with_lambda.ets" } } @@ -1876,7 +1876,7 @@ }, "end": { "line": 34, - "column": 36, + "column": 35, "program": "async_with_lambda.ets" } } @@ -1889,7 +1889,7 @@ }, "end": { "line": 34, - "column": 36, + "column": 35, "program": "async_with_lambda.ets" } } @@ -1946,7 +1946,7 @@ }, "end": { "line": 34, - "column": 61, + "column": 60, "program": "async_with_lambda.ets" } } @@ -1959,7 +1959,7 @@ }, "end": { "line": 34, - "column": 61, + "column": 60, "program": "async_with_lambda.ets" } } @@ -1973,7 +1973,7 @@ }, "end": { "line": 34, - "column": 61, + "column": 60, "program": "async_with_lambda.ets" } } @@ -1986,7 +1986,7 @@ }, "end": { "line": 34, - "column": 61, + "column": 60, "program": "async_with_lambda.ets" } } @@ -2119,7 +2119,7 @@ }, "end": { "line": 35, - "column": 32, + "column": 31, "program": "async_with_lambda.ets" } } @@ -2132,7 +2132,7 @@ }, "end": { "line": 35, - "column": 32, + "column": 31, "program": "async_with_lambda.ets" } } diff --git a/ets2panda/test/parser/ets/await_complex_promise-expected.txt b/ets2panda/test/parser/ets/await_complex_promise-expected.txt index 1b5b00439c727949848e67fce52d2f7505628202..1a81850799003b49deca4d9d8cb1896b03660969 100644 --- a/ets2panda/test/parser/ets/await_complex_promise-expected.txt +++ b/ets2panda/test/parser/ets/await_complex_promise-expected.txt @@ -76,7 +76,7 @@ }, "end": { "line": 32, - "column": 29, + "column": 28, "program": "await_complex_promise.ets" } } @@ -89,7 +89,7 @@ }, "end": { "line": 32, - "column": 29, + "column": 28, "program": "await_complex_promise.ets" } } @@ -116,7 +116,7 @@ }, "end": { "line": 32, - "column": 30, + "column": 29, "program": "await_complex_promise.ets" } } @@ -129,7 +129,7 @@ }, "end": { "line": 32, - "column": 30, + "column": 29, "program": "await_complex_promise.ets" } } @@ -163,7 +163,7 @@ }, "end": { "line": 32, - "column": 37, + "column": 36, "program": "await_complex_promise.ets" } } @@ -176,7 +176,7 @@ }, "end": { "line": 32, - "column": 37, + "column": 36, "program": "await_complex_promise.ets" } } @@ -190,7 +190,7 @@ }, "end": { "line": 32, - "column": 37, + "column": 36, "program": "await_complex_promise.ets" } } @@ -574,7 +574,7 @@ }, "end": { "line": 16, - "column": 42, + "column": 40, "program": "await_complex_promise.ets" } } @@ -587,7 +587,7 @@ }, "end": { "line": 16, - "column": 42, + "column": 40, "program": "await_complex_promise.ets" } } @@ -654,7 +654,7 @@ }, "end": { "line": 16, - "column": 43, + "column": 42, "program": "await_complex_promise.ets" } } @@ -667,7 +667,7 @@ }, "end": { "line": 16, - "column": 43, + "column": 42, "program": "await_complex_promise.ets" } } @@ -681,7 +681,7 @@ }, "end": { "line": 16, - "column": 43, + "column": 42, "program": "await_complex_promise.ets" } } @@ -694,7 +694,7 @@ }, "end": { "line": 16, - "column": 43, + "column": 42, "program": "await_complex_promise.ets" } } @@ -755,7 +755,7 @@ }, "end": { "line": 17, - "column": 25, + "column": 23, "program": "await_complex_promise.ets" } } @@ -768,7 +768,7 @@ }, "end": { "line": 17, - "column": 25, + "column": 23, "program": "await_complex_promise.ets" } } @@ -1036,7 +1036,7 @@ }, "end": { "line": 20, - "column": 41, + "column": 40, "program": "await_complex_promise.ets" } } @@ -1049,7 +1049,7 @@ }, "end": { "line": 20, - "column": 41, + "column": 40, "program": "await_complex_promise.ets" } } @@ -1076,7 +1076,7 @@ }, "end": { "line": 20, - "column": 42, + "column": 41, "program": "await_complex_promise.ets" } } @@ -1089,7 +1089,7 @@ }, "end": { "line": 20, - "column": 42, + "column": 41, "program": "await_complex_promise.ets" } } @@ -1123,7 +1123,7 @@ }, "end": { "line": 20, - "column": 49, + "column": 48, "program": "await_complex_promise.ets" } } @@ -1136,7 +1136,7 @@ }, "end": { "line": 20, - "column": 49, + "column": 48, "program": "await_complex_promise.ets" } } @@ -1150,7 +1150,7 @@ }, "end": { "line": 20, - "column": 49, + "column": 48, "program": "await_complex_promise.ets" } } @@ -1177,7 +1177,7 @@ }, "end": { "line": 20, - "column": 50, + "column": 49, "program": "await_complex_promise.ets" } } @@ -1190,7 +1190,7 @@ }, "end": { "line": 20, - "column": 50, + "column": 49, "program": "await_complex_promise.ets" } } @@ -1204,7 +1204,7 @@ }, "end": { "line": 20, - "column": 50, + "column": 49, "program": "await_complex_promise.ets" } } @@ -1217,7 +1217,7 @@ }, "end": { "line": 20, - "column": 50, + "column": 49, "program": "await_complex_promise.ets" } } @@ -1281,7 +1281,7 @@ }, "end": { "line": 21, - "column": 24, + "column": 23, "program": "await_complex_promise.ets" } } @@ -1294,7 +1294,7 @@ }, "end": { "line": 21, - "column": 24, + "column": 23, "program": "await_complex_promise.ets" } } @@ -1328,7 +1328,7 @@ }, "end": { "line": 21, - "column": 32, + "column": 30, "program": "await_complex_promise.ets" } } @@ -1341,7 +1341,7 @@ }, "end": { "line": 21, - "column": 32, + "column": 30, "program": "await_complex_promise.ets" } } @@ -1355,7 +1355,7 @@ }, "end": { "line": 21, - "column": 32, + "column": 30, "program": "await_complex_promise.ets" } } @@ -1623,7 +1623,7 @@ }, "end": { "line": 24, - "column": 41, + "column": 40, "program": "await_complex_promise.ets" } } @@ -1636,7 +1636,7 @@ }, "end": { "line": 24, - "column": 41, + "column": 40, "program": "await_complex_promise.ets" } } @@ -1663,7 +1663,7 @@ }, "end": { "line": 24, - "column": 42, + "column": 41, "program": "await_complex_promise.ets" } } @@ -1676,7 +1676,7 @@ }, "end": { "line": 24, - "column": 42, + "column": 41, "program": "await_complex_promise.ets" } } @@ -1734,7 +1734,7 @@ }, "end": { "line": 24, - "column": 58, + "column": 56, "program": "await_complex_promise.ets" } } @@ -1747,7 +1747,7 @@ }, "end": { "line": 24, - "column": 58, + "column": 56, "program": "await_complex_promise.ets" } } @@ -1828,7 +1828,7 @@ }, "end": { "line": 24, - "column": 59, + "column": 58, "program": "await_complex_promise.ets" } } @@ -1841,7 +1841,7 @@ }, "end": { "line": 24, - "column": 59, + "column": 58, "program": "await_complex_promise.ets" } } @@ -1855,7 +1855,7 @@ }, "end": { "line": 24, - "column": 59, + "column": 58, "program": "await_complex_promise.ets" } } @@ -1868,7 +1868,7 @@ }, "end": { "line": 24, - "column": 59, + "column": 58, "program": "await_complex_promise.ets" } } @@ -1932,7 +1932,7 @@ }, "end": { "line": 25, - "column": 24, + "column": 23, "program": "await_complex_promise.ets" } } @@ -1945,7 +1945,7 @@ }, "end": { "line": 25, - "column": 24, + "column": 23, "program": "await_complex_promise.ets" } } @@ -1979,7 +1979,7 @@ }, "end": { "line": 25, - "column": 32, + "column": 30, "program": "await_complex_promise.ets" } } @@ -1992,7 +1992,7 @@ }, "end": { "line": 25, - "column": 32, + "column": 30, "program": "await_complex_promise.ets" } } @@ -2006,7 +2006,7 @@ }, "end": { "line": 25, - "column": 32, + "column": 30, "program": "await_complex_promise.ets" } } @@ -2289,7 +2289,7 @@ }, "end": { "line": 28, - "column": 47, + "column": 45, "program": "await_complex_promise.ets" } } @@ -2302,7 +2302,7 @@ }, "end": { "line": 28, - "column": 47, + "column": 45, "program": "await_complex_promise.ets" } } @@ -2383,7 +2383,7 @@ }, "end": { "line": 28, - "column": 48, + "column": 47, "program": "await_complex_promise.ets" } } @@ -2396,7 +2396,7 @@ }, "end": { "line": 28, - "column": 48, + "column": 47, "program": "await_complex_promise.ets" } } @@ -2410,7 +2410,7 @@ }, "end": { "line": 28, - "column": 48, + "column": 47, "program": "await_complex_promise.ets" } } @@ -2423,7 +2423,7 @@ }, "end": { "line": 28, - "column": 48, + "column": 47, "program": "await_complex_promise.ets" } } @@ -2502,7 +2502,7 @@ }, "end": { "line": 29, - "column": 30, + "column": 28, "program": "await_complex_promise.ets" } } @@ -2515,7 +2515,7 @@ }, "end": { "line": 29, - "column": 30, + "column": 28, "program": "await_complex_promise.ets" } } @@ -2529,7 +2529,7 @@ }, "end": { "line": 29, - "column": 30, + "column": 28, "program": "await_complex_promise.ets" } } @@ -2770,7 +2770,7 @@ }, "end": { "line": 33, - "column": 32, + "column": 31, "program": "await_complex_promise.ets" } } @@ -2783,7 +2783,7 @@ }, "end": { "line": 33, - "column": 32, + "column": 31, "program": "await_complex_promise.ets" } } @@ -2810,7 +2810,7 @@ }, "end": { "line": 33, - "column": 33, + "column": 32, "program": "await_complex_promise.ets" } } @@ -2823,7 +2823,7 @@ }, "end": { "line": 33, - "column": 33, + "column": 32, "program": "await_complex_promise.ets" } } @@ -2837,7 +2837,7 @@ }, "end": { "line": 33, - "column": 33, + "column": 32, "program": "await_complex_promise.ets" } } @@ -2850,7 +2850,7 @@ }, "end": { "line": 33, - "column": 33, + "column": 32, "program": "await_complex_promise.ets" } } @@ -2914,7 +2914,7 @@ }, "end": { "line": 34, - "column": 24, + "column": 23, "program": "await_complex_promise.ets" } } @@ -2927,7 +2927,7 @@ }, "end": { "line": 34, - "column": 24, + "column": 23, "program": "await_complex_promise.ets" } } @@ -2961,7 +2961,7 @@ }, "end": { "line": 34, - "column": 32, + "column": 30, "program": "await_complex_promise.ets" } } @@ -2974,7 +2974,7 @@ }, "end": { "line": 34, - "column": 32, + "column": 30, "program": "await_complex_promise.ets" } } @@ -2988,7 +2988,7 @@ }, "end": { "line": 34, - "column": 32, + "column": 30, "program": "await_complex_promise.ets" } } diff --git a/ets2panda/test/parser/ets/await_keyword-expected.txt b/ets2panda/test/parser/ets/await_keyword-expected.txt index 250f778f4540efb374f7d1a4bd5ed9323645d903..eb68f44567d8663e460289c84e7a21bb9d6a4a78 100644 --- a/ets2panda/test/parser/ets/await_keyword-expected.txt +++ b/ets2panda/test/parser/ets/await_keyword-expected.txt @@ -269,7 +269,7 @@ }, "end": { "line": 22, - "column": 75, + "column": 73, "program": "await_keyword.ets" } } @@ -282,7 +282,7 @@ }, "end": { "line": 22, - "column": 75, + "column": 73, "program": "await_keyword.ets" } } @@ -338,7 +338,7 @@ }, "end": { "line": 22, - "column": 84, + "column": 81, "program": "await_keyword.ets" } } @@ -351,7 +351,7 @@ }, "end": { "line": 22, - "column": 84, + "column": 81, "program": "await_keyword.ets" } } @@ -426,7 +426,7 @@ }, "end": { "line": 23, - "column": 34, + "column": 32, "program": "await_keyword.ets" } } @@ -439,7 +439,7 @@ }, "end": { "line": 23, - "column": 34, + "column": 32, "program": "await_keyword.ets" } } @@ -495,7 +495,7 @@ }, "end": { "line": 23, - "column": 42, + "column": 40, "program": "await_keyword.ets" } } @@ -508,7 +508,7 @@ }, "end": { "line": 23, - "column": 42, + "column": 40, "program": "await_keyword.ets" } } @@ -626,7 +626,7 @@ }, "end": { "line": 23, - "column": 70, + "column": 68, "program": "await_keyword.ets" } } @@ -639,7 +639,7 @@ }, "end": { "line": 23, - "column": 70, + "column": 68, "program": "await_keyword.ets" } } @@ -695,7 +695,7 @@ }, "end": { "line": 23, - "column": 78, + "column": 76, "program": "await_keyword.ets" } } @@ -708,7 +708,7 @@ }, "end": { "line": 23, - "column": 78, + "column": 76, "program": "await_keyword.ets" } } @@ -899,7 +899,7 @@ }, "end": { "line": 24, - "column": 22, + "column": 20, "program": "await_keyword.ets" } } @@ -912,7 +912,7 @@ }, "end": { "line": 24, - "column": 22, + "column": 20, "program": "await_keyword.ets" } } @@ -1249,7 +1249,7 @@ }, "end": { "line": 34, - "column": 34, + "column": 32, "program": "await_keyword.ets" } } @@ -1262,7 +1262,7 @@ }, "end": { "line": 34, - "column": 34, + "column": 32, "program": "await_keyword.ets" } } @@ -1318,7 +1318,7 @@ }, "end": { "line": 34, - "column": 42, + "column": 40, "program": "await_keyword.ets" } } @@ -1331,7 +1331,7 @@ }, "end": { "line": 34, - "column": 42, + "column": 40, "program": "await_keyword.ets" } } @@ -1449,7 +1449,7 @@ }, "end": { "line": 34, - "column": 70, + "column": 68, "program": "await_keyword.ets" } } @@ -1462,7 +1462,7 @@ }, "end": { "line": 34, - "column": 70, + "column": 68, "program": "await_keyword.ets" } } @@ -1518,7 +1518,7 @@ }, "end": { "line": 34, - "column": 78, + "column": 76, "program": "await_keyword.ets" } } @@ -1531,7 +1531,7 @@ }, "end": { "line": 34, - "column": 78, + "column": 76, "program": "await_keyword.ets" } } @@ -1722,7 +1722,7 @@ }, "end": { "line": 35, - "column": 22, + "column": 20, "program": "await_keyword.ets" } } @@ -1735,7 +1735,7 @@ }, "end": { "line": 35, - "column": 22, + "column": 20, "program": "await_keyword.ets" } } @@ -2243,7 +2243,7 @@ }, "end": { "line": 16, - "column": 44, + "column": 42, "program": "await_keyword.ets" } } @@ -2256,7 +2256,7 @@ }, "end": { "line": 16, - "column": 44, + "column": 42, "program": "await_keyword.ets" } } @@ -2312,7 +2312,7 @@ }, "end": { "line": 16, - "column": 52, + "column": 50, "program": "await_keyword.ets" } } @@ -2325,7 +2325,7 @@ }, "end": { "line": 16, - "column": 52, + "column": 50, "program": "await_keyword.ets" } } @@ -2400,7 +2400,7 @@ }, "end": { "line": 17, - "column": 34, + "column": 32, "program": "await_keyword.ets" } } @@ -2413,7 +2413,7 @@ }, "end": { "line": 17, - "column": 34, + "column": 32, "program": "await_keyword.ets" } } @@ -2469,7 +2469,7 @@ }, "end": { "line": 17, - "column": 42, + "column": 40, "program": "await_keyword.ets" } } @@ -2482,7 +2482,7 @@ }, "end": { "line": 17, - "column": 42, + "column": 40, "program": "await_keyword.ets" } } @@ -2600,7 +2600,7 @@ }, "end": { "line": 17, - "column": 70, + "column": 68, "program": "await_keyword.ets" } } @@ -2613,7 +2613,7 @@ }, "end": { "line": 17, - "column": 70, + "column": 68, "program": "await_keyword.ets" } } @@ -2669,7 +2669,7 @@ }, "end": { "line": 17, - "column": 78, + "column": 76, "program": "await_keyword.ets" } } @@ -2682,7 +2682,7 @@ }, "end": { "line": 17, - "column": 78, + "column": 76, "program": "await_keyword.ets" } } @@ -2873,7 +2873,7 @@ }, "end": { "line": 18, - "column": 22, + "column": 20, "program": "await_keyword.ets" } } @@ -2886,7 +2886,7 @@ }, "end": { "line": 18, - "column": 22, + "column": 20, "program": "await_keyword.ets" } } @@ -3180,7 +3180,7 @@ }, "end": { "line": 22, - "column": 40, + "column": 38, "program": "await_keyword.ets" } } @@ -3193,7 +3193,7 @@ }, "end": { "line": 22, - "column": 40, + "column": 38, "program": "await_keyword.ets" } } @@ -3249,7 +3249,7 @@ }, "end": { "line": 22, - "column": 48, + "column": 46, "program": "await_keyword.ets" } } @@ -3262,7 +3262,7 @@ }, "end": { "line": 22, - "column": 48, + "column": 46, "program": "await_keyword.ets" } } @@ -3275,7 +3275,7 @@ }, "end": { "line": 22, - "column": 48, + "column": 46, "program": "await_keyword.ets" } } @@ -3429,7 +3429,7 @@ }, "end": { "line": 29, - "column": 34, + "column": 32, "program": "await_keyword.ets" } } @@ -3442,7 +3442,7 @@ }, "end": { "line": 29, - "column": 34, + "column": 32, "program": "await_keyword.ets" } } @@ -3498,7 +3498,7 @@ }, "end": { "line": 29, - "column": 42, + "column": 40, "program": "await_keyword.ets" } } @@ -3511,7 +3511,7 @@ }, "end": { "line": 29, - "column": 42, + "column": 40, "program": "await_keyword.ets" } } @@ -3629,7 +3629,7 @@ }, "end": { "line": 29, - "column": 70, + "column": 68, "program": "await_keyword.ets" } } @@ -3642,7 +3642,7 @@ }, "end": { "line": 29, - "column": 70, + "column": 68, "program": "await_keyword.ets" } } @@ -3698,7 +3698,7 @@ }, "end": { "line": 29, - "column": 78, + "column": 76, "program": "await_keyword.ets" } } @@ -3711,7 +3711,7 @@ }, "end": { "line": 29, - "column": 78, + "column": 76, "program": "await_keyword.ets" } } @@ -3902,7 +3902,7 @@ }, "end": { "line": 30, - "column": 22, + "column": 20, "program": "await_keyword.ets" } } @@ -3915,7 +3915,7 @@ }, "end": { "line": 30, - "column": 22, + "column": 20, "program": "await_keyword.ets" } } @@ -4248,7 +4248,7 @@ }, "end": { "line": 38, - "column": 30, + "column": 28, "program": "await_keyword.ets" } } @@ -4261,7 +4261,7 @@ }, "end": { "line": 38, - "column": 30, + "column": 28, "program": "await_keyword.ets" } } @@ -4317,7 +4317,7 @@ }, "end": { "line": 38, - "column": 38, + "column": 36, "program": "await_keyword.ets" } } @@ -4330,7 +4330,7 @@ }, "end": { "line": 38, - "column": 38, + "column": 36, "program": "await_keyword.ets" } } @@ -4436,7 +4436,7 @@ }, "end": { "line": 39, - "column": 18, + "column": 16, "program": "await_keyword.ets" } } @@ -4449,7 +4449,7 @@ }, "end": { "line": 39, - "column": 18, + "column": 16, "program": "await_keyword.ets" } } diff --git a/ets2panda/test/parser/ets/binary_op-expected.txt b/ets2panda/test/parser/ets/binary_op-expected.txt index f4bf9db30e5338a17104e70bbcb55ffa3fef1f8a..e6e6d1b35cea83428fa5979f377f4f915111d753 100644 --- a/ets2panda/test/parser/ets/binary_op-expected.txt +++ b/ets2panda/test/parser/ets/binary_op-expected.txt @@ -491,7 +491,7 @@ }, "end": { "line": 21, - "column": 21, + "column": 20, "program": "binary_op.ets" } } @@ -504,7 +504,7 @@ }, "end": { "line": 21, - "column": 21, + "column": 20, "program": "binary_op.ets" } } @@ -3073,7 +3073,7 @@ }, "end": { "line": 53, - "column": 32, + "column": 31, "program": "binary_op.ets" } } @@ -3086,7 +3086,7 @@ }, "end": { "line": 53, - "column": 32, + "column": 31, "program": "binary_op.ets" } } @@ -3099,7 +3099,7 @@ }, "end": { "line": 53, - "column": 32, + "column": 31, "program": "binary_op.ets" } } @@ -3112,7 +3112,7 @@ }, "end": { "line": 53, - "column": 32, + "column": 31, "program": "binary_op.ets" } } @@ -3125,7 +3125,7 @@ }, "end": { "line": 53, - "column": 32, + "column": 31, "program": "binary_op.ets" } } @@ -6116,7 +6116,7 @@ }, "end": { "line": 21, - "column": 21, + "column": 20, "program": "binary_op.ets" } } @@ -6129,7 +6129,7 @@ }, "end": { "line": 21, - "column": 21, + "column": 20, "program": "binary_op.ets" } } @@ -6226,7 +6226,7 @@ }, "end": { "line": 22, - "column": 17, + "column": 15, "program": "binary_op.ets" } } @@ -6239,7 +6239,7 @@ }, "end": { "line": 22, - "column": 17, + "column": 15, "program": "binary_op.ets" } } @@ -8585,7 +8585,7 @@ }, "end": { "line": 53, - "column": 32, + "column": 31, "program": "binary_op.ets" } } @@ -8598,7 +8598,7 @@ }, "end": { "line": 53, - "column": 32, + "column": 31, "program": "binary_op.ets" } } @@ -8611,7 +8611,7 @@ }, "end": { "line": 53, - "column": 32, + "column": 31, "program": "binary_op.ets" } } @@ -8632,7 +8632,7 @@ }, "end": { "line": 53, - "column": 32, + "column": 31, "program": "binary_op.ets" } } diff --git a/ets2panda/test/parser/ets/callFunctionWithNullableParam-expected.txt b/ets2panda/test/parser/ets/callFunctionWithNullableParam-expected.txt index 343d19a3edcb9d8f61dd392486b280ac37468643..b94291f4bd11fddaaddf2687b80c53640a015f68 100644 --- a/ets2panda/test/parser/ets/callFunctionWithNullableParam-expected.txt +++ b/ets2panda/test/parser/ets/callFunctionWithNullableParam-expected.txt @@ -368,7 +368,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "callFunctionWithNullableParam.ets" } } @@ -381,7 +381,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "callFunctionWithNullableParam.ets" } } @@ -395,7 +395,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "callFunctionWithNullableParam.ets" } } @@ -408,7 +408,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "callFunctionWithNullableParam.ets" } } @@ -593,7 +593,7 @@ }, "end": { "line": 21, - "column": 17, + "column": 15, "program": "callFunctionWithNullableParam.ets" } } @@ -606,7 +606,7 @@ }, "end": { "line": 21, - "column": 17, + "column": 15, "program": "callFunctionWithNullableParam.ets" } } @@ -685,7 +685,7 @@ }, "end": { "line": 21, - "column": 31, + "column": 30, "program": "callFunctionWithNullableParam.ets" } } @@ -698,7 +698,7 @@ }, "end": { "line": 21, - "column": 31, + "column": 30, "program": "callFunctionWithNullableParam.ets" } } diff --git a/ets2panda/test/parser/ets/callInterfaceMethodWithNullableParam-expected.txt b/ets2panda/test/parser/ets/callInterfaceMethodWithNullableParam-expected.txt index 5f65c07269b36dc319bdc26488c3f9b681a1e8d0..365e73d36b268489f5a7b8f17d007f55ac3e4bfe 100644 --- a/ets2panda/test/parser/ets/callInterfaceMethodWithNullableParam-expected.txt +++ b/ets2panda/test/parser/ets/callInterfaceMethodWithNullableParam-expected.txt @@ -89,7 +89,7 @@ }, "end": { "line": 17, - "column": 15, + "column": 14, "program": "callInterfaceMethodWithNullableParam.ets" } } @@ -102,7 +102,7 @@ }, "end": { "line": 17, - "column": 15, + "column": 14, "program": "callInterfaceMethodWithNullableParam.ets" } } @@ -116,7 +116,7 @@ }, "end": { "line": 17, - "column": 15, + "column": 14, "program": "callInterfaceMethodWithNullableParam.ets" } } @@ -129,7 +129,7 @@ }, "end": { "line": 17, - "column": 15, + "column": 14, "program": "callInterfaceMethodWithNullableParam.ets" } } @@ -230,8 +230,8 @@ "program": "callInterfaceMethodWithNullableParam.ets" }, "end": { - "line": 20, - "column": 6, + "line": 18, + "column": 2, "program": "callInterfaceMethodWithNullableParam.ets" } } @@ -289,7 +289,7 @@ }, "end": { "line": 20, - "column": 23, + "column": 21, "program": "callInterfaceMethodWithNullableParam.ets" } } @@ -302,7 +302,7 @@ }, "end": { "line": 20, - "column": 23, + "column": 21, "program": "callInterfaceMethodWithNullableParam.ets" } } @@ -405,7 +405,7 @@ }, "end": { "line": 21, - "column": 15, + "column": 14, "program": "callInterfaceMethodWithNullableParam.ets" } } @@ -418,7 +418,7 @@ }, "end": { "line": 21, - "column": 15, + "column": 14, "program": "callInterfaceMethodWithNullableParam.ets" } } @@ -432,7 +432,7 @@ }, "end": { "line": 21, - "column": 15, + "column": 14, "program": "callInterfaceMethodWithNullableParam.ets" } } @@ -445,7 +445,7 @@ }, "end": { "line": 21, - "column": 15, + "column": 14, "program": "callInterfaceMethodWithNullableParam.ets" } } @@ -891,7 +891,7 @@ }, "end": { "line": 25, - "column": 17, + "column": 15, "program": "callInterfaceMethodWithNullableParam.ets" } } @@ -904,7 +904,7 @@ }, "end": { "line": 25, - "column": 17, + "column": 15, "program": "callInterfaceMethodWithNullableParam.ets" } } @@ -983,7 +983,7 @@ }, "end": { "line": 25, - "column": 31, + "column": 30, "program": "callInterfaceMethodWithNullableParam.ets" } } @@ -996,7 +996,7 @@ }, "end": { "line": 25, - "column": 31, + "column": 30, "program": "callInterfaceMethodWithNullableParam.ets" } } @@ -1080,7 +1080,7 @@ }, "end": { "line": 27, - "column": 11, + "column": 10, "program": "callInterfaceMethodWithNullableParam.ets" } } @@ -1093,7 +1093,7 @@ }, "end": { "line": 27, - "column": 11, + "column": 10, "program": "callInterfaceMethodWithNullableParam.ets" } } diff --git a/ets2panda/test/parser/ets/callMethodWithNullableParam-expected.txt b/ets2panda/test/parser/ets/callMethodWithNullableParam-expected.txt index 235762958a0792894c81a19aa2ff6939949e60bc..7cdcaa28dc4fc8f02bf7ef6ac0cd44ba3a2102c4 100644 --- a/ets2panda/test/parser/ets/callMethodWithNullableParam-expected.txt +++ b/ets2panda/test/parser/ets/callMethodWithNullableParam-expected.txt @@ -107,7 +107,7 @@ }, "end": { "line": 17, - "column": 15, + "column": 14, "program": "callMethodWithNullableParam.ets" } } @@ -120,7 +120,7 @@ }, "end": { "line": 17, - "column": 15, + "column": 14, "program": "callMethodWithNullableParam.ets" } } @@ -134,7 +134,7 @@ }, "end": { "line": 17, - "column": 15, + "column": 14, "program": "callMethodWithNullableParam.ets" } } @@ -147,7 +147,7 @@ }, "end": { "line": 17, - "column": 15, + "column": 14, "program": "callMethodWithNullableParam.ets" } } @@ -593,7 +593,7 @@ }, "end": { "line": 21, - "column": 17, + "column": 15, "program": "callMethodWithNullableParam.ets" } } @@ -606,7 +606,7 @@ }, "end": { "line": 21, - "column": 17, + "column": 15, "program": "callMethodWithNullableParam.ets" } } @@ -685,7 +685,7 @@ }, "end": { "line": 21, - "column": 31, + "column": 30, "program": "callMethodWithNullableParam.ets" } } @@ -698,7 +698,7 @@ }, "end": { "line": 21, - "column": 31, + "column": 30, "program": "callMethodWithNullableParam.ets" } } @@ -782,7 +782,7 @@ }, "end": { "line": 23, - "column": 11, + "column": 10, "program": "callMethodWithNullableParam.ets" } } @@ -795,7 +795,7 @@ }, "end": { "line": 23, - "column": 11, + "column": 10, "program": "callMethodWithNullableParam.ets" } } diff --git a/ets2panda/test/parser/ets/calling_superclass_methods-expected.txt b/ets2panda/test/parser/ets/calling_superclass_methods-expected.txt index 084c4c27f5f87ac7bcd601d92f81c53d2e2a9701..25be02feee02619ead13f4e4077354e5337eadd5 100644 --- a/ets2panda/test/parser/ets/calling_superclass_methods-expected.txt +++ b/ets2panda/test/parser/ets/calling_superclass_methods-expected.txt @@ -326,7 +326,7 @@ }, "end": { "line": 22, - "column": 29, + "column": 27, "program": "calling_superclass_methods.ets" } } @@ -339,7 +339,7 @@ }, "end": { "line": 22, - "column": 29, + "column": 27, "program": "calling_superclass_methods.ets" } } diff --git a/ets2panda/test/parser/ets/cast_const_union-expected.txt b/ets2panda/test/parser/ets/cast_const_union-expected.txt index 00e5e9065570c079fe69ff093283b960425056aa..debb908bd590b52a5f333695cce4f5437823d3e6 100644 --- a/ets2panda/test/parser/ets/cast_const_union-expected.txt +++ b/ets2panda/test/parser/ets/cast_const_union-expected.txt @@ -129,7 +129,7 @@ }, "end": { "line": 16, - "column": 29, + "column": 28, "program": "cast_const_union.ets" } } @@ -142,7 +142,7 @@ }, "end": { "line": 16, - "column": 29, + "column": 28, "program": "cast_const_union.ets" } } @@ -313,7 +313,7 @@ }, "end": { "line": 16, - "column": 17, + "column": 15, "program": "cast_const_union.ets" } } @@ -326,7 +326,7 @@ }, "end": { "line": 16, - "column": 17, + "column": 15, "program": "cast_const_union.ets" } } @@ -438,7 +438,7 @@ }, "end": { "line": 19, - "column": 22, + "column": 20, "program": "cast_const_union.ets" } } @@ -451,7 +451,7 @@ }, "end": { "line": 19, - "column": 22, + "column": 20, "program": "cast_const_union.ets" } } @@ -485,7 +485,7 @@ }, "end": { "line": 19, - "column": 31, + "column": 29, "program": "cast_const_union.ets" } } @@ -498,7 +498,7 @@ }, "end": { "line": 19, - "column": 31, + "column": 29, "program": "cast_const_union.ets" } } @@ -532,7 +532,7 @@ }, "end": { "line": 19, - "column": 40, + "column": 38, "program": "cast_const_union.ets" } } @@ -545,7 +545,7 @@ }, "end": { "line": 19, - "column": 40, + "column": 38, "program": "cast_const_union.ets" } } @@ -559,7 +559,7 @@ }, "end": { "line": 19, - "column": 40, + "column": 38, "program": "cast_const_union.ets" } } @@ -727,7 +727,7 @@ }, "end": { "line": 20, - "column": 34, + "column": 33, "program": "cast_const_union.ets" } } @@ -740,7 +740,7 @@ }, "end": { "line": 20, - "column": 34, + "column": 33, "program": "cast_const_union.ets" } } diff --git a/ets2panda/test/parser/ets/cast_expressions-expected.txt b/ets2panda/test/parser/ets/cast_expressions-expected.txt index 681bcf415016b1c1951432af8f9111d6e62c7f9b..a59feb0b96daef0b82c5659911e4373cea4042cf 100644 --- a/ets2panda/test/parser/ets/cast_expressions-expected.txt +++ b/ets2panda/test/parser/ets/cast_expressions-expected.txt @@ -421,7 +421,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 18, "program": "cast_expressions.ets" } } @@ -434,7 +434,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 18, "program": "cast_expressions.ets" } } @@ -484,7 +484,7 @@ }, "end": { "line": 18, - "column": 30, + "column": 29, "program": "cast_expressions.ets" } } @@ -497,7 +497,7 @@ }, "end": { "line": 18, - "column": 30, + "column": 29, "program": "cast_expressions.ets" } } @@ -2215,7 +2215,7 @@ }, "end": { "line": 40, - "column": 37, + "column": 36, "program": "cast_expressions.ets" } } @@ -2228,7 +2228,7 @@ }, "end": { "line": 40, - "column": 37, + "column": 36, "program": "cast_expressions.ets" } } @@ -2344,7 +2344,7 @@ }, "end": { "line": 41, - "column": 37, + "column": 36, "program": "cast_expressions.ets" } } @@ -2357,7 +2357,7 @@ }, "end": { "line": 41, - "column": 37, + "column": 36, "program": "cast_expressions.ets" } } @@ -2473,7 +2473,7 @@ }, "end": { "line": 42, - "column": 39, + "column": 38, "program": "cast_expressions.ets" } } @@ -2486,7 +2486,7 @@ }, "end": { "line": 42, - "column": 39, + "column": 38, "program": "cast_expressions.ets" } } @@ -2786,7 +2786,7 @@ }, "end": { "line": 48, - "column": 22, + "column": 20, "program": "cast_expressions.ets" } } @@ -2799,7 +2799,7 @@ }, "end": { "line": 48, - "column": 22, + "column": 20, "program": "cast_expressions.ets" } } @@ -2849,7 +2849,7 @@ }, "end": { "line": 48, - "column": 33, + "column": 32, "program": "cast_expressions.ets" } } @@ -2862,7 +2862,7 @@ }, "end": { "line": 48, - "column": 33, + "column": 32, "program": "cast_expressions.ets" } } @@ -4462,7 +4462,7 @@ }, "end": { "line": 69, - "column": 41, + "column": 40, "program": "cast_expressions.ets" } } @@ -4475,7 +4475,7 @@ }, "end": { "line": 69, - "column": 41, + "column": 40, "program": "cast_expressions.ets" } } @@ -4591,7 +4591,7 @@ }, "end": { "line": 70, - "column": 41, + "column": 40, "program": "cast_expressions.ets" } } @@ -4604,7 +4604,7 @@ }, "end": { "line": 70, - "column": 41, + "column": 40, "program": "cast_expressions.ets" } } @@ -4720,7 +4720,7 @@ }, "end": { "line": 71, - "column": 42, + "column": 41, "program": "cast_expressions.ets" } } @@ -4733,7 +4733,7 @@ }, "end": { "line": 71, - "column": 42, + "column": 41, "program": "cast_expressions.ets" } } @@ -5033,7 +5033,7 @@ }, "end": { "line": 77, - "column": 20, + "column": 18, "program": "cast_expressions.ets" } } @@ -5046,7 +5046,7 @@ }, "end": { "line": 77, - "column": 20, + "column": 18, "program": "cast_expressions.ets" } } @@ -5096,7 +5096,7 @@ }, "end": { "line": 77, - "column": 30, + "column": 29, "program": "cast_expressions.ets" } } @@ -5109,7 +5109,7 @@ }, "end": { "line": 77, - "column": 30, + "column": 29, "program": "cast_expressions.ets" } } @@ -6709,7 +6709,7 @@ }, "end": { "line": 98, - "column": 37, + "column": 36, "program": "cast_expressions.ets" } } @@ -6722,7 +6722,7 @@ }, "end": { "line": 98, - "column": 37, + "column": 36, "program": "cast_expressions.ets" } } @@ -6838,7 +6838,7 @@ }, "end": { "line": 99, - "column": 37, + "column": 36, "program": "cast_expressions.ets" } } @@ -6851,7 +6851,7 @@ }, "end": { "line": 99, - "column": 37, + "column": 36, "program": "cast_expressions.ets" } } @@ -6967,7 +6967,7 @@ }, "end": { "line": 100, - "column": 39, + "column": 38, "program": "cast_expressions.ets" } } @@ -6980,7 +6980,7 @@ }, "end": { "line": 100, - "column": 39, + "column": 38, "program": "cast_expressions.ets" } } @@ -7280,7 +7280,7 @@ }, "end": { "line": 106, - "column": 18, + "column": 16, "program": "cast_expressions.ets" } } @@ -7293,7 +7293,7 @@ }, "end": { "line": 106, - "column": 18, + "column": 16, "program": "cast_expressions.ets" } } @@ -7343,7 +7343,7 @@ }, "end": { "line": 106, - "column": 27, + "column": 26, "program": "cast_expressions.ets" } } @@ -7356,7 +7356,7 @@ }, "end": { "line": 106, - "column": 27, + "column": 26, "program": "cast_expressions.ets" } } @@ -8838,7 +8838,7 @@ }, "end": { "line": 126, - "column": 35, + "column": 34, "program": "cast_expressions.ets" } } @@ -8851,7 +8851,7 @@ }, "end": { "line": 126, - "column": 35, + "column": 34, "program": "cast_expressions.ets" } } @@ -8967,7 +8967,7 @@ }, "end": { "line": 127, - "column": 35, + "column": 34, "program": "cast_expressions.ets" } } @@ -8980,7 +8980,7 @@ }, "end": { "line": 127, - "column": 35, + "column": 34, "program": "cast_expressions.ets" } } @@ -9096,7 +9096,7 @@ }, "end": { "line": 128, - "column": 38, + "column": 37, "program": "cast_expressions.ets" } } @@ -9109,7 +9109,7 @@ }, "end": { "line": 128, - "column": 38, + "column": 37, "program": "cast_expressions.ets" } } @@ -9409,7 +9409,7 @@ }, "end": { "line": 134, - "column": 20, + "column": 18, "program": "cast_expressions.ets" } } @@ -9422,7 +9422,7 @@ }, "end": { "line": 134, - "column": 20, + "column": 18, "program": "cast_expressions.ets" } } @@ -9472,7 +9472,7 @@ }, "end": { "line": 134, - "column": 30, + "column": 29, "program": "cast_expressions.ets" } } @@ -9485,7 +9485,7 @@ }, "end": { "line": 134, - "column": 30, + "column": 29, "program": "cast_expressions.ets" } } @@ -10849,7 +10849,7 @@ }, "end": { "line": 153, - "column": 37, + "column": 36, "program": "cast_expressions.ets" } } @@ -10862,7 +10862,7 @@ }, "end": { "line": 153, - "column": 37, + "column": 36, "program": "cast_expressions.ets" } } @@ -10978,7 +10978,7 @@ }, "end": { "line": 154, - "column": 37, + "column": 36, "program": "cast_expressions.ets" } } @@ -10991,7 +10991,7 @@ }, "end": { "line": 154, - "column": 37, + "column": 36, "program": "cast_expressions.ets" } } @@ -11107,7 +11107,7 @@ }, "end": { "line": 155, - "column": 39, + "column": 38, "program": "cast_expressions.ets" } } @@ -11120,7 +11120,7 @@ }, "end": { "line": 155, - "column": 39, + "column": 38, "program": "cast_expressions.ets" } } @@ -11420,7 +11420,7 @@ }, "end": { "line": 161, - "column": 22, + "column": 20, "program": "cast_expressions.ets" } } @@ -11433,7 +11433,7 @@ }, "end": { "line": 161, - "column": 22, + "column": 20, "program": "cast_expressions.ets" } } @@ -11483,7 +11483,7 @@ }, "end": { "line": 161, - "column": 33, + "column": 32, "program": "cast_expressions.ets" } } @@ -11496,7 +11496,7 @@ }, "end": { "line": 161, - "column": 33, + "column": 32, "program": "cast_expressions.ets" } } @@ -12624,7 +12624,7 @@ }, "end": { "line": 178, - "column": 41, + "column": 40, "program": "cast_expressions.ets" } } @@ -12637,7 +12637,7 @@ }, "end": { "line": 178, - "column": 41, + "column": 40, "program": "cast_expressions.ets" } } @@ -12753,7 +12753,7 @@ }, "end": { "line": 179, - "column": 41, + "column": 40, "program": "cast_expressions.ets" } } @@ -12766,7 +12766,7 @@ }, "end": { "line": 179, - "column": 41, + "column": 40, "program": "cast_expressions.ets" } } @@ -12882,7 +12882,7 @@ }, "end": { "line": 180, - "column": 42, + "column": 41, "program": "cast_expressions.ets" } } @@ -12895,7 +12895,7 @@ }, "end": { "line": 180, - "column": 42, + "column": 41, "program": "cast_expressions.ets" } } @@ -13195,7 +13195,7 @@ }, "end": { "line": 186, - "column": 24, + "column": 22, "program": "cast_expressions.ets" } } @@ -13208,7 +13208,7 @@ }, "end": { "line": 186, - "column": 24, + "column": 22, "program": "cast_expressions.ets" } } @@ -13258,7 +13258,7 @@ }, "end": { "line": 186, - "column": 36, + "column": 35, "program": "cast_expressions.ets" } } @@ -13271,7 +13271,7 @@ }, "end": { "line": 186, - "column": 36, + "column": 35, "program": "cast_expressions.ets" } } @@ -14281,7 +14281,7 @@ }, "end": { "line": 202, - "column": 45, + "column": 44, "program": "cast_expressions.ets" } } @@ -14294,7 +14294,7 @@ }, "end": { "line": 202, - "column": 45, + "column": 44, "program": "cast_expressions.ets" } } @@ -14410,7 +14410,7 @@ }, "end": { "line": 203, - "column": 45, + "column": 44, "program": "cast_expressions.ets" } } @@ -14423,7 +14423,7 @@ }, "end": { "line": 203, - "column": 45, + "column": 44, "program": "cast_expressions.ets" } } @@ -14539,7 +14539,7 @@ }, "end": { "line": 204, - "column": 45, + "column": 44, "program": "cast_expressions.ets" } } @@ -14552,7 +14552,7 @@ }, "end": { "line": 204, - "column": 45, + "column": 44, "program": "cast_expressions.ets" } } @@ -14852,7 +14852,7 @@ }, "end": { "line": 210, - "column": 26, + "column": 24, "program": "cast_expressions.ets" } } @@ -14865,7 +14865,7 @@ }, "end": { "line": 210, - "column": 26, + "column": 24, "program": "cast_expressions.ets" } } @@ -14915,7 +14915,7 @@ }, "end": { "line": 210, - "column": 39, + "column": 38, "program": "cast_expressions.ets" } } @@ -14928,7 +14928,7 @@ }, "end": { "line": 210, - "column": 39, + "column": 38, "program": "cast_expressions.ets" } } @@ -15276,7 +15276,7 @@ }, "end": { "line": 220, - "column": 47, + "column": 46, "program": "cast_expressions.ets" } } @@ -15289,7 +15289,7 @@ }, "end": { "line": 220, - "column": 47, + "column": 46, "program": "cast_expressions.ets" } } @@ -15405,7 +15405,7 @@ }, "end": { "line": 221, - "column": 47, + "column": 46, "program": "cast_expressions.ets" } } @@ -15418,7 +15418,7 @@ }, "end": { "line": 221, - "column": 47, + "column": 46, "program": "cast_expressions.ets" } } @@ -15534,7 +15534,7 @@ }, "end": { "line": 222, - "column": 46, + "column": 45, "program": "cast_expressions.ets" } } @@ -15547,7 +15547,7 @@ }, "end": { "line": 222, - "column": 46, + "column": 45, "program": "cast_expressions.ets" } } diff --git a/ets2panda/test/parser/ets/cast_expressions3-expected.txt b/ets2panda/test/parser/ets/cast_expressions3-expected.txt index b21a1e97b39c2edc6652533599fc938bb782f616..525e4d51df9a7bfe1550a2d6a4cb8561559711c5 100644 --- a/ets2panda/test/parser/ets/cast_expressions3-expected.txt +++ b/ets2panda/test/parser/ets/cast_expressions3-expected.txt @@ -199,8 +199,8 @@ "program": "cast_expressions3.ets" }, "end": { - "line": 18, - "column": 6, + "line": 17, + "column": 15, "program": "cast_expressions3.ets" } } @@ -254,7 +254,7 @@ }, "end": { "line": 18, - "column": 29, + "column": 18, "program": "cast_expressions3.ets" } } @@ -267,7 +267,7 @@ }, "end": { "line": 18, - "column": 29, + "column": 18, "program": "cast_expressions3.ets" } } @@ -304,7 +304,7 @@ }, "end": { "line": 18, - "column": 33, + "column": 31, "program": "cast_expressions3.ets" } } @@ -317,7 +317,7 @@ }, "end": { "line": 18, - "column": 33, + "column": 31, "program": "cast_expressions3.ets" } } @@ -518,7 +518,7 @@ }, "end": { "line": 19, - "column": 20, + "column": 18, "program": "cast_expressions3.ets" } } @@ -531,7 +531,7 @@ }, "end": { "line": 19, - "column": 20, + "column": 18, "program": "cast_expressions3.ets" } } @@ -1025,7 +1025,7 @@ }, "end": { "line": 22, - "column": 18, + "column": 17, "program": "cast_expressions3.ets" } } @@ -1038,7 +1038,7 @@ }, "end": { "line": 22, - "column": 18, + "column": 17, "program": "cast_expressions3.ets" } } @@ -1155,7 +1155,7 @@ }, "end": { "line": 24, - "column": 21, + "column": 20, "program": "cast_expressions3.ets" } } @@ -1168,7 +1168,7 @@ }, "end": { "line": 24, - "column": 21, + "column": 20, "program": "cast_expressions3.ets" } } @@ -1284,7 +1284,7 @@ }, "end": { "line": 25, - "column": 21, + "column": 20, "program": "cast_expressions3.ets" } } @@ -1297,7 +1297,7 @@ }, "end": { "line": 25, - "column": 21, + "column": 20, "program": "cast_expressions3.ets" } } @@ -1413,7 +1413,7 @@ }, "end": { "line": 26, - "column": 21, + "column": 20, "program": "cast_expressions3.ets" } } @@ -1426,7 +1426,7 @@ }, "end": { "line": 26, - "column": 21, + "column": 20, "program": "cast_expressions3.ets" } } @@ -1542,7 +1542,7 @@ }, "end": { "line": 27, - "column": 21, + "column": 20, "program": "cast_expressions3.ets" } } @@ -1555,7 +1555,7 @@ }, "end": { "line": 27, - "column": 21, + "column": 20, "program": "cast_expressions3.ets" } } @@ -1671,7 +1671,7 @@ }, "end": { "line": 29, - "column": 22, + "column": 21, "program": "cast_expressions3.ets" } } @@ -1684,7 +1684,7 @@ }, "end": { "line": 29, - "column": 22, + "column": 21, "program": "cast_expressions3.ets" } } @@ -1800,7 +1800,7 @@ }, "end": { "line": 30, - "column": 22, + "column": 21, "program": "cast_expressions3.ets" } } @@ -1813,7 +1813,7 @@ }, "end": { "line": 30, - "column": 22, + "column": 21, "program": "cast_expressions3.ets" } } @@ -1929,7 +1929,7 @@ }, "end": { "line": 31, - "column": 22, + "column": 21, "program": "cast_expressions3.ets" } } @@ -1942,7 +1942,7 @@ }, "end": { "line": 31, - "column": 22, + "column": 21, "program": "cast_expressions3.ets" } } diff --git a/ets2panda/test/parser/ets/cast_expressions4-expected.txt b/ets2panda/test/parser/ets/cast_expressions4-expected.txt index 8241915ac091093af55f9fbd2582f5e59508cc0a..d30c7cc90a1796c5f023fcbb601442887cc88557 100644 --- a/ets2panda/test/parser/ets/cast_expressions4-expected.txt +++ b/ets2panda/test/parser/ets/cast_expressions4-expected.txt @@ -364,7 +364,7 @@ }, "end": { "line": 17, - "column": 28, + "column": 27, "program": "cast_expressions4.ets" } } @@ -377,7 +377,7 @@ }, "end": { "line": 17, - "column": 28, + "column": 27, "program": "cast_expressions4.ets" } } @@ -404,7 +404,7 @@ }, "end": { "line": 17, - "column": 30, + "column": 28, "program": "cast_expressions4.ets" } } @@ -417,7 +417,7 @@ }, "end": { "line": 17, - "column": 30, + "column": 28, "program": "cast_expressions4.ets" } } @@ -470,7 +470,7 @@ }, "end": { "line": 17, - "column": 40, + "column": 39, "program": "cast_expressions4.ets" } } @@ -483,7 +483,7 @@ }, "end": { "line": 17, - "column": 40, + "column": 39, "program": "cast_expressions4.ets" } } @@ -605,7 +605,7 @@ }, "end": { "line": 18, - "column": 34, + "column": 33, "program": "cast_expressions4.ets" } } @@ -618,7 +618,7 @@ }, "end": { "line": 18, - "column": 34, + "column": 33, "program": "cast_expressions4.ets" } } @@ -645,7 +645,7 @@ }, "end": { "line": 18, - "column": 36, + "column": 34, "program": "cast_expressions4.ets" } } @@ -658,7 +658,7 @@ }, "end": { "line": 18, - "column": 36, + "column": 34, "program": "cast_expressions4.ets" } } @@ -749,7 +749,7 @@ }, "end": { "line": 18, - "column": 63, + "column": 62, "program": "cast_expressions4.ets" } } @@ -762,7 +762,7 @@ }, "end": { "line": 18, - "column": 63, + "column": 62, "program": "cast_expressions4.ets" } } @@ -789,7 +789,7 @@ }, "end": { "line": 18, - "column": 64, + "column": 63, "program": "cast_expressions4.ets" } } @@ -802,7 +802,7 @@ }, "end": { "line": 18, - "column": 64, + "column": 63, "program": "cast_expressions4.ets" } } @@ -909,7 +909,7 @@ }, "end": { "line": 19, - "column": 29, + "column": 28, "program": "cast_expressions4.ets" } } @@ -922,7 +922,7 @@ }, "end": { "line": 19, - "column": 29, + "column": 28, "program": "cast_expressions4.ets" } } @@ -949,7 +949,7 @@ }, "end": { "line": 19, - "column": 31, + "column": 29, "program": "cast_expressions4.ets" } } @@ -962,7 +962,7 @@ }, "end": { "line": 19, - "column": 31, + "column": 29, "program": "cast_expressions4.ets" } } @@ -1053,7 +1053,7 @@ }, "end": { "line": 19, - "column": 58, + "column": 57, "program": "cast_expressions4.ets" } } @@ -1066,7 +1066,7 @@ }, "end": { "line": 19, - "column": 58, + "column": 57, "program": "cast_expressions4.ets" } } @@ -1093,7 +1093,7 @@ }, "end": { "line": 19, - "column": 59, + "column": 58, "program": "cast_expressions4.ets" } } @@ -1106,7 +1106,7 @@ }, "end": { "line": 19, - "column": 59, + "column": 58, "program": "cast_expressions4.ets" } } @@ -1222,7 +1222,7 @@ }, "end": { "line": 21, - "column": 29, + "column": 28, "program": "cast_expressions4.ets" } } @@ -1235,7 +1235,7 @@ }, "end": { "line": 21, - "column": 29, + "column": 28, "program": "cast_expressions4.ets" } } diff --git a/ets2panda/test/parser/ets/class_instance_creation-expected.txt b/ets2panda/test/parser/ets/class_instance_creation-expected.txt index 39e1e72cc11a5f08b5fb1089921ddad82033c7b5..8ede3786a525d3248f9076526b3ab9799fcf25cd 100644 --- a/ets2panda/test/parser/ets/class_instance_creation-expected.txt +++ b/ets2panda/test/parser/ets/class_instance_creation-expected.txt @@ -353,7 +353,7 @@ }, "end": { "line": 23, - "column": 28, + "column": 27, "program": "class_instance_creation.ets" } } @@ -366,7 +366,7 @@ }, "end": { "line": 23, - "column": 28, + "column": 27, "program": "class_instance_creation.ets" } } @@ -380,7 +380,7 @@ }, "end": { "line": 23, - "column": 28, + "column": 27, "program": "class_instance_creation.ets" } } @@ -393,7 +393,7 @@ }, "end": { "line": 23, - "column": 28, + "column": 27, "program": "class_instance_creation.ets" } } @@ -568,7 +568,7 @@ }, "end": { "line": 26, - "column": 74, + "column": 73, "program": "class_instance_creation.ets" } } @@ -581,7 +581,7 @@ }, "end": { "line": 26, - "column": 74, + "column": 73, "program": "class_instance_creation.ets" } } @@ -635,7 +635,7 @@ }, "end": { "line": 26, - "column": 45, + "column": 43, "program": "class_instance_creation.ets" } } @@ -648,7 +648,7 @@ }, "end": { "line": 26, - "column": 45, + "column": 43, "program": "class_instance_creation.ets" } } @@ -718,7 +718,7 @@ }, "end": { "line": 27, - "column": 74, + "column": 73, "program": "class_instance_creation.ets" } } @@ -731,7 +731,7 @@ }, "end": { "line": 27, - "column": 74, + "column": 73, "program": "class_instance_creation.ets" } } @@ -802,7 +802,7 @@ }, "end": { "line": 27, - "column": 45, + "column": 43, "program": "class_instance_creation.ets" } } @@ -815,7 +815,7 @@ }, "end": { "line": 27, - "column": 45, + "column": 43, "program": "class_instance_creation.ets" } } @@ -885,7 +885,7 @@ }, "end": { "line": 28, - "column": 74, + "column": 73, "program": "class_instance_creation.ets" } } @@ -898,7 +898,7 @@ }, "end": { "line": 28, - "column": 74, + "column": 73, "program": "class_instance_creation.ets" } } @@ -985,7 +985,7 @@ }, "end": { "line": 28, - "column": 45, + "column": 43, "program": "class_instance_creation.ets" } } @@ -998,7 +998,7 @@ }, "end": { "line": 28, - "column": 45, + "column": 43, "program": "class_instance_creation.ets" } } diff --git a/ets2panda/test/parser/ets/class_instance_initializer-expected.txt b/ets2panda/test/parser/ets/class_instance_initializer-expected.txt index d02a3786fcc9b48c7dc7100b69d52dae6bd61864..10c042955ff197fd23fdadabd5ef426b96f05c25 100644 --- a/ets2panda/test/parser/ets/class_instance_initializer-expected.txt +++ b/ets2panda/test/parser/ets/class_instance_initializer-expected.txt @@ -1120,7 +1120,7 @@ }, "end": { "line": 32, - "column": 35, + "column": 34, "program": "class_instance_initializer.ets" } } @@ -1133,7 +1133,7 @@ }, "end": { "line": 32, - "column": 35, + "column": 34, "program": "class_instance_initializer.ets" } } @@ -1147,7 +1147,7 @@ }, "end": { "line": 32, - "column": 35, + "column": 34, "program": "class_instance_initializer.ets" } } @@ -1160,7 +1160,7 @@ }, "end": { "line": 32, - "column": 35, + "column": 34, "program": "class_instance_initializer.ets" } } @@ -1699,7 +1699,7 @@ }, "end": { "line": 41, - "column": 21, + "column": 18, "program": "class_instance_initializer.ets" } } @@ -1712,7 +1712,7 @@ }, "end": { "line": 41, - "column": 21, + "column": 18, "program": "class_instance_initializer.ets" } } @@ -2815,7 +2815,7 @@ }, "end": { "line": 57, - "column": 35, + "column": 34, "program": "class_instance_initializer.ets" } } @@ -2828,7 +2828,7 @@ }, "end": { "line": 57, - "column": 35, + "column": 34, "program": "class_instance_initializer.ets" } } @@ -2842,7 +2842,7 @@ }, "end": { "line": 57, - "column": 35, + "column": 34, "program": "class_instance_initializer.ets" } } @@ -2855,7 +2855,7 @@ }, "end": { "line": 57, - "column": 35, + "column": 34, "program": "class_instance_initializer.ets" } } diff --git a/ets2panda/test/parser/ets/class_interface_enum_only_top_level_4-expected.txt b/ets2panda/test/parser/ets/class_interface_enum_only_top_level_4-expected.txt index dc39673caba223a51042cfcef9b49f0b1e031a6b..50e613f831917dc9b39b1e844bc1f5e0c8093fa2 100644 --- a/ets2panda/test/parser/ets/class_interface_enum_only_top_level_4-expected.txt +++ b/ets2panda/test/parser/ets/class_interface_enum_only_top_level_4-expected.txt @@ -394,8 +394,8 @@ "program": "class_interface_enum_only_top_level_4.ets" }, "end": { - "line": 21, - "column": 2, + "line": 20, + "column": 4, "program": "class_interface_enum_only_top_level_4.ets" } } diff --git a/ets2panda/test/parser/ets/classes-expected.txt b/ets2panda/test/parser/ets/classes-expected.txt index 264010ea5377a9982a50c207561d59b63f20f532..758108e2834e0110ff9e552ad09a476de541bb73 100644 --- a/ets2panda/test/parser/ets/classes-expected.txt +++ b/ets2panda/test/parser/ets/classes-expected.txt @@ -515,7 +515,7 @@ }, "end": { "line": 25, - "column": 22, + "column": 20, "program": "classes.ets" } } @@ -528,7 +528,7 @@ }, "end": { "line": 25, - "column": 22, + "column": 20, "program": "classes.ets" } } diff --git a/ets2panda/test/parser/ets/conditionalExpressionType-expected.txt b/ets2panda/test/parser/ets/conditionalExpressionType-expected.txt index ea9efc575360ae6e817f183e4292f564f4ce9b83..a571badc91310bf6d207e9468ed682469f9898bb 100644 --- a/ets2panda/test/parser/ets/conditionalExpressionType-expected.txt +++ b/ets2panda/test/parser/ets/conditionalExpressionType-expected.txt @@ -529,7 +529,7 @@ }, "end": { "line": 23, - "column": 20, + "column": 18, "program": "conditionalExpressionType.ets" } } @@ -542,7 +542,7 @@ }, "end": { "line": 23, - "column": 20, + "column": 18, "program": "conditionalExpressionType.ets" } } @@ -856,7 +856,7 @@ }, "end": { "line": 29, - "column": 19, + "column": 17, "program": "conditionalExpressionType.ets" } } @@ -869,7 +869,7 @@ }, "end": { "line": 29, - "column": 19, + "column": 17, "program": "conditionalExpressionType.ets" } } @@ -1453,7 +1453,7 @@ }, "end": { "line": 40, - "column": 19, + "column": 17, "program": "conditionalExpressionType.ets" } } @@ -1466,7 +1466,7 @@ }, "end": { "line": 40, - "column": 19, + "column": 17, "program": "conditionalExpressionType.ets" } } @@ -1714,7 +1714,7 @@ }, "end": { "line": 44, - "column": 18, + "column": 16, "program": "conditionalExpressionType.ets" } } @@ -1727,7 +1727,7 @@ }, "end": { "line": 44, - "column": 18, + "column": 16, "program": "conditionalExpressionType.ets" } } @@ -2421,7 +2421,7 @@ }, "end": { "line": 54, - "column": 20, + "column": 18, "program": "conditionalExpressionType.ets" } } @@ -2434,7 +2434,7 @@ }, "end": { "line": 54, - "column": 20, + "column": 18, "program": "conditionalExpressionType.ets" } } diff --git a/ets2panda/test/parser/ets/const-expected.txt b/ets2panda/test/parser/ets/const-expected.txt index 5e04fa184152bf86980d21cb2593d32120a7d9ff..428f2f93a3c088452c516905f84f20449dad516f 100644 --- a/ets2panda/test/parser/ets/const-expected.txt +++ b/ets2panda/test/parser/ets/const-expected.txt @@ -362,7 +362,7 @@ }, "end": { "line": 17, - "column": 18, + "column": 16, "program": "const.ets" } } @@ -375,7 +375,7 @@ }, "end": { "line": 17, - "column": 18, + "column": 16, "program": "const.ets" } } diff --git a/ets2panda/test/parser/ets/constructor_super_call1-expected.txt b/ets2panda/test/parser/ets/constructor_super_call1-expected.txt index a3b865478ecf76512c38a2925c2c0044b2e54f69..abfe45f7f1a54bc0943bfd45af5f68fd6177de29 100644 --- a/ets2panda/test/parser/ets/constructor_super_call1-expected.txt +++ b/ets2panda/test/parser/ets/constructor_super_call1-expected.txt @@ -254,7 +254,7 @@ }, "end": { "line": 20, - "column": 20, + "column": 18, "program": "constructor_super_call1.ets" } } @@ -267,7 +267,7 @@ }, "end": { "line": 20, - "column": 20, + "column": 18, "program": "constructor_super_call1.ets" } } diff --git a/ets2panda/test/parser/ets/constructor_super_call3-expected.txt b/ets2panda/test/parser/ets/constructor_super_call3-expected.txt index e3d4a31ae3f8d2287562b7c01044767f1c9e0ec3..a23e1dd68c660f4f97eab7641870bc2e7e22c1a7 100644 --- a/ets2panda/test/parser/ets/constructor_super_call3-expected.txt +++ b/ets2panda/test/parser/ets/constructor_super_call3-expected.txt @@ -206,7 +206,7 @@ }, "end": { "line": 20, - "column": 20, + "column": 18, "program": "constructor_super_call3.ets" } } @@ -219,7 +219,7 @@ }, "end": { "line": 20, - "column": 20, + "column": 18, "program": "constructor_super_call3.ets" } } diff --git a/ets2panda/test/parser/ets/constructor_test-expected.txt b/ets2panda/test/parser/ets/constructor_test-expected.txt index 3350e9aab78c7f4af1cc7e517a916fe3fc24ddf0..c8015c848ebfa8bdfff825a5a6efdc5918764181 100644 --- a/ets2panda/test/parser/ets/constructor_test-expected.txt +++ b/ets2panda/test/parser/ets/constructor_test-expected.txt @@ -674,7 +674,7 @@ }, "end": { "line": 29, - "column": 42, + "column": 39, "program": "constructor_test.ets" } } @@ -687,7 +687,7 @@ }, "end": { "line": 29, - "column": 42, + "column": 39, "program": "constructor_test.ets" } } diff --git a/ets2panda/test/parser/ets/declare_ambient_const_variable-expected.txt b/ets2panda/test/parser/ets/declare_ambient_const_variable-expected.txt index cf14e29753e6e0ad22f6d7d950e74f1457fca9ee..862a6c244bdfd39ffe55f739138b909ef1e8bdc4 100644 --- a/ets2panda/test/parser/ets/declare_ambient_const_variable-expected.txt +++ b/ets2panda/test/parser/ets/declare_ambient_const_variable-expected.txt @@ -184,7 +184,7 @@ }, "end": { "line": 16, - "column": 26, + "column": 25, "program": "declare_ambient_const_variable.ets" } } @@ -197,7 +197,7 @@ }, "end": { "line": 16, - "column": 26, + "column": 25, "program": "declare_ambient_const_variable.ets" } } diff --git a/ets2panda/test/parser/ets/declare_class-expected.txt b/ets2panda/test/parser/ets/declare_class-expected.txt index 0021db53e2214a037386e1a26ecd12636843d6fc..3d702f66a6158571c7819d50dba55febb89281ed 100644 --- a/ets2panda/test/parser/ets/declare_class-expected.txt +++ b/ets2panda/test/parser/ets/declare_class-expected.txt @@ -77,8 +77,8 @@ "program": "declare_class.ets" }, "end": { - "line": 18, - "column": 11, + "line": 17, + "column": 15, "program": "declare_class.ets" } } @@ -90,8 +90,8 @@ "program": "declare_class.ets" }, "end": { - "line": 18, - "column": 11, + "line": 17, + "column": 15, "program": "declare_class.ets" } } @@ -105,8 +105,8 @@ "program": "declare_class.ets" }, "end": { - "line": 18, - "column": 11, + "line": 17, + "column": 15, "program": "declare_class.ets" } } @@ -249,7 +249,7 @@ }, "end": { "line": 19, - "column": 19, + "column": 18, "program": "declare_class.ets" } } @@ -262,7 +262,7 @@ }, "end": { "line": 19, - "column": 19, + "column": 18, "program": "declare_class.ets" } } @@ -276,7 +276,7 @@ }, "end": { "line": 19, - "column": 19, + "column": 18, "program": "declare_class.ets" } } @@ -289,7 +289,7 @@ }, "end": { "line": 19, - "column": 19, + "column": 18, "program": "declare_class.ets" } } diff --git a/ets2panda/test/parser/ets/declare_func-expected.txt b/ets2panda/test/parser/ets/declare_func-expected.txt index 90ec31f3de3f48589095b771523879dca0cc7d98..383ca52e3ad8606d9ef1605becf85661f11540b9 100644 --- a/ets2panda/test/parser/ets/declare_func-expected.txt +++ b/ets2panda/test/parser/ets/declare_func-expected.txt @@ -107,7 +107,7 @@ }, "end": { "line": 16, - "column": 32, + "column": 31, "program": "declare_func.ets" } } @@ -120,7 +120,7 @@ }, "end": { "line": 16, - "column": 32, + "column": 31, "program": "declare_func.ets" } } @@ -134,7 +134,7 @@ }, "end": { "line": 16, - "column": 32, + "column": 31, "program": "declare_func.ets" } } @@ -147,7 +147,7 @@ }, "end": { "line": 16, - "column": 32, + "column": 31, "program": "declare_func.ets" } } diff --git a/ets2panda/test/parser/ets/declare_iface-expected.txt b/ets2panda/test/parser/ets/declare_iface-expected.txt index 72a55240a8a8db50832ea3031ea0653d4fec4979..295b7a144412187cd2d2219dcfba21ee91cab1b7 100644 --- a/ets2panda/test/parser/ets/declare_iface-expected.txt +++ b/ets2panda/test/parser/ets/declare_iface-expected.txt @@ -84,7 +84,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 15, "program": "declare_iface.ets" } } @@ -97,7 +97,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 15, "program": "declare_iface.ets" } } @@ -110,7 +110,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 15, "program": "declare_iface.ets" } } @@ -123,7 +123,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 15, "program": "declare_iface.ets" } } @@ -212,7 +212,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 15, "program": "declare_iface.ets" } } @@ -225,7 +225,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 15, "program": "declare_iface.ets" } } @@ -266,7 +266,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 15, "program": "declare_iface.ets" } } @@ -279,7 +279,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 15, "program": "declare_iface.ets" } } @@ -294,7 +294,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 15, "program": "declare_iface.ets" } } @@ -309,7 +309,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 15, "program": "declare_iface.ets" } } @@ -397,7 +397,7 @@ }, "end": { "line": 18, - "column": 19, + "column": 18, "program": "declare_iface.ets" } } @@ -410,7 +410,7 @@ }, "end": { "line": 18, - "column": 19, + "column": 18, "program": "declare_iface.ets" } } @@ -424,7 +424,7 @@ }, "end": { "line": 18, - "column": 19, + "column": 18, "program": "declare_iface.ets" } } @@ -437,7 +437,7 @@ }, "end": { "line": 18, - "column": 19, + "column": 18, "program": "declare_iface.ets" } } @@ -693,8 +693,8 @@ "program": "declare_iface.ets" }, "end": { - "line": 21, - "column": 1, + "line": 20, + "column": 2, "program": "declare_iface.ets" } } diff --git a/ets2panda/test/parser/ets/default_parameter10-expected.txt b/ets2panda/test/parser/ets/default_parameter10-expected.txt index 26d1df2fb9e102d89e9aac309a5171b2994c6a59..f976642e7a23b6df15cc0290b151992a20ec462e 100644 --- a/ets2panda/test/parser/ets/default_parameter10-expected.txt +++ b/ets2panda/test/parser/ets/default_parameter10-expected.txt @@ -107,7 +107,7 @@ }, "end": { "line": 17, - "column": 18, + "column": 17, "program": "default_parameter10.ets" } } @@ -120,7 +120,7 @@ }, "end": { "line": 17, - "column": 18, + "column": 17, "program": "default_parameter10.ets" } } @@ -134,7 +134,7 @@ }, "end": { "line": 17, - "column": 18, + "column": 17, "program": "default_parameter10.ets" } } @@ -147,7 +147,7 @@ }, "end": { "line": 17, - "column": 18, + "column": 17, "program": "default_parameter10.ets" } } diff --git a/ets2panda/test/parser/ets/default_parameter7-expected.txt b/ets2panda/test/parser/ets/default_parameter7-expected.txt index 36fee450877f94a85632b40f6ef834d8bf281184..778da1a32d291fe02308516e8cae972dfcf6bc0e 100644 --- a/ets2panda/test/parser/ets/default_parameter7-expected.txt +++ b/ets2panda/test/parser/ets/default_parameter7-expected.txt @@ -472,8 +472,8 @@ "program": "default_parameter7.ets" }, "end": { - "line": 17, - "column": 2, + "line": 16, + "column": 33, "program": "default_parameter7.ets" } } @@ -485,8 +485,8 @@ "program": "default_parameter7.ets" }, "end": { - "line": 17, - "column": 2, + "line": 16, + "column": 33, "program": "default_parameter7.ets" } } @@ -649,7 +649,7 @@ }, "end": { "line": 21, - "column": 22, + "column": 21, "program": "default_parameter7.ets" } } @@ -662,7 +662,7 @@ }, "end": { "line": 21, - "column": 22, + "column": 21, "program": "default_parameter7.ets" } } @@ -676,7 +676,7 @@ }, "end": { "line": 21, - "column": 22, + "column": 21, "program": "default_parameter7.ets" } } @@ -689,7 +689,7 @@ }, "end": { "line": 21, - "column": 22, + "column": 21, "program": "default_parameter7.ets" } } @@ -728,7 +728,7 @@ }, "end": { "line": 21, - "column": 35, + "column": 34, "program": "default_parameter7.ets" } } @@ -741,7 +741,7 @@ }, "end": { "line": 21, - "column": 35, + "column": 34, "program": "default_parameter7.ets" } } @@ -755,7 +755,7 @@ }, "end": { "line": 21, - "column": 35, + "column": 34, "program": "default_parameter7.ets" } } @@ -768,7 +768,7 @@ }, "end": { "line": 21, - "column": 35, + "column": 34, "program": "default_parameter7.ets" } } @@ -807,7 +807,7 @@ }, "end": { "line": 21, - "column": 45, + "column": 43, "program": "default_parameter7.ets" } } @@ -820,7 +820,7 @@ }, "end": { "line": 21, - "column": 45, + "column": 43, "program": "default_parameter7.ets" } } @@ -881,8 +881,8 @@ "program": "default_parameter7.ets" }, "end": { - "line": 22, - "column": 2, + "line": 21, + "column": 55, "program": "default_parameter7.ets" } } @@ -894,8 +894,8 @@ "program": "default_parameter7.ets" }, "end": { - "line": 22, - "column": 2, + "line": 21, + "column": 55, "program": "default_parameter7.ets" } } @@ -940,7 +940,7 @@ }, "end": { "line": 21, - "column": 45, + "column": 43, "program": "default_parameter7.ets" } } @@ -953,7 +953,7 @@ }, "end": { "line": 21, - "column": 45, + "column": 43, "program": "default_parameter7.ets" } } @@ -967,7 +967,7 @@ }, "end": { "line": 21, - "column": 45, + "column": 43, "program": "default_parameter7.ets" } } @@ -1087,7 +1087,7 @@ }, "end": { "line": 21, - "column": 45, + "column": 43, "program": "default_parameter7.ets" } } @@ -1100,7 +1100,7 @@ }, "end": { "line": 21, - "column": 45, + "column": 43, "program": "default_parameter7.ets" } } diff --git a/ets2panda/test/parser/ets/default_parameter9-expected.txt b/ets2panda/test/parser/ets/default_parameter9-expected.txt index bdfd77d587909fbeb0441248cba871f0b9c4ed00..efabf1fb01fd3a96ce3d9dd3f103bc0a1d267a6c 100644 --- a/ets2panda/test/parser/ets/default_parameter9-expected.txt +++ b/ets2panda/test/parser/ets/default_parameter9-expected.txt @@ -462,7 +462,7 @@ }, "end": { "line": 16, - "column": 55, + "column": 54, "program": "default_parameter9.ets" } } @@ -475,7 +475,7 @@ }, "end": { "line": 16, - "column": 55, + "column": 54, "program": "default_parameter9.ets" } } @@ -489,7 +489,7 @@ }, "end": { "line": 16, - "column": 55, + "column": 54, "program": "default_parameter9.ets" } } @@ -502,7 +502,7 @@ }, "end": { "line": 16, - "column": 55, + "column": 54, "program": "default_parameter9.ets" } } diff --git a/ets2panda/test/parser/ets/default_parameter_implicitly_typed_return_void-expected.txt b/ets2panda/test/parser/ets/default_parameter_implicitly_typed_return_void-expected.txt index e4aaaa7a48ef2f563725eda849718a2dd416d3b5..8a540dbb76653e3d963c038dbed8bf92c3910759 100644 --- a/ets2panda/test/parser/ets/default_parameter_implicitly_typed_return_void-expected.txt +++ b/ets2panda/test/parser/ets/default_parameter_implicitly_typed_return_void-expected.txt @@ -213,7 +213,7 @@ }, "end": { "line": 16, - "column": 24, + "column": 23, "program": "default_parameter_implicitly_typed_return_void.ets" } } @@ -226,7 +226,7 @@ }, "end": { "line": 16, - "column": 24, + "column": 23, "program": "default_parameter_implicitly_typed_return_void.ets" } } @@ -240,7 +240,7 @@ }, "end": { "line": 16, - "column": 24, + "column": 23, "program": "default_parameter_implicitly_typed_return_void.ets" } } @@ -253,7 +253,7 @@ }, "end": { "line": 16, - "column": 24, + "column": 23, "program": "default_parameter_implicitly_typed_return_void.ets" } } @@ -292,7 +292,7 @@ }, "end": { "line": 16, - "column": 37, + "column": 35, "program": "default_parameter_implicitly_typed_return_void.ets" } } @@ -305,7 +305,7 @@ }, "end": { "line": 16, - "column": 37, + "column": 35, "program": "default_parameter_implicitly_typed_return_void.ets" } } @@ -371,7 +371,7 @@ }, "end": { "line": 16, - "column": 60, + "column": 58, "program": "default_parameter_implicitly_typed_return_void.ets" } } @@ -384,7 +384,7 @@ }, "end": { "line": 16, - "column": 60, + "column": 58, "program": "default_parameter_implicitly_typed_return_void.ets" } } @@ -457,7 +457,7 @@ }, "end": { "line": 16, - "column": 37, + "column": 35, "program": "default_parameter_implicitly_typed_return_void.ets" } } @@ -470,7 +470,7 @@ }, "end": { "line": 16, - "column": 37, + "column": 35, "program": "default_parameter_implicitly_typed_return_void.ets" } } @@ -484,7 +484,7 @@ }, "end": { "line": 16, - "column": 37, + "column": 35, "program": "default_parameter_implicitly_typed_return_void.ets" } } @@ -604,7 +604,7 @@ }, "end": { "line": 16, - "column": 37, + "column": 35, "program": "default_parameter_implicitly_typed_return_void.ets" } } @@ -617,7 +617,7 @@ }, "end": { "line": 16, - "column": 37, + "column": 35, "program": "default_parameter_implicitly_typed_return_void.ets" } } @@ -713,7 +713,7 @@ }, "end": { "line": 16, - "column": 60, + "column": 58, "program": "default_parameter_implicitly_typed_return_void.ets" } } @@ -726,7 +726,7 @@ }, "end": { "line": 16, - "column": 60, + "column": 58, "program": "default_parameter_implicitly_typed_return_void.ets" } } @@ -740,7 +740,7 @@ }, "end": { "line": 16, - "column": 60, + "column": 58, "program": "default_parameter_implicitly_typed_return_void.ets" } } @@ -860,7 +860,7 @@ }, "end": { "line": 16, - "column": 60, + "column": 58, "program": "default_parameter_implicitly_typed_return_void.ets" } } @@ -873,7 +873,7 @@ }, "end": { "line": 16, - "column": 60, + "column": 58, "program": "default_parameter_implicitly_typed_return_void.ets" } } diff --git a/ets2panda/test/parser/ets/dynamic_import_tests/dynamic_optional_decl-expected.txt b/ets2panda/test/parser/ets/dynamic_import_tests/dynamic_optional_decl-expected.txt index 094e6f07e067c15348e5674d3dc886314626e392..f8bfa08e5ed2171b6987f1965952eb505f545700 100644 --- a/ets2panda/test/parser/ets/dynamic_import_tests/dynamic_optional_decl-expected.txt +++ b/ets2panda/test/parser/ets/dynamic_import_tests/dynamic_optional_decl-expected.txt @@ -483,7 +483,7 @@ }, "end": { "line": 21, - "column": 24, + "column": 23, "program": "dynamic_optional_decl.ets" } } @@ -496,7 +496,7 @@ }, "end": { "line": 21, - "column": 24, + "column": 23, "program": "dynamic_optional_decl.ets" } } @@ -580,7 +580,7 @@ }, "end": { "line": 21, - "column": 42, + "column": 41, "program": "dynamic_optional_decl.ets" } } @@ -593,7 +593,7 @@ }, "end": { "line": 21, - "column": 42, + "column": 41, "program": "dynamic_optional_decl.ets" } } @@ -705,7 +705,7 @@ }, "end": { "line": 22, - "column": 12, + "column": 11, "program": "dynamic_optional_decl.ets" } } @@ -718,7 +718,7 @@ }, "end": { "line": 22, - "column": 12, + "column": 11, "program": "dynamic_optional_decl.ets" } } @@ -867,7 +867,7 @@ }, "end": { "line": 23, - "column": 12, + "column": 11, "program": "dynamic_optional_decl.ets" } } @@ -880,7 +880,7 @@ }, "end": { "line": 23, - "column": 12, + "column": 11, "program": "dynamic_optional_decl.ets" } } diff --git a/ets2panda/test/parser/ets/dynamic_import_tests/modules/module-expected.txt b/ets2panda/test/parser/ets/dynamic_import_tests/modules/module-expected.txt index 70567ffdead12e5db62d7e42f6fe206c18c278a2..8e6226d91a7bd7c1acf4e92c8e3d689c94fa9109 100644 --- a/ets2panda/test/parser/ets/dynamic_import_tests/modules/module-expected.txt +++ b/ets2panda/test/parser/ets/dynamic_import_tests/modules/module-expected.txt @@ -78,7 +78,7 @@ }, "end": { "line": 19, - "column": 16, + "column": 15, "program": "module.ets" } } @@ -91,7 +91,7 @@ }, "end": { "line": 19, - "column": 16, + "column": 15, "program": "module.ets" } } @@ -106,7 +106,7 @@ }, "end": { "line": 19, - "column": 16, + "column": 15, "program": "module.ets" } } @@ -373,7 +373,7 @@ }, "end": { "line": 23, - "column": 40, + "column": 39, "program": "module.ets" } } @@ -386,7 +386,7 @@ }, "end": { "line": 23, - "column": 40, + "column": 39, "program": "module.ets" } } @@ -400,7 +400,7 @@ }, "end": { "line": 23, - "column": 40, + "column": 39, "program": "module.ets" } } @@ -413,7 +413,7 @@ }, "end": { "line": 23, - "column": 40, + "column": 39, "program": "module.ets" } } @@ -602,7 +602,7 @@ }, "end": { "line": 25, - "column": 28, + "column": 27, "program": "module.ets" } } @@ -615,7 +615,7 @@ }, "end": { "line": 25, - "column": 28, + "column": 27, "program": "module.ets" } } @@ -894,7 +894,7 @@ }, "end": { "line": 27, - "column": 38, + "column": 37, "program": "module.ets" } } @@ -907,7 +907,7 @@ }, "end": { "line": 27, - "column": 38, + "column": 37, "program": "module.ets" } } @@ -1215,8 +1215,8 @@ "program": "module.ets" }, "end": { - "line": 31, - "column": 7, + "line": 30, + "column": 13, "program": "module.ets" } } @@ -1228,8 +1228,8 @@ "program": "module.ets" }, "end": { - "line": 31, - "column": 7, + "line": 30, + "column": 13, "program": "module.ets" } } @@ -1241,8 +1241,8 @@ "program": "module.ets" }, "end": { - "line": 31, - "column": 7, + "line": 30, + "column": 13, "program": "module.ets" } } @@ -1254,8 +1254,8 @@ "program": "module.ets" }, "end": { - "line": 31, - "column": 7, + "line": 30, + "column": 13, "program": "module.ets" } } @@ -1343,8 +1343,8 @@ "program": "module.ets" }, "end": { - "line": 31, - "column": 7, + "line": 30, + "column": 13, "program": "module.ets" } } @@ -1356,8 +1356,8 @@ "program": "module.ets" }, "end": { - "line": 31, - "column": 7, + "line": 30, + "column": 13, "program": "module.ets" } } @@ -1397,8 +1397,8 @@ "program": "module.ets" }, "end": { - "line": 31, - "column": 7, + "line": 30, + "column": 13, "program": "module.ets" } } @@ -1410,8 +1410,8 @@ "program": "module.ets" }, "end": { - "line": 31, - "column": 7, + "line": 30, + "column": 13, "program": "module.ets" } } @@ -1425,8 +1425,8 @@ "program": "module.ets" }, "end": { - "line": 31, - "column": 7, + "line": 30, + "column": 13, "program": "module.ets" } } @@ -1440,8 +1440,8 @@ "program": "module.ets" }, "end": { - "line": 31, - "column": 7, + "line": 30, + "column": 13, "program": "module.ets" } } @@ -1529,7 +1529,7 @@ }, "end": { "line": 31, - "column": 18, + "column": 17, "program": "module.ets" } } @@ -1542,7 +1542,7 @@ }, "end": { "line": 31, - "column": 18, + "column": 17, "program": "module.ets" } } @@ -1556,7 +1556,7 @@ }, "end": { "line": 31, - "column": 18, + "column": 17, "program": "module.ets" } } @@ -1569,7 +1569,7 @@ }, "end": { "line": 31, - "column": 18, + "column": 17, "program": "module.ets" } } @@ -1758,7 +1758,7 @@ }, "end": { "line": 32, - "column": 27, + "column": 26, "program": "module.ets" } } @@ -1771,7 +1771,7 @@ }, "end": { "line": 32, - "column": 27, + "column": 26, "program": "module.ets" } } @@ -1785,7 +1785,7 @@ }, "end": { "line": 32, - "column": 27, + "column": 26, "program": "module.ets" } } @@ -1798,7 +1798,7 @@ }, "end": { "line": 32, - "column": 27, + "column": 26, "program": "module.ets" } } @@ -1857,8 +1857,8 @@ "program": "module.ets" }, "end": { - "line": 35, - "column": 7, + "line": 33, + "column": 2, "program": "module.ets" } } @@ -2200,8 +2200,8 @@ "program": "module.ets" }, "end": { - "line": 41, - "column": 2, + "line": 40, + "column": 13, "program": "module.ets" } } @@ -2213,8 +2213,8 @@ "program": "module.ets" }, "end": { - "line": 41, - "column": 2, + "line": 40, + "column": 13, "program": "module.ets" } } @@ -2228,8 +2228,8 @@ "program": "module.ets" }, "end": { - "line": 41, - "column": 2, + "line": 40, + "column": 13, "program": "module.ets" } } @@ -2438,7 +2438,7 @@ }, "end": { "line": 43, - "column": 44, + "column": 43, "program": "module.ets" } } @@ -2451,7 +2451,7 @@ }, "end": { "line": 43, - "column": 44, + "column": 43, "program": "module.ets" } } @@ -2615,7 +2615,7 @@ }, "end": { "line": 16, - "column": 34, + "column": 33, "program": "module.ets" } } @@ -2628,7 +2628,7 @@ }, "end": { "line": 16, - "column": 34, + "column": 33, "program": "module.ets" } } @@ -2642,7 +2642,7 @@ }, "end": { "line": 16, - "column": 34, + "column": 33, "program": "module.ets" } } @@ -2655,7 +2655,7 @@ }, "end": { "line": 16, - "column": 34, + "column": 33, "program": "module.ets" } } @@ -2801,7 +2801,7 @@ }, "end": { "line": 17, - "column": 44, + "column": 43, "program": "module.ets" } } @@ -2814,7 +2814,7 @@ }, "end": { "line": 17, - "column": 44, + "column": 43, "program": "module.ets" } } @@ -2828,7 +2828,7 @@ }, "end": { "line": 17, - "column": 44, + "column": 43, "program": "module.ets" } } @@ -2841,7 +2841,7 @@ }, "end": { "line": 17, - "column": 44, + "column": 43, "program": "module.ets" } } diff --git a/ets2panda/test/parser/ets/exports-expected.txt b/ets2panda/test/parser/ets/exports-expected.txt index 115ec532d38afceef6fd716ec182bb0a397d1833..970424f5c0d78b797f701e233f70485cdcaebbd5 100644 --- a/ets2panda/test/parser/ets/exports-expected.txt +++ b/ets2panda/test/parser/ets/exports-expected.txt @@ -44,8 +44,8 @@ "program": "exports.ets" }, "end": { - "line": 22, - "column": 7, + "line": 21, + "column": 22, "program": "exports.ets" } } diff --git a/ets2panda/test/parser/ets/external_cyclic_constructor_check-expected.txt b/ets2panda/test/parser/ets/external_cyclic_constructor_check-expected.txt index 6062aa7e883fa11b3878a37bad47dfd213ebb08e..d3d8c633b841994e9fefdc04e52f3c8e141c15ba 100644 --- a/ets2panda/test/parser/ets/external_cyclic_constructor_check-expected.txt +++ b/ets2panda/test/parser/ets/external_cyclic_constructor_check-expected.txt @@ -250,7 +250,7 @@ }, "end": { "line": 17, - "column": 29, + "column": 28, "program": "external_cyclic_constructor_check.ets" } } @@ -263,7 +263,7 @@ }, "end": { "line": 17, - "column": 29, + "column": 28, "program": "external_cyclic_constructor_check.ets" } } diff --git a/ets2panda/test/parser/ets/for_of-expected.txt b/ets2panda/test/parser/ets/for_of-expected.txt index 4b94ee693eeb05f672ae40d54e21b725b9a46111..14d19e60513cd777d0cfa85a517f2e299316cdaa 100644 --- a/ets2panda/test/parser/ets/for_of-expected.txt +++ b/ets2panda/test/parser/ets/for_of-expected.txt @@ -1009,7 +1009,7 @@ }, "end": { "line": 28, - "column": 28, + "column": 26, "program": "for_of.ets" } } @@ -1022,7 +1022,7 @@ }, "end": { "line": 28, - "column": 28, + "column": 26, "program": "for_of.ets" } } diff --git a/ets2panda/test/parser/ets/forofUnboxing-expected.txt b/ets2panda/test/parser/ets/forofUnboxing-expected.txt index cdbdae00b3d135db2dba22af95ec078e75343af8..a03e16acba5fcb682a71f502ed49367460a163a3 100644 --- a/ets2panda/test/parser/ets/forofUnboxing-expected.txt +++ b/ets2panda/test/parser/ets/forofUnboxing-expected.txt @@ -430,7 +430,7 @@ }, "end": { "line": 18, - "column": 33, + "column": 32, "program": "forofUnboxing.ets" } } @@ -443,7 +443,7 @@ }, "end": { "line": 18, - "column": 33, + "column": 32, "program": "forofUnboxing.ets" } } @@ -540,7 +540,7 @@ }, "end": { "line": 18, - "column": 55, + "column": 54, "program": "forofUnboxing.ets" } } @@ -553,7 +553,7 @@ }, "end": { "line": 18, - "column": 55, + "column": 54, "program": "forofUnboxing.ets" } } @@ -650,7 +650,7 @@ }, "end": { "line": 18, - "column": 77, + "column": 76, "program": "forofUnboxing.ets" } } @@ -663,7 +663,7 @@ }, "end": { "line": 18, - "column": 77, + "column": 76, "program": "forofUnboxing.ets" } } diff --git a/ets2panda/test/parser/ets/funcParamWithOptionalParam-expected.txt b/ets2panda/test/parser/ets/funcParamWithOptionalParam-expected.txt index bebea4af249a492082897b29680597d6e93c24a3..ae3287ad2635ad953990f8686403276c7e452a11 100644 --- a/ets2panda/test/parser/ets/funcParamWithOptionalParam-expected.txt +++ b/ets2panda/test/parser/ets/funcParamWithOptionalParam-expected.txt @@ -262,8 +262,8 @@ "program": "funcParamWithOptionalParam.ets" }, "end": { - "line": 19, - "column": 1, + "line": 18, + "column": 2, "program": "funcParamWithOptionalParam.ets" } } diff --git a/ets2panda/test/parser/ets/function-expected.txt b/ets2panda/test/parser/ets/function-expected.txt index 47f01ee73d014e6bc4880842dc09f7be7c22ab8f..2b90f731ca247319e677d7bbcbcb8cc1d8201788 100644 --- a/ets2panda/test/parser/ets/function-expected.txt +++ b/ets2panda/test/parser/ets/function-expected.txt @@ -290,7 +290,7 @@ }, "end": { "line": 34, - "column": 54, + "column": 51, "program": "function.ets" } } @@ -303,7 +303,7 @@ }, "end": { "line": 34, - "column": 54, + "column": 51, "program": "function.ets" } } @@ -546,7 +546,7 @@ }, "end": { "line": 17, - "column": 28, + "column": 27, "program": "function.ets" } } @@ -559,7 +559,7 @@ }, "end": { "line": 17, - "column": 28, + "column": 27, "program": "function.ets" } } @@ -573,7 +573,7 @@ }, "end": { "line": 17, - "column": 28, + "column": 27, "program": "function.ets" } } @@ -586,7 +586,7 @@ }, "end": { "line": 17, - "column": 28, + "column": 27, "program": "function.ets" } } @@ -621,7 +621,7 @@ }, "end": { "line": 17, - "column": 38, + "column": 36, "program": "function.ets" } } @@ -634,7 +634,7 @@ }, "end": { "line": 17, - "column": 38, + "column": 36, "program": "function.ets" } } @@ -797,7 +797,7 @@ }, "end": { "line": 21, - "column": 28, + "column": 27, "program": "function.ets" } } @@ -810,7 +810,7 @@ }, "end": { "line": 21, - "column": 28, + "column": 27, "program": "function.ets" } } @@ -824,7 +824,7 @@ }, "end": { "line": 21, - "column": 28, + "column": 27, "program": "function.ets" } } @@ -837,7 +837,7 @@ }, "end": { "line": 21, - "column": 28, + "column": 27, "program": "function.ets" } } @@ -876,7 +876,7 @@ }, "end": { "line": 21, - "column": 43, + "column": 42, "program": "function.ets" } } @@ -889,7 +889,7 @@ }, "end": { "line": 21, - "column": 43, + "column": 42, "program": "function.ets" } } @@ -903,7 +903,7 @@ }, "end": { "line": 21, - "column": 43, + "column": 42, "program": "function.ets" } } @@ -916,7 +916,7 @@ }, "end": { "line": 21, - "column": 43, + "column": 42, "program": "function.ets" } } @@ -1109,7 +1109,7 @@ }, "end": { "line": 25, - "column": 27, + "column": 26, "program": "function.ets" } } @@ -1122,7 +1122,7 @@ }, "end": { "line": 25, - "column": 27, + "column": 26, "program": "function.ets" } } @@ -1136,7 +1136,7 @@ }, "end": { "line": 25, - "column": 27, + "column": 26, "program": "function.ets" } } @@ -1149,7 +1149,7 @@ }, "end": { "line": 25, - "column": 27, + "column": 26, "program": "function.ets" } } @@ -1342,7 +1342,7 @@ }, "end": { "line": 29, - "column": 33, + "column": 32, "program": "function.ets" } } @@ -1355,7 +1355,7 @@ }, "end": { "line": 29, - "column": 33, + "column": 32, "program": "function.ets" } } @@ -1369,7 +1369,7 @@ }, "end": { "line": 29, - "column": 33, + "column": 32, "program": "function.ets" } } @@ -1382,7 +1382,7 @@ }, "end": { "line": 29, - "column": 33, + "column": 32, "program": "function.ets" } } @@ -1421,7 +1421,7 @@ }, "end": { "line": 29, - "column": 48, + "column": 47, "program": "function.ets" } } @@ -1434,7 +1434,7 @@ }, "end": { "line": 29, - "column": 48, + "column": 47, "program": "function.ets" } } @@ -1448,7 +1448,7 @@ }, "end": { "line": 29, - "column": 48, + "column": 47, "program": "function.ets" } } @@ -1461,7 +1461,7 @@ }, "end": { "line": 29, - "column": 48, + "column": 47, "program": "function.ets" } } @@ -1496,7 +1496,7 @@ }, "end": { "line": 29, - "column": 58, + "column": 56, "program": "function.ets" } } @@ -1509,7 +1509,7 @@ }, "end": { "line": 29, - "column": 58, + "column": 56, "program": "function.ets" } } @@ -1550,7 +1550,7 @@ }, "end": { "line": 30, - "column": 21, + "column": 20, "program": "function.ets" } } @@ -1563,7 +1563,7 @@ }, "end": { "line": 30, - "column": 21, + "column": 20, "program": "function.ets" } } @@ -1770,7 +1770,7 @@ }, "end": { "line": 34, - "column": 34, + "column": 32, "program": "function.ets" } } @@ -1783,7 +1783,7 @@ }, "end": { "line": 34, - "column": 34, + "column": 32, "program": "function.ets" } } @@ -1796,7 +1796,7 @@ }, "end": { "line": 34, - "column": 34, + "column": 32, "program": "function.ets" } } diff --git a/ets2panda/test/parser/ets/function_implicit_return_type8-expected.txt b/ets2panda/test/parser/ets/function_implicit_return_type8-expected.txt index 0962ccef9ceffe50004a461e66b0d385ca7a56cf..3f4706de4a8a9246eb67b9b01cd2d0b4a8d102d4 100644 --- a/ets2panda/test/parser/ets/function_implicit_return_type8-expected.txt +++ b/ets2panda/test/parser/ets/function_implicit_return_type8-expected.txt @@ -1099,7 +1099,7 @@ }, "end": { "line": 38, - "column": 27, + "column": 26, "program": "function_implicit_return_type8.ets" } } @@ -1112,7 +1112,7 @@ }, "end": { "line": 38, - "column": 27, + "column": 26, "program": "function_implicit_return_type8.ets" } } diff --git a/ets2panda/test/parser/ets/function_implicit_return_type9-expected.txt b/ets2panda/test/parser/ets/function_implicit_return_type9-expected.txt index 66d7eac05862b05a8e4bf6a7b2db9257f9e674d3..e5393a8751c271de845503f849bf92b3f9c64f34 100644 --- a/ets2panda/test/parser/ets/function_implicit_return_type9-expected.txt +++ b/ets2panda/test/parser/ets/function_implicit_return_type9-expected.txt @@ -102,7 +102,7 @@ }, "end": { "line": 18, - "column": 39, + "column": 37, "program": "function_implicit_return_type9.ets" } } @@ -115,7 +115,7 @@ }, "end": { "line": 18, - "column": 39, + "column": 37, "program": "function_implicit_return_type9.ets" } } @@ -977,8 +977,8 @@ "program": "function_implicit_return_type9.ets" }, "end": { - "line": 34, - "column": 2, + "line": 33, + "column": 13, "program": "function_implicit_return_type9.ets" } } @@ -990,8 +990,8 @@ "program": "function_implicit_return_type9.ets" }, "end": { - "line": 34, - "column": 2, + "line": 33, + "column": 13, "program": "function_implicit_return_type9.ets" } } @@ -1486,7 +1486,7 @@ }, "end": { "line": 42, - "column": 27, + "column": 26, "program": "function_implicit_return_type9.ets" } } @@ -1499,7 +1499,7 @@ }, "end": { "line": 42, - "column": 27, + "column": 26, "program": "function_implicit_return_type9.ets" } } diff --git a/ets2panda/test/parser/ets/genericDefaultParam_1-expected.txt b/ets2panda/test/parser/ets/genericDefaultParam_1-expected.txt index 96a72b4e642db5692c3862ec2d5a00d40e70c26a..022219faa3134bfe7f6de5f80f45df53cc7dc106 100644 --- a/ets2panda/test/parser/ets/genericDefaultParam_1-expected.txt +++ b/ets2panda/test/parser/ets/genericDefaultParam_1-expected.txt @@ -243,7 +243,7 @@ }, "end": { "line": 25, - "column": 36, + "column": 35, "program": "genericDefaultParam_1.ets" } } @@ -256,7 +256,7 @@ }, "end": { "line": 25, - "column": 36, + "column": 35, "program": "genericDefaultParam_1.ets" } } @@ -295,8 +295,8 @@ "program": "genericDefaultParam_1.ets" }, "end": { - "line": 26, - "column": 6, + "line": 25, + "column": 40, "program": "genericDefaultParam_1.ets" } } @@ -372,7 +372,7 @@ }, "end": { "line": 26, - "column": 27, + "column": 26, "program": "genericDefaultParam_1.ets" } } @@ -385,7 +385,7 @@ }, "end": { "line": 26, - "column": 27, + "column": 26, "program": "genericDefaultParam_1.ets" } } @@ -601,7 +601,7 @@ }, "end": { "line": 27, - "column": 39, + "column": 28, "program": "genericDefaultParam_1.ets" } } @@ -614,7 +614,7 @@ }, "end": { "line": 27, - "column": 39, + "column": 28, "program": "genericDefaultParam_1.ets" } } @@ -651,7 +651,7 @@ }, "end": { "line": 27, - "column": 51, + "column": 49, "program": "genericDefaultParam_1.ets" } } @@ -664,7 +664,7 @@ }, "end": { "line": 27, - "column": 51, + "column": 49, "program": "genericDefaultParam_1.ets" } } @@ -889,7 +889,7 @@ }, "end": { "line": 28, - "column": 38, + "column": 37, "program": "genericDefaultParam_1.ets" } } @@ -902,7 +902,7 @@ }, "end": { "line": 28, - "column": 38, + "column": 37, "program": "genericDefaultParam_1.ets" } } @@ -929,7 +929,7 @@ }, "end": { "line": 28, - "column": 49, + "column": 38, "program": "genericDefaultParam_1.ets" } } @@ -942,7 +942,7 @@ }, "end": { "line": 28, - "column": 49, + "column": 38, "program": "genericDefaultParam_1.ets" } } @@ -1003,7 +1003,7 @@ }, "end": { "line": 28, - "column": 69, + "column": 68, "program": "genericDefaultParam_1.ets" } } @@ -1016,7 +1016,7 @@ }, "end": { "line": 28, - "column": 69, + "column": 68, "program": "genericDefaultParam_1.ets" } } @@ -1043,7 +1043,7 @@ }, "end": { "line": 28, - "column": 71, + "column": 69, "program": "genericDefaultParam_1.ets" } } @@ -1056,7 +1056,7 @@ }, "end": { "line": 28, - "column": 71, + "column": 69, "program": "genericDefaultParam_1.ets" } } @@ -1311,7 +1311,7 @@ }, "end": { "line": 30, - "column": 27, + "column": 26, "program": "genericDefaultParam_1.ets" } } @@ -1324,7 +1324,7 @@ }, "end": { "line": 30, - "column": 27, + "column": 26, "program": "genericDefaultParam_1.ets" } } @@ -1390,7 +1390,7 @@ }, "end": { "line": 30, - "column": 40, + "column": 39, "program": "genericDefaultParam_1.ets" } } @@ -1403,7 +1403,7 @@ }, "end": { "line": 30, - "column": 40, + "column": 39, "program": "genericDefaultParam_1.ets" } } @@ -1820,7 +1820,7 @@ }, "end": { "line": 20, - "column": 18, + "column": 17, "program": "genericDefaultParam_1.ets" } } @@ -1833,7 +1833,7 @@ }, "end": { "line": 20, - "column": 18, + "column": 17, "program": "genericDefaultParam_1.ets" } } @@ -1948,7 +1948,7 @@ }, "end": { "line": 21, - "column": 26, + "column": 25, "program": "genericDefaultParam_1.ets" } } @@ -1961,7 +1961,7 @@ }, "end": { "line": 21, - "column": 26, + "column": 25, "program": "genericDefaultParam_1.ets" } } @@ -2013,7 +2013,7 @@ }, "end": { "line": 21, - "column": 13, + "column": 12, "program": "genericDefaultParam_1.ets" } } @@ -2026,7 +2026,7 @@ }, "end": { "line": 21, - "column": 13, + "column": 12, "program": "genericDefaultParam_1.ets" } } @@ -2143,7 +2143,7 @@ }, "end": { "line": 22, - "column": 13, + "column": 12, "program": "genericDefaultParam_1.ets" } } @@ -2156,7 +2156,7 @@ }, "end": { "line": 22, - "column": 13, + "column": 12, "program": "genericDefaultParam_1.ets" } } @@ -2278,7 +2278,7 @@ }, "end": { "line": 31, - "column": 24, + "column": 23, "program": "genericDefaultParam_1.ets" } } @@ -2291,7 +2291,7 @@ }, "end": { "line": 31, - "column": 24, + "column": 23, "program": "genericDefaultParam_1.ets" } } @@ -2317,8 +2317,8 @@ "program": "genericDefaultParam_1.ets" }, "end": { - "line": 32, - "column": 4, + "line": 31, + "column": 24, "program": "genericDefaultParam_1.ets" } } @@ -2330,8 +2330,8 @@ "program": "genericDefaultParam_1.ets" }, "end": { - "line": 32, - "column": 4, + "line": 31, + "column": 24, "program": "genericDefaultParam_1.ets" } } @@ -2453,7 +2453,7 @@ }, "end": { "line": 32, - "column": 24, + "column": 23, "program": "genericDefaultParam_1.ets" } } @@ -2466,7 +2466,7 @@ }, "end": { "line": 32, - "column": 24, + "column": 23, "program": "genericDefaultParam_1.ets" } } @@ -2500,7 +2500,7 @@ }, "end": { "line": 32, - "column": 32, + "column": 31, "program": "genericDefaultParam_1.ets" } } @@ -2513,7 +2513,7 @@ }, "end": { "line": 32, - "column": 32, + "column": 31, "program": "genericDefaultParam_1.ets" } } @@ -2539,8 +2539,8 @@ "program": "genericDefaultParam_1.ets" }, "end": { - "line": 33, - "column": 4, + "line": 32, + "column": 32, "program": "genericDefaultParam_1.ets" } } @@ -2552,8 +2552,8 @@ "program": "genericDefaultParam_1.ets" }, "end": { - "line": 33, - "column": 4, + "line": 32, + "column": 32, "program": "genericDefaultParam_1.ets" } } @@ -2675,7 +2675,7 @@ }, "end": { "line": 33, - "column": 24, + "column": 23, "program": "genericDefaultParam_1.ets" } } @@ -2688,7 +2688,7 @@ }, "end": { "line": 33, - "column": 24, + "column": 23, "program": "genericDefaultParam_1.ets" } } @@ -2722,7 +2722,7 @@ }, "end": { "line": 33, - "column": 32, + "column": 31, "program": "genericDefaultParam_1.ets" } } @@ -2735,7 +2735,7 @@ }, "end": { "line": 33, - "column": 32, + "column": 31, "program": "genericDefaultParam_1.ets" } } @@ -2769,7 +2769,7 @@ }, "end": { "line": 33, - "column": 40, + "column": 39, "program": "genericDefaultParam_1.ets" } } @@ -2782,7 +2782,7 @@ }, "end": { "line": 33, - "column": 40, + "column": 39, "program": "genericDefaultParam_1.ets" } } @@ -2808,8 +2808,8 @@ "program": "genericDefaultParam_1.ets" }, "end": { - "line": 34, - "column": 1, + "line": 33, + "column": 40, "program": "genericDefaultParam_1.ets" } } @@ -2821,8 +2821,8 @@ "program": "genericDefaultParam_1.ets" }, "end": { - "line": 34, - "column": 1, + "line": 33, + "column": 40, "program": "genericDefaultParam_1.ets" } } @@ -3005,7 +3005,7 @@ }, "end": { "line": 16, - "column": 37, + "column": 36, "program": "genericDefaultParam_1.ets" } } @@ -3018,7 +3018,7 @@ }, "end": { "line": 16, - "column": 37, + "column": 36, "program": "genericDefaultParam_1.ets" } } @@ -3032,7 +3032,7 @@ }, "end": { "line": 16, - "column": 37, + "column": 36, "program": "genericDefaultParam_1.ets" } } @@ -3045,7 +3045,7 @@ }, "end": { "line": 16, - "column": 37, + "column": 36, "program": "genericDefaultParam_1.ets" } } @@ -3080,7 +3080,7 @@ }, "end": { "line": 16, - "column": 42, + "column": 40, "program": "genericDefaultParam_1.ets" } } @@ -3093,7 +3093,7 @@ }, "end": { "line": 16, - "column": 42, + "column": 40, "program": "genericDefaultParam_1.ets" } } @@ -3149,7 +3149,7 @@ }, "end": { "line": 16, - "column": 26, + "column": 25, "program": "genericDefaultParam_1.ets" } } @@ -3162,7 +3162,7 @@ }, "end": { "line": 16, - "column": 26, + "column": 25, "program": "genericDefaultParam_1.ets" } } @@ -3358,7 +3358,7 @@ }, "end": { "line": 31, - "column": 24, + "column": 23, "program": "genericDefaultParam_1.ets" } } @@ -3371,7 +3371,7 @@ }, "end": { "line": 31, - "column": 24, + "column": 23, "program": "genericDefaultParam_1.ets" } } @@ -3397,8 +3397,8 @@ "program": "genericDefaultParam_1.ets" }, "end": { - "line": 32, - "column": 4, + "line": 31, + "column": 24, "program": "genericDefaultParam_1.ets" } } @@ -3410,8 +3410,8 @@ "program": "genericDefaultParam_1.ets" }, "end": { - "line": 32, - "column": 4, + "line": 31, + "column": 24, "program": "genericDefaultParam_1.ets" } } @@ -3525,7 +3525,7 @@ }, "end": { "line": 32, - "column": 24, + "column": 23, "program": "genericDefaultParam_1.ets" } } @@ -3538,7 +3538,7 @@ }, "end": { "line": 32, - "column": 24, + "column": 23, "program": "genericDefaultParam_1.ets" } } @@ -3572,7 +3572,7 @@ }, "end": { "line": 32, - "column": 32, + "column": 31, "program": "genericDefaultParam_1.ets" } } @@ -3585,7 +3585,7 @@ }, "end": { "line": 32, - "column": 32, + "column": 31, "program": "genericDefaultParam_1.ets" } } @@ -3611,8 +3611,8 @@ "program": "genericDefaultParam_1.ets" }, "end": { - "line": 33, - "column": 4, + "line": 32, + "column": 32, "program": "genericDefaultParam_1.ets" } } @@ -3624,8 +3624,8 @@ "program": "genericDefaultParam_1.ets" }, "end": { - "line": 33, - "column": 4, + "line": 32, + "column": 32, "program": "genericDefaultParam_1.ets" } } @@ -3739,7 +3739,7 @@ }, "end": { "line": 33, - "column": 24, + "column": 23, "program": "genericDefaultParam_1.ets" } } @@ -3752,7 +3752,7 @@ }, "end": { "line": 33, - "column": 24, + "column": 23, "program": "genericDefaultParam_1.ets" } } @@ -3786,7 +3786,7 @@ }, "end": { "line": 33, - "column": 32, + "column": 31, "program": "genericDefaultParam_1.ets" } } @@ -3799,7 +3799,7 @@ }, "end": { "line": 33, - "column": 32, + "column": 31, "program": "genericDefaultParam_1.ets" } } @@ -3833,7 +3833,7 @@ }, "end": { "line": 33, - "column": 40, + "column": 39, "program": "genericDefaultParam_1.ets" } } @@ -3846,7 +3846,7 @@ }, "end": { "line": 33, - "column": 40, + "column": 39, "program": "genericDefaultParam_1.ets" } } @@ -3872,8 +3872,8 @@ "program": "genericDefaultParam_1.ets" }, "end": { - "line": 34, - "column": 1, + "line": 33, + "column": 40, "program": "genericDefaultParam_1.ets" } } @@ -3885,8 +3885,8 @@ "program": "genericDefaultParam_1.ets" }, "end": { - "line": 34, - "column": 1, + "line": 33, + "column": 40, "program": "genericDefaultParam_1.ets" } } diff --git a/ets2panda/test/parser/ets/genericDefaultParam_3-expected.txt b/ets2panda/test/parser/ets/genericDefaultParam_3-expected.txt index e5fc0bf4fc8a89766dc9f5a0d0342d681685369c..9fa6b86ddb2ed55bd8548d9bd8e09b7e11fc7e91 100644 --- a/ets2panda/test/parser/ets/genericDefaultParam_3-expected.txt +++ b/ets2panda/test/parser/ets/genericDefaultParam_3-expected.txt @@ -386,7 +386,7 @@ }, "end": { "line": 16, - "column": 37, + "column": 36, "program": "genericDefaultParam_3.ets" } } @@ -399,7 +399,7 @@ }, "end": { "line": 16, - "column": 37, + "column": 36, "program": "genericDefaultParam_3.ets" } } @@ -413,7 +413,7 @@ }, "end": { "line": 16, - "column": 37, + "column": 36, "program": "genericDefaultParam_3.ets" } } @@ -426,7 +426,7 @@ }, "end": { "line": 16, - "column": 37, + "column": 36, "program": "genericDefaultParam_3.ets" } } @@ -461,7 +461,7 @@ }, "end": { "line": 16, - "column": 42, + "column": 40, "program": "genericDefaultParam_3.ets" } } @@ -474,7 +474,7 @@ }, "end": { "line": 16, - "column": 42, + "column": 40, "program": "genericDefaultParam_3.ets" } } @@ -530,7 +530,7 @@ }, "end": { "line": 16, - "column": 26, + "column": 25, "program": "genericDefaultParam_3.ets" } } @@ -543,7 +543,7 @@ }, "end": { "line": 16, - "column": 26, + "column": 25, "program": "genericDefaultParam_3.ets" } } diff --git a/ets2panda/test/parser/ets/generic_function-expected.txt b/ets2panda/test/parser/ets/generic_function-expected.txt index e71bef29a18747605358d10ba1c7766ecc007b97..ccea9a3d4dc49ac66bd3c3b6d63c10928efa188c 100644 --- a/ets2panda/test/parser/ets/generic_function-expected.txt +++ b/ets2panda/test/parser/ets/generic_function-expected.txt @@ -92,7 +92,7 @@ }, "end": { "line": 17, - "column": 31, + "column": 30, "program": "generic_function.ets" } } @@ -105,7 +105,7 @@ }, "end": { "line": 17, - "column": 31, + "column": 30, "program": "generic_function.ets" } } @@ -262,8 +262,8 @@ "program": "generic_function.ets" }, "end": { - "line": 20, - "column": 9, + "line": 18, + "column": 2, "program": "generic_function.ets" } } @@ -589,7 +589,7 @@ }, "end": { "line": 20, - "column": 46, + "column": 45, "program": "generic_function.ets" } } @@ -602,7 +602,7 @@ }, "end": { "line": 20, - "column": 46, + "column": 45, "program": "generic_function.ets" } } @@ -700,7 +700,7 @@ }, "end": { "line": 20, - "column": 57, + "column": 56, "program": "generic_function.ets" } } @@ -713,7 +713,7 @@ }, "end": { "line": 20, - "column": 57, + "column": 56, "program": "generic_function.ets" } } @@ -841,7 +841,7 @@ }, "end": { "line": 20, - "column": 40, + "column": 39, "program": "generic_function.ets" } } @@ -854,7 +854,7 @@ }, "end": { "line": 20, - "column": 40, + "column": 39, "program": "generic_function.ets" } } diff --git a/ets2panda/test/parser/ets/generic_resolve-expected.txt b/ets2panda/test/parser/ets/generic_resolve-expected.txt index 9f9dad8744db4357f42def403993ddee6841623f..e0eed0fdd54977c1a09b0b8ed1b720a69f1065b1 100644 --- a/ets2panda/test/parser/ets/generic_resolve-expected.txt +++ b/ets2panda/test/parser/ets/generic_resolve-expected.txt @@ -265,7 +265,7 @@ }, "end": { "line": 20, - "column": 34, + "column": 33, "program": "generic_resolve.ets" } } @@ -278,7 +278,7 @@ }, "end": { "line": 20, - "column": 34, + "column": 33, "program": "generic_resolve.ets" } } @@ -291,7 +291,7 @@ }, "end": { "line": 20, - "column": 34, + "column": 33, "program": "generic_resolve.ets" } } @@ -305,7 +305,7 @@ }, "end": { "line": 20, - "column": 34, + "column": 33, "program": "generic_resolve.ets" } } @@ -318,7 +318,7 @@ }, "end": { "line": 20, - "column": 34, + "column": 33, "program": "generic_resolve.ets" } } @@ -377,7 +377,7 @@ }, "end": { "line": 20, - "column": 42, + "column": 41, "program": "generic_resolve.ets" } } @@ -390,7 +390,7 @@ }, "end": { "line": 20, - "column": 42, + "column": 41, "program": "generic_resolve.ets" } } @@ -417,7 +417,7 @@ }, "end": { "line": 20, - "column": 44, + "column": 42, "program": "generic_resolve.ets" } } @@ -430,7 +430,7 @@ }, "end": { "line": 20, - "column": 44, + "column": 42, "program": "generic_resolve.ets" } } @@ -564,7 +564,7 @@ }, "end": { "line": 21, - "column": 33, + "column": 32, "program": "generic_resolve.ets" } } @@ -577,7 +577,7 @@ }, "end": { "line": 21, - "column": 33, + "column": 32, "program": "generic_resolve.ets" } } @@ -604,7 +604,7 @@ }, "end": { "line": 21, - "column": 34, + "column": 33, "program": "generic_resolve.ets" } } @@ -617,7 +617,7 @@ }, "end": { "line": 21, - "column": 34, + "column": 33, "program": "generic_resolve.ets" } } @@ -781,7 +781,7 @@ }, "end": { "line": 23, - "column": 25, + "column": 23, "program": "generic_resolve.ets" } } @@ -794,7 +794,7 @@ }, "end": { "line": 23, - "column": 25, + "column": 23, "program": "generic_resolve.ets" } } @@ -1214,7 +1214,7 @@ }, "end": { "line": 29, - "column": 37, + "column": 36, "program": "generic_resolve.ets" } } @@ -1227,7 +1227,7 @@ }, "end": { "line": 29, - "column": 37, + "column": 36, "program": "generic_resolve.ets" } } @@ -1241,7 +1241,7 @@ }, "end": { "line": 29, - "column": 37, + "column": 36, "program": "generic_resolve.ets" } } @@ -1254,7 +1254,7 @@ }, "end": { "line": 29, - "column": 37, + "column": 36, "program": "generic_resolve.ets" } } diff --git a/ets2panda/test/parser/ets/generics_2-expected.txt b/ets2panda/test/parser/ets/generics_2-expected.txt index f7a4fc92f11da4e66de04d8a0ece744f1bfbd4ff..5cdfec0435654efdbea6b758ab43dbf7d2b3787b 100644 --- a/ets2panda/test/parser/ets/generics_2-expected.txt +++ b/ets2panda/test/parser/ets/generics_2-expected.txt @@ -108,7 +108,7 @@ }, "end": { "line": 17, - "column": 21, + "column": 20, "program": "generics_2.ets" } } @@ -121,7 +121,7 @@ }, "end": { "line": 17, - "column": 21, + "column": 20, "program": "generics_2.ets" } } @@ -148,7 +148,7 @@ }, "end": { "line": 17, - "column": 22, + "column": 21, "program": "generics_2.ets" } } @@ -161,7 +161,7 @@ }, "end": { "line": 17, - "column": 22, + "column": 21, "program": "generics_2.ets" } } @@ -174,7 +174,7 @@ }, "end": { "line": 17, - "column": 22, + "column": 21, "program": "generics_2.ets" } } @@ -187,7 +187,7 @@ }, "end": { "line": 17, - "column": 22, + "column": 21, "program": "generics_2.ets" } } @@ -309,7 +309,7 @@ }, "end": { "line": 18, - "column": 21, + "column": 20, "program": "generics_2.ets" } } @@ -322,7 +322,7 @@ }, "end": { "line": 18, - "column": 21, + "column": 20, "program": "generics_2.ets" } } @@ -349,7 +349,7 @@ }, "end": { "line": 18, - "column": 22, + "column": 21, "program": "generics_2.ets" } } @@ -362,7 +362,7 @@ }, "end": { "line": 18, - "column": 22, + "column": 21, "program": "generics_2.ets" } } @@ -375,7 +375,7 @@ }, "end": { "line": 18, - "column": 22, + "column": 21, "program": "generics_2.ets" } } @@ -388,7 +388,7 @@ }, "end": { "line": 18, - "column": 22, + "column": 21, "program": "generics_2.ets" } } @@ -496,8 +496,8 @@ "program": "generics_2.ets" }, "end": { - "line": 21, - "column": 6, + "line": 19, + "column": 2, "program": "generics_2.ets" } } @@ -628,7 +628,7 @@ }, "end": { "line": 21, - "column": 41, + "column": 40, "program": "generics_2.ets" } } @@ -641,7 +641,7 @@ }, "end": { "line": 21, - "column": 41, + "column": 40, "program": "generics_2.ets" } } @@ -668,7 +668,7 @@ }, "end": { "line": 21, - "column": 43, + "column": 41, "program": "generics_2.ets" } } @@ -681,7 +681,7 @@ }, "end": { "line": 21, - "column": 43, + "column": 41, "program": "generics_2.ets" } } @@ -803,7 +803,7 @@ }, "end": { "line": 22, - "column": 30, + "column": 29, "program": "generics_2.ets" } } @@ -816,7 +816,7 @@ }, "end": { "line": 22, - "column": 30, + "column": 29, "program": "generics_2.ets" } } @@ -843,7 +843,7 @@ }, "end": { "line": 22, - "column": 32, + "column": 30, "program": "generics_2.ets" } } @@ -856,7 +856,7 @@ }, "end": { "line": 22, - "column": 32, + "column": 30, "program": "generics_2.ets" } } @@ -1051,7 +1051,7 @@ }, "end": { "line": 25, - "column": 30, + "column": 29, "program": "generics_2.ets" } } @@ -1064,7 +1064,7 @@ }, "end": { "line": 25, - "column": 30, + "column": 29, "program": "generics_2.ets" } } @@ -1091,7 +1091,7 @@ }, "end": { "line": 25, - "column": 32, + "column": 30, "program": "generics_2.ets" } } @@ -1104,7 +1104,7 @@ }, "end": { "line": 25, - "column": 32, + "column": 30, "program": "generics_2.ets" } } @@ -1184,7 +1184,7 @@ }, "end": { "line": 26, - "column": 33, + "column": 32, "program": "generics_2.ets" } } @@ -1197,7 +1197,7 @@ }, "end": { "line": 26, - "column": 33, + "column": 32, "program": "generics_2.ets" } } @@ -1224,7 +1224,7 @@ }, "end": { "line": 26, - "column": 34, + "column": 33, "program": "generics_2.ets" } } @@ -1237,7 +1237,7 @@ }, "end": { "line": 26, - "column": 34, + "column": 33, "program": "generics_2.ets" } } diff --git a/ets2panda/test/parser/ets/generics_3-expected.txt b/ets2panda/test/parser/ets/generics_3-expected.txt index 49f6186bb1b89fcfe8f29e6630ccecbbfb68973f..b0d5cd0252fbe53c59f26b309f151d2a3eb7bc2d 100644 --- a/ets2panda/test/parser/ets/generics_3-expected.txt +++ b/ets2panda/test/parser/ets/generics_3-expected.txt @@ -452,7 +452,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "generics_3.ets" } } @@ -465,7 +465,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "generics_3.ets" } } @@ -478,7 +478,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "generics_3.ets" } } @@ -492,7 +492,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "generics_3.ets" } } @@ -505,7 +505,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "generics_3.ets" } } @@ -783,7 +783,7 @@ }, "end": { "line": 19, - "column": 43, + "column": 42, "program": "generics_3.ets" } } @@ -796,7 +796,7 @@ }, "end": { "line": 19, - "column": 43, + "column": 42, "program": "generics_3.ets" } } @@ -830,7 +830,7 @@ }, "end": { "line": 19, - "column": 51, + "column": 50, "program": "generics_3.ets" } } @@ -843,7 +843,7 @@ }, "end": { "line": 19, - "column": 51, + "column": 50, "program": "generics_3.ets" } } @@ -870,7 +870,7 @@ }, "end": { "line": 19, - "column": 54, + "column": 51, "program": "generics_3.ets" } } @@ -883,7 +883,7 @@ }, "end": { "line": 19, - "column": 54, + "column": 51, "program": "generics_3.ets" } } @@ -924,7 +924,7 @@ }, "end": { "line": 19, - "column": 73, + "column": 72, "program": "generics_3.ets" } } @@ -937,7 +937,7 @@ }, "end": { "line": 19, - "column": 73, + "column": 72, "program": "generics_3.ets" } } @@ -1067,7 +1067,7 @@ }, "end": { "line": 19, - "column": 18, + "column": 17, "program": "generics_3.ets" } } @@ -1080,7 +1080,7 @@ }, "end": { "line": 19, - "column": 18, + "column": 17, "program": "generics_3.ets" } } @@ -1114,7 +1114,7 @@ }, "end": { "line": 19, - "column": 27, + "column": 25, "program": "generics_3.ets" } } @@ -1127,7 +1127,7 @@ }, "end": { "line": 19, - "column": 27, + "column": 25, "program": "generics_3.ets" } } diff --git a/ets2panda/test/parser/ets/generics_4-expected.txt b/ets2panda/test/parser/ets/generics_4-expected.txt index 130c4a1f9422d1795fa937b71e7a95b693b6fc03..9d105c2638e58112b10133908d2ce606ef5fb41c 100644 --- a/ets2panda/test/parser/ets/generics_4-expected.txt +++ b/ets2panda/test/parser/ets/generics_4-expected.txt @@ -484,7 +484,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "generics_4.ets" } } @@ -497,7 +497,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "generics_4.ets" } } @@ -510,7 +510,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "generics_4.ets" } } @@ -524,7 +524,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "generics_4.ets" } } @@ -537,7 +537,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "generics_4.ets" } } @@ -815,7 +815,7 @@ }, "end": { "line": 19, - "column": 51, + "column": 50, "program": "generics_4.ets" } } @@ -828,7 +828,7 @@ }, "end": { "line": 19, - "column": 51, + "column": 50, "program": "generics_4.ets" } } @@ -862,7 +862,7 @@ }, "end": { "line": 19, - "column": 59, + "column": 58, "program": "generics_4.ets" } } @@ -875,7 +875,7 @@ }, "end": { "line": 19, - "column": 59, + "column": 58, "program": "generics_4.ets" } } @@ -909,7 +909,7 @@ }, "end": { "line": 19, - "column": 67, + "column": 66, "program": "generics_4.ets" } } @@ -922,7 +922,7 @@ }, "end": { "line": 19, - "column": 67, + "column": 66, "program": "generics_4.ets" } } @@ -949,7 +949,7 @@ }, "end": { "line": 19, - "column": 70, + "column": 67, "program": "generics_4.ets" } } @@ -962,7 +962,7 @@ }, "end": { "line": 19, - "column": 70, + "column": 67, "program": "generics_4.ets" } } @@ -1003,7 +1003,7 @@ }, "end": { "line": 19, - "column": 89, + "column": 88, "program": "generics_4.ets" } } @@ -1016,7 +1016,7 @@ }, "end": { "line": 19, - "column": 89, + "column": 88, "program": "generics_4.ets" } } @@ -1146,7 +1146,7 @@ }, "end": { "line": 19, - "column": 18, + "column": 17, "program": "generics_4.ets" } } @@ -1159,7 +1159,7 @@ }, "end": { "line": 19, - "column": 18, + "column": 17, "program": "generics_4.ets" } } @@ -1193,7 +1193,7 @@ }, "end": { "line": 19, - "column": 26, + "column": 25, "program": "generics_4.ets" } } @@ -1206,7 +1206,7 @@ }, "end": { "line": 19, - "column": 26, + "column": 25, "program": "generics_4.ets" } } @@ -1240,7 +1240,7 @@ }, "end": { "line": 19, - "column": 35, + "column": 33, "program": "generics_4.ets" } } @@ -1253,7 +1253,7 @@ }, "end": { "line": 19, - "column": 35, + "column": 33, "program": "generics_4.ets" } } diff --git a/ets2panda/test/parser/ets/generics_5-expected.txt b/ets2panda/test/parser/ets/generics_5-expected.txt index c9ec195c163b9bafa42ad88ca7dd0eabc330370b..f115af832bf85cee29888ad24851cf0fd5d7df7e 100644 --- a/ets2panda/test/parser/ets/generics_5-expected.txt +++ b/ets2panda/test/parser/ets/generics_5-expected.txt @@ -420,7 +420,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "generics_5.ets" } } @@ -433,7 +433,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "generics_5.ets" } } @@ -446,7 +446,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "generics_5.ets" } } @@ -460,7 +460,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "generics_5.ets" } } @@ -473,7 +473,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "generics_5.ets" } } @@ -751,7 +751,7 @@ }, "end": { "line": 19, - "column": 35, + "column": 34, "program": "generics_5.ets" } } @@ -764,7 +764,7 @@ }, "end": { "line": 19, - "column": 35, + "column": 34, "program": "generics_5.ets" } } @@ -791,7 +791,7 @@ }, "end": { "line": 19, - "column": 38, + "column": 35, "program": "generics_5.ets" } } @@ -804,7 +804,7 @@ }, "end": { "line": 19, - "column": 38, + "column": 35, "program": "generics_5.ets" } } @@ -845,7 +845,7 @@ }, "end": { "line": 19, - "column": 57, + "column": 56, "program": "generics_5.ets" } } @@ -858,7 +858,7 @@ }, "end": { "line": 19, - "column": 57, + "column": 56, "program": "generics_5.ets" } } @@ -988,7 +988,7 @@ }, "end": { "line": 19, - "column": 19, + "column": 17, "program": "generics_5.ets" } } @@ -1001,7 +1001,7 @@ }, "end": { "line": 19, - "column": 19, + "column": 17, "program": "generics_5.ets" } } diff --git a/ets2panda/test/parser/ets/generics_6-expected.txt b/ets2panda/test/parser/ets/generics_6-expected.txt index 0f2f38d503080642009f90d6c12f10d415099b6d..dbd36d722dddd3b7c7c3023c3dbdc08bca7700ef 100644 --- a/ets2panda/test/parser/ets/generics_6-expected.txt +++ b/ets2panda/test/parser/ets/generics_6-expected.txt @@ -656,7 +656,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "generics_6.ets" } } @@ -669,7 +669,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "generics_6.ets" } } @@ -682,7 +682,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "generics_6.ets" } } @@ -696,7 +696,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "generics_6.ets" } } @@ -709,7 +709,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "generics_6.ets" } } @@ -987,7 +987,7 @@ }, "end": { "line": 22, - "column": 49, + "column": 48, "program": "generics_6.ets" } } @@ -1000,7 +1000,7 @@ }, "end": { "line": 22, - "column": 49, + "column": 48, "program": "generics_6.ets" } } @@ -1058,7 +1058,7 @@ }, "end": { "line": 22, - "column": 63, + "column": 61, "program": "generics_6.ets" } } @@ -1071,7 +1071,7 @@ }, "end": { "line": 22, - "column": 63, + "column": 61, "program": "generics_6.ets" } } @@ -1138,7 +1138,7 @@ }, "end": { "line": 22, - "column": 66, + "column": 63, "program": "generics_6.ets" } } @@ -1151,7 +1151,7 @@ }, "end": { "line": 22, - "column": 66, + "column": 63, "program": "generics_6.ets" } } @@ -1192,7 +1192,7 @@ }, "end": { "line": 22, - "column": 85, + "column": 84, "program": "generics_6.ets" } } @@ -1205,7 +1205,7 @@ }, "end": { "line": 22, - "column": 85, + "column": 84, "program": "generics_6.ets" } } @@ -1335,7 +1335,7 @@ }, "end": { "line": 22, - "column": 18, + "column": 17, "program": "generics_6.ets" } } @@ -1348,7 +1348,7 @@ }, "end": { "line": 22, - "column": 18, + "column": 17, "program": "generics_6.ets" } } @@ -1406,7 +1406,7 @@ }, "end": { "line": 22, - "column": 33, + "column": 30, "program": "generics_6.ets" } } @@ -1419,7 +1419,7 @@ }, "end": { "line": 22, - "column": 33, + "column": 30, "program": "generics_6.ets" } } diff --git a/ets2panda/test/parser/ets/generics_7-expected.txt b/ets2panda/test/parser/ets/generics_7-expected.txt index 42af81815f72739dfa5d3a74db8d228cbb892c71..ddb4cb95c10aa09e8b108e10d170d146cd9157dc 100644 --- a/ets2panda/test/parser/ets/generics_7-expected.txt +++ b/ets2panda/test/parser/ets/generics_7-expected.txt @@ -656,7 +656,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "generics_7.ets" } } @@ -669,7 +669,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "generics_7.ets" } } @@ -682,7 +682,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "generics_7.ets" } } @@ -696,7 +696,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "generics_7.ets" } } @@ -709,7 +709,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 27, "program": "generics_7.ets" } } @@ -987,7 +987,7 @@ }, "end": { "line": 22, - "column": 75, + "column": 74, "program": "generics_7.ets" } } @@ -1000,7 +1000,7 @@ }, "end": { "line": 22, - "column": 75, + "column": 74, "program": "generics_7.ets" } } @@ -1058,7 +1058,7 @@ }, "end": { "line": 22, - "column": 87, + "column": 86, "program": "generics_7.ets" } } @@ -1071,7 +1071,7 @@ }, "end": { "line": 22, - "column": 87, + "column": 86, "program": "generics_7.ets" } } @@ -1129,7 +1129,7 @@ }, "end": { "line": 22, - "column": 99, + "column": 98, "program": "generics_7.ets" } } @@ -1142,7 +1142,7 @@ }, "end": { "line": 22, - "column": 99, + "column": 98, "program": "generics_7.ets" } } @@ -1200,7 +1200,7 @@ }, "end": { "line": 22, - "column": 114, + "column": 111, "program": "generics_7.ets" } } @@ -1213,7 +1213,7 @@ }, "end": { "line": 22, - "column": 114, + "column": 111, "program": "generics_7.ets" } } @@ -1240,7 +1240,7 @@ }, "end": { "line": 22, - "column": 115, + "column": 114, "program": "generics_7.ets" } } @@ -1253,7 +1253,7 @@ }, "end": { "line": 22, - "column": 115, + "column": 114, "program": "generics_7.ets" } } @@ -1360,7 +1360,7 @@ }, "end": { "line": 22, - "column": 118, + "column": 115, "program": "generics_7.ets" } } @@ -1373,7 +1373,7 @@ }, "end": { "line": 22, - "column": 118, + "column": 115, "program": "generics_7.ets" } } @@ -1414,7 +1414,7 @@ }, "end": { "line": 22, - "column": 137, + "column": 136, "program": "generics_7.ets" } } @@ -1427,7 +1427,7 @@ }, "end": { "line": 22, - "column": 137, + "column": 136, "program": "generics_7.ets" } } @@ -1557,7 +1557,7 @@ }, "end": { "line": 22, - "column": 18, + "column": 17, "program": "generics_7.ets" } } @@ -1570,7 +1570,7 @@ }, "end": { "line": 22, - "column": 18, + "column": 17, "program": "generics_7.ets" } } @@ -1628,7 +1628,7 @@ }, "end": { "line": 22, - "column": 30, + "column": 29, "program": "generics_7.ets" } } @@ -1641,7 +1641,7 @@ }, "end": { "line": 22, - "column": 30, + "column": 29, "program": "generics_7.ets" } } @@ -1699,7 +1699,7 @@ }, "end": { "line": 22, - "column": 42, + "column": 41, "program": "generics_7.ets" } } @@ -1712,7 +1712,7 @@ }, "end": { "line": 22, - "column": 42, + "column": 41, "program": "generics_7.ets" } } @@ -1770,7 +1770,7 @@ }, "end": { "line": 22, - "column": 57, + "column": 54, "program": "generics_7.ets" } } @@ -1783,7 +1783,7 @@ }, "end": { "line": 22, - "column": 57, + "column": 54, "program": "generics_7.ets" } } @@ -1810,7 +1810,7 @@ }, "end": { "line": 22, - "column": 58, + "column": 57, "program": "generics_7.ets" } } @@ -1823,7 +1823,7 @@ }, "end": { "line": 22, - "column": 58, + "column": 57, "program": "generics_7.ets" } } @@ -1850,7 +1850,7 @@ }, "end": { "line": 22, - "column": 59, + "column": 58, "program": "generics_7.ets" } } @@ -1863,7 +1863,7 @@ }, "end": { "line": 22, - "column": 59, + "column": 58, "program": "generics_7.ets" } } diff --git a/ets2panda/test/parser/ets/generics_recursive-expected.txt b/ets2panda/test/parser/ets/generics_recursive-expected.txt index 2be78e851bb7ed8fdbeb700f5bae816ada473d2c..0fc5eff23ac2c9251d57be6ff1151d9d60ac3c58 100644 --- a/ets2panda/test/parser/ets/generics_recursive-expected.txt +++ b/ets2panda/test/parser/ets/generics_recursive-expected.txt @@ -123,7 +123,7 @@ }, "end": { "line": 16, - "column": 26, + "column": 25, "program": "generics_recursive.ets" } } @@ -136,7 +136,7 @@ }, "end": { "line": 16, - "column": 26, + "column": 25, "program": "generics_recursive.ets" } } @@ -163,7 +163,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 26, "program": "generics_recursive.ets" } } @@ -176,7 +176,7 @@ }, "end": { "line": 16, - "column": 28, + "column": 26, "program": "generics_recursive.ets" } } @@ -600,7 +600,7 @@ }, "end": { "line": 20, - "column": 15, + "column": 14, "program": "generics_recursive.ets" } } @@ -613,7 +613,7 @@ }, "end": { "line": 20, - "column": 15, + "column": 14, "program": "generics_recursive.ets" } } @@ -640,7 +640,7 @@ }, "end": { "line": 20, - "column": 16, + "column": 15, "program": "generics_recursive.ets" } } @@ -653,7 +653,7 @@ }, "end": { "line": 20, - "column": 16, + "column": 15, "program": "generics_recursive.ets" } } @@ -667,7 +667,7 @@ }, "end": { "line": 20, - "column": 16, + "column": 15, "program": "generics_recursive.ets" } } @@ -680,7 +680,7 @@ }, "end": { "line": 20, - "column": 16, + "column": 15, "program": "generics_recursive.ets" } } @@ -1176,7 +1176,7 @@ }, "end": { "line": 26, - "column": 36, + "column": 35, "program": "generics_recursive.ets" } } @@ -1189,7 +1189,7 @@ }, "end": { "line": 26, - "column": 36, + "column": 35, "program": "generics_recursive.ets" } } @@ -1223,7 +1223,7 @@ }, "end": { "line": 26, - "column": 39, + "column": 38, "program": "generics_recursive.ets" } } @@ -1236,7 +1236,7 @@ }, "end": { "line": 26, - "column": 39, + "column": 38, "program": "generics_recursive.ets" } } @@ -1277,7 +1277,7 @@ }, "end": { "line": 26, - "column": 42, + "column": 40, "program": "generics_recursive.ets" } } @@ -1290,7 +1290,7 @@ }, "end": { "line": 26, - "column": 42, + "column": 40, "program": "generics_recursive.ets" } } @@ -1351,7 +1351,7 @@ }, "end": { "line": 26, - "column": 55, + "column": 54, "program": "generics_recursive.ets" } } @@ -1364,7 +1364,7 @@ }, "end": { "line": 26, - "column": 55, + "column": 54, "program": "generics_recursive.ets" } } @@ -1398,7 +1398,7 @@ }, "end": { "line": 26, - "column": 58, + "column": 57, "program": "generics_recursive.ets" } } @@ -1411,7 +1411,7 @@ }, "end": { "line": 26, - "column": 58, + "column": 57, "program": "generics_recursive.ets" } } @@ -1452,7 +1452,7 @@ }, "end": { "line": 26, - "column": 60, + "column": 59, "program": "generics_recursive.ets" } } @@ -1465,7 +1465,7 @@ }, "end": { "line": 26, - "column": 60, + "column": 59, "program": "generics_recursive.ets" } } @@ -1479,7 +1479,7 @@ }, "end": { "line": 26, - "column": 60, + "column": 59, "program": "generics_recursive.ets" } } @@ -1493,7 +1493,7 @@ }, "end": { "line": 26, - "column": 60, + "column": 59, "program": "generics_recursive.ets" } } @@ -1506,7 +1506,7 @@ }, "end": { "line": 26, - "column": 60, + "column": 59, "program": "generics_recursive.ets" } } @@ -1625,7 +1625,7 @@ }, "end": { "line": 27, - "column": 23, + "column": 22, "program": "generics_recursive.ets" } } @@ -1638,7 +1638,7 @@ }, "end": { "line": 27, - "column": 23, + "column": 22, "program": "generics_recursive.ets" } } @@ -1672,7 +1672,7 @@ }, "end": { "line": 27, - "column": 26, + "column": 25, "program": "generics_recursive.ets" } } @@ -1685,7 +1685,7 @@ }, "end": { "line": 27, - "column": 26, + "column": 25, "program": "generics_recursive.ets" } } @@ -2239,7 +2239,7 @@ }, "end": { "line": 38, - "column": 16, + "column": 15, "program": "generics_recursive.ets" } } @@ -2252,7 +2252,7 @@ }, "end": { "line": 38, - "column": 16, + "column": 15, "program": "generics_recursive.ets" } } @@ -2286,7 +2286,7 @@ }, "end": { "line": 38, - "column": 19, + "column": 18, "program": "generics_recursive.ets" } } @@ -2299,7 +2299,7 @@ }, "end": { "line": 38, - "column": 19, + "column": 18, "program": "generics_recursive.ets" } } @@ -2340,7 +2340,7 @@ }, "end": { "line": 38, - "column": 22, + "column": 20, "program": "generics_recursive.ets" } } @@ -2353,7 +2353,7 @@ }, "end": { "line": 38, - "column": 22, + "column": 20, "program": "generics_recursive.ets" } } @@ -2602,7 +2602,7 @@ }, "end": { "line": 41, - "column": 17, + "column": 16, "program": "generics_recursive.ets" } } @@ -2615,7 +2615,7 @@ }, "end": { "line": 41, - "column": 17, + "column": 16, "program": "generics_recursive.ets" } } @@ -2649,7 +2649,7 @@ }, "end": { "line": 41, - "column": 20, + "column": 19, "program": "generics_recursive.ets" } } @@ -2662,7 +2662,7 @@ }, "end": { "line": 41, - "column": 20, + "column": 19, "program": "generics_recursive.ets" } } @@ -2703,7 +2703,7 @@ }, "end": { "line": 41, - "column": 23, + "column": 21, "program": "generics_recursive.ets" } } @@ -2716,7 +2716,7 @@ }, "end": { "line": 41, - "column": 23, + "column": 21, "program": "generics_recursive.ets" } } @@ -2782,7 +2782,7 @@ }, "end": { "line": 42, - "column": 22, + "column": 21, "program": "generics_recursive.ets" } } @@ -2795,7 +2795,7 @@ }, "end": { "line": 42, - "column": 22, + "column": 21, "program": "generics_recursive.ets" } } @@ -2829,7 +2829,7 @@ }, "end": { "line": 42, - "column": 25, + "column": 24, "program": "generics_recursive.ets" } } @@ -2842,7 +2842,7 @@ }, "end": { "line": 42, - "column": 25, + "column": 24, "program": "generics_recursive.ets" } } @@ -3425,7 +3425,7 @@ }, "end": { "line": 33, - "column": 23, + "column": 22, "program": "generics_recursive.ets" } } @@ -3438,7 +3438,7 @@ }, "end": { "line": 33, - "column": 23, + "column": 22, "program": "generics_recursive.ets" } } @@ -3465,7 +3465,7 @@ }, "end": { "line": 33, - "column": 25, + "column": 23, "program": "generics_recursive.ets" } } @@ -3478,7 +3478,7 @@ }, "end": { "line": 33, - "column": 25, + "column": 23, "program": "generics_recursive.ets" } } @@ -3592,7 +3592,7 @@ }, "end": { "line": 34, - "column": 20, + "column": 19, "program": "generics_recursive.ets" } } @@ -3605,7 +3605,7 @@ }, "end": { "line": 34, - "column": 20, + "column": 19, "program": "generics_recursive.ets" } } @@ -3632,7 +3632,7 @@ }, "end": { "line": 34, - "column": 21, + "column": 20, "program": "generics_recursive.ets" } } @@ -3645,7 +3645,7 @@ }, "end": { "line": 34, - "column": 21, + "column": 20, "program": "generics_recursive.ets" } } diff --git a/ets2panda/test/parser/ets/generics_type_param_constraint_1-expected.txt b/ets2panda/test/parser/ets/generics_type_param_constraint_1-expected.txt index 71d04ce4580716a770f5fb7a129b70a1cc1430ec..333f0168158d07220c572156f29439d2ce117712 100644 --- a/ets2panda/test/parser/ets/generics_type_param_constraint_1-expected.txt +++ b/ets2panda/test/parser/ets/generics_type_param_constraint_1-expected.txt @@ -96,7 +96,7 @@ }, "end": { "line": 17, - "column": 34, + "column": 32, "program": "generics_type_param_constraint_1.ets" } } @@ -109,7 +109,7 @@ }, "end": { "line": 17, - "column": 34, + "column": 32, "program": "generics_type_param_constraint_1.ets" } } diff --git a/ets2panda/test/parser/ets/generics_type_param_constraint_10-expected.txt b/ets2panda/test/parser/ets/generics_type_param_constraint_10-expected.txt index 786a63eb29ea91b485a3ac5445b397d1d29d987c..1b3c6d7f57a95ab817e2cad11da1d9852f6df13e 100644 --- a/ets2panda/test/parser/ets/generics_type_param_constraint_10-expected.txt +++ b/ets2panda/test/parser/ets/generics_type_param_constraint_10-expected.txt @@ -213,7 +213,7 @@ }, "end": { "line": 17, - "column": 44, + "column": 43, "program": "generics_type_param_constraint_10.ets" } } @@ -226,7 +226,7 @@ }, "end": { "line": 17, - "column": 44, + "column": 43, "program": "generics_type_param_constraint_10.ets" } } @@ -240,7 +240,7 @@ }, "end": { "line": 17, - "column": 44, + "column": 43, "program": "generics_type_param_constraint_10.ets" } } @@ -253,7 +253,7 @@ }, "end": { "line": 17, - "column": 44, + "column": 43, "program": "generics_type_param_constraint_10.ets" } } @@ -288,7 +288,7 @@ }, "end": { "line": 17, - "column": 49, + "column": 47, "program": "generics_type_param_constraint_10.ets" } } @@ -301,7 +301,7 @@ }, "end": { "line": 17, - "column": 49, + "column": 47, "program": "generics_type_param_constraint_10.ets" } } @@ -381,7 +381,7 @@ }, "end": { "line": 17, - "column": 38, + "column": 36, "program": "generics_type_param_constraint_10.ets" } } @@ -394,7 +394,7 @@ }, "end": { "line": 17, - "column": 38, + "column": 36, "program": "generics_type_param_constraint_10.ets" } } @@ -695,7 +695,7 @@ }, "end": { "line": 22, - "column": 16, + "column": 15, "program": "generics_type_param_constraint_10.ets" } } @@ -708,7 +708,7 @@ }, "end": { "line": 22, - "column": 16, + "column": 15, "program": "generics_type_param_constraint_10.ets" } } diff --git a/ets2panda/test/parser/ets/generics_type_param_constraint_11-expected.txt b/ets2panda/test/parser/ets/generics_type_param_constraint_11-expected.txt index f9da1689fbb11791d11ea4cbc84e9edaff6dd5f8..fd28ce034b425f561e83cc0b49e978562c644ef4 100644 --- a/ets2panda/test/parser/ets/generics_type_param_constraint_11-expected.txt +++ b/ets2panda/test/parser/ets/generics_type_param_constraint_11-expected.txt @@ -156,7 +156,7 @@ }, "end": { "line": 16, - "column": 13, + "column": 12, "program": "generics_type_param_constraint_11.ets" } } @@ -169,7 +169,7 @@ }, "end": { "line": 16, - "column": 13, + "column": 12, "program": "generics_type_param_constraint_11.ets" } } @@ -183,7 +183,7 @@ }, "end": { "line": 16, - "column": 13, + "column": 12, "program": "generics_type_param_constraint_11.ets" } } @@ -196,7 +196,7 @@ }, "end": { "line": 16, - "column": 13, + "column": 12, "program": "generics_type_param_constraint_11.ets" } } @@ -352,7 +352,7 @@ }, "end": { "line": 17, - "column": 18, + "column": 17, "program": "generics_type_param_constraint_11.ets" } } @@ -365,7 +365,7 @@ }, "end": { "line": 17, - "column": 18, + "column": 17, "program": "generics_type_param_constraint_11.ets" } } @@ -392,7 +392,7 @@ }, "end": { "line": 17, - "column": 19, + "column": 18, "program": "generics_type_param_constraint_11.ets" } } @@ -405,7 +405,7 @@ }, "end": { "line": 17, - "column": 19, + "column": 18, "program": "generics_type_param_constraint_11.ets" } } @@ -419,7 +419,7 @@ }, "end": { "line": 17, - "column": 19, + "column": 18, "program": "generics_type_param_constraint_11.ets" } } @@ -432,7 +432,7 @@ }, "end": { "line": 17, - "column": 19, + "column": 18, "program": "generics_type_param_constraint_11.ets" } } @@ -578,7 +578,7 @@ }, "end": { "line": 18, - "column": 19, + "column": 18, "program": "generics_type_param_constraint_11.ets" } } @@ -591,7 +591,7 @@ }, "end": { "line": 18, - "column": 19, + "column": 18, "program": "generics_type_param_constraint_11.ets" } } @@ -605,7 +605,7 @@ }, "end": { "line": 18, - "column": 19, + "column": 18, "program": "generics_type_param_constraint_11.ets" } } @@ -618,7 +618,7 @@ }, "end": { "line": 18, - "column": 19, + "column": 18, "program": "generics_type_param_constraint_11.ets" } } @@ -901,7 +901,7 @@ }, "end": { "line": 20, - "column": 35, + "column": 34, "program": "generics_type_param_constraint_11.ets" } } @@ -914,7 +914,7 @@ }, "end": { "line": 20, - "column": 35, + "column": 34, "program": "generics_type_param_constraint_11.ets" } } @@ -941,7 +941,7 @@ }, "end": { "line": 20, - "column": 37, + "column": 35, "program": "generics_type_param_constraint_11.ets" } } @@ -954,7 +954,7 @@ }, "end": { "line": 20, - "column": 37, + "column": 35, "program": "generics_type_param_constraint_11.ets" } } diff --git a/ets2panda/test/parser/ets/generics_type_param_constraint_12-expected.txt b/ets2panda/test/parser/ets/generics_type_param_constraint_12-expected.txt index de3ba5217b9f166ab58a10cc61d2e921c71a0097..ba2d015fa3ab544cf607ad0dceaf7539918256de 100644 --- a/ets2panda/test/parser/ets/generics_type_param_constraint_12-expected.txt +++ b/ets2panda/test/parser/ets/generics_type_param_constraint_12-expected.txt @@ -84,7 +84,7 @@ }, "end": { "line": 17, - "column": 20, + "column": 19, "program": "generics_type_param_constraint_12.ets" } } @@ -97,7 +97,7 @@ }, "end": { "line": 17, - "column": 20, + "column": 19, "program": "generics_type_param_constraint_12.ets" } } @@ -110,7 +110,7 @@ }, "end": { "line": 17, - "column": 20, + "column": 19, "program": "generics_type_param_constraint_12.ets" } } @@ -123,7 +123,7 @@ }, "end": { "line": 17, - "column": 20, + "column": 19, "program": "generics_type_param_constraint_12.ets" } } @@ -231,8 +231,8 @@ "program": "generics_type_param_constraint_12.ets" }, "end": { - "line": 20, - "column": 6, + "line": 18, + "column": 2, "program": "generics_type_param_constraint_12.ets" } } @@ -363,7 +363,7 @@ }, "end": { "line": 20, - "column": 39, + "column": 38, "program": "generics_type_param_constraint_12.ets" } } @@ -376,7 +376,7 @@ }, "end": { "line": 20, - "column": 39, + "column": 38, "program": "generics_type_param_constraint_12.ets" } } @@ -403,7 +403,7 @@ }, "end": { "line": 20, - "column": 41, + "column": 39, "program": "generics_type_param_constraint_12.ets" } } @@ -416,7 +416,7 @@ }, "end": { "line": 20, - "column": 41, + "column": 39, "program": "generics_type_param_constraint_12.ets" } } @@ -490,7 +490,7 @@ }, "end": { "line": 21, - "column": 16, + "column": 15, "program": "generics_type_param_constraint_12.ets" } } @@ -503,7 +503,7 @@ }, "end": { "line": 21, - "column": 16, + "column": 15, "program": "generics_type_param_constraint_12.ets" } } @@ -518,7 +518,7 @@ }, "end": { "line": 21, - "column": 16, + "column": 15, "program": "generics_type_param_constraint_12.ets" } } @@ -606,7 +606,7 @@ }, "end": { "line": 23, - "column": 27, + "column": 26, "program": "generics_type_param_constraint_12.ets" } } @@ -619,7 +619,7 @@ }, "end": { "line": 23, - "column": 27, + "column": 26, "program": "generics_type_param_constraint_12.ets" } } @@ -633,7 +633,7 @@ }, "end": { "line": 23, - "column": 27, + "column": 26, "program": "generics_type_param_constraint_12.ets" } } @@ -646,7 +646,7 @@ }, "end": { "line": 23, - "column": 27, + "column": 26, "program": "generics_type_param_constraint_12.ets" } } @@ -885,7 +885,7 @@ }, "end": { "line": 27, - "column": 28, + "column": 26, "program": "generics_type_param_constraint_12.ets" } } @@ -898,7 +898,7 @@ }, "end": { "line": 27, - "column": 28, + "column": 26, "program": "generics_type_param_constraint_12.ets" } } @@ -1394,7 +1394,7 @@ }, "end": { "line": 32, - "column": 40, + "column": 39, "program": "generics_type_param_constraint_12.ets" } } @@ -1407,7 +1407,7 @@ }, "end": { "line": 32, - "column": 40, + "column": 39, "program": "generics_type_param_constraint_12.ets" } } @@ -1434,7 +1434,7 @@ }, "end": { "line": 32, - "column": 41, + "column": 40, "program": "generics_type_param_constraint_12.ets" } } @@ -1447,7 +1447,7 @@ }, "end": { "line": 32, - "column": 41, + "column": 40, "program": "generics_type_param_constraint_12.ets" } } @@ -1461,7 +1461,7 @@ }, "end": { "line": 32, - "column": 41, + "column": 40, "program": "generics_type_param_constraint_12.ets" } } @@ -1474,7 +1474,7 @@ }, "end": { "line": 32, - "column": 41, + "column": 40, "program": "generics_type_param_constraint_12.ets" } } @@ -1884,7 +1884,7 @@ }, "end": { "line": 37, - "column": 32, + "column": 31, "program": "generics_type_param_constraint_12.ets" } } @@ -1897,7 +1897,7 @@ }, "end": { "line": 37, - "column": 32, + "column": 31, "program": "generics_type_param_constraint_12.ets" } } @@ -1924,7 +1924,7 @@ }, "end": { "line": 37, - "column": 33, + "column": 32, "program": "generics_type_param_constraint_12.ets" } } @@ -1937,7 +1937,7 @@ }, "end": { "line": 37, - "column": 33, + "column": 32, "program": "generics_type_param_constraint_12.ets" } } @@ -2145,7 +2145,7 @@ }, "end": { "line": 39, - "column": 32, + "column": 31, "program": "generics_type_param_constraint_12.ets" } } @@ -2158,7 +2158,7 @@ }, "end": { "line": 39, - "column": 32, + "column": 31, "program": "generics_type_param_constraint_12.ets" } } @@ -2185,7 +2185,7 @@ }, "end": { "line": 39, - "column": 33, + "column": 32, "program": "generics_type_param_constraint_12.ets" } } @@ -2198,7 +2198,7 @@ }, "end": { "line": 39, - "column": 33, + "column": 32, "program": "generics_type_param_constraint_12.ets" } } diff --git a/ets2panda/test/parser/ets/generics_type_param_constraint_2-expected.txt b/ets2panda/test/parser/ets/generics_type_param_constraint_2-expected.txt index a0fa5c44246fdb579c2ea3c473fc0ed27a71bc09..a4c3da731f4af1a9f4168b8766a3d4f4a2cf1b68 100644 --- a/ets2panda/test/parser/ets/generics_type_param_constraint_2-expected.txt +++ b/ets2panda/test/parser/ets/generics_type_param_constraint_2-expected.txt @@ -112,7 +112,7 @@ }, "end": { "line": 17, - "column": 38, + "column": 36, "program": "generics_type_param_constraint_2.ets" } } @@ -125,7 +125,7 @@ }, "end": { "line": 17, - "column": 38, + "column": 36, "program": "generics_type_param_constraint_2.ets" } } @@ -204,8 +204,8 @@ "program": "generics_type_param_constraint_2.ets" }, "end": { - "line": 18, - "column": 1, + "line": 17, + "column": 41, "program": "generics_type_param_constraint_2.ets" } } diff --git a/ets2panda/test/parser/ets/generics_type_param_constraint_3-expected.txt b/ets2panda/test/parser/ets/generics_type_param_constraint_3-expected.txt index 296a7f0dd7875c978bb49fcf3cc8ca20621a83be..f9aed84a6006cc4e5a46005c3eb6b92f438acddb 100644 --- a/ets2panda/test/parser/ets/generics_type_param_constraint_3-expected.txt +++ b/ets2panda/test/parser/ets/generics_type_param_constraint_3-expected.txt @@ -319,7 +319,7 @@ }, "end": { "line": 17, - "column": 47, + "column": 46, "program": "generics_type_param_constraint_3.ets" } } @@ -332,7 +332,7 @@ }, "end": { "line": 17, - "column": 47, + "column": 46, "program": "generics_type_param_constraint_3.ets" } } @@ -346,7 +346,7 @@ }, "end": { "line": 17, - "column": 47, + "column": 46, "program": "generics_type_param_constraint_3.ets" } } @@ -359,7 +359,7 @@ }, "end": { "line": 17, - "column": 47, + "column": 46, "program": "generics_type_param_constraint_3.ets" } } @@ -394,7 +394,7 @@ }, "end": { "line": 17, - "column": 53, + "column": 51, "program": "generics_type_param_constraint_3.ets" } } @@ -407,7 +407,7 @@ }, "end": { "line": 17, - "column": 53, + "column": 51, "program": "generics_type_param_constraint_3.ets" } } @@ -487,7 +487,7 @@ }, "end": { "line": 17, - "column": 37, + "column": 35, "program": "generics_type_param_constraint_3.ets" } } @@ -500,7 +500,7 @@ }, "end": { "line": 17, - "column": 37, + "column": 35, "program": "generics_type_param_constraint_3.ets" } } diff --git a/ets2panda/test/parser/ets/generics_type_param_constraint_4-expected.txt b/ets2panda/test/parser/ets/generics_type_param_constraint_4-expected.txt index b1d6295cfb9f2b4cf656afc72ae3611697a1d64e..45d199d5a9e4969a3b2dc532dcae572deb2572fc 100644 --- a/ets2panda/test/parser/ets/generics_type_param_constraint_4-expected.txt +++ b/ets2panda/test/parser/ets/generics_type_param_constraint_4-expected.txt @@ -89,7 +89,7 @@ }, "end": { "line": 18, - "column": 16, + "column": 15, "program": "generics_type_param_constraint_4.ets" } } @@ -102,7 +102,7 @@ }, "end": { "line": 18, - "column": 16, + "column": 15, "program": "generics_type_param_constraint_4.ets" } } @@ -116,7 +116,7 @@ }, "end": { "line": 18, - "column": 16, + "column": 15, "program": "generics_type_param_constraint_4.ets" } } @@ -129,7 +129,7 @@ }, "end": { "line": 18, - "column": 16, + "column": 15, "program": "generics_type_param_constraint_4.ets" } } @@ -279,8 +279,8 @@ "program": "generics_type_param_constraint_4.ets" }, "end": { - "line": 20, - "column": 6, + "line": 19, + "column": 2, "program": "generics_type_param_constraint_4.ets" } } @@ -380,7 +380,7 @@ }, "end": { "line": 20, - "column": 28, + "column": 26, "program": "generics_type_param_constraint_4.ets" } } @@ -393,7 +393,7 @@ }, "end": { "line": 20, - "column": 28, + "column": 26, "program": "generics_type_param_constraint_4.ets" } } diff --git a/ets2panda/test/parser/ets/generics_type_param_constraint_5-expected.txt b/ets2panda/test/parser/ets/generics_type_param_constraint_5-expected.txt index babbbd84dec056a4a5cf5b44f31a23fa6ed7567e..cfb6c64761f9cf94b541ef7f2c16f18cb080d026 100644 --- a/ets2panda/test/parser/ets/generics_type_param_constraint_5-expected.txt +++ b/ets2panda/test/parser/ets/generics_type_param_constraint_5-expected.txt @@ -89,7 +89,7 @@ }, "end": { "line": 18, - "column": 17, + "column": 16, "program": "generics_type_param_constraint_5.ets" } } @@ -102,7 +102,7 @@ }, "end": { "line": 18, - "column": 17, + "column": 16, "program": "generics_type_param_constraint_5.ets" } } @@ -116,7 +116,7 @@ }, "end": { "line": 18, - "column": 17, + "column": 16, "program": "generics_type_param_constraint_5.ets" } } @@ -129,7 +129,7 @@ }, "end": { "line": 18, - "column": 17, + "column": 16, "program": "generics_type_param_constraint_5.ets" } } @@ -274,7 +274,7 @@ }, "end": { "line": 19, - "column": 17, + "column": 16, "program": "generics_type_param_constraint_5.ets" } } @@ -287,7 +287,7 @@ }, "end": { "line": 19, - "column": 17, + "column": 16, "program": "generics_type_param_constraint_5.ets" } } @@ -301,7 +301,7 @@ }, "end": { "line": 19, - "column": 17, + "column": 16, "program": "generics_type_param_constraint_5.ets" } } @@ -314,7 +314,7 @@ }, "end": { "line": 19, - "column": 17, + "column": 16, "program": "generics_type_param_constraint_5.ets" } } @@ -496,8 +496,8 @@ "program": "generics_type_param_constraint_5.ets" }, "end": { - "line": 21, - "column": 6, + "line": 20, + "column": 2, "program": "generics_type_param_constraint_5.ets" } } @@ -629,7 +629,7 @@ }, "end": { "line": 21, - "column": 29, + "column": 28, "program": "generics_type_param_constraint_5.ets" } } @@ -642,7 +642,7 @@ }, "end": { "line": 21, - "column": 29, + "column": 28, "program": "generics_type_param_constraint_5.ets" } } @@ -676,7 +676,7 @@ }, "end": { "line": 21, - "column": 32, + "column": 30, "program": "generics_type_param_constraint_5.ets" } } @@ -689,7 +689,7 @@ }, "end": { "line": 21, - "column": 32, + "column": 30, "program": "generics_type_param_constraint_5.ets" } } diff --git a/ets2panda/test/parser/ets/generics_type_param_constraint_6-expected.txt b/ets2panda/test/parser/ets/generics_type_param_constraint_6-expected.txt index 9b38405bea036abb29ef2ab2498df047e7fb3d3b..fefb297c1ab2754b4675d9c96f0a79f1e3f50054 100644 --- a/ets2panda/test/parser/ets/generics_type_param_constraint_6-expected.txt +++ b/ets2panda/test/parser/ets/generics_type_param_constraint_6-expected.txt @@ -96,7 +96,7 @@ }, "end": { "line": 17, - "column": 33, + "column": 32, "program": "generics_type_param_constraint_6.ets" } } @@ -109,7 +109,7 @@ }, "end": { "line": 17, - "column": 33, + "column": 32, "program": "generics_type_param_constraint_6.ets" } } @@ -136,7 +136,7 @@ }, "end": { "line": 17, - "column": 34, + "column": 33, "program": "generics_type_param_constraint_6.ets" } } @@ -149,7 +149,7 @@ }, "end": { "line": 17, - "column": 34, + "column": 33, "program": "generics_type_param_constraint_6.ets" } } diff --git a/ets2panda/test/parser/ets/generics_type_param_constraint_7-expected.txt b/ets2panda/test/parser/ets/generics_type_param_constraint_7-expected.txt index 9018e47953a733bd42fd170f580917a0e750d2e7..d52948dcba9556a0ed18430e4ace2b1fe7bfa135 100644 --- a/ets2panda/test/parser/ets/generics_type_param_constraint_7-expected.txt +++ b/ets2panda/test/parser/ets/generics_type_param_constraint_7-expected.txt @@ -96,7 +96,7 @@ }, "end": { "line": 17, - "column": 34, + "column": 32, "program": "generics_type_param_constraint_7.ets" } } @@ -109,7 +109,7 @@ }, "end": { "line": 17, - "column": 34, + "column": 32, "program": "generics_type_param_constraint_7.ets" } } @@ -574,7 +574,7 @@ }, "end": { "line": 19, - "column": 36, + "column": 35, "program": "generics_type_param_constraint_7.ets" } } @@ -587,7 +587,7 @@ }, "end": { "line": 19, - "column": 36, + "column": 35, "program": "generics_type_param_constraint_7.ets" } } @@ -614,7 +614,7 @@ }, "end": { "line": 19, - "column": 37, + "column": 36, "program": "generics_type_param_constraint_7.ets" } } @@ -627,7 +627,7 @@ }, "end": { "line": 19, - "column": 37, + "column": 36, "program": "generics_type_param_constraint_7.ets" } } diff --git a/ets2panda/test/parser/ets/generics_type_param_constraint_9-expected.txt b/ets2panda/test/parser/ets/generics_type_param_constraint_9-expected.txt index 188cabf31a1212decd3c76bcc3892c2efa7e93fb..8fc8f90a7201edb209563b09b42188b3804903be 100644 --- a/ets2panda/test/parser/ets/generics_type_param_constraint_9-expected.txt +++ b/ets2panda/test/parser/ets/generics_type_param_constraint_9-expected.txt @@ -278,7 +278,7 @@ }, "end": { "line": 18, - "column": 36, + "column": 35, "program": "generics_type_param_constraint_9.ets" } } @@ -291,7 +291,7 @@ }, "end": { "line": 18, - "column": 36, + "column": 35, "program": "generics_type_param_constraint_9.ets" } } @@ -318,7 +318,7 @@ }, "end": { "line": 18, - "column": 38, + "column": 36, "program": "generics_type_param_constraint_9.ets" } } @@ -331,7 +331,7 @@ }, "end": { "line": 18, - "column": 38, + "column": 36, "program": "generics_type_param_constraint_9.ets" } } @@ -565,7 +565,7 @@ }, "end": { "line": 19, - "column": 27, + "column": 25, "program": "generics_type_param_constraint_9.ets" } } @@ -578,7 +578,7 @@ }, "end": { "line": 19, - "column": 27, + "column": 25, "program": "generics_type_param_constraint_9.ets" } } @@ -1027,7 +1027,7 @@ }, "end": { "line": 21, - "column": 22, + "column": 21, "program": "generics_type_param_constraint_9.ets" } } @@ -1040,7 +1040,7 @@ }, "end": { "line": 21, - "column": 22, + "column": 21, "program": "generics_type_param_constraint_9.ets" } } @@ -1066,8 +1066,8 @@ "program": "generics_type_param_constraint_9.ets" }, "end": { - "line": 22, - "column": 2, + "line": 21, + "column": 22, "program": "generics_type_param_constraint_9.ets" } } @@ -1079,8 +1079,8 @@ "program": "generics_type_param_constraint_9.ets" }, "end": { - "line": 22, - "column": 2, + "line": 21, + "column": 22, "program": "generics_type_param_constraint_9.ets" } } diff --git a/ets2panda/test/parser/ets/getterOverride-expected.txt b/ets2panda/test/parser/ets/getterOverride-expected.txt index f0a3f223783a11df6890c565095fd071a7af373a..b25e62b3f72ab14d6ee361e037970c0562a214ac 100644 --- a/ets2panda/test/parser/ets/getterOverride-expected.txt +++ b/ets2panda/test/parser/ets/getterOverride-expected.txt @@ -84,7 +84,7 @@ }, "end": { "line": 18, - "column": 26, + "column": 25, "program": "getterOverride.ets" } } @@ -97,7 +97,7 @@ }, "end": { "line": 18, - "column": 26, + "column": 25, "program": "getterOverride.ets" } } @@ -110,7 +110,7 @@ }, "end": { "line": 18, - "column": 26, + "column": 25, "program": "getterOverride.ets" } } @@ -123,7 +123,7 @@ }, "end": { "line": 18, - "column": 26, + "column": 25, "program": "getterOverride.ets" } } @@ -182,8 +182,8 @@ "program": "getterOverride.ets" }, "end": { - "line": 21, - "column": 6, + "line": 19, + "column": 2, "program": "getterOverride.ets" } } @@ -241,7 +241,7 @@ }, "end": { "line": 21, - "column": 27, + "column": 25, "program": "getterOverride.ets" } } @@ -254,7 +254,7 @@ }, "end": { "line": 21, - "column": 27, + "column": 25, "program": "getterOverride.ets" } } @@ -352,7 +352,7 @@ }, "end": { "line": 22, - "column": 36, + "column": 34, "program": "getterOverride.ets" } } @@ -365,7 +365,7 @@ }, "end": { "line": 22, - "column": 36, + "column": 34, "program": "getterOverride.ets" } } diff --git a/ets2panda/test/parser/ets/getter_setter_access_modifiers-expected.txt b/ets2panda/test/parser/ets/getter_setter_access_modifiers-expected.txt index 844ee1f9c1e0d62da110c6a42dee25f9a490f372..2576db551e16e6aa98db19153b3c1743d5e61028 100644 --- a/ets2panda/test/parser/ets/getter_setter_access_modifiers-expected.txt +++ b/ets2panda/test/parser/ets/getter_setter_access_modifiers-expected.txt @@ -803,7 +803,7 @@ }, "end": { "line": 26, - "column": 41, + "column": 39, "program": "getter_setter_access_modifiers.ets" } } @@ -816,7 +816,7 @@ }, "end": { "line": 26, - "column": 41, + "column": 39, "program": "getter_setter_access_modifiers.ets" } } diff --git a/ets2panda/test/parser/ets/globalVarInLambdaInStatic-expected.txt b/ets2panda/test/parser/ets/globalVarInLambdaInStatic-expected.txt index 3d009e987b6d8d3b7ffa1c6f8b015bbca18b21e4..bf93a8f322e1ea80c730215280181d7f69d249b5 100644 --- a/ets2panda/test/parser/ets/globalVarInLambdaInStatic-expected.txt +++ b/ets2panda/test/parser/ets/globalVarInLambdaInStatic-expected.txt @@ -107,7 +107,7 @@ }, "end": { "line": 22, - "column": 30, + "column": 29, "program": "globalVarInLambdaInStatic.ets" } } @@ -120,7 +120,7 @@ }, "end": { "line": 22, - "column": 30, + "column": 29, "program": "globalVarInLambdaInStatic.ets" } } @@ -134,7 +134,7 @@ }, "end": { "line": 22, - "column": 30, + "column": 29, "program": "globalVarInLambdaInStatic.ets" } } @@ -147,7 +147,7 @@ }, "end": { "line": 22, - "column": 30, + "column": 29, "program": "globalVarInLambdaInStatic.ets" } } @@ -497,7 +497,7 @@ }, "end": { "line": 31, - "column": 37, + "column": 36, "program": "globalVarInLambdaInStatic.ets" } } @@ -510,7 +510,7 @@ }, "end": { "line": 31, - "column": 37, + "column": 36, "program": "globalVarInLambdaInStatic.ets" } } @@ -524,7 +524,7 @@ }, "end": { "line": 31, - "column": 37, + "column": 36, "program": "globalVarInLambdaInStatic.ets" } } @@ -537,7 +537,7 @@ }, "end": { "line": 31, - "column": 37, + "column": 36, "program": "globalVarInLambdaInStatic.ets" } } @@ -1260,7 +1260,7 @@ }, "end": { "line": 16, - "column": 44, + "column": 43, "program": "globalVarInLambdaInStatic.ets" } } @@ -1273,7 +1273,7 @@ }, "end": { "line": 16, - "column": 44, + "column": 43, "program": "globalVarInLambdaInStatic.ets" } } @@ -1287,7 +1287,7 @@ }, "end": { "line": 16, - "column": 44, + "column": 43, "program": "globalVarInLambdaInStatic.ets" } } @@ -1300,7 +1300,7 @@ }, "end": { "line": 16, - "column": 44, + "column": 43, "program": "globalVarInLambdaInStatic.ets" } } @@ -1402,7 +1402,7 @@ }, "end": { "line": 17, - "column": 25, + "column": 23, "program": "globalVarInLambdaInStatic.ets" } } @@ -1415,7 +1415,7 @@ }, "end": { "line": 17, - "column": 25, + "column": 23, "program": "globalVarInLambdaInStatic.ets" } } @@ -1678,7 +1678,7 @@ }, "end": { "line": 25, - "column": 40, + "column": 38, "program": "globalVarInLambdaInStatic.ets" } } @@ -1691,7 +1691,7 @@ }, "end": { "line": 25, - "column": 40, + "column": 38, "program": "globalVarInLambdaInStatic.ets" } } @@ -1732,7 +1732,7 @@ }, "end": { "line": 26, - "column": 29, + "column": 28, "program": "globalVarInLambdaInStatic.ets" } } @@ -1745,7 +1745,7 @@ }, "end": { "line": 26, - "column": 29, + "column": 28, "program": "globalVarInLambdaInStatic.ets" } } diff --git a/ets2panda/test/parser/ets/global_const_vars3-expected.txt b/ets2panda/test/parser/ets/global_const_vars3-expected.txt index 43fea067a2d5c01b5f7210a60ca286e307b17305..76848df978b13ea537147e0454a05a9645671ee2 100644 --- a/ets2panda/test/parser/ets/global_const_vars3-expected.txt +++ b/ets2panda/test/parser/ets/global_const_vars3-expected.txt @@ -78,7 +78,7 @@ }, "end": { "line": 20, - "column": 32, + "column": 31, "program": "global_const_vars3.ets" } } @@ -91,7 +91,7 @@ }, "end": { "line": 20, - "column": 32, + "column": 31, "program": "global_const_vars3.ets" } } @@ -106,7 +106,7 @@ }, "end": { "line": 20, - "column": 32, + "column": 31, "program": "global_const_vars3.ets" } } @@ -248,7 +248,7 @@ }, "end": { "line": 23, - "column": 30, + "column": 29, "program": "global_const_vars3.ets" } } @@ -261,7 +261,7 @@ }, "end": { "line": 23, - "column": 30, + "column": 29, "program": "global_const_vars3.ets" } } @@ -865,7 +865,7 @@ }, "end": { "line": 17, - "column": 28, + "column": 27, "program": "global_const_vars3.ets" } } @@ -878,7 +878,7 @@ }, "end": { "line": 17, - "column": 28, + "column": 27, "program": "global_const_vars3.ets" } } @@ -932,7 +932,7 @@ }, "end": { "line": 17, - "column": 18, + "column": 16, "program": "global_const_vars3.ets" } } @@ -945,7 +945,7 @@ }, "end": { "line": 17, - "column": 18, + "column": 16, "program": "global_const_vars3.ets" } } diff --git a/ets2panda/test/parser/ets/import_tests/check_exported_default_class-expected.txt b/ets2panda/test/parser/ets/import_tests/check_exported_default_class-expected.txt index f7a571b353721a648eed1b861bb6501b704e5bf1..68c51daa2bd56901e3b7cd298277b828fa020c6d 100644 --- a/ets2panda/test/parser/ets/import_tests/check_exported_default_class-expected.txt +++ b/ets2panda/test/parser/ets/import_tests/check_exported_default_class-expected.txt @@ -284,7 +284,7 @@ }, "end": { "line": 19, - "column": 39, + "column": 37, "program": "check_exported_default_class.ets" } } @@ -297,7 +297,7 @@ }, "end": { "line": 19, - "column": 39, + "column": 37, "program": "check_exported_default_class.ets" } } @@ -347,7 +347,7 @@ }, "end": { "line": 19, - "column": 63, + "column": 62, "program": "check_exported_default_class.ets" } } @@ -360,7 +360,7 @@ }, "end": { "line": 19, - "column": 63, + "column": 62, "program": "check_exported_default_class.ets" } } diff --git a/ets2panda/test/parser/ets/import_tests/duplicated/extdef-expected.txt b/ets2panda/test/parser/ets/import_tests/duplicated/extdef-expected.txt index 50233e3a7d4830ab9b1fc93697914f22abe62f53..e05af7af1d01bb2e6ee625d33dcab29557ec0995 100644 --- a/ets2panda/test/parser/ets/import_tests/duplicated/extdef-expected.txt +++ b/ets2panda/test/parser/ets/import_tests/duplicated/extdef-expected.txt @@ -407,7 +407,7 @@ }, "end": { "line": 19, - "column": 19, + "column": 17, "program": "extdef.ets" } } @@ -420,7 +420,7 @@ }, "end": { "line": 19, - "column": 19, + "column": 17, "program": "extdef.ets" } } @@ -470,7 +470,7 @@ }, "end": { "line": 19, - "column": 29, + "column": 28, "program": "extdef.ets" } } @@ -483,7 +483,7 @@ }, "end": { "line": 19, - "column": 29, + "column": 28, "program": "extdef.ets" } } diff --git a/ets2panda/test/parser/ets/import_tests/export_type_alias-expected.txt b/ets2panda/test/parser/ets/import_tests/export_type_alias-expected.txt index 1434bcf65def0f992e97148a70d258573c3c5048..3f0b5d034f68060fe915cb46cc783b5d183d5008 100644 --- a/ets2panda/test/parser/ets/import_tests/export_type_alias-expected.txt +++ b/ets2panda/test/parser/ets/import_tests/export_type_alias-expected.txt @@ -251,7 +251,7 @@ }, "end": { "line": 19, - "column": 36, + "column": 35, "program": "export_type_alias.ets" } } @@ -264,7 +264,7 @@ }, "end": { "line": 19, - "column": 36, + "column": 35, "program": "export_type_alias.ets" } } diff --git a/ets2panda/test/parser/ets/import_tests/import_diff_paths-expected.txt b/ets2panda/test/parser/ets/import_tests/import_diff_paths-expected.txt index 9eac1209f5719de8ecd660c4ca834cc0d42ad4df..58efe48c2ac54a5b568f393077caceaae7028d96 100644 --- a/ets2panda/test/parser/ets/import_tests/import_diff_paths-expected.txt +++ b/ets2panda/test/parser/ets/import_tests/import_diff_paths-expected.txt @@ -399,7 +399,7 @@ }, "end": { "line": 20, - "column": 13, + "column": 12, "program": "import_diff_paths.ets" } } @@ -412,7 +412,7 @@ }, "end": { "line": 20, - "column": 13, + "column": 12, "program": "import_diff_paths.ets" } } diff --git a/ets2panda/test/parser/ets/import_tests/import_interface_test-expected.txt b/ets2panda/test/parser/ets/import_tests/import_interface_test-expected.txt index 9f694dad62382396ab2576a9b6ad1eef454018ae..9a3ebda8dd9e74444d86a4467325cd49377438de 100644 --- a/ets2panda/test/parser/ets/import_tests/import_interface_test-expected.txt +++ b/ets2panda/test/parser/ets/import_tests/import_interface_test-expected.txt @@ -218,7 +218,7 @@ }, "end": { "line": 19, - "column": 42, + "column": 40, "program": "import_interface_test.ets" } } @@ -231,7 +231,7 @@ }, "end": { "line": 19, - "column": 42, + "column": 40, "program": "import_interface_test.ets" } } @@ -770,7 +770,7 @@ }, "end": { "line": 26, - "column": 34, + "column": 33, "program": "import_interface_test.ets" } } @@ -783,7 +783,7 @@ }, "end": { "line": 26, - "column": 34, + "column": 33, "program": "import_interface_test.ets" } } @@ -883,7 +883,7 @@ }, "end": { "line": 27, - "column": 35, + "column": 34, "program": "import_interface_test.ets" } } @@ -896,7 +896,7 @@ }, "end": { "line": 27, - "column": 35, + "column": 34, "program": "import_interface_test.ets" } } diff --git a/ets2panda/test/parser/ets/import_tests/import_interface_test_1-expected.txt b/ets2panda/test/parser/ets/import_tests/import_interface_test_1-expected.txt index 9aabe9aaffd9f6b1ab66c382bcb0c52c1258059c..fc12b10e0b8460f0d66ba869956f647f1d5cf2b9 100644 --- a/ets2panda/test/parser/ets/import_tests/import_interface_test_1-expected.txt +++ b/ets2panda/test/parser/ets/import_tests/import_interface_test_1-expected.txt @@ -150,8 +150,8 @@ "program": "import_interface_test_1.ets" }, "end": { - "line": 19, - "column": 1, + "line": 18, + "column": 2, "program": "import_interface_test_1.ets" } } diff --git a/ets2panda/test/parser/ets/import_tests/import_interface_test_2-expected.txt b/ets2panda/test/parser/ets/import_tests/import_interface_test_2-expected.txt index 593631d9cabac9b8af005d8fae3e670d54c738f5..98e3bedec26afce22f536a6531c7882e6220d9bc 100644 --- a/ets2panda/test/parser/ets/import_tests/import_interface_test_2-expected.txt +++ b/ets2panda/test/parser/ets/import_tests/import_interface_test_2-expected.txt @@ -136,7 +136,7 @@ }, "end": { "line": 18, - "column": 48, + "column": 46, "program": "import_interface_test_2.ets" } } @@ -149,7 +149,7 @@ }, "end": { "line": 18, - "column": 48, + "column": 46, "program": "import_interface_test_2.ets" } } diff --git a/ets2panda/test/parser/ets/import_tests/internals-expected.txt b/ets2panda/test/parser/ets/import_tests/internals-expected.txt index 66ac046cdce63a282e272384744acacc7af33826..5aeb5eca1f83396d772d979a784a294ed20e6169 100644 --- a/ets2panda/test/parser/ets/import_tests/internals-expected.txt +++ b/ets2panda/test/parser/ets/import_tests/internals-expected.txt @@ -49,7 +49,7 @@ }, "end": { "line": 16, - "column": 40, + "column": 39, "program": "internals.ets" } } @@ -62,7 +62,7 @@ }, "end": { "line": 16, - "column": 40, + "column": 39, "program": "internals.ets" } } @@ -128,7 +128,7 @@ }, "end": { "line": 17, - "column": 30, + "column": 29, "program": "internals.ets" } } @@ -141,7 +141,7 @@ }, "end": { "line": 17, - "column": 30, + "column": 29, "program": "internals.ets" } } @@ -242,7 +242,7 @@ }, "end": { "line": 20, - "column": 19, + "column": 18, "program": "internals.ets" } } @@ -255,7 +255,7 @@ }, "end": { "line": 20, - "column": 19, + "column": 18, "program": "internals.ets" } } @@ -268,7 +268,7 @@ }, "end": { "line": 20, - "column": 19, + "column": 18, "program": "internals.ets" } } @@ -281,7 +281,7 @@ }, "end": { "line": 20, - "column": 19, + "column": 18, "program": "internals.ets" } } @@ -370,7 +370,7 @@ }, "end": { "line": 20, - "column": 19, + "column": 18, "program": "internals.ets" } } @@ -383,7 +383,7 @@ }, "end": { "line": 20, - "column": 19, + "column": 18, "program": "internals.ets" } } @@ -424,7 +424,7 @@ }, "end": { "line": 20, - "column": 19, + "column": 18, "program": "internals.ets" } } @@ -437,7 +437,7 @@ }, "end": { "line": 20, - "column": 19, + "column": 18, "program": "internals.ets" } } @@ -452,7 +452,7 @@ }, "end": { "line": 20, - "column": 19, + "column": 18, "program": "internals.ets" } } @@ -467,7 +467,7 @@ }, "end": { "line": 20, - "column": 19, + "column": 18, "program": "internals.ets" } } @@ -511,8 +511,8 @@ "program": "internals.ets" }, "end": { - "line": 22, - "column": 1, + "line": 21, + "column": 2, "program": "internals.ets" } } diff --git a/ets2panda/test/parser/ets/import_tests/modules/module1/src/export_file-expected.txt b/ets2panda/test/parser/ets/import_tests/modules/module1/src/export_file-expected.txt index 51dad8f55e1291a903b43b64994562041f2a6654..f818b10de843cfc8ec04182026ca261bd67ce48a 100644 --- a/ets2panda/test/parser/ets/import_tests/modules/module1/src/export_file-expected.txt +++ b/ets2panda/test/parser/ets/import_tests/modules/module1/src/export_file-expected.txt @@ -48,8 +48,8 @@ "program": "export_file.ets" }, "end": { - "line": 17, - "column": 1, + "line": 16, + "column": 25, "program": "export_file.ets" } } @@ -61,8 +61,8 @@ "program": "export_file.ets" }, "end": { - "line": 17, - "column": 1, + "line": 16, + "column": 25, "program": "export_file.ets" } } diff --git a/ets2panda/test/parser/ets/import_tests/modules/test_lib2-expected.txt b/ets2panda/test/parser/ets/import_tests/modules/test_lib2-expected.txt index 82ef58e5f927d2bf59b67449aacc00d7b871033e..97aac6ad83ea01daeac4e443385eb8b7a72de7df 100644 --- a/ets2panda/test/parser/ets/import_tests/modules/test_lib2-expected.txt +++ b/ets2panda/test/parser/ets/import_tests/modules/test_lib2-expected.txt @@ -401,7 +401,7 @@ }, "end": { "line": 17, - "column": 24, + "column": 23, "program": "test_lib2.ets" } } @@ -414,7 +414,7 @@ }, "end": { "line": 17, - "column": 24, + "column": 23, "program": "test_lib2.ets" } } @@ -428,7 +428,7 @@ }, "end": { "line": 17, - "column": 24, + "column": 23, "program": "test_lib2.ets" } } @@ -441,7 +441,7 @@ }, "end": { "line": 17, - "column": 24, + "column": 23, "program": "test_lib2.ets" } } diff --git a/ets2panda/test/parser/ets/import_tests/packages/subpackage/package_module_1-expected.txt b/ets2panda/test/parser/ets/import_tests/packages/subpackage/package_module_1-expected.txt index 3f008d9aa283a73cb5d8b4887fb5ebb108c17145..553edfedd90d4567acb6cda578f633e316c9fcef 100644 --- a/ets2panda/test/parser/ets/import_tests/packages/subpackage/package_module_1-expected.txt +++ b/ets2panda/test/parser/ets/import_tests/packages/subpackage/package_module_1-expected.txt @@ -309,7 +309,7 @@ }, "end": { "line": 18, - "column": 31, + "column": 30, "program": "package_module_1.ets" } } @@ -322,7 +322,7 @@ }, "end": { "line": 18, - "column": 31, + "column": 30, "program": "package_module_1.ets" } } @@ -336,7 +336,7 @@ }, "end": { "line": 18, - "column": 31, + "column": 30, "program": "package_module_1.ets" } } @@ -349,7 +349,7 @@ }, "end": { "line": 18, - "column": 31, + "column": 30, "program": "package_module_1.ets" } } @@ -384,7 +384,7 @@ }, "end": { "line": 18, - "column": 41, + "column": 39, "program": "package_module_1.ets" } } @@ -397,7 +397,7 @@ }, "end": { "line": 18, - "column": 41, + "column": 39, "program": "package_module_1.ets" } } diff --git a/ets2panda/test/parser/ets/import_tests/packages/var-duplication/subpackage_module_1-expected.txt b/ets2panda/test/parser/ets/import_tests/packages/var-duplication/subpackage_module_1-expected.txt index b19bfadc5653a609b5219ad3a5acabfbfa400a2c..84d7af505e68429c1180d589a86dacc75bd2770e 100755 --- a/ets2panda/test/parser/ets/import_tests/packages/var-duplication/subpackage_module_1-expected.txt +++ b/ets2panda/test/parser/ets/import_tests/packages/var-duplication/subpackage_module_1-expected.txt @@ -409,7 +409,7 @@ }, "end": { "line": 19, - "column": 23, + "column": 21, "program": "subpackage_module_1.ets" } } @@ -422,7 +422,7 @@ }, "end": { "line": 19, - "column": 23, + "column": 21, "program": "subpackage_module_1.ets" } } @@ -496,7 +496,7 @@ }, "end": { "line": 19, - "column": 23, + "column": 21, "program": "subpackage_module_2.ets" } } @@ -509,7 +509,7 @@ }, "end": { "line": 19, - "column": 23, + "column": 21, "program": "subpackage_module_2.ets" } } diff --git a/ets2panda/test/parser/ets/import_tests/packages/var-duplication/subpackage_module_2-expected.txt b/ets2panda/test/parser/ets/import_tests/packages/var-duplication/subpackage_module_2-expected.txt index 9f29a276abaa3322524a895282989a7d8d1fdd29..dd6e5693b36261c84eb126fe02727d52048d2638 100755 --- a/ets2panda/test/parser/ets/import_tests/packages/var-duplication/subpackage_module_2-expected.txt +++ b/ets2panda/test/parser/ets/import_tests/packages/var-duplication/subpackage_module_2-expected.txt @@ -409,7 +409,7 @@ }, "end": { "line": 19, - "column": 23, + "column": 21, "program": "subpackage_module_2.ets" } } @@ -422,7 +422,7 @@ }, "end": { "line": 19, - "column": 23, + "column": 21, "program": "subpackage_module_2.ets" } } @@ -496,7 +496,7 @@ }, "end": { "line": 19, - "column": 23, + "column": 21, "program": "subpackage_module_1.ets" } } @@ -509,7 +509,7 @@ }, "end": { "line": 19, - "column": 23, + "column": 21, "program": "subpackage_module_1.ets" } } diff --git a/ets2panda/test/parser/ets/import_tests/relative_import/Line-expected.txt b/ets2panda/test/parser/ets/import_tests/relative_import/Line-expected.txt index 19d6041d325c7d428642c9210b41c42020ebf2d0..e1ae09ce8d0db82719ab50bfe924715aa45f5dfd 100644 --- a/ets2panda/test/parser/ets/import_tests/relative_import/Line-expected.txt +++ b/ets2panda/test/parser/ets/import_tests/relative_import/Line-expected.txt @@ -160,7 +160,7 @@ }, "end": { "line": 19, - "column": 18, + "column": 17, "program": "Line.ets" } } @@ -173,7 +173,7 @@ }, "end": { "line": 19, - "column": 18, + "column": 17, "program": "Line.ets" } } @@ -188,7 +188,7 @@ }, "end": { "line": 19, - "column": 18, + "column": 17, "program": "Line.ets" } } @@ -247,7 +247,7 @@ }, "end": { "line": 20, - "column": 16, + "column": 15, "program": "Line.ets" } } @@ -260,7 +260,7 @@ }, "end": { "line": 20, - "column": 16, + "column": 15, "program": "Line.ets" } } @@ -275,7 +275,7 @@ }, "end": { "line": 20, - "column": 16, + "column": 15, "program": "Line.ets" } } @@ -363,7 +363,7 @@ }, "end": { "line": 22, - "column": 30, + "column": 29, "program": "Line.ets" } } @@ -376,7 +376,7 @@ }, "end": { "line": 22, - "column": 30, + "column": 29, "program": "Line.ets" } } @@ -390,7 +390,7 @@ }, "end": { "line": 22, - "column": 30, + "column": 29, "program": "Line.ets" } } @@ -403,7 +403,7 @@ }, "end": { "line": 22, - "column": 30, + "column": 29, "program": "Line.ets" } } @@ -442,7 +442,7 @@ }, "end": { "line": 22, - "column": 42, + "column": 41, "program": "Line.ets" } } @@ -455,7 +455,7 @@ }, "end": { "line": 22, - "column": 42, + "column": 41, "program": "Line.ets" } } @@ -469,7 +469,7 @@ }, "end": { "line": 22, - "column": 42, + "column": 41, "program": "Line.ets" } } @@ -482,7 +482,7 @@ }, "end": { "line": 22, - "column": 42, + "column": 41, "program": "Line.ets" } } diff --git a/ets2panda/test/parser/ets/import_tests/repeat-expected.txt b/ets2panda/test/parser/ets/import_tests/repeat-expected.txt index 222c2edcea09c55f59e82f2e09cc04cb7549488b..323c2a8d370a4f85efe403440e2952478f3f0f70 100644 --- a/ets2panda/test/parser/ets/import_tests/repeat-expected.txt +++ b/ets2panda/test/parser/ets/import_tests/repeat-expected.txt @@ -248,7 +248,7 @@ }, "end": { "line": 20, - "column": 19, + "column": 18, "program": "repeat.ets" } } @@ -261,7 +261,7 @@ }, "end": { "line": 20, - "column": 19, + "column": 18, "program": "repeat.ets" } } @@ -274,7 +274,7 @@ }, "end": { "line": 20, - "column": 19, + "column": 18, "program": "repeat.ets" } } @@ -287,7 +287,7 @@ }, "end": { "line": 20, - "column": 19, + "column": 18, "program": "repeat.ets" } } @@ -376,7 +376,7 @@ }, "end": { "line": 20, - "column": 19, + "column": 18, "program": "repeat.ets" } } @@ -389,7 +389,7 @@ }, "end": { "line": 20, - "column": 19, + "column": 18, "program": "repeat.ets" } } @@ -430,7 +430,7 @@ }, "end": { "line": 20, - "column": 19, + "column": 18, "program": "repeat.ets" } } @@ -443,7 +443,7 @@ }, "end": { "line": 20, - "column": 19, + "column": 18, "program": "repeat.ets" } } @@ -458,7 +458,7 @@ }, "end": { "line": 20, - "column": 19, + "column": 18, "program": "repeat.ets" } } @@ -473,7 +473,7 @@ }, "end": { "line": 20, - "column": 19, + "column": 18, "program": "repeat.ets" } } @@ -517,8 +517,8 @@ "program": "repeat.ets" }, "end": { - "line": 22, - "column": 1, + "line": 21, + "column": 2, "program": "repeat.ets" } } diff --git a/ets2panda/test/parser/ets/infer_overriding_method_return_type-expected.txt b/ets2panda/test/parser/ets/infer_overriding_method_return_type-expected.txt index ca446caa965f7c7b3364089e8d5fae3f286d75f6..cc13f0c26b214b88d7c7f8538df6415a61bd92bc 100644 --- a/ets2panda/test/parser/ets/infer_overriding_method_return_type-expected.txt +++ b/ets2panda/test/parser/ets/infer_overriding_method_return_type-expected.txt @@ -102,7 +102,7 @@ }, "end": { "line": 17, - "column": 31, + "column": 30, "program": "infer_overriding_method_return_type.ets" } } @@ -115,7 +115,7 @@ }, "end": { "line": 17, - "column": 31, + "column": 30, "program": "infer_overriding_method_return_type.ets" } } @@ -342,7 +342,7 @@ }, "end": { "line": 20, - "column": 29, + "column": 27, "program": "infer_overriding_method_return_type.ets" } } @@ -355,7 +355,7 @@ }, "end": { "line": 20, - "column": 29, + "column": 27, "program": "infer_overriding_method_return_type.ets" } } diff --git a/ets2panda/test/parser/ets/inheritance-expected.txt b/ets2panda/test/parser/ets/inheritance-expected.txt index 69cb334eff055899cfb83d9c939163076e7402e3..358075196807f55d2146d46a1484bf1bd72a5999 100644 --- a/ets2panda/test/parser/ets/inheritance-expected.txt +++ b/ets2panda/test/parser/ets/inheritance-expected.txt @@ -44,8 +44,8 @@ "program": "inheritance.ets" }, "end": { - "line": 19, - "column": 10, + "line": 17, + "column": 2, "program": "inheritance.ets" } } @@ -93,8 +93,8 @@ "program": "inheritance.ets" }, "end": { - "line": 22, - "column": 6, + "line": 20, + "column": 2, "program": "inheritance.ets" } } @@ -303,7 +303,7 @@ }, "end": { "line": 25, - "column": 49, + "column": 38, "program": "inheritance.ets" } } @@ -316,7 +316,7 @@ }, "end": { "line": 25, - "column": 49, + "column": 38, "program": "inheritance.ets" } } @@ -353,7 +353,7 @@ }, "end": { "line": 25, - "column": 62, + "column": 61, "program": "inheritance.ets" } } @@ -366,7 +366,7 @@ }, "end": { "line": 25, - "column": 62, + "column": 61, "program": "inheritance.ets" } } @@ -415,7 +415,7 @@ }, "end": { "line": 25, - "column": 77, + "column": 74, "program": "inheritance.ets" } } @@ -428,7 +428,7 @@ }, "end": { "line": 25, - "column": 77, + "column": 74, "program": "inheritance.ets" } } @@ -629,7 +629,7 @@ }, "end": { "line": 28, - "column": 40, + "column": 37, "program": "inheritance.ets" } } @@ -642,7 +642,7 @@ }, "end": { "line": 28, - "column": 40, + "column": 37, "program": "inheritance.ets" } } @@ -830,7 +830,7 @@ }, "end": { "line": 31, - "column": 60, + "column": 49, "program": "inheritance.ets" } } @@ -843,7 +843,7 @@ }, "end": { "line": 31, - "column": 60, + "column": 49, "program": "inheritance.ets" } } @@ -880,7 +880,7 @@ }, "end": { "line": 31, - "column": 75, + "column": 72, "program": "inheritance.ets" } } @@ -893,7 +893,7 @@ }, "end": { "line": 31, - "column": 75, + "column": 72, "program": "inheritance.ets" } } @@ -1094,7 +1094,7 @@ }, "end": { "line": 34, - "column": 47, + "column": 44, "program": "inheritance.ets" } } @@ -1107,7 +1107,7 @@ }, "end": { "line": 34, - "column": 47, + "column": 44, "program": "inheritance.ets" } } diff --git a/ets2panda/test/parser/ets/inheritance2-expected.txt b/ets2panda/test/parser/ets/inheritance2-expected.txt index 4c8c56e2b4eec72b9de72d9fb92465510504398b..8cac93e10ae0c45db5fdc88e81c93bb184a65d5a 100644 --- a/ets2panda/test/parser/ets/inheritance2-expected.txt +++ b/ets2panda/test/parser/ets/inheritance2-expected.txt @@ -205,7 +205,7 @@ }, "end": { "line": 17, - "column": 20, + "column": 18, "program": "inheritance2.ets" } } @@ -218,7 +218,7 @@ }, "end": { "line": 17, - "column": 20, + "column": 18, "program": "inheritance2.ets" } } @@ -406,7 +406,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 18, "program": "inheritance2.ets" } } @@ -419,7 +419,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 18, "program": "inheritance2.ets" } } @@ -607,7 +607,7 @@ }, "end": { "line": 19, - "column": 20, + "column": 18, "program": "inheritance2.ets" } } @@ -620,7 +620,7 @@ }, "end": { "line": 19, - "column": 20, + "column": 18, "program": "inheritance2.ets" } } @@ -992,7 +992,7 @@ }, "end": { "line": 22, - "column": 16, + "column": 14, "program": "inheritance2.ets" } } @@ -1005,7 +1005,7 @@ }, "end": { "line": 22, - "column": 16, + "column": 14, "program": "inheritance2.ets" } } @@ -1055,7 +1055,7 @@ }, "end": { "line": 22, - "column": 23, + "column": 22, "program": "inheritance2.ets" } } @@ -1068,7 +1068,7 @@ }, "end": { "line": 22, - "column": 23, + "column": 22, "program": "inheritance2.ets" } } @@ -1152,7 +1152,7 @@ }, "end": { "line": 23, - "column": 16, + "column": 14, "program": "inheritance2.ets" } } @@ -1165,7 +1165,7 @@ }, "end": { "line": 23, - "column": 16, + "column": 14, "program": "inheritance2.ets" } } @@ -1266,7 +1266,7 @@ }, "end": { "line": 24, - "column": 16, + "column": 14, "program": "inheritance2.ets" } } @@ -1279,7 +1279,7 @@ }, "end": { "line": 24, - "column": 16, + "column": 14, "program": "inheritance2.ets" } } @@ -1380,7 +1380,7 @@ }, "end": { "line": 25, - "column": 16, + "column": 14, "program": "inheritance2.ets" } } @@ -1393,7 +1393,7 @@ }, "end": { "line": 25, - "column": 16, + "column": 14, "program": "inheritance2.ets" } } @@ -1494,7 +1494,7 @@ }, "end": { "line": 26, - "column": 21, + "column": 19, "program": "inheritance2.ets" } } @@ -1507,7 +1507,7 @@ }, "end": { "line": 26, - "column": 21, + "column": 19, "program": "inheritance2.ets" } } diff --git a/ets2panda/test/parser/ets/instanceof-expected.txt b/ets2panda/test/parser/ets/instanceof-expected.txt index 965bcf0e21e7ce96e2fdef916165612044bdb2d4..c3275656e5f45653d8d418c3d4d0fab4d7c73458 100644 --- a/ets2panda/test/parser/ets/instanceof-expected.txt +++ b/ets2panda/test/parser/ets/instanceof-expected.txt @@ -319,7 +319,7 @@ }, "end": { "line": 16, - "column": 22, + "column": 21, "program": "instanceof.ets" } } @@ -332,7 +332,7 @@ }, "end": { "line": 16, - "column": 22, + "column": 21, "program": "instanceof.ets" } } @@ -346,7 +346,7 @@ }, "end": { "line": 16, - "column": 22, + "column": 21, "program": "instanceof.ets" } } @@ -359,7 +359,7 @@ }, "end": { "line": 16, - "column": 22, + "column": 21, "program": "instanceof.ets" } } @@ -434,7 +434,7 @@ }, "end": { "line": 17, - "column": 27, + "column": 26, "program": "instanceof.ets" } } @@ -447,7 +447,7 @@ }, "end": { "line": 17, - "column": 27, + "column": 26, "program": "instanceof.ets" } } @@ -460,7 +460,7 @@ }, "end": { "line": 17, - "column": 27, + "column": 26, "program": "instanceof.ets" } } diff --git a/ets2panda/test/parser/ets/interfaceMethodWithOptional-expected.txt b/ets2panda/test/parser/ets/interfaceMethodWithOptional-expected.txt index eaa6f0cc5c79522247b787a806ea314dddc515e1..2231e020c87860a7ec685651c518adff73fba1c4 100644 --- a/ets2panda/test/parser/ets/interfaceMethodWithOptional-expected.txt +++ b/ets2panda/test/parser/ets/interfaceMethodWithOptional-expected.txt @@ -89,7 +89,7 @@ }, "end": { "line": 17, - "column": 18, + "column": 17, "program": "interfaceMethodWithOptional.ets" } } @@ -102,7 +102,7 @@ }, "end": { "line": 17, - "column": 18, + "column": 17, "program": "interfaceMethodWithOptional.ets" } } @@ -116,7 +116,7 @@ }, "end": { "line": 17, - "column": 18, + "column": 17, "program": "interfaceMethodWithOptional.ets" } } @@ -129,7 +129,7 @@ }, "end": { "line": 17, - "column": 18, + "column": 17, "program": "interfaceMethodWithOptional.ets" } } @@ -383,8 +383,8 @@ "program": "interfaceMethodWithOptional.ets" }, "end": { - "line": 19, - "column": 1, + "line": 18, + "column": 2, "program": "interfaceMethodWithOptional.ets" } } diff --git a/ets2panda/test/parser/ets/interface_abstract_noreturn_function-expected.txt b/ets2panda/test/parser/ets/interface_abstract_noreturn_function-expected.txt index 10dd605a01810226dab6eef8596ff86b3db19b17..41d17fc97a2b59cb86c93e4d2a1a6261042b4e39 100644 --- a/ets2panda/test/parser/ets/interface_abstract_noreturn_function-expected.txt +++ b/ets2panda/test/parser/ets/interface_abstract_noreturn_function-expected.txt @@ -135,8 +135,8 @@ "program": "interface_abstract_noreturn_function.ets" }, "end": { - "line": 19, - "column": 1, + "line": 18, + "column": 2, "program": "interface_abstract_noreturn_function.ets" } } diff --git a/ets2panda/test/parser/ets/interface_method_default_body-expected.txt b/ets2panda/test/parser/ets/interface_method_default_body-expected.txt index e10d00f2da2979a0e7909a0738c43d9003ea5b17..9ac31fdf23da5d54c91c766a0968b62b2c38cb2f 100644 --- a/ets2panda/test/parser/ets/interface_method_default_body-expected.txt +++ b/ets2panda/test/parser/ets/interface_method_default_body-expected.txt @@ -150,8 +150,8 @@ "program": "interface_method_default_body.ets" }, "end": { - "line": 20, - "column": 10, + "line": 18, + "column": 2, "program": "interface_method_default_body.ets" } } @@ -450,7 +450,7 @@ }, "end": { "line": 20, - "column": 26, + "column": 24, "program": "interface_method_default_body.ets" } } @@ -463,7 +463,7 @@ }, "end": { "line": 20, - "column": 26, + "column": 24, "program": "interface_method_default_body.ets" } } @@ -476,7 +476,7 @@ }, "end": { "line": 20, - "column": 26, + "column": 24, "program": "interface_method_default_body.ets" } } @@ -489,8 +489,8 @@ "program": "interface_method_default_body.ets" }, "end": { - "line": 25, - "column": 6, + "line": 23, + "column": 2, "program": "interface_method_default_body.ets" } } @@ -548,7 +548,7 @@ }, "end": { "line": 25, - "column": 24, + "column": 22, "program": "interface_method_default_body.ets" } } @@ -561,7 +561,7 @@ }, "end": { "line": 25, - "column": 24, + "column": 22, "program": "interface_method_default_body.ets" } } diff --git a/ets2panda/test/parser/ets/interfaces-expected.txt b/ets2panda/test/parser/ets/interfaces-expected.txt index 3c1e5e6d94d6ce28df2286a134ca5116ec13b3e8..7f302f46c14f278819b80fa9e52c990d6aaadc2e 100644 --- a/ets2panda/test/parser/ets/interfaces-expected.txt +++ b/ets2panda/test/parser/ets/interfaces-expected.txt @@ -78,7 +78,7 @@ }, "end": { "line": 17, - "column": 12, + "column": 11, "program": "interfaces.ets" } } @@ -91,7 +91,7 @@ }, "end": { "line": 17, - "column": 12, + "column": 11, "program": "interfaces.ets" } } @@ -202,7 +202,7 @@ }, "end": { "line": 17, - "column": 12, + "column": 11, "program": "interfaces.ets" } } @@ -215,7 +215,7 @@ }, "end": { "line": 17, - "column": 12, + "column": 11, "program": "interfaces.ets" } } @@ -230,7 +230,7 @@ }, "end": { "line": 17, - "column": 12, + "column": 11, "program": "interfaces.ets" } } @@ -245,7 +245,7 @@ }, "end": { "line": 17, - "column": 12, + "column": 11, "program": "interfaces.ets" } } @@ -322,7 +322,7 @@ }, "end": { "line": 18, - "column": 12, + "column": 11, "program": "interfaces.ets" } } @@ -335,7 +335,7 @@ }, "end": { "line": 18, - "column": 12, + "column": 11, "program": "interfaces.ets" } } @@ -446,7 +446,7 @@ }, "end": { "line": 18, - "column": 12, + "column": 11, "program": "interfaces.ets" } } @@ -459,7 +459,7 @@ }, "end": { "line": 18, - "column": 12, + "column": 11, "program": "interfaces.ets" } } @@ -474,7 +474,7 @@ }, "end": { "line": 18, - "column": 12, + "column": 11, "program": "interfaces.ets" } } @@ -489,7 +489,7 @@ }, "end": { "line": 18, - "column": 12, + "column": 11, "program": "interfaces.ets" } } @@ -533,8 +533,8 @@ "program": "interfaces.ets" }, "end": { - "line": 21, - "column": 10, + "line": 19, + "column": 2, "program": "interfaces.ets" } } @@ -1030,8 +1030,8 @@ "program": "interfaces.ets" }, "end": { - "line": 27, - "column": 10, + "line": 25, + "column": 2, "program": "interfaces.ets" } } @@ -1103,7 +1103,7 @@ }, "end": { "line": 27, - "column": 24, + "column": 23, "program": "interfaces.ets" } } @@ -1116,7 +1116,7 @@ }, "end": { "line": 27, - "column": 24, + "column": 23, "program": "interfaces.ets" } } @@ -1129,7 +1129,7 @@ }, "end": { "line": 27, - "column": 24, + "column": 23, "program": "interfaces.ets" } } @@ -1165,7 +1165,7 @@ }, "end": { "line": 27, - "column": 29, + "column": 27, "program": "interfaces.ets" } } @@ -1178,7 +1178,7 @@ }, "end": { "line": 27, - "column": 29, + "column": 27, "program": "interfaces.ets" } } @@ -1191,7 +1191,7 @@ }, "end": { "line": 27, - "column": 29, + "column": 27, "program": "interfaces.ets" } } @@ -1204,8 +1204,8 @@ "program": "interfaces.ets" }, "end": { - "line": 31, - "column": 1, + "line": 28, + "column": 2, "program": "interfaces.ets" } } diff --git a/ets2panda/test/parser/ets/internalParsing-expected.txt b/ets2panda/test/parser/ets/internalParsing-expected.txt index 696c137336a2288179fdde5fce9ddced2b6325d0..d1ae054f435469fd01388739f903c2777a788fd1 100644 --- a/ets2panda/test/parser/ets/internalParsing-expected.txt +++ b/ets2panda/test/parser/ets/internalParsing-expected.txt @@ -911,7 +911,7 @@ }, "end": { "line": 29, - "column": 21, + "column": 19, "program": "internalParsing.ets" } } @@ -924,7 +924,7 @@ }, "end": { "line": 29, - "column": 21, + "column": 19, "program": "internalParsing.ets" } } @@ -974,7 +974,7 @@ }, "end": { "line": 29, - "column": 28, + "column": 27, "program": "internalParsing.ets" } } @@ -987,7 +987,7 @@ }, "end": { "line": 29, - "column": 28, + "column": 27, "program": "internalParsing.ets" } } diff --git a/ets2panda/test/parser/ets/internalProtectedParsing-expected.txt b/ets2panda/test/parser/ets/internalProtectedParsing-expected.txt index 30c57b773bc92cbf1796993021fb002a3ceab251..950aaa7285a5c5fcc265ac5530f1cae80fdf22a3 100644 --- a/ets2panda/test/parser/ets/internalProtectedParsing-expected.txt +++ b/ets2panda/test/parser/ets/internalProtectedParsing-expected.txt @@ -1148,7 +1148,7 @@ }, "end": { "line": 33, - "column": 21, + "column": 19, "program": "internalProtectedParsing.ets" } } @@ -1161,7 +1161,7 @@ }, "end": { "line": 33, - "column": 21, + "column": 19, "program": "internalProtectedParsing.ets" } } @@ -1211,7 +1211,7 @@ }, "end": { "line": 33, - "column": 28, + "column": 27, "program": "internalProtectedParsing.ets" } } @@ -1224,7 +1224,7 @@ }, "end": { "line": 33, - "column": 28, + "column": 27, "program": "internalProtectedParsing.ets" } } diff --git a/ets2panda/test/parser/ets/lambda-expected.txt b/ets2panda/test/parser/ets/lambda-expected.txt index 8c34609e1dbd5009bb9e82e9f73aa4dedbda0f50..0e78b38152756d46e83c0361ddc909d4f89e7ffa 100644 --- a/ets2panda/test/parser/ets/lambda-expected.txt +++ b/ets2panda/test/parser/ets/lambda-expected.txt @@ -221,7 +221,7 @@ }, "end": { "line": 16, - "column": 37, + "column": 36, "program": "lambda.ets" } } @@ -234,7 +234,7 @@ }, "end": { "line": 16, - "column": 37, + "column": 36, "program": "lambda.ets" } } @@ -248,7 +248,7 @@ }, "end": { "line": 16, - "column": 37, + "column": 36, "program": "lambda.ets" } } @@ -261,7 +261,7 @@ }, "end": { "line": 16, - "column": 37, + "column": 36, "program": "lambda.ets" } } @@ -594,7 +594,7 @@ }, "end": { "line": 21, - "column": 22, + "column": 21, "program": "lambda.ets" } } @@ -607,7 +607,7 @@ }, "end": { "line": 21, - "column": 22, + "column": 21, "program": "lambda.ets" } } @@ -621,7 +621,7 @@ }, "end": { "line": 21, - "column": 22, + "column": 21, "program": "lambda.ets" } } @@ -634,7 +634,7 @@ }, "end": { "line": 21, - "column": 22, + "column": 21, "program": "lambda.ets" } } diff --git a/ets2panda/test/parser/ets/lambda-type-inference-alias-expected.txt b/ets2panda/test/parser/ets/lambda-type-inference-alias-expected.txt index 57d9f461f6f75fdadc70329ec250d58c80c4ca33..7a623b9e183d76577e352fcfe61178eb8e0ee703 100644 --- a/ets2panda/test/parser/ets/lambda-type-inference-alias-expected.txt +++ b/ets2panda/test/parser/ets/lambda-type-inference-alias-expected.txt @@ -160,7 +160,7 @@ }, "end": { "line": 17, - "column": 23, + "column": 22, "program": "lambda-type-inference-alias.ets" } } @@ -173,7 +173,7 @@ }, "end": { "line": 17, - "column": 23, + "column": 22, "program": "lambda-type-inference-alias.ets" } } @@ -403,7 +403,7 @@ }, "end": { "line": 19, - "column": 32, + "column": 31, "program": "lambda-type-inference-alias.ets" } } @@ -416,7 +416,7 @@ }, "end": { "line": 19, - "column": 32, + "column": 31, "program": "lambda-type-inference-alias.ets" } } @@ -430,7 +430,7 @@ }, "end": { "line": 19, - "column": 32, + "column": 31, "program": "lambda-type-inference-alias.ets" } } @@ -443,7 +443,7 @@ }, "end": { "line": 19, - "column": 32, + "column": 31, "program": "lambda-type-inference-alias.ets" } } diff --git a/ets2panda/test/parser/ets/lambda-type-inference-arg-no-type-expected.txt b/ets2panda/test/parser/ets/lambda-type-inference-arg-no-type-expected.txt index 9bd55797c7576e9a434070355b9ae59e42c37e15..57e563c0b44fbd747d9017baec8213a2678461d0 100644 --- a/ets2panda/test/parser/ets/lambda-type-inference-arg-no-type-expected.txt +++ b/ets2panda/test/parser/ets/lambda-type-inference-arg-no-type-expected.txt @@ -268,7 +268,7 @@ }, "end": { "line": 16, - "column": 43, + "column": 42, "program": "lambda-type-inference-arg-no-type.ets" } } @@ -281,7 +281,7 @@ }, "end": { "line": 16, - "column": 43, + "column": 42, "program": "lambda-type-inference-arg-no-type.ets" } } @@ -295,7 +295,7 @@ }, "end": { "line": 16, - "column": 43, + "column": 42, "program": "lambda-type-inference-arg-no-type.ets" } } @@ -308,7 +308,7 @@ }, "end": { "line": 16, - "column": 43, + "column": 42, "program": "lambda-type-inference-arg-no-type.ets" } } diff --git a/ets2panda/test/parser/ets/lambda-type-inference-expected.txt b/ets2panda/test/parser/ets/lambda-type-inference-expected.txt index d25ca49fb4bb3c7dfe9fb41f9ae1eeecffe82eb1..84633d12dfed4d70403e5a9ec7acc30f8aac3c99 100644 --- a/ets2panda/test/parser/ets/lambda-type-inference-expected.txt +++ b/ets2panda/test/parser/ets/lambda-type-inference-expected.txt @@ -788,7 +788,7 @@ }, "end": { "line": 24, - "column": 61, + "column": 60, "program": "lambda-type-inference.ets" } } @@ -801,7 +801,7 @@ }, "end": { "line": 24, - "column": 61, + "column": 60, "program": "lambda-type-inference.ets" } } @@ -815,7 +815,7 @@ }, "end": { "line": 24, - "column": 61, + "column": 60, "program": "lambda-type-inference.ets" } } @@ -828,7 +828,7 @@ }, "end": { "line": 24, - "column": 61, + "column": 60, "program": "lambda-type-inference.ets" } } @@ -1669,7 +1669,7 @@ }, "end": { "line": 37, - "column": 28, + "column": 27, "program": "lambda-type-inference.ets" } } @@ -1682,7 +1682,7 @@ }, "end": { "line": 37, - "column": 28, + "column": 27, "program": "lambda-type-inference.ets" } } @@ -1951,7 +1951,7 @@ }, "end": { "line": 40, - "column": 28, + "column": 27, "program": "lambda-type-inference.ets" } } @@ -1964,7 +1964,7 @@ }, "end": { "line": 40, - "column": 28, + "column": 27, "program": "lambda-type-inference.ets" } } @@ -2272,7 +2272,7 @@ }, "end": { "line": 43, - "column": 46, + "column": 45, "program": "lambda-type-inference.ets" } } @@ -2285,7 +2285,7 @@ }, "end": { "line": 43, - "column": 46, + "column": 45, "program": "lambda-type-inference.ets" } } @@ -2299,7 +2299,7 @@ }, "end": { "line": 43, - "column": 46, + "column": 45, "program": "lambda-type-inference.ets" } } @@ -2312,7 +2312,7 @@ }, "end": { "line": 43, - "column": 46, + "column": 45, "program": "lambda-type-inference.ets" } } diff --git a/ets2panda/test/parser/ets/lambda-type-inference-no-ret-type-expected.txt b/ets2panda/test/parser/ets/lambda-type-inference-no-ret-type-expected.txt index 5c5a6f6e0d778a2de5b98c3f63239b5cb2b0cbed..cd84c0e1c0d54ace2299c08348da12b75b868c6c 100644 --- a/ets2panda/test/parser/ets/lambda-type-inference-no-ret-type-expected.txt +++ b/ets2panda/test/parser/ets/lambda-type-inference-no-ret-type-expected.txt @@ -268,7 +268,7 @@ }, "end": { "line": 16, - "column": 43, + "column": 42, "program": "lambda-type-inference-no-ret-type.ets" } } @@ -281,7 +281,7 @@ }, "end": { "line": 16, - "column": 43, + "column": 42, "program": "lambda-type-inference-no-ret-type.ets" } } @@ -295,7 +295,7 @@ }, "end": { "line": 16, - "column": 43, + "column": 42, "program": "lambda-type-inference-no-ret-type.ets" } } @@ -308,7 +308,7 @@ }, "end": { "line": 16, - "column": 43, + "column": 42, "program": "lambda-type-inference-no-ret-type.ets" } } @@ -754,7 +754,7 @@ }, "end": { "line": 21, - "column": 28, + "column": 27, "program": "lambda-type-inference-no-ret-type.ets" } } @@ -767,7 +767,7 @@ }, "end": { "line": 21, - "column": 28, + "column": 27, "program": "lambda-type-inference-no-ret-type.ets" } } @@ -781,7 +781,7 @@ }, "end": { "line": 21, - "column": 28, + "column": 27, "program": "lambda-type-inference-no-ret-type.ets" } } @@ -794,7 +794,7 @@ }, "end": { "line": 21, - "column": 28, + "column": 27, "program": "lambda-type-inference-no-ret-type.ets" } } diff --git a/ets2panda/test/parser/ets/lambda-type-inference-overloaded-3-expected.txt b/ets2panda/test/parser/ets/lambda-type-inference-overloaded-3-expected.txt index 5553b71d0c2515b7b1e0b40f2bee4b1d47a7e212..f67cc61f64a80da0bb1f82098af5b092e45b1946 100644 --- a/ets2panda/test/parser/ets/lambda-type-inference-overloaded-3-expected.txt +++ b/ets2panda/test/parser/ets/lambda-type-inference-overloaded-3-expected.txt @@ -438,7 +438,7 @@ }, "end": { "line": 21, - "column": 29, + "column": 27, "program": "lambda-type-inference-overloaded-3.ets" } } @@ -451,7 +451,7 @@ }, "end": { "line": 21, - "column": 29, + "column": 27, "program": "lambda-type-inference-overloaded-3.ets" } } diff --git a/ets2panda/test/parser/ets/lambdaAsFunctionParam-expected.txt b/ets2panda/test/parser/ets/lambdaAsFunctionParam-expected.txt index 6911e73854c8f18fce8b9e984430462855d4e991..5d3b852fd468fb3c86785a6fd74bfc3749610824 100644 --- a/ets2panda/test/parser/ets/lambdaAsFunctionParam-expected.txt +++ b/ets2panda/test/parser/ets/lambdaAsFunctionParam-expected.txt @@ -164,7 +164,7 @@ }, "end": { "line": 17, - "column": 17, + "column": 16, "program": "lambdaAsFunctionParam.ets" } } @@ -177,7 +177,7 @@ }, "end": { "line": 17, - "column": 17, + "column": 16, "program": "lambdaAsFunctionParam.ets" } } @@ -191,7 +191,7 @@ }, "end": { "line": 17, - "column": 17, + "column": 16, "program": "lambdaAsFunctionParam.ets" } } @@ -204,7 +204,7 @@ }, "end": { "line": 17, - "column": 17, + "column": 16, "program": "lambdaAsFunctionParam.ets" } } @@ -243,7 +243,7 @@ }, "end": { "line": 17, - "column": 23, + "column": 22, "program": "lambdaAsFunctionParam.ets" } } @@ -256,7 +256,7 @@ }, "end": { "line": 17, - "column": 23, + "column": 22, "program": "lambdaAsFunctionParam.ets" } } @@ -270,7 +270,7 @@ }, "end": { "line": 17, - "column": 23, + "column": 22, "program": "lambdaAsFunctionParam.ets" } } @@ -283,7 +283,7 @@ }, "end": { "line": 17, - "column": 23, + "column": 22, "program": "lambdaAsFunctionParam.ets" } } @@ -318,7 +318,7 @@ }, "end": { "line": 17, - "column": 34, + "column": 33, "program": "lambdaAsFunctionParam.ets" } } @@ -331,7 +331,7 @@ }, "end": { "line": 17, - "column": 34, + "column": 33, "program": "lambdaAsFunctionParam.ets" } } @@ -344,7 +344,7 @@ }, "end": { "line": 17, - "column": 34, + "column": 33, "program": "lambdaAsFunctionParam.ets" } } @@ -358,7 +358,7 @@ }, "end": { "line": 17, - "column": 34, + "column": 33, "program": "lambdaAsFunctionParam.ets" } } @@ -371,7 +371,7 @@ }, "end": { "line": 17, - "column": 34, + "column": 33, "program": "lambdaAsFunctionParam.ets" } } @@ -1037,7 +1037,7 @@ }, "end": { "line": 23, - "column": 26, + "column": 25, "program": "lambdaAsFunctionParam.ets" } } @@ -1050,7 +1050,7 @@ }, "end": { "line": 23, - "column": 26, + "column": 25, "program": "lambdaAsFunctionParam.ets" } } @@ -1077,7 +1077,7 @@ }, "end": { "line": 23, - "column": 27, + "column": 26, "program": "lambdaAsFunctionParam.ets" } } @@ -1090,7 +1090,7 @@ }, "end": { "line": 23, - "column": 27, + "column": 26, "program": "lambdaAsFunctionParam.ets" } } @@ -1236,7 +1236,7 @@ }, "end": { "line": 24, - "column": 20, + "column": 19, "program": "lambdaAsFunctionParam.ets" } } @@ -1249,7 +1249,7 @@ }, "end": { "line": 24, - "column": 20, + "column": 19, "program": "lambdaAsFunctionParam.ets" } } @@ -1263,7 +1263,7 @@ }, "end": { "line": 24, - "column": 20, + "column": 19, "program": "lambdaAsFunctionParam.ets" } } @@ -1276,7 +1276,7 @@ }, "end": { "line": 24, - "column": 20, + "column": 19, "program": "lambdaAsFunctionParam.ets" } } @@ -1315,7 +1315,7 @@ }, "end": { "line": 24, - "column": 31, + "column": 30, "program": "lambdaAsFunctionParam.ets" } } @@ -1328,7 +1328,7 @@ }, "end": { "line": 24, - "column": 31, + "column": 30, "program": "lambdaAsFunctionParam.ets" } } @@ -1342,7 +1342,7 @@ }, "end": { "line": 24, - "column": 31, + "column": 30, "program": "lambdaAsFunctionParam.ets" } } @@ -1355,7 +1355,7 @@ }, "end": { "line": 24, - "column": 31, + "column": 30, "program": "lambdaAsFunctionParam.ets" } } @@ -1390,7 +1390,7 @@ }, "end": { "line": 24, - "column": 42, + "column": 39, "program": "lambdaAsFunctionParam.ets" } } @@ -1403,7 +1403,7 @@ }, "end": { "line": 24, - "column": 42, + "column": 39, "program": "lambdaAsFunctionParam.ets" } } diff --git a/ets2panda/test/parser/ets/lambda_import_alias_1-2-expected.txt b/ets2panda/test/parser/ets/lambda_import_alias_1-2-expected.txt index a2c4abe493b3e3379af374134c208575875c66c1..1b62bff898a4bc34497ed842db85224f7792a6ef 100644 --- a/ets2panda/test/parser/ets/lambda_import_alias_1-2-expected.txt +++ b/ets2panda/test/parser/ets/lambda_import_alias_1-2-expected.txt @@ -569,7 +569,7 @@ }, "end": { "line": 18, - "column": 30, + "column": 28, "program": "lambda_import_alias_1-2.ets" } } @@ -582,7 +582,7 @@ }, "end": { "line": 18, - "column": 30, + "column": 28, "program": "lambda_import_alias_1-2.ets" } } @@ -595,7 +595,7 @@ }, "end": { "line": 18, - "column": 30, + "column": 28, "program": "lambda_import_alias_1-2.ets" } } diff --git a/ets2panda/test/parser/ets/lambda_import_alias_1-3-expected.txt b/ets2panda/test/parser/ets/lambda_import_alias_1-3-expected.txt index c1be66990a345fd34a12aa15c84f550bf48fec5a..e54f96ccfad5ad435f2dec9ee94fce8b60172a7f 100644 --- a/ets2panda/test/parser/ets/lambda_import_alias_1-3-expected.txt +++ b/ets2panda/test/parser/ets/lambda_import_alias_1-3-expected.txt @@ -469,7 +469,7 @@ }, "end": { "line": 17, - "column": 31, + "column": 29, "program": "lambda_import_alias_1-3.ets" } } @@ -482,7 +482,7 @@ }, "end": { "line": 17, - "column": 31, + "column": 29, "program": "lambda_import_alias_1-3.ets" } } @@ -523,7 +523,7 @@ }, "end": { "line": 17, - "column": 45, + "column": 44, "program": "lambda_import_alias_1-3.ets" } } @@ -536,7 +536,7 @@ }, "end": { "line": 17, - "column": 45, + "column": 44, "program": "lambda_import_alias_1-3.ets" } } diff --git a/ets2panda/test/parser/ets/lambda_optional_param_1-expected.txt b/ets2panda/test/parser/ets/lambda_optional_param_1-expected.txt index 0707e523d50e52b9d74a30956a79eefd8dc2ebf0..83244026aba40d059b36fcc1cc8ccb28c6a62973 100644 --- a/ets2panda/test/parser/ets/lambda_optional_param_1-expected.txt +++ b/ets2panda/test/parser/ets/lambda_optional_param_1-expected.txt @@ -89,7 +89,7 @@ }, "end": { "line": 17, - "column": 21, + "column": 20, "program": "lambda_optional_param_1.ets" } } @@ -102,7 +102,7 @@ }, "end": { "line": 17, - "column": 21, + "column": 20, "program": "lambda_optional_param_1.ets" } } @@ -116,7 +116,7 @@ }, "end": { "line": 17, - "column": 21, + "column": 20, "program": "lambda_optional_param_1.ets" } } @@ -129,7 +129,7 @@ }, "end": { "line": 17, - "column": 21, + "column": 20, "program": "lambda_optional_param_1.ets" } } @@ -176,7 +176,7 @@ }, "end": { "line": 17, - "column": 42, + "column": 41, "program": "lambda_optional_param_1.ets" } } @@ -189,7 +189,7 @@ }, "end": { "line": 17, - "column": 42, + "column": 41, "program": "lambda_optional_param_1.ets" } } @@ -203,7 +203,7 @@ }, "end": { "line": 17, - "column": 42, + "column": 41, "program": "lambda_optional_param_1.ets" } } @@ -216,7 +216,7 @@ }, "end": { "line": 17, - "column": 42, + "column": 41, "program": "lambda_optional_param_1.ets" } } @@ -251,7 +251,7 @@ }, "end": { "line": 17, - "column": 51, + "column": 50, "program": "lambda_optional_param_1.ets" } } @@ -264,7 +264,7 @@ }, "end": { "line": 17, - "column": 51, + "column": 50, "program": "lambda_optional_param_1.ets" } } @@ -277,7 +277,7 @@ }, "end": { "line": 17, - "column": 51, + "column": 50, "program": "lambda_optional_param_1.ets" } } @@ -291,7 +291,7 @@ }, "end": { "line": 17, - "column": 51, + "column": 50, "program": "lambda_optional_param_1.ets" } } @@ -304,7 +304,7 @@ }, "end": { "line": 17, - "column": 51, + "column": 50, "program": "lambda_optional_param_1.ets" } } diff --git a/ets2panda/test/parser/ets/launch-expected.txt b/ets2panda/test/parser/ets/launch-expected.txt index 98f6cb3e8d7ccb09f01aaa78414b968c635190a2..c9008b00891a402b975c116bd31bb5c8475828eb 100755 --- a/ets2panda/test/parser/ets/launch-expected.txt +++ b/ets2panda/test/parser/ets/launch-expected.txt @@ -266,7 +266,7 @@ }, "end": { "line": 20, - "column": 37, + "column": 35, "program": "launch.ets" } } @@ -279,7 +279,7 @@ }, "end": { "line": 20, - "column": 37, + "column": 35, "program": "launch.ets" } } @@ -320,7 +320,7 @@ }, "end": { "line": 21, - "column": 27, + "column": 26, "program": "launch.ets" } } @@ -333,7 +333,7 @@ }, "end": { "line": 21, - "column": 27, + "column": 26, "program": "launch.ets" } } @@ -498,7 +498,7 @@ }, "end": { "line": 24, - "column": 34, + "column": 32, "program": "launch.ets" } } @@ -511,7 +511,7 @@ }, "end": { "line": 24, - "column": 34, + "column": 32, "program": "launch.ets" } } @@ -552,7 +552,7 @@ }, "end": { "line": 25, - "column": 27, + "column": 26, "program": "launch.ets" } } @@ -565,7 +565,7 @@ }, "end": { "line": 25, - "column": 27, + "column": 26, "program": "launch.ets" } } @@ -1086,7 +1086,7 @@ }, "end": { "line": 29, - "column": 41, + "column": 39, "program": "launch.ets" } } @@ -1099,7 +1099,7 @@ }, "end": { "line": 29, - "column": 41, + "column": 39, "program": "launch.ets" } } @@ -1140,7 +1140,7 @@ }, "end": { "line": 30, - "column": 21, + "column": 20, "program": "launch.ets" } } @@ -1153,7 +1153,7 @@ }, "end": { "line": 30, - "column": 21, + "column": 20, "program": "launch.ets" } } @@ -1366,7 +1366,7 @@ }, "end": { "line": 33, - "column": 31, + "column": 29, "program": "launch.ets" } } @@ -1379,7 +1379,7 @@ }, "end": { "line": 33, - "column": 31, + "column": 29, "program": "launch.ets" } } @@ -1493,7 +1493,7 @@ }, "end": { "line": 34, - "column": 17, + "column": 16, "program": "launch.ets" } } @@ -1506,7 +1506,7 @@ }, "end": { "line": 34, - "column": 17, + "column": 16, "program": "launch.ets" } } @@ -1638,7 +1638,7 @@ }, "end": { "line": 34, - "column": 42, + "column": 41, "program": "launch.ets" } } @@ -1651,7 +1651,7 @@ }, "end": { "line": 34, - "column": 42, + "column": 41, "program": "launch.ets" } } @@ -1664,7 +1664,7 @@ }, "end": { "line": 34, - "column": 42, + "column": 41, "program": "launch.ets" } } @@ -1742,7 +1742,7 @@ }, "end": { "line": 35, - "column": 21, + "column": 20, "program": "launch.ets" } } @@ -1755,7 +1755,7 @@ }, "end": { "line": 35, - "column": 21, + "column": 20, "program": "launch.ets" } } @@ -1970,7 +1970,7 @@ }, "end": { "line": 39, - "column": 21, + "column": 20, "program": "launch.ets" } } @@ -1983,7 +1983,7 @@ }, "end": { "line": 39, - "column": 21, + "column": 20, "program": "launch.ets" } } @@ -2010,7 +2010,7 @@ }, "end": { "line": 39, - "column": 22, + "column": 21, "program": "launch.ets" } } @@ -2023,7 +2023,7 @@ }, "end": { "line": 39, - "column": 22, + "column": 21, "program": "launch.ets" } } @@ -2180,7 +2180,7 @@ }, "end": { "line": 40, - "column": 21, + "column": 20, "program": "launch.ets" } } @@ -2193,7 +2193,7 @@ }, "end": { "line": 40, - "column": 21, + "column": 20, "program": "launch.ets" } } @@ -2278,7 +2278,7 @@ }, "end": { "line": 40, - "column": 40, + "column": 39, "program": "launch.ets" } } @@ -2291,7 +2291,7 @@ }, "end": { "line": 40, - "column": 40, + "column": 39, "program": "launch.ets" } } @@ -2304,7 +2304,7 @@ }, "end": { "line": 40, - "column": 40, + "column": 39, "program": "launch.ets" } } @@ -2489,7 +2489,7 @@ }, "end": { "line": 41, - "column": 21, + "column": 20, "program": "launch.ets" } } @@ -2502,7 +2502,7 @@ }, "end": { "line": 41, - "column": 21, + "column": 20, "program": "launch.ets" } } @@ -2539,7 +2539,7 @@ }, "end": { "line": 41, - "column": 35, + "column": 34, "program": "launch.ets" } } @@ -2552,7 +2552,7 @@ }, "end": { "line": 41, - "column": 35, + "column": 34, "program": "launch.ets" } } @@ -2565,7 +2565,7 @@ }, "end": { "line": 41, - "column": 35, + "column": 34, "program": "launch.ets" } } @@ -2750,7 +2750,7 @@ }, "end": { "line": 42, - "column": 21, + "column": 20, "program": "launch.ets" } } @@ -2763,7 +2763,7 @@ }, "end": { "line": 42, - "column": 21, + "column": 20, "program": "launch.ets" } } @@ -2800,7 +2800,7 @@ }, "end": { "line": 42, - "column": 35, + "column": 34, "program": "launch.ets" } } @@ -2813,7 +2813,7 @@ }, "end": { "line": 42, - "column": 35, + "column": 34, "program": "launch.ets" } } @@ -2826,7 +2826,7 @@ }, "end": { "line": 42, - "column": 35, + "column": 34, "program": "launch.ets" } } @@ -3011,7 +3011,7 @@ }, "end": { "line": 43, - "column": 21, + "column": 20, "program": "launch.ets" } } @@ -3024,7 +3024,7 @@ }, "end": { "line": 43, - "column": 21, + "column": 20, "program": "launch.ets" } } @@ -3061,7 +3061,7 @@ }, "end": { "line": 43, - "column": 35, + "column": 34, "program": "launch.ets" } } @@ -3074,7 +3074,7 @@ }, "end": { "line": 43, - "column": 35, + "column": 34, "program": "launch.ets" } } @@ -3087,7 +3087,7 @@ }, "end": { "line": 43, - "column": 35, + "column": 34, "program": "launch.ets" } } @@ -3233,7 +3233,7 @@ }, "end": { "line": 44, - "column": 36, + "column": 34, "program": "launch.ets" } } @@ -3246,7 +3246,7 @@ }, "end": { "line": 44, - "column": 36, + "column": 34, "program": "launch.ets" } } @@ -3259,7 +3259,7 @@ }, "end": { "line": 44, - "column": 36, + "column": 34, "program": "launch.ets" } } @@ -3432,7 +3432,7 @@ }, "end": { "line": 45, - "column": 21, + "column": 20, "program": "launch.ets" } } @@ -3445,7 +3445,7 @@ }, "end": { "line": 45, - "column": 21, + "column": 20, "program": "launch.ets" } } @@ -3530,7 +3530,7 @@ }, "end": { "line": 45, - "column": 40, + "column": 39, "program": "launch.ets" } } @@ -3543,7 +3543,7 @@ }, "end": { "line": 45, - "column": 40, + "column": 39, "program": "launch.ets" } } @@ -3556,7 +3556,7 @@ }, "end": { "line": 45, - "column": 40, + "column": 39, "program": "launch.ets" } } diff --git a/ets2panda/test/parser/ets/launch_function_returning_void-expected.txt b/ets2panda/test/parser/ets/launch_function_returning_void-expected.txt index 2bfacd379989b5bb601ef60354cd31bce5912291..072c424d63bb45c16ce360a608d8f6696fa489af 100644 --- a/ets2panda/test/parser/ets/launch_function_returning_void-expected.txt +++ b/ets2panda/test/parser/ets/launch_function_returning_void-expected.txt @@ -521,7 +521,7 @@ }, "end": { "line": 22, - "column": 23, + "column": 21, "program": "launch_function_returning_void.ets" } } @@ -534,7 +534,7 @@ }, "end": { "line": 22, - "column": 23, + "column": 21, "program": "launch_function_returning_void.ets" } } diff --git a/ets2panda/test/parser/ets/launch_ret-expected.txt b/ets2panda/test/parser/ets/launch_ret-expected.txt index 6ad6445449696982d4f54ebed15c59c35e4553ed..95123a1f98d0b43099e78794090fe0d96edc465d 100644 --- a/ets2panda/test/parser/ets/launch_ret-expected.txt +++ b/ets2panda/test/parser/ets/launch_ret-expected.txt @@ -583,7 +583,7 @@ }, "end": { "line": 24, - "column": 22, + "column": 20, "program": "launch_ret.ets" } } @@ -596,7 +596,7 @@ }, "end": { "line": 24, - "column": 22, + "column": 20, "program": "launch_ret.ets" } } diff --git a/ets2panda/test/parser/ets/launch_super-expected.txt b/ets2panda/test/parser/ets/launch_super-expected.txt index 960994031d187b04b75188ebb2bd26881785b413..c23ea9fa110fedf2d76cc73cbbd485b9bed01b1f 100755 --- a/ets2panda/test/parser/ets/launch_super-expected.txt +++ b/ets2panda/test/parser/ets/launch_super-expected.txt @@ -408,7 +408,7 @@ }, "end": { "line": 22, - "column": 29, + "column": 27, "program": "launch_super.ets" } } @@ -421,7 +421,7 @@ }, "end": { "line": 22, - "column": 29, + "column": 27, "program": "launch_super.ets" } } diff --git a/ets2panda/test/parser/ets/launch_this_callee-expected.txt b/ets2panda/test/parser/ets/launch_this_callee-expected.txt index f4c5f717d454547ffd6f529c51a238f5556bb6a4..7d7c137236376c195ee112dada05dfc94acd98a6 100755 --- a/ets2panda/test/parser/ets/launch_this_callee-expected.txt +++ b/ets2panda/test/parser/ets/launch_this_callee-expected.txt @@ -290,7 +290,7 @@ }, "end": { "line": 20, - "column": 26, + "column": 25, "program": "launch_this_callee.ets" } } @@ -303,7 +303,7 @@ }, "end": { "line": 20, - "column": 26, + "column": 25, "program": "launch_this_callee.ets" } } @@ -330,7 +330,7 @@ }, "end": { "line": 20, - "column": 28, + "column": 26, "program": "launch_this_callee.ets" } } @@ -343,7 +343,7 @@ }, "end": { "line": 20, - "column": 28, + "column": 26, "program": "launch_this_callee.ets" } } @@ -471,7 +471,7 @@ }, "end": { "line": 21, - "column": 23, + "column": 22, "program": "launch_this_callee.ets" } } @@ -484,7 +484,7 @@ }, "end": { "line": 21, - "column": 23, + "column": 22, "program": "launch_this_callee.ets" } } @@ -526,7 +526,7 @@ }, "end": { "line": 21, - "column": 32, + "column": 31, "program": "launch_this_callee.ets" } } @@ -539,7 +539,7 @@ }, "end": { "line": 21, - "column": 32, + "column": 31, "program": "launch_this_callee.ets" } } @@ -553,7 +553,7 @@ }, "end": { "line": 21, - "column": 32, + "column": 31, "program": "launch_this_callee.ets" } } @@ -566,7 +566,7 @@ }, "end": { "line": 21, - "column": 32, + "column": 31, "program": "launch_this_callee.ets" } } @@ -601,7 +601,7 @@ }, "end": { "line": 21, - "column": 40, + "column": 39, "program": "launch_this_callee.ets" } } @@ -614,7 +614,7 @@ }, "end": { "line": 21, - "column": 40, + "column": 39, "program": "launch_this_callee.ets" } } @@ -627,7 +627,7 @@ }, "end": { "line": 21, - "column": 40, + "column": 39, "program": "launch_this_callee.ets" } } @@ -810,7 +810,7 @@ }, "end": { "line": 24, - "column": 22, + "column": 21, "program": "launch_this_callee.ets" } } @@ -823,7 +823,7 @@ }, "end": { "line": 24, - "column": 22, + "column": 21, "program": "launch_this_callee.ets" } } @@ -837,7 +837,7 @@ }, "end": { "line": 24, - "column": 22, + "column": 21, "program": "launch_this_callee.ets" } } @@ -850,7 +850,7 @@ }, "end": { "line": 24, - "column": 22, + "column": 21, "program": "launch_this_callee.ets" } } @@ -885,7 +885,7 @@ }, "end": { "line": 24, - "column": 29, + "column": 27, "program": "launch_this_callee.ets" } } @@ -898,7 +898,7 @@ }, "end": { "line": 24, - "column": 29, + "column": 27, "program": "launch_this_callee.ets" } } @@ -1095,7 +1095,7 @@ }, "end": { "line": 28, - "column": 27, + "column": 26, "program": "launch_this_callee.ets" } } @@ -1108,7 +1108,7 @@ }, "end": { "line": 28, - "column": 27, + "column": 26, "program": "launch_this_callee.ets" } } @@ -1135,7 +1135,7 @@ }, "end": { "line": 28, - "column": 29, + "column": 27, "program": "launch_this_callee.ets" } } @@ -1148,7 +1148,7 @@ }, "end": { "line": 28, - "column": 29, + "column": 27, "program": "launch_this_callee.ets" } } @@ -1292,7 +1292,7 @@ }, "end": { "line": 29, - "column": 23, + "column": 22, "program": "launch_this_callee.ets" } } @@ -1305,7 +1305,7 @@ }, "end": { "line": 29, - "column": 23, + "column": 22, "program": "launch_this_callee.ets" } } @@ -1347,7 +1347,7 @@ }, "end": { "line": 29, - "column": 32, + "column": 31, "program": "launch_this_callee.ets" } } @@ -1360,7 +1360,7 @@ }, "end": { "line": 29, - "column": 32, + "column": 31, "program": "launch_this_callee.ets" } } @@ -1374,7 +1374,7 @@ }, "end": { "line": 29, - "column": 32, + "column": 31, "program": "launch_this_callee.ets" } } @@ -1387,7 +1387,7 @@ }, "end": { "line": 29, - "column": 32, + "column": 31, "program": "launch_this_callee.ets" } } @@ -1469,7 +1469,7 @@ }, "end": { "line": 29, - "column": 48, + "column": 47, "program": "launch_this_callee.ets" } } @@ -1482,7 +1482,7 @@ }, "end": { "line": 29, - "column": 48, + "column": 47, "program": "launch_this_callee.ets" } } @@ -1495,7 +1495,7 @@ }, "end": { "line": 29, - "column": 48, + "column": 47, "program": "launch_this_callee.ets" } } @@ -1678,7 +1678,7 @@ }, "end": { "line": 32, - "column": 23, + "column": 22, "program": "launch_this_callee.ets" } } @@ -1691,7 +1691,7 @@ }, "end": { "line": 32, - "column": 23, + "column": 22, "program": "launch_this_callee.ets" } } @@ -1705,7 +1705,7 @@ }, "end": { "line": 32, - "column": 23, + "column": 22, "program": "launch_this_callee.ets" } } @@ -1718,7 +1718,7 @@ }, "end": { "line": 32, - "column": 23, + "column": 22, "program": "launch_this_callee.ets" } } @@ -1800,7 +1800,7 @@ }, "end": { "line": 32, - "column": 38, + "column": 36, "program": "launch_this_callee.ets" } } @@ -1813,7 +1813,7 @@ }, "end": { "line": 32, - "column": 38, + "column": 36, "program": "launch_this_callee.ets" } } diff --git a/ets2panda/test/parser/ets/local-interface-expected.txt b/ets2panda/test/parser/ets/local-interface-expected.txt index f9c416f770d25deb6f520b764cc9c9d0f990643e..7013095cf9334b46f89919d069f000b0f3e87f6e 100644 --- a/ets2panda/test/parser/ets/local-interface-expected.txt +++ b/ets2panda/test/parser/ets/local-interface-expected.txt @@ -240,8 +240,8 @@ "program": "local-interface.ets" }, "end": { - "line": 19, - "column": 11, + "line": 18, + "column": 33, "program": "local-interface.ets" } } diff --git a/ets2panda/test/parser/ets/localTypeAlias-expected.txt b/ets2panda/test/parser/ets/localTypeAlias-expected.txt index 5a63a7ed34a3da4d2e2c6dad4c76339c1d27913d..bae56b34be802a15b9cc0b0dc0de040f946712d9 100644 --- a/ets2panda/test/parser/ets/localTypeAlias-expected.txt +++ b/ets2panda/test/parser/ets/localTypeAlias-expected.txt @@ -234,7 +234,7 @@ }, "end": { "line": 17, - "column": 18, + "column": 17, "program": "localTypeAlias.ets" } } @@ -247,7 +247,7 @@ }, "end": { "line": 17, - "column": 18, + "column": 17, "program": "localTypeAlias.ets" } } @@ -343,7 +343,7 @@ }, "end": { "line": 19, - "column": 21, + "column": 20, "program": "localTypeAlias.ets" } } @@ -356,7 +356,7 @@ }, "end": { "line": 19, - "column": 21, + "column": 20, "program": "localTypeAlias.ets" } } @@ -426,7 +426,7 @@ }, "end": { "line": 21, - "column": 15, + "column": 14, "program": "localTypeAlias.ets" } } @@ -439,7 +439,7 @@ }, "end": { "line": 21, - "column": 15, + "column": 14, "program": "localTypeAlias.ets" } } @@ -744,7 +744,7 @@ }, "end": { "line": 30, - "column": 31, + "column": 30, "program": "localTypeAlias.ets" } } @@ -757,7 +757,7 @@ }, "end": { "line": 30, - "column": 31, + "column": 30, "program": "localTypeAlias.ets" } } @@ -827,7 +827,7 @@ }, "end": { "line": 31, - "column": 27, + "column": 26, "program": "localTypeAlias.ets" } } @@ -840,7 +840,7 @@ }, "end": { "line": 31, - "column": 27, + "column": 26, "program": "localTypeAlias.ets" } } @@ -974,7 +974,7 @@ }, "end": { "line": 34, - "column": 26, + "column": 25, "program": "localTypeAlias.ets" } } @@ -987,7 +987,7 @@ }, "end": { "line": 34, - "column": 26, + "column": 25, "program": "localTypeAlias.ets" } } @@ -1117,7 +1117,7 @@ }, "end": { "line": 37, - "column": 31, + "column": 30, "program": "localTypeAlias.ets" } } @@ -1130,7 +1130,7 @@ }, "end": { "line": 37, - "column": 31, + "column": 30, "program": "localTypeAlias.ets" } } @@ -1231,7 +1231,7 @@ }, "end": { "line": 41, - "column": 23, + "column": 22, "program": "localTypeAlias.ets" } } @@ -1244,7 +1244,7 @@ }, "end": { "line": 41, - "column": 23, + "column": 22, "program": "localTypeAlias.ets" } } @@ -1340,7 +1340,7 @@ }, "end": { "line": 42, - "column": 27, + "column": 26, "program": "localTypeAlias.ets" } } @@ -1353,7 +1353,7 @@ }, "end": { "line": 42, - "column": 27, + "column": 26, "program": "localTypeAlias.ets" } } @@ -1434,7 +1434,7 @@ }, "end": { "line": 43, - "column": 27, + "column": 26, "program": "localTypeAlias.ets" } } @@ -1447,7 +1447,7 @@ }, "end": { "line": 43, - "column": 27, + "column": 26, "program": "localTypeAlias.ets" } } @@ -1517,7 +1517,7 @@ }, "end": { "line": 44, - "column": 23, + "column": 22, "program": "localTypeAlias.ets" } } @@ -1530,7 +1530,7 @@ }, "end": { "line": 44, - "column": 23, + "column": 22, "program": "localTypeAlias.ets" } } @@ -1650,7 +1650,7 @@ }, "end": { "line": 48, - "column": 23, + "column": 22, "program": "localTypeAlias.ets" } } @@ -1663,7 +1663,7 @@ }, "end": { "line": 48, - "column": 23, + "column": 22, "program": "localTypeAlias.ets" } } @@ -1759,7 +1759,7 @@ }, "end": { "line": 49, - "column": 27, + "column": 26, "program": "localTypeAlias.ets" } } @@ -1772,7 +1772,7 @@ }, "end": { "line": 49, - "column": 27, + "column": 26, "program": "localTypeAlias.ets" } } @@ -1853,7 +1853,7 @@ }, "end": { "line": 50, - "column": 27, + "column": 26, "program": "localTypeAlias.ets" } } @@ -1866,7 +1866,7 @@ }, "end": { "line": 50, - "column": 27, + "column": 26, "program": "localTypeAlias.ets" } } @@ -1936,7 +1936,7 @@ }, "end": { "line": 51, - "column": 23, + "column": 22, "program": "localTypeAlias.ets" } } @@ -1949,7 +1949,7 @@ }, "end": { "line": 51, - "column": 23, + "column": 22, "program": "localTypeAlias.ets" } } @@ -2246,7 +2246,7 @@ }, "end": { "line": 56, - "column": 23, + "column": 22, "program": "localTypeAlias.ets" } } @@ -2259,7 +2259,7 @@ }, "end": { "line": 56, - "column": 23, + "column": 22, "program": "localTypeAlias.ets" } } @@ -2355,7 +2355,7 @@ }, "end": { "line": 57, - "column": 27, + "column": 26, "program": "localTypeAlias.ets" } } @@ -2368,7 +2368,7 @@ }, "end": { "line": 57, - "column": 27, + "column": 26, "program": "localTypeAlias.ets" } } @@ -2449,7 +2449,7 @@ }, "end": { "line": 59, - "column": 27, + "column": 26, "program": "localTypeAlias.ets" } } @@ -2462,7 +2462,7 @@ }, "end": { "line": 59, - "column": 27, + "column": 26, "program": "localTypeAlias.ets" } } @@ -2532,7 +2532,7 @@ }, "end": { "line": 60, - "column": 23, + "column": 22, "program": "localTypeAlias.ets" } } @@ -2545,7 +2545,7 @@ }, "end": { "line": 60, - "column": 23, + "column": 22, "program": "localTypeAlias.ets" } } @@ -2662,7 +2662,7 @@ }, "end": { "line": 64, - "column": 23, + "column": 22, "program": "localTypeAlias.ets" } } @@ -2675,7 +2675,7 @@ }, "end": { "line": 64, - "column": 23, + "column": 22, "program": "localTypeAlias.ets" } } @@ -2771,7 +2771,7 @@ }, "end": { "line": 65, - "column": 27, + "column": 26, "program": "localTypeAlias.ets" } } @@ -2784,7 +2784,7 @@ }, "end": { "line": 65, - "column": 27, + "column": 26, "program": "localTypeAlias.ets" } } @@ -2865,7 +2865,7 @@ }, "end": { "line": 67, - "column": 27, + "column": 26, "program": "localTypeAlias.ets" } } @@ -2878,7 +2878,7 @@ }, "end": { "line": 67, - "column": 27, + "column": 26, "program": "localTypeAlias.ets" } } @@ -2948,7 +2948,7 @@ }, "end": { "line": 68, - "column": 23, + "column": 22, "program": "localTypeAlias.ets" } } @@ -2961,7 +2961,7 @@ }, "end": { "line": 68, - "column": 23, + "column": 22, "program": "localTypeAlias.ets" } } @@ -3066,7 +3066,7 @@ }, "end": { "line": 70, - "column": 23, + "column": 22, "program": "localTypeAlias.ets" } } @@ -3079,7 +3079,7 @@ }, "end": { "line": 70, - "column": 23, + "column": 22, "program": "localTypeAlias.ets" } } @@ -3175,7 +3175,7 @@ }, "end": { "line": 71, - "column": 27, + "column": 26, "program": "localTypeAlias.ets" } } @@ -3188,7 +3188,7 @@ }, "end": { "line": 71, - "column": 27, + "column": 26, "program": "localTypeAlias.ets" } } @@ -3269,7 +3269,7 @@ }, "end": { "line": 73, - "column": 27, + "column": 26, "program": "localTypeAlias.ets" } } @@ -3282,7 +3282,7 @@ }, "end": { "line": 73, - "column": 27, + "column": 26, "program": "localTypeAlias.ets" } } @@ -3352,7 +3352,7 @@ }, "end": { "line": 74, - "column": 23, + "column": 22, "program": "localTypeAlias.ets" } } @@ -3365,7 +3365,7 @@ }, "end": { "line": 74, - "column": 23, + "column": 22, "program": "localTypeAlias.ets" } } diff --git a/ets2panda/test/parser/ets/main_entry_point_6-expected.txt b/ets2panda/test/parser/ets/main_entry_point_6-expected.txt index e439d324dca500bb4fcff5bcd8a6e7eace490062..ae300152d7e5f37a5ccdc32ce18c89c9fa591550 100644 --- a/ets2panda/test/parser/ets/main_entry_point_6-expected.txt +++ b/ets2panda/test/parser/ets/main_entry_point_6-expected.txt @@ -237,7 +237,7 @@ }, "end": { "line": 16, - "column": 37, + "column": 36, "program": "main_entry_point_6.ets" } } @@ -250,7 +250,7 @@ }, "end": { "line": 16, - "column": 37, + "column": 36, "program": "main_entry_point_6.ets" } } @@ -277,7 +277,7 @@ }, "end": { "line": 16, - "column": 38, + "column": 37, "program": "main_entry_point_6.ets" } } @@ -290,7 +290,7 @@ }, "end": { "line": 16, - "column": 38, + "column": 37, "program": "main_entry_point_6.ets" } } @@ -304,7 +304,7 @@ }, "end": { "line": 16, - "column": 38, + "column": 37, "program": "main_entry_point_6.ets" } } @@ -317,7 +317,7 @@ }, "end": { "line": 16, - "column": 38, + "column": 37, "program": "main_entry_point_6.ets" } } diff --git a/ets2panda/test/parser/ets/main_entry_point_7-expected.txt b/ets2panda/test/parser/ets/main_entry_point_7-expected.txt index cda558b8dc0537a14192d298cd8681db771edf5a..b177e54e5070a928e65db22b48aadf87b750d68d 100644 --- a/ets2panda/test/parser/ets/main_entry_point_7-expected.txt +++ b/ets2panda/test/parser/ets/main_entry_point_7-expected.txt @@ -102,7 +102,7 @@ }, "end": { "line": 21, - "column": 21, + "column": 19, "program": "main_entry_point_7.ets" } } @@ -115,7 +115,7 @@ }, "end": { "line": 21, - "column": 21, + "column": 19, "program": "main_entry_point_7.ets" } } diff --git a/ets2panda/test/parser/ets/main_entry_point_8-expected.txt b/ets2panda/test/parser/ets/main_entry_point_8-expected.txt index 7311fff7cce367bcba0e348bb49ceecd10946cc4..756551d4a7b0d7437ca2abcfdeaee730b2606756 100644 --- a/ets2panda/test/parser/ets/main_entry_point_8-expected.txt +++ b/ets2panda/test/parser/ets/main_entry_point_8-expected.txt @@ -49,7 +49,7 @@ }, "end": { "line": 16, - "column": 19, + "column": 18, "program": "main_entry_point_8.ets" } } @@ -62,7 +62,7 @@ }, "end": { "line": 16, - "column": 19, + "column": 18, "program": "main_entry_point_8.ets" } } @@ -316,7 +316,7 @@ }, "end": { "line": 18, - "column": 34, + "column": 33, "program": "main_entry_point_8.ets" } } @@ -329,7 +329,7 @@ }, "end": { "line": 18, - "column": 34, + "column": 33, "program": "main_entry_point_8.ets" } } @@ -356,7 +356,7 @@ }, "end": { "line": 18, - "column": 35, + "column": 34, "program": "main_entry_point_8.ets" } } @@ -369,7 +369,7 @@ }, "end": { "line": 18, - "column": 35, + "column": 34, "program": "main_entry_point_8.ets" } } @@ -383,7 +383,7 @@ }, "end": { "line": 18, - "column": 35, + "column": 34, "program": "main_entry_point_8.ets" } } @@ -396,7 +396,7 @@ }, "end": { "line": 18, - "column": 35, + "column": 34, "program": "main_entry_point_8.ets" } } diff --git a/ets2panda/test/parser/ets/main_entry_point_9-expected.txt b/ets2panda/test/parser/ets/main_entry_point_9-expected.txt index e85777b713203b266d528eddb12cc01be4a2a726..c5ec3248d51647b7b14f6c8aef997a1ec5ceb42a 100644 --- a/ets2panda/test/parser/ets/main_entry_point_9-expected.txt +++ b/ets2panda/test/parser/ets/main_entry_point_9-expected.txt @@ -73,7 +73,7 @@ }, "end": { "line": 16, - "column": 30, + "column": 29, "program": "main_entry_point_9.ets" } } @@ -86,7 +86,7 @@ }, "end": { "line": 16, - "column": 30, + "column": 29, "program": "main_entry_point_9.ets" } } @@ -113,7 +113,7 @@ }, "end": { "line": 16, - "column": 31, + "column": 30, "program": "main_entry_point_9.ets" } } @@ -126,7 +126,7 @@ }, "end": { "line": 16, - "column": 31, + "column": 30, "program": "main_entry_point_9.ets" } } @@ -356,7 +356,7 @@ }, "end": { "line": 18, - "column": 23, + "column": 22, "program": "main_entry_point_9.ets" } } @@ -369,7 +369,7 @@ }, "end": { "line": 18, - "column": 23, + "column": 22, "program": "main_entry_point_9.ets" } } @@ -383,7 +383,7 @@ }, "end": { "line": 18, - "column": 23, + "column": 22, "program": "main_entry_point_9.ets" } } @@ -396,7 +396,7 @@ }, "end": { "line": 18, - "column": 23, + "column": 22, "program": "main_entry_point_9.ets" } } diff --git a/ets2panda/test/parser/ets/new_expressions-expected.txt b/ets2panda/test/parser/ets/new_expressions-expected.txt index 1f42372e3e049ffe38b7697f1d921032445e1fc9..c379f4f0f29d1bfa9060d3a2650a054509a3e1d6 100644 --- a/ets2panda/test/parser/ets/new_expressions-expected.txt +++ b/ets2panda/test/parser/ets/new_expressions-expected.txt @@ -406,7 +406,7 @@ }, "end": { "line": 25, - "column": 20, + "column": 19, "program": "new_expressions.ets" } } @@ -419,7 +419,7 @@ }, "end": { "line": 25, - "column": 20, + "column": 19, "program": "new_expressions.ets" } } diff --git a/ets2panda/test/parser/ets/new_object_3-expected.txt b/ets2panda/test/parser/ets/new_object_3-expected.txt index 645a973ec72579fc8603404ce0a1e3340affa298..114a616ad301f4aacf76099f109bd83a0909c4ce 100644 --- a/ets2panda/test/parser/ets/new_object_3-expected.txt +++ b/ets2panda/test/parser/ets/new_object_3-expected.txt @@ -234,7 +234,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 18, "program": "new_object_3.ets" } } @@ -247,7 +247,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 18, "program": "new_object_3.ets" } } @@ -297,7 +297,7 @@ }, "end": { "line": 18, - "column": 33, + "column": 32, "program": "new_object_3.ets" } } @@ -310,7 +310,7 @@ }, "end": { "line": 18, - "column": 33, + "column": 32, "program": "new_object_3.ets" } } diff --git a/ets2panda/test/parser/ets/null-expected.txt b/ets2panda/test/parser/ets/null-expected.txt index 9364cf0b91ec54ecc3b486ba81981e8884f0f2d3..6eeafa544d608c76177d84bfc0d073c9fa039845 100644 --- a/ets2panda/test/parser/ets/null-expected.txt +++ b/ets2panda/test/parser/ets/null-expected.txt @@ -348,7 +348,7 @@ }, "end": { "line": 19, - "column": 23, + "column": 22, "program": "null.ets" } } @@ -361,7 +361,7 @@ }, "end": { "line": 19, - "column": 23, + "column": 22, "program": "null.ets" } } @@ -518,7 +518,7 @@ }, "end": { "line": 18, - "column": 14, + "column": 12, "program": "null.ets" } } @@ -531,7 +531,7 @@ }, "end": { "line": 18, - "column": 14, + "column": 12, "program": "null.ets" } } @@ -634,7 +634,7 @@ }, "end": { "line": 19, - "column": 14, + "column": 12, "program": "null.ets" } } @@ -647,7 +647,7 @@ }, "end": { "line": 19, - "column": 14, + "column": 12, "program": "null.ets" } } @@ -753,7 +753,7 @@ }, "end": { "line": 21, - "column": 24, + "column": 22, "program": "null.ets" } } @@ -766,7 +766,7 @@ }, "end": { "line": 21, - "column": 24, + "column": 22, "program": "null.ets" } } @@ -1141,7 +1141,7 @@ }, "end": { "line": 28, - "column": 18, + "column": 16, "program": "null.ets" } } @@ -1154,7 +1154,7 @@ }, "end": { "line": 28, - "column": 18, + "column": 16, "program": "null.ets" } } @@ -1283,7 +1283,7 @@ }, "end": { "line": 29, - "column": 18, + "column": 16, "program": "null.ets" } } @@ -1296,7 +1296,7 @@ }, "end": { "line": 29, - "column": 18, + "column": 16, "program": "null.ets" } } @@ -1346,7 +1346,7 @@ }, "end": { "line": 29, - "column": 27, + "column": 26, "program": "null.ets" } } @@ -1359,7 +1359,7 @@ }, "end": { "line": 29, - "column": 27, + "column": 26, "program": "null.ets" } } @@ -1659,7 +1659,7 @@ }, "end": { "line": 35, - "column": 17, + "column": 16, "program": "null.ets" } } @@ -1672,7 +1672,7 @@ }, "end": { "line": 35, - "column": 17, + "column": 16, "program": "null.ets" } } diff --git a/ets2panda/test/parser/ets/null_valid-expected.txt b/ets2panda/test/parser/ets/null_valid-expected.txt index 9166813212379f31c8edf637f5ad1d0713fba549..f9093189af3ef57faa02d52f41c634a7d4a04bf1 100644 --- a/ets2panda/test/parser/ets/null_valid-expected.txt +++ b/ets2panda/test/parser/ets/null_valid-expected.txt @@ -415,7 +415,7 @@ }, "end": { "line": 17, - "column": 17, + "column": 15, "program": "null_valid.ets" } } @@ -428,7 +428,7 @@ }, "end": { "line": 17, - "column": 17, + "column": 15, "program": "null_valid.ets" } } diff --git a/ets2panda/test/parser/ets/nullableGenericSignature-expected.txt b/ets2panda/test/parser/ets/nullableGenericSignature-expected.txt index ccbb04f900ff7535b5d2f82c771d30d34aaf1d04..3e9cf6890010be5148103951e79d56b973012011 100644 --- a/ets2panda/test/parser/ets/nullableGenericSignature-expected.txt +++ b/ets2panda/test/parser/ets/nullableGenericSignature-expected.txt @@ -164,7 +164,7 @@ }, "end": { "line": 17, - "column": 19, + "column": 18, "program": "nullableGenericSignature.ets" } } @@ -177,7 +177,7 @@ }, "end": { "line": 17, - "column": 19, + "column": 18, "program": "nullableGenericSignature.ets" } } @@ -191,7 +191,7 @@ }, "end": { "line": 17, - "column": 19, + "column": 18, "program": "nullableGenericSignature.ets" } } @@ -204,7 +204,7 @@ }, "end": { "line": 17, - "column": 19, + "column": 18, "program": "nullableGenericSignature.ets" } } @@ -475,7 +475,7 @@ }, "end": { "line": 21, - "column": 23, + "column": 21, "program": "nullableGenericSignature.ets" } } @@ -488,7 +488,7 @@ }, "end": { "line": 21, - "column": 23, + "column": 21, "program": "nullableGenericSignature.ets" } } @@ -544,7 +544,7 @@ }, "end": { "line": 21, - "column": 31, + "column": 29, "program": "nullableGenericSignature.ets" } } @@ -557,7 +557,7 @@ }, "end": { "line": 21, - "column": 31, + "column": 29, "program": "nullableGenericSignature.ets" } } @@ -598,7 +598,7 @@ }, "end": { "line": 22, - "column": 21, + "column": 20, "program": "nullableGenericSignature.ets" } } @@ -611,7 +611,7 @@ }, "end": { "line": 22, - "column": 21, + "column": 20, "program": "nullableGenericSignature.ets" } } @@ -1172,7 +1172,7 @@ }, "end": { "line": 26, - "column": 29, + "column": 28, "program": "nullableGenericSignature.ets" } } @@ -1185,7 +1185,7 @@ }, "end": { "line": 26, - "column": 29, + "column": 28, "program": "nullableGenericSignature.ets" } } @@ -1212,7 +1212,7 @@ }, "end": { "line": 26, - "column": 30, + "column": 29, "program": "nullableGenericSignature.ets" } } @@ -1225,7 +1225,7 @@ }, "end": { "line": 26, - "column": 30, + "column": 29, "program": "nullableGenericSignature.ets" } } @@ -1239,7 +1239,7 @@ }, "end": { "line": 26, - "column": 30, + "column": 29, "program": "nullableGenericSignature.ets" } } @@ -1252,7 +1252,7 @@ }, "end": { "line": 26, - "column": 30, + "column": 29, "program": "nullableGenericSignature.ets" } } @@ -1375,7 +1375,7 @@ }, "end": { "line": 27, - "column": 32, + "column": 31, "program": "nullableGenericSignature.ets" } } @@ -1388,7 +1388,7 @@ }, "end": { "line": 27, - "column": 32, + "column": 31, "program": "nullableGenericSignature.ets" } } @@ -1402,7 +1402,7 @@ }, "end": { "line": 27, - "column": 32, + "column": 31, "program": "nullableGenericSignature.ets" } } @@ -1415,7 +1415,7 @@ }, "end": { "line": 27, - "column": 32, + "column": 31, "program": "nullableGenericSignature.ets" } } diff --git a/ets2panda/test/parser/ets/object-expected.txt b/ets2panda/test/parser/ets/object-expected.txt index d1dd4a7434113cc4c22dffb1c09d7c35d9a754d5..9b546f2a1de0b7923a42bde704f3fed6ce11196a 100644 --- a/ets2panda/test/parser/ets/object-expected.txt +++ b/ets2panda/test/parser/ets/object-expected.txt @@ -290,7 +290,7 @@ }, "end": { "line": 16, - "column": 15, + "column": 14, "program": "object.ets" } } @@ -303,7 +303,7 @@ }, "end": { "line": 16, - "column": 15, + "column": 14, "program": "object.ets" } } diff --git a/ets2panda/test/parser/ets/optional_field_class-expected.txt b/ets2panda/test/parser/ets/optional_field_class-expected.txt index 884726ec67f1d7c676fdc406a85076f9fe02fcb7..7269fb0492200f5e47a4f4457f31d4ccc11ade0f 100644 --- a/ets2panda/test/parser/ets/optional_field_class-expected.txt +++ b/ets2panda/test/parser/ets/optional_field_class-expected.txt @@ -81,7 +81,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "optional_field_class.ets" } } @@ -94,7 +94,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "optional_field_class.ets" } } @@ -109,7 +109,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "optional_field_class.ets" } } @@ -123,7 +123,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "optional_field_class.ets" } } @@ -138,7 +138,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "optional_field_class.ets" } } @@ -200,7 +200,7 @@ }, "end": { "line": 19, - "column": 28, + "column": 27, "program": "optional_field_class.ets" } } @@ -213,7 +213,7 @@ }, "end": { "line": 19, - "column": 28, + "column": 27, "program": "optional_field_class.ets" } } @@ -228,7 +228,7 @@ }, "end": { "line": 19, - "column": 28, + "column": 27, "program": "optional_field_class.ets" } } @@ -242,7 +242,7 @@ }, "end": { "line": 19, - "column": 28, + "column": 27, "program": "optional_field_class.ets" } } @@ -257,7 +257,7 @@ }, "end": { "line": 19, - "column": 28, + "column": 27, "program": "optional_field_class.ets" } } diff --git a/ets2panda/test/parser/ets/optional_field_interface-expected.txt b/ets2panda/test/parser/ets/optional_field_interface-expected.txt index 1efdb7e3d41b7b8645f02824d301eb6bccfcda17..ae3f19fbe3db1269e482d4f1979c381190024233 100644 --- a/ets2panda/test/parser/ets/optional_field_interface-expected.txt +++ b/ets2panda/test/parser/ets/optional_field_interface-expected.txt @@ -87,7 +87,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "optional_field_interface.ets" } } @@ -100,7 +100,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "optional_field_interface.ets" } } @@ -142,7 +142,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "optional_field_interface.ets" } } @@ -155,7 +155,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "optional_field_interface.ets" } } @@ -247,7 +247,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "optional_field_interface.ets" } } @@ -260,7 +260,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "optional_field_interface.ets" } } @@ -330,7 +330,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "optional_field_interface.ets" } } @@ -343,7 +343,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "optional_field_interface.ets" } } @@ -358,7 +358,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "optional_field_interface.ets" } } @@ -373,7 +373,7 @@ }, "end": { "line": 18, - "column": 20, + "column": 19, "program": "optional_field_interface.ets" } } @@ -417,8 +417,8 @@ "program": "optional_field_interface.ets" }, "end": { - "line": 21, - "column": 6, + "line": 19, + "column": 2, "program": "optional_field_interface.ets" } } @@ -475,8 +475,8 @@ "program": "optional_field_interface.ets" }, "end": { - "line": 22, - "column": 2, + "line": 21, + "column": 21, "program": "optional_field_interface.ets" } } @@ -488,8 +488,8 @@ "program": "optional_field_interface.ets" }, "end": { - "line": 22, - "column": 2, + "line": 21, + "column": 21, "program": "optional_field_interface.ets" } } @@ -566,7 +566,7 @@ }, "end": { "line": 23, - "column": 21, + "column": 20, "program": "optional_field_interface.ets" } } @@ -579,7 +579,7 @@ }, "end": { "line": 23, - "column": 21, + "column": 20, "program": "optional_field_interface.ets" } } @@ -594,7 +594,7 @@ }, "end": { "line": 23, - "column": 21, + "column": 20, "program": "optional_field_interface.ets" } } @@ -608,7 +608,7 @@ }, "end": { "line": 23, - "column": 21, + "column": 20, "program": "optional_field_interface.ets" } } @@ -623,7 +623,7 @@ }, "end": { "line": 23, - "column": 21, + "column": 20, "program": "optional_field_interface.ets" } } @@ -709,7 +709,7 @@ }, "end": { "line": 25, - "column": 26, + "column": 24, "program": "optional_field_interface.ets" } } @@ -722,7 +722,7 @@ }, "end": { "line": 25, - "column": 26, + "column": 24, "program": "optional_field_interface.ets" } } @@ -950,7 +950,7 @@ }, "end": { "line": 29, - "column": 26, + "column": 24, "program": "optional_field_interface.ets" } } @@ -963,7 +963,7 @@ }, "end": { "line": 29, - "column": 26, + "column": 24, "program": "optional_field_interface.ets" } } diff --git a/ets2panda/test/parser/ets/optional_field_interfaceUnion-expected.txt b/ets2panda/test/parser/ets/optional_field_interfaceUnion-expected.txt index d31078a31ef8b73a7d294fb83232367db0738328..2759698ca8aedb8ac4ccb00322d44a4ac10983a2 100644 --- a/ets2panda/test/parser/ets/optional_field_interfaceUnion-expected.txt +++ b/ets2panda/test/parser/ets/optional_field_interfaceUnion-expected.txt @@ -90,7 +90,7 @@ }, "end": { "line": 18, - "column": 21, + "column": 19, "program": "optional_field_interfaceUnion.ets" } } @@ -103,7 +103,7 @@ }, "end": { "line": 18, - "column": 21, + "column": 19, "program": "optional_field_interfaceUnion.ets" } } @@ -137,7 +137,7 @@ }, "end": { "line": 18, - "column": 30, + "column": 28, "program": "optional_field_interfaceUnion.ets" } } @@ -150,7 +150,7 @@ }, "end": { "line": 18, - "column": 30, + "column": 28, "program": "optional_field_interfaceUnion.ets" } } @@ -184,7 +184,7 @@ }, "end": { "line": 18, - "column": 38, + "column": 37, "program": "optional_field_interfaceUnion.ets" } } @@ -197,7 +197,7 @@ }, "end": { "line": 18, - "column": 38, + "column": 37, "program": "optional_field_interfaceUnion.ets" } } @@ -211,7 +211,7 @@ }, "end": { "line": 18, - "column": 38, + "column": 37, "program": "optional_field_interfaceUnion.ets" } } @@ -253,7 +253,7 @@ }, "end": { "line": 18, - "column": 38, + "column": 37, "program": "optional_field_interfaceUnion.ets" } } @@ -266,7 +266,7 @@ }, "end": { "line": 18, - "column": 38, + "column": 37, "program": "optional_field_interfaceUnion.ets" } } @@ -361,7 +361,7 @@ }, "end": { "line": 18, - "column": 21, + "column": 19, "program": "optional_field_interfaceUnion.ets" } } @@ -374,7 +374,7 @@ }, "end": { "line": 18, - "column": 21, + "column": 19, "program": "optional_field_interfaceUnion.ets" } } @@ -408,7 +408,7 @@ }, "end": { "line": 18, - "column": 30, + "column": 28, "program": "optional_field_interfaceUnion.ets" } } @@ -421,7 +421,7 @@ }, "end": { "line": 18, - "column": 30, + "column": 28, "program": "optional_field_interfaceUnion.ets" } } @@ -455,7 +455,7 @@ }, "end": { "line": 18, - "column": 38, + "column": 37, "program": "optional_field_interfaceUnion.ets" } } @@ -468,7 +468,7 @@ }, "end": { "line": 18, - "column": 38, + "column": 37, "program": "optional_field_interfaceUnion.ets" } } @@ -482,7 +482,7 @@ }, "end": { "line": 18, - "column": 38, + "column": 37, "program": "optional_field_interfaceUnion.ets" } } @@ -552,7 +552,7 @@ }, "end": { "line": 18, - "column": 38, + "column": 37, "program": "optional_field_interfaceUnion.ets" } } @@ -565,7 +565,7 @@ }, "end": { "line": 18, - "column": 38, + "column": 37, "program": "optional_field_interfaceUnion.ets" } } @@ -580,7 +580,7 @@ }, "end": { "line": 18, - "column": 38, + "column": 37, "program": "optional_field_interfaceUnion.ets" } } @@ -595,7 +595,7 @@ }, "end": { "line": 18, - "column": 38, + "column": 37, "program": "optional_field_interfaceUnion.ets" } } @@ -639,8 +639,8 @@ "program": "optional_field_interfaceUnion.ets" }, "end": { - "line": 21, - "column": 6, + "line": 19, + "column": 2, "program": "optional_field_interfaceUnion.ets" } } @@ -697,8 +697,8 @@ "program": "optional_field_interfaceUnion.ets" }, "end": { - "line": 22, - "column": 2, + "line": 21, + "column": 21, "program": "optional_field_interfaceUnion.ets" } } @@ -710,8 +710,8 @@ "program": "optional_field_interfaceUnion.ets" }, "end": { - "line": 22, - "column": 2, + "line": 21, + "column": 21, "program": "optional_field_interfaceUnion.ets" } } @@ -788,7 +788,7 @@ }, "end": { "line": 23, - "column": 22, + "column": 20, "program": "optional_field_interfaceUnion.ets" } } @@ -801,7 +801,7 @@ }, "end": { "line": 23, - "column": 22, + "column": 20, "program": "optional_field_interfaceUnion.ets" } } @@ -835,7 +835,7 @@ }, "end": { "line": 23, - "column": 30, + "column": 29, "program": "optional_field_interfaceUnion.ets" } } @@ -848,7 +848,7 @@ }, "end": { "line": 23, - "column": 30, + "column": 29, "program": "optional_field_interfaceUnion.ets" } } @@ -863,7 +863,7 @@ }, "end": { "line": 23, - "column": 30, + "column": 29, "program": "optional_field_interfaceUnion.ets" } } @@ -877,7 +877,7 @@ }, "end": { "line": 23, - "column": 30, + "column": 29, "program": "optional_field_interfaceUnion.ets" } } @@ -892,7 +892,7 @@ }, "end": { "line": 23, - "column": 30, + "column": 29, "program": "optional_field_interfaceUnion.ets" } } @@ -978,7 +978,7 @@ }, "end": { "line": 25, - "column": 26, + "column": 24, "program": "optional_field_interfaceUnion.ets" } } @@ -991,7 +991,7 @@ }, "end": { "line": 25, - "column": 26, + "column": 24, "program": "optional_field_interfaceUnion.ets" } } @@ -1025,7 +1025,7 @@ }, "end": { "line": 25, - "column": 35, + "column": 33, "program": "optional_field_interfaceUnion.ets" } } @@ -1038,7 +1038,7 @@ }, "end": { "line": 25, - "column": 35, + "column": 33, "program": "optional_field_interfaceUnion.ets" } } @@ -1266,7 +1266,7 @@ }, "end": { "line": 29, - "column": 26, + "column": 24, "program": "optional_field_interfaceUnion.ets" } } @@ -1279,7 +1279,7 @@ }, "end": { "line": 29, - "column": 26, + "column": 24, "program": "optional_field_interfaceUnion.ets" } } @@ -1313,7 +1313,7 @@ }, "end": { "line": 29, - "column": 35, + "column": 33, "program": "optional_field_interfaceUnion.ets" } } @@ -1326,7 +1326,7 @@ }, "end": { "line": 29, - "column": 35, + "column": 33, "program": "optional_field_interfaceUnion.ets" } } diff --git a/ets2panda/test/parser/ets/optional_union_paramter-expected.txt b/ets2panda/test/parser/ets/optional_union_paramter-expected.txt index 27cb8be9b1400a21d61fe1589743f6fc5dcc1d41..2e763877c5ff66da68d9f0035529c32501640251 100644 --- a/ets2panda/test/parser/ets/optional_union_paramter-expected.txt +++ b/ets2panda/test/parser/ets/optional_union_paramter-expected.txt @@ -110,7 +110,7 @@ }, "end": { "line": 17, - "column": 38, + "column": 36, "program": "optional_union_paramter.ets" } } @@ -123,7 +123,7 @@ }, "end": { "line": 17, - "column": 38, + "column": 36, "program": "optional_union_paramter.ets" } } @@ -157,7 +157,7 @@ }, "end": { "line": 17, - "column": 43, + "column": 42, "program": "optional_union_paramter.ets" } } @@ -170,7 +170,7 @@ }, "end": { "line": 17, - "column": 43, + "column": 42, "program": "optional_union_paramter.ets" } } @@ -184,7 +184,7 @@ }, "end": { "line": 17, - "column": 43, + "column": 42, "program": "optional_union_paramter.ets" } } @@ -198,7 +198,7 @@ }, "end": { "line": 17, - "column": 43, + "column": 42, "program": "optional_union_paramter.ets" } } @@ -211,7 +211,7 @@ }, "end": { "line": 17, - "column": 43, + "column": 42, "program": "optional_union_paramter.ets" } } @@ -250,7 +250,7 @@ }, "end": { "line": 17, - "column": 59, + "column": 58, "program": "optional_union_paramter.ets" } } @@ -263,7 +263,7 @@ }, "end": { "line": 17, - "column": 59, + "column": 58, "program": "optional_union_paramter.ets" } } @@ -277,7 +277,7 @@ }, "end": { "line": 17, - "column": 59, + "column": 58, "program": "optional_union_paramter.ets" } } @@ -290,7 +290,7 @@ }, "end": { "line": 17, - "column": 59, + "column": 58, "program": "optional_union_paramter.ets" } } diff --git a/ets2panda/test/parser/ets/override-expected.txt b/ets2panda/test/parser/ets/override-expected.txt index 5f5fa18a95a7572e5dfbd2baf306097b9e472172..63519658661942d66679f5abdea6a05377ef07d2 100644 --- a/ets2panda/test/parser/ets/override-expected.txt +++ b/ets2panda/test/parser/ets/override-expected.txt @@ -156,7 +156,7 @@ }, "end": { "line": 17, - "column": 12, + "column": 11, "program": "override.ets" } } @@ -169,7 +169,7 @@ }, "end": { "line": 17, - "column": 12, + "column": 11, "program": "override.ets" } } @@ -183,7 +183,7 @@ }, "end": { "line": 17, - "column": 12, + "column": 11, "program": "override.ets" } } @@ -196,7 +196,7 @@ }, "end": { "line": 17, - "column": 12, + "column": 11, "program": "override.ets" } } @@ -235,7 +235,7 @@ }, "end": { "line": 17, - "column": 20, + "column": 19, "program": "override.ets" } } @@ -248,7 +248,7 @@ }, "end": { "line": 17, - "column": 20, + "column": 19, "program": "override.ets" } } @@ -262,7 +262,7 @@ }, "end": { "line": 17, - "column": 20, + "column": 19, "program": "override.ets" } } @@ -275,7 +275,7 @@ }, "end": { "line": 17, - "column": 20, + "column": 19, "program": "override.ets" } } @@ -310,7 +310,7 @@ }, "end": { "line": 17, - "column": 25, + "column": 23, "program": "override.ets" } } @@ -323,7 +323,7 @@ }, "end": { "line": 17, - "column": 25, + "column": 23, "program": "override.ets" } } @@ -824,7 +824,7 @@ }, "end": { "line": 19, - "column": 24, + "column": 23, "program": "override.ets" } } @@ -837,7 +837,7 @@ }, "end": { "line": 19, - "column": 24, + "column": 23, "program": "override.ets" } } @@ -864,7 +864,7 @@ }, "end": { "line": 19, - "column": 26, + "column": 24, "program": "override.ets" } } @@ -877,7 +877,7 @@ }, "end": { "line": 19, - "column": 26, + "column": 24, "program": "override.ets" } } @@ -967,7 +967,7 @@ }, "end": { "line": 20, - "column": 21, + "column": 20, "program": "override.ets" } } @@ -980,7 +980,7 @@ }, "end": { "line": 20, - "column": 21, + "column": 20, "program": "override.ets" } } @@ -994,7 +994,7 @@ }, "end": { "line": 20, - "column": 21, + "column": 20, "program": "override.ets" } } @@ -1007,7 +1007,7 @@ }, "end": { "line": 20, - "column": 21, + "column": 20, "program": "override.ets" } } @@ -1046,7 +1046,7 @@ }, "end": { "line": 20, - "column": 29, + "column": 28, "program": "override.ets" } } @@ -1059,7 +1059,7 @@ }, "end": { "line": 20, - "column": 29, + "column": 28, "program": "override.ets" } } @@ -1073,7 +1073,7 @@ }, "end": { "line": 20, - "column": 29, + "column": 28, "program": "override.ets" } } @@ -1086,7 +1086,7 @@ }, "end": { "line": 20, - "column": 29, + "column": 28, "program": "override.ets" } } @@ -1121,7 +1121,7 @@ }, "end": { "line": 20, - "column": 34, + "column": 32, "program": "override.ets" } } @@ -1134,7 +1134,7 @@ }, "end": { "line": 20, - "column": 34, + "column": 32, "program": "override.ets" } } diff --git a/ets2panda/test/parser/ets/overrideStaticFunc-expected.txt b/ets2panda/test/parser/ets/overrideStaticFunc-expected.txt index 01d3b387bae7c3faac2170034ec0588f41264e36..17f88feab830348814304a53b55447d690a6aeba 100644 --- a/ets2panda/test/parser/ets/overrideStaticFunc-expected.txt +++ b/ets2panda/test/parser/ets/overrideStaticFunc-expected.txt @@ -326,7 +326,7 @@ }, "end": { "line": 20, - "column": 24, + "column": 22, "program": "overrideStaticFunc.ets" } } @@ -339,7 +339,7 @@ }, "end": { "line": 20, - "column": 24, + "column": 22, "program": "overrideStaticFunc.ets" } } @@ -764,8 +764,8 @@ "program": "overrideStaticFunc.ets" }, "end": { - "line": 27, - "column": 1, + "line": 26, + "column": 2, "program": "overrideStaticFunc.ets" } } diff --git a/ets2panda/test/parser/ets/promiseCasting-expected.txt b/ets2panda/test/parser/ets/promiseCasting-expected.txt index 88fe68f0e75585e760eb9d98f2439c11de7730a5..0e73a6591c2c610d523760184c9d839bb8f73443 100644 --- a/ets2panda/test/parser/ets/promiseCasting-expected.txt +++ b/ets2panda/test/parser/ets/promiseCasting-expected.txt @@ -747,7 +747,7 @@ }, "end": { "line": 23, - "column": 27, + "column": 25, "program": "promiseCasting.ets" } } @@ -760,7 +760,7 @@ }, "end": { "line": 23, - "column": 27, + "column": 25, "program": "promiseCasting.ets" } } @@ -2960,7 +2960,7 @@ }, "end": { "line": 42, - "column": 35, + "column": 34, "program": "promiseCasting.ets" } } @@ -2973,7 +2973,7 @@ }, "end": { "line": 42, - "column": 35, + "column": 34, "program": "promiseCasting.ets" } } @@ -3333,7 +3333,7 @@ }, "end": { "line": 44, - "column": 27, + "column": 26, "program": "promiseCasting.ets" } } @@ -3346,7 +3346,7 @@ }, "end": { "line": 44, - "column": 27, + "column": 26, "program": "promiseCasting.ets" } } @@ -3431,7 +3431,7 @@ }, "end": { "line": 44, - "column": 43, + "column": 42, "program": "promiseCasting.ets" } } @@ -3444,7 +3444,7 @@ }, "end": { "line": 44, - "column": 43, + "column": 42, "program": "promiseCasting.ets" } } @@ -3457,7 +3457,7 @@ }, "end": { "line": 44, - "column": 43, + "column": 42, "program": "promiseCasting.ets" } } @@ -3896,7 +3896,7 @@ }, "end": { "line": 49, - "column": 34, + "column": 33, "program": "promiseCasting.ets" } } @@ -3909,7 +3909,7 @@ }, "end": { "line": 49, - "column": 34, + "column": 33, "program": "promiseCasting.ets" } } @@ -3936,7 +3936,7 @@ }, "end": { "line": 49, - "column": 35, + "column": 34, "program": "promiseCasting.ets" } } @@ -3949,7 +3949,7 @@ }, "end": { "line": 49, - "column": 35, + "column": 34, "program": "promiseCasting.ets" } } diff --git a/ets2panda/test/parser/ets/proxyVoidGeneration-expected.txt b/ets2panda/test/parser/ets/proxyVoidGeneration-expected.txt index 8e802f9dc06892b6b8cb2c6dba044a3d7533c670..1649a66b5b74b9dbe88a83001cf89e7b89004e4b 100644 --- a/ets2panda/test/parser/ets/proxyVoidGeneration-expected.txt +++ b/ets2panda/test/parser/ets/proxyVoidGeneration-expected.txt @@ -110,7 +110,7 @@ }, "end": { "line": 17, - "column": 24, + "column": 23, "program": "proxyVoidGeneration.ets" } } @@ -123,7 +123,7 @@ }, "end": { "line": 17, - "column": 24, + "column": 23, "program": "proxyVoidGeneration.ets" } } @@ -243,7 +243,7 @@ }, "end": { "line": 17, - "column": 24, + "column": 23, "program": "proxyVoidGeneration.ets" } } @@ -256,7 +256,7 @@ }, "end": { "line": 17, - "column": 24, + "column": 23, "program": "proxyVoidGeneration.ets" } } @@ -422,7 +422,7 @@ }, "end": { "line": 17, - "column": 24, + "column": 23, "program": "proxyVoidGeneration.ets" } } @@ -435,7 +435,7 @@ }, "end": { "line": 17, - "column": 24, + "column": 23, "program": "proxyVoidGeneration.ets" } } @@ -813,7 +813,7 @@ }, "end": { "line": 18, - "column": 27, + "column": 26, "program": "proxyVoidGeneration.ets" } } @@ -826,7 +826,7 @@ }, "end": { "line": 18, - "column": 27, + "column": 26, "program": "proxyVoidGeneration.ets" } } @@ -840,7 +840,7 @@ }, "end": { "line": 18, - "column": 27, + "column": 26, "program": "proxyVoidGeneration.ets" } } @@ -853,7 +853,7 @@ }, "end": { "line": 18, - "column": 27, + "column": 26, "program": "proxyVoidGeneration.ets" } } diff --git a/ets2panda/test/parser/ets/proxy_method-expected.txt b/ets2panda/test/parser/ets/proxy_method-expected.txt index 390eb558a4cd9f9aacb3638bc7c63186b21b38d2..53ab7e7d040a40103f71905bdeb92ebd77d733f0 100644 --- a/ets2panda/test/parser/ets/proxy_method-expected.txt +++ b/ets2panda/test/parser/ets/proxy_method-expected.txt @@ -107,7 +107,7 @@ }, "end": { "line": 17, - "column": 19, + "column": 18, "program": "proxy_method.ets" } } @@ -120,7 +120,7 @@ }, "end": { "line": 17, - "column": 19, + "column": 18, "program": "proxy_method.ets" } } @@ -134,7 +134,7 @@ }, "end": { "line": 17, - "column": 19, + "column": 18, "program": "proxy_method.ets" } } @@ -147,7 +147,7 @@ }, "end": { "line": 17, - "column": 19, + "column": 18, "program": "proxy_method.ets" } } @@ -186,7 +186,7 @@ }, "end": { "line": 17, - "column": 31, + "column": 30, "program": "proxy_method.ets" } } @@ -199,7 +199,7 @@ }, "end": { "line": 17, - "column": 31, + "column": 30, "program": "proxy_method.ets" } } @@ -213,7 +213,7 @@ }, "end": { "line": 17, - "column": 31, + "column": 30, "program": "proxy_method.ets" } } @@ -226,7 +226,7 @@ }, "end": { "line": 17, - "column": 31, + "column": 30, "program": "proxy_method.ets" } } @@ -925,7 +925,7 @@ }, "end": { "line": 23, - "column": 11, + "column": 10, "program": "proxy_method.ets" } } @@ -938,7 +938,7 @@ }, "end": { "line": 23, - "column": 11, + "column": 10, "program": "proxy_method.ets" } } diff --git a/ets2panda/test/parser/ets/re_export/diamond/A-expected.txt b/ets2panda/test/parser/ets/re_export/diamond/A-expected.txt index 2fca16dd7e70cfa625c1b79bc03edd83fc49363b..ce40b8d6429ad7365886c5b2c3bf4156419c34fd 100644 --- a/ets2panda/test/parser/ets/re_export/diamond/A-expected.txt +++ b/ets2panda/test/parser/ets/re_export/diamond/A-expected.txt @@ -355,7 +355,7 @@ }, "end": { "line": 16, - "column": 25, + "column": 23, "program": "A.ets" } } @@ -368,7 +368,7 @@ }, "end": { "line": 16, - "column": 25, + "column": 23, "program": "A.ets" } } diff --git a/ets2panda/test/parser/ets/re_export/folderIndex2/key-expected.txt b/ets2panda/test/parser/ets/re_export/folderIndex2/key-expected.txt index ce641d8b5c84227d786692f1829fdb681d2c0f32..ad704e60b9afaf7caef10fdc3c123e6ac8a0dc3f 100644 --- a/ets2panda/test/parser/ets/re_export/folderIndex2/key-expected.txt +++ b/ets2panda/test/parser/ets/re_export/folderIndex2/key-expected.txt @@ -94,7 +94,7 @@ }, "end": { "line": 17, - "column": 18, + "column": 16, "program": "key.ets" } } @@ -107,7 +107,7 @@ }, "end": { "line": 17, - "column": 18, + "column": 16, "program": "key.ets" } } @@ -352,7 +352,7 @@ }, "end": { "line": 20, - "column": 18, + "column": 16, "program": "key.ets" } } @@ -365,7 +365,7 @@ }, "end": { "line": 20, - "column": 18, + "column": 16, "program": "key.ets" } } diff --git a/ets2panda/test/parser/ets/re_export/folderIndex2/type-expected.txt b/ets2panda/test/parser/ets/re_export/folderIndex2/type-expected.txt index 5771878865279937af6600a202052a000b945892..2a14c9734cd1b92e0b2d42debe4d95f7c696584b 100644 --- a/ets2panda/test/parser/ets/re_export/folderIndex2/type-expected.txt +++ b/ets2panda/test/parser/ets/re_export/folderIndex2/type-expected.txt @@ -48,8 +48,8 @@ "program": "type.ets" }, "end": { - "line": 17, - "column": 1, + "line": 16, + "column": 27, "program": "type.ets" } } @@ -61,8 +61,8 @@ "program": "type.ets" }, "end": { - "line": 17, - "column": 1, + "line": 16, + "column": 27, "program": "type.ets" } } diff --git a/ets2panda/test/parser/ets/regression-target-type-context-expected.txt b/ets2panda/test/parser/ets/regression-target-type-context-expected.txt index 0f1eaa4f325c6a505d948563f8078a629b2362c6..9161ff1accd3fa83481dbaf031d67a8bcd58487f 100644 --- a/ets2panda/test/parser/ets/regression-target-type-context-expected.txt +++ b/ets2panda/test/parser/ets/regression-target-type-context-expected.txt @@ -1802,7 +1802,7 @@ }, "end": { "line": 33, - "column": 24, + "column": 22, "program": "regression-target-type-context.ets" } } @@ -1815,7 +1815,7 @@ }, "end": { "line": 33, - "column": 24, + "column": 22, "program": "regression-target-type-context.ets" } } @@ -1856,7 +1856,7 @@ }, "end": { "line": 34, - "column": 18, + "column": 17, "program": "regression-target-type-context.ets" } } @@ -1869,7 +1869,7 @@ }, "end": { "line": 34, - "column": 18, + "column": 17, "program": "regression-target-type-context.ets" } } @@ -2254,7 +2254,7 @@ }, "end": { "line": 39, - "column": 26, + "column": 24, "program": "regression-target-type-context.ets" } } @@ -2267,7 +2267,7 @@ }, "end": { "line": 39, - "column": 26, + "column": 24, "program": "regression-target-type-context.ets" } } @@ -2317,7 +2317,7 @@ }, "end": { "line": 39, - "column": 35, + "column": 34, "program": "regression-target-type-context.ets" } } @@ -2330,7 +2330,7 @@ }, "end": { "line": 39, - "column": 35, + "column": 34, "program": "regression-target-type-context.ets" } } diff --git a/ets2panda/test/parser/ets/returnNullableFromFunction-expected.txt b/ets2panda/test/parser/ets/returnNullableFromFunction-expected.txt index 09900e0a9388c544e3bd2a36d2346f0b68eb58ab..b3d70cafe6b48c52d8b654ab24ae2d67321f9b32 100644 --- a/ets2panda/test/parser/ets/returnNullableFromFunction-expected.txt +++ b/ets2panda/test/parser/ets/returnNullableFromFunction-expected.txt @@ -469,7 +469,7 @@ }, "end": { "line": 18, - "column": 21, + "column": 19, "program": "returnNullableFromFunction.ets" } } @@ -482,7 +482,7 @@ }, "end": { "line": 18, - "column": 21, + "column": 19, "program": "returnNullableFromFunction.ets" } } @@ -530,7 +530,7 @@ }, "end": { "line": 19, - "column": 17, + "column": 15, "program": "returnNullableFromFunction.ets" } } @@ -543,7 +543,7 @@ }, "end": { "line": 19, - "column": 17, + "column": 15, "program": "returnNullableFromFunction.ets" } } @@ -622,7 +622,7 @@ }, "end": { "line": 19, - "column": 31, + "column": 30, "program": "returnNullableFromFunction.ets" } } @@ -635,7 +635,7 @@ }, "end": { "line": 19, - "column": 31, + "column": 30, "program": "returnNullableFromFunction.ets" } } diff --git a/ets2panda/test/parser/ets/returnNullableFromMethod-expected.txt b/ets2panda/test/parser/ets/returnNullableFromMethod-expected.txt index 2daf1fa1abb27b2b1b4329000f36fbaa9b71ef02..ecf7fce930d061128949b774699b3f5a665f5f59 100644 --- a/ets2panda/test/parser/ets/returnNullableFromMethod-expected.txt +++ b/ets2panda/test/parser/ets/returnNullableFromMethod-expected.txt @@ -102,7 +102,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 14, "program": "returnNullableFromMethod.ets" } } @@ -115,7 +115,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 14, "program": "returnNullableFromMethod.ets" } } @@ -163,7 +163,7 @@ }, "end": { "line": 18, - "column": 21, + "column": 19, "program": "returnNullableFromMethod.ets" } } @@ -176,7 +176,7 @@ }, "end": { "line": 18, - "column": 21, + "column": 19, "program": "returnNullableFromMethod.ets" } } @@ -255,7 +255,7 @@ }, "end": { "line": 18, - "column": 35, + "column": 34, "program": "returnNullableFromMethod.ets" } } @@ -268,7 +268,7 @@ }, "end": { "line": 18, - "column": 35, + "column": 34, "program": "returnNullableFromMethod.ets" } } diff --git a/ets2panda/test/parser/ets/static_function_override_1-expected.txt b/ets2panda/test/parser/ets/static_function_override_1-expected.txt index 967c5d9a6ab41cc8e0207133f38c0efdc6d7b718..ee28cd5722f1dcd425f24247648f5191280b479c 100644 --- a/ets2panda/test/parser/ets/static_function_override_1-expected.txt +++ b/ets2panda/test/parser/ets/static_function_override_1-expected.txt @@ -326,7 +326,7 @@ }, "end": { "line": 20, - "column": 30, + "column": 28, "program": "static_function_override_1.ets" } } @@ -339,7 +339,7 @@ }, "end": { "line": 20, - "column": 30, + "column": 28, "program": "static_function_override_1.ets" } } diff --git a/ets2panda/test/parser/ets/static_function_override_2-expected.txt b/ets2panda/test/parser/ets/static_function_override_2-expected.txt index 754bc9aedad7bdb37e6c255258722bc5c21781b3..984303723e614da48167d398f911e4ba381cdf4b 100644 --- a/ets2panda/test/parser/ets/static_function_override_2-expected.txt +++ b/ets2panda/test/parser/ets/static_function_override_2-expected.txt @@ -326,7 +326,7 @@ }, "end": { "line": 20, - "column": 30, + "column": 28, "program": "static_function_override_2.ets" } } @@ -339,7 +339,7 @@ }, "end": { "line": 20, - "column": 30, + "column": 28, "program": "static_function_override_2.ets" } } diff --git a/ets2panda/test/parser/ets/static_function_override_3-expected.txt b/ets2panda/test/parser/ets/static_function_override_3-expected.txt index 7b7a04aceaa77f12209041bbf471f080cebf4fab..dc1ba36f83cce9c1c5828cda58ae65a9cd1c52b7 100644 --- a/ets2panda/test/parser/ets/static_function_override_3-expected.txt +++ b/ets2panda/test/parser/ets/static_function_override_3-expected.txt @@ -326,7 +326,7 @@ }, "end": { "line": 20, - "column": 30, + "column": 28, "program": "static_function_override_3.ets" } } @@ -339,7 +339,7 @@ }, "end": { "line": 20, - "column": 30, + "column": 28, "program": "static_function_override_3.ets" } } diff --git a/ets2panda/test/parser/ets/string-expected.txt b/ets2panda/test/parser/ets/string-expected.txt index dfd562defe4806934e5348a8fbe1bb81ac6c6d1e..af0026148ed1392011ded4bab60c6e8d9a7244b1 100644 --- a/ets2panda/test/parser/ets/string-expected.txt +++ b/ets2panda/test/parser/ets/string-expected.txt @@ -419,7 +419,7 @@ }, "end": { "line": 16, - "column": 16, + "column": 14, "program": "string.ets" } } @@ -432,7 +432,7 @@ }, "end": { "line": 16, - "column": 16, + "column": 14, "program": "string.ets" } } @@ -506,7 +506,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 14, "program": "string.ets" } } @@ -519,7 +519,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 14, "program": "string.ets" } } diff --git a/ets2panda/test/parser/ets/switch-expected.txt b/ets2panda/test/parser/ets/switch-expected.txt index a0f6801d625edea5a8614015236c0029d1787024..b5c108708d68384d1154e3ba9e14702bc86be82a 100644 --- a/ets2panda/test/parser/ets/switch-expected.txt +++ b/ets2panda/test/parser/ets/switch-expected.txt @@ -234,7 +234,7 @@ }, "end": { "line": 18, - "column": 21, + "column": 19, "program": "switch.ets" } } @@ -247,7 +247,7 @@ }, "end": { "line": 18, - "column": 21, + "column": 19, "program": "switch.ets" } } @@ -347,7 +347,7 @@ }, "end": { "line": 19, - "column": 21, + "column": 20, "program": "switch.ets" } } @@ -360,7 +360,7 @@ }, "end": { "line": 19, - "column": 21, + "column": 20, "program": "switch.ets" } } diff --git a/ets2panda/test/parser/ets/test-type-alias-call1-expected.txt b/ets2panda/test/parser/ets/test-type-alias-call1-expected.txt index 061cc69b2d40201bb22af485aba2b039b8d19bd8..8d201c05fbfc0c38a3e592ba5286f878de9939b5 100644 --- a/ets2panda/test/parser/ets/test-type-alias-call1-expected.txt +++ b/ets2panda/test/parser/ets/test-type-alias-call1-expected.txt @@ -320,7 +320,7 @@ }, "end": { "line": 18, - "column": 32, + "column": 30, "program": "test-type-alias-call1.ets" } } @@ -333,7 +333,7 @@ }, "end": { "line": 18, - "column": 32, + "column": 30, "program": "test-type-alias-call1.ets" } } diff --git a/ets2panda/test/parser/ets/test-type-alias-call2-expected.txt b/ets2panda/test/parser/ets/test-type-alias-call2-expected.txt index 7803685eb2d19e4220cf13bc211a0fe9c253cded..676a454c5cf46f005c575a23d828f464adcdc16b 100644 --- a/ets2panda/test/parser/ets/test-type-alias-call2-expected.txt +++ b/ets2panda/test/parser/ets/test-type-alias-call2-expected.txt @@ -159,8 +159,8 @@ "program": "test-type-alias-call2.ets" }, "end": { - "line": 18, - "column": 5, + "line": 17, + "column": 20, "program": "test-type-alias-call2.ets" } } @@ -172,8 +172,8 @@ "program": "test-type-alias-call2.ets" }, "end": { - "line": 18, - "column": 5, + "line": 17, + "column": 20, "program": "test-type-alias-call2.ets" } } @@ -238,8 +238,8 @@ "program": "test-type-alias-call2.ets" }, "end": { - "line": 19, - "column": 6, + "line": 18, + "column": 23, "program": "test-type-alias-call2.ets" } } @@ -251,8 +251,8 @@ "program": "test-type-alias-call2.ets" }, "end": { - "line": 19, - "column": 6, + "line": 18, + "column": 23, "program": "test-type-alias-call2.ets" } } @@ -478,7 +478,7 @@ }, "end": { "line": 20, - "column": 32, + "column": 30, "program": "test-type-alias-call2.ets" } } @@ -491,7 +491,7 @@ }, "end": { "line": 20, - "column": 32, + "column": 30, "program": "test-type-alias-call2.ets" } } diff --git a/ets2panda/test/parser/ets/test-type-alias-call3-expected.txt b/ets2panda/test/parser/ets/test-type-alias-call3-expected.txt index 9fa5ef92a9465ec1423e8bd358d9affe50db842f..2ac7a431a22c4699a97b7071a5967a69885b5c65 100644 --- a/ets2panda/test/parser/ets/test-type-alias-call3-expected.txt +++ b/ets2panda/test/parser/ets/test-type-alias-call3-expected.txt @@ -320,7 +320,7 @@ }, "end": { "line": 18, - "column": 39, + "column": 37, "program": "test-type-alias-call3.ets" } } @@ -333,7 +333,7 @@ }, "end": { "line": 18, - "column": 39, + "column": 37, "program": "test-type-alias-call3.ets" } } diff --git a/ets2panda/test/parser/ets/test-type-alias-call4-expected.txt b/ets2panda/test/parser/ets/test-type-alias-call4-expected.txt index ec2d94e349cfa4c2dddb27303c1755ba5b9c3bf7..aff79b879e481b31e8fde823d5ee2763bd9151c3 100644 --- a/ets2panda/test/parser/ets/test-type-alias-call4-expected.txt +++ b/ets2panda/test/parser/ets/test-type-alias-call4-expected.txt @@ -320,7 +320,7 @@ }, "end": { "line": 18, - "column": 39, + "column": 37, "program": "test-type-alias-call4.ets" } } @@ -333,7 +333,7 @@ }, "end": { "line": 18, - "column": 39, + "column": 37, "program": "test-type-alias-call4.ets" } } diff --git a/ets2panda/test/parser/ets/test-type-alias-call5-expected.txt b/ets2panda/test/parser/ets/test-type-alias-call5-expected.txt index 3df9383402669f7712f43f0830befbc9f45f843e..e92ec1841d93ef72f461b8b9ef60661b1b33b351 100644 --- a/ets2panda/test/parser/ets/test-type-alias-call5-expected.txt +++ b/ets2panda/test/parser/ets/test-type-alias-call5-expected.txt @@ -159,8 +159,8 @@ "program": "test-type-alias-call5.ets" }, "end": { - "line": 18, - "column": 5, + "line": 17, + "column": 20, "program": "test-type-alias-call5.ets" } } @@ -172,8 +172,8 @@ "program": "test-type-alias-call5.ets" }, "end": { - "line": 18, - "column": 5, + "line": 17, + "column": 20, "program": "test-type-alias-call5.ets" } } @@ -242,7 +242,7 @@ }, "end": { "line": 18, - "column": 24, + "column": 22, "program": "test-type-alias-call5.ets" } } @@ -255,7 +255,7 @@ }, "end": { "line": 18, - "column": 24, + "column": 22, "program": "test-type-alias-call5.ets" } } @@ -289,7 +289,7 @@ }, "end": { "line": 18, - "column": 32, + "column": 31, "program": "test-type-alias-call5.ets" } } @@ -302,7 +302,7 @@ }, "end": { "line": 18, - "column": 32, + "column": 31, "program": "test-type-alias-call5.ets" } } @@ -316,7 +316,7 @@ }, "end": { "line": 18, - "column": 32, + "column": 31, "program": "test-type-alias-call5.ets" } } @@ -542,7 +542,7 @@ }, "end": { "line": 21, - "column": 32, + "column": 30, "program": "test-type-alias-call5.ets" } } @@ -555,7 +555,7 @@ }, "end": { "line": 21, - "column": 32, + "column": 30, "program": "test-type-alias-call5.ets" } } diff --git a/ets2panda/test/parser/ets/test-type-alias-call6-expected.txt b/ets2panda/test/parser/ets/test-type-alias-call6-expected.txt index 5c7aeb173201417e94eb386881288a63ec077395..10b2e7ed98ecb0308c1011942ae348be7d9d179e 100644 --- a/ets2panda/test/parser/ets/test-type-alias-call6-expected.txt +++ b/ets2panda/test/parser/ets/test-type-alias-call6-expected.txt @@ -160,7 +160,7 @@ }, "end": { "line": 17, - "column": 21, + "column": 20, "program": "test-type-alias-call6.ets" } } @@ -173,7 +173,7 @@ }, "end": { "line": 17, - "column": 21, + "column": 20, "program": "test-type-alias-call6.ets" } } @@ -242,7 +242,7 @@ }, "end": { "line": 18, - "column": 21, + "column": 19, "program": "test-type-alias-call6.ets" } } @@ -255,7 +255,7 @@ }, "end": { "line": 18, - "column": 21, + "column": 19, "program": "test-type-alias-call6.ets" } } @@ -289,7 +289,7 @@ }, "end": { "line": 18, - "column": 29, + "column": 28, "program": "test-type-alias-call6.ets" } } @@ -302,7 +302,7 @@ }, "end": { "line": 18, - "column": 29, + "column": 28, "program": "test-type-alias-call6.ets" } } @@ -316,7 +316,7 @@ }, "end": { "line": 18, - "column": 29, + "column": 28, "program": "test-type-alias-call6.ets" } } @@ -382,7 +382,7 @@ }, "end": { "line": 19, - "column": 23, + "column": 22, "program": "test-type-alias-call6.ets" } } @@ -395,7 +395,7 @@ }, "end": { "line": 19, - "column": 23, + "column": 22, "program": "test-type-alias-call6.ets" } } @@ -621,7 +621,7 @@ }, "end": { "line": 22, - "column": 32, + "column": 30, "program": "test-type-alias-call6.ets" } } @@ -634,7 +634,7 @@ }, "end": { "line": 22, - "column": 32, + "column": 30, "program": "test-type-alias-call6.ets" } } diff --git a/ets2panda/test/parser/ets/test-type-alias-call8-expected.txt b/ets2panda/test/parser/ets/test-type-alias-call8-expected.txt index 1a69254b0987e22c4ad50183584720bc378598e5..bba9fd66af720a6c1f989b1d1dc852ec1aeca75e 100644 --- a/ets2panda/test/parser/ets/test-type-alias-call8-expected.txt +++ b/ets2panda/test/parser/ets/test-type-alias-call8-expected.txt @@ -291,7 +291,7 @@ }, "end": { "line": 19, - "column": 32, + "column": 30, "program": "test-type-alias-call8.ets" } } @@ -304,7 +304,7 @@ }, "end": { "line": 19, - "column": 32, + "column": 30, "program": "test-type-alias-call8.ets" } } diff --git a/ets2panda/test/parser/ets/test_interface-expected.txt b/ets2panda/test/parser/ets/test_interface-expected.txt index 468c8379b8115b03781f333f007fbb53e58c253b..e47cff979a58bfcad67b8bf740ee9bb99f085150 100644 --- a/ets2panda/test/parser/ets/test_interface-expected.txt +++ b/ets2panda/test/parser/ets/test_interface-expected.txt @@ -78,7 +78,7 @@ }, "end": { "line": 19, - "column": 13, + "column": 12, "program": "test_interface.ets" } } @@ -91,7 +91,7 @@ }, "end": { "line": 19, - "column": 13, + "column": 12, "program": "test_interface.ets" } } @@ -202,7 +202,7 @@ }, "end": { "line": 19, - "column": 13, + "column": 12, "program": "test_interface.ets" } } @@ -215,7 +215,7 @@ }, "end": { "line": 19, - "column": 13, + "column": 12, "program": "test_interface.ets" } } @@ -230,7 +230,7 @@ }, "end": { "line": 19, - "column": 13, + "column": 12, "program": "test_interface.ets" } } @@ -245,7 +245,7 @@ }, "end": { "line": 19, - "column": 13, + "column": 12, "program": "test_interface.ets" } } @@ -322,7 +322,7 @@ }, "end": { "line": 20, - "column": 17, + "column": 16, "program": "test_interface.ets" } } @@ -335,7 +335,7 @@ }, "end": { "line": 20, - "column": 17, + "column": 16, "program": "test_interface.ets" } } @@ -446,7 +446,7 @@ }, "end": { "line": 20, - "column": 17, + "column": 16, "program": "test_interface.ets" } } @@ -459,7 +459,7 @@ }, "end": { "line": 20, - "column": 17, + "column": 16, "program": "test_interface.ets" } } @@ -474,7 +474,7 @@ }, "end": { "line": 20, - "column": 17, + "column": 16, "program": "test_interface.ets" } } @@ -489,7 +489,7 @@ }, "end": { "line": 20, - "column": 17, + "column": 16, "program": "test_interface.ets" } } @@ -977,8 +977,8 @@ "program": "test_interface.ets" }, "end": { - "line": 27, - "column": 1, + "line": 26, + "column": 2, "program": "test_interface.ets" } } diff --git a/ets2panda/test/parser/ets/test_jsvalue-expected.txt b/ets2panda/test/parser/ets/test_jsvalue-expected.txt index 11a038c8238f7c53182f5153f68c88f870dcbbaa..8c7f12f1933e029f17d1d9b0a102cea394414839 100644 --- a/ets2panda/test/parser/ets/test_jsvalue-expected.txt +++ b/ets2panda/test/parser/ets/test_jsvalue-expected.txt @@ -290,7 +290,7 @@ }, "end": { "line": 16, - "column": 16, + "column": 15, "program": "test_jsvalue.ets" } } @@ -303,7 +303,7 @@ }, "end": { "line": 16, - "column": 16, + "column": 15, "program": "test_jsvalue.ets" } } diff --git a/ets2panda/test/parser/ets/test_type_alias8-expected.txt b/ets2panda/test/parser/ets/test_type_alias8-expected.txt index d9f05d631b9f0977f825fd6519fdbf011dddbc60..aead5804535c5a991bf334ac69d370bb4a2d5893 100644 --- a/ets2panda/test/parser/ets/test_type_alias8-expected.txt +++ b/ets2panda/test/parser/ets/test_type_alias8-expected.txt @@ -49,7 +49,7 @@ }, "end": { "line": 16, - "column": 20, + "column": 19, "program": "test_type_alias8.ets" } } @@ -62,7 +62,7 @@ }, "end": { "line": 16, - "column": 20, + "column": 19, "program": "test_type_alias8.ets" } } @@ -292,7 +292,7 @@ }, "end": { "line": 18, - "column": 24, + "column": 23, "program": "test_type_alias8.ets" } } @@ -305,7 +305,7 @@ }, "end": { "line": 18, - "column": 24, + "column": 23, "program": "test_type_alias8.ets" } } @@ -319,7 +319,7 @@ }, "end": { "line": 18, - "column": 24, + "column": 23, "program": "test_type_alias8.ets" } } @@ -332,7 +332,7 @@ }, "end": { "line": 18, - "column": 24, + "column": 23, "program": "test_type_alias8.ets" } } @@ -493,7 +493,7 @@ }, "end": { "line": 21, - "column": 22, + "column": 21, "program": "test_type_alias8.ets" } } @@ -506,7 +506,7 @@ }, "end": { "line": 21, - "column": 22, + "column": 21, "program": "test_type_alias8.ets" } } @@ -520,7 +520,7 @@ }, "end": { "line": 21, - "column": 22, + "column": 21, "program": "test_type_alias8.ets" } } @@ -533,7 +533,7 @@ }, "end": { "line": 21, - "column": 22, + "column": 21, "program": "test_type_alias8.ets" } } @@ -715,7 +715,7 @@ }, "end": { "line": 25, - "column": 18, + "column": 16, "program": "test_type_alias8.ets" } } @@ -728,7 +728,7 @@ }, "end": { "line": 25, - "column": 18, + "column": 16, "program": "test_type_alias8.ets" } } @@ -828,7 +828,7 @@ }, "end": { "line": 26, - "column": 20, + "column": 18, "program": "test_type_alias8.ets" } } @@ -841,7 +841,7 @@ }, "end": { "line": 26, - "column": 20, + "column": 18, "program": "test_type_alias8.ets" } } diff --git a/ets2panda/test/parser/ets/test_type_alias9-expected.txt b/ets2panda/test/parser/ets/test_type_alias9-expected.txt index f400a943746e18a1e6e86b57fd9ce103354b5fb2..16f592d9f0e1b6252b8c04cd9dcec918ad13e9e4 100644 --- a/ets2panda/test/parser/ets/test_type_alias9-expected.txt +++ b/ets2panda/test/parser/ets/test_type_alias9-expected.txt @@ -772,7 +772,7 @@ }, "end": { "line": 19, - "column": 13, + "column": 11, "program": "test_type_alias9.ets" } } @@ -785,7 +785,7 @@ }, "end": { "line": 19, - "column": 13, + "column": 11, "program": "test_type_alias9.ets" } } @@ -859,7 +859,7 @@ }, "end": { "line": 20, - "column": 16, + "column": 14, "program": "test_type_alias9.ets" } } @@ -872,7 +872,7 @@ }, "end": { "line": 20, - "column": 16, + "column": 14, "program": "test_type_alias9.ets" } } diff --git a/ets2panda/test/parser/ets/this_callee-expected.txt b/ets2panda/test/parser/ets/this_callee-expected.txt index 73f868f452f85dffc6f0c23f8b328382d84be4e9..b9fe8475723b7e959912487ef01bcc63c04a2fe7 100644 --- a/ets2panda/test/parser/ets/this_callee-expected.txt +++ b/ets2panda/test/parser/ets/this_callee-expected.txt @@ -102,7 +102,7 @@ }, "end": { "line": 17, - "column": 22, + "column": 20, "program": "this_callee.ets" } } @@ -115,7 +115,7 @@ }, "end": { "line": 17, - "column": 22, + "column": 20, "program": "this_callee.ets" } } @@ -358,7 +358,7 @@ }, "end": { "line": 21, - "column": 21, + "column": 20, "program": "this_callee.ets" } } @@ -371,7 +371,7 @@ }, "end": { "line": 21, - "column": 21, + "column": 20, "program": "this_callee.ets" } } @@ -385,7 +385,7 @@ }, "end": { "line": 21, - "column": 21, + "column": 20, "program": "this_callee.ets" } } @@ -398,7 +398,7 @@ }, "end": { "line": 21, - "column": 21, + "column": 20, "program": "this_callee.ets" } } @@ -433,7 +433,7 @@ }, "end": { "line": 21, - "column": 28, + "column": 26, "program": "this_callee.ets" } } @@ -446,7 +446,7 @@ }, "end": { "line": 21, - "column": 28, + "column": 26, "program": "this_callee.ets" } } @@ -619,7 +619,7 @@ }, "end": { "line": 25, - "column": 23, + "column": 21, "program": "this_callee.ets" } } @@ -632,7 +632,7 @@ }, "end": { "line": 25, - "column": 23, + "column": 21, "program": "this_callee.ets" } } @@ -891,7 +891,7 @@ }, "end": { "line": 29, - "column": 22, + "column": 21, "program": "this_callee.ets" } } @@ -904,7 +904,7 @@ }, "end": { "line": 29, - "column": 22, + "column": 21, "program": "this_callee.ets" } } @@ -918,7 +918,7 @@ }, "end": { "line": 29, - "column": 22, + "column": 21, "program": "this_callee.ets" } } @@ -931,7 +931,7 @@ }, "end": { "line": 29, - "column": 22, + "column": 21, "program": "this_callee.ets" } } @@ -1013,7 +1013,7 @@ }, "end": { "line": 29, - "column": 37, + "column": 35, "program": "this_callee.ets" } } @@ -1026,7 +1026,7 @@ }, "end": { "line": 29, - "column": 37, + "column": 35, "program": "this_callee.ets" } } diff --git a/ets2panda/test/parser/ets/this_cmp_object-expected.txt b/ets2panda/test/parser/ets/this_cmp_object-expected.txt index a4284a90a5df3876b7dc19bb97989113eb0d4ec3..38f5b46dd943770ec41adc102a8161207d747176 100644 --- a/ets2panda/test/parser/ets/this_cmp_object-expected.txt +++ b/ets2panda/test/parser/ets/this_cmp_object-expected.txt @@ -128,7 +128,7 @@ }, "end": { "line": 18, - "column": 25, + "column": 23, "program": "this_cmp_object.ets" } } @@ -141,7 +141,7 @@ }, "end": { "line": 18, - "column": 25, + "column": 23, "program": "this_cmp_object.ets" } } diff --git a/ets2panda/test/parser/ets/trailing_lambda_tests/trailing_lambda_overload_1-expected.txt b/ets2panda/test/parser/ets/trailing_lambda_tests/trailing_lambda_overload_1-expected.txt index b5301d33980153b9c5098f93fc2f9ae6a89c63b8..84531f90b2f0e22b9ea5bd38fba38ccf6aac10ff 100644 --- a/ets2panda/test/parser/ets/trailing_lambda_tests/trailing_lambda_overload_1-expected.txt +++ b/ets2panda/test/parser/ets/trailing_lambda_tests/trailing_lambda_overload_1-expected.txt @@ -221,7 +221,7 @@ }, "end": { "line": 16, - "column": 29, + "column": 28, "program": "trailing_lambda_overload_1.ets" } } @@ -234,7 +234,7 @@ }, "end": { "line": 16, - "column": 29, + "column": 28, "program": "trailing_lambda_overload_1.ets" } } @@ -248,7 +248,7 @@ }, "end": { "line": 16, - "column": 29, + "column": 28, "program": "trailing_lambda_overload_1.ets" } } @@ -261,7 +261,7 @@ }, "end": { "line": 16, - "column": 29, + "column": 28, "program": "trailing_lambda_overload_1.ets" } } diff --git a/ets2panda/test/parser/ets/trailing_lambda_tests/trailing_lambda_type_alias-expected.txt b/ets2panda/test/parser/ets/trailing_lambda_tests/trailing_lambda_type_alias-expected.txt index 975d122ed436d35003e58f7674b08f40bbdffc18..f566ff434f22b418b10afc4f58fbdc90ef1594ce 100644 --- a/ets2panda/test/parser/ets/trailing_lambda_tests/trailing_lambda_type_alias-expected.txt +++ b/ets2panda/test/parser/ets/trailing_lambda_tests/trailing_lambda_type_alias-expected.txt @@ -276,7 +276,7 @@ }, "end": { "line": 18, - "column": 23, + "column": 22, "program": "trailing_lambda_type_alias.ets" } } @@ -289,7 +289,7 @@ }, "end": { "line": 18, - "column": 23, + "column": 22, "program": "trailing_lambda_type_alias.ets" } } @@ -303,7 +303,7 @@ }, "end": { "line": 18, - "column": 23, + "column": 22, "program": "trailing_lambda_type_alias.ets" } } @@ -316,7 +316,7 @@ }, "end": { "line": 18, - "column": 23, + "column": 22, "program": "trailing_lambda_type_alias.ets" } } diff --git a/ets2panda/test/parser/ets/tupleAsTypeParam1-expected.txt b/ets2panda/test/parser/ets/tupleAsTypeParam1-expected.txt index 9d0c979f2ca2c9fc77b74ca34445d91a7784f570..389237f5c8fef573c1f892dc126d384dfdd3746f 100644 --- a/ets2panda/test/parser/ets/tupleAsTypeParam1-expected.txt +++ b/ets2panda/test/parser/ets/tupleAsTypeParam1-expected.txt @@ -427,7 +427,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 14, "program": "tupleAsTypeParam1.ets" } } @@ -440,7 +440,7 @@ }, "end": { "line": 17, - "column": 16, + "column": 14, "program": "tupleAsTypeParam1.ets" } } @@ -684,7 +684,7 @@ }, "end": { "line": 21, - "column": 23, + "column": 22, "program": "tupleAsTypeParam1.ets" } } @@ -697,7 +697,7 @@ }, "end": { "line": 21, - "column": 23, + "column": 22, "program": "tupleAsTypeParam1.ets" } } @@ -731,7 +731,7 @@ }, "end": { "line": 21, - "column": 31, + "column": 30, "program": "tupleAsTypeParam1.ets" } } @@ -744,7 +744,7 @@ }, "end": { "line": 21, - "column": 31, + "column": 30, "program": "tupleAsTypeParam1.ets" } } @@ -894,7 +894,7 @@ }, "end": { "line": 22, - "column": 24, + "column": 23, "program": "tupleAsTypeParam1.ets" } } @@ -907,7 +907,7 @@ }, "end": { "line": 22, - "column": 24, + "column": 23, "program": "tupleAsTypeParam1.ets" } } @@ -941,7 +941,7 @@ }, "end": { "line": 22, - "column": 32, + "column": 31, "program": "tupleAsTypeParam1.ets" } } @@ -954,7 +954,7 @@ }, "end": { "line": 22, - "column": 32, + "column": 31, "program": "tupleAsTypeParam1.ets" } } @@ -1174,7 +1174,7 @@ }, "end": { "line": 23, - "column": 17, + "column": 16, "program": "tupleAsTypeParam1.ets" } } @@ -1187,7 +1187,7 @@ }, "end": { "line": 23, - "column": 17, + "column": 16, "program": "tupleAsTypeParam1.ets" } } @@ -1221,7 +1221,7 @@ }, "end": { "line": 23, - "column": 25, + "column": 24, "program": "tupleAsTypeParam1.ets" } } @@ -1234,7 +1234,7 @@ }, "end": { "line": 23, - "column": 25, + "column": 24, "program": "tupleAsTypeParam1.ets" } } diff --git a/ets2panda/test/parser/ets/tupleAsTypeParam2-expected.txt b/ets2panda/test/parser/ets/tupleAsTypeParam2-expected.txt index 0b6ee5fa979d5b9046e8e2f2a7762b55dc589084..d635716289de3161b7bd7042fc50403fac0979de 100644 --- a/ets2panda/test/parser/ets/tupleAsTypeParam2-expected.txt +++ b/ets2panda/test/parser/ets/tupleAsTypeParam2-expected.txt @@ -820,7 +820,7 @@ }, "end": { "line": 24, - "column": 23, + "column": 22, "program": "tupleAsTypeParam2.ets" } } @@ -833,7 +833,7 @@ }, "end": { "line": 24, - "column": 23, + "column": 22, "program": "tupleAsTypeParam2.ets" } } @@ -867,7 +867,7 @@ }, "end": { "line": 24, - "column": 31, + "column": 30, "program": "tupleAsTypeParam2.ets" } } @@ -880,7 +880,7 @@ }, "end": { "line": 24, - "column": 31, + "column": 30, "program": "tupleAsTypeParam2.ets" } } @@ -1030,7 +1030,7 @@ }, "end": { "line": 25, - "column": 24, + "column": 23, "program": "tupleAsTypeParam2.ets" } } @@ -1043,7 +1043,7 @@ }, "end": { "line": 25, - "column": 24, + "column": 23, "program": "tupleAsTypeParam2.ets" } } @@ -1077,7 +1077,7 @@ }, "end": { "line": 25, - "column": 32, + "column": 31, "program": "tupleAsTypeParam2.ets" } } @@ -1090,7 +1090,7 @@ }, "end": { "line": 25, - "column": 32, + "column": 31, "program": "tupleAsTypeParam2.ets" } } @@ -1280,7 +1280,7 @@ }, "end": { "line": 26, - "column": 27, + "column": 26, "program": "tupleAsTypeParam2.ets" } } @@ -1293,7 +1293,7 @@ }, "end": { "line": 26, - "column": 27, + "column": 26, "program": "tupleAsTypeParam2.ets" } } @@ -1327,7 +1327,7 @@ }, "end": { "line": 26, - "column": 35, + "column": 34, "program": "tupleAsTypeParam2.ets" } } @@ -1340,7 +1340,7 @@ }, "end": { "line": 26, - "column": 35, + "column": 34, "program": "tupleAsTypeParam2.ets" } } @@ -1381,7 +1381,7 @@ }, "end": { "line": 26, - "column": 37, + "column": 36, "program": "tupleAsTypeParam2.ets" } } @@ -1394,7 +1394,7 @@ }, "end": { "line": 26, - "column": 37, + "column": 36, "program": "tupleAsTypeParam2.ets" } } diff --git a/ets2panda/test/parser/ets/tupleIndexWithNumbers-expected.txt b/ets2panda/test/parser/ets/tupleIndexWithNumbers-expected.txt index f8561bc609d2ad947542af4c06603b67e6782535..aab3c5af767b75f7ffd2252c954beca7e75ad924 100644 --- a/ets2panda/test/parser/ets/tupleIndexWithNumbers-expected.txt +++ b/ets2panda/test/parser/ets/tupleIndexWithNumbers-expected.txt @@ -379,7 +379,7 @@ }, "end": { "line": 20, - "column": 22, + "column": 21, "program": "tupleIndexWithNumbers.ets" } } @@ -392,7 +392,7 @@ }, "end": { "line": 20, - "column": 22, + "column": 21, "program": "tupleIndexWithNumbers.ets" } } @@ -426,7 +426,7 @@ }, "end": { "line": 20, - "column": 30, + "column": 29, "program": "tupleIndexWithNumbers.ets" } } @@ -439,7 +439,7 @@ }, "end": { "line": 20, - "column": 30, + "column": 29, "program": "tupleIndexWithNumbers.ets" } } diff --git a/ets2panda/test/parser/ets/type_alias_1-expected.txt b/ets2panda/test/parser/ets/type_alias_1-expected.txt index 454187bc1b0b7b106308c4f9147c685b8fa6ce62..7997bdfa5df3e3240c725939e0c1640043515270 100644 --- a/ets2panda/test/parser/ets/type_alias_1-expected.txt +++ b/ets2panda/test/parser/ets/type_alias_1-expected.txt @@ -464,8 +464,8 @@ "program": "type_alias_1.ets" }, "end": { - "line": 19, - "column": 1, + "line": 18, + "column": 19, "program": "type_alias_1.ets" } } @@ -477,8 +477,8 @@ "program": "type_alias_1.ets" }, "end": { - "line": 19, - "column": 1, + "line": 18, + "column": 19, "program": "type_alias_1.ets" } } diff --git a/ets2panda/test/parser/ets/type_variance1-expected.txt b/ets2panda/test/parser/ets/type_variance1-expected.txt index 464a81ec90f921cfa0a75b3eeae6a636190bfb0b..3ec232b6b8618074586a9e38ba9dd12c2e48643d 100644 --- a/ets2panda/test/parser/ets/type_variance1-expected.txt +++ b/ets2panda/test/parser/ets/type_variance1-expected.txt @@ -157,7 +157,7 @@ }, "end": { "line": 17, - "column": 14, + "column": 13, "program": "type_variance1.ets" } } @@ -170,7 +170,7 @@ }, "end": { "line": 17, - "column": 14, + "column": 13, "program": "type_variance1.ets" } } @@ -184,7 +184,7 @@ }, "end": { "line": 17, - "column": 14, + "column": 13, "program": "type_variance1.ets" } } @@ -197,7 +197,7 @@ }, "end": { "line": 17, - "column": 14, + "column": 13, "program": "type_variance1.ets" } } @@ -495,7 +495,7 @@ }, "end": { "line": 23, - "column": 17, + "column": 16, "program": "type_variance1.ets" } } @@ -508,7 +508,7 @@ }, "end": { "line": 23, - "column": 17, + "column": 16, "program": "type_variance1.ets" } } @@ -522,7 +522,7 @@ }, "end": { "line": 23, - "column": 17, + "column": 16, "program": "type_variance1.ets" } } @@ -535,7 +535,7 @@ }, "end": { "line": 23, - "column": 17, + "column": 16, "program": "type_variance1.ets" } } @@ -675,7 +675,7 @@ }, "end": { "line": 24, - "column": 18, + "column": 17, "program": "type_variance1.ets" } } @@ -688,7 +688,7 @@ }, "end": { "line": 24, - "column": 18, + "column": 17, "program": "type_variance1.ets" } } @@ -701,7 +701,7 @@ }, "end": { "line": 24, - "column": 18, + "column": 17, "program": "type_variance1.ets" } } @@ -714,7 +714,7 @@ }, "end": { "line": 24, - "column": 18, + "column": 17, "program": "type_variance1.ets" } } @@ -856,8 +856,8 @@ "program": "type_variance1.ets" }, "end": { - "line": 27, - "column": 6, + "line": 25, + "column": 2, "program": "type_variance1.ets" } } @@ -1094,7 +1094,7 @@ }, "end": { "line": 29, - "column": 60, + "column": 59, "program": "type_variance1.ets" } } @@ -1107,7 +1107,7 @@ }, "end": { "line": 29, - "column": 60, + "column": 59, "program": "type_variance1.ets" } } @@ -1141,7 +1141,7 @@ }, "end": { "line": 29, - "column": 63, + "column": 62, "program": "type_variance1.ets" } } @@ -1154,7 +1154,7 @@ }, "end": { "line": 29, - "column": 63, + "column": 62, "program": "type_variance1.ets" } } @@ -1181,7 +1181,7 @@ }, "end": { "line": 29, - "column": 65, + "column": 63, "program": "type_variance1.ets" } } @@ -1194,7 +1194,7 @@ }, "end": { "line": 29, - "column": 65, + "column": 63, "program": "type_variance1.ets" } } @@ -1297,7 +1297,7 @@ }, "end": { "line": 30, - "column": 23, + "column": 22, "program": "type_variance1.ets" } } @@ -1310,7 +1310,7 @@ }, "end": { "line": 30, - "column": 23, + "column": 22, "program": "type_variance1.ets" } } @@ -1324,7 +1324,7 @@ }, "end": { "line": 30, - "column": 23, + "column": 22, "program": "type_variance1.ets" } } @@ -1337,7 +1337,7 @@ }, "end": { "line": 30, - "column": 23, + "column": 22, "program": "type_variance1.ets" } } @@ -1493,7 +1493,7 @@ }, "end": { "line": 31, - "column": 24, + "column": 22, "program": "type_variance1.ets" } } @@ -1506,7 +1506,7 @@ }, "end": { "line": 31, - "column": 24, + "column": 22, "program": "type_variance1.ets" } } @@ -1547,7 +1547,7 @@ }, "end": { "line": 32, - "column": 22, + "column": 21, "program": "type_variance1.ets" } } @@ -1560,7 +1560,7 @@ }, "end": { "line": 32, - "column": 22, + "column": 21, "program": "type_variance1.ets" } } @@ -2396,7 +2396,7 @@ }, "end": { "line": 20, - "column": 47, + "column": 46, "program": "type_variance1.ets" } } @@ -2409,7 +2409,7 @@ }, "end": { "line": 20, - "column": 47, + "column": 46, "program": "type_variance1.ets" } } @@ -2591,7 +2591,7 @@ }, "end": { "line": 20, - "column": 30, + "column": 28, "program": "type_variance1.ets" } } @@ -2604,7 +2604,7 @@ }, "end": { "line": 20, - "column": 30, + "column": 28, "program": "type_variance1.ets" } } @@ -2752,7 +2752,7 @@ }, "end": { "line": 39, - "column": 24, + "column": 23, "program": "type_variance1.ets" } } @@ -2765,7 +2765,7 @@ }, "end": { "line": 39, - "column": 24, + "column": 23, "program": "type_variance1.ets" } } @@ -2792,7 +2792,7 @@ }, "end": { "line": 39, - "column": 26, + "column": 24, "program": "type_variance1.ets" } } @@ -2805,7 +2805,7 @@ }, "end": { "line": 39, - "column": 26, + "column": 24, "program": "type_variance1.ets" } } @@ -2879,7 +2879,7 @@ }, "end": { "line": 39, - "column": 41, + "column": 40, "program": "type_variance1.ets" } } @@ -2892,7 +2892,7 @@ }, "end": { "line": 39, - "column": 41, + "column": 40, "program": "type_variance1.ets" } } @@ -2919,7 +2919,7 @@ }, "end": { "line": 39, - "column": 42, + "column": 41, "program": "type_variance1.ets" } } @@ -2932,7 +2932,7 @@ }, "end": { "line": 39, - "column": 42, + "column": 41, "program": "type_variance1.ets" } } @@ -3144,7 +3144,7 @@ }, "end": { "line": 40, - "column": 29, + "column": 27, "program": "type_variance1.ets" } } @@ -3157,7 +3157,7 @@ }, "end": { "line": 40, - "column": 29, + "column": 27, "program": "type_variance1.ets" } } @@ -3335,7 +3335,7 @@ }, "end": { "line": 40, - "column": 47, + "column": 46, "program": "type_variance1.ets" } } @@ -3348,7 +3348,7 @@ }, "end": { "line": 40, - "column": 47, + "column": 46, "program": "type_variance1.ets" } } diff --git a/ets2panda/test/parser/ets/undefinedNullObjectTypeAnnotation-expected.txt b/ets2panda/test/parser/ets/undefinedNullObjectTypeAnnotation-expected.txt index 40880a3dc8b2db64822f88f21faf27f7047a39b5..369e0b2918f85b887bac657ff9a21ce7f0014d09 100644 --- a/ets2panda/test/parser/ets/undefinedNullObjectTypeAnnotation-expected.txt +++ b/ets2panda/test/parser/ets/undefinedNullObjectTypeAnnotation-expected.txt @@ -252,7 +252,7 @@ }, "end": { "line": 17, - "column": 41, + "column": 40, "program": "undefinedNullObjectTypeAnnotation.ets" } } @@ -265,7 +265,7 @@ }, "end": { "line": 17, - "column": 41, + "column": 40, "program": "undefinedNullObjectTypeAnnotation.ets" } } @@ -279,7 +279,7 @@ }, "end": { "line": 17, - "column": 41, + "column": 40, "program": "undefinedNullObjectTypeAnnotation.ets" } } @@ -508,7 +508,7 @@ }, "end": { "line": 20, - "column": 22, + "column": 21, "program": "undefinedNullObjectTypeAnnotation.ets" } } @@ -521,7 +521,7 @@ }, "end": { "line": 20, - "column": 22, + "column": 21, "program": "undefinedNullObjectTypeAnnotation.ets" } } diff --git a/ets2panda/test/parser/ets/union_lowering_common_property-expected.txt b/ets2panda/test/parser/ets/union_lowering_common_property-expected.txt index c44d4ec5519aaf6a844c6a4c22c12f2b52f3fe3e..c7b44b5d8a07d23a1a4a8956223cfe094560a82b 100644 --- a/ets2panda/test/parser/ets/union_lowering_common_property-expected.txt +++ b/ets2panda/test/parser/ets/union_lowering_common_property-expected.txt @@ -94,7 +94,7 @@ }, "end": { "line": 17, - "column": 21, + "column": 19, "program": "union_lowering_common_property.ets" } } @@ -107,7 +107,7 @@ }, "end": { "line": 17, - "column": 21, + "column": 19, "program": "union_lowering_common_property.ets" } } @@ -352,7 +352,7 @@ }, "end": { "line": 21, - "column": 21, + "column": 19, "program": "union_lowering_common_property.ets" } } @@ -365,7 +365,7 @@ }, "end": { "line": 21, - "column": 21, + "column": 19, "program": "union_lowering_common_property.ets" } } @@ -568,7 +568,7 @@ }, "end": { "line": 24, - "column": 17, + "column": 15, "program": "union_lowering_common_property.ets" } } @@ -581,7 +581,7 @@ }, "end": { "line": 24, - "column": 17, + "column": 15, "program": "union_lowering_common_property.ets" } } @@ -615,7 +615,7 @@ }, "end": { "line": 24, - "column": 20, + "column": 19, "program": "union_lowering_common_property.ets" } } @@ -628,7 +628,7 @@ }, "end": { "line": 24, - "column": 20, + "column": 19, "program": "union_lowering_common_property.ets" } } @@ -642,7 +642,7 @@ }, "end": { "line": 24, - "column": 20, + "column": 19, "program": "union_lowering_common_property.ets" } } @@ -1027,7 +1027,7 @@ }, "end": { "line": 27, - "column": 29, + "column": 28, "program": "union_lowering_common_property.ets" } } @@ -1040,7 +1040,7 @@ }, "end": { "line": 27, - "column": 29, + "column": 28, "program": "union_lowering_common_property.ets" } } @@ -1054,7 +1054,7 @@ }, "end": { "line": 27, - "column": 29, + "column": 28, "program": "union_lowering_common_property.ets" } } @@ -1067,7 +1067,7 @@ }, "end": { "line": 27, - "column": 29, + "column": 28, "program": "union_lowering_common_property.ets" } } @@ -1102,7 +1102,7 @@ }, "end": { "line": 27, - "column": 41, + "column": 38, "program": "union_lowering_common_property.ets" } } @@ -1115,7 +1115,7 @@ }, "end": { "line": 27, - "column": 41, + "column": 38, "program": "union_lowering_common_property.ets" } } diff --git a/ets2panda/test/parser/ets/user_defined_22-expected.txt b/ets2panda/test/parser/ets/user_defined_22-expected.txt index 75ff8d54310230b2a405fdc19ff82f983c2bd74e..b62ff44fcc43e1cf049096623fe52c2a3269eac5 100644 --- a/ets2panda/test/parser/ets/user_defined_22-expected.txt +++ b/ets2panda/test/parser/ets/user_defined_22-expected.txt @@ -94,7 +94,7 @@ }, "end": { "line": 17, - "column": 17, + "column": 15, "program": "user_defined_22.ets" } } @@ -107,7 +107,7 @@ }, "end": { "line": 17, - "column": 17, + "column": 15, "program": "user_defined_22.ets" } } @@ -306,8 +306,8 @@ "program": "user_defined_22.ets" }, "end": { - "line": 20, - "column": 4, + "line": 19, + "column": 16, "program": "user_defined_22.ets" } } @@ -319,8 +319,8 @@ "program": "user_defined_22.ets" }, "end": { - "line": 20, - "column": 4, + "line": 19, + "column": 16, "program": "user_defined_22.ets" } } @@ -571,8 +571,8 @@ "program": "user_defined_22.ets" }, "end": { - "line": 21, - "column": 2, + "line": 20, + "column": 14, "program": "user_defined_22.ets" } } @@ -584,8 +584,8 @@ "program": "user_defined_22.ets" }, "end": { - "line": 21, - "column": 2, + "line": 20, + "column": 14, "program": "user_defined_22.ets" } } @@ -864,8 +864,8 @@ "program": "user_defined_22.ets" }, "end": { - "line": 21, - "column": 2, + "line": 20, + "column": 14, "program": "user_defined_22.ets" } } @@ -877,8 +877,8 @@ "program": "user_defined_22.ets" }, "end": { - "line": 21, - "column": 2, + "line": 20, + "column": 14, "program": "user_defined_22.ets" } } @@ -972,7 +972,7 @@ }, "end": { "line": 22, - "column": 11, + "column": 9, "program": "user_defined_22.ets" } } @@ -985,7 +985,7 @@ }, "end": { "line": 22, - "column": 11, + "column": 9, "program": "user_defined_22.ets" } } diff --git a/ets2panda/test/runtime/ets/first_match/super_call.ets b/ets2panda/test/runtime/ets/first_match/super_call.ets new file mode 100644 index 0000000000000000000000000000000000000000..78c093873d9586e0bfa1b904e080e281b572f0a0 --- /dev/null +++ b/ets2panda/test/runtime/ets/first_match/super_call.ets @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +class MyArray { + public pushArray(...val: T[]): string { + return "invoke1"; + } + + public pushOne(val: T): string { + return "invoke2"; + } + overload push{ pushOne, pushArray } +} + +class MySubArray extends MyArray { + override pushArray(...val: T[]): string { + return super.push(...val); + } + + override pushOne(val: T): string { + return super.push(val); + } +} + +function main() { + let test = new MySubArray(); + arktest.assertEQ(test.push(1), "invoke2") + arktest.assertEQ(test.push(1, 2, 3), "invoke1") +} diff --git a/ets2panda/test/runtime/ets/first_match/this_call.ets b/ets2panda/test/runtime/ets/first_match/this_call.ets new file mode 100644 index 0000000000000000000000000000000000000000..7c3fb505cbc961fc534a8ad420342c3ead74c71e --- /dev/null +++ b/ets2panda/test/runtime/ets/first_match/this_call.ets @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +class MyArray { + public pushArray(...val: T[]): string { + return "invoke1"; + } + + public pushOne(val: T): string { + return "invoke2"; + } + overload push{ pushOne, pushArray } + + public testThisCall1(val: T){ + return this.push(val); + } + + public testThisCall2(...val: T[]){ + return this.push(...val); + } +} + +function main() { + let test = new MyArray(); + arktest.assertEQ(test.testThisCall1(1), "invoke2"); + arktest.assertEQ(test.testThisCall2(1, 2, 3), "invoke1"); +} diff --git a/ets2panda/test/ast/parser/ets/user_defined_26.ets b/ets2panda/test/runtime/ets/functionTypeParam.ets similarity index 89% rename from ets2panda/test/ast/parser/ets/user_defined_26.ets rename to ets2panda/test/runtime/ets/functionTypeParam.ets index 19aeb05f0b5911ee21e006696ae7fbd91d55c24d..c4aff06bb5588c176a7978fcecd7eb394b8a07ae 100644 --- a/ets2panda/test/ast/parser/ets/user_defined_26.ets +++ b/ets2panda/test/runtime/ets/functionTypeParam.ets @@ -13,6 +13,6 @@ * limitations under the License. */ -class instanceof{ - a : string = "15"; +function f1 number]>(p: T): T { + return p; } diff --git a/ets2panda/test/ast/parser/ets/user_defined_27.ets b/ets2panda/test/runtime/ets/partialTypeParameterParamInfer.ets similarity index 77% rename from ets2panda/test/ast/parser/ets/user_defined_27.ets rename to ets2panda/test/runtime/ets/partialTypeParameterParamInfer.ets index 73cfa2236bcae2dfc1bc2a9ce90e035ce31852a7..584c22927831dee79d4e21b17581997fa46a65f6 100644 --- a/ets2panda/test/ast/parser/ets/user_defined_27.ets +++ b/ets2panda/test/runtime/ets/partialTypeParameterParamInfer.ets @@ -13,8 +13,10 @@ * limitations under the License. */ -struct instanceof{ - a : string = "15"; -} +class Base {} + +function foo(arg: Partial): void {} -/* @@? 16:1 Error TypeError: Structs are only used to define UI components, it should be translated at 'plugin after parser' phase. */ +function main() { + foo(new Partial()) +} diff --git a/ets2panda/test/runtime/ets/too_many_call_expr.ets b/ets2panda/test/runtime/ets/too_many_call_expr.ets new file mode 100644 index 0000000000000000000000000000000000000000..2d7a56f7dc9ad88577fe084931beadb92c6aec7a --- /dev/null +++ b/ets2panda/test/runtime/ets/too_many_call_expr.ets @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/*--- + tags: [compile-only, negative] +---*/ + +// This test cannot moved to astchecker, because this will lead python JSON parse error: +// Failed with maximum recursion depth exceeded while decoding a JSON object from a unicode string + +a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a(c(a(a(a(a(a(a(a(a(a(a(a( diff --git a/ets2panda/test/test-lists/declgenets2ts/ets-runtime/declgen-ets2ts-runtime-ignored.txt b/ets2panda/test/test-lists/declgenets2ts/ets-runtime/declgen-ets2ts-runtime-ignored.txt index 0bbbfcb47aee8637b2b8969e08db50dc170aa6c9..e708505448af97d5afc0c22dba13e0be14c00dab 100644 --- a/ets2panda/test/test-lists/declgenets2ts/ets-runtime/declgen-ets2ts-runtime-ignored.txt +++ b/ets2panda/test/test-lists/declgenets2ts/ets-runtime/declgen-ets2ts-runtime-ignored.txt @@ -2,8 +2,9 @@ lambda_with_receiver/lambda_with_receiver_generics_return_this.ets first_match/ctor_need_fix_bytecode.ets overload_declaration/constructor_overload_sig_with_ref_type.ets -#FailKind.ABORT_FAIL - 1 tests: +#FailKind.ABORT_FAIL - 2 tests: type_param_in_union.ets +mypackage/implicit_package_import_2.ets #FailKind.TSC_FAIL - 21 tests: ClassNewInstance.ets Enum7.ets diff --git a/ets2panda/test/test-lists/srcdumper/srcdumper-ets-ignored.txt b/ets2panda/test/test-lists/srcdumper/srcdumper-ets-ignored.txt index a219d198eaf7e2cdd960d42d88c283143efb7063..f5fe4c2c8dcc93da3f2c5ed39c51b547bcb37e09 100644 --- a/ets2panda/test/test-lists/srcdumper/srcdumper-ets-ignored.txt +++ b/ets2panda/test/test-lists/srcdumper/srcdumper-ets-ignored.txt @@ -40,6 +40,7 @@ runtime/ets/type_param_in_union.ets runtime/ets/StringFasta.ets runtime/ets/struct-identifier.ets runtime/ets/struct-init2.ets +runtime/ets/too_many_call_expr.ets runtime/ets/too_many_async.ets runtime/ets/too_many_await.ets runtime/ets/too_many_left_brace.ets diff --git a/ets2panda/test/unit/declgen/CMakeLists.txt b/ets2panda/test/unit/declgen/CMakeLists.txt index 37a9cc4496602a461275cc95dfa8360f69b0d5f3..1e0cab0b035f78f620b5cfed4e1864175eb6d50c 100644 --- a/ets2panda/test/unit/declgen/CMakeLists.txt +++ b/ets2panda/test/unit/declgen/CMakeLists.txt @@ -43,7 +43,6 @@ foreach(TEST_DATA IN ITEMS ${DECLGEN_PLUGIN_TESTS}) panda_target_include_directories(${TEST_NAME} PRIVATE ${ES2PANDA_PATH} - PRIVATE ${PANDA_ROOT}/libpandafile PRIVATE ${PANDA_ROOT}/assembler PRIVATE ${OUTPUT_DIR} PUBLIC ${CMAKE_CURRENT_BINARY_DIR} @@ -51,7 +50,6 @@ foreach(TEST_DATA IN ITEMS ${DECLGEN_PLUGIN_TESTS}) PUBLIC ${CMAKE_SOURCE_DIR}/libpandabase PUBLIC ${CMAKE_SOURCE_DIR}/runtime PUBLIC ${CMAKE_BINARY_DIR}/libpandabase - PUBLIC ${CMAKE_BINARY_DIR}/libpandafile/include ${CMAKE_BINARY_DIR} ) panda_target_link_libraries(${TEST_NAME} es2panda-public arkassembler arkbase arkfile) diff --git a/ets2panda/test/unit/declgen/test_ets2ts_isolated_declgen.cpp b/ets2panda/test/unit/declgen/test_ets2ts_isolated_declgen.cpp index 8cb169287b75912e5e550b4c69bde35999274b05..a2049a3800f5ca30420c1480774859e57712ea74 100644 --- a/ets2panda/test/unit/declgen/test_ets2ts_isolated_declgen.cpp +++ b/ets2panda/test/unit/declgen/test_ets2ts_isolated_declgen.cpp @@ -49,7 +49,7 @@ int main(int argc, char **argv) impl->ProceedToState(context, ES2PANDA_STATE_CHECKED); CheckForErrors("CHECKED", context); std::string declName = GetDeclPrefix(argv[argc - 1]) + ".d.ets"; - int result = impl->GenerateTsDeclarationsFromContext(context, declName.c_str(), "dump.ets", false, true); + int result = impl->GenerateTsDeclarationsFromContext(context, declName.c_str(), "dump.ets", false, true, ""); if (result != 0) { std::cerr << "FAILED TO GENERATE DECLARATIONS" << std::endl; return result; diff --git a/ets2panda/test/unit/lsp/CMakeLists.txt b/ets2panda/test/unit/lsp/CMakeLists.txt index 2685091caed403f884f7d66c6f53113ccc4e53b2..279b931263d95f28729e4646091fc0ff449d5f29 100644 --- a/ets2panda/test/unit/lsp/CMakeLists.txt +++ b/ets2panda/test/unit/lsp/CMakeLists.txt @@ -214,7 +214,7 @@ ets2panda_add_gtest(lsp_api_test_find_rename_locations CPP_SOURCES ets2panda_add_gtest(lsp_api_test_fix_expected_comma CPP_SOURCES fix_expected_comma_test.cpp - ) +) ets2panda_add_gtest(lsp_api_test_change_tracker CPP_SOURCES change_tracker_test.cpp @@ -259,6 +259,9 @@ ets2panda_add_gtest(lsp_api_test_offset CPP_SOURCES ets2panda_add_gtest(lsp_api_test_code_fix_registration CPP_SOURCES code_fix_registration_test.cpp ) +ets2panda_add_gtest(lsp_api_test_super_must_precede_this CPP_SOURCES + fix_class_super_must_precede_this_access_test.cpp +) ets2panda_add_gtest(lsp_api_test_fix_return_type_in_async_func CPP_SOURCES fix_return_type_in_async_function_test.cpp @@ -267,7 +270,9 @@ ets2panda_add_gtest(lsp_api_test_fix_return_type_in_async_func CPP_SOURCES ets2panda_add_gtest(lsp_api_test_fix_abstract_member CPP_SOURCES fix_class_doesnt_implement_inherited_abstract_member_test.cpp ) - +ets2panda_add_gtest(lsp_api_test_fix_add_function_return_statement_test CPP_SOURCES + fix_add_function_return_statement_test.cpp +) ets2panda_add_gtest(lsp_api_test_get_name_or_dotted_name_span CPP_SOURCES get_name_or_dotted_name_span_test.cpp ) @@ -276,14 +281,22 @@ ets2panda_add_gtest(lsp_api_test_fix_convert_const_to_let CPP_SOURCES fix_convert_const_to_let_test.cpp ) +ets2panda_add_gtest(lsp_api_test_fix_extends_interface_becomes_implements CPP_SOURCES + fix_extends_interface_becomes_implements_test.cpp +) + ets2panda_add_gtest(lsp_api_test_forgotten_this_property_access CPP_SOURCES forgotten_this_property_access_test.cpp ) - ets2panda_add_gtest(lsp_api_test_remove_accidental_call_parentheses CPP_SOURCES +ets2panda_add_gtest(lsp_api_test_remove_accidental_call_parentheses CPP_SOURCES remove_accidental_call_parentheses_test.cpp - ) +) ets2panda_add_gtest(lsp_api_add_missing_new_operator CPP_SOURCES add_missing_new_operator_test.cpp -) \ No newline at end of file +) + +ets2panda_add_gtest(lsp_get_import_file_path_test CPP_SOURCES + get_import_file_path_test.cpp +) diff --git a/ets2panda/test/unit/lsp/class_hierarchys_test.cpp b/ets2panda/test/unit/lsp/class_hierarchys_test.cpp index ac83082e0822cd5d6e302ff7e8b0d63dddeea0ad..5d796331b134ec9f648b36f24fbd09dc38652ef2 100644 --- a/ets2panda/test/unit/lsp/class_hierarchys_test.cpp +++ b/ets2panda/test/unit/lsp/class_hierarchys_test.cpp @@ -166,8 +166,8 @@ TEST_F(LspClassHierarchiesTests, GetClassHierarchiesImpl_002) TEST_F(LspClassHierarchiesTests, GetClassHierarchiesImpl_003) { - constexpr size_t expectedInfoCount = 12; - constexpr size_t tokenOffset = 100; + constexpr size_t expectedInfoCount = 7; + constexpr size_t tokenOffset = 101; // Note: here will get interface decl: `Iaaa` std::vector fileNames = {"GetClassHierarchiesImpl_003_file1.ets"}; diff --git a/ets2panda/test/unit/lsp/code_fix/ui_plugin_suggest.cpp b/ets2panda/test/unit/lsp/code_fix/ui_plugin_suggest.cpp index c049aa00f9bf6300a799b1f84128c66f7a69bdf3..f03f8e4ac5d5375ea5364cf24ffb4e5a8f83517b 100644 --- a/ets2panda/test/unit/lsp/code_fix/ui_plugin_suggest.cpp +++ b/ets2panda/test/unit/lsp/code_fix/ui_plugin_suggest.cpp @@ -179,4 +179,55 @@ TEST_F(LspUISuggestionTests, UIPluginsErrorTest3) initializer.DestroyContext(ctx); } +TEST_F(LspUISuggestionTests, UIPluginsErrorTest4) +{ + using ark::es2panda::ir::AstNode; + using ark::es2panda::public_lib::Context; + Initializer initializer = Initializer(); + std::vector files = {"ui_error1.ets"}; + std::vector texts = {R"delimiter(function main() { return 1 })delimiter"}; + auto filePaths = CreateTempFile(files, texts); + auto ctx = initializer.CreateContext(filePaths[0].c_str(), ES2PANDA_STATE_CHECKED); + LSPAPI const *lspApi = GetImpl(); + int const offset = 9; + // NOLINTNEXTLINE + const char *params[] = { + "a", + }; + const char *dmessage1 = "origin {}"; + const size_t argc1 = 1; + const char *substitutionCode = "replace b"; + const char *dmessage2 = "error"; + const size_t argc0 = 0; + const size_t index1 = 16; // suggestion left + const size_t line1 = 0; + const size_t index2 = 27; // suggestion right + const size_t line2 = 0; + const size_t index3 = 9; // diag pos + const size_t line3 = 0; + const size_t index4 = 9; // diag right virtual + const int code = 4000; + auto suggestionkind = initializer.CreateDiagnosticKind(ctx, dmessage1, ES2PANDA_PLUGIN_SUGGESTION); + auto diagnostikind = initializer.CreateDiagnosticKind(ctx, dmessage2, ES2PANDA_PLUGIN_ERROR); + es2panda_SourcePosition *left = initializer.CreateSourcePosition(ctx, index1, line1); + es2panda_SourcePosition *right = initializer.CreateSourcePosition(ctx, index2, line2); + es2panda_SourcePosition *diagPos = initializer.CreateSourcePosition(ctx, index3, line3); + es2panda_SourceRange *range = initializer.CreateSourceRange(ctx, left, right); + auto suggestionInfo = initializer.CreateSuggestionInfo(ctx, suggestionkind, params, argc1, substitutionCode, range); + auto diagnosticInfo = initializer.CreateDiagnosticInfo(ctx, diagnostikind, nullptr, argc0, diagPos); + initializer.LogDiagnosticWithSuggestion(ctx, diagnosticInfo, suggestionInfo); + auto suggest = lspApi->getSyntacticDiagnostics(ctx); + AssertDiagnosticContainsCodeAndMessage(suggest, code, dmessage2); + auto result = ark::es2panda::lsp::UIPluginSuggest::GetUIPluginCodeFixes(ctx, offset, false); + ASSERT_EQ(result.at(0).textChanges.at(0).newText, substitutionCode); + std::vector codes; + codes.emplace_back(code); + CodeFixOptions emptyOptions; + auto fix = ark::es2panda::lsp::GetCodeFixesAtPositionImpl(ctx, index3, index4, codes, emptyOptions); + ASSERT_EQ(fix.at(0).changes_.at(0).textChanges.at(0).newText, substitutionCode); + ASSERT_EQ(fix.at(0).changes_.at(0).textChanges.at(0).span.length, index2 - index1); + + initializer.DestroyContext(ctx); +} + } // namespace diff --git a/ets2panda/test/unit/lsp/fix_add_function_return_statement_test.cpp b/ets2panda/test/unit/lsp/fix_add_function_return_statement_test.cpp new file mode 100644 index 0000000000000000000000000000000000000000..1fe8540a8ae853336cd6bdb06cd9159e05b94e23 --- /dev/null +++ b/ets2panda/test/unit/lsp/fix_add_function_return_statement_test.cpp @@ -0,0 +1,99 @@ +/** + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at* + * + * http://www.apache.org/licenses/LICENSE-2.0* + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include "gtest/gtest.h" +#include "lsp_api_test.h" +#include +#include +#include "lsp/include/register_code_fix/fix_add_function_return_statement.h" + +namespace { +class FixAddFunctionReturnStatementTests : public LSPAPITests {}; + +TEST_F(FixAddFunctionReturnStatementTests, AddMissingReturnStatement_GetInfo) +{ + const char *source = R"( +function multiply(a: number, b: number): number { +a * b; +} + )"; + ark::es2panda::lsp::Initializer initializer = ark::es2panda::lsp::Initializer(); + es2panda_Context *ctx = + initializer.CreateContext("AddMissingReturnStatement_GetInfo.ets", ES2PANDA_STATE_CHECKED, source); + const size_t position = 20; // Position of the function body start + const auto wordA = "a"; + const auto wordB = "b"; + const auto wordNum = "number"; + auto info = ark::es2panda::lsp::GetInfo(ctx, position); + const auto type = info.GetStatements().at(0)->AsExpressionStatement()->GetExpression()->Type(); + EXPECT_EQ(type, ark::es2panda::ir::AstNodeType::BINARY_EXPRESSION); + const auto left = + info.GetStatements().at(0)->AsExpressionStatement()->GetExpression()->AsBinaryExpression()->Left()->ToString(); + EXPECT_EQ(left, wordA); + const auto right = + info.GetStatements().at(0)->AsExpressionStatement()->GetExpression()->AsBinaryExpression()->Right()->ToString(); + EXPECT_EQ(right, wordB); + const auto returnTypeNode = info.GetReturnTypeNode()->AsETSTypeReference()->BaseName()->Name(); + EXPECT_EQ(returnTypeNode, wordNum); + initializer.DestroyContext(ctx); +} + +TEST_F(FixAddFunctionReturnStatementTests, AddMissingReturnStatement_ReplaceReturnType) +{ + const char *source = R"( +function multiply(a: number, b: number): string { +a; +} + )"; + ark::es2panda::lsp::Initializer initializer = ark::es2panda::lsp::Initializer(); + es2panda_Context *ctx = initializer.CreateContext("test1.ets", ES2PANDA_STATE_CHECKED, source); + const size_t position = 20; // Position of the function body start + const size_t size1 = 1; + auto info = ark::es2panda::lsp::GetInfo(ctx, position); + EXPECT_TRUE(info.GetReturnTypeNode()->IsETSTypeReference()); + ark::es2panda::lsp::FormatCodeSettings settings; + auto formatContext = ark::es2panda::lsp::GetFormatContext(settings); + TextChangesContext changeText {{}, formatContext, {}}; + ark::es2panda::lsp::ChangeTracker tracker = ark::es2panda::lsp::ChangeTracker::FromContext(changeText); + ark::es2panda::lsp::ReplaceReturnType(tracker, ctx, info); + auto changes = tracker.GetChangeList(); + EXPECT_EQ(changes.size(), size1); + initializer.DestroyContext(ctx); +} + +TEST_F(FixAddFunctionReturnStatementTests, AddMissingReturnStatement_AddReturnStatement) +{ + const char *source = R"( +function multiply(a: number, b: number): string { +a; +} + )"; + ark::es2panda::lsp::Initializer initializer = ark::es2panda::lsp::Initializer(); + es2panda_Context *ctx = + initializer.CreateContext("AddMissingReturnStatement_AddReturnStatement.ets", ES2PANDA_STATE_CHECKED, source); + const size_t position = 20; // Position of the function body start + const size_t size1 = 1; + auto info = ark::es2panda::lsp::GetInfo(ctx, position); + EXPECT_TRUE(info.GetReturnTypeNode()->IsETSTypeReference()); + ark::es2panda::lsp::FormatCodeSettings settings; + auto formatContext = ark::es2panda::lsp::GetFormatContext(settings); + TextChangesContext changeText {{}, formatContext, {}}; + ark::es2panda::lsp::ChangeTracker tracker = ark::es2panda::lsp::ChangeTracker::FromContext(changeText); + ark::es2panda::lsp::AddReturnStatement(tracker, ctx, info.GetStatements(), info.GetBody()); + auto changes = tracker.GetChangeList(); + EXPECT_EQ(changes.size(), size1); + initializer.DestroyContext(ctx); +} + +} // namespace \ No newline at end of file diff --git a/ets2panda/test/unit/lsp/fix_class_super_must_precede_this_access_test.cpp b/ets2panda/test/unit/lsp/fix_class_super_must_precede_this_access_test.cpp new file mode 100644 index 0000000000000000000000000000000000000000..1edee77cce5e84fe6ae13773724ca2dd0d400af0 --- /dev/null +++ b/ets2panda/test/unit/lsp/fix_class_super_must_precede_this_access_test.cpp @@ -0,0 +1,122 @@ +/** + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "lsp_api_test.h" + +#include + +#include "lsp/include/api.h" +#include "lsp/include/cancellation_token.h" +#include "lsp/include/register_code_fix/fix_class_super_must_precede_this_access.h" + +namespace { + +using ark::es2panda::lsp::Initializer; +using ark::es2panda::lsp::codefixes::CLASS_SUPER_MUST_PRECEDE_THIS_ACCESS; + +constexpr std::string_view EXPECTED_FIX_NAME = CLASS_SUPER_MUST_PRECEDE_THIS_ACCESS.GetFixId(); +constexpr auto ERROR_CODES = CLASS_SUPER_MUST_PRECEDE_THIS_ACCESS.GetSupportedCodeNumbers(); +constexpr std::string_view EXPECTED_FIX_DESCRIPTION = "Fix 'super' access before 'this'"; +constexpr size_t ERROR_LINE = 8; +constexpr size_t ERROR_COLUMN = 9; +constexpr size_t ERROR_LENGTH = 4; +constexpr std::string_view EXPECTED_INSERTED_TEXT = "super(name)"; +constexpr size_t EXPECTED_INSERT_POS = 126; +constexpr size_t EXPECTED_INSERT_LENGTH = 0; + +constexpr size_t EXPECTED_DELETE_POS = 147; +constexpr size_t EXPECTED_DELETE_LENGTH = 5; +constexpr int DEFAULT_THROTTLE = 20; + +class FixClassSuperMustPrecedeThisAccessTests : public LSPAPITests { +public: + static ark::es2panda::lsp::CancellationToken CreateNonCancellationToken() + { + return ark::es2panda::lsp::CancellationToken(DEFAULT_THROTTLE, &GetNullHost()); + } + + static size_t LineColToPos(es2panda_Context *context, const size_t line, const size_t col) + { + auto ctx = reinterpret_cast(context); + auto index = ark::es2panda::lexer::LineIndex(ctx->parserProgram->SourceCode()); + return index.GetOffset(ark::es2panda::lexer::SourceLocation(line, col, ctx->parserProgram)); + } + +private: + class NullCancellationToken : public ark::es2panda::lsp::HostCancellationToken { + public: + bool IsCancellationRequested() override + { + return false; + } + }; + + static NullCancellationToken &GetNullHost() + { + static NullCancellationToken instance; + return instance; + } +}; + +TEST_F(FixClassSuperMustPrecedeThisAccessTests, TestSuperMustPrecedeThisAccess) +{ + std::vector fileNames = {"TestSuperMustPrecedeThisAccess.ets"}; + std::vector fileContents = {R"( +class Animal { + constructor(public name: string) {} +} + +class Dog extends Animal { + constructor(name: string) { + this.bark(); + super(name); + } + bark() { console.log("Woof!"); } +} +)"}; + + auto filePaths = CreateTempFile(fileNames, fileContents); + ASSERT_EQ(fileNames.size(), filePaths.size()); + + Initializer initializer; + auto *context = initializer.CreateContext(filePaths[0].c_str(), ES2PANDA_STATE_CHECKED); + size_t start = LineColToPos(context, ERROR_LINE, ERROR_COLUMN); + std::vector errorCodes(ERROR_CODES.begin(), ERROR_CODES.end()); + CodeFixOptions emptyOptions = {CreateNonCancellationToken(), ark::es2panda::lsp::FormatCodeSettings(), {}}; + auto fixResult = + ark::es2panda::lsp::GetCodeFixesAtPositionImpl(context, start, start + ERROR_LENGTH, errorCodes, emptyOptions); + int resSize = 1; + int changeSize = 2; + ASSERT_EQ(fixResult.size(), resSize); + const auto &changes = fixResult[0].changes_[0].textChanges; + ASSERT_EQ(changes.size(), changeSize); + auto insertIt = std::find_if(changes.begin(), changes.end(), [](const auto &tc) { return !tc.newText.empty(); }); + auto deleteIt = std::find_if(changes.begin(), changes.end(), [](const auto &tc) { return tc.newText.empty(); }); + + ASSERT_NE(insertIt, changes.end()); + ASSERT_NE(deleteIt, changes.end()); + EXPECT_EQ(insertIt->newText, EXPECTED_INSERTED_TEXT); + EXPECT_EQ(insertIt->span.start, EXPECTED_INSERT_POS); + EXPECT_EQ(insertIt->span.length, EXPECTED_INSERT_LENGTH); + EXPECT_EQ(deleteIt->newText, ""); + EXPECT_EQ(deleteIt->span.start, EXPECTED_DELETE_POS); + EXPECT_EQ(deleteIt->span.length, EXPECTED_DELETE_LENGTH); + ASSERT_EQ(fixResult[0].fixName_, EXPECTED_FIX_NAME); + ASSERT_EQ(fixResult[0].description_, EXPECTED_FIX_DESCRIPTION); + ASSERT_EQ(fixResult[0].changes_[0].fileName, filePaths[0]); + + initializer.DestroyContext(context); +} +} // namespace \ No newline at end of file diff --git a/ets2panda/test/unit/lsp/fix_extends_interface_becomes_implements_test.cpp b/ets2panda/test/unit/lsp/fix_extends_interface_becomes_implements_test.cpp new file mode 100644 index 0000000000000000000000000000000000000000..45caee40fedd4ad2aadc338600b4b5f6a6227d14 --- /dev/null +++ b/ets2panda/test/unit/lsp/fix_extends_interface_becomes_implements_test.cpp @@ -0,0 +1,98 @@ +/** + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "lsp_api_test.h" + +#include + +#include "lsp/include/api.h" +#include "lsp/include/cancellation_token.h" +#include "lsp/include/register_code_fix/fix_extends_interface_becomes_implements.h" + +namespace { + +using ark::es2panda::lsp::Initializer; +using ark::es2panda::lsp::codefixes::EXTENDS_INTERFACE_BECOMES_IMPLEMENTS; + +constexpr std::string_view EXPECTED_FIX_NAME = EXTENDS_INTERFACE_BECOMES_IMPLEMENTS.GetFixId(); +constexpr auto ERROR_CODES = EXTENDS_INTERFACE_BECOMES_IMPLEMENTS.GetSupportedCodeNumbers(); +constexpr std::string_view EXPECTED_FIX_DESCRIPTION = "Change 'extends' to 'implements'"; +constexpr std::string_view EXPECTED_TEXT_CHANGE_NEW_TEXT = "implements"; +constexpr int DEFAULT_THROTTLE = 20; + +class FixExtendsInterfaceBecomesImplementsTests : public LSPAPITests { +public: + static ark::es2panda::lsp::CancellationToken CreateNonCancellationToken() + { + return ark::es2panda::lsp::CancellationToken(DEFAULT_THROTTLE, &GetNullHost()); + } + + static size_t LineColToPos(es2panda_Context *context, const size_t line, const size_t col) + { + auto ctx = reinterpret_cast(context); + auto index = ark::es2panda::lexer::LineIndex(ctx->parserProgram->SourceCode()); + return index.GetOffset(ark::es2panda::lexer::SourceLocation(line, col, ctx->parserProgram)); + } + +private: + class NullCancellationToken : public ark::es2panda::lsp::HostCancellationToken { + public: + bool IsCancellationRequested() override + { + return false; + } + }; + + static NullCancellationToken &GetNullHost() + { + static NullCancellationToken instance; + return instance; + } +}; + +TEST_F(FixExtendsInterfaceBecomesImplementsTests, TestFixExtendsToImplements) +{ + std::vector fileNames = {"FixExtendsToImplements.ets"}; + std::vector fileContents = {R"( +interface IFoo {} +class Bar extends IFoo {} +)"}; + auto filePaths = CreateTempFile(fileNames, fileContents); + ASSERT_EQ(fileNames.size(), filePaths.size()); + + Initializer initializer; + auto *context = initializer.CreateContext(filePaths[0].c_str(), ES2PANDA_STATE_CHECKED); + + const size_t start = LineColToPos(context, 3, 13); // inside "extends" + const size_t length = 1; + + std::vector errorCodes(ERROR_CODES.begin(), ERROR_CODES.end()); + CodeFixOptions emptyOptions = {CreateNonCancellationToken(), ark::es2panda::lsp::FormatCodeSettings(), {}}; + + auto fixResult = + ark::es2panda::lsp::GetCodeFixesAtPositionImpl(context, start, start + length, errorCodes, emptyOptions); + ASSERT_EQ(fixResult.size(), 1); + const auto &textChange = fixResult[0].changes_[0].textChanges[0]; + + EXPECT_EQ(fixResult[0].fixName_, EXPECTED_FIX_NAME); + EXPECT_EQ(fixResult[0].fixId_, EXPECTED_FIX_NAME); + EXPECT_EQ(fixResult[0].description_, EXPECTED_FIX_DESCRIPTION); + EXPECT_EQ(fixResult[0].changes_[0].fileName, filePaths[0]); + EXPECT_EQ(textChange.newText, EXPECTED_TEXT_CHANGE_NEW_TEXT); + + initializer.DestroyContext(context); +} + +} // namespace \ No newline at end of file diff --git a/ets2panda/test/unit/lsp/get_class_property_info_test.cpp b/ets2panda/test/unit/lsp/get_class_property_info_test.cpp index 039281bfc6db5d7408e822bb87d579da42dc822c..4e540e60a0e2e2466f30e7cd082ed3bcd1d78d93 100644 --- a/ets2panda/test/unit/lsp/get_class_property_info_test.cpp +++ b/ets2panda/test/unit/lsp/get_class_property_info_test.cpp @@ -558,7 +558,7 @@ TEST_F(LspGetClassPropertyInfoTests, GetClassPropertyInfoMethod3) } std::vector>> expectedResult4 = { - {"pop", 107, 119, "classField", {"public"}}}; + {"pop", 107, 117, "classField", {"public"}}}; TEST_F(LspGetClassPropertyInfoTests, GetClassPropertyInfoMethod4) { @@ -595,7 +595,7 @@ TEST_F(LspGetClassPropertyInfoTests, GetClassPropertyInfoMethod4) } std::vector>> expectedResult5 = { - {"jkk", 64, 76, "classField", {"public"}}}; + {"jkk", 64, 75, "classField", {"public"}}}; TEST_F(LspGetClassPropertyInfoTests, GetClassPropertyInfoMethod5) { @@ -632,7 +632,7 @@ TEST_F(LspGetClassPropertyInfoTests, GetClassPropertyInfoMethod5) } std::vector>> expectedResult6 = { - {"jkk", 195, 207, "classField", {"public"}}, {"wwa", 210, 222, "classField", {"public"}}}; + {"jkk", 195, 206, "classField", {"public"}}, {"wwa", 210, 221, "classField", {"public"}}}; TEST_F(LspGetClassPropertyInfoTests, GetClassPropertyInfoMethod6) { @@ -669,7 +669,7 @@ TEST_F(LspGetClassPropertyInfoTests, GetClassPropertyInfoMethod6) } std::vector>> expectedResult7 = { - {"test", 14, 27, "classField", {"public"}}}; + {"test", 14, 26, "classField", {"public"}}}; TEST_F(LspGetClassPropertyInfoTests, GetClassPropertyInfoMethod7) { @@ -780,7 +780,7 @@ TEST_F(LspGetClassPropertyInfoTests, GetClassPropertyInfoMethod9) } std::vector>> expectedResult10 = { - {"a", 17, 34, "classField", {"public"}}}; + {"a", 17, 33, "classField", {"public"}}}; TEST_F(LspGetClassPropertyInfoTests, GetClassPropertyInfoMethod10) { @@ -817,7 +817,7 @@ TEST_F(LspGetClassPropertyInfoTests, GetClassPropertyInfoMethod10) } std::vector>> expectedResult11 = { - {"a", 32, 49, "classField", {"public"}}}; + {"a", 32, 48, "classField", {"public"}}}; TEST_F(LspGetClassPropertyInfoTests, GetClassPropertyInfoMethod11) { @@ -893,7 +893,7 @@ TEST_F(LspGetClassPropertyInfoTests, GetClassPropertyInfoMethod12) } std::vector>> expectedResult13 = { - {"aa", 216, 227, "classField", {"public"}}}; + {"aa", 216, 226, "classField", {"public"}}}; TEST_F(LspGetClassPropertyInfoTests, GetClassPropertyInfoMethod13) { @@ -930,7 +930,7 @@ TEST_F(LspGetClassPropertyInfoTests, GetClassPropertyInfoMethod13) } std::vector>> expectedResult14 = { - {"subscriber", 144, 210, "classField", {"public"}}, {"subscribeInfo", 221, 254, "classField", {"public"}}}; + {"subscriber", 144, 210, "classField", {"public"}}, {"subscribeInfo", 221, 253, "classField", {"public"}}}; TEST_F(LspGetClassPropertyInfoTests, GetClassPropertyInfoMethod14) { diff --git a/ets2panda/test/unit/lsp/get_import_file_path_test.cpp b/ets2panda/test/unit/lsp/get_import_file_path_test.cpp new file mode 100644 index 0000000000000000000000000000000000000000..006989b0aa1d46b43693d1e59f421930fba73588 --- /dev/null +++ b/ets2panda/test/unit/lsp/get_import_file_path_test.cpp @@ -0,0 +1,69 @@ +/** + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include "lsp_api_test.h" +#include "lsp/include/internal_api.h" + +namespace { +using ark::es2panda::lsp::Initializer; + +class LspGetImportFilePathTests : public LSPAPITests {}; + +TEST_F(LspGetImportFilePathTests, GetImportFilePath1) +{ + std::vector files = {"GetImportFilePath1.ets", "GetImportFilePath2.ets"}; + std::vector texts = {R"(export function A(a:number, b:number): number { + return a + b; +})", + R"(import {A} from './GetImportFilePath1';)"}; + auto filePaths = CreateTempFile(files, texts); + size_t const expectedFileCount = 2; + ASSERT_EQ(filePaths.size(), expectedFileCount); + + LSPAPI const *lspApi = GetImpl(); + size_t const offset = 22; + Initializer initializer = Initializer(); + auto ctx = initializer.CreateContext(filePaths[1].c_str(), ES2PANDA_STATE_CHECKED); + auto result = lspApi->getDefinitionAtPosition(ctx, offset); + initializer.DestroyContext(ctx); + std::string expectedFileName = filePaths[0]; + size_t const expectedStart = 0; + size_t const expectedLength = 0; + ASSERT_EQ(result.fileName, expectedFileName); + ASSERT_EQ(result.start, expectedStart); + ASSERT_EQ(result.length, expectedLength); +} + +TEST_F(LspGetImportFilePathTests, GetImportFilePath2) +{ + LSPAPI const *lspApi = GetImpl(); + // Test invalid position to avoid segment fault + size_t const offset = 24; + Initializer initializer = Initializer(); + auto ctx = + initializer.CreateContext("invalidPositionTest.ets", ES2PANDA_STATE_CHECKED, "let invalidPositionTest = 0;"); + auto result = lspApi->getDefinitionAtPosition(ctx, offset); + initializer.DestroyContext(ctx); + std::string expectedFileName; + size_t const expectedStart = 0; + size_t const expectedLength = 0; + ASSERT_EQ(result.fileName, expectedFileName); + ASSERT_EQ(result.start, expectedStart); + ASSERT_EQ(result.length, expectedLength); +} +} // namespace \ No newline at end of file diff --git a/ets2panda/test/unit/lsp/inlay_hints_test.cpp b/ets2panda/test/unit/lsp/inlay_hints_test.cpp index dbea5dad245000061fbdbf5c131a358be0d9e847..de404eae342dac6d6b918be5ee93099ae393f955 100644 --- a/ets2panda/test/unit/lsp/inlay_hints_test.cpp +++ b/ets2panda/test/unit/lsp/inlay_hints_test.cpp @@ -162,10 +162,10 @@ TEST_F(LSPInlayHintsTests, VisitFunctionLikeForParameterTypeTest) const std::string voidString = "void"; const std::string numberString = "number"; const std::string stdString = "string"; - const size_t index1 = 32; - const size_t index2 = 43; - const size_t index3 = 127; - const size_t index4 = 140; + const size_t index1 = 31; + const size_t index2 = 42; + const size_t index3 = 126; + const size_t index4 = 139; const size_t i0 = 0; const size_t i1 = 1; const size_t i2 = 2; diff --git a/ets2panda/test/unit/plugin/CMakeLists.txt b/ets2panda/test/unit/plugin/CMakeLists.txt index 477c1a61e2c1530d3e2c1fbc77eafc36ad98a3b4..924f4a35510bc2761678fbcae2b5d87faf8a57d9 100644 --- a/ets2panda/test/unit/plugin/CMakeLists.txt +++ b/ets2panda/test/unit/plugin/CMakeLists.txt @@ -107,6 +107,7 @@ set(PLUGIN_TESTS "plugin_proceed_to_state_log_diagnostic_with_suggestion compile.ets ${COMPILE_MODE} cpp ${EXECUTABLE_PLUGIN}" "use_plugin_to_test_column_number compile.ets ${COMPILE_MODE} cpp ${EXECUTABLE_PLUGIN}" "plugin_proceed_to_state_check_jsdoc compile.ets ${EXPECTED_MODE} cpp ${EXECUTABLE_PLUGIN}" + "plugin_proceed_to_state_parse_and_verifier_position compile.ets ${COMPILE_MODE} cpp ${EXECUTABLE_PLUGIN}" "plugin_proceed_to_state_check_recheck_trailinglambda compile.ets ${COMPILE_MODE} cpp ${EXECUTABLE_PLUGIN}" "plugin_proceed_to_state_test_global_func_call_dump compile.ets ${COMPILE_MODE} cpp ${EXECUTABLE_PLUGIN}" "plugin_proceed_to_state_test_interface_duplicate_setter compile.ets ${COMPILE_MODE} cpp ${EXECUTABLE_PLUGIN}" diff --git a/ets2panda/test/unit/plugin/plugin_proceed_to_state_parse_and_verifier_position.cpp b/ets2panda/test/unit/plugin/plugin_proceed_to_state_parse_and_verifier_position.cpp new file mode 100644 index 0000000000000000000000000000000000000000..664bd9ab176781412b32e12eb78cb87c4b586a6b --- /dev/null +++ b/ets2panda/test/unit/plugin/plugin_proceed_to_state_parse_and_verifier_position.cpp @@ -0,0 +1,560 @@ +/** + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include "public/es2panda_lib.h" +#include "util.h" + +// NOLINTBEGIN +static std::string source = R"( +import { PI, E } from "std/math" + +export declare @interface exportAnno {} + +export declare enum EM1 { + em1Prop1 = 1, + + em1Prop2 = 2 +} + +namespace NS { + export interface innerInterface { + + interfaceFoo1():Array + + interfaceFoo2():void + + private interfaceProp1:number + + interfaceProp2:number | string[] + } + + export class innerClass { + classFoo1():void {} + + private classProp1:number = 0; + } + + namespace InnerNS {} +} + +export declare interface InterfaceOutside { + private interfaceFoo3():number | string[] + + interfaceProp3:number + + interfaceFoo4():void + + interfaceProp4:Array +} + +export class ClassOutside { + build(p3: number) {} + + classFoo2():void {} + + classFoo3():void {} + + public classProp2:number = 0; + + classProp3:number = 0; +} + +function foo( + fooP1: number, + fooP2: string): void {} + +let val:string = "ssss" + +export { ClassOutside, val, foo } + +export { PI, E } from "std/math" + +export NS +)"; + +constexpr size_t NS_START_LINE = 11; +constexpr size_t INNERNS_START_LINE = 29; +constexpr size_t EXPORT_NAMED_DECL_START_LINE = 60; +constexpr size_t EXPORT_SINGLE_NAMED_DECL_START_LINE = 64; +constexpr size_t RE_EXPORT_DECL_START_LINE = 62; +constexpr size_t IMPORT_DECL_START_LINE = 1; +constexpr size_t INNER_INTERFACE_START_LINE = 12; +constexpr size_t INTERFACE_OUTSIDE_START_LINE = 32; +constexpr size_t CLASS_OUTSIDE_START_LINE = 42; +constexpr size_t INNER_CLASS_START_LINE = 23; +constexpr size_t CLASS_PROP1_START_LINE = 26; +constexpr size_t CLASS_PROP2_START_LINE = 49; +constexpr size_t CLASS_PROP3_START_LINE = 51; +constexpr size_t CLASS_FOO1_START_LINE = 24; +constexpr size_t CLASS_FOO2_START_LINE = 45; +constexpr size_t CLASS_FOO3_START_LINE = 47; +constexpr size_t INTERFACE_PROP1_START_LINE = 18; +constexpr size_t INTERFACE_PROP2_START_LINE = 20; +constexpr size_t INTERFACE_PROP3_START_LINE = 35; +constexpr size_t INTERFACE_PROP4_START_LINE = 39; +constexpr size_t INTERFACE_FOO1_START_LINE = 14; +constexpr size_t INTERFACE_FOO2_START_LINE = 16; +constexpr size_t INTERFACE_FOO3_START_LINE = 33; +constexpr size_t INTERFACE_FOO4_START_LINE = 37; +constexpr size_t FUNCTION_PARAM1_START_LINE = 55; +constexpr size_t FUNCTION_PARAM2_START_LINE = 56; +constexpr size_t FUNCTION_PARAM3_START_LINE = 43; + +constexpr size_t NS_END_LINE = 30; +constexpr size_t INNERNS_END_LINE = 29; +constexpr size_t EXPORT_NAMED_DECL_END_LINE = 60; +constexpr size_t EXPORT_SINGLE_NAMED_DECL_END_LINE = 64; +constexpr size_t RE_EXPORT_DECL_END_LINE = 62; +constexpr size_t IMPORT_DECL_END_LINE = 1; +constexpr size_t INNER_INTERFACE_END_LINE = 21; +constexpr size_t INTERFACE_OUTSIDE_END_LINE = 40; +constexpr size_t CLASS_OUTSIDE_END_LINE = 54; +constexpr size_t INNER_CLASS_END_LINE = 29; +constexpr size_t CLASS_PROP1_END_LINE = 26; +constexpr size_t CLASS_PROP2_END_LINE = 49; +constexpr size_t CLASS_PROP3_END_LINE = 51; +constexpr size_t CLASS_FOO1_END_LINE = 24; +constexpr size_t CLASS_FOO2_END_LINE = 45; +constexpr size_t CLASS_FOO3_END_LINE = 47; +constexpr size_t INTERFACE_PROP1_END_LINE = 18; +constexpr size_t INTERFACE_PROP2_END_LINE = 20; +constexpr size_t INTERFACE_PROP3_END_LINE = 35; +constexpr size_t INTERFACE_PROP4_END_LINE = 39; +constexpr size_t INTERFACE_FOO1_END_LINE = 14; +constexpr size_t INTERFACE_FOO2_END_LINE = 16; +constexpr size_t INTERFACE_FOO3_END_LINE = 33; +constexpr size_t INTERFACE_FOO4_END_LINE = 37; +constexpr size_t FUNCTION_PARAM1_END_LINE = 55; +constexpr size_t FUNCTION_PARAM2_END_LINE = 56; +constexpr size_t FUNCTION_PARAM3_END_LINE = 43; + +constexpr size_t NS_START_COL = 1; +constexpr size_t INNERNS_START_COL = 3; +constexpr size_t EXPORT_NAMED_DECL_START_COL = 8; +constexpr size_t EXPORT_SINGLE_NAMED_DECL_START_COL = 8; +constexpr size_t RE_EXPORT_DECL_START_COL = 8; +constexpr size_t IMPORT_DECL_START_COL = 1; +constexpr size_t INNER_INTERFACE_START_COL = 10; +constexpr size_t INTERFACE_OUTSIDE_START_COL = 16; +constexpr size_t CLASS_OUTSIDE_START_COL = 8; +constexpr size_t INNER_CLASS_START_COL = 10; +constexpr size_t CLASS_PROP1_START_COL = 13; +constexpr size_t CLASS_PROP2_START_COL = 12; +constexpr size_t CLASS_PROP3_START_COL = 5; +constexpr size_t CLASS_FOO1_START_COL = 5; +constexpr size_t CLASS_FOO2_START_COL = 5; +constexpr size_t CLASS_FOO3_START_COL = 5; +constexpr size_t INTERFACE_PROP1_START_COL = 13; +constexpr size_t INTERFACE_PROP2_START_COL = 5; +constexpr size_t INTERFACE_PROP3_START_COL = 5; +constexpr size_t INTERFACE_PROP4_START_COL = 5; +constexpr size_t INTERFACE_FOO1_START_COL = 5; +constexpr size_t INTERFACE_FOO2_START_COL = 5; +constexpr size_t INTERFACE_FOO3_START_COL = 13; +constexpr size_t INTERFACE_FOO4_START_COL = 5; +constexpr size_t FUNCTION_PARAM1_START_COL = 3; +constexpr size_t FUNCTION_PARAM2_START_COL = 3; +constexpr size_t FUNCTION_PARAM3_START_COL = 11; + +constexpr size_t NS_END_COL = 2; +constexpr size_t INNERNS_END_COL = 23; +constexpr size_t EXPORT_NAMED_DECL_END_COL = 32; +constexpr size_t EXPORT_SINGLE_NAMED_DECL_END_COL = 10; +constexpr size_t RE_EXPORT_DECL_END_COL = 33; +constexpr size_t IMPORT_DECL_END_COL = 33; +constexpr size_t INNER_INTERFACE_END_COL = 4; +constexpr size_t INTERFACE_OUTSIDE_END_COL = 2; +constexpr size_t CLASS_OUTSIDE_END_COL = 9; +constexpr size_t INNER_CLASS_END_COL = 12; +constexpr size_t CLASS_PROP1_END_COL = 34; +constexpr size_t CLASS_PROP2_END_COL = 33; +constexpr size_t CLASS_PROP3_END_COL = 26; +constexpr size_t CLASS_FOO1_END_COL = 24; +constexpr size_t CLASS_FOO2_END_COL = 24; +constexpr size_t CLASS_FOO3_END_COL = 24; +constexpr size_t INTERFACE_PROP1_END_COL = 34; +constexpr size_t INTERFACE_PROP2_END_COL = 37; +constexpr size_t INTERFACE_PROP3_END_COL = 26; +constexpr size_t INTERFACE_PROP4_END_COL = 33; +constexpr size_t INTERFACE_FOO1_END_COL = 43; +constexpr size_t INTERFACE_FOO2_END_COL = 25; +constexpr size_t INTERFACE_FOO3_END_COL = 46; +constexpr size_t INTERFACE_FOO4_END_COL = 25; +constexpr size_t FUNCTION_PARAM1_END_COL = 16; +constexpr size_t FUNCTION_PARAM2_END_COL = 16; +constexpr size_t FUNCTION_PARAM3_END_COL = 21; + +static std::map startLineMap = {{"exportNamedDecl", EXPORT_NAMED_DECL_START_LINE}, + {"exportSingleNamedDecl", EXPORT_SINGLE_NAMED_DECL_START_LINE}, + {"reExportedDecl", RE_EXPORT_DECL_START_LINE}, + {"importDecl", IMPORT_DECL_START_LINE}, + {"NS", NS_START_LINE}, + {"InnerNS", INNERNS_START_LINE}, + {"InterfaceOutside", INTERFACE_OUTSIDE_START_LINE}, + {"innerInterface", INNER_INTERFACE_START_LINE}, + {"ClassOutside", CLASS_OUTSIDE_START_LINE}, + {"innerClass", INNER_CLASS_START_LINE}, + {"classProp1", CLASS_PROP1_START_LINE}, + {"classProp2", CLASS_PROP2_START_LINE}, + {"classProp3", CLASS_PROP3_START_LINE}, + {"interfaceProp1", INTERFACE_PROP1_START_LINE}, + {"interfaceProp2", INTERFACE_PROP2_START_LINE}, + {"interfaceProp3", INTERFACE_PROP3_START_LINE}, + {"interfaceProp4", INTERFACE_PROP4_START_LINE}, + {"classFoo1", CLASS_FOO1_START_LINE}, + {"classFoo2", CLASS_FOO2_START_LINE}, + {"classFoo3", CLASS_FOO3_START_LINE}, + {"interfaceFoo1", INTERFACE_FOO1_START_LINE}, + {"interfaceFoo2", INTERFACE_FOO2_START_LINE}, + {"interfaceFoo3", INTERFACE_FOO3_START_LINE}, + {"interfaceFoo4", INTERFACE_FOO4_START_LINE}, + {"fooP1", FUNCTION_PARAM1_START_LINE}, + {"fooP2", FUNCTION_PARAM2_START_LINE}, + {"p3", FUNCTION_PARAM3_START_LINE}}; + +static std::map startColMap = {{"exportNamedDecl", EXPORT_NAMED_DECL_START_COL}, + {"exportSingleNamedDecl", EXPORT_SINGLE_NAMED_DECL_START_COL}, + {"reExportedDecl", RE_EXPORT_DECL_START_COL}, + {"importDecl", IMPORT_DECL_START_COL}, + {"NS", NS_START_COL}, + {"InnerNS", INNERNS_START_COL}, + {"InterfaceOutside", INTERFACE_OUTSIDE_START_COL}, + {"innerInterface", INNER_INTERFACE_START_COL}, + {"ClassOutside", CLASS_OUTSIDE_START_COL}, + {"innerClass", INNER_CLASS_START_COL}, + {"classProp1", CLASS_PROP1_START_COL}, + {"classProp2", CLASS_PROP2_START_COL}, + {"classProp3", CLASS_PROP3_START_COL}, + {"interfaceProp1", INTERFACE_PROP1_START_COL}, + {"interfaceProp2", INTERFACE_PROP2_START_COL}, + {"interfaceProp3", INTERFACE_PROP3_START_COL}, + {"interfaceProp4", INTERFACE_PROP4_START_COL}, + {"classFoo1", CLASS_FOO1_START_COL}, + {"classFoo2", CLASS_FOO2_START_COL}, + {"classFoo3", CLASS_FOO3_START_COL}, + {"interfaceFoo1", INTERFACE_FOO1_START_COL}, + {"interfaceFoo2", INTERFACE_FOO2_START_COL}, + {"interfaceFoo3", INTERFACE_FOO3_START_COL}, + {"interfaceFoo4", INTERFACE_FOO4_START_COL}, + {"fooP1", FUNCTION_PARAM1_START_COL}, + {"fooP2", FUNCTION_PARAM2_START_COL}, + {"p3", FUNCTION_PARAM3_START_COL}}; + +static std::map endLineMap = {{"exportNamedDecl", EXPORT_NAMED_DECL_END_LINE}, + {"exportSingleNamedDecl", EXPORT_SINGLE_NAMED_DECL_END_LINE}, + {"reExportedDecl", RE_EXPORT_DECL_END_LINE}, + {"importDecl", IMPORT_DECL_END_LINE}, + {"NS", NS_END_LINE}, + {"InnerNS", INNERNS_END_LINE}, + {"InterfaceOutside", INTERFACE_OUTSIDE_END_LINE}, + {"innerInterface", INNER_INTERFACE_END_LINE}, + {"ClassOutside", CLASS_OUTSIDE_END_LINE}, + {"innerClass", INNER_CLASS_END_LINE}, + {"classProp1", CLASS_PROP1_END_LINE}, + {"classProp2", CLASS_PROP2_END_LINE}, + {"classProp3", CLASS_PROP3_END_LINE}, + {"interfaceProp1", INTERFACE_PROP1_END_LINE}, + {"interfaceProp2", INTERFACE_PROP2_END_LINE}, + {"interfaceProp3", INTERFACE_PROP3_END_LINE}, + {"interfaceProp4", INTERFACE_PROP4_END_LINE}, + {"classFoo1", CLASS_FOO1_END_LINE}, + {"classFoo2", CLASS_FOO2_END_LINE}, + {"classFoo3", CLASS_FOO3_END_LINE}, + {"interfaceFoo1", INTERFACE_FOO1_END_LINE}, + {"interfaceFoo2", INTERFACE_FOO2_END_LINE}, + {"interfaceFoo3", INTERFACE_FOO3_END_LINE}, + {"interfaceFoo4", INTERFACE_FOO4_END_LINE}, + {"fooP1", FUNCTION_PARAM1_END_LINE}, + {"fooP2", FUNCTION_PARAM2_END_LINE}, + {"p3", FUNCTION_PARAM3_END_LINE}}; + +static std::map endColMap = {{"exportNamedDecl", EXPORT_NAMED_DECL_END_COL}, + {"exportSingleNamedDecl", EXPORT_SINGLE_NAMED_DECL_END_COL}, + {"reExportedDecl", RE_EXPORT_DECL_END_COL}, + {"importDecl", IMPORT_DECL_END_COL}, + {"NS", NS_END_COL}, + {"InnerNS", INNERNS_END_COL}, + {"InterfaceOutside", INTERFACE_OUTSIDE_END_COL}, + {"innerInterface", INNER_INTERFACE_END_COL}, + {"ClassOutside", CLASS_OUTSIDE_END_COL}, + {"innerClass", INNER_CLASS_END_COL}, + {"classProp1", CLASS_PROP1_END_COL}, + {"classProp2", CLASS_PROP2_END_COL}, + {"classProp3", CLASS_PROP3_END_COL}, + {"interfaceProp1", INTERFACE_PROP1_END_COL}, + {"interfaceProp2", INTERFACE_PROP2_END_COL}, + {"interfaceProp3", INTERFACE_PROP3_END_COL}, + {"interfaceProp4", INTERFACE_PROP4_END_COL}, + {"classFoo1", CLASS_FOO1_END_COL}, + {"classFoo2", CLASS_FOO2_END_COL}, + {"classFoo3", CLASS_FOO3_END_COL}, + {"interfaceFoo1", INTERFACE_FOO1_END_COL}, + {"interfaceFoo2", INTERFACE_FOO2_END_COL}, + {"interfaceFoo3", INTERFACE_FOO3_END_COL}, + {"interfaceFoo4", INTERFACE_FOO4_END_COL}, + {"fooP1", FUNCTION_PARAM1_END_COL}, + {"fooP2", FUNCTION_PARAM2_END_COL}, + {"p3", FUNCTION_PARAM3_END_COL}}; + +static es2panda_Impl *impl = nullptr; +es2panda_Context *context = nullptr; +es2panda_AstNode *fooDecl = nullptr; + +static std::map namespaceDecl = {{"NS", nullptr}, {"InnerNS", nullptr}}; +static void FindNamespaceDecl(es2panda_AstNode *ast, [[maybe_unused]] void *ctx) +{ + if (!impl->IsETSModule(ast) || !impl->ETSModuleIsNamespaceConst(context, ast)) { + return; + } + auto *ident = impl->ETSModuleIdent(context, ast); + if (ident == nullptr) { + return; + } + auto name = std::string(impl->IdentifierName(context, ident)); + if (namespaceDecl.find(name) != namespaceDecl.end()) { + namespaceDecl[name] = ast; + } +} + +static es2panda_AstNode *exportNamedDecl = nullptr; +static es2panda_AstNode *exportSingleNamedDecl = nullptr; +static es2panda_AstNode *reExportedDecl = nullptr; +static es2panda_AstNode *importDecl = nullptr; +static void FindImportExportSpecifier(es2panda_AstNode *ast, [[maybe_unused]] void *ctx) +{ + if (impl->IsExportNamedDeclaration(ast)) { + size_t len = 0; + impl->ExportNamedDeclarationSpecifiersConst(context, ast, &len); + if (len == 1) { + exportSingleNamedDecl = ast; + } else { + exportNamedDecl = ast; + } + } + + if (impl->IsETSReExportDeclaration(ast)) { + reExportedDecl = ast; + } + + if (impl->IsETSImportDeclaration(ast)) { + importDecl = ast; + } +} + +static std::map interfaceMap = {{"innerInterface", nullptr}, + {"InterfaceOutside", nullptr}}; +static void FindInterface(es2panda_AstNode *ast, [[maybe_unused]] void *ctx) +{ + if (!impl->IsTSInterfaceDeclaration(ast)) { + return; + } + auto *ident = impl->TSInterfaceDeclarationId(context, ast); + if (ident == nullptr) { + return; + } + auto name = std::string(impl->IdentifierName(context, ident)); + if (interfaceMap.find(name) != interfaceMap.end()) { + interfaceMap[name] = ast; + } +} + +static std::map classMap = {{"ClassOutside", nullptr}, {"innerClass", nullptr}}; +static void FindClass(es2panda_AstNode *ast, [[maybe_unused]] void *ctx) +{ + if (!impl->IsClassDeclaration(ast)) { + return; + } + auto *ident = impl->ClassDefinitionIdent(context, impl->ClassDeclarationDefinition(context, ast)); + if (ident == nullptr) { + return; + } + auto name = std::string(impl->IdentifierName(context, ident)); + if (classMap.find(name) != classMap.end()) { + classMap[name] = ast; + } +} + +static std::map propertyMap = { + {"classProp1", nullptr}, {"classProp2", nullptr}, {"classProp3", nullptr}, {"interfaceProp1", nullptr}, + {"interfaceProp2", nullptr}, {"interfaceProp3", nullptr}, {"interfaceProp4", nullptr}}; +static void FindClassElement(es2panda_AstNode *ast, [[maybe_unused]] void *ctx) +{ + if (!impl->IsClassProperty(ast)) { + return; + } + auto *ident = impl->ClassElementId(context, ast); + if (ident == nullptr) { + return; + } + + auto name = std::string(impl->IdentifierName(context, ident)); + if (propertyMap.find(name) != propertyMap.end()) { + propertyMap[name] = ast; + } +} + +static std::map enumMemberMap = {{"em1Prop1", nullptr}, {"em1Prop2", nullptr}}; +static void FindEnumMember(es2panda_AstNode *ast, [[maybe_unused]] void *ctx) +{ + if (!impl->IsTSEnumMember(ast)) { + return; + } + auto *ident = impl->TSEnumMemberKey(context, ast); + if (ident == nullptr || impl->IsIdentifier(ident)) { + return; + } + + auto name = std::string(impl->IdentifierName(context, ident)); + if (enumMemberMap.find(name) != enumMemberMap.end()) { + enumMemberMap[name] = ast; + } +} + +static std::map methodMap = { + {"interfaceFoo1", nullptr}, {"interfaceFoo2", nullptr}, {"interfaceFoo3", nullptr}, {"interfaceFoo4", nullptr}, + {"classFoo1", nullptr}, {"classFoo2", nullptr}, {"classFoo3", nullptr}}; +static void FindMethodDef(es2panda_AstNode *ast, [[maybe_unused]] void *ctx) +{ + if (!impl->IsMethodDefinition(ast)) { + return; + } + auto *function = impl->MethodDefinitionFunction(context, ast); + if (function == nullptr) { + return; + } + + auto *ident = impl->ScriptFunctionId(context, function); + if (ident == nullptr) { + return; + } + auto name = std::string(impl->IdentifierName(context, ident)); + if (methodMap.find(name) != methodMap.end()) { + methodMap[name] = ast; + } +} + +static std::map etsParamsMap = { + {"fooP1", nullptr}, {"fooP2", nullptr}, {"p3", nullptr}}; +static void FindETSParamDecl(es2panda_AstNode *ast, [[maybe_unused]] void *ctx) +{ + if (!impl->IsETSParameterExpression(ast)) { + return; + } + auto *ident = impl->ETSParameterExpressionIdent(context, ast); + if (ident == nullptr) { + return; + } + auto name = std::string(impl->IdentifierName(context, ident)); + if (etsParamsMap.find(name) != etsParamsMap.end()) { + etsParamsMap[name] = ast; + } +} + +static void FindTargetAst(es2panda_AstNode *ast, [[maybe_unused]] void *ctx) +{ + impl->AstNodeForEach(ast, FindNamespaceDecl, context); + impl->AstNodeForEach(ast, FindImportExportSpecifier, context); + impl->AstNodeForEach(ast, FindInterface, context); + impl->AstNodeForEach(ast, FindClass, context); + impl->AstNodeForEach(ast, FindClassElement, context); + impl->AstNodeForEach(ast, FindMethodDef, context); + impl->AstNodeForEach(ast, FindETSParamDecl, context); + impl->AstNodeForEach(ast, FindEnumMember, context); +} + +static bool CheckLineAndCol(es2panda_AstNode *ast, std::string name) +{ + auto start = impl->AstNodeStartConst(context, ast); + auto end = impl->AstNodeEndConst(context, ast); + auto res = startLineMap[name] == impl->SourcePositionLine(context, start); + ASSERT(startLineMap[name] == impl->SourcePositionLine(context, start)); + + res &= startColMap[name] == impl->SourcePositionCol(context, start); + ASSERT(startColMap[name] == impl->SourcePositionCol(context, start)); + + res &= endLineMap[name] == impl->SourcePositionLine(context, end); + ASSERT(endLineMap[name] == impl->SourcePositionLine(context, end)); + + res &= endColMap[name] == impl->SourcePositionCol(context, end); + ASSERT(endColMap[name] == impl->SourcePositionCol(context, end)); + return res; +} + +static bool CheckAllNode() +{ + bool res = CheckLineAndCol(exportNamedDecl, "exportNamedDecl"); + res &= CheckLineAndCol(exportSingleNamedDecl, "exportSingleNamedDecl"); + res &= CheckLineAndCol(reExportedDecl, "reExportedDecl"); + res &= CheckLineAndCol(importDecl, "importDecl"); + for (const auto &[name, targetAst] : namespaceDecl) { + res &= CheckLineAndCol(targetAst, name); + } + + for (const auto &[name, targetAst] : interfaceMap) { + res &= CheckLineAndCol(targetAst, name); + } + + for (const auto &[name, targetAst] : classMap) { + res &= CheckLineAndCol(targetAst, name); + } + + for (const auto &[name, targetAst] : propertyMap) { + res &= CheckLineAndCol(targetAst, name); + } + + for (const auto &[name, targetAst] : methodMap) { + res &= CheckLineAndCol(targetAst, name); + } + + for (const auto &[name, targetAst] : etsParamsMap) { + res &= CheckLineAndCol(targetAst, name); + } + return res; +} + +int main(int argc, char **argv) +{ + if (argc < MIN_ARGC) { + return INVALID_ARGC_ERROR_CODE; + } + + if (GetImpl() == nullptr) { + return NULLPTR_IMPL_ERROR_CODE; + } + impl = GetImpl(); + + const char **args = const_cast(&(argv[1])); + auto config = impl->CreateConfig(argc - 1, args); + context = impl->CreateContextFromString(config, source.data(), argv[argc - 1]); + if (context == nullptr) { + return NULLPTR_CONTEXT_ERROR_CODE; + } + impl->ProceedToState(context, ES2PANDA_STATE_PARSED); + CheckForErrors("PARSED", context); + + auto *program = impl->ContextProgram(context); + es2panda_AstNode *programNode = impl->ProgramAst(context, program); + FindTargetAst(programNode, context); + if (!CheckAllNode()) { + return TEST_ERROR_CODE; + impl->DestroyConfig(config); + } + impl->DestroyConfig(config); + return 0; +} +// NOLINTEND \ No newline at end of file diff --git a/ets2panda/test/unit/sizeof_node_test.cpp b/ets2panda/test/unit/sizeof_node_test.cpp index 5980cba512fa4d025bd7114ab44edff712304031..f7924975f6f7a07e337bd54c42916282b207d941 100644 --- a/ets2panda/test/unit/sizeof_node_test.cpp +++ b/ets2panda/test/unit/sizeof_node_test.cpp @@ -248,6 +248,7 @@ size_t SizeOfNodeTest::SizeOf() Align(sizeof(node->funcFlags_)) + sizeof(node->signature_) + sizeof(node->preferredReturnType_) + + sizeof(node->asyncPairFunction_) + Align(sizeof(node->lang_)) + sizeof(node->returnStatements_); // clang-format on diff --git a/ets2panda/util/diagnostic/semantic.yaml b/ets2panda/util/diagnostic/semantic.yaml index 2db429ba584df212f5b29839397c1a6fc7328b61..eee92cbf50eced3dcaef9bcd069a88ef679e3785 100644 --- a/ets2panda/util/diagnostic/semantic.yaml +++ b/ets2panda/util/diagnostic/semantic.yaml @@ -69,6 +69,10 @@ semantic: id: 175 message: "A 'const' initializer in an ambient context must be a string or numeric literal: {}" +- name: AMBIGUOUS_AMBIENT + id: 399 + message: "Method declaration `{}` must all ambient or non-ambient" + - name: AMBIGUOUS_CALL id: 142 message: "Call to `{}` is ambiguous as `2` versions of `{}` are available: `{}{}` and `{}{}`" @@ -463,6 +467,10 @@ semantic: id: 343 message: "Indexed signatures are not allowed. Use arrays instead!" +- name: ERROR_ARKTS_SPREAD_ONLY_WITH_REST + id: 44192 + message: "The function or method being called needs a rest parameter to accept arguments passed via the spread operator." + - name: EXCEPTION_REDECLARATION id: 13 message: "Redeclaration of exception type" @@ -494,6 +502,7 @@ semantic: - name: EXTENDING_UTILITY_TYPE id: 176 message: "The super type of '{}' class is not extensible." + code_fix_ids: [extendsInterfaceBecomesImplements] - name: EXTENDS_NON_OBJECT id: 185 @@ -939,6 +948,7 @@ semantic: - name: MISSING_RETURN_STMT id: 103 message: "Function with a non void return type must return a value." + code_fix_ids: [FixAddFunctionReturnStatement] - name: MISSING_RETURN_TYPE id: 18 diff --git a/ets2panda/util/diagnostic/syntax.yaml b/ets2panda/util/diagnostic/syntax.yaml index bfc4c833fee12b73b0133ec6f9476fbc1b61fa0b..0c2200d8d21f6a29eb91041e50da8d7703cdac1a 100644 --- a/ets2panda/util/diagnostic/syntax.yaml +++ b/ets2panda/util/diagnostic/syntax.yaml @@ -145,6 +145,10 @@ syntax: id: 127 message: "Conflicting modifiers '!' and '?' on field." +- name: CONSTRUCTOR_FUNC_TYPE_NOT_SUPPORTED + id: 93489 + message: "Constructor function types are not supported." + - name: DECALRE_IN_AMBIENT_CONTEXT id: 104 message: "A 'declare' modifier cannot be used in an already ambient context." @@ -330,8 +334,9 @@ syntax: - name: FIELD_IN_PARAM id: 319 message: "Declaring fields in parameter list is not supported" + code_fix_ids: [ClassSuperMustPrecedeThisAccess] -- name: FIELD_TPYE_ANNOTATION_MISSING +- name: FIELD_TYPE_ANNOTATION_MISSING id: 121 message: "Field type annotation expected." diff --git a/ets2panda/util/importPathManager.cpp b/ets2panda/util/importPathManager.cpp index cd665c12da6a7f6e995c6f16c202b332674c4035..9b64cc0f4be8977b0141df578c5881374dad3050 100644 --- a/ets2panda/util/importPathManager.cpp +++ b/ets2panda/util/importPathManager.cpp @@ -44,7 +44,7 @@ namespace fs = std::experimental::filesystem; #endif namespace ark::es2panda::util { -constexpr size_t SUPPORTED_INDEX_FILES_SIZE = 3; +constexpr size_t SUPPORTED_INDEX_FILES_SIZE = 4; constexpr size_t SUPPORTED_EXTENSIONS_SIZE = 6; constexpr size_t ALLOWED_EXTENSIONS_SIZE = 8; @@ -366,7 +366,8 @@ std::string ImportPathManager::TryMatchDependencies(std::string_view fixedPath) std::string_view ImportPathManager::DirOrDirWithIndexFile(StringView dir) const { // Supported index files: keep this checking order - std::array supportedIndexFiles = {"index.ets", "index.sts", "index.ts"}; + std::array supportedIndexFiles = {"index.ets", "index.sts", "index.ts", + "index.d.ets"}; for (const auto &indexFile : supportedIndexFiles) { std::string indexFilePath = dir.Mutf8() + ark::os::file::File::GetPathDelim().at(0) + indexFile; if (ark::os::file::File::IsRegularFile(indexFilePath)) { diff --git a/ets2panda/util/path.cpp b/ets2panda/util/path.cpp index ad902018c64df5ef51b052c237b756f65fa16083..b47a24962f05b1074b4ac59b4855d14d41a46abe 100644 --- a/ets2panda/util/path.cpp +++ b/ets2panda/util/path.cpp @@ -76,7 +76,8 @@ void Path::InitializeFileName() } size_t extensionPosition = fileNameWithExtension_.Mutf8().find_last_of('.'); - fileName_ = fileNameWithExtension_.Substr(0, extensionPosition); + fileName_ = extensionPosition == std::string::npos ? fileNameWithExtension_ + : fileNameWithExtension_.Substr(0, extensionPosition); } void Path::InitializeFileNameWithExtension() diff --git a/ets2panda/util/ustring.h b/ets2panda/util/ustring.h index b9106cc62b8ab5f26d9590eaea6d3be788d3f6a9..c6becf16614575173d071e2f53c4c52ea5dd77c8 100644 --- a/ets2panda/util/ustring.h +++ b/ets2panda/util/ustring.h @@ -202,7 +202,6 @@ public: inline void Reset(size_t offset) { - ES2PANDA_ASSERT(sv_.begin() + offset <= sv_.end()); iter_ = sv_.begin() + offset; } diff --git a/ets2panda/varbinder/scope.cpp b/ets2panda/varbinder/scope.cpp index 903b652741d54ba2da122e3a6a035e3cf68e8a65..122c166a00b533a3ea708fabdfd69dd741bc5f7b 100644 --- a/ets2panda/varbinder/scope.cpp +++ b/ets2panda/varbinder/scope.cpp @@ -238,8 +238,13 @@ Variable *Scope::AddLocalVar(ArenaAllocator *allocator, Decl *newDecl) Variable *Scope::AddLocalInterfaceVariable(ArenaAllocator *allocator, Decl *newDecl) { - auto *var = bindings_.insert({newDecl->Name(), allocator->New(newDecl, VariableFlags::INTERFACE)}) - .first->second; + auto [iter, inserted] = + bindings_.try_emplace(newDecl->Name(), allocator->New(newDecl, VariableFlags::INTERFACE)); + if (!inserted) { + return nullptr; + } + + auto *var = iter->second; if (newDecl->Node() != nullptr) { newDecl->Node()->AsTSInterfaceDeclaration()->Id()->SetVariable(var); } @@ -261,7 +266,12 @@ Variable *Scope::AddLocalClassVariable(ArenaAllocator *allocator, Decl *newDecl) VariableFlags flag = isNamespaceTransformed ? VariableFlags::NAMESPACE : isEnumTransformed ? VariableFlags::ENUM_LITERAL : VariableFlags::CLASS; - auto *var = bindings_.insert({newDecl->Name(), allocator->New(newDecl, flag)}).first->second; + auto [iter, inserted] = bindings_.try_emplace(newDecl->Name(), allocator->New(newDecl, flag)); + if (!inserted) { + return nullptr; + } + + auto *var = iter->second; newDecl->Node()->AsClassDefinition()->Ident()->SetVariable(var); return var; }