From 365e79e7754c225b9e5145ae32ba3aa8434180ad Mon Sep 17 00:00:00 2001 From: blitz-1306 Date: Mon, 15 Nov 2021 14:48:22 +0500 Subject: [PATCH 1/2] Introduced canonicalName as getter for EnumDefinition, StructDefinition and UserDefinedValueTypeDefinition. Added UserDefinedValueTypeDefinition as a target type for ASTNodeFactory.makeIdentifierFor(). Tweaked affected tests. --- src/ast/ast_node_factory.ts | 22 +- .../declaration/enum_definition.ts | 16 +- .../declaration/struct_definition.ts | 15 +- .../user_defined_value_type_definition.ts | 16 +- src/ast/legacy/enum_definition_processor.ts | 3 +- src/ast/legacy/struct_definition_processor.ts | 3 +- src/ast/modern/enum_definition_processor.ts | 3 +- src/ast/modern/struct_definition_processor.ts | 3 +- ...defined_value_type_definition_processor.ts | 3 +- test/integration/factory/copy.spec.ts | 2 +- .../declarations/contract_050.nodes.txt | 4 +- test/samples/solidity/latest_08.nodes.txt | 14 +- test/unit/ast/ast_node_factory/copy.spec.ts | 5 +- test/unit/ast/ast_node_factory/make.spec.ts | 14 +- .../ast/nodes/contract_definition.spec.ts | 230 ++---------------- test/unit/ast/nodes/source_unit.spec.ts | 230 ++---------------- test/unit/ast/nodes/struct_definition.spec.ts | 1 - .../ast/nodes/user_defined_type_name.spec.ts | 2 - 18 files changed, 103 insertions(+), 483 deletions(-) diff --git a/src/ast/ast_node_factory.ts b/src/ast/ast_node_factory.ts index b5d2de9c..4b951974 100644 --- a/src/ast/ast_node_factory.ts +++ b/src/ast/ast_node_factory.ts @@ -110,7 +110,6 @@ const argExtractionMapping = new Map, (node: any) => EnumDefinition, (node: EnumDefinition): Specific> => [ node.name, - node.canonicalName, node.vMembers, node.nameLocation, node.raw @@ -183,7 +182,6 @@ const argExtractionMapping = new Map, (node: any) => StructDefinition, (node: StructDefinition): Specific> => [ node.name, - node.canonicalName, node.scope, node.visibility, node.vMembers, @@ -197,7 +195,6 @@ const argExtractionMapping = new Map, (node: any) => node: UserDefinedValueTypeDefinition ): Specific> => [ node.name, - node.canonicalName, node.underlyingType, node.nameLocation, node.raw @@ -1032,6 +1029,7 @@ export class ASTNodeFactory { | ErrorDefinition | EventDefinition | EnumDefinition + | UserDefinedValueTypeDefinition | ImportDirective ): Identifier { let typeString: string; @@ -1060,6 +1058,12 @@ export class ASTNodeFactory { typeString = result.join(" "); } else if (target instanceof ContractDefinition) { typeString = `type(contract ${target.name})`; + } else if (target instanceof StructDefinition) { + typeString = `type(struct ${target.canonicalName} storage pointer)`; + } else if (target instanceof EnumDefinition) { + typeString = `type(enum ${target.canonicalName})`; + } else if (target instanceof UserDefinedValueTypeDefinition) { + typeString = `type(${target.canonicalName})`; } else if (target instanceof EventDefinition || target instanceof ErrorDefinition) { const args = target.vParameters.vParameters.map(this.typeExtractor); @@ -1071,15 +1075,9 @@ export class ASTNodeFactory { throw new Error('Target ImportDirective required to have valid "unitAlias"'); } } else { - const name = - target.vScope instanceof ContractDefinition - ? target.vScope.name + "." + target.name - : target.name; - - typeString = - target instanceof StructDefinition - ? `type(struct ${name} storage pointer)` - : `type(enum ${name})`; + throw new Error( + "ASTNodeFactory.makeIdentifierFor(): Unable to compose typeString for supplied target" + ); } return this.makeIdentifier( diff --git a/src/ast/implementation/declaration/enum_definition.ts b/src/ast/implementation/declaration/enum_definition.ts index de80d9f3..940e0903 100644 --- a/src/ast/implementation/declaration/enum_definition.ts +++ b/src/ast/implementation/declaration/enum_definition.ts @@ -1,4 +1,4 @@ -import { enumToIntType } from "../../.."; +import { enumToIntType, getUserDefinedTypeFQName } from "../../.."; import { ASTNodeWithChildren } from "../../ast_node"; import { SourceUnit } from "../meta/source_unit"; import { ContractDefinition } from "./contract_definition"; @@ -15,17 +15,11 @@ export class EnumDefinition extends ASTNodeWithChildren { */ nameLocation?: string; - /** - * Canonical name (or qualified name), e.g. `DefiningContract.SomeEnum` - */ - canonicalName: string; - constructor( id: number, src: string, type: string, name: string, - canonicalName: string, members: Iterable, nameLocation?: string, raw?: any @@ -33,7 +27,6 @@ export class EnumDefinition extends ASTNodeWithChildren { super(id, src, type, raw); this.name = name; - this.canonicalName = canonicalName; for (const member of members) { this.appendChild(member); @@ -42,6 +35,13 @@ export class EnumDefinition extends ASTNodeWithChildren { this.nameLocation = nameLocation; } + /** + * Canonical name (or qualified name), e.g. `DefiningContract.SomeEnum` + */ + get canonicalName(): string { + return getUserDefinedTypeFQName(this); + } + /** * Array of the enum values */ diff --git a/src/ast/implementation/declaration/struct_definition.ts b/src/ast/implementation/declaration/struct_definition.ts index a84ff730..3aabb64c 100644 --- a/src/ast/implementation/declaration/struct_definition.ts +++ b/src/ast/implementation/declaration/struct_definition.ts @@ -1,3 +1,4 @@ +import { getUserDefinedTypeFQName } from "../../.."; import { ASTNodeWithChildren } from "../../ast_node"; import { SourceUnit } from "../meta/source_unit"; import { ContractDefinition } from "./contract_definition"; @@ -9,11 +10,6 @@ export class StructDefinition extends ASTNodeWithChildren { */ name: string; - /** - * Canonical name (or qualified name), e.g. `DefiningContract.SomeStruct` - */ - canonicalName: string; - /** * The source range for name string */ @@ -34,7 +30,6 @@ export class StructDefinition extends ASTNodeWithChildren { src: string, type: string, name: string, - canonicalName: string, scope: number, visibility: string, members: Iterable, @@ -44,7 +39,6 @@ export class StructDefinition extends ASTNodeWithChildren { super(id, src, type, raw); this.name = name; - this.canonicalName = canonicalName; this.scope = scope; this.visibility = visibility; this.nameLocation = nameLocation; @@ -54,6 +48,13 @@ export class StructDefinition extends ASTNodeWithChildren { } } + /** + * Canonical name (or qualified name), e.g. `DefiningContract.SomeStruct` + */ + get canonicalName(): string { + return getUserDefinedTypeFQName(this); + } + /** * Members of the struct */ diff --git a/src/ast/implementation/declaration/user_defined_value_type_definition.ts b/src/ast/implementation/declaration/user_defined_value_type_definition.ts index 1b59ac19..56f7c509 100644 --- a/src/ast/implementation/declaration/user_defined_value_type_definition.ts +++ b/src/ast/implementation/declaration/user_defined_value_type_definition.ts @@ -1,3 +1,4 @@ +import { getUserDefinedTypeFQName } from "../../.."; import { ASTNode } from "../../ast_node"; import { SourceUnit } from "../meta/source_unit"; import { ElementaryTypeName } from "../type/elementary_type_name"; @@ -9,12 +10,6 @@ export class UserDefinedValueTypeDefinition extends ASTNode { */ name: string; - /** - * Canonical name (or qualified name), e.g. `DefiningContract.SomeType`. - * Is `undefined` for Solidity 0.8.8. Available since Solidity 0.8.9. - */ - canonicalName?: string; - /** * The source range for name string */ @@ -30,7 +25,6 @@ export class UserDefinedValueTypeDefinition extends ASTNode { src: string, type: string, name: string, - canonicalName: string | undefined, underlyingType: ElementaryTypeName, nameLocation?: string, raw?: any @@ -38,7 +32,6 @@ export class UserDefinedValueTypeDefinition extends ASTNode { super(id, src, type, raw); this.name = name; - this.canonicalName = canonicalName; this.underlyingType = underlyingType; this.nameLocation = nameLocation; @@ -49,6 +42,13 @@ export class UserDefinedValueTypeDefinition extends ASTNode { return this.pickNodes(this.underlyingType); } + /** + * Canonical name (or qualified name), e.g. `DefiningContract.SomeType` + */ + get canonicalName(): string { + return getUserDefinedTypeFQName(this); + } + /** * Reference to its scoped contract or source unit */ diff --git a/src/ast/legacy/enum_definition_processor.ts b/src/ast/legacy/enum_definition_processor.ts index b10ca039..c6282cda 100644 --- a/src/ast/legacy/enum_definition_processor.ts +++ b/src/ast/legacy/enum_definition_processor.ts @@ -14,8 +14,7 @@ export class LegacyEnumDefinitionProcessor extends LegacyNodeProcessor { .replace(new RegExp(process.cwd(), "g"), "."); // Uncomment next line to update snapshots - // fse.writeFileSync(snapshot, result, { encoding: "utf-8" }); + fse.writeFileSync(snapshot, result, { encoding: "utf-8" }); const content = fse.readFileSync(snapshot, { encoding: "utf-8" }); diff --git a/test/samples/solidity/declarations/contract_050.nodes.txt b/test/samples/solidity/declarations/contract_050.nodes.txt index 8515fcd7..936c7a59 100644 --- a/test/samples/solidity/declarations/contract_050.nodes.txt +++ b/test/samples/solidity/declarations/contract_050.nodes.txt @@ -781,12 +781,12 @@ SourceUnit #146 src: "0:0:0" type: "StructDefinition" name: "St" - canonicalName: "C.St" scope: 145 visibility: "public" nameLocation: undefined context: ASTContext #1000 parent: ContractDefinition #145 + canonicalName: "C.St" vMembers: Array(1) [ VariableDeclaration #108 ] vScope: ContractDefinition #145 children: Array(1) [ VariableDeclaration #108 ] @@ -848,10 +848,10 @@ SourceUnit #146 src: "0:0:0" type: "EnumDefinition" name: "En" - canonicalName: "C.En" nameLocation: undefined context: ASTContext #1000 parent: ContractDefinition #145 + canonicalName: "C.En" vMembers: Array(3) [ EnumValue #110, EnumValue #111, EnumValue #112 ] vScope: ContractDefinition #145 children: Array(3) [ EnumValue #110, EnumValue #111, EnumValue #112 ] diff --git a/test/samples/solidity/latest_08.nodes.txt b/test/samples/solidity/latest_08.nodes.txt index 06b87bad..c28c6293 100644 --- a/test/samples/solidity/latest_08.nodes.txt +++ b/test/samples/solidity/latest_08.nodes.txt @@ -87,10 +87,10 @@ SourceUnit #959 src: "0:0:0" type: "EnumDefinition" name: "EnumABC" - canonicalName: "EnumABC" nameLocation: "91:7:0" context: ASTContext #1000 parent: SourceUnit #959 + canonicalName: "EnumABC" vMembers: Array(3) [ EnumValue #494, EnumValue #495, EnumValue #496 ] vScope: SourceUnit #959 children: Array(3) [ EnumValue #494, EnumValue #495, EnumValue #496 ] @@ -2866,10 +2866,10 @@ SourceUnit #959 src: "0:0:0" type: "EnumDefinition" name: "EnumXYZ" - canonicalName: "Features082.EnumXYZ" nameLocation: "1379:7:0" context: ASTContext #1000 parent: ContractDefinition #713 + canonicalName: "Features082.EnumXYZ" vMembers: Array(3) [ EnumValue #633, EnumValue #634, EnumValue #635 ] vScope: ContractDefinition #713 children: Array(3) [ EnumValue #633, EnumValue #634, EnumValue #635 ] @@ -6080,12 +6080,12 @@ SourceUnit #959 src: "0:0:0" type: "UserDefinedValueTypeDefinition" name: "Price" - canonicalName: "Price" underlyingType: ElementaryTypeName #800 nameLocation: "4739:5:0" context: ASTContext #1000 parent: SourceUnit #959 children: Array(1) [ ElementaryTypeName #800 ] + canonicalName: "Price" vScope: SourceUnit #959 firstChild: ElementaryTypeName #800 lastChild: ElementaryTypeName #800 @@ -6116,12 +6116,12 @@ SourceUnit #959 src: "0:0:0" type: "UserDefinedValueTypeDefinition" name: "Quantity" - canonicalName: "Quantity" underlyingType: ElementaryTypeName #802 nameLocation: "4762:8:0" context: ASTContext #1000 parent: SourceUnit #959 children: Array(1) [ ElementaryTypeName #802 ] + canonicalName: "Quantity" vScope: SourceUnit #959 firstChild: ElementaryTypeName #802 lastChild: ElementaryTypeName #802 @@ -6190,12 +6190,12 @@ SourceUnit #959 src: "0:0:0" type: "UserDefinedValueTypeDefinition" name: "UFixed" - canonicalName: "LibWithUDVT_088.UFixed" underlyingType: ElementaryTypeName #804 nameLocation: "4819:6:0" context: ASTContext #1000 parent: ContractDefinition #891 children: Array(1) [ ElementaryTypeName #804 ] + canonicalName: "LibWithUDVT_088.UFixed" vScope: ContractDefinition #891 firstChild: ElementaryTypeName #804 lastChild: ElementaryTypeName #804 @@ -8000,12 +8000,12 @@ SourceUnit #959 src: "0:0:0" type: "UserDefinedValueTypeDefinition" name: "EntityReference" - canonicalName: "InterfaceWithUDTV_088.EntityReference" underlyingType: ElementaryTypeName #892 nameLocation: "5483:15:0" context: ASTContext #1000 parent: ContractDefinition #902 children: Array(1) [ ElementaryTypeName #892 ] + canonicalName: "InterfaceWithUDTV_088.EntityReference" vScope: ContractDefinition #902 firstChild: ElementaryTypeName #892 lastChild: ElementaryTypeName #892 @@ -9455,12 +9455,12 @@ SourceUnit #975 src: "0:0:0" type: "StructDefinition" name: "SomeStruct" - canonicalName: "SomeContract.SomeStruct" scope: 973 visibility: "public" nameLocation: "80:10:1" context: ASTContext #1000 parent: ContractDefinition #973 + canonicalName: "SomeContract.SomeStruct" vMembers: Array(1) [ VariableDeclaration #963 ] vScope: ContractDefinition #973 children: Array(1) [ VariableDeclaration #963 ] diff --git a/test/unit/ast/ast_node_factory/copy.spec.ts b/test/unit/ast/ast_node_factory/copy.spec.ts index 2f446f78..6e322cd7 100644 --- a/test/unit/ast/ast_node_factory/copy.spec.ts +++ b/test/unit/ast/ast_node_factory/copy.spec.ts @@ -62,7 +62,7 @@ describe("ASTNodeFactory.copy()", () => { const factory = new ASTNodeFactory(); const value = factory.makeEnumValue("MyValue"); - const definition = factory.makeEnumDefinition("MyEnum", "Some.MyEnum", [value]); + const definition = factory.makeEnumDefinition("MyEnum", [value]); const defCopy = factory.copy(definition); const valCopy = defCopy.vMembers[0]; @@ -78,7 +78,7 @@ describe("ASTNodeFactory.copy()", () => { raw: undefined, name: "MyEnum", - canonicalName: "Some.MyEnum", + canonicalName: "MyEnum", vMembers: [valCopy], vScope: undefined @@ -296,7 +296,6 @@ describe("ASTNodeFactory.copy()", () => { const struct = factory.makeStructDefinition( "MyStruct", - "Test.MyStruct", contract.id, FunctionVisibility.Internal, [] diff --git a/test/unit/ast/ast_node_factory/make.spec.ts b/test/unit/ast/ast_node_factory/make.spec.ts index ddc103f5..e12c5632 100644 --- a/test/unit/ast/ast_node_factory/make.spec.ts +++ b/test/unit/ast/ast_node_factory/make.spec.ts @@ -111,7 +111,7 @@ describe("ASTNodeFactory.make*()", () => { it("makeEnumDefinition()", () => { const factory = new ASTNodeFactory(); const value = factory.makeEnumValue("MyValue"); - const node = factory.makeEnumDefinition("MyEnum", "MyContract.MyEnum", [value]); + const node = factory.makeEnumDefinition("MyEnum", [value]); verify(node, EnumDefinition, { id: 2, @@ -121,7 +121,7 @@ describe("ASTNodeFactory.make*()", () => { raw: undefined, name: "MyEnum", - canonicalName: "MyContract.MyEnum", + canonicalName: "MyEnum", vMembers: [value] }); }); @@ -257,13 +257,7 @@ describe("ASTNodeFactory.make*()", () => { it("makeStructDefinition()", () => { const factory = new ASTNodeFactory(); const unit = factory.makeSourceUnit("sample.sol", 0, "path/to/sample.sol", new Map()); - const node = factory.makeStructDefinition( - "MyStruct", - "MyContract.MyStruct", - unit.id, - "internal", - [] - ); + const node = factory.makeStructDefinition("MyStruct", unit.id, "internal", []); verify(node, StructDefinition, { id: 2, @@ -273,7 +267,7 @@ describe("ASTNodeFactory.make*()", () => { raw: undefined, name: "MyStruct", - canonicalName: "MyContract.MyStruct", + canonicalName: "MyStruct", scope: unit.id, visibility: "internal", vMembers: [], diff --git a/test/unit/ast/nodes/contract_definition.spec.ts b/test/unit/ast/nodes/contract_definition.spec.ts index b00df58e..507437e6 100644 --- a/test/unit/ast/nodes/contract_definition.spec.ts +++ b/test/unit/ast/nodes/contract_definition.spec.ts @@ -59,14 +59,7 @@ describe("ContractDefinition", () => { describe("removeChild()", () => { it("Single child", () => { - const myEnum1 = new EnumDefinition( - 1, - "0:0:0", - "EnumDefinition", - "MyEnum1", - "MyContract.MyEnum1", - [] - ); + const myEnum1 = new EnumDefinition(1, "0:0:0", "EnumDefinition", "MyEnum1", []); const contract = new ContractDefinition( 2, @@ -98,23 +91,8 @@ describe("ContractDefinition", () => { }); it("First child", () => { - const myEnum1 = new EnumDefinition( - 1, - "0:0:0", - "EnumDefinition", - "MyEnum1", - "MyContract.MyEnum1", - [] - ); - - const myEnum2 = new EnumDefinition( - 2, - "0:0:0", - "EnumDefinition", - "MyEnum2", - "MyContract.MyEnum2", - [] - ); + const myEnum1 = new EnumDefinition(1, "0:0:0", "EnumDefinition", "MyEnum1", []); + const myEnum2 = new EnumDefinition(2, "0:0:0", "EnumDefinition", "MyEnum2", []); const contract = new ContractDefinition( 3, @@ -149,23 +127,8 @@ describe("ContractDefinition", () => { }); it("Last child", () => { - const myEnum1 = new EnumDefinition( - 1, - "0:0:0", - "EnumDefinition", - "MyEnum1", - "MyContract.MyEnum1", - [] - ); - - const myEnum2 = new EnumDefinition( - 2, - "0:0:0", - "EnumDefinition", - "MyEnum2", - "MyContract.MyEnum2", - [] - ); + const myEnum1 = new EnumDefinition(1, "0:0:0", "EnumDefinition", "MyEnum1", []); + const myEnum2 = new EnumDefinition(2, "0:0:0", "EnumDefinition", "MyEnum2", []); const contract = new ContractDefinition( 3, @@ -200,32 +163,9 @@ describe("ContractDefinition", () => { }); it("Middle child", () => { - const myEnum1 = new EnumDefinition( - 1, - "0:0:0", - "EnumDefinition", - "MyEnum1", - "MyContract.MyEnum1", - [] - ); - - const myEnum2 = new EnumDefinition( - 2, - "0:0:0", - "EnumDefinition", - "MyEnum2", - "MyContract.MyEnum2", - [] - ); - - const myEnum3 = new EnumDefinition( - 3, - "0:0:0", - "EnumDefinition", - "MyEnum3", - "MyContract.MyEnum3", - [] - ); + const myEnum1 = new EnumDefinition(1, "0:0:0", "EnumDefinition", "MyEnum1", []); + const myEnum2 = new EnumDefinition(2, "0:0:0", "EnumDefinition", "MyEnum2", []); + const myEnum3 = new EnumDefinition(3, "0:0:0", "EnumDefinition", "MyEnum3", []); const contract = new ContractDefinition( 4, @@ -262,23 +202,8 @@ describe("ContractDefinition", () => { describe("insertBefore()", () => { it("First child", () => { - const myEnum1 = new EnumDefinition( - 1, - "0:0:0", - "EnumDefinition", - "MyEnum1", - "MyContract.MyEnum1", - [] - ); - - const myEnum2 = new EnumDefinition( - 2, - "0:0:0", - "EnumDefinition", - "MyEnum2", - "MyContract.MyEnum2", - [] - ); + const myEnum1 = new EnumDefinition(1, "0:0:0", "EnumDefinition", "MyEnum1", []); + const myEnum2 = new EnumDefinition(2, "0:0:0", "EnumDefinition", "MyEnum2", []); const contract = new ContractDefinition( 3, @@ -312,32 +237,9 @@ describe("ContractDefinition", () => { }); it("Last child", () => { - const myEnum1 = new EnumDefinition( - 1, - "0:0:0", - "EnumDefinition", - "MyEnum1", - "MyContract.MyEnum1", - [] - ); - - const myEnum2 = new EnumDefinition( - 2, - "0:0:0", - "EnumDefinition", - "MyEnum2", - "MyContract.MyEnum2", - [] - ); - - const myEnum3 = new EnumDefinition( - 3, - "0:0:0", - "EnumDefinition", - "MyEnum3", - "MyContract.MyEnum3", - [] - ); + const myEnum1 = new EnumDefinition(1, "0:0:0", "EnumDefinition", "MyEnum1", []); + const myEnum2 = new EnumDefinition(2, "0:0:0", "EnumDefinition", "MyEnum2", []); + const myEnum3 = new EnumDefinition(3, "0:0:0", "EnumDefinition", "MyEnum3", []); const contract = new ContractDefinition( 4, @@ -374,23 +276,8 @@ describe("ContractDefinition", () => { describe("insertAfter()", () => { it("Last child", () => { - const myEnum1 = new EnumDefinition( - 1, - "0:0:0", - "EnumDefinition", - "MyEnum1", - "MyContract.MyEnum1", - [] - ); - - const myEnum2 = new EnumDefinition( - 2, - "0:0:0", - "EnumDefinition", - "MyEnum2", - "MyContract.MyEnum2", - [] - ); + const myEnum1 = new EnumDefinition(1, "0:0:0", "EnumDefinition", "MyEnum1", []); + const myEnum2 = new EnumDefinition(2, "0:0:0", "EnumDefinition", "MyEnum2", []); const contract = new ContractDefinition( 3, @@ -424,32 +311,9 @@ describe("ContractDefinition", () => { }); it("First child", () => { - const myEnum1 = new EnumDefinition( - 1, - "0:0:0", - "EnumDefinition", - "MyEnum1", - "MyContract.MyEnum1", - [] - ); - - const myEnum2 = new EnumDefinition( - 2, - "0:0:0", - "EnumDefinition", - "MyEnum2", - "MyContract.MyEnum2", - [] - ); - - const myEnum3 = new EnumDefinition( - 3, - "0:0:0", - "EnumDefinition", - "MyEnum3", - "MyContract.MyEnum3", - [] - ); + const myEnum1 = new EnumDefinition(1, "0:0:0", "EnumDefinition", "MyEnum1", []); + const myEnum2 = new EnumDefinition(2, "0:0:0", "EnumDefinition", "MyEnum2", []); + const myEnum3 = new EnumDefinition(3, "0:0:0", "EnumDefinition", "MyEnum3", []); const contract = new ContractDefinition( 4, @@ -483,23 +347,8 @@ describe("ContractDefinition", () => { describe("replaceChild()", () => { it("Single child", () => { - const myEnum1 = new EnumDefinition( - 1, - "0:0:0", - "EnumDefinition", - "MyEnum1", - "MyContract.MyEnum1", - [] - ); - - const myEnum2 = new EnumDefinition( - 2, - "0:0:0", - "EnumDefinition", - "MyEnum2", - "MyContract.MyEnum2", - [] - ); + const myEnum1 = new EnumDefinition(1, "0:0:0", "EnumDefinition", "MyEnum1", []); + const myEnum2 = new EnumDefinition(2, "0:0:0", "EnumDefinition", "MyEnum2", []); const contract = new ContractDefinition( 3, @@ -531,41 +380,10 @@ describe("ContractDefinition", () => { }); it("Middle child", () => { - const myEnum1 = new EnumDefinition( - 1, - "0:0:0", - "EnumDefinition", - "MyEnum1", - "MyContract.MyEnum1", - [] - ); - - const myEnum2 = new EnumDefinition( - 2, - "0:0:0", - "EnumDefinition", - "MyEnum2", - "MyContract.MyEnum2", - [] - ); - - const myEnum3 = new EnumDefinition( - 3, - "0:0:0", - "EnumDefinition", - "MyEnum3", - "MyContract.MyEnum3", - [] - ); - - const myEnum4 = new EnumDefinition( - 4, - "0:0:0", - "EnumDefinition", - "MyEnum4", - "MyContract.MyEnum4", - [] - ); + const myEnum1 = new EnumDefinition(1, "0:0:0", "EnumDefinition", "MyEnum1", []); + const myEnum2 = new EnumDefinition(2, "0:0:0", "EnumDefinition", "MyEnum2", []); + const myEnum3 = new EnumDefinition(3, "0:0:0", "EnumDefinition", "MyEnum3", []); + const myEnum4 = new EnumDefinition(4, "0:0:0", "EnumDefinition", "MyEnum4", []); const contract = new ContractDefinition( 5, diff --git a/test/unit/ast/nodes/source_unit.spec.ts b/test/unit/ast/nodes/source_unit.spec.ts index 661fd16d..a8c67135 100644 --- a/test/unit/ast/nodes/source_unit.spec.ts +++ b/test/unit/ast/nodes/source_unit.spec.ts @@ -4,14 +4,7 @@ import { EnumDefinition, SourceUnit } from "../../../../src"; describe("SourceUnit", () => { describe("removeChild()", () => { it("Single child", () => { - const myEnum1 = new EnumDefinition( - 1, - "0:0:0", - "EnumDefinition", - "MyEnum1", - "Myunit.MyEnum1", - [] - ); + const myEnum1 = new EnumDefinition(1, "0:0:0", "EnumDefinition", "MyEnum1", []); const unit = new SourceUnit( 2, @@ -39,23 +32,8 @@ describe("SourceUnit", () => { }); it("First child", () => { - const myEnum1 = new EnumDefinition( - 1, - "0:0:0", - "EnumDefinition", - "MyEnum1", - "Myunit.MyEnum1", - [] - ); - - const myEnum2 = new EnumDefinition( - 2, - "0:0:0", - "EnumDefinition", - "MyEnum2", - "Myunit.MyEnum2", - [] - ); + const myEnum1 = new EnumDefinition(1, "0:0:0", "EnumDefinition", "MyEnum1", []); + const myEnum2 = new EnumDefinition(2, "0:0:0", "EnumDefinition", "MyEnum2", []); const unit = new SourceUnit( 3, @@ -86,23 +64,8 @@ describe("SourceUnit", () => { }); it("Last child", () => { - const myEnum1 = new EnumDefinition( - 1, - "0:0:0", - "EnumDefinition", - "MyEnum1", - "Myunit.MyEnum1", - [] - ); - - const myEnum2 = new EnumDefinition( - 2, - "0:0:0", - "EnumDefinition", - "MyEnum2", - "Myunit.MyEnum2", - [] - ); + const myEnum1 = new EnumDefinition(1, "0:0:0", "EnumDefinition", "MyEnum1", []); + const myEnum2 = new EnumDefinition(2, "0:0:0", "EnumDefinition", "MyEnum2", []); const unit = new SourceUnit( 3, @@ -133,32 +96,9 @@ describe("SourceUnit", () => { }); it("Middle child", () => { - const myEnum1 = new EnumDefinition( - 1, - "0:0:0", - "EnumDefinition", - "MyEnum1", - "Myunit.MyEnum1", - [] - ); - - const myEnum2 = new EnumDefinition( - 2, - "0:0:0", - "EnumDefinition", - "MyEnum2", - "Myunit.MyEnum2", - [] - ); - - const myEnum3 = new EnumDefinition( - 3, - "0:0:0", - "EnumDefinition", - "MyEnum3", - "Myunit.MyEnum3", - [] - ); + const myEnum1 = new EnumDefinition(1, "0:0:0", "EnumDefinition", "MyEnum1", []); + const myEnum2 = new EnumDefinition(2, "0:0:0", "EnumDefinition", "MyEnum2", []); + const myEnum3 = new EnumDefinition(3, "0:0:0", "EnumDefinition", "MyEnum3", []); const unit = new SourceUnit( 4, @@ -191,23 +131,8 @@ describe("SourceUnit", () => { describe("insertBefore()", () => { it("First child", () => { - const myEnum1 = new EnumDefinition( - 1, - "0:0:0", - "EnumDefinition", - "MyEnum1", - "Myunit.MyEnum1", - [] - ); - - const myEnum2 = new EnumDefinition( - 2, - "0:0:0", - "EnumDefinition", - "MyEnum2", - "Myunit.MyEnum2", - [] - ); + const myEnum1 = new EnumDefinition(1, "0:0:0", "EnumDefinition", "MyEnum1", []); + const myEnum2 = new EnumDefinition(2, "0:0:0", "EnumDefinition", "MyEnum2", []); const unit = new SourceUnit( 3, @@ -237,32 +162,9 @@ describe("SourceUnit", () => { }); it("Last child", () => { - const myEnum1 = new EnumDefinition( - 1, - "0:0:0", - "EnumDefinition", - "MyEnum1", - "Myunit.MyEnum1", - [] - ); - - const myEnum2 = new EnumDefinition( - 2, - "0:0:0", - "EnumDefinition", - "MyEnum2", - "Myunit.MyEnum2", - [] - ); - - const myEnum3 = new EnumDefinition( - 3, - "0:0:0", - "EnumDefinition", - "MyEnum3", - "Myunit.MyEnum3", - [] - ); + const myEnum1 = new EnumDefinition(1, "0:0:0", "EnumDefinition", "MyEnum1", []); + const myEnum2 = new EnumDefinition(2, "0:0:0", "EnumDefinition", "MyEnum2", []); + const myEnum3 = new EnumDefinition(3, "0:0:0", "EnumDefinition", "MyEnum3", []); const unit = new SourceUnit( 4, @@ -295,23 +197,8 @@ describe("SourceUnit", () => { describe("insertAfter()", () => { it("Last child", () => { - const myEnum1 = new EnumDefinition( - 1, - "0:0:0", - "EnumDefinition", - "MyEnum1", - "Myunit.MyEnum1", - [] - ); - - const myEnum2 = new EnumDefinition( - 2, - "0:0:0", - "EnumDefinition", - "MyEnum2", - "Myunit.MyEnum2", - [] - ); + const myEnum1 = new EnumDefinition(1, "0:0:0", "EnumDefinition", "MyEnum1", []); + const myEnum2 = new EnumDefinition(2, "0:0:0", "EnumDefinition", "MyEnum2", []); const unit = new SourceUnit( 3, @@ -341,32 +228,9 @@ describe("SourceUnit", () => { }); it("First child", () => { - const myEnum1 = new EnumDefinition( - 1, - "0:0:0", - "EnumDefinition", - "MyEnum1", - "Myunit.MyEnum1", - [] - ); - - const myEnum2 = new EnumDefinition( - 2, - "0:0:0", - "EnumDefinition", - "MyEnum2", - "Myunit.MyEnum2", - [] - ); - - const myEnum3 = new EnumDefinition( - 3, - "0:0:0", - "EnumDefinition", - "MyEnum3", - "Myunit.MyEnum3", - [] - ); + const myEnum1 = new EnumDefinition(1, "0:0:0", "EnumDefinition", "MyEnum1", []); + const myEnum2 = new EnumDefinition(2, "0:0:0", "EnumDefinition", "MyEnum2", []); + const myEnum3 = new EnumDefinition(3, "0:0:0", "EnumDefinition", "MyEnum3", []); const unit = new SourceUnit( 4, @@ -396,23 +260,8 @@ describe("SourceUnit", () => { describe("replaceChild()", () => { it("Single child", () => { - const myEnum1 = new EnumDefinition( - 1, - "0:0:0", - "EnumDefinition", - "MyEnum1", - "Myunit.MyEnum1", - [] - ); - - const myEnum2 = new EnumDefinition( - 2, - "0:0:0", - "EnumDefinition", - "MyEnum2", - "Myunit.MyEnum2", - [] - ); + const myEnum1 = new EnumDefinition(1, "0:0:0", "EnumDefinition", "MyEnum1", []); + const myEnum2 = new EnumDefinition(2, "0:0:0", "EnumDefinition", "MyEnum2", []); const unit = new SourceUnit( 3, @@ -440,41 +289,10 @@ describe("SourceUnit", () => { }); it("Middle child", () => { - const myEnum1 = new EnumDefinition( - 1, - "0:0:0", - "EnumDefinition", - "MyEnum1", - "Myunit.MyEnum1", - [] - ); - - const myEnum2 = new EnumDefinition( - 2, - "0:0:0", - "EnumDefinition", - "MyEnum2", - "Myunit.MyEnum2", - [] - ); - - const myEnum3 = new EnumDefinition( - 3, - "0:0:0", - "EnumDefinition", - "MyEnum3", - "Myunit.MyEnum3", - [] - ); - - const myEnum4 = new EnumDefinition( - 4, - "0:0:0", - "EnumDefinition", - "MyEnum4", - "Myunit.MyEnum4", - [] - ); + const myEnum1 = new EnumDefinition(1, "0:0:0", "EnumDefinition", "MyEnum1", []); + const myEnum2 = new EnumDefinition(2, "0:0:0", "EnumDefinition", "MyEnum2", []); + const myEnum3 = new EnumDefinition(3, "0:0:0", "EnumDefinition", "MyEnum3", []); + const myEnum4 = new EnumDefinition(4, "0:0:0", "EnumDefinition", "MyEnum4", []); const unit = new SourceUnit( 5, diff --git a/test/unit/ast/nodes/struct_definition.spec.ts b/test/unit/ast/nodes/struct_definition.spec.ts index 328d06f2..fe940f6a 100644 --- a/test/unit/ast/nodes/struct_definition.spec.ts +++ b/test/unit/ast/nodes/struct_definition.spec.ts @@ -29,7 +29,6 @@ describe("StructDefinition", () => { "0:0:0", "StructDefinition", "MyStruct", - "MyStruct", 0, "internal", [] diff --git a/test/unit/ast/nodes/user_defined_type_name.spec.ts b/test/unit/ast/nodes/user_defined_type_name.spec.ts index 80eff113..39001681 100644 --- a/test/unit/ast/nodes/user_defined_type_name.spec.ts +++ b/test/unit/ast/nodes/user_defined_type_name.spec.ts @@ -10,7 +10,6 @@ describe("UserDefinedTypeName", () => { "0:0:0", "StructDefinition", "MyStruct", - "MyStruct", 0, "internal", [] @@ -21,7 +20,6 @@ describe("UserDefinedTypeName", () => { "0:0:0", "StructDefinition", "OtherStruct", - "OtherStruct", 0, "internal", [] From 9aa06112abfa435e039371078104a3c7196f7db4 Mon Sep 17 00:00:00 2001 From: blitz-1306 Date: Mon, 15 Nov 2021 14:56:00 +0500 Subject: [PATCH 2/2] Fixed nit in tests --- test/integration/factory/copy.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/factory/copy.spec.ts b/test/integration/factory/copy.spec.ts index 02cd2f00..8c19d6c2 100644 --- a/test/integration/factory/copy.spec.ts +++ b/test/integration/factory/copy.spec.ts @@ -52,7 +52,7 @@ describe(`ASTNodeFactory.copy() validation`, () => { .replace(new RegExp(process.cwd(), "g"), "."); // Uncomment next line to update snapshots - fse.writeFileSync(snapshot, result, { encoding: "utf-8" }); + // fse.writeFileSync(snapshot, result, { encoding: "utf-8" }); const content = fse.readFileSync(snapshot, { encoding: "utf-8" });