solc-typed-ast 10.1.3 → 10.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- [![Build Status](https://drone.infra.mythx.io/api/badges/ConsenSys/solc-typed-ast/status.svg)](https://drone.infra.mythx.io/ConsenSys/solc-typed-ast)
1
+ [![NodeJS CI](https://github.com/ConsenSys/solc-typed-ast/actions/workflows/node.js.yaml/badge.svg)](https://github.com/ConsenSys/solc-typed-ast/actions/workflows/node.js.yaml)
2
2
  [![Coverage](https://codecov.io/gh/ConsenSys/solc-typed-ast/branch/master/graph/badge.svg?token=QDmbaGWza0)](https://codecov.io/gh/ConsenSys/solc-typed-ast)
3
3
  [![Documentation](https://github.com/ConsenSys/solc-typed-ast/workflows/Build%20and%20release%20docs/badge.svg)](https://consensys.github.io/solc-typed-ast/)
4
4
  [![npm](https://img.shields.io/npm/v/solc-typed-ast)](https://www.npmjs.com/package/solc-typed-ast)
@@ -15,5 +15,4 @@ export * from "./dispatch";
15
15
  export * from "./definitions";
16
16
  export * from "./utils";
17
17
  export * from "./xpath";
18
- export * from "./sanity";
19
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ast/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ast/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
package/dist/ast/index.js CHANGED
@@ -31,5 +31,4 @@ __exportStar(require("./dispatch"), exports);
31
31
  __exportStar(require("./definitions"), exports);
32
32
  __exportStar(require("./utils"), exports);
33
33
  __exportStar(require("./xpath"), exports);
34
- __exportStar(require("./sanity"), exports);
35
34
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ast/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA6C;AAC7C,8DAA4C;AAC5C,wDAAsC;AACtC,6DAA2C;AAC3C,wDAAsC;AACtC,qDAAmC;AACnC,uDAAqC;AACrC,6CAA2B;AAC3B,+CAA6B;AAC7B,8CAA4B;AAC5B,kDAAgC;AAChC,mDAAiC;AACjC,4CAA0B;AAC1B,6CAA2B;AAC3B,gDAA8B;AAC9B,0CAAwB;AACxB,0CAAwB;AACxB,2CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ast/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA6C;AAC7C,8DAA4C;AAC5C,wDAAsC;AACtC,6DAA2C;AAC3C,wDAAsC;AACtC,qDAAmC;AACnC,uDAAqC;AACrC,6CAA2B;AAC3B,+CAA6B;AAC7B,8CAA4B;AAC5B,kDAAgC;AAChC,mDAAiC;AACjC,4CAA0B;AAC1B,6CAA2B;AAC3B,gDAA8B;AAC9B,0CAAwB;AACxB,0CAAwB"}
@@ -3,7 +3,6 @@ import { FunctionDefinition } from "../implementation/declaration/function_defin
3
3
  import { LegacyNodeProcessor } from "./node_processor";
4
4
  export declare class LegacyFunctionDefinitionProcessor extends LegacyNodeProcessor<FunctionDefinition> {
5
5
  process(reader: ASTReader, config: ASTReaderConfiguration, raw: any): ConstructorParameters<typeof FunctionDefinition>;
6
- private detectFunctionKind;
7
6
  private detectStateMutability;
8
7
  private extract;
9
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"function_definition_processor.d.ts","sourceRoot":"","sources":["../../../src/ast/legacy/function_definition_processor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAElE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AAMvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,qBAAa,iCAAkC,SAAQ,mBAAmB,CAAC,kBAAkB,CAAC;IAC1F,OAAO,CACH,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,sBAAsB,EAC9B,GAAG,EAAE,GAAG,GACT,qBAAqB,CAAC,OAAO,kBAAkB,CAAC;IAmDnD,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,OAAO;CAoDlB"}
1
+ {"version":3,"file":"function_definition_processor.d.ts","sourceRoot":"","sources":["../../../src/ast/legacy/function_definition_processor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAElE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AAOvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,qBAAa,iCAAkC,SAAQ,mBAAmB,CAAC,kBAAkB,CAAC;IAC1F,OAAO,CACH,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,sBAAsB,EAC9B,GAAG,EAAE,GAAG,GACT,qBAAqB,CAAC,OAAO,kBAAkB,CAAC;IAmDnD,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,OAAO;CAoDlB"}
@@ -5,6 +5,7 @@ const constants_1 = require("../constants");
5
5
  const modifier_invocation_1 = require("../implementation/meta/modifier_invocation");
6
6
  const override_specifier_1 = require("../implementation/meta/override_specifier");
7
7
  const structured_documentation_1 = require("../implementation/meta/structured_documentation");
8
+ const utils_1 = require("../utils");
8
9
  const node_processor_1 = require("./node_processor");
9
10
  class LegacyFunctionDefinitionProcessor extends node_processor_1.LegacyNodeProcessor {
10
11
  process(reader, config, raw) {
@@ -16,7 +17,7 @@ class LegacyFunctionDefinitionProcessor extends node_processor_1.LegacyNodeProce
16
17
  const visibility = attributes.visibility;
17
18
  const virtual = "virtual" in attributes ? attributes.virtual : false;
18
19
  const name = attributes.name;
19
- const kind = this.detectFunctionKind(attributes);
20
+ const kind = (0, utils_1.detectFunctionKind)(attributes);
20
21
  const stateMutability = this.detectStateMutability(attributes);
21
22
  const [structuredDocumentation, overrideSpecifier, parameters, returnParameters, modifiers, body] = this.extract(children);
22
23
  let documentation;
@@ -46,15 +47,6 @@ class LegacyFunctionDefinitionProcessor extends node_processor_1.LegacyNodeProce
46
47
  raw
47
48
  ];
48
49
  }
49
- detectFunctionKind(attributes) {
50
- if (attributes.kind) {
51
- return attributes.kind;
52
- }
53
- if (attributes.isConstructor) {
54
- return constants_1.FunctionKind.Constructor;
55
- }
56
- return attributes.name === "" ? constants_1.FunctionKind.Fallback : constants_1.FunctionKind.Function;
57
- }
58
50
  detectStateMutability(attributes) {
59
51
  if (attributes.stateMutability) {
60
52
  return attributes.stateMutability;
@@ -1 +1 @@
1
- {"version":3,"file":"function_definition_processor.js","sourceRoot":"","sources":["../../../src/ast/legacy/function_definition_processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"function_definition_processor.js","sourceRoot":"","sources":["../../../src/ast/legacy/function_definition_processor.ts"],"names":[],"mappings":";;;AAEA,4CAA2E;AAE3E,oFAAgF;AAChF,kFAA8E;AAE9E,8FAA0F;AAE1F,oCAA8C;AAC9C,qDAAuD;AAEvD,MAAa,iCAAkC,SAAQ,oCAAuC;IAC1F,OAAO,CACH,MAAiB,EACjB,MAA8B,EAC9B,GAAQ;QAER,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;QAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAE3D,MAAM,KAAK,GAAW,UAAU,CAAC,KAAK,CAAC;QACvC,MAAM,aAAa,GAAY,UAAU,CAAC,aAAa,CAAC;QACxD,MAAM,UAAU,GAAuB,UAAU,CAAC,UAAU,CAAC;QAC7D,MAAM,OAAO,GAAY,SAAS,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;QAC9E,MAAM,IAAI,GAAW,UAAU,CAAC,IAAI,CAAC;QACrC,MAAM,IAAI,GAAG,IAAA,0BAAkB,EAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAE/D,MAAM,CACF,uBAAuB,EACvB,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,IAAI,CACP,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE3B,IAAI,aAA2D,CAAC;QAEhE,IAAI,uBAAuB,EAAE;YACzB,aAAa,GAAG,uBAAuB,CAAC;SAC3C;aAAM,IAAI,OAAO,UAAU,CAAC,aAAa,KAAK,QAAQ,EAAE;YACrD,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;SAC5C;QAED,OAAO;YACH,EAAE;YACF,GAAG;YACH,KAAK;YACL,IAAI;YACJ,IAAI;YACJ,OAAO;YACP,UAAU;YACV,eAAe;YACf,aAAa;YACb,UAAU;YACV,gBAAgB;YAChB,SAAS;YACT,iBAAiB;YACjB,IAAI;YACJ,aAAa;YACb,SAAS;YACT,GAAG;SACN,CAAC;IACN,CAAC;IAEO,qBAAqB,CAAC,UAAe;QACzC,IAAI,UAAU,CAAC,eAAe,EAAE;YAC5B,OAAO,UAAU,CAAC,eAAe,CAAC;SACrC;QAED,IAAI,UAAU,CAAC,QAAQ,EAAE;YACrB,OAAO,mCAAuB,CAAC,QAAQ,CAAC;SAC3C;QAED,OAAO,UAAU,CAAC,OAAO;YACrB,CAAC,CAAC,mCAAuB,CAAC,OAAO;YACjC,CAAC,CAAC,mCAAuB,CAAC,UAAU,CAAC;IAC7C,CAAC;IAEO,OAAO,CACX,QAAmB;QASnB,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;QAE5B,IAAI,aAAkD,CAAC;QAEvD,IAAI,IAAI,YAAY,kDAAuB,EAAE;YACzC,aAAa,GAAG,IAAI,CAAC;YAErB,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;SAC3B;QAED,IAAI,iBAAgD,CAAC;QAErD,IAAI,IAAI,YAAY,sCAAiB,EAAE;YACnC,iBAAiB,GAAG,IAAI,CAAC;YAEzB,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;SAC3B;QAED,MAAM,UAAU,GAAG,IAAqB,CAAC;QAEzC,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;QAExB,MAAM,gBAAgB,GAAG,IAAqB,CAAC;QAE/C,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;QAExB,MAAM,SAAS,GAAyB,EAAE,CAAC;QAE3C,OAAO,IAAI,YAAY,wCAAkB,EAAE;YACvC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAErB,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;SAC3B;QAED,IAAI,IAAuB,CAAC;QAE5B,IAAI,IAAI,EAAE;YACN,IAAI,GAAG,IAAa,CAAC;SACxB;QAED,OAAO,CAAC,aAAa,EAAE,iBAAiB,EAAE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC7F,CAAC;CACJ;AA1HD,8EA0HC"}
@@ -1 +1 @@
1
- {"version":3,"file":"function_definition_processor.d.ts","sourceRoot":"","sources":["../../../src/ast/modern/function_definition_processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAElE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AAMvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,qBAAa,iCAAkC,SAAQ,mBAAmB,CAAC,kBAAkB,CAAC;IAC1F,OAAO,CACH,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,sBAAsB,EAC9B,GAAG,EAAE,GAAG,GACT,qBAAqB,CAAC,OAAO,kBAAkB,CAAC;CAkDtD"}
1
+ {"version":3,"file":"function_definition_processor.d.ts","sourceRoot":"","sources":["../../../src/ast/modern/function_definition_processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAElE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AAOvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,qBAAa,iCAAkC,SAAQ,mBAAmB,CAAC,kBAAkB,CAAC;IAC1F,OAAO,CACH,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,sBAAsB,EAC9B,GAAG,EAAE,GAAG,GACT,qBAAqB,CAAC,OAAO,kBAAkB,CAAC;CAkDtD"}
@@ -2,12 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ModernFunctionDefinitionProcessor = void 0;
4
4
  const constants_1 = require("../constants");
5
+ const utils_1 = require("../utils");
5
6
  const node_processor_1 = require("./node_processor");
6
7
  class ModernFunctionDefinitionProcessor extends node_processor_1.ModernNodeProcessor {
7
8
  process(reader, config, raw) {
8
9
  const [id, src] = super.process(reader, config, raw);
9
10
  const scope = raw.scope;
10
- const kind = raw.kind;
11
+ const kind = (0, utils_1.detectFunctionKind)(raw);
11
12
  const isConstructor = raw.isConstructor || raw.kind === constants_1.FunctionKind.Constructor;
12
13
  const visibility = raw.visibility;
13
14
  const virtual = "virtual" in raw ? raw.virtual : false;
@@ -1 +1 @@
1
- {"version":3,"file":"function_definition_processor.js","sourceRoot":"","sources":["../../../src/ast/modern/function_definition_processor.ts"],"names":[],"mappings":";;;AACA,4CAAyF;AAOzF,qDAAuD;AAEvD,MAAa,iCAAkC,SAAQ,oCAAuC;IAC1F,OAAO,CACH,MAAiB,EACjB,MAA8B,EAC9B,GAAQ;QAER,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAErD,MAAM,KAAK,GAAW,GAAG,CAAC,KAAK,CAAC;QAChC,MAAM,IAAI,GAAiB,GAAG,CAAC,IAAI,CAAC;QACpC,MAAM,aAAa,GAAY,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,IAAI,KAAK,wBAAY,CAAC,WAAW,CAAC;QAC1F,MAAM,UAAU,GAAuB,GAAG,CAAC,UAAU,CAAC;QACtD,MAAM,OAAO,GAAY,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;QAChE,MAAM,IAAI,GAAW,GAAG,CAAC,IAAI,CAAC;QAC9B,MAAM,eAAe,GAA4B,GAAG,CAAC,eAAe,CAAC;QACrE,MAAM,YAAY,GAAuB,GAAG,CAAC,YAAY,CAAC;QAE1D,IAAI,aAA2D,CAAC;QAEhE,IAAI,GAAG,CAAC,aAAa,EAAE;YACnB,aAAa;gBACT,OAAO,GAAG,CAAC,aAAa,KAAK,QAAQ;oBACjC,CAAC,CAAC,GAAG,CAAC,aAAa;oBACnB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;SACvD;QAED,MAAM,iBAAiB,GAAG,GAAG,CAAC,SAAS;YACnC,CAAC,CAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAuB;YAC9D,CAAC,CAAC,SAAS,CAAC;QAEhB,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAkB,CAAC;QAC3E,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAkB,CAAC;QACvF,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAyB,CAAC;QACrF,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QAEhF,OAAO;YACH,EAAE;YACF,GAAG;YACH,KAAK;YACL,IAAI;YACJ,IAAI;YACJ,OAAO;YACP,UAAU;YACV,eAAe;YACf,aAAa;YACb,UAAU;YACV,gBAAgB;YAChB,SAAS;YACT,iBAAiB;YACjB,IAAI;YACJ,aAAa;YACb,YAAY;YACZ,GAAG;SACN,CAAC;IACN,CAAC;CACJ;AAvDD,8EAuDC"}
1
+ {"version":3,"file":"function_definition_processor.js","sourceRoot":"","sources":["../../../src/ast/modern/function_definition_processor.ts"],"names":[],"mappings":";;;AACA,4CAAyF;AAOzF,oCAA8C;AAC9C,qDAAuD;AAEvD,MAAa,iCAAkC,SAAQ,oCAAuC;IAC1F,OAAO,CACH,MAAiB,EACjB,MAA8B,EAC9B,GAAQ;QAER,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAErD,MAAM,KAAK,GAAW,GAAG,CAAC,KAAK,CAAC;QAChC,MAAM,IAAI,GAAiB,IAAA,0BAAkB,EAAC,GAAG,CAAC,CAAC;QACnD,MAAM,aAAa,GAAY,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,IAAI,KAAK,wBAAY,CAAC,WAAW,CAAC;QAC1F,MAAM,UAAU,GAAuB,GAAG,CAAC,UAAU,CAAC;QACtD,MAAM,OAAO,GAAY,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;QAChE,MAAM,IAAI,GAAW,GAAG,CAAC,IAAI,CAAC;QAC9B,MAAM,eAAe,GAA4B,GAAG,CAAC,eAAe,CAAC;QACrE,MAAM,YAAY,GAAuB,GAAG,CAAC,YAAY,CAAC;QAE1D,IAAI,aAA2D,CAAC;QAEhE,IAAI,GAAG,CAAC,aAAa,EAAE;YACnB,aAAa;gBACT,OAAO,GAAG,CAAC,aAAa,KAAK,QAAQ;oBACjC,CAAC,CAAC,GAAG,CAAC,aAAa;oBACnB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;SACvD;QAED,MAAM,iBAAiB,GAAG,GAAG,CAAC,SAAS;YACnC,CAAC,CAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAuB;YAC9D,CAAC,CAAC,SAAS,CAAC;QAEhB,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAkB,CAAC;QAC3E,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAkB,CAAC;QACvF,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAyB,CAAC;QACrF,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QAEhF,OAAO;YACH,EAAE;YACF,GAAG;YACH,KAAK;YACL,IAAI;YACJ,IAAI;YACJ,OAAO;YACP,UAAU;YACV,eAAe;YACf,aAAa;YACb,UAAU;YACV,gBAAgB;YAChB,SAAS;YACT,iBAAiB;YACjB,IAAI;YACJ,aAAa;YACb,YAAY;YACZ,GAAG;SACN,CAAC;IACN,CAAC;CACJ;AAvDD,8EAuDC"}
@@ -7,7 +7,7 @@ class ModernLiteralProcessor extends expression_processor_1.ModernExpressionProc
7
7
  const [id, src, typeString] = super.process(reader, config, raw);
8
8
  const kind = raw.kind;
9
9
  const hexValue = raw.hexValue;
10
- const value = raw.value;
10
+ const value = raw.value === undefined ? null : raw.value;
11
11
  const subdenomination = raw.subdenomination
12
12
  ? raw.subdenomination
13
13
  : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"literal_processor.js","sourceRoot":"","sources":["../../../src/ast/modern/literal_processor.ts"],"names":[],"mappings":";;;AAGA,iEAAmE;AAEnE,MAAa,sBAAuB,SAAQ,gDAAkC;IAC1E,OAAO,CACH,MAAiB,EACjB,MAA8B,EAC9B,GAAQ;QAER,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAEjE,MAAM,IAAI,GAAgB,GAAG,CAAC,IAAI,CAAC;QACnC,MAAM,QAAQ,GAAW,GAAG,CAAC,QAAQ,CAAC;QACtC,MAAM,KAAK,GAAW,GAAG,CAAC,KAAK,CAAC;QAChC,MAAM,eAAe,GAAqC,GAAG,CAAC,eAAe;YACzE,CAAC,CAAC,GAAG,CAAC,eAAe;YACrB,CAAC,CAAC,SAAS,CAAC;QAEhB,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC;IAC9E,CAAC;CACJ;AAjBD,wDAiBC"}
1
+ {"version":3,"file":"literal_processor.js","sourceRoot":"","sources":["../../../src/ast/modern/literal_processor.ts"],"names":[],"mappings":";;;AAGA,iEAAmE;AAEnE,MAAa,sBAAuB,SAAQ,gDAAkC;IAC1E,OAAO,CACH,MAAiB,EACjB,MAA8B,EAC9B,GAAQ;QAER,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAEjE,MAAM,IAAI,GAAgB,GAAG,CAAC,IAAI,CAAC;QACnC,MAAM,QAAQ,GAAW,GAAG,CAAC,QAAQ,CAAC;QACtC,MAAM,KAAK,GAAW,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;QACjE,MAAM,eAAe,GAAqC,GAAG,CAAC,eAAe;YACzE,CAAC,CAAC,GAAG,CAAC,eAAe;YACrB,CAAC,CAAC,SAAS,CAAC;QAEhB,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC;IAC9E,CAAC;CACJ;AAjBD,wDAiBC"}
@@ -1,3 +1,4 @@
1
+ import { FunctionKind } from "./constants";
1
2
  export declare type SourceLocation = {
2
3
  offset: number;
3
4
  length: number;
@@ -22,4 +23,5 @@ export declare function encodeFuncSignature(signature: string, hexPrefix?: boole
22
23
  export declare function encodeEventSignature(signature: string, hexPrefix?: boolean): string;
23
24
  export declare function sequence(start?: number, step?: number): Generator<number, number, number>;
24
25
  export declare function parseSourceLocation(range: string): SourceLocation;
26
+ export declare function detectFunctionKind(attributes: any): FunctionKind;
25
27
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/ast/utils.ts"],"names":[],"mappings":"AAEA,oBAAY,cAAc,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAErF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,KAAK,CACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACnB,MAAM,EAAE,CA6CV;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,MAAM,CAIhF;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,MAAM,CAIjF;AAED,wBAAiB,QAAQ,CAAC,KAAK,SAAI,EAAE,IAAI,SAAI,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAIhF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAQjE"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/ast/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,oBAAY,cAAc,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAErF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,KAAK,CACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACnB,MAAM,EAAE,CA6CV;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,MAAM,CAIhF;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,MAAM,CAIjF;AAED,wBAAiB,QAAQ,CAAC,KAAK,SAAI,EAAE,IAAI,SAAI,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAIhF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAQjE;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,GAAG,GAAG,YAAY,CAUhE"}
package/dist/ast/utils.js CHANGED
@@ -3,8 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.parseSourceLocation = exports.sequence = exports.encodeEventSignature = exports.encodeFuncSignature = exports.split = void 0;
6
+ exports.detectFunctionKind = exports.parseSourceLocation = exports.sequence = exports.encodeEventSignature = exports.encodeFuncSignature = exports.split = void 0;
7
7
  const web3_eth_abi_1 = __importDefault(require("web3-eth-abi"));
8
+ const constants_1 = require("./constants");
8
9
  /**
9
10
  * Splits the string using the separator.
10
11
  * If the string contains well formed parenthesized expressions
@@ -81,4 +82,14 @@ function parseSourceLocation(range) {
81
82
  return { offset, length, sourceIndex };
82
83
  }
83
84
  exports.parseSourceLocation = parseSourceLocation;
85
+ function detectFunctionKind(attributes) {
86
+ if (attributes.kind) {
87
+ return attributes.kind;
88
+ }
89
+ if (attributes.isConstructor) {
90
+ return constants_1.FunctionKind.Constructor;
91
+ }
92
+ return attributes.name === "" ? constants_1.FunctionKind.Fallback : constants_1.FunctionKind.Function;
93
+ }
94
+ exports.detectFunctionKind = detectFunctionKind;
84
95
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/ast/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/ast/utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"struct_equality.d.ts","sourceRoot":"","sources":["../../src/misc/struct_equality.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAS3C;AAGD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAExC;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAUjF;AAED,MAAM,WAAW,wBAAwB;IACrC,SAAS,IAAI,GAAG,EAAE,CAAC;CACtB;AAED,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,wBAAwB,CAEhF;AAED;;;;;;;;GAQG;AACH,wBAAgB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CA8FnE"}
1
+ {"version":3,"file":"struct_equality.d.ts","sourceRoot":"","sources":["../../src/misc/struct_equality.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAS3C;AAGD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAExC;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAUjF;AAED,MAAM,WAAW,wBAAwB;IACrC,SAAS,IAAI,GAAG,EAAE,CAAC;CACtB;AAED,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,wBAAwB,CAEhF;AAED;;;;;;;;GAQG;AACH,wBAAgB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CAkGnE"}
@@ -39,6 +39,9 @@ exports.isStructEqualityComparable = isStructEqualityComparable;
39
39
  * for that object correctly.
40
40
  */
41
41
  function eq(a, b, visited) {
42
+ if (a === b) {
43
+ return true;
44
+ }
42
45
  if (visited === undefined) {
43
46
  visited = new Map();
44
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"struct_equality.js","sourceRoot":"","sources":["../../src/misc/struct_equality.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"struct_equality.js","sourceRoot":"","sources":["../../src/misc/struct_equality.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "solc-typed-ast",
3
- "version": "10.1.3",
3
+ "version": "10.1.6",
4
4
  "description": "A TypeScript library providing a normalized typed Solidity AST along with the utilities necessary to generate the AST (from Solc) and traverse/manipulate it.",
5
5
  "keywords": [],
6
6
  "files": [
@@ -21,7 +21,7 @@
21
21
  "lint": "eslint src/ test/ --ext=ts",
22
22
  "lint:fix": "eslint src/ test/ --ext=ts --fix",
23
23
  "test": "NODE_OPTIONS='--max-old-space-size=2048' nyc mocha",
24
- "coverage:upload": "nyc report --reporter=text-lcov > coverage.lcov && codecov -t $CODECOV_TOKEN",
24
+ "coverage": "nyc report",
25
25
  "docs:render": "typedoc",
26
26
  "docs:clear": "rm -rf docs/",
27
27
  "docs:refresh": "npm run docs:clear && npm run docs:render",
@@ -29,7 +29,7 @@
29
29
  },
30
30
  "dependencies": {
31
31
  "axios": "^0.27.2",
32
- "commander": "^9.3.0",
32
+ "commander": "^9.4.0",
33
33
  "findup-sync": "^5.0.0",
34
34
  "fs-extra": "^10.1.0",
35
35
  "jsel": "^1.1.6",
@@ -41,22 +41,21 @@
41
41
  "devDependencies": {
42
42
  "@types/fs-extra": "^9.0.13",
43
43
  "@types/mocha": "^9.1.1",
44
- "@types/node": "^16.11.43",
44
+ "@types/node": "^16.11.46",
45
45
  "@types/semver": "^7.3.10",
46
- "@typescript-eslint/eslint-plugin": "^5.30.4",
47
- "@typescript-eslint/parser": "^5.30.4",
48
- "codecov": "^3.8.3",
49
- "eslint": "^8.19.0",
46
+ "@typescript-eslint/eslint-plugin": "^5.31.0",
47
+ "@typescript-eslint/parser": "^5.31.0",
48
+ "eslint": "^8.20.0",
50
49
  "eslint-config-prettier": "^8.5.0",
51
50
  "eslint-plugin-prettier": "^4.2.1",
52
- "expect": "^28.1.1",
51
+ "expect": "^28.1.3",
53
52
  "mocha": "^10.0.0",
54
53
  "nyc": "^15.1.0",
55
- "peggy": "^1.2.0",
54
+ "peggy": "^2.0.1",
56
55
  "prettier": "2.7.1",
57
- "ts-node": "^10.8.2",
58
- "ts-pegjs": "^1.2.2",
59
- "typedoc": "^0.23.5",
56
+ "ts-node": "^10.9.1",
57
+ "ts-pegjs": "^2.1.0",
58
+ "typedoc": "^0.23.9",
60
59
  "typescript": "^4.7.4"
61
60
  },
62
61
  "homepage": "https://consensys.github.io/solc-typed-ast",
@@ -1,35 +0,0 @@
1
- import { ASTContext, SourceUnit } from ".";
2
- /**
3
- * Error thrown by `checkSanity` that describes a problem with the AST
4
- */
5
- export declare class InsaneASTError extends Error {
6
- }
7
- /**
8
- * Check that a single SourceUnit has a sane structure. This checks that:
9
- *
10
- * - all reachable nodes belong to the same context, have their parent/sibling set correctly,
11
- * - all number id properties of nodes point to a node in the same context
12
- * - when a number property (e.g. `scope`) has a corresponding `v` prefixed property (e.g. `vScope`)
13
- * check that the number proerty corresponds to the id of the `v` prefixed property.
14
- * - most 'v' properties point to direct children of a node
15
- *
16
- * NOTE: While this code can be slightly slow, its meant to be used mostly in testing so its
17
- * not performance critical.
18
- *
19
- * @param unit - source unit to check
20
- * @param ctxts - `ASTContext`s for each of the groups of units
21
- */
22
- export declare function checkSane(unit: SourceUnit, ctx: ASTContext): void;
23
- /**
24
- * Check that a single SourceUnit has a sane structure. This checks that:
25
- * - All reachable nodes belong to the same context, have their parent/sibling set correctly.
26
- * - All number id properties of nodes point to a node in the same context.
27
- * - When a number property (e.g. `scope`) has a corresponding `v` prefixed property (e.g. `vScope`)
28
- * check that the number proerty corresponds to the id of the `v` prefixed property.
29
- * - Most 'v' properties point to direct children of a node.
30
- *
31
- * NOTE: While this code can be slightly slow, its meant to be used mostly in testing so its
32
- * not performance critical.
33
- */
34
- export declare function isSane(unit: SourceUnit, ctx: ASTContext): boolean;
35
- //# sourceMappingURL=sanity.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sanity.d.ts","sourceRoot":"","sources":["../../src/ast/sanity.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,UAAU,EA0CV,UAAU,EAeb,MAAM,GAAG,CAAC;AAoBX;;GAEG;AACH,qBAAa,cAAe,SAAQ,KAAK;CAAG;AAqP5C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI,CAqVjE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAcjE"}
@@ -1,498 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isSane = exports.checkSane = exports.InsaneASTError = void 0;
4
- const _1 = require(".");
5
- const pretty_printing_1 = require("../misc/pretty_printing");
6
- /**
7
- * Helper function to check if the node/nodes `arg` is in the `ASTContext` `ctx`.
8
- */
9
- function inCtx(arg, ctx) {
10
- if (arg instanceof _1.ASTNode) {
11
- return ctx.contains(arg);
12
- }
13
- for (const node of arg) {
14
- if (!inCtx(node, ctx)) {
15
- return false;
16
- }
17
- }
18
- return true;
19
- }
20
- /**
21
- * Error thrown by `checkSanity` that describes a problem with the AST
22
- */
23
- class InsaneASTError extends Error {
24
- }
25
- exports.InsaneASTError = InsaneASTError;
26
- /**
27
- * Check that the property `prop` of an `ASTNode` `node` is either an `ASTNode`
28
- * in the expected `ASTContext` `ctx` or an array `ASTNode[]` all of which are in
29
- * the expected `ASTContext`
30
- */
31
- function checkVFieldCtx(node, prop, ctx) {
32
- const val = node[prop];
33
- if (val instanceof _1.ASTNode) {
34
- if (!inCtx(val, ctx)) {
35
- throw new Error(`Node ${(0, pretty_printing_1.pp)(node)} property ${String(prop)} ${(0, pretty_printing_1.pp)(val)} not in expected context ${(0, pretty_printing_1.pp)(ctx)}. Instead in ${(0, pretty_printing_1.pp)(val.context)}`);
36
- }
37
- }
38
- else if (val instanceof Array) {
39
- for (let idx = 0; idx < val.length; idx++) {
40
- const el = val[idx];
41
- if (!(el instanceof _1.ASTNode)) {
42
- throw new Error(`Expected property ${String(prop)}[${idx}] of ${(0, pretty_printing_1.pp)(node)} to be an ASTNode not ${el}`);
43
- }
44
- if (!inCtx(val, ctx)) {
45
- throw new Error(`Node ${(0, pretty_printing_1.pp)(node)} property ${String(prop)}[${idx}] ${(0, pretty_printing_1.pp)(el)} not in expected context ${(0, pretty_printing_1.pp)(ctx)}. Instead in ${(0, pretty_printing_1.pp)(el.context)}`);
46
- }
47
- }
48
- }
49
- else {
50
- throw new Error(`Expected property ${String(prop)} of ${(0, pretty_printing_1.pp)(node)} to be an ASTNode, not ${val}`);
51
- }
52
- }
53
- /**
54
- * Helper to check that:
55
- *
56
- * 1) the field `field` of `node` is either a number or array of numbers
57
- * 2) the field `vField` of `node` is either an `ASTNode` or an array of ASTNodes
58
- * 3) if field is a number then `vField` is an `ASTNode` and `field == vField.id`
59
- * 4) if field is an array of numbers then `vField` is an `ASTNode[]` and
60
- * `node.field.length === node.vField.length` and `node.field[i] ===
61
- * node.vField[i].id` forall i in `[0, ... node.field.lenth)`
62
- *
63
- */
64
- function checkFieldAndVFieldMatch(node, field, vField) {
65
- const val1 = node[field];
66
- const val2 = node[vField];
67
- if (typeof val1 === "number") {
68
- if (!(val2 instanceof _1.ASTNode)) {
69
- throw new Error(`Expected property ${String(vField)} of ${(0, pretty_printing_1.pp)(node)} to be an ASTNode when ${String(field)} is a number, not ${val2}`);
70
- }
71
- if (val1 != val2.id) {
72
- throw new InsaneASTError(`Node ${(0, pretty_printing_1.pp)(node)} property ${String(field)} ${val1} differs from ${String(vField)}.id ${(0, pretty_printing_1.pp)(val2)}`);
73
- }
74
- }
75
- else if (val1 instanceof Array) {
76
- if (!(val2 instanceof Array)) {
77
- throw new Error(`Expected property ${String(vField)} of ${(0, pretty_printing_1.pp)(node)} to be an array when ${String(vField)} is an array, not ${val2}`);
78
- }
79
- if (val1.length !== val2.length) {
80
- throw new InsaneASTError(`Node ${(0, pretty_printing_1.pp)(node)} array properties ${String(field)} and ${String(vField)} have different lengths ${val1.length} != ${val2.length}`);
81
- }
82
- for (let idx = 0; idx < val1.length; idx++) {
83
- const el1 = val1[idx];
84
- const el2 = val2[idx];
85
- if (typeof el1 !== "number") {
86
- throw new Error(`Expected property ${String(field)}[${idx}] of ${(0, pretty_printing_1.pp)(node)} to be a number not ${el1}`);
87
- }
88
- if (!(el2 instanceof _1.ASTNode)) {
89
- throw new Error(`Expected property ${String(vField)}[${idx}] of ${(0, pretty_printing_1.pp)(node)} to be a number not ${el2}`);
90
- }
91
- if (el1 != el2.id) {
92
- throw new InsaneASTError(`Node ${(0, pretty_printing_1.pp)(node)} property ${String(field)}[${idx}] ${el1} differs from ${String(vField)}[${idx}].id ${(0, pretty_printing_1.pp)(el2)}`);
93
- }
94
- }
95
- }
96
- else {
97
- throw new Error(`Expected property ${String(field)} of ${(0, pretty_printing_1.pp)(node)} to be a number or array of numbers not ${val1}`);
98
- }
99
- }
100
- /**
101
- * Helper to check that:
102
- *
103
- * 1. All ASTNodes that appear in each of the `fields` of `node` is a direct child of `node`
104
- * 2. All the direct children of `node` are mentioned in some of the `fields`.
105
- */
106
- function checkDirectChildren(node, ...fields) {
107
- const directChildren = new Set(node.children);
108
- const computedChildren = new Set();
109
- for (const field of fields) {
110
- const val = node[field];
111
- if (val === undefined) {
112
- continue;
113
- }
114
- if (val instanceof _1.ASTNode) {
115
- if (!directChildren.has(val)) {
116
- throw new InsaneASTError(`Field ${String(field)} of node ${(0, pretty_printing_1.pp)(node)} is not a direct child: ${(0, pretty_printing_1.pp)(val)} child of ${(0, pretty_printing_1.pp)(val.parent)}`);
117
- }
118
- computedChildren.add(val);
119
- }
120
- else if (val instanceof Array) {
121
- for (let i = 0; i < val.length; i++) {
122
- const el = val[i];
123
- if (el === null) {
124
- continue;
125
- }
126
- if (!(el instanceof _1.ASTNode)) {
127
- throw new Error(`Field ${String(field)} of ${(0, pretty_printing_1.pp)(node)} is expected to be ASTNode, array or map with ASTNodes - instead array containing ${el}`);
128
- }
129
- if (!directChildren.has(el)) {
130
- throw new InsaneASTError(`Field ${String(field)}[${i}] of node ${(0, pretty_printing_1.pp)(node)} is not a direct child: ${(0, pretty_printing_1.pp)(el)} child of ${(0, pretty_printing_1.pp)(el.parent)}`);
131
- }
132
- computedChildren.add(el);
133
- }
134
- }
135
- else if (val instanceof Map) {
136
- for (const [k, v] of val.entries()) {
137
- if (v === null) {
138
- continue;
139
- }
140
- if (!(v instanceof _1.ASTNode)) {
141
- throw new Error(`Field ${String(field)} of ${(0, pretty_printing_1.pp)(node)} is expected to be ASTNode, array or map with ASTNodes - instead map containing ${v}`);
142
- }
143
- if (!directChildren.has(v)) {
144
- throw new InsaneASTError(`Field ${String(field)}[${k}] of node ${(0, pretty_printing_1.pp)(node)} is not a direct child: ${(0, pretty_printing_1.pp)(v)} child of ${(0, pretty_printing_1.pp)(v.parent)}`);
145
- }
146
- computedChildren.add(v);
147
- }
148
- }
149
- else {
150
- throw new Error(`Field ${String(field)} of ${(0, pretty_printing_1.pp)(node)} is neither an ASTNode nor an array of ASTNode or nulls: ${val}`);
151
- }
152
- }
153
- if (computedChildren.size < directChildren.size) {
154
- let missingChild;
155
- for (const child of directChildren) {
156
- if (computedChildren.has(child)) {
157
- continue;
158
- }
159
- missingChild = child;
160
- break;
161
- }
162
- throw new InsaneASTError(`Fields ${fields.join(", ")} don't completely cover the direct children: ${(0, pretty_printing_1.pp)(missingChild)} is missing`);
163
- }
164
- }
165
- /**
166
- * Check that a single SourceUnit has a sane structure. This checks that:
167
- *
168
- * - all reachable nodes belong to the same context, have their parent/sibling set correctly,
169
- * - all number id properties of nodes point to a node in the same context
170
- * - when a number property (e.g. `scope`) has a corresponding `v` prefixed property (e.g. `vScope`)
171
- * check that the number proerty corresponds to the id of the `v` prefixed property.
172
- * - most 'v' properties point to direct children of a node
173
- *
174
- * NOTE: While this code can be slightly slow, its meant to be used mostly in testing so its
175
- * not performance critical.
176
- *
177
- * @param unit - source unit to check
178
- * @param ctxts - `ASTContext`s for each of the groups of units
179
- */
180
- function checkSane(unit, ctx) {
181
- for (const node of unit.getChildren(true)) {
182
- if (!inCtx(node, ctx)) {
183
- throw new InsaneASTError(`Child ${(0, pretty_printing_1.pp)(node)} in different context: ${ctx.id} from expected ${ctx.id}`);
184
- }
185
- const immediateChildren = node.children;
186
- for (const child of immediateChildren) {
187
- if (child.parent !== node) {
188
- throw new InsaneASTError(`Child ${(0, pretty_printing_1.pp)(child)} has wrong parent: expected ${(0, pretty_printing_1.pp)(node)} got ${(0, pretty_printing_1.pp)(child.parent)}`);
189
- }
190
- }
191
- if (node instanceof _1.PragmaDirective ||
192
- node instanceof _1.StructuredDocumentation ||
193
- node instanceof _1.EnumValue ||
194
- node instanceof _1.Break ||
195
- node instanceof _1.Continue ||
196
- node instanceof _1.InlineAssembly ||
197
- node instanceof _1.PlaceholderStatement ||
198
- node instanceof _1.Throw ||
199
- node instanceof _1.ElementaryTypeName ||
200
- node instanceof _1.Literal) {
201
- /**
202
- * These nodes do not have any children or references.
203
- * There is nothing to check, so just skip them.
204
- */
205
- continue;
206
- }
207
- if (node instanceof _1.SourceUnit) {
208
- for (const [name, symId] of node.exportedSymbols) {
209
- const symNode = ctx.locate(symId);
210
- if (symNode === undefined) {
211
- throw new InsaneASTError(`Exported symbol ${name} ${symId} missing from context ${ctx.id}`);
212
- }
213
- if (symNode !== node.vExportedSymbols.get(name)) {
214
- throw new InsaneASTError(`Exported symbol ${name} for id ${symId} (${(0, pretty_printing_1.pp)(symNode)}) doesn't match vExportedSymbols entry: ${(0, pretty_printing_1.pp)(node.vExportedSymbols.get(name))}`);
215
- }
216
- }
217
- checkDirectChildren(node, "vPragmaDirectives", "vImportDirectives", "vContracts", "vEnums", "vStructs", "vFunctions", "vVariables", "vErrors", "vUserDefinedValueTypes", "vUsingForDirectives");
218
- }
219
- else if (node instanceof _1.ImportDirective) {
220
- /**
221
- * Unfortunately due to compiler bugs in older compilers, when child.symbolAliases[i].foreign is a number
222
- * its invalid. When its an Identifier, only its name is valid.
223
- */
224
- if (node.vSymbolAliases.length !== 0 &&
225
- node.vSymbolAliases.length !== node.symbolAliases.length) {
226
- throw new InsaneASTError(`symbolAliases.length (${node.symbolAliases.length}) and vSymboliAliases.length ${node.vSymbolAliases.length} misamtch for import ${(0, pretty_printing_1.pp)(node)}`);
227
- }
228
- for (let i = 0; i < node.vSymbolAliases.length; i++) {
229
- const def = node.vSymbolAliases[i][0];
230
- if (!inCtx(def, ctx)) {
231
- throw new InsaneASTError(`Imported symbol ${(0, pretty_printing_1.pp)(def)} from import ${(0, pretty_printing_1.pp)(node)} not in expected context ${(0, pretty_printing_1.pp)(ctx)}`);
232
- }
233
- }
234
- checkFieldAndVFieldMatch(node, "scope", "vScope");
235
- checkVFieldCtx(node, "vScope", ctx);
236
- checkFieldAndVFieldMatch(node, "sourceUnit", "vSourceUnit");
237
- checkVFieldCtx(node, "vSourceUnit", ctx);
238
- }
239
- else if (node instanceof _1.InheritanceSpecifier) {
240
- checkDirectChildren(node, "vBaseType", "vArguments");
241
- }
242
- else if (node instanceof _1.ModifierInvocation) {
243
- checkVFieldCtx(node, "vModifier", ctx);
244
- checkDirectChildren(node, "vModifierName", "vArguments");
245
- }
246
- else if (node instanceof _1.OverrideSpecifier) {
247
- checkDirectChildren(node, "vOverrides");
248
- }
249
- else if (node instanceof _1.ParameterList) {
250
- checkVFieldCtx(node, "vParameters", ctx);
251
- checkDirectChildren(node, "vParameters");
252
- }
253
- else if (node instanceof _1.UsingForDirective) {
254
- checkDirectChildren(node, "vLibraryName", "vFunctionList", "vTypeName");
255
- }
256
- else if (node instanceof _1.ContractDefinition) {
257
- checkFieldAndVFieldMatch(node, "scope", "vScope");
258
- checkVFieldCtx(node, "vScope", ctx);
259
- if (node.vScope !== node.parent) {
260
- throw new InsaneASTError(`Contract ${(0, pretty_printing_1.pp)(node)} vScope ${(0, pretty_printing_1.pp)(node.vScope)} and parent ${(0, pretty_printing_1.pp)(node.parent)} differ`);
261
- }
262
- checkFieldAndVFieldMatch(node, "linearizedBaseContracts", "vLinearizedBaseContracts");
263
- checkVFieldCtx(node, "vLinearizedBaseContracts", ctx);
264
- checkFieldAndVFieldMatch(node, "usedErrors", "vUsedErrors");
265
- checkVFieldCtx(node, "vUsedErrors", ctx);
266
- const fields = [
267
- "documentation",
268
- "vInheritanceSpecifiers",
269
- "vStateVariables",
270
- "vModifiers",
271
- "vErrors",
272
- "vEvents",
273
- "vFunctions",
274
- "vUsingForDirectives",
275
- "vStructs",
276
- "vEnums",
277
- "vUserDefinedValueTypes",
278
- "vConstructor"
279
- ];
280
- if (node.documentation instanceof _1.StructuredDocumentation) {
281
- checkVFieldCtx(node, "documentation", ctx);
282
- fields.push("documentation");
283
- }
284
- checkDirectChildren(node, ...fields);
285
- }
286
- else if (node instanceof _1.EnumDefinition) {
287
- checkVFieldCtx(node, "vScope", ctx);
288
- checkDirectChildren(node, "vMembers");
289
- }
290
- else if (node instanceof _1.ErrorDefinition) {
291
- checkVFieldCtx(node, "vScope", ctx);
292
- const fields = ["vParameters"];
293
- if (node.documentation instanceof _1.StructuredDocumentation) {
294
- checkVFieldCtx(node, "documentation", ctx);
295
- fields.push("documentation");
296
- }
297
- checkDirectChildren(node, ...fields);
298
- }
299
- else if (node instanceof _1.EventDefinition) {
300
- checkVFieldCtx(node, "vScope", ctx);
301
- const fields = ["vParameters"];
302
- if (node.documentation instanceof _1.StructuredDocumentation) {
303
- checkVFieldCtx(node, "documentation", ctx);
304
- fields.push("documentation");
305
- }
306
- checkDirectChildren(node, ...fields);
307
- }
308
- else if (node instanceof _1.FunctionDefinition) {
309
- checkFieldAndVFieldMatch(node, "scope", "vScope");
310
- checkVFieldCtx(node, "vScope", ctx);
311
- const fields = [
312
- "vParameters",
313
- "vOverrideSpecifier",
314
- "vModifiers",
315
- "vReturnParameters",
316
- "vBody"
317
- ];
318
- if (node.documentation instanceof _1.StructuredDocumentation) {
319
- checkVFieldCtx(node, "documentation", ctx);
320
- fields.push("documentation");
321
- }
322
- checkDirectChildren(node, ...fields);
323
- }
324
- else if (node instanceof _1.ModifierDefinition) {
325
- checkVFieldCtx(node, "vScope", ctx);
326
- const fields = [
327
- "vParameters",
328
- "vOverrideSpecifier",
329
- "vBody"
330
- ];
331
- if (node.documentation instanceof _1.StructuredDocumentation) {
332
- checkVFieldCtx(node, "documentation", ctx);
333
- fields.push("documentation");
334
- }
335
- checkDirectChildren(node, ...fields);
336
- }
337
- else if (node instanceof _1.StructDefinition) {
338
- checkFieldAndVFieldMatch(node, "scope", "vScope");
339
- checkVFieldCtx(node, "vScope", ctx);
340
- checkDirectChildren(node, "vMembers");
341
- }
342
- else if (node instanceof _1.UserDefinedValueTypeDefinition) {
343
- checkVFieldCtx(node, "vScope", ctx);
344
- checkVFieldCtx(node, "underlyingType", ctx);
345
- checkDirectChildren(node, "underlyingType");
346
- }
347
- else if (node instanceof _1.VariableDeclaration) {
348
- checkFieldAndVFieldMatch(node, "scope", "vScope");
349
- checkVFieldCtx(node, "vScope", ctx);
350
- const fields = [
351
- "vType",
352
- "vOverrideSpecifier",
353
- "vValue"
354
- ];
355
- if (node.documentation instanceof _1.StructuredDocumentation) {
356
- checkVFieldCtx(node, "documentation", ctx);
357
- fields.push("documentation");
358
- }
359
- checkDirectChildren(node, ...fields);
360
- }
361
- else if (node instanceof _1.Block || node instanceof _1.UncheckedBlock) {
362
- checkDirectChildren(node, "vStatements");
363
- }
364
- else if (node instanceof _1.DoWhileStatement) {
365
- checkDirectChildren(node, "vCondition", "vBody");
366
- }
367
- else if (node instanceof _1.EmitStatement) {
368
- checkDirectChildren(node, "vEventCall");
369
- }
370
- else if (node instanceof _1.RevertStatement) {
371
- checkDirectChildren(node, "errorCall");
372
- }
373
- else if (node instanceof _1.ExpressionStatement) {
374
- checkDirectChildren(node, "vExpression");
375
- }
376
- else if (node instanceof _1.ForStatement) {
377
- checkDirectChildren(node, "vInitializationExpression", "vLoopExpression", "vCondition", "vBody");
378
- }
379
- else if (node instanceof _1.IfStatement) {
380
- checkVFieldCtx(node, "vCondition", ctx);
381
- checkVFieldCtx(node, "vTrueBody", ctx);
382
- if (node.vFalseBody !== undefined) {
383
- checkVFieldCtx(node, "vFalseBody", ctx);
384
- }
385
- checkDirectChildren(node, "vCondition", "vTrueBody", "vFalseBody");
386
- }
387
- else if (node instanceof _1.Return) {
388
- checkFieldAndVFieldMatch(node, "functionReturnParameters", "vFunctionReturnParameters");
389
- checkVFieldCtx(node, "vFunctionReturnParameters", ctx);
390
- checkDirectChildren(node, "vExpression");
391
- }
392
- else if (node instanceof _1.TryCatchClause) {
393
- checkDirectChildren(node, "vParameters", "vBlock");
394
- }
395
- else if (node instanceof _1.TryStatement) {
396
- checkDirectChildren(node, "vExternalCall", "vClauses");
397
- }
398
- else if (node instanceof _1.VariableDeclarationStatement) {
399
- checkDirectChildren(node, "vDeclarations", "vInitialValue");
400
- }
401
- else if (node instanceof _1.WhileStatement) {
402
- checkDirectChildren(node, "vCondition", "vBody");
403
- }
404
- else if (node instanceof _1.ArrayTypeName) {
405
- checkDirectChildren(node, "vBaseType", "vLength");
406
- }
407
- else if (node instanceof _1.FunctionTypeName) {
408
- checkDirectChildren(node, "vParameterTypes", "vReturnParameterTypes");
409
- }
410
- else if (node instanceof _1.Mapping) {
411
- checkDirectChildren(node, "vKeyType", "vValueType");
412
- }
413
- else if (node instanceof _1.UserDefinedTypeName) {
414
- checkFieldAndVFieldMatch(node, "referencedDeclaration", "vReferencedDeclaration");
415
- checkVFieldCtx(node, "vReferencedDeclaration", ctx);
416
- checkDirectChildren(node, "path");
417
- }
418
- else if (node instanceof _1.Assignment) {
419
- checkDirectChildren(node, "vLeftHandSide", "vRightHandSide");
420
- }
421
- else if (node instanceof _1.BinaryOperation) {
422
- checkDirectChildren(node, "vLeftExpression", "vRightExpression");
423
- }
424
- else if (node instanceof _1.Conditional) {
425
- checkDirectChildren(node, "vCondition", "vTrueExpression", "vFalseExpression");
426
- }
427
- else if (node instanceof _1.ElementaryTypeNameExpression) {
428
- if (!(typeof node.typeName === "string")) {
429
- checkDirectChildren(node, "typeName");
430
- }
431
- }
432
- else if (node instanceof _1.FunctionCall) {
433
- checkDirectChildren(node, "vExpression", "vArguments");
434
- }
435
- else if (node instanceof _1.FunctionCallOptions) {
436
- checkDirectChildren(node, "vExpression", "vOptionsMap");
437
- }
438
- else if (node instanceof _1.Identifier || node instanceof _1.IdentifierPath) {
439
- if (node.referencedDeclaration !== null && node.vReferencedDeclaration !== undefined) {
440
- checkFieldAndVFieldMatch(node, "referencedDeclaration", "vReferencedDeclaration");
441
- checkVFieldCtx(node, "vReferencedDeclaration", ctx);
442
- }
443
- }
444
- else if (node instanceof _1.IndexAccess) {
445
- checkDirectChildren(node, "vBaseExpression", "vIndexExpression");
446
- }
447
- else if (node instanceof _1.IndexRangeAccess) {
448
- checkDirectChildren(node, "vBaseExpression", "vStartExpression", "vEndExpression");
449
- }
450
- else if (node instanceof _1.MemberAccess) {
451
- if (node.referencedDeclaration !== null && node.vReferencedDeclaration !== undefined) {
452
- checkFieldAndVFieldMatch(node, "referencedDeclaration", "vReferencedDeclaration");
453
- checkVFieldCtx(node, "vReferencedDeclaration", ctx);
454
- }
455
- checkDirectChildren(node, "vExpression");
456
- }
457
- else if (node instanceof _1.NewExpression) {
458
- checkDirectChildren(node, "vTypeName");
459
- }
460
- else if (node instanceof _1.TupleExpression) {
461
- checkDirectChildren(node, "vOriginalComponents", "vComponents");
462
- }
463
- else if (node instanceof _1.UnaryOperation) {
464
- checkVFieldCtx(node, "vSubExpression", ctx);
465
- checkDirectChildren(node, "vSubExpression");
466
- }
467
- else {
468
- throw new Error(`Unknown ASTNode type ${node.constructor.name}`);
469
- }
470
- }
471
- }
472
- exports.checkSane = checkSane;
473
- /**
474
- * Check that a single SourceUnit has a sane structure. This checks that:
475
- * - All reachable nodes belong to the same context, have their parent/sibling set correctly.
476
- * - All number id properties of nodes point to a node in the same context.
477
- * - When a number property (e.g. `scope`) has a corresponding `v` prefixed property (e.g. `vScope`)
478
- * check that the number proerty corresponds to the id of the `v` prefixed property.
479
- * - Most 'v' properties point to direct children of a node.
480
- *
481
- * NOTE: While this code can be slightly slow, its meant to be used mostly in testing so its
482
- * not performance critical.
483
- */
484
- function isSane(unit, ctx) {
485
- try {
486
- checkSane(unit, ctx);
487
- }
488
- catch (e) {
489
- if (e instanceof InsaneASTError) {
490
- console.error(e);
491
- return false;
492
- }
493
- throw e;
494
- }
495
- return true;
496
- }
497
- exports.isSane = isSane;
498
- //# sourceMappingURL=sanity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sanity.js","sourceRoot":"","sources":["../../src/ast/sanity.ts"],"names":[],"mappings":"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"}