occam-verify-cli 0.0.679 → 0.0.680

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.
Files changed (63) hide show
  1. package/lib/axiomLemmaTheoremConjecture.js +3 -3
  2. package/lib/conclusion.js +9 -3
  3. package/lib/consequent.js +5 -2
  4. package/lib/context/file.js +2 -2
  5. package/lib/equality.js +13 -199
  6. package/lib/premise.js +17 -5
  7. package/lib/supposition.js +9 -3
  8. package/lib/utilities/array.js +5 -2
  9. package/lib/verifier/node/metastatement.js +9 -6
  10. package/lib/verifier/node/termAsConstructor.js +2 -2
  11. package/lib/verifier/nodes/equality.js +155 -0
  12. package/lib/verifier/nodes/metastatementForMetavariable.js +8 -8
  13. package/lib/verifier/nodes/statement.js +6 -5
  14. package/lib/verifier/nodes/term.js +3 -5
  15. package/lib/verifier/nodes/termForVariable.js +24 -16
  16. package/lib/verify/file.js +2 -2
  17. package/lib/verify/label.js +2 -2
  18. package/lib/verify/metastatement.js +8 -5
  19. package/lib/verify/metavariable.js +2 -2
  20. package/lib/verify/statement.js +39 -80
  21. package/lib/verify/term.js +16 -8
  22. package/lib/verify/termAsConstructor.js +2 -2
  23. package/lib/verify/terms.js +45 -0
  24. package/lib/verify/type.js +3 -3
  25. package/lib/verify/typeAssertion.js +124 -0
  26. package/lib/verify/variable.js +3 -3
  27. package/package.json +2 -2
  28. package/src/axiomLemmaTheoremConjecture.js +2 -2
  29. package/src/conclusion.js +10 -2
  30. package/src/consequent.js +7 -1
  31. package/src/context/file.js +2 -2
  32. package/src/equality.js +15 -141
  33. package/src/premise.js +20 -4
  34. package/src/supposition.js +10 -2
  35. package/src/utilities/array.js +1 -1
  36. package/src/verifier/node/metastatement.js +9 -5
  37. package/src/verifier/node/termAsConstructor.js +1 -1
  38. package/src/verifier/nodes/equality.js +68 -0
  39. package/src/verifier/nodes/metastatementForMetavariable.js +7 -7
  40. package/src/verifier/nodes/statement.js +6 -4
  41. package/src/verifier/nodes/term.js +1 -6
  42. package/src/verifier/nodes/termForVariable.js +34 -22
  43. package/src/verify/file.js +1 -1
  44. package/src/verify/label.js +1 -1
  45. package/src/verify/metastatement.js +8 -4
  46. package/src/verify/metavariable.js +1 -1
  47. package/src/verify/statement.js +50 -119
  48. package/src/verify/term.js +20 -12
  49. package/src/verify/termAsConstructor.js +1 -1
  50. package/src/verify/terms.js +54 -0
  51. package/src/verify/type.js +2 -2
  52. package/src/verify/typeAssertion.js +164 -0
  53. package/src/verify/variable.js +2 -2
  54. package/lib/node/statement/combinator/equality.js +0 -21
  55. package/lib/ocmbinator/equality.js +0 -126
  56. package/lib/tokens/statement/combinator/equality.js +0 -17
  57. package/lib/verify/assertion/type.js +0 -125
  58. package/lib/verify/typeInference.js +0 -132
  59. package/src/node/statement/combinator/equality.js +0 -9
  60. package/src/ocmbinator/equality.js +0 -23
  61. package/src/tokens/statement/combinator/equality.js +0 -10
  62. package/src/verify/assertion/type.js +0 -169
  63. package/src/verify/typeInference.js +0 -146
@@ -1,126 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return _default;
9
- }
10
- });
11
- var _combinator = /*#__PURE__*/ _interop_require_default(require("../combinator"));
12
- var _equality = /*#__PURE__*/ _interop_require_default(require("../node/statement/combinator/equality"));
13
- var _equality1 = /*#__PURE__*/ _interop_require_default(require("../tokens/statement/combinator/equality"));
14
- var _string = require("../utilities/string");
15
- function _assert_this_initialized(self) {
16
- if (self === void 0) {
17
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
18
- }
19
- return self;
20
- }
21
- function _class_call_check(instance, Constructor) {
22
- if (!(instance instanceof Constructor)) {
23
- throw new TypeError("Cannot call a class as a function");
24
- }
25
- }
26
- function _defineProperties(target, props) {
27
- for(var i = 0; i < props.length; i++){
28
- var descriptor = props[i];
29
- descriptor.enumerable = descriptor.enumerable || false;
30
- descriptor.configurable = true;
31
- if ("value" in descriptor) descriptor.writable = true;
32
- Object.defineProperty(target, descriptor.key, descriptor);
33
- }
34
- }
35
- function _create_class(Constructor, protoProps, staticProps) {
36
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
37
- if (staticProps) _defineProperties(Constructor, staticProps);
38
- return Constructor;
39
- }
40
- function _get_prototype_of(o) {
41
- _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
42
- return o.__proto__ || Object.getPrototypeOf(o);
43
- };
44
- return _get_prototype_of(o);
45
- }
46
- function _inherits(subClass, superClass) {
47
- if (typeof superClass !== "function" && superClass !== null) {
48
- throw new TypeError("Super expression must either be null or a function");
49
- }
50
- subClass.prototype = Object.create(superClass && superClass.prototype, {
51
- constructor: {
52
- value: subClass,
53
- writable: true,
54
- configurable: true
55
- }
56
- });
57
- if (superClass) _set_prototype_of(subClass, superClass);
58
- }
59
- function _interop_require_default(obj) {
60
- return obj && obj.__esModule ? obj : {
61
- default: obj
62
- };
63
- }
64
- function _possible_constructor_return(self, call) {
65
- if (call && (_type_of(call) === "object" || typeof call === "function")) {
66
- return call;
67
- }
68
- return _assert_this_initialized(self);
69
- }
70
- function _set_prototype_of(o, p) {
71
- _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
72
- o.__proto__ = p;
73
- return o;
74
- };
75
- return _set_prototype_of(o, p);
76
- }
77
- function _type_of(obj) {
78
- "@swc/helpers - typeof";
79
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
80
- }
81
- function _is_native_reflect_construct() {
82
- if (typeof Reflect === "undefined" || !Reflect.construct) return false;
83
- if (Reflect.construct.sham) return false;
84
- if (typeof Proxy === "function") return true;
85
- try {
86
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
87
- return true;
88
- } catch (e) {
89
- return false;
90
- }
91
- }
92
- function _create_super(Derived) {
93
- var hasNativeReflectConstruct = _is_native_reflect_construct();
94
- return function _createSuperInternal() {
95
- var Super = _get_prototype_of(Derived), result;
96
- if (hasNativeReflectConstruct) {
97
- var NewTarget = _get_prototype_of(this).constructor;
98
- result = Reflect.construct(Super, arguments, NewTarget);
99
- } else {
100
- result = Super.apply(this, arguments);
101
- }
102
- return _possible_constructor_return(this, result);
103
- };
104
- }
105
- var EqualityCombinator = /*#__PURE__*/ function(Combinator) {
106
- _inherits(EqualityCombinator, Combinator);
107
- var _super = _create_super(EqualityCombinator);
108
- function EqualityCombinator() {
109
- _class_call_check(this, EqualityCombinator);
110
- return _super.apply(this, arguments);
111
- }
112
- _create_class(EqualityCombinator, null, [
113
- {
114
- key: "fromNothing",
115
- value: function fromNothing() {
116
- var node = _equality.default, tokens = _equality1.default, string = (0, _string.nodeAsString)(node, tokens), statementNode = node, equalityCombinator = new EqualityCombinator(statementNode, string);
117
- return equalityCombinator;
118
- }
119
- }
120
- ]);
121
- return EqualityCombinator;
122
- }(_combinator.default);
123
- var equalityCombinator = EqualityCombinator.fromNothing();
124
- var _default = equalityCombinator;
125
-
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vY21iaW5hdG9yL2VxdWFsaXR5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgQ29tYmluYXRvciBmcm9tIFwiLi4vY29tYmluYXRvclwiO1xuaW1wb3J0IGVxdWFsaXR5Q29tYmluYXRvclN0YXRlbWVudE5vZGUgZnJvbSBcIi4uL25vZGUvc3RhdGVtZW50L2NvbWJpbmF0b3IvZXF1YWxpdHlcIjtcbmltcG9ydCB1bnF1YWxpZmllZEVxdWFsaXR5Q29tYmluYXRvclN0YXRlbWVudFRva2VucyBmcm9tIFwiLi4vdG9rZW5zL3N0YXRlbWVudC9jb21iaW5hdG9yL2VxdWFsaXR5XCI7XG5cbmltcG9ydCB7IG5vZGVBc1N0cmluZyB9IGZyb20gXCIuLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5cbmNsYXNzIEVxdWFsaXR5Q29tYmluYXRvciBleHRlbmRzIENvbWJpbmF0b3Ige1xuICBzdGF0aWMgZnJvbU5vdGhpbmcoKSB7XG4gICAgY29uc3Qgbm9kZSA9IGVxdWFsaXR5Q29tYmluYXRvclN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICB0b2tlbnMgPSB1bnF1YWxpZmllZEVxdWFsaXR5Q29tYmluYXRvclN0YXRlbWVudFRva2VucywgLy8vXG4gICAgICAgICAgc3RyaW5nID0gbm9kZUFzU3RyaW5nKG5vZGUsIHRva2VucyksXG4gICAgICAgICAgc3RhdGVtZW50Tm9kZSA9IG5vZGUsIC8vL1xuICAgICAgICAgIGVxdWFsaXR5Q29tYmluYXRvciA9IG5ldyBFcXVhbGl0eUNvbWJpbmF0b3Ioc3RhdGVtZW50Tm9kZSwgc3RyaW5nKTtcblxuICAgIHJldHVybiBlcXVhbGl0eUNvbWJpbmF0b3I7XG4gIH1cbn1cblxuY29uc3QgZXF1YWxpdHlDb21iaW5hdG9yID0gRXF1YWxpdHlDb21iaW5hdG9yLmZyb21Ob3RoaW5nKCk7XG5cbmV4cG9ydCBkZWZhdWx0IGVxdWFsaXR5Q29tYmluYXRvcjtcbiJdLCJuYW1lcyI6WyJFcXVhbGl0eUNvbWJpbmF0b3IiLCJmcm9tTm90aGluZyIsIm5vZGUiLCJlcXVhbGl0eUNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlIiwidG9rZW5zIiwidW5xdWFsaWZpZWRFcXVhbGl0eUNvbWJpbmF0b3JTdGF0ZW1lbnRUb2tlbnMiLCJzdHJpbmciLCJub2RlQXNTdHJpbmciLCJzdGF0ZW1lbnROb2RlIiwiZXF1YWxpdHlDb21iaW5hdG9yIiwiQ29tYmluYXRvciJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBc0JBOzs7ZUFBQTs7O2lFQXBCdUI7K0RBQ3FCO2dFQUNhO3NCQUU1Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU3QixJQUFBLEFBQU1BLG1DQVlILEFBWkg7Y0FBTUE7K0JBQUFBO2FBQUFBO2dDQUFBQTs7O2tCQUFBQTs7WUFDR0MsS0FBQUE7bUJBQVAsU0FBT0E7Z0JBQ0wsSUFBTUMsT0FBT0MsaUJBQStCLEVBQ3RDQyxTQUFTQyxrQkFBNEMsRUFDckRDLFNBQVNDLElBQUFBLG9CQUFZLEVBQUNMLE1BQU1FLFNBQzVCSSxnQkFBZ0JOLE1BQ2hCTyxxQkFBcUIsSUFOekJULG1CQU1nRFEsZUFBZUY7Z0JBRWpFLE9BQU9HO1lBQ1Q7OztXQVRJVDtFQUEyQlUsbUJBQVU7QUFZM0MsSUFBTUQscUJBQXFCVCxtQkFBbUJDLFdBQVc7SUFFekQsV0FBZVEifQ==
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return _default;
9
- }
10
- });
11
- var _typeNames = require("../../../typeNames");
12
- var _tokens = require("../../../utilities/tokens");
13
- var equalityCombinatorStatementString = "".concat(_typeNames.OBJECT_TYPE_NAME, " = ").concat(_typeNames.OBJECT_TYPE_NAME);
14
- var unqualifiedEqualityCombinatorStatementTokens = (0, _tokens.unqualifiedStatementTokensFromStatementString)(equalityCombinatorStatementString);
15
- var _default = unqualifiedEqualityCombinatorStatementTokens;
16
-
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90b2tlbnMvc3RhdGVtZW50L2NvbWJpbmF0b3IvZXF1YWxpdHkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IE9CSkVDVF9UWVBFX05BTUUgfSBmcm9tIFwiLi4vLi4vLi4vdHlwZU5hbWVzXCI7XG5pbXBvcnQgeyB1bnF1YWxpZmllZFN0YXRlbWVudFRva2Vuc0Zyb21TdGF0ZW1lbnRTdHJpbmcgfSBmcm9tIFwiLi4vLi4vLi4vdXRpbGl0aWVzL3Rva2Vuc1wiO1xuXG5jb25zdCBlcXVhbGl0eUNvbWJpbmF0b3JTdGF0ZW1lbnRTdHJpbmcgPSBgJHtPQkpFQ1RfVFlQRV9OQU1FfSA9ICR7T0JKRUNUX1RZUEVfTkFNRX1gO1xuXG5jb25zdCB1bnF1YWxpZmllZEVxdWFsaXR5Q29tYmluYXRvclN0YXRlbWVudFRva2VucyA9IHVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zRnJvbVN0YXRlbWVudFN0cmluZyhlcXVhbGl0eUNvbWJpbmF0b3JTdGF0ZW1lbnRTdHJpbmcpO1xuXG5leHBvcnQgZGVmYXVsdCB1bnF1YWxpZmllZEVxdWFsaXR5Q29tYmluYXRvclN0YXRlbWVudFRva2VucztcbiJdLCJuYW1lcyI6WyJlcXVhbGl0eUNvbWJpbmF0b3JTdGF0ZW1lbnRTdHJpbmciLCJPQkpFQ1RfVFlQRV9OQU1FIiwidW5xdWFsaWZpZWRFcXVhbGl0eUNvbWJpbmF0b3JTdGF0ZW1lbnRUb2tlbnMiLCJ1bnF1YWxpZmllZFN0YXRlbWVudFRva2Vuc0Zyb21TdGF0ZW1lbnRTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVNBOzs7ZUFBQTs7O3lCQVBpQztzQkFDNkI7QUFFOUQsSUFBTUEsb0NBQW9DLEFBQUMsR0FBd0JDLE9BQXRCQSwyQkFBZ0IsRUFBQyxPQUFzQixPQUFqQkEsMkJBQWdCO0FBRW5GLElBQU1DLCtDQUErQ0MsSUFBQUEscURBQTZDLEVBQUNIO0lBRW5HLFdBQWVFIn0=
@@ -1,125 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: all[name]
9
- });
10
- }
11
- _export(exports, {
12
- default: function() {
13
- return verifyTypeAssertion;
14
- },
15
- verifyVariableTypeAssertion: function() {
16
- return verifyVariableTypeAssertion;
17
- }
18
- });
19
- var _variable = /*#__PURE__*/ _interop_require_default(require("../../variable"));
20
- var _assignment = /*#__PURE__*/ _interop_require_default(require("../../assignment"));
21
- var _array = require("../../utilities/array");
22
- var _query = require("../../utilities/query");
23
- var _term = require("../../verify/term");
24
- function _interop_require_default(obj) {
25
- return obj && obj.__esModule ? obj : {
26
- default: obj
27
- };
28
- }
29
- var termNodeQuery = (0, _query.nodeQuery)("/typeAssertion/term!"), typeNodeQuery = (0, _query.nodeQuery)("/typeAssertion/type!");
30
- function verifyTypeAssertion(typeAssertionNode, assignments, derived, context) {
31
- var typeAssertionVerified = false;
32
- var typeAssertionString = context.nodeAsString(typeAssertionNode);
33
- context.trace("Verifying the '".concat(typeAssertionString, "' type assertion..."), typeAssertionNode);
34
- var typeNode = typeNodeQuery(typeAssertionNode), typeName = (0, _query.typeNameFromTypeNode)(typeNode), typePresent = context.isTypePresentByTypeName(typeName);
35
- if (!typePresent) {
36
- context.info("The '".concat(typeName, "' type is not present."), typeAssertionNode);
37
- } else {
38
- if (!typeAssertionVerified) {
39
- var variableTypeAssertionVerified = verifyVariableTypeAssertion(typeAssertionNode, assignments, derived, context);
40
- typeAssertionVerified = variableTypeAssertionVerified; ///
41
- }
42
- if (!typeAssertionVerified) {
43
- var termTypeAssertionVerified = verifyTermTypeAssertion(typeAssertionNode, derived, context);
44
- typeAssertionVerified = termTypeAssertionVerified; ///
45
- }
46
- }
47
- if (typeAssertionVerified) {
48
- context.debug("...verified the '".concat(typeAssertionString, "' statement type assertion."), typeAssertionNode);
49
- }
50
- return typeAssertionVerified;
51
- }
52
- function verifyVariableTypeAssertion(typeAssertionNode, assignments, derived, context) {
53
- var variableTypeAssertionVerified = false;
54
- var variables = [], termNode = termNodeQuery(typeAssertionNode), termVerifiedAsVariable = (0, _term.verifyTermAsVariable)(termNode, variables, context);
55
- if (termVerifiedAsVariable) {
56
- var typeAssertionString = context.nodeAsString(typeAssertionNode);
57
- context.trace("Verifying the '".concat(typeAssertionString, "' variable type assertion..."), typeAssertionNode);
58
- var typeNode = typeNodeQuery(typeAssertionNode), typeName = (0, _query.typeNameFromTypeNode)(typeNode), assertedTypeName = typeName, assertedType = context.findTypeByTypeName(assertedTypeName);
59
- if (assertedType === null) {
60
- context.info("The '".concat(assertedTypeName, "' asserted type is not present."), typeAssertionNode);
61
- } else {
62
- var firstVariable = (0, _array.first)(variables), variable = firstVariable, variableName = variable.getName(), variableType = variable.getType();
63
- if (derived) {
64
- var assertedTypeEqualToOrSuperTypeOfVariableType = assertedType.isEqualToOrSuperTypeOf(variableType);
65
- if (!assertedTypeEqualToOrSuperTypeOfVariableType) {
66
- var assertedTypeName1 = assertedType.getName(), variableTypeName = variableType.getName();
67
- context.info("The '".concat(assertedTypeName1, "' asserted type is not equal to or a super-type of the '").concat(variableName, "' variable's '").concat(variableTypeName, "' type."), typeAssertionNode);
68
- } else {
69
- variableTypeAssertionVerified = true;
70
- }
71
- } else {
72
- var assertedTypeEqualToOrSubTypeOfVariableType = assertedType.isEqualToOrSubTypeOf(variableType);
73
- if (!assertedTypeEqualToOrSubTypeOfVariableType) {
74
- var assertedTypeName2 = assertedType.getName(), variableTypeName1 = variableType.getName();
75
- context.info("The '".concat(assertedTypeName2, "' asserted type is not equal to or a sub-type of the '").concat(variableName, "' variable's '").concat(variableTypeName1, "' type."), typeAssertionNode);
76
- } else {
77
- var name = variableName, type = assertedType, variable1 = _variable.default.fromNameAndType(name, type), assignment = _assignment.default.fromVariable(variable1);
78
- assignments.push(assignment);
79
- variableTypeAssertionVerified = true;
80
- }
81
- }
82
- }
83
- if (variableTypeAssertionVerified) {
84
- context.debug("...verified the '".concat(typeAssertionString, "' variable type assertion."), typeAssertionNode);
85
- }
86
- }
87
- return variableTypeAssertionVerified;
88
- }
89
- function verifyTermTypeAssertion(typeAssertionNode, derived, context) {
90
- var termTypeAssertionVerified = false;
91
- var types = [], termNode = termNodeQuery(typeAssertionNode), termVerifiedAgainstConstructors = (0, _term.verifyTermAgainstConstructors)(termNode, types, context);
92
- if (termVerifiedAgainstConstructors) {
93
- var typeAssertionString = context.nodeAsString(typeAssertionNode);
94
- context.trace("Verifying the '".concat(typeAssertionString, "' term type assertion..."), typeAssertionNode);
95
- var typeNode = typeNodeQuery(typeAssertionNode), typeName = (0, _query.typeNameFromTypeNode)(typeNode), assertedTypeName = typeName, assertedType = context.findTypeByTypeName(assertedTypeName);
96
- if (assertedType === null) {
97
- context.info("The '".concat(assertedTypeName, "' asserted type is not present."), typeAssertionNode);
98
- } else {
99
- var firstType = (0, _array.first)(types), termType = firstType; ///
100
- if (derived) {
101
- var assertedTypeIsEqualToOrSuperTypeOfTermType = assertedType.isEqualToOrSuperTypeOf(termType);
102
- if (!assertedTypeIsEqualToOrSuperTypeOfTermType) {
103
- var termString = context.nodeAsString(termNode), termTypeName = termType.getName(), assertedTypeName1 = assertedType.getName();
104
- context.info("The '".concat(assertedTypeName1, "' asserted type is not equal to or a super-type of the '").concat(termString, "' term's '").concat(termTypeName, "' type."), typeAssertionNode);
105
- } else {
106
- termTypeAssertionVerified = true;
107
- }
108
- } else {
109
- var assertedTypeIsEqualToOrSubTypeOfTermType = assertedType.isEqualToOrSubTypeOf(termType);
110
- if (!assertedTypeIsEqualToOrSubTypeOfTermType) {
111
- var termString1 = context.nodeAsString(termNode), termTypeName1 = termType.getName(), assertedTypeName2 = assertedType.getName();
112
- context.info("The '".concat(assertedTypeName2, "' asserted type is not equal to or a sub-type of the '").concat(termString1, "' term's '").concat(termTypeName1, "' type."), typeAssertionNode);
113
- } else {
114
- termTypeAssertionVerified = true;
115
- }
116
- }
117
- }
118
- if (termTypeAssertionVerified) {
119
- context.debug("...verified the '".concat(typeAssertionString, "' term type assertion."), typeAssertionNode);
120
- }
121
- }
122
- return termTypeAssertionVerified;
123
- }
124
-
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvYXNzZXJ0aW9uL3R5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBWYXJpYWJsZSBmcm9tIFwiLi4vLi4vdmFyaWFibGVcIjtcbmltcG9ydCBBc3NpZ25tZW50IGZyb20gXCIuLi8uLi9hc3NpZ25tZW50XCI7XG5cbmltcG9ydCB7IGZpcnN0IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCB0eXBlTmFtZUZyb21UeXBlTm9kZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IHZlcmlmeVRlcm1Bc1ZhcmlhYmxlLCB2ZXJpZnlUZXJtQWdhaW5zdENvbnN0cnVjdG9ycyB9IGZyb20gXCIuLi8uLi92ZXJpZnkvdGVybVwiO1xuXG5jb25zdCB0ZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVBc3NlcnRpb24vdGVybSFcIiksXG4gICAgICB0eXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVBc3NlcnRpb24vdHlwZSFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVR5cGVBc3NlcnRpb24odHlwZUFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBjb250ZXh0KSB7XG4gIGxldCB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCB0eXBlQXNzZXJ0aW9uU3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcodHlwZUFzc2VydGlvbk5vZGUpO1xuXG4gIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZUFzc2VydGlvblN0cmluZ30nIHR5cGUgYXNzZXJ0aW9uLi4uYCwgdHlwZUFzc2VydGlvbk5vZGUpO1xuXG4gIGNvbnN0IHR5cGVOb2RlID0gdHlwZU5vZGVRdWVyeSh0eXBlQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgIHR5cGVOYW1lID0gdHlwZU5hbWVGcm9tVHlwZU5vZGUodHlwZU5vZGUpLFxuICAgICAgICB0eXBlUHJlc2VudCA9IGNvbnRleHQuaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUodHlwZU5hbWUpO1xuXG4gIGlmICghdHlwZVByZXNlbnQpIHtcbiAgICBjb250ZXh0LmluZm8oYFRoZSAnJHt0eXBlTmFtZX0nIHR5cGUgaXMgbm90IHByZXNlbnQuYCwgdHlwZUFzc2VydGlvbk5vZGUpO1xuICB9IGVsc2Uge1xuICAgIGlmICghdHlwZUFzc2VydGlvblZlcmlmaWVkKSB7XG4gICAgICBjb25zdCB2YXJpYWJsZVR5cGVBc3NlcnRpb25WZXJpZmllZCA9IHZlcmlmeVZhcmlhYmxlVHlwZUFzc2VydGlvbih0eXBlQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGNvbnRleHQpO1xuXG4gICAgICB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSB2YXJpYWJsZVR5cGVBc3NlcnRpb25WZXJpZmllZDsgIC8vL1xuICAgIH1cblxuICAgIGlmICghdHlwZUFzc2VydGlvblZlcmlmaWVkKSB7XG4gICAgICBjb25zdCB0ZXJtVHlwZUFzc2VydGlvblZlcmlmaWVkID0gdmVyaWZ5VGVybVR5cGVBc3NlcnRpb24odHlwZUFzc2VydGlvbk5vZGUsIGRlcml2ZWQsIGNvbnRleHQpO1xuXG4gICAgICB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSB0ZXJtVHlwZUFzc2VydGlvblZlcmlmaWVkOyAgLy8vXG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVBc3NlcnRpb25WZXJpZmllZCkge1xuICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0eXBlQXNzZXJ0aW9uU3RyaW5nfScgc3RhdGVtZW50IHR5cGUgYXNzZXJ0aW9uLmAsIHR5cGVBc3NlcnRpb25Ob2RlKTtcbiAgfVxuXG4gIHJldHVybiB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlWYXJpYWJsZVR5cGVBc3NlcnRpb24odHlwZUFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBjb250ZXh0KSB7XG4gIGxldCB2YXJpYWJsZVR5cGVBc3NlcnRpb25WZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IHZhcmlhYmxlcyA9IFtdLFxuICAgICAgICB0ZXJtTm9kZSA9IHRlcm1Ob2RlUXVlcnkodHlwZUFzc2VydGlvbk5vZGUpLFxuICAgICAgICB0ZXJtVmVyaWZpZWRBc1ZhcmlhYmxlID0gdmVyaWZ5VGVybUFzVmFyaWFibGUodGVybU5vZGUsIHZhcmlhYmxlcywgY29udGV4dCk7XG5cbiAgaWYgKHRlcm1WZXJpZmllZEFzVmFyaWFibGUpIHtcbiAgICBjb25zdCB0eXBlQXNzZXJ0aW9uU3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcodHlwZUFzc2VydGlvbk5vZGUpO1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0eXBlQXNzZXJ0aW9uU3RyaW5nfScgdmFyaWFibGUgdHlwZSBhc3NlcnRpb24uLi5gLCB0eXBlQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBjb25zdCB0eXBlTm9kZSA9IHR5cGVOb2RlUXVlcnkodHlwZUFzc2VydGlvbk5vZGUpLFxuICAgICAgICAgIHR5cGVOYW1lID0gdHlwZU5hbWVGcm9tVHlwZU5vZGUodHlwZU5vZGUpLFxuICAgICAgICAgIGFzc2VydGVkVHlwZU5hbWUgPSB0eXBlTmFtZSwgIC8vL1xuICAgICAgICAgIGFzc2VydGVkVHlwZSA9IGNvbnRleHQuZmluZFR5cGVCeVR5cGVOYW1lKGFzc2VydGVkVHlwZU5hbWUpO1xuXG4gICAgaWYgKGFzc2VydGVkVHlwZSA9PT0gbnVsbCkge1xuICAgICAgY29udGV4dC5pbmZvKGBUaGUgJyR7YXNzZXJ0ZWRUeXBlTmFtZX0nIGFzc2VydGVkIHR5cGUgaXMgbm90IHByZXNlbnQuYCwgdHlwZUFzc2VydGlvbk5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBmaXJzdFZhcmlhYmxlID0gZmlyc3QodmFyaWFibGVzKSxcbiAgICAgICAgICAgIHZhcmlhYmxlID0gZmlyc3RWYXJpYWJsZSwgLy8vXG4gICAgICAgICAgICB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZS5nZXROYW1lKCksXG4gICAgICAgICAgICB2YXJpYWJsZVR5cGUgPSB2YXJpYWJsZS5nZXRUeXBlKCk7XG5cbiAgICAgIGlmIChkZXJpdmVkKSB7XG4gICAgICAgIGNvbnN0IGFzc2VydGVkVHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mVmFyaWFibGVUeXBlID0gYXNzZXJ0ZWRUeXBlLmlzRXF1YWxUb09yU3VwZXJUeXBlT2YodmFyaWFibGVUeXBlKTtcblxuICAgICAgICBpZiAoIWFzc2VydGVkVHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mVmFyaWFibGVUeXBlKSB7XG4gICAgICAgICAgY29uc3QgYXNzZXJ0ZWRUeXBlTmFtZSA9IGFzc2VydGVkVHlwZS5nZXROYW1lKCksXG4gICAgICAgICAgICAgICAgdmFyaWFibGVUeXBlTmFtZSA9IHZhcmlhYmxlVHlwZS5nZXROYW1lKCk7XG5cbiAgICAgICAgICBjb250ZXh0LmluZm8oYFRoZSAnJHthc3NlcnRlZFR5cGVOYW1lfScgYXNzZXJ0ZWQgdHlwZSBpcyBub3QgZXF1YWwgdG8gb3IgYSBzdXBlci10eXBlIG9mIHRoZSAnJHt2YXJpYWJsZU5hbWV9JyB2YXJpYWJsZSdzICcke3ZhcmlhYmxlVHlwZU5hbWV9JyB0eXBlLmAsIHR5cGVBc3NlcnRpb25Ob2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YXJpYWJsZVR5cGVBc3NlcnRpb25WZXJpZmllZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGFzc2VydGVkVHlwZUVxdWFsVG9PclN1YlR5cGVPZlZhcmlhYmxlVHlwZSA9IGFzc2VydGVkVHlwZS5pc0VxdWFsVG9PclN1YlR5cGVPZih2YXJpYWJsZVR5cGUpO1xuXG4gICAgICAgIGlmICghYXNzZXJ0ZWRUeXBlRXF1YWxUb09yU3ViVHlwZU9mVmFyaWFibGVUeXBlKSB7XG4gICAgICAgICAgY29uc3QgYXNzZXJ0ZWRUeXBlTmFtZSA9IGFzc2VydGVkVHlwZS5nZXROYW1lKCksXG4gICAgICAgICAgICAgICAgdmFyaWFibGVUeXBlTmFtZSA9IHZhcmlhYmxlVHlwZS5nZXROYW1lKCk7XG5cbiAgICAgICAgICBjb250ZXh0LmluZm8oYFRoZSAnJHthc3NlcnRlZFR5cGVOYW1lfScgYXNzZXJ0ZWQgdHlwZSBpcyBub3QgZXF1YWwgdG8gb3IgYSBzdWItdHlwZSBvZiB0aGUgJyR7dmFyaWFibGVOYW1lfScgdmFyaWFibGUncyAnJHt2YXJpYWJsZVR5cGVOYW1lfScgdHlwZS5gLCB0eXBlQXNzZXJ0aW9uTm9kZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgbmFtZSA9IHZhcmlhYmxlTmFtZSwgIC8vL1xuICAgICAgICAgICAgICAgIHR5cGUgPSBhc3NlcnRlZFR5cGUsICAvLy9cbiAgICAgICAgICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21OYW1lQW5kVHlwZShuYW1lLCB0eXBlKSxcbiAgICAgICAgICAgICAgICBhc3NpZ25tZW50ID0gQXNzaWdubWVudC5mcm9tVmFyaWFibGUodmFyaWFibGUpO1xuXG4gICAgICAgICAgYXNzaWdubWVudHMucHVzaChhc3NpZ25tZW50KTtcblxuICAgICAgICAgIHZhcmlhYmxlVHlwZUFzc2VydGlvblZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YXJpYWJsZVR5cGVBc3NlcnRpb25WZXJpZmllZCkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3R5cGVBc3NlcnRpb25TdHJpbmd9JyB2YXJpYWJsZSB0eXBlIGFzc2VydGlvbi5gLCB0eXBlQXNzZXJ0aW9uTm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZhcmlhYmxlVHlwZUFzc2VydGlvblZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlUZXJtVHlwZUFzc2VydGlvbih0eXBlQXNzZXJ0aW9uTm9kZSwgZGVyaXZlZCwgY29udGV4dCkge1xuICBsZXQgdGVybVR5cGVBc3NlcnRpb25WZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IHR5cGVzID0gW10sXG4gICAgICAgIHRlcm1Ob2RlID0gdGVybU5vZGVRdWVyeSh0eXBlQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgIHRlcm1WZXJpZmllZEFnYWluc3RDb25zdHJ1Y3RvcnMgPSB2ZXJpZnlUZXJtQWdhaW5zdENvbnN0cnVjdG9ycyh0ZXJtTm9kZSwgdHlwZXMsIGNvbnRleHQpO1xuXG4gIGlmICh0ZXJtVmVyaWZpZWRBZ2FpbnN0Q29uc3RydWN0b3JzKSB7XG4gICAgY29uc3QgdHlwZUFzc2VydGlvblN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKHR5cGVBc3NlcnRpb25Ob2RlKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZUFzc2VydGlvblN0cmluZ30nIHRlcm0gdHlwZSBhc3NlcnRpb24uLi5gLCB0eXBlQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBjb25zdCB0eXBlTm9kZSA9IHR5cGVOb2RlUXVlcnkodHlwZUFzc2VydGlvbk5vZGUpLFxuICAgICAgICAgIHR5cGVOYW1lID0gdHlwZU5hbWVGcm9tVHlwZU5vZGUodHlwZU5vZGUpLFxuICAgICAgICAgIGFzc2VydGVkVHlwZU5hbWUgPSB0eXBlTmFtZSwgIC8vL1xuICAgICAgICAgIGFzc2VydGVkVHlwZSA9IGNvbnRleHQuZmluZFR5cGVCeVR5cGVOYW1lKGFzc2VydGVkVHlwZU5hbWUpO1xuXG4gICAgaWYgKGFzc2VydGVkVHlwZSA9PT0gbnVsbCkge1xuICAgICAgY29udGV4dC5pbmZvKGBUaGUgJyR7YXNzZXJ0ZWRUeXBlTmFtZX0nIGFzc2VydGVkIHR5cGUgaXMgbm90IHByZXNlbnQuYCwgdHlwZUFzc2VydGlvbk5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBmaXJzdFR5cGUgPSBmaXJzdCh0eXBlcyksXG4gICAgICAgICAgICB0ZXJtVHlwZSA9IGZpcnN0VHlwZTsgLy8vXG5cbiAgICAgIGlmIChkZXJpdmVkKSB7XG4gICAgICAgIGNvbnN0IGFzc2VydGVkVHlwZUlzRXF1YWxUb09yU3VwZXJUeXBlT2ZUZXJtVHlwZSA9IGFzc2VydGVkVHlwZS5pc0VxdWFsVG9PclN1cGVyVHlwZU9mKHRlcm1UeXBlKTtcblxuICAgICAgICBpZiAoIWFzc2VydGVkVHlwZUlzRXF1YWxUb09yU3VwZXJUeXBlT2ZUZXJtVHlwZSkge1xuICAgICAgICAgIGNvbnN0IHRlcm1TdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyh0ZXJtTm9kZSksXG4gICAgICAgICAgICAgICAgdGVybVR5cGVOYW1lID0gdGVybVR5cGUuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgICAgIGFzc2VydGVkVHlwZU5hbWUgPSBhc3NlcnRlZFR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgICAgICAgY29udGV4dC5pbmZvKGBUaGUgJyR7YXNzZXJ0ZWRUeXBlTmFtZX0nIGFzc2VydGVkIHR5cGUgaXMgbm90IGVxdWFsIHRvIG9yIGEgc3VwZXItdHlwZSBvZiB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0ncyAnJHt0ZXJtVHlwZU5hbWV9JyB0eXBlLmAsIHR5cGVBc3NlcnRpb25Ob2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0ZXJtVHlwZUFzc2VydGlvblZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgYXNzZXJ0ZWRUeXBlSXNFcXVhbFRvT3JTdWJUeXBlT2ZUZXJtVHlwZSA9IGFzc2VydGVkVHlwZS5pc0VxdWFsVG9PclN1YlR5cGVPZih0ZXJtVHlwZSk7XG5cbiAgICAgICAgaWYgKCFhc3NlcnRlZFR5cGVJc0VxdWFsVG9PclN1YlR5cGVPZlRlcm1UeXBlKSB7XG4gICAgICAgICAgY29uc3QgdGVybVN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKHRlcm1Ob2RlKSxcbiAgICAgICAgICAgICAgICB0ZXJtVHlwZU5hbWUgPSB0ZXJtVHlwZS5nZXROYW1lKCksXG4gICAgICAgICAgICAgICAgYXNzZXJ0ZWRUeXBlTmFtZSA9IGFzc2VydGVkVHlwZS5nZXROYW1lKCk7XG5cbiAgICAgICAgICBjb250ZXh0LmluZm8oYFRoZSAnJHthc3NlcnRlZFR5cGVOYW1lfScgYXNzZXJ0ZWQgdHlwZSBpcyBub3QgZXF1YWwgdG8gb3IgYSBzdWItdHlwZSBvZiB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0ncyAnJHt0ZXJtVHlwZU5hbWV9JyB0eXBlLmAsIHR5cGVBc3NlcnRpb25Ob2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0ZXJtVHlwZUFzc2VydGlvblZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0ZXJtVHlwZUFzc2VydGlvblZlcmlmaWVkKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZUFzc2VydGlvblN0cmluZ30nIHRlcm0gdHlwZSBhc3NlcnRpb24uYCwgdHlwZUFzc2VydGlvbk5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0ZXJtVHlwZUFzc2VydGlvblZlcmlmaWVkO1xufVxuXG4iXSwibmFtZXMiOlsidmVyaWZ5VHlwZUFzc2VydGlvbiIsInZlcmlmeVZhcmlhYmxlVHlwZUFzc2VydGlvbiIsInRlcm1Ob2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ0eXBlTm9kZVF1ZXJ5IiwidHlwZUFzc2VydGlvbk5vZGUiLCJhc3NpZ25tZW50cyIsImRlcml2ZWQiLCJjb250ZXh0IiwidHlwZUFzc2VydGlvblZlcmlmaWVkIiwidHlwZUFzc2VydGlvblN0cmluZyIsIm5vZGVBc1N0cmluZyIsInRyYWNlIiwidHlwZU5vZGUiLCJ0eXBlTmFtZSIsInR5cGVOYW1lRnJvbVR5cGVOb2RlIiwidHlwZVByZXNlbnQiLCJpc1R5cGVQcmVzZW50QnlUeXBlTmFtZSIsImluZm8iLCJ2YXJpYWJsZVR5cGVBc3NlcnRpb25WZXJpZmllZCIsInRlcm1UeXBlQXNzZXJ0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlUZXJtVHlwZUFzc2VydGlvbiIsImRlYnVnIiwidmFyaWFibGVzIiwidGVybU5vZGUiLCJ0ZXJtVmVyaWZpZWRBc1ZhcmlhYmxlIiwidmVyaWZ5VGVybUFzVmFyaWFibGUiLCJhc3NlcnRlZFR5cGVOYW1lIiwiYXNzZXJ0ZWRUeXBlIiwiZmluZFR5cGVCeVR5cGVOYW1lIiwiZmlyc3RWYXJpYWJsZSIsImZpcnN0IiwidmFyaWFibGUiLCJ2YXJpYWJsZU5hbWUiLCJnZXROYW1lIiwidmFyaWFibGVUeXBlIiwiZ2V0VHlwZSIsImFzc2VydGVkVHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mVmFyaWFibGVUeXBlIiwiaXNFcXVhbFRvT3JTdXBlclR5cGVPZiIsInZhcmlhYmxlVHlwZU5hbWUiLCJhc3NlcnRlZFR5cGVFcXVhbFRvT3JTdWJUeXBlT2ZWYXJpYWJsZVR5cGUiLCJpc0VxdWFsVG9PclN1YlR5cGVPZiIsIm5hbWUiLCJ0eXBlIiwiVmFyaWFibGUiLCJmcm9tTmFtZUFuZFR5cGUiLCJhc3NpZ25tZW50IiwiQXNzaWdubWVudCIsImZyb21WYXJpYWJsZSIsInB1c2giLCJ0eXBlcyIsInRlcm1WZXJpZmllZEFnYWluc3RDb25zdHJ1Y3RvcnMiLCJ2ZXJpZnlUZXJtQWdhaW5zdENvbnN0cnVjdG9ycyIsImZpcnN0VHlwZSIsInRlcm1UeXBlIiwiYXNzZXJ0ZWRUeXBlSXNFcXVhbFRvT3JTdXBlclR5cGVPZlRlcm1UeXBlIiwidGVybVN0cmluZyIsInRlcm1UeXBlTmFtZSIsImFzc2VydGVkVHlwZUlzRXF1YWxUb09yU3ViVHlwZU9mVGVybVR5cGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQVlBLE9BZ0NDO2VBaEN1QkE7O0lBa0NSQywyQkFBMkI7ZUFBM0JBOzs7K0RBNUNLO2lFQUNFO3FCQUVEO3FC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
@@ -1,132 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return verifyTypeInference;
9
- }
10
- });
11
- var _equality = /*#__PURE__*/ _interop_require_default(require("../equality"));
12
- var _term = /*#__PURE__*/ _interop_require_wildcard(require("./term"));
13
- var _equality1 = /*#__PURE__*/ _interop_require_default(require("../ocmbinator/equality"));
14
- var _query = require("../utilities/query");
15
- var _array = require("../utilities/array");
16
- var _type = require("./assertion/type");
17
- var _statement = require("../verify/statement");
18
- var _proof = require("../utilities/proof");
19
- function _interop_require_default(obj) {
20
- return obj && obj.__esModule ? obj : {
21
- default: obj
22
- };
23
- }
24
- function _getRequireWildcardCache(nodeInterop) {
25
- if (typeof WeakMap !== "function") return null;
26
- var cacheBabelInterop = new WeakMap();
27
- var cacheNodeInterop = new WeakMap();
28
- return (_getRequireWildcardCache = function(nodeInterop) {
29
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
30
- })(nodeInterop);
31
- }
32
- function _interop_require_wildcard(obj, nodeInterop) {
33
- if (!nodeInterop && obj && obj.__esModule) {
34
- return obj;
35
- }
36
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
37
- return {
38
- default: obj
39
- };
40
- }
41
- var cache = _getRequireWildcardCache(nodeInterop);
42
- if (cache && cache.has(obj)) {
43
- return cache.get(obj);
44
- }
45
- var newObj = {
46
- __proto__: null
47
- };
48
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
49
- for(var key in obj){
50
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
51
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
52
- if (desc && (desc.get || desc.set)) {
53
- Object.defineProperty(newObj, key, desc);
54
- } else {
55
- newObj[key] = obj[key];
56
- }
57
- }
58
- }
59
- newObj.default = obj;
60
- if (cache) {
61
- cache.set(obj, newObj);
62
- }
63
- return newObj;
64
- }
65
- var statementNodeQuery = (0, _query.nodeQuery)("/typeInference/statement!"), typeAssertionNodeQuery = (0, _query.nodeQuery)("/typeInference/typeAssertion!");
66
- function verifyTypeInference(typeInferenceNode, context) {
67
- var typeInferenceVerified = false;
68
- var typeInferenceString = context.nodeAsString(typeInferenceNode);
69
- context.trace("Verifying the '".concat(typeInferenceString, "' type inference..."), typeInferenceNode);
70
- var statementNode = statementNodeQuery(typeInferenceNode);
71
- var bracketedStatementChildNode = (0, _proof.bracketedStatementChildNodeFromStatementNode)(statementNode);
72
- if (bracketedStatementChildNode !== null) {
73
- statementNode = bracketedStatementChildNode; ///
74
- }
75
- var statementString = context.nodeAsString(statementNode), statementMatches = context.matchStatement(statementNode);
76
- if (!statementMatches) {
77
- context.info("The '".concat(statementString, "' statement is not present in the context."), typeInferenceNode);
78
- } else {
79
- var combinator = _equality1.default, statementVerifiedAgainstCombinator = (0, _statement.verifyStatementAgainstCombinator)(statementNode, combinator, context);
80
- if (!statementVerifiedAgainstCombinator) {
81
- context.info("The '".concat(statementString, "' statement is not an equality."), typeInferenceNode);
82
- } else {
83
- var derived = false, equality = _equality.default.fromStatementNode(statementNode), assignments = [], typeAssertionNode = typeAssertionNodeQuery(typeInferenceNode), variableTypeAssertionVerified = (0, _type.verifyVariableTypeAssertion)(typeAssertionNode, assignments, derived, context);
84
- if (variableTypeAssertionVerified) {
85
- var firstAssignment = (0, _array.first)(assignments), assignment = firstAssignment, variables = [], leftTermNode = equality.getLeftTermNode(), rightTermNode = equality.getRightTermNode(), leftTermVerifiedAsVariable = (0, _term.verifyTermAsVariable)(leftTermNode, variables, context), rightTermVerifiedAsVariable = (0, _term.verifyTermAsVariable)(rightTermNode, variables, context);
86
- if (leftTermVerifiedAsVariable && rightTermVerifiedAsVariable) {
87
- var firstVariable = (0, _array.first)(variables), secondVariable = (0, _array.second)(variables), leftVariable = firstVariable, rightVariable = secondVariable, leftVariableName = leftVariable.getName(), leftVariableType = leftVariable.getType(), rightVariableName = rightVariable.getName(), rightVariableType = rightVariable.getType(), leftVariableTypeEqualToOrSubTypeOfOfSuperTypeOfRightVariableType = leftVariableType.isEqualToOrSubTypeOfOfSuperTypeOf(rightVariableType);
88
- if (leftVariableTypeEqualToOrSubTypeOfOfSuperTypeOfRightVariableType) {
89
- var leftVariableTypeSuperTypeOfRightVariableType = leftVariableType.isSuperTypeOf(rightVariableType), rightVariableTypeSuperTypeOfLeftVariableType = rightVariableType.isSuperTypeOf(leftVariableType);
90
- if (leftVariableTypeSuperTypeOfRightVariableType) {
91
- var name = leftVariableName, type = rightVariableType; ///
92
- assignAssignment(name, type, assignment, context);
93
- }
94
- if (rightVariableTypeSuperTypeOfLeftVariableType) {
95
- var name1 = rightVariableName, type1 = leftVariableType; ///
96
- assignAssignment(name1, type1, assignment, context);
97
- }
98
- }
99
- } else if (leftTermVerifiedAsVariable) {
100
- var types = [];
101
- (0, _term.default)(rightTermNode, types, context);
102
- var firstType = (0, _array.first)(types), firstVariable1 = (0, _array.first)(variables), leftVariable1 = firstVariable1, rightTermType = firstType, leftVariableName1 = leftVariable1.getName(), leftVariableType1 = leftVariable1.getType(), leftVariableTypeEqualToOrSuperTypeOfRightTermType = leftVariableType1.isEqualToOrSuperTypeOf(rightTermType);
103
- if (leftVariableTypeEqualToOrSuperTypeOfRightTermType) {
104
- var name2 = leftVariableName1, type2 = rightTermType; ///
105
- assignAssignment(name2, type2, assignment, context);
106
- }
107
- } else if (rightTermVerifiedAsVariable) {
108
- var types1 = [];
109
- (0, _term.default)(leftTermNode, types1, context);
110
- var firstType1 = (0, _array.first)(types1), firstVariable2 = (0, _array.first)(variables), leftTermType = firstType1, rightVariable1 = firstVariable2, rightVariableName1 = rightVariable1.getName(), rightVariableType1 = rightVariable1.getType(), rightVariableTypeEqualToOrSuperTypeOfRightTermType = rightVariableType1.isEqualToOrSuperTypeOf(leftTermType);
111
- if (rightVariableTypeEqualToOrSuperTypeOfRightTermType) {
112
- var name3 = rightVariableName1, type3 = leftTermType; ///
113
- assignAssignment(name3, type3, assignment, context);
114
- }
115
- }
116
- typeInferenceVerified = true;
117
- }
118
- }
119
- }
120
- if (typeInferenceVerified) {
121
- context.debug("...verified the '".concat(typeInferenceString, "' type inference."), typeInferenceNode);
122
- }
123
- return typeInferenceVerified;
124
- }
125
- function assignAssignment(name, type, assignment, context) {
126
- var assignmentMatchesNameAndType = assignment.matchNameAndType(name, type);
127
- if (assignmentMatchesNameAndType) {
128
- assignment.assign(context);
129
- }
130
- }
131
-
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdHlwZUluZmVyZW5jZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEVxdWFsaXR5IGZyb20gXCIuLi9lcXVhbGl0eVwiO1xuaW1wb3J0IHZlcmlmeVRlcm0gZnJvbSBcIi4vdGVybVwiO1xuaW1wb3J0IGVxdWFsaXR5Q29tYmluYXRvciBmcm9tIFwiLi4vb2NtYmluYXRvci9lcXVhbGl0eVwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBmaXJzdCwgc2Vjb25kIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgdmVyaWZ5VGVybUFzVmFyaWFibGUgfSBmcm9tIFwiLi90ZXJtXCI7XG5pbXBvcnQgeyB2ZXJpZnlWYXJpYWJsZVR5cGVBc3NlcnRpb24gfSBmcm9tIFwiLi9hc3NlcnRpb24vdHlwZVwiO1xuaW1wb3J0IHsgdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3IgfSBmcm9tIFwiLi4vdmVyaWZ5L3N0YXRlbWVudFwiO1xuaW1wb3J0IHsgYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlRnJvbVN0YXRlbWVudE5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3Byb29mXCI7XG5cbmNvbnN0IHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90eXBlSW5mZXJlbmNlL3N0YXRlbWVudCFcIiksXG4gICAgICB0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVJbmZlcmVuY2UvdHlwZUFzc2VydGlvbiFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVR5cGVJbmZlcmVuY2UodHlwZUluZmVyZW5jZU5vZGUsIGNvbnRleHQpIHtcbiAgbGV0IHR5cGVJbmZlcmVuY2VWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IHR5cGVJbmZlcmVuY2VTdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyh0eXBlSW5mZXJlbmNlTm9kZSk7XG5cbiAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0eXBlSW5mZXJlbmNlU3RyaW5nfScgdHlwZSBpbmZlcmVuY2UuLi5gLCB0eXBlSW5mZXJlbmNlTm9kZSk7XG5cbiAgbGV0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkodHlwZUluZmVyZW5jZU5vZGUpO1xuXG4gIGNvbnN0IGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZSA9IGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZUZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGUgIT09IG51bGwpIHtcbiAgICBzdGF0ZW1lbnROb2RlID0gYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlOyAvLy9cbiAgfVxuXG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpLFxuICAgICAgICBzdGF0ZW1lbnRNYXRjaGVzID0gY29udGV4dC5tYXRjaFN0YXRlbWVudChzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoIXN0YXRlbWVudE1hdGNoZXMpIHtcbiAgICBjb250ZXh0LmluZm8oYFRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgaXMgbm90IHByZXNlbnQgaW4gdGhlIGNvbnRleHQuYCwgdHlwZUluZmVyZW5jZU5vZGUpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGNvbWJpbmF0b3IgPSBlcXVhbGl0eUNvbWJpbmF0b3IsICAvLy9cbiAgICAgICAgICBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yID0gdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3Ioc3RhdGVtZW50Tm9kZSwgY29tYmluYXRvciwgY29udGV4dCk7XG5cbiAgICBpZiAoIXN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IpIHtcbiAgICAgIGNvbnRleHQuaW5mbyhgVGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBpcyBub3QgYW4gZXF1YWxpdHkuYCwgdHlwZUluZmVyZW5jZU5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBkZXJpdmVkID0gZmFsc2UsICAvLy9cbiAgICAgICAgICAgIGVxdWFsaXR5ID0gRXF1YWxpdHkuZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgICBhc3NpZ25tZW50cyA9IFtdLFxuICAgICAgICAgICAgdHlwZUFzc2VydGlvbk5vZGUgPSB0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5KHR5cGVJbmZlcmVuY2VOb2RlKSxcbiAgICAgICAgICAgIHZhcmlhYmxlVHlwZUFzc2VydGlvblZlcmlmaWVkID0gdmVyaWZ5VmFyaWFibGVUeXBlQXNzZXJ0aW9uKHR5cGVBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgY29udGV4dClcblxuICAgICAgaWYgKHZhcmlhYmxlVHlwZUFzc2VydGlvblZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0QXNzaWdubWVudCA9IGZpcnN0KGFzc2lnbm1lbnRzKSxcbiAgICAgICAgICAgICAgYXNzaWdubWVudCA9IGZpcnN0QXNzaWdubWVudCwgLy8vXG4gICAgICAgICAgICAgIHZhcmlhYmxlcyA9IFtdLFxuICAgICAgICAgICAgICBsZWZ0VGVybU5vZGUgPSBlcXVhbGl0eS5nZXRMZWZ0VGVybU5vZGUoKSxcbiAgICAgICAgICAgICAgcmlnaHRUZXJtTm9kZSA9IGVxdWFsaXR5LmdldFJpZ2h0VGVybU5vZGUoKSxcbiAgICAgICAgICAgICAgbGVmdFRlcm1WZXJpZmllZEFzVmFyaWFibGUgPSB2ZXJpZnlUZXJtQXNWYXJpYWJsZShsZWZ0VGVybU5vZGUsIHZhcmlhYmxlcywgY29udGV4dCksXG4gICAgICAgICAgICAgIHJpZ2h0VGVybVZlcmlmaWVkQXNWYXJpYWJsZSA9IHZlcmlmeVRlcm1Bc1ZhcmlhYmxlKHJpZ2h0VGVybU5vZGUsIHZhcmlhYmxlcywgY29udGV4dCk7XG5cbiAgICAgICAgaWYgKGxlZnRUZXJtVmVyaWZpZWRBc1ZhcmlhYmxlICYmIHJpZ2h0VGVybVZlcmlmaWVkQXNWYXJpYWJsZSkge1xuICAgICAgICAgIGNvbnN0IGZpcnN0VmFyaWFibGUgPSBmaXJzdCh2YXJpYWJsZXMpLFxuICAgICAgICAgICAgICAgIHNlY29uZFZhcmlhYmxlID0gc2Vjb25kKHZhcmlhYmxlcyksXG4gICAgICAgICAgICAgICAgbGVmdFZhcmlhYmxlID0gZmlyc3RWYXJpYWJsZSwgLy8vXG4gICAgICAgICAgICAgICAgcmlnaHRWYXJpYWJsZSA9IHNlY29uZFZhcmlhYmxlLCAvLy9cbiAgICAgICAgICAgICAgICBsZWZ0VmFyaWFibGVOYW1lID0gbGVmdFZhcmlhYmxlLmdldE5hbWUoKSxcbiAgICAgICAgICAgICAgICBsZWZ0VmFyaWFibGVUeXBlID0gbGVmdFZhcmlhYmxlLmdldFR5cGUoKSxcbiAgICAgICAgICAgICAgICByaWdodFZhcmlhYmxlTmFtZSA9IHJpZ2h0VmFyaWFibGUuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgICAgIHJpZ2h0VmFyaWFibGVUeXBlID0gcmlnaHRWYXJpYWJsZS5nZXRUeXBlKCksXG4gICAgICAgICAgICAgICAgbGVmdFZhcmlhYmxlVHlwZUVxdWFsVG9PclN1YlR5cGVPZk9mU3VwZXJUeXBlT2ZSaWdodFZhcmlhYmxlVHlwZSA9IGxlZnRWYXJpYWJsZVR5cGUuaXNFcXVhbFRvT3JTdWJUeXBlT2ZPZlN1cGVyVHlwZU9mKHJpZ2h0VmFyaWFibGVUeXBlKTtcblxuICAgICAgICAgIGlmIChsZWZ0VmFyaWFibGVUeXBlRXF1YWxUb09yU3ViVHlwZU9mT2ZTdXBlclR5cGVPZlJpZ2h0VmFyaWFibGVUeXBlKSB7XG4gICAgICAgICAgICBjb25zdCBsZWZ0VmFyaWFibGVUeXBlU3VwZXJUeXBlT2ZSaWdodFZhcmlhYmxlVHlwZSA9IGxlZnRWYXJpYWJsZVR5cGUuaXNTdXBlclR5cGVPZihyaWdodFZhcmlhYmxlVHlwZSksXG4gICAgICAgICAgICAgICAgICByaWdodFZhcmlhYmxlVHlwZVN1cGVyVHlwZU9mTGVmdFZhcmlhYmxlVHlwZSA9IHJpZ2h0VmFyaWFibGVUeXBlLmlzU3VwZXJUeXBlT2YobGVmdFZhcmlhYmxlVHlwZSk7XG5cbiAgICAgICAgICAgIGlmIChsZWZ0VmFyaWFibGVUeXBlU3VwZXJUeXBlT2ZSaWdodFZhcmlhYmxlVHlwZSkge1xuICAgICAgICAgICAgICBjb25zdCBuYW1lID0gbGVmdFZhcmlhYmxlTmFtZSwgLy8vXG4gICAgICAgICAgICAgICAgICAgIHR5cGUgPSByaWdodFZhcmlhYmxlVHlwZTsgIC8vL1xuXG4gICAgICAgICAgICAgIGFzc2lnbkFzc2lnbm1lbnQobmFtZSwgdHlwZSwgYXNzaWdubWVudCwgY29udGV4dCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChyaWdodFZhcmlhYmxlVHlwZVN1cGVyVHlwZU9mTGVmdFZhcmlhYmxlVHlwZSkge1xuICAgICAgICAgICAgICBjb25zdCBuYW1lID0gcmlnaHRWYXJpYWJsZU5hbWUsIC8vL1xuICAgICAgICAgICAgICAgICAgICB0eXBlID0gbGVmdFZhcmlhYmxlVHlwZTsgIC8vL1xuXG4gICAgICAgICAgICAgIGFzc2lnbkFzc2lnbm1lbnQobmFtZSwgdHlwZSwgYXNzaWdubWVudCwgY29udGV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGxlZnRUZXJtVmVyaWZpZWRBc1ZhcmlhYmxlKSB7XG4gICAgICAgICAgY29uc3QgdHlwZXMgPSBbXTtcblxuICAgICAgICAgIHZlcmlmeVRlcm0ocmlnaHRUZXJtTm9kZSwgdHlwZXMsIGNvbnRleHQpO1xuXG4gICAgICAgICAgY29uc3QgZmlyc3RUeXBlID0gZmlyc3QodHlwZXMpLFxuICAgICAgICAgICAgICAgIGZpcnN0VmFyaWFibGUgPSBmaXJzdCh2YXJpYWJsZXMpLFxuICAgICAgICAgICAgICAgIGxlZnRWYXJpYWJsZSA9IGZpcnN0VmFyaWFibGUsIC8vL1xuICAgICAgICAgICAgICAgIHJpZ2h0VGVybVR5cGUgPSBmaXJzdFR5cGUsICAvLy9cbiAgICAgICAgICAgICAgICBsZWZ0VmFyaWFibGVOYW1lID0gbGVmdFZhcmlhYmxlLmdldE5hbWUoKSxcbiAgICAgICAgICAgICAgICBsZWZ0VmFyaWFibGVUeXBlID0gbGVmdFZhcmlhYmxlLmdldFR5cGUoKSxcbiAgICAgICAgICAgICAgICBsZWZ0VmFyaWFibGVUeXBlRXF1YWxUb09yU3VwZXJUeXBlT2ZSaWdodFRlcm1UeXBlID0gbGVmdFZhcmlhYmxlVHlwZS5pc0VxdWFsVG9PclN1cGVyVHlwZU9mKHJpZ2h0VGVybVR5cGUpO1xuXG4gICAgICAgICAgaWYgKGxlZnRWYXJpYWJsZVR5cGVFcXVhbFRvT3JTdXBlclR5cGVPZlJpZ2h0VGVybVR5cGUpIHtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBsZWZ0VmFyaWFibGVOYW1lLCAgLy8vXG4gICAgICAgICAgICAgICAgICB0eXBlID0gcmlnaHRUZXJtVHlwZTsgLy8vXG5cbiAgICAgICAgICAgIGFzc2lnbkFzc2lnbm1lbnQobmFtZSwgdHlwZSwgYXNzaWdubWVudCwgY29udGV4dCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHJpZ2h0VGVybVZlcmlmaWVkQXNWYXJpYWJsZSkge1xuICAgICAgICAgIGNvbnN0IHR5cGVzID0gW107XG5cbiAgICAgICAgICB2ZXJpZnlUZXJtKGxlZnRUZXJtTm9kZSwgdHlwZXMsIGNvbnRleHQpO1xuXG4gICAgICAgICAgY29uc3QgZmlyc3RUeXBlID0gZmlyc3QodHlwZXMpLFxuICAgICAgICAgICAgICAgIGZpcnN0VmFyaWFibGUgPSBmaXJzdCh2YXJpYWJsZXMpLFxuICAgICAgICAgICAgICAgIGxlZnRUZXJtVHlwZSA9IGZpcnN0VHlwZSwgIC8vL1xuICAgICAgICAgICAgICAgIHJpZ2h0VmFyaWFibGUgPSBmaXJzdFZhcmlhYmxlLCAvLy9cbiAgICAgICAgICAgICAgICByaWdodFZhcmlhYmxlTmFtZSA9IHJpZ2h0VmFyaWFibGUuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgICAgIHJpZ2h0VmFyaWFibGVUeXBlID0gcmlnaHRWYXJpYWJsZS5nZXRUeXBlKCksXG4gICAgICAgICAgICAgICAgcmlnaHRWYXJpYWJsZVR5cGVFcXVhbFRvT3JTdXBlclR5cGVPZlJpZ2h0VGVybVR5cGUgPSByaWdodFZhcmlhYmxlVHlwZS5pc0VxdWFsVG9PclN1cGVyVHlwZU9mKGxlZnRUZXJtVHlwZSk7XG5cbiAgICAgICAgICBpZiAocmlnaHRWYXJpYWJsZVR5cGVFcXVhbFRvT3JTdXBlclR5cGVPZlJpZ2h0VGVybVR5cGUpIHtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSByaWdodFZhcmlhYmxlTmFtZSwgIC8vL1xuICAgICAgICAgICAgICAgICAgdHlwZSA9IGxlZnRUZXJtVHlwZTsgLy8vXG5cbiAgICAgICAgICAgIGFzc2lnbkFzc2lnbm1lbnQobmFtZSwgdHlwZSwgYXNzaWdubWVudCwgY29udGV4dCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdHlwZUluZmVyZW5jZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAodHlwZUluZmVyZW5jZVZlcmlmaWVkKSB7XG4gICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3R5cGVJbmZlcmVuY2VTdHJpbmd9JyB0eXBlIGluZmVyZW5jZS5gLCB0eXBlSW5mZXJlbmNlTm9kZSk7XG4gIH1cblxuICByZXR1cm4gdHlwZUluZmVyZW5jZVZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiBhc3NpZ25Bc3NpZ25tZW50KG5hbWUsIHR5cGUsIGFzc2lnbm1lbnQsIGNvbnRleHQpIHtcbiAgY29uc3QgYXNzaWdubWVudE1hdGNoZXNOYW1lQW5kVHlwZSA9IGFzc2lnbm1lbnQubWF0Y2hOYW1lQW5kVHlwZShuYW1lLCB0eXBlKTtcblxuICBpZiAoYXNzaWdubWVudE1hdGNoZXNOYW1lQW5kVHlwZSkge1xuICAgIGFzc2lnbm1lbnQuYXNzaWduKGNvbnRleHQpO1xuICB9XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5VHlwZUluZmVyZW5jZSIsInN0YXRlbWVudE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInR5cGVBc3NlcnRpb25Ob2RlUXVlcnkiLCJ0eXBlSW5mZXJlbmNlTm9kZSIsImNvbnRleHQiLCJ0eXBlSW5mZXJlbmNlVmVyaWZpZWQiLCJ0eXBlSW5mZXJlbmNlU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJzdGF0ZW1lbnROb2RlIiwiYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlIiwiYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlRnJvbVN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnRTdHJpbmciLCJzdGF0ZW1lbnRNYXRjaGVzIiwibWF0Y2hTdGF0ZW1lbnQiLCJpbmZvIiwiY29tYmluYXRvciIsImVxdWFsaXR5Q29tYmluYXRvciIsInN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IiLCJ2ZXJpZnlTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvciIsImRlcml2ZWQiLCJlcXVhbGl0eSIsIkVxdWFsaXR5IiwiZnJvbVN0YXRlbWVudE5vZGUiLCJhc3NpZ25tZW50cyIsInR5cGVBc3NlcnRpb25Ob2RlIiwidmFyaWFibGVUeXBlQXNzZXJ0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlWYXJpYWJsZVR5cGVBc3NlcnRpb24iLCJmaXJzdEFzc2lnbm1lbnQiLCJmaXJzdCIsImFzc2lnbm1lbnQiLCJ2YXJpYWJsZXMiLCJsZWZ0VGVybU5vZGUiLCJnZXRMZWZ0VGVybU5vZGUiLCJyaWdodFRlcm1Ob2RlIiwiZ2V0UmlnaHRUZXJtTm9kZSIsImxlZnRUZXJtVmVyaWZpZWRBc1ZhcmlhYmxlIiwidmVyaWZ5VGVybUFzVmFyaWFibGUiLCJyaWdodFRlcm1WZXJpZmllZEFzVmFyaWFibGUiLCJmaXJzdFZhcmlhYmxlIiwic2Vjb25kVmFyaWFibGUiLCJzZWNvbmQiLCJsZWZ0VmFyaWFibGUiLCJyaWdodFZhcmlhYmxlIiwibGVmdFZhcmlhYmxlTmFtZSIsImdldE5hbWUiLCJsZWZ0VmFyaWFibGVUeXBlIiwiZ2V0VHlwZSIsInJpZ2h0VmFyaWFibGVOYW1lIiwicmlnaHRWYXJpYWJsZVR5cGUiLCJsZWZ0VmFyaWFibGVUeXBlRXF1YWxUb09yU3ViVHlwZU9mT2ZTdXBlclR5cGVPZlJpZ2h0VmFyaWFibGVUeXBlIiwiaXNFcXVhbFRvT3JTdWJUeXBlT2ZPZlN1cGVyVHlwZU9mIiwibGVmdFZhcmlhYmxlVHlwZVN1cGVyVHlwZU9mUmlnaHRWYXJpYWJsZVR5cGUiLCJpc1N1cGVyVHlwZU9mIiwicmlnaHRWYXJpYWJsZVR5cGVTdXBlclR5cGVPZkxlZnRWYXJpYWJsZVR5cGUiLCJuYW1lIiwidHlwZSIsImFzc2lnbkFzc2lnbm1lbnQiLCJ0eXBlcyIsInZlcmlmeVRlcm0iLCJmaXJzdFR5cGUiLCJyaWdodFRlcm1UeXBlIiwibGVmdFZhcmlhYmxlVHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mUmlnaHRUZXJtVHlwZSIsImlzRXF1YWxUb09yU3VwZXJUeXBlT2YiLCJsZWZ0VGVybVR5cGUiLCJyaWdodFZhcmlhYmxlVHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mUmlnaHRUZXJtVHlwZSIsImRlYnVnIiwiYXNzaWdubWVudE1hdGNoZXNOYW1lQW5kVHlwZSIsIm1hdGNoTmFtZUFuZFR5cGUiLCJhc3NpZ24iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWdCQTs7O2VBQXdCQTs7OytEQWRIOzREQUNFO2dFQUNRO3FCQUVMO3FCQUNJO29CQUVjO3lCQUNLO3FCQUNZOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU3RCxJQUFNQyxxQkFBcUJDLElBQUFBLGdCQUFTLEVBQUMsOEJBQy9CQyx5QkFBeUJELElBQUFBLGdCQUFTLEVBQUM7QUFFMUIs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
@@ -1,9 +0,0 @@
1
- "use strict";
2
-
3
- import unqualifiedEqualityCombinatorStatementTokens from "../../../tokens/statement/combinator/equality";
4
-
5
- import { statementNodeFromUnqualifiedStatementTokens } from "../../../utilities/node";
6
-
7
- const equalityCombinatorStatementNode = statementNodeFromUnqualifiedStatementTokens(unqualifiedEqualityCombinatorStatementTokens);
8
-
9
- export default equalityCombinatorStatementNode;
@@ -1,23 +0,0 @@
1
- "use strict";
2
-
3
- import Combinator from "../combinator";
4
- import equalityCombinatorStatementNode from "../node/statement/combinator/equality";
5
- import unqualifiedEqualityCombinatorStatementTokens from "../tokens/statement/combinator/equality";
6
-
7
- import { nodeAsString } from "../utilities/string";
8
-
9
- class EqualityCombinator extends Combinator {
10
- static fromNothing() {
11
- const node = equalityCombinatorStatementNode, ///
12
- tokens = unqualifiedEqualityCombinatorStatementTokens, ///
13
- string = nodeAsString(node, tokens),
14
- statementNode = node, ///
15
- equalityCombinator = new EqualityCombinator(statementNode, string);
16
-
17
- return equalityCombinator;
18
- }
19
- }
20
-
21
- const equalityCombinator = EqualityCombinator.fromNothing();
22
-
23
- export default equalityCombinator;
@@ -1,10 +0,0 @@
1
- "use strict";
2
-
3
- import { OBJECT_TYPE_NAME } from "../../../typeNames";
4
- import { unqualifiedStatementTokensFromStatementString } from "../../../utilities/tokens";
5
-
6
- const equalityCombinatorStatementString = `${OBJECT_TYPE_NAME} = ${OBJECT_TYPE_NAME}`;
7
-
8
- const unqualifiedEqualityCombinatorStatementTokens = unqualifiedStatementTokensFromStatementString(equalityCombinatorStatementString);
9
-
10
- export default unqualifiedEqualityCombinatorStatementTokens;