occam-verify-cli 0.0.1024 → 0.0.1027
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/bin/action/verify.js +1 -1
- package/lib/declaration/variable.js +7 -8
- package/lib/metavariable.js +5 -3
- package/lib/term.js +14 -17
- package/lib/type.js +19 -6
- package/lib/unifier/metavariable.js +4 -3
- package/lib/unifier/statementWithCombinator.js +5 -3
- package/lib/unifier/termWithConstructor.js +4 -3
- package/lib/variable.js +29 -9
- package/lib/verifier/statementAsCombinator.js +8 -3
- package/lib/verifier/termAsConstructor.js +10 -2
- package/package.json +1 -1
- package/src/declaration/variable.js +7 -12
- package/src/metavariable.js +5 -3
- package/src/term.js +16 -20
- package/src/type.js +27 -13
- package/src/unifier/metavariable.js +5 -4
- package/src/unifier/statementWithCombinator.js +6 -4
- package/src/unifier/termWithConstructor.js +5 -4
- package/src/variable.js +34 -12
- package/src/verifier/statementAsCombinator.js +10 -4
- package/src/verifier/termAsConstructor.js +13 -4
package/lib/variable.js
CHANGED
|
@@ -106,20 +106,40 @@ var Variable = /*#__PURE__*/ function() {
|
|
|
106
106
|
return verified;
|
|
107
107
|
}
|
|
108
108
|
},
|
|
109
|
+
{
|
|
110
|
+
key: "verifyType",
|
|
111
|
+
value: function verifyType(fileContext) {
|
|
112
|
+
var typeVerified;
|
|
113
|
+
var typeName = this.type.getName();
|
|
114
|
+
fileContext.trace("Verifying the '".concat(typeName, "' type..."));
|
|
115
|
+
var type = fileContext.findTypeByTypeName(typeName);
|
|
116
|
+
if (type === null) {
|
|
117
|
+
fileContext.debug("The '".concat(typeName, "' type is missing."));
|
|
118
|
+
} else {
|
|
119
|
+
this.type = type; ///
|
|
120
|
+
typeVerified = true;
|
|
121
|
+
}
|
|
122
|
+
if (typeVerified) {
|
|
123
|
+
fileContext.debug("...verified the '".concat(typeName, "' type."));
|
|
124
|
+
}
|
|
125
|
+
return typeVerified;
|
|
126
|
+
}
|
|
127
|
+
},
|
|
109
128
|
{
|
|
110
129
|
key: "verifyAtTopLevel",
|
|
111
|
-
value: function verifyAtTopLevel(
|
|
130
|
+
value: function verifyAtTopLevel(fileContext) {
|
|
112
131
|
var verifiedAtTopLevel;
|
|
113
132
|
var variableString = this.string; ///
|
|
114
|
-
|
|
115
|
-
var variableNode = this.node, variableName = (0, _name.variableNameFromVariableNode)(variableNode), variablePresent =
|
|
133
|
+
fileContext.trace("Verifying the '".concat(variableString, "' variable at top level..."));
|
|
134
|
+
var variableNode = this.node, variableName = (0, _name.variableNameFromVariableNode)(variableNode), variablePresent = fileContext.isVariablePresentByVariableName(variableName);
|
|
116
135
|
if (variablePresent) {
|
|
117
|
-
|
|
136
|
+
fileContext.debug("The '".concat(variableString, "' variable is already present."));
|
|
118
137
|
} else {
|
|
119
|
-
|
|
138
|
+
var typeVerified = this.verifyType(fileContext);
|
|
139
|
+
verifiedAtTopLevel = typeVerified; ///
|
|
120
140
|
}
|
|
121
141
|
if (verifiedAtTopLevel) {
|
|
122
|
-
|
|
142
|
+
fileContext.debug("...verified the '".concat(variableString, "' variable at top level."));
|
|
123
143
|
}
|
|
124
144
|
return verifiedAtTopLevel;
|
|
125
145
|
}
|
|
@@ -127,7 +147,7 @@ var Variable = /*#__PURE__*/ function() {
|
|
|
127
147
|
{
|
|
128
148
|
key: "toJSON",
|
|
129
149
|
value: function toJSON() {
|
|
130
|
-
var typeJSON = this.type
|
|
150
|
+
var typeJSON = this.type.toJSON(), string = this.string, type = typeJSON, json = {
|
|
131
151
|
string: string,
|
|
132
152
|
type: type
|
|
133
153
|
};
|
|
@@ -159,7 +179,7 @@ var Variable = /*#__PURE__*/ function() {
|
|
|
159
179
|
{
|
|
160
180
|
key: "fromVariableDeclarationNode",
|
|
161
181
|
value: function fromVariableDeclarationNode(variableDeclarationNode, fileContext) {
|
|
162
|
-
var Type = _shim.default.Type, typeNode = typeNodeQuery(variableDeclarationNode), variableNode = variableNodeQuery(variableDeclarationNode), variableName = (0, _name.variableNameFromVariableNode)(variableNode), localContext = _local.default.fromFileContext(fileContext), variableString = fileContext.nodeAsString(variableNode), string = variableString, node = variableNode, name = variableName, type =
|
|
182
|
+
var Type = _shim.default.Type, typeNode = typeNodeQuery(variableDeclarationNode), variableNode = variableNodeQuery(variableDeclarationNode), variableName = (0, _name.variableNameFromVariableNode)(variableNode), localContext = _local.default.fromFileContext(fileContext), variableString = fileContext.nodeAsString(variableNode), string = variableString, node = variableNode, name = variableName, type = Type.fromTypeNode(typeNode, localContext), variable = new Variable(string, node, name, type);
|
|
163
183
|
return variable;
|
|
164
184
|
}
|
|
165
185
|
}
|
|
@@ -173,4 +193,4 @@ function typeFromJSON(json, fileContext) {
|
|
|
173
193
|
return type;
|
|
174
194
|
}
|
|
175
195
|
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy92YXJpYWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHNoaW0gZnJvbSBcIi4vc2hpbVwiO1xuaW1wb3J0IExvY2FsQ29udGV4dCBmcm9tIFwiLi9jb250ZXh0L2xvY2FsXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgb2JqZWN0VHlwZSB9IGZyb20gXCIuL3R5cGVcIjtcbmltcG9ydCB7IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGV9IGZyb20gXCIuL3V0aWxpdGllcy9uYW1lXCI7XG5pbXBvcnQgeyB2YXJpYWJsZU5vZGVGcm9tVmFyaWFibGVTdHJpbmcgfSBmcm9tIFwiLi91dGlsaXRpZXMvbm9kZVwiO1xuXG5jb25zdCB0eXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3ZhcmlhYmxlRGVjbGFyYXRpb24vdHlwZVwiKSxcbiAgICAgIHZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3ZhcmlhYmxlRGVjbGFyYXRpb24vdmFyaWFibGVcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZhcmlhYmxlIHtcbiAgY29uc3RydWN0b3Ioc3RyaW5nLCBub2RlLCBuYW1lLCB0eXBlKSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy5ub2RlID0gbm9kZTtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gIH1cblxuICBnZXRTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nO1xuICB9XG5cbiAgZ2V0Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlO1xuICB9XG5cbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgbWF0Y2hOb2RlKG5vZGUpIHtcbiAgICBjb25zdCBub2RlTWF0Y2hlcyA9IHRoaXMubm9kZS5tYXRjaChub2RlKTtcblxuICAgIHJldHVybiBub2RlTWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoTmFtZShuYW1lKSB7XG4gICAgY29uc3QgbmFtZU1hdGNoZXMgPSAodGhpcy5uYW1lID09PSBuYW1lKTtcblxuICAgIHJldHVybiBuYW1lTWF0Y2hlcztcbiAgfVxuXG4gIHZlcmlmeShsb2NhbENvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZWQ7XG5cbiAgICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IHRoaXMuc3RyaW5nOyAvLy9cblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLi4uYCk7XG5cbiAgICBjb25zdCB2YXJpYWJsZU5vZGUgPSB0aGlzLm5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZSA9IGxvY2FsQ29udGV4dC5maW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpO1xuXG4gICAgaWYgKHZhcmlhYmxlID09PSBudWxsKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYFRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlIGlzIG5vdCBwcmVzZW50LmApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0eXBlID0gdmFyaWFibGUuZ2V0VHlwZSgpO1xuXG4gICAgICB0aGlzLnR5cGUgPSB0eXBlO1xuXG4gICAgICB2ZXJpZmllZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVkKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllZDtcbiAgfVxuXG4gIHZlcmlmeUF0VG9wTGV2ZWwobG9jYWxDb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVkQXRUb3BMZXZlbDtcblxuICAgIGNvbnN0IHZhcmlhYmxlU3RyaW5nID0gdGhpcy5zdHJpbmc7IC8vL1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUgYXQgdG9wIGxldmVsLi4uYCk7XG5cbiAgICBjb25zdCB2YXJpYWJsZU5vZGUgPSB0aGlzLm5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZVByZXNlbnQgPSBsb2NhbENvbnRleHQuaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpO1xuXG4gICAgaWYgKHZhcmlhYmxlUHJlc2VudCkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGBUaGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSBpcyBhbHJlYWR5IHByZXNlbnQuYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZlcmlmaWVkQXRUb3BMZXZlbCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVkQXRUb3BMZXZlbCkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSBhdCB0b3AgbGV2ZWwuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVkQXRUb3BMZXZlbDtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCB0eXBlSlNPTiA9ICh0aGlzLnR5cGUgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50eXBlLnRvSlNPTigpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgIHN0cmluZyA9IHRoaXMuc3RyaW5nLFxuICAgICAgICAgIHR5cGUgPSB0eXBlSlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBzdHJpbmcsXG4gICAgICAgICAgICB0eXBlXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgbGV4ZXIgID0gZmlsZUNvbnRleHQuZ2V0TGV4ZXIoKSxcbiAgICAgICAgICBwYXJzZXIgPSBmaWxlQ29udGV4dC5nZXRQYXJzZXIoKSxcbiAgICAgICAgICB2YXJpYWJsZVN0cmluZyA9IHN0cmluZywgIC8vL1xuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZUZyb21WYXJpYWJsZVN0cmluZyh2YXJpYWJsZVN0cmluZywgbGV4ZXIsIHBhcnNlciksXG4gICAgICAgICAgdmFyaWFibGVOYW1lID0gdmFyaWFibGVOYW1lRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgIG5vZGUgPSB2YXJpYWJsZU5vZGUsXG4gICAgICAgICAgbmFtZSA9IHZhcmlhYmxlTmFtZSwgIC8vL1xuICAgICAgICAgIHR5cGUgPSB0eXBlRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgbm9kZSwgbmFtZSwgdHlwZSk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGxvY2FsQ29udGV4dCkge1xuICAgIGNvbnN0IG5vZGUgPSB2YXJpYWJsZU5vZGUsICAvLy9cbiAgICAgICAgICB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgc3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgICBuYW1lID0gdmFyaWFibGVOYW1lLCAgLy8vXG4gICAgICAgICAgdHlwZSA9IG51bGwsXG4gICAgICAgICAgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUoc3RyaW5nLCBub2RlLCBuYW1lLCB0eXBlKTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVmFyaWFibGVOb2RlQW5kVHlwZSh2YXJpYWJsZU5vZGUsIHR5cGUsIGxvY2FsQ29udGV4dCkge1xuICAgIGNvbnN0IG5vZGUgPSB2YXJpYWJsZU5vZGUsICAvLy9cbiAgICAgICAgICB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgc3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgICBuYW1lID0gdmFyaWFibGVOYW1lLCAgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUoc3RyaW5nLCBub2RlLCBuYW1lLCB0eXBlKTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUodmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgeyBUeXBlIH0gPSBzaGltLFxuICAgICAgICAgIHR5cGVOb2RlID0gdHlwZU5vZGVRdWVyeSh2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlUXVlcnkodmFyaWFibGVEZWNsYXJhdGlvbk5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBsb2NhbENvbnRleHQgPSBMb2NhbENvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0KSxcbiAgICAgICAgICB2YXJpYWJsZVN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyh2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgIHN0cmluZyA9IHZhcmlhYmxlU3RyaW5nLCAgLy8vXG4gICAgICAgICAgbm9kZSA9IHZhcmlhYmxlTm9kZSwgIC8vL1xuICAgICAgICAgIG5hbWUgPSB2YXJpYWJsZU5hbWUsICAvLy9cbiAgICAgICAgICB0eXBlID0gKHR5cGVOb2RlID09PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgb2JqZWN0VHlwZSA6XG4gICAgICAgICAgICAgICAgICAgICBUeXBlLmZyb21UeXBlTm9kZSh0eXBlTm9kZSwgbG9jYWxDb250ZXh0KSxcbiAgICAgICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIG5vZGUsIG5hbWUsIHR5cGUpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG59XG5cbmZ1bmN0aW9uIHR5cGVGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICBsZXQgeyB0eXBlIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgbmFtZSB9ID0gdHlwZSxcbiAgICAgICAgdHlwZU5hbWUgPSBuYW1lOyAgLy8vXG5cbiAgdHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTmFtZSh0eXBlTmFtZSk7XG5cbiAgcmV0dXJuIHR5cGU7XG59XG4iXSwibmFtZXMiOlsiVmFyaWFibGUiLCJ0eXBlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidmFyaWFibGVOb2RlUXVlcnkiLCJzdHJpbmciLCJub2RlIiwibmFtZSIsInR5cGUiLCJnZXRTdHJpbmciLCJnZXROb2RlIiwiZ2V0TmFtZSIsImdldFR5cGUiLCJtYXRjaE5vZGUiLCJub2RlTWF0Y2hlcyIsIm1hdGNoIiwibWF0Y2hOYW1lIiwibmFtZU1hdGNoZXMiLCJ2ZXJpZnkiLCJsb2NhbENvbnRleHQiLCJ2ZXJpZmllZCIsInZhcmlhYmxlU3RyaW5nIiwidHJhY2UiLCJ2YXJpYWJsZU5vZGUiLCJ2YXJpYWJsZU5hbWUiLCJ2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlIiwidmFyaWFibGUiLCJmaW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSIsImRlYnVnIiwidmVyaWZ5QXRUb3BMZXZlbCIsInZlcmlmaWVkQXRUb3BMZXZlbCIsInZhcmlhYmxlUHJlc2VudCIsImlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUiLCJ0b0pTT04iLCJ0eXBlSlNPTiIsImpzb24iLCJmcm9tSlNPTiIsImZpbGVDb250ZXh0IiwibGV4ZXIiLCJnZXRMZXhlciIsInBhcnNlciIsImdldFBhcnNlciIsInZhcmlhYmxlTm9kZUZyb21WYXJpYWJsZVN0cmluZyIsInR5cGVGcm9tSlNPTiIsImZyb21WYXJpYWJsZU5vZGUiLCJub2RlQXNTdHJpbmciLCJmcm9tVmFyaWFibGVOb2RlQW5kVHlwZSIsImZyb21WYXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsInZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwiVHlwZSIsInNoaW0iLCJ0eXBlTm9kZSIsIkxvY2FsQ29udGV4dCIsImZyb21GaWxlQ29udGV4dCIsIm9iamVjdFR5cGUiLCJmcm9tVHlwZU5vZGUiLCJ0eXBlTmFtZSIsImZpbmRUeXBlQnlUeXBlTmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFhcUJBOzs7MkRBWEo7NERBQ1E7cUJBRUM7b0JBQ0M7b0JBQ2lCO29CQUNHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRS9DLElBQU1DLGdCQUFnQkMsSUFBQUEsZ0JBQVMsRUFBQyw4QkFDMUJDLG9CQUFvQkQsSUFBQUEsZ0JBQVMsRUFBQztBQUVyQixJQUFBLEFBQU1GLHlCQUFOO2FBQU1BLFNBQ1BJLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLElBQUk7Z0NBRGpCUDtRQUVqQixJQUFJLENBQUNJLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLElBQUksR0FBR0E7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
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy92YXJpYWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHNoaW0gZnJvbSBcIi4vc2hpbVwiO1xuaW1wb3J0IExvY2FsQ29udGV4dCBmcm9tIFwiLi9jb250ZXh0L2xvY2FsXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgb2JqZWN0VHlwZSB9IGZyb20gXCIuL3R5cGVcIjtcbmltcG9ydCB7IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGV9IGZyb20gXCIuL3V0aWxpdGllcy9uYW1lXCI7XG5pbXBvcnQgeyB2YXJpYWJsZU5vZGVGcm9tVmFyaWFibGVTdHJpbmcgfSBmcm9tIFwiLi91dGlsaXRpZXMvbm9kZVwiO1xuXG5jb25zdCB0eXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3ZhcmlhYmxlRGVjbGFyYXRpb24vdHlwZVwiKSxcbiAgICAgIHZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3ZhcmlhYmxlRGVjbGFyYXRpb24vdmFyaWFibGVcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZhcmlhYmxlIHtcbiAgY29uc3RydWN0b3Ioc3RyaW5nLCBub2RlLCBuYW1lLCB0eXBlKSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy5ub2RlID0gbm9kZTtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gIH1cblxuICBnZXRTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nO1xuICB9XG5cbiAgZ2V0Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlO1xuICB9XG5cbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgbWF0Y2hOb2RlKG5vZGUpIHtcbiAgICBjb25zdCBub2RlTWF0Y2hlcyA9IHRoaXMubm9kZS5tYXRjaChub2RlKTtcblxuICAgIHJldHVybiBub2RlTWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoTmFtZShuYW1lKSB7XG4gICAgY29uc3QgbmFtZU1hdGNoZXMgPSAodGhpcy5uYW1lID09PSBuYW1lKTtcblxuICAgIHJldHVybiBuYW1lTWF0Y2hlcztcbiAgfVxuXG4gIHZlcmlmeShsb2NhbENvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZWQ7XG5cbiAgICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IHRoaXMuc3RyaW5nOyAvLy9cblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLi4uYCk7XG5cbiAgICBjb25zdCB2YXJpYWJsZU5vZGUgPSB0aGlzLm5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZSA9IGxvY2FsQ29udGV4dC5maW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpO1xuXG4gICAgaWYgKHZhcmlhYmxlID09PSBudWxsKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYFRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlIGlzIG5vdCBwcmVzZW50LmApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0eXBlID0gdmFyaWFibGUuZ2V0VHlwZSgpO1xuXG4gICAgICB0aGlzLnR5cGUgPSB0eXBlO1xuXG4gICAgICB2ZXJpZmllZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVkKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllZDtcbiAgfVxuXG4gIHZlcmlmeVR5cGUoZmlsZUNvbnRleHQpIHtcbiAgICBsZXQgdHlwZVZlcmlmaWVkO1xuXG4gICAgY29uc3QgdHlwZU5hbWUgPSB0aGlzLnR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZU5hbWV9JyB0eXBlLi4uYCk7XG5cbiAgICBjb25zdCB0eXBlID0gZmlsZUNvbnRleHQuZmluZFR5cGVCeVR5cGVOYW1lKHR5cGVOYW1lKTtcblxuICAgIGlmICh0eXBlID09PSBudWxsKSB7XG4gICAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgVGhlICcke3R5cGVOYW1lfScgdHlwZSBpcyBtaXNzaW5nLmApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnR5cGUgPSB0eXBlOyAvLy9cblxuICAgICAgdHlwZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodHlwZVZlcmlmaWVkKSB7XG4gICAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3R5cGVOYW1lfScgdHlwZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZVZlcmlmaWVkO1xuICB9XG5cbiAgdmVyaWZ5QXRUb3BMZXZlbChmaWxlQ29udGV4dCkge1xuICAgIGxldCB2ZXJpZmllZEF0VG9wTGV2ZWw7XG5cbiAgICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IHRoaXMuc3RyaW5nOyAvLy9cblxuICAgIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUgYXQgdG9wIGxldmVsLi4uYCk7XG5cbiAgICBjb25zdCB2YXJpYWJsZU5vZGUgPSB0aGlzLm5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZVByZXNlbnQgPSBmaWxlQ29udGV4dC5pc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSk7XG5cbiAgICBpZiAodmFyaWFibGVQcmVzZW50KSB7XG4gICAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgVGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUgaXMgYWxyZWFkeSBwcmVzZW50LmApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0eXBlVmVyaWZpZWQgPSB0aGlzLnZlcmlmeVR5cGUoZmlsZUNvbnRleHQpO1xuXG4gICAgICB2ZXJpZmllZEF0VG9wTGV2ZWwgPSB0eXBlVmVyaWZpZWQ7ICAvLy9cbiAgICB9XG5cbiAgICBpZiAodmVyaWZpZWRBdFRvcExldmVsKSB7XG4gICAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUgYXQgdG9wIGxldmVsLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllZEF0VG9wTGV2ZWw7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgdHlwZUpTT04gPSB0aGlzLnR5cGUudG9KU09OKCksXG4gICAgICAgICAgc3RyaW5nID0gdGhpcy5zdHJpbmcsXG4gICAgICAgICAgdHlwZSA9IHR5cGVKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIHN0cmluZyxcbiAgICAgICAgICAgIHR5cGVcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICBsZXhlciAgPSBmaWxlQ29udGV4dC5nZXRMZXhlcigpLFxuICAgICAgICAgIHBhcnNlciA9IGZpbGVDb250ZXh0LmdldFBhcnNlcigpLFxuICAgICAgICAgIHZhcmlhYmxlU3RyaW5nID0gc3RyaW5nLCAgLy8vXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlRnJvbVZhcmlhYmxlU3RyaW5nKHZhcmlhYmxlU3RyaW5nLCBsZXhlciwgcGFyc2VyKSxcbiAgICAgICAgICB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgbm9kZSA9IHZhcmlhYmxlTm9kZSxcbiAgICAgICAgICBuYW1lID0gdmFyaWFibGVOYW1lLCAgLy8vXG4gICAgICAgICAgdHlwZSA9IHR5cGVGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUoc3RyaW5nLCBub2RlLCBuYW1lLCB0eXBlKTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgbG9jYWxDb250ZXh0KSB7XG4gICAgY29uc3Qgbm9kZSA9IHZhcmlhYmxlTm9kZSwgIC8vL1xuICAgICAgICAgIHZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBzdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpLFxuICAgICAgICAgIG5hbWUgPSB2YXJpYWJsZU5hbWUsICAvLy9cbiAgICAgICAgICB0eXBlID0gbnVsbCxcbiAgICAgICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIG5vZGUsIG5hbWUsIHR5cGUpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21WYXJpYWJsZU5vZGVBbmRUeXBlKHZhcmlhYmxlTm9kZSwgdHlwZSwgbG9jYWxDb250ZXh0KSB7XG4gICAgY29uc3Qgbm9kZSA9IHZhcmlhYmxlTm9kZSwgIC8vL1xuICAgICAgICAgIHZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBzdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpLFxuICAgICAgICAgIG5hbWUgPSB2YXJpYWJsZU5hbWUsICAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIG5vZGUsIG5hbWUsIHR5cGUpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21WYXJpYWJsZURlY2xhcmF0aW9uTm9kZSh2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCB7IFR5cGUgfSA9IHNoaW0sXG4gICAgICAgICAgdHlwZU5vZGUgPSB0eXBlTm9kZVF1ZXJ5KHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSB2YXJpYWJsZU5vZGVRdWVyeSh2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgICAgdmFyaWFibGVOYW1lID0gdmFyaWFibGVOYW1lRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgIGxvY2FsQ29udGV4dCA9IExvY2FsQ29udGV4dC5mcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHZhcmlhYmxlU3RyaW5nID0gZmlsZUNvbnRleHQubm9kZUFzU3RyaW5nKHZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgc3RyaW5nID0gdmFyaWFibGVTdHJpbmcsICAvLy9cbiAgICAgICAgICBub2RlID0gdmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgICAgbmFtZSA9IHZhcmlhYmxlTmFtZSwgIC8vL1xuICAgICAgICAgIHR5cGUgPSBUeXBlLmZyb21UeXBlTm9kZSh0eXBlTm9kZSwgbG9jYWxDb250ZXh0KSxcbiAgICAgICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIG5vZGUsIG5hbWUsIHR5cGUpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG59XG5cbmZ1bmN0aW9uIHR5cGVGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICBsZXQgeyB0eXBlIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgbmFtZSB9ID0gdHlwZSxcbiAgICAgICAgdHlwZU5hbWUgPSBuYW1lOyAgLy8vXG5cbiAgdHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTmFtZSh0eXBlTmFtZSk7XG5cbiAgcmV0dXJuIHR5cGU7XG59XG4iXSwibmFtZXMiOlsiVmFyaWFibGUiLCJ0eXBlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidmFyaWFibGVOb2RlUXVlcnkiLCJzdHJpbmciLCJub2RlIiwibmFtZSIsInR5cGUiLCJnZXRTdHJpbmciLCJnZXROb2RlIiwiZ2V0TmFtZSIsImdldFR5cGUiLCJtYXRjaE5vZGUiLCJub2RlTWF0Y2hlcyIsIm1hdGNoIiwibWF0Y2hOYW1lIiwibmFtZU1hdGNoZXMiLCJ2ZXJpZnkiLCJsb2NhbENvbnRleHQiLCJ2ZXJpZmllZCIsInZhcmlhYmxlU3RyaW5nIiwidHJhY2UiLCJ2YXJpYWJsZU5vZGUiLCJ2YXJpYWJsZU5hbWUiLCJ2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlIiwidmFyaWFibGUiLCJmaW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSIsImRlYnVnIiwidmVyaWZ5VHlwZSIsImZpbGVDb250ZXh0IiwidHlwZVZlcmlmaWVkIiwidHlwZU5hbWUiLCJmaW5kVHlwZUJ5VHlwZU5hbWUiLCJ2ZXJpZnlBdFRvcExldmVsIiwidmVyaWZpZWRBdFRvcExldmVsIiwidmFyaWFibGVQcmVzZW50IiwiaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlTmFtZSIsInRvSlNPTiIsInR5cGVKU09OIiwianNvbiIsImZyb21KU09OIiwibGV4ZXIiLCJnZXRMZXhlciIsInBhcnNlciIsImdldFBhcnNlciIsInZhcmlhYmxlTm9kZUZyb21WYXJpYWJsZVN0cmluZyIsInR5cGVGcm9tSlNPTiIsImZyb21WYXJpYWJsZU5vZGUiLCJub2RlQXNTdHJpbmciLCJmcm9tVmFyaWFibGVOb2RlQW5kVHlwZSIsImZyb21WYXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsInZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwiVHlwZSIsInNoaW0iLCJ0eXBlTm9kZSIsIkxvY2FsQ29udGV4dCIsImZyb21GaWxlQ29udGV4dCIsImZyb21UeXBlTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFhcUJBOzs7MkRBWEo7NERBQ1E7cUJBRUM7b0JBQ0M7b0JBQ2lCO29CQUNHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRS9DLElBQU1DLGdCQUFnQkMsSUFBQUEsZ0JBQVMsRUFBQyw4QkFDMUJDLG9CQUFvQkQsSUFBQUEsZ0JBQVMsRUFBQztBQUVyQixJQUFBLEFBQU1GLHlCQUFOO2FBQU1BLFNBQ1BJLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLElBQUk7Z0NBRGpCUDtRQUVqQixJQUFJLENBQUNJLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR0E7O2tCQUxLUDs7WUFRbkJRLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0osTUFBTTtZQUNwQjs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0osSUFBSTtZQUNsQjs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0osSUFBSTtZQUNsQjs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0osSUFBSTtZQUNsQjs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQSxVQUFVUCxJQUFJO2dCQUNaLElBQU1RLGNBQWMsSUFBSSxDQUFDUixJQUFJLENBQUNTLEtBQUssQ0FBQ1Q7Z0JBRXBDLE9BQU9RO1lBQ1Q7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUEsVUFBVVQsSUFB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
|
|
@@ -10,8 +10,9 @@ Object.defineProperty(exports, "default", {
|
|
|
10
10
|
});
|
|
11
11
|
var _shim = /*#__PURE__*/ _interop_require_default(require("../shim"));
|
|
12
12
|
var _verifier = /*#__PURE__*/ _interop_require_default(require("../verifier"));
|
|
13
|
-
var _query = require("../utilities/query");
|
|
14
13
|
var _local = /*#__PURE__*/ _interop_require_default(require("../context/local"));
|
|
14
|
+
var _query = require("../utilities/query");
|
|
15
|
+
var _name = require("../utilities/name");
|
|
15
16
|
function _assert_this_initialized(self) {
|
|
16
17
|
if (self === void 0) {
|
|
17
18
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
@@ -144,7 +145,11 @@ _define_property(StatementAsCombinatorVerifier, "maps", [
|
|
|
144
145
|
{
|
|
145
146
|
nodeQuery: typeNodeQuery,
|
|
146
147
|
verify: function(typeNode, fileContext) {
|
|
147
|
-
var
|
|
148
|
+
var typeVerified = false;
|
|
149
|
+
var typeName = (0, _name.typeNameFromTypeNode)(typeNode), type = fileContext.findTypeByTypeName(typeName);
|
|
150
|
+
if (type !== null) {
|
|
151
|
+
typeVerified = true;
|
|
152
|
+
}
|
|
148
153
|
return typeVerified;
|
|
149
154
|
}
|
|
150
155
|
}
|
|
@@ -152,4 +157,4 @@ _define_property(StatementAsCombinatorVerifier, "maps", [
|
|
|
152
157
|
var statementAsCombinatorVerifier = new StatementAsCombinatorVerifier();
|
|
153
158
|
var _default = statementAsCombinatorVerifier;
|
|
154
159
|
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZmllci9zdGF0ZW1lbnRBc0NvbWJpbmF0b3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBzaGltIGZyb20gXCIuLi9zaGltXCI7XG5pbXBvcnQgVmVyaWZpZXIgZnJvbSBcIi4uL3ZlcmlmaWVyXCI7XG5pbXBvcnQgTG9jYWxDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2xvY2FsXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IHR5cGVOYW1lRnJvbVR5cGVOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9uYW1lXCI7XG5cbmNvbnN0IHRlcm1Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGVybSFcIiksXG4gICAgICB0eXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGUhXCIpLFxuICAgICAgc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudCFcIik7XG5cbmNsYXNzIFN0YXRlbWVudEFzQ29tYmluYXRvclZlcmlmaWVyIGV4dGVuZHMgVmVyaWZpZXIge1xuICB2ZXJpZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgICBsZXQgc3RhdGVtZW50VmVyaWZpZWRBc0NvbWJpbmF0b3I7XG5cbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBzdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAgICAgICBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBjaGlsZE5vZGVzVmVyaWZpZWQgPSB0aGlzLnZlcmlmeUNoaWxkTm9kZXMoY2hpbGROb2RlcywgZmlsZUNvbnRleHQpO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBc0NvbWJpbmF0b3IgPSBjaGlsZE5vZGVzVmVyaWZpZWQ7ICAvLy9cblxuICAgIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFzQ29tYmluYXRvcjtcbiAgfVxuXG4gIHN0YXRpYyBtYXBzID0gW1xuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogc3RhdGVtZW50Tm9kZVF1ZXJ5LFxuICAgICAgdmVyaWZ5OiAoc3RhdGVtZW50Tm9kZSwgZmlsZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBTdGF0ZW1lbnQgfSA9IHNoaW0sXG4gICAgICAgICAgICAgIHN0YXRlbWVudCA9IFN0YXRlbWVudC5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgICAgIHN0YXRlZCA9IGZhbHNlLFxuICAgICAgICAgICAgICBhc3NpZ25tZW50cyA9IG51bGwsXG4gICAgICAgICAgICAgIGxvY2FsQ29udGV4dCA9IExvY2FsQ29udGV4dC5mcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHQpLFxuICAgICAgICAgICAgICBzdGF0ZW1lbnRWZXJpZmllZCA9IHN0YXRlbWVudC52ZXJpZnkoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWQ7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHRlcm1Ob2RlUXVlcnksXG4gICAgICB2ZXJpZnk6ICh0ZXJtTm9kZSwgZmlsZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBUZXJtIH0gPSBzaGltLFxuICAgICAgICAgICAgICBsb2NhbENvbnRleHQgPSBMb2NhbENvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0KSxcbiAgICAgICAgICAgICAgdGVybSA9IFRlcm0uZnJvbVRlcm1Ob2RlKHRlcm1Ob2RlLCBsb2NhbENvbnRleHQpLFxuICAgICAgICAgICAgICB0ZXJtVmVyaWZpZWQgPSB0ZXJtLnZlcmlmeShsb2NhbENvbnRleHQsICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcblxuICAgICAgICAgICAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGVybVZlcmlmaWVkO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiB0eXBlTm9kZVF1ZXJ5LFxuICAgICAgdmVyaWZ5OiAodHlwZU5vZGUsIGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICAgIGxldCB0eXBlVmVyaWZpZWQgPSBmYWxzZTtcblxuICAgICAgICBjb25zdCB0eXBlTmFtZSA9IHR5cGVOYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlKSxcbiAgICAgICAgICAgICAgdHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTmFtZSh0eXBlTmFtZSk7XG5cbiAgICAgICAgaWYgKHR5cGUgIT09IG51bGwpIHtcbiAgICAgICAgICB0eXBlVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHR5cGVWZXJpZmllZDtcbiAgICAgIH1cbiAgICB9XG4gIF07XG59XG5cbmNvbnN0IHN0YXRlbWVudEFzQ29tYmluYXRvclZlcmlmaWVyID0gbmV3IFN0YXRlbWVudEFzQ29tYmluYXRvclZlcmlmaWVyKCk7XG5cbmV4cG9ydCBkZWZhdWx0IHN0YXRlbWVudEFzQ29tYmluYXRvclZlcmlmaWVyO1xuIl0sIm5hbWVzIjpbInRlcm1Ob2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ0eXBlTm9kZVF1ZXJ5Iiwic3RhdGVtZW50Tm9kZVF1ZXJ5IiwiU3RhdGVtZW50QXNDb21iaW5hdG9yVmVyaWZpZXIiLCJ2ZXJpZnlTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlIiwiZmlsZUNvbnRleHQiLCJzdGF0ZW1lbnRWZXJpZmllZEFzQ29tYmluYXRvciIsIm5vblRlcm1pbmFsTm9kZSIsImNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwiY2hpbGROb2Rlc1ZlcmlmaWVkIiwidmVyaWZ5Q2hpbGROb2RlcyIsIlZlcmlmaWVyIiwibWFwcyIsInZlcmlmeSIsIlN0YXRlbWVudCIsInNoaW0iLCJzdGF0ZW1lbnQiLCJmcm9tU3RhdGVtZW50Tm9kZSIsInN0YXRlZCIsImFzc2lnbm1lbnRzIiwibG9jYWxDb250ZXh0IiwiTG9jYWxDb250ZXh0IiwiZnJvbUZpbGVDb250ZXh0Iiwic3RhdGVtZW50VmVyaWZpZWQiLCJ0ZXJtTm9kZSIsIlRlcm0iLCJ0ZXJtIiwiZnJvbVRlcm1Ob2RlIiwidGVybVZlcmlmaWVkIiwidmVyaWZpZWRBaGVhZCIsInR5cGVOb2RlIiwidHlwZVZlcmlmaWVkIiwidHlwZU5hbWUiLCJ0eXBlTmFtZUZyb21UeXBlTm9kZSIsInR5cGUiLCJmaW5kVHlwZUJ5VHlwZU5hbWUiLCJzdGF0ZW1lbnRBc0NvbWJpbmF0b3JWZXJpZmllciJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBMkVBOzs7ZUFBQTs7OzJEQXpFaUI7K0RBQ0k7NERBQ0k7cUJBRUM7b0JBQ1c7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXJDLElBQU1BLGdCQUFnQkMsSUFBQUEsZ0JBQVMsRUFBQyxXQUMxQkMsZ0JBQWdCRCxJQUFBQSxnQkFBUyxFQUFDLFdBQzFCRSxxQkFBcUJGLElBQUFBLGdCQUFTLEVBQUM7QUFFckMsSUFBQSxBQUFNRyw4Q0FBTjtjQUFNQTthQUFBQTtnQ0FBQUE7aUNBQUFBOztrQkFBQUE7O1lBQ0pDLEtBQUFBO21CQUFBQSxTQUFBQSxnQkFBZ0JDLGFBQWEsRUFBRUMsV0FBVztnQkFDeEMsSUFBSUM7Z0JBRUosSUFBTUMsa0JBQWtCSCxlQUNsQkksYUFBYUQsZ0JBQWdCRSxhQUFhLElBQzFDQyxxQkFBcUIsSUFBSSxDQUFDQyxnQkFBZ0IsQ0FBQ0gsWUFBWUg7Z0JBRTdEQyxnQ0FBZ0NJLG9CQUFxQixHQUFHO2dCQUV4RCxPQUFPSjtZQUNUOzs7V0FYSUo7RUFBc0NVLGlCQUFRO0FBYWxELGlCQWJJViwrQkFhR1csUUFBTztJQUNaO1FBQ0VkLFdBQVdFO1FBQ1hhLFFBQVEsU0FBQ1YsZUFBZUM7WUFDdEIsSUFBTSxBQUFFVSxZQUFjQyxhQUFJLENBQWxCRCxXQUNGRSxZQUFZRixVQUFVRyxpQkFBaUIsQ0FBQ2QsZUFBZUMsY0FDdkRjLFNBQVMsT0FDVEMsY0FBYyxNQUNkQyxlQUFlQyxjQUFZLENBQUNDLGVBQWUsQ0FBQ2xCLGNBQzVDbUIsb0JBQW9CUCxVQUFVSCxNQUFNLENBQUNWLGVBQWVnQixhQUFhRCxRQUFRRTtZQUUvRSxPQUFPRztRQUNUO0lBQ0Y7SUFDQTtRQUNFekIsV0FBV0Q7UUFDWGdCLFFBQVEsU0FBQ1csVUFBVXBCO1lBQ2pCLElBQU0sQUFBRXFCLE9BQVNWLGFBQUksQ0FBYlUsTUFDRkwsZUFBZUMsY0FBWSxDQUFDQyxlQUFlLENBQUNsQixjQUM1Q3NCLE9BQU9ELEtBQUtFLFlBQVksQ0FBQ0gsVUFBVUosZUFDbkNRLGVBQWVGLEtBQUtiLE1BQU0sQ0FBQ08sY0FBYztnQkFDdkMsSUFBTVMsZ0JBQWdCO2dCQUV0QixPQUFPQTtZQUNUO1lBRU4sT0FBT0Q7UUFDVDtJQUNGO0lBQ0E7UUFDRTlCLFdBQVdDO1FBQ1hjLFFBQVEsU0FBQ2lCLFVBQVUxQjtZQUNqQixJQUFJMkIsZUFBZTtZQUVuQixJQUFNQyxXQUFXQyxJQUFBQSwwQkFBb0IsRUFBQ0gsV0FDaENJLE9BQU85QixZQUFZK0Isa0JBQWtCLENBQUNIO1lBRTVDLElBQUlFLFNBQVMsTUFBTTtnQkFDakJILGVBQWU7WUFDakI7WUFFQSxPQUFPQTtRQUNUO0lBQ0Y7Q0FDRDtBQUdILElBQU1LLGdDQUFnQyxJQUFJbkM7SUFFMUMsV0FBZW1DIn0=
|
|
@@ -12,6 +12,7 @@ var _shim = /*#__PURE__*/ _interop_require_default(require("../shim"));
|
|
|
12
12
|
var _verifier = /*#__PURE__*/ _interop_require_default(require("../verifier"));
|
|
13
13
|
var _local = /*#__PURE__*/ _interop_require_default(require("../context/local"));
|
|
14
14
|
var _query = require("../utilities/query");
|
|
15
|
+
var _name = require("../utilities/name");
|
|
15
16
|
function _assert_this_initialized(self) {
|
|
16
17
|
if (self === void 0) {
|
|
17
18
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
@@ -137,7 +138,14 @@ _define_property(TermAsConstructorVerifier, "maps", [
|
|
|
137
138
|
{
|
|
138
139
|
nodeQuery: typeNodeQuery,
|
|
139
140
|
verify: function(typeNode, fileContext, verifyAhead) {
|
|
140
|
-
var
|
|
141
|
+
var typeVerified = false;
|
|
142
|
+
var typeName = (0, _name.typeNameFromTypeNode)(typeNode), type = fileContext.findTypeByTypeName(typeName);
|
|
143
|
+
if (type !== null) {
|
|
144
|
+
var verifiedAhead = verifyAhead();
|
|
145
|
+
if (verifiedAhead) {
|
|
146
|
+
typeVerified = true;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
141
149
|
return typeVerified;
|
|
142
150
|
}
|
|
143
151
|
}
|
|
@@ -145,4 +153,4 @@ _define_property(TermAsConstructorVerifier, "maps", [
|
|
|
145
153
|
var termAsConstructorVerifier = new TermAsConstructorVerifier();
|
|
146
154
|
var _default = termAsConstructorVerifier;
|
|
147
155
|
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZmllci90ZXJtQXNDb25zdHJ1Y3Rvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHNoaW0gZnJvbSBcIi4uL3NoaW1cIjtcbmltcG9ydCBWZXJpZmllciBmcm9tIFwiLi4vdmVyaWZpZXJcIjtcbmltcG9ydCBMb2NhbENvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbG9jYWxcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHt0eXBlTmFtZUZyb21UeXBlTm9kZX0gZnJvbSBcIi4uL3V0aWxpdGllcy9uYW1lXCI7XG5cbmNvbnN0IHRlcm1Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGVybSFcIiksXG4gICAgICB0eXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGUhXCIpO1xuXG5jbGFzcyBUZXJtQXNDb25zdHJ1Y3RvclZlcmlmaWVyIGV4dGVuZHMgVmVyaWZpZXIge1xuICB2ZXJpZnlUZXJtKHRlcm1Ob2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGxldCB0ZXJtVmVyaWZpZWRBc0NvbnN0cnVjdG9yO1xuXG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gdGVybU5vZGUsIC8vL1xuICAgICAgICAgIGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIGNoaWxkTm9kZXNWZXJpZmllZCA9IHRoaXMudmVyaWZ5Q2hpbGROb2RlcyhjaGlsZE5vZGVzLCBmaWxlQ29udGV4dCwgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmVyaWZpZWRBaGVhZCA9IHRydWU7XG5cbiAgICAgICAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgICAgICAgIH0pO1xuXG4gICAgdGVybVZlcmlmaWVkQXNDb25zdHJ1Y3RvciA9IGNoaWxkTm9kZXNWZXJpZmllZDsgIC8vL1xuXG4gICAgcmV0dXJuIHRlcm1WZXJpZmllZEFzQ29uc3RydWN0b3I7XG4gIH1cblxuICBzdGF0aWMgbWFwcyA9IFtcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHRlcm1Ob2RlUXVlcnksXG4gICAgICB2ZXJpZnk6ICh0ZXJtTm9kZSwgZmlsZUNvbnRleHQsIHZlcmlmeUFoZWFkKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgVGVybSB9ID0gc2hpbSxcbiAgICAgICAgICAgICAgbG9jYWxDb250ZXh0ID0gTG9jYWxDb250ZXh0LmZyb21GaWxlQ29udGV4dChmaWxlQ29udGV4dCksXG4gICAgICAgICAgICAgIHRlcm0gPSBUZXJtLmZyb21UZXJtTm9kZSh0ZXJtTm9kZSwgbG9jYWxDb250ZXh0KSxcbiAgICAgICAgICAgICAgdGVybVZlcmlmaWVkID0gdGVybS52ZXJpZnkobG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgICAgcmV0dXJuIHRlcm1WZXJpZmllZDtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogdHlwZU5vZGVRdWVyeSxcbiAgICAgIHZlcmlmeTogKHR5cGVOb2RlLCBmaWxlQ29udGV4dCwgdmVyaWZ5QWhlYWQpID0+IHtcbiAgICAgICAgbGV0IHR5cGVWZXJpZmllZCA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IHR5cGVOYW1lID0gdHlwZU5hbWVGcm9tVHlwZU5vZGUodHlwZU5vZGUpLFxuICAgICAgICAgICAgICB0eXBlID0gZmlsZUNvbnRleHQuZmluZFR5cGVCeVR5cGVOYW1lKHR5cGVOYW1lKTtcblxuICAgICAgICBpZiAodHlwZSAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IHZlcmlmaWVkQWhlYWQgPSB2ZXJpZnlBaGVhZCgpO1xuXG4gICAgICAgICAgaWYgKHZlcmlmaWVkQWhlYWQpIHtcbiAgICAgICAgICAgIHR5cGVWZXJpZmllZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHR5cGVWZXJpZmllZDtcbiAgICAgIH1cbiAgICB9XG4gIF07XG59XG5cbmNvbnN0IHRlcm1Bc0NvbnN0cnVjdG9yVmVyaWZpZXIgPSBuZXcgVGVybUFzQ29uc3RydWN0b3JWZXJpZmllcigpO1xuXG5leHBvcnQgZGVmYXVsdCB0ZXJtQXNDb25zdHJ1Y3RvclZlcmlmaWVyO1xuIl0sIm5hbWVzIjpbInRlcm1Ob2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ0eXBlTm9kZVF1ZXJ5IiwiVGVybUFzQ29uc3RydWN0b3JWZXJpZmllciIsInZlcmlmeVRlcm0iLCJ0ZXJtTm9kZSIsImZpbGVDb250ZXh0IiwidGVybVZlcmlmaWVkQXNDb25zdHJ1Y3RvciIsIm5vblRlcm1pbmFsTm9kZSIsImNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwiY2hpbGROb2Rlc1ZlcmlmaWVkIiwidmVyaWZ5Q2hpbGROb2RlcyIsInZlcmlmaWVkQWhlYWQiLCJWZXJpZmllciIsIm1hcHMiLCJ2ZXJpZnkiLCJ2ZXJpZnlBaGVhZCIsIlRlcm0iLCJzaGltIiwibG9jYWxDb250ZXh0IiwiTG9jYWxDb250ZXh0IiwiZnJvbUZpbGVDb250ZXh0IiwidGVybSIsImZyb21UZXJtTm9kZSIsInRlcm1WZXJpZmllZCIsInR5cGVOb2RlIiwidHlwZVZlcmlmaWVkIiwidHlwZU5hbWUiLCJ0eXBlTmFtZUZyb21UeXBlTm9kZSIsInR5cGUiLCJmaW5kVHlwZUJ5VHlwZU5hbWUiLCJ0ZXJtQXNDb25zdHJ1Y3RvclZlcmlmaWVyIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFpRUE7OztlQUFBOzs7MkRBL0RpQjsrREFDSTs0REFDSTtxQkFFQztvQkFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbkMsSUFBTUEsZ0JBQWdCQyxJQUFBQSxnQkFBUyxFQUFDLFdBQzFCQyxnQkFBZ0JELElBQUFBLGdCQUFTLEVBQUM7QUFFaEMsSUFBQSxBQUFNRSwwQ0FBTjtjQUFNQTthQUFBQTtnQ0FBQUE7aUNBQUFBOztrQkFBQUE7O1lBQ0pDLEtBQUFBO21CQUFBQSxTQUFBQSxXQUFXQyxRQUFRLEVBQUVDLFdBQVc7Z0JBQzlCLElBQUlDO2dCQUVKLElBQU1DLGtCQUFrQkgsVUFDbEJJLGFBQWFELGdCQUFnQkUsYUFBYSxJQUMxQ0MscUJBQXFCLElBQUksQ0FBQ0MsZ0JBQWdCLENBQUNILFlBQVlILGFBQWE7b0JBQ2xFLElBQU1PLGdCQUFnQjtvQkFFdEIsT0FBT0E7Z0JBQ1Q7Z0JBRU5OLDRCQUE0Qkksb0JBQXFCLEdBQUc7Z0JBRXBELE9BQU9KO1lBQ1Q7OztXQWZJSjtFQUFrQ1csaUJBQVE7QUFpQjlDLGlCQWpCSVgsMkJBaUJHWSxRQUFPO0lBQ1o7UUFDRWQsV0FBV0Q7UUFDWGdCLFFBQVEsU0FBQ1gsVUFBVUMsYUFBYVc7WUFDOUIsSUFBTSxBQUFFQyxPQUFTQyxhQUFJLENBQWJELE1BQ0ZFLGVBQWVDLGNBQVksQ0FBQ0MsZUFBZSxDQUFDaEIsY0FDNUNpQixPQUFPTCxLQUFLTSxZQUFZLENBQUNuQixVQUFVZSxlQUNuQ0ssZUFBZUYsS0FBS1AsTUFBTSxDQUFDSSxjQUFjSDtZQUUvQyxPQUFPUTtRQUNUO0lBQ0Y7SUFDQTtRQUNFeEIsV0FBV0M7UUFDWGMsUUFBUSxTQUFDVSxVQUFVcEIsYUFBYVc7WUFDOUIsSUFBSVUsZUFBZTtZQUVuQixJQUFNQyxXQUFXQyxJQUFBQSwwQkFBb0IsRUFBQ0gsV0FDaENJLE9BQU94QixZQUFZeUIsa0JBQWtCLENBQUNIO1lBRTVDLElBQUlFLFNBQVMsTUFBTTtnQkFDakIsSUFBTWpCLGdCQUFnQkk7Z0JBRXRCLElBQUlKLGVBQWU7b0JBQ2pCYyxlQUFlO2dCQUNqQjtZQUNGO1lBRUEsT0FBT0E7UUFDVDtJQUNGO0NBQ0Q7QUFHSCxJQUFNSyw0QkFBNEIsSUFBSTdCO0lBRXRDLFdBQWU2QiJ9
|
package/package.json
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import shim from "../shim";
|
|
4
3
|
import Variable from "../variable";
|
|
5
4
|
|
|
6
5
|
import { nodeQuery } from "../utilities/query";
|
|
7
|
-
import {
|
|
6
|
+
import { typeNameFromTypeNode } from "../utilities/name";
|
|
8
7
|
|
|
9
8
|
const typeNodeQuery = nodeQuery("/variableDeclaration/type");
|
|
10
9
|
|
|
@@ -50,30 +49,26 @@ export default class VariableDeclaration {
|
|
|
50
49
|
}
|
|
51
50
|
|
|
52
51
|
static fromVariableDeclarationNode(variableDeclarationNode, fileContext) {
|
|
53
|
-
const
|
|
54
|
-
typeNode = typeNodeQuery(variableDeclarationNode),
|
|
55
|
-
type = (typeNode === null) ?
|
|
56
|
-
objectType :
|
|
57
|
-
Type.fromTypeNode(typeNode, fileContext),
|
|
52
|
+
const typeNode = typeNodeQuery(variableDeclarationNode),
|
|
58
53
|
variable = Variable.fromVariableDeclarationNode(variableDeclarationNode, fileContext),
|
|
59
|
-
string =
|
|
54
|
+
string = stringFromVariableAndTypeNode(variable, typeNode),
|
|
60
55
|
variableDeclaration = new VariableDeclaration(fileContext, string, variable);
|
|
61
56
|
|
|
62
57
|
return variableDeclaration;
|
|
63
58
|
}
|
|
64
59
|
}
|
|
65
60
|
|
|
66
|
-
function
|
|
61
|
+
function stringFromVariableAndTypeNode(variable, typeNode) {
|
|
67
62
|
let string;
|
|
68
63
|
|
|
69
64
|
const variableString = variable.getString();
|
|
70
65
|
|
|
71
|
-
if (
|
|
66
|
+
if (typeNode === null) {
|
|
72
67
|
string = variableString; ///
|
|
73
68
|
} else {
|
|
74
|
-
const
|
|
69
|
+
const typeName = typeNameFromTypeNode(typeNode);
|
|
75
70
|
|
|
76
|
-
string = `${variableString}:${
|
|
71
|
+
string = `${variableString}:${typeName}`;
|
|
77
72
|
}
|
|
78
73
|
|
|
79
74
|
return string;
|
package/src/metavariable.js
CHANGED
|
@@ -165,10 +165,12 @@ export default class Metavariable {
|
|
|
165
165
|
function metaTypeFromJSON(json, fileContext) {
|
|
166
166
|
let { metaType } = json;
|
|
167
167
|
|
|
168
|
-
|
|
169
|
-
|
|
168
|
+
if (metaType !== null) {
|
|
169
|
+
const { name } = metaType,
|
|
170
|
+
metaTypeName = name; ///
|
|
170
171
|
|
|
171
|
-
|
|
172
|
+
metaType = fileContext.findMetaTypeByMetaTypeName(metaTypeName);
|
|
173
|
+
}
|
|
172
174
|
|
|
173
175
|
return metaType;
|
|
174
176
|
}
|
package/src/term.js
CHANGED
|
@@ -136,26 +136,22 @@ class Term {
|
|
|
136
136
|
verifyType(fileContext) {
|
|
137
137
|
let typeVerified;
|
|
138
138
|
|
|
139
|
-
|
|
140
|
-
typeVerified = true;
|
|
141
|
-
} else {
|
|
142
|
-
const typeName = this.type.getName();
|
|
139
|
+
const typeName = this.type.getName();
|
|
143
140
|
|
|
144
|
-
|
|
141
|
+
fileContext.trace(`Verifying the '${typeName}' type...`);
|
|
145
142
|
|
|
146
|
-
|
|
143
|
+
const type = fileContext.findTypeByTypeName(typeName);
|
|
147
144
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
145
|
+
if (type === null) {
|
|
146
|
+
fileContext.debug(`The '${typeName}' type is missing.`);
|
|
147
|
+
} else {
|
|
148
|
+
this.type = type; ///
|
|
152
149
|
|
|
153
|
-
|
|
154
|
-
|
|
150
|
+
typeVerified = true;
|
|
151
|
+
}
|
|
155
152
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
}
|
|
153
|
+
if (typeVerified) {
|
|
154
|
+
fileContext.debug(`...verified the '${typeName}' type.`);
|
|
159
155
|
}
|
|
160
156
|
|
|
161
157
|
return typeVerified;
|
|
@@ -197,11 +193,13 @@ class Term {
|
|
|
197
193
|
|
|
198
194
|
fileContext.trace(`Verifying the '${termString}' term at top level...`);
|
|
199
195
|
|
|
200
|
-
const termNode = this.node,
|
|
196
|
+
const termNode = this.node, ///
|
|
201
197
|
termVerifiedAsConstructor = termAsConstructorVerifier.verifyTerm(termNode, fileContext);
|
|
202
198
|
|
|
203
199
|
if (termVerifiedAsConstructor) {
|
|
204
|
-
|
|
200
|
+
const typeVerified = this.verifyType(fileContext);
|
|
201
|
+
|
|
202
|
+
verifiedAtTopLevel = typeVerified; ///
|
|
205
203
|
}
|
|
206
204
|
|
|
207
205
|
if (verifiedAtTopLevel) {
|
|
@@ -212,9 +210,7 @@ class Term {
|
|
|
212
210
|
}
|
|
213
211
|
|
|
214
212
|
toJSON() {
|
|
215
|
-
const typeJSON =
|
|
216
|
-
this.type.toJSON() :
|
|
217
|
-
null,
|
|
213
|
+
const typeJSON = this.type.toJSON(),
|
|
218
214
|
string = this.string,
|
|
219
215
|
type = typeJSON, ///
|
|
220
216
|
json = {
|
package/src/type.js
CHANGED
|
@@ -131,9 +131,20 @@ class Type {
|
|
|
131
131
|
const typePresent = fileContext.isTypePresentByTypeName(this.name);
|
|
132
132
|
|
|
133
133
|
if (typePresent) {
|
|
134
|
-
|
|
134
|
+
const superTypeName = this.superType.getName(),
|
|
135
|
+
superType = fileContext.findTypeByTypeName(superTypeName);
|
|
136
|
+
|
|
137
|
+
if (superType === null) {
|
|
138
|
+
const superTypeString = this.superType.asString();
|
|
139
|
+
|
|
140
|
+
fileContext.debug(`The '${superTypeString}' super-type is not present.`);
|
|
141
|
+
} else {
|
|
142
|
+
this.superType = superType;
|
|
143
|
+
|
|
144
|
+
verified = true;
|
|
145
|
+
}
|
|
135
146
|
} else {
|
|
136
|
-
fileContext.debug(`The
|
|
147
|
+
fileContext.debug(`The '${typeString}' type is not present.`);
|
|
137
148
|
}
|
|
138
149
|
|
|
139
150
|
if (verified) {
|
|
@@ -177,9 +188,7 @@ class Type {
|
|
|
177
188
|
}
|
|
178
189
|
|
|
179
190
|
toJSON() {
|
|
180
|
-
const superTypeJSON =
|
|
181
|
-
this.superType.toJSON() :
|
|
182
|
-
null,
|
|
191
|
+
const superTypeJSON = this.superType.toJSON(),
|
|
183
192
|
name = this.name,
|
|
184
193
|
superType = superTypeJSON, ///
|
|
185
194
|
json = {
|
|
@@ -201,11 +210,18 @@ class Type {
|
|
|
201
210
|
}
|
|
202
211
|
|
|
203
212
|
static fromTypeNode(typeNode) {
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
213
|
+
let type;
|
|
214
|
+
|
|
215
|
+
if (typeNode === null) {
|
|
216
|
+
type = objectType;
|
|
217
|
+
} else {
|
|
218
|
+
const typeName = typeNameFromTypeNode(typeNode),
|
|
219
|
+
name = typeName, ///
|
|
220
|
+
string = name, ///
|
|
221
|
+
superType = null;
|
|
222
|
+
|
|
223
|
+
type = new Type(string, name, superType);
|
|
224
|
+
}
|
|
209
225
|
|
|
210
226
|
return type;
|
|
211
227
|
}
|
|
@@ -214,9 +230,7 @@ class Type {
|
|
|
214
230
|
const typeNode = typeNodeQuery(typeDeclarationNode),
|
|
215
231
|
superTypeNode = superTypeNodeQuery(typeDeclarationNode),
|
|
216
232
|
typeName = typeNameFromTypeNode(typeNode),
|
|
217
|
-
superType = (superTypeNode
|
|
218
|
-
objectType :
|
|
219
|
-
Type.fromTypeNode(superTypeNode),
|
|
233
|
+
superType = Type.fromTypeNode(superTypeNode),
|
|
220
234
|
string = stringFromTypeNameAndSuperType(typeName, superType),
|
|
221
235
|
name = typeName, ///
|
|
222
236
|
type = new Type(string, name, superType);
|
|
@@ -4,6 +4,7 @@ import shim from "../shim";
|
|
|
4
4
|
import Unifier from "../unifier";
|
|
5
5
|
|
|
6
6
|
import { nodeQuery } from "../utilities/query";
|
|
7
|
+
import { typeNameFromTypeNode } from "../utilities/name";
|
|
7
8
|
|
|
8
9
|
const typeNodeQuery = nodeQuery("/type!"),
|
|
9
10
|
termNodeQuery = nodeQuery("/term!");
|
|
@@ -28,12 +29,12 @@ class MetavariableUnifier extends Unifier {
|
|
|
28
29
|
unify: (termNodeA, typeNodeB, localContext) => {
|
|
29
30
|
let unified = false;
|
|
30
31
|
|
|
31
|
-
const { Term
|
|
32
|
+
const { Term } = shim,
|
|
32
33
|
typeNode = typeNodeB, ///
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
typeName = typeNameFromTypeNode(typeNode),
|
|
35
|
+
type = localContext.findTypeByTypeName(typeName);
|
|
35
36
|
|
|
36
|
-
if (
|
|
37
|
+
if (type !== null) {
|
|
37
38
|
const termNode = termNodeA, ///
|
|
38
39
|
term = Term.fromTermNode(termNode, localContext),
|
|
39
40
|
termVerifiedGivenType = term.verifyGivenType(type, localContext);
|
|
@@ -4,6 +4,8 @@ import shim from "../shim";
|
|
|
4
4
|
import Unifier from "../unifier";
|
|
5
5
|
|
|
6
6
|
import { nodeQuery } from "../utilities/query";
|
|
7
|
+
import { typeNameFromTypeNode } from "../utilities/name";
|
|
8
|
+
import local from "../context/local";
|
|
7
9
|
|
|
8
10
|
const termNodeQuery = nodeQuery("/term!"),
|
|
9
11
|
typeNodeQuery = nodeQuery("/type!"),
|
|
@@ -67,12 +69,12 @@ class StatementWithCombinatorUnifier extends Unifier {
|
|
|
67
69
|
unify: (termNodeA, typeNodeB, assignments, stated, localContext) => {
|
|
68
70
|
let unified = false;
|
|
69
71
|
|
|
70
|
-
const { Term
|
|
72
|
+
const { Term } = shim,
|
|
71
73
|
typeNode = typeNodeB, ///
|
|
72
|
-
|
|
73
|
-
|
|
74
|
+
typeName = typeNameFromTypeNode(typeNode),
|
|
75
|
+
type = localContext.findTypeByTypeName(typeName);
|
|
74
76
|
|
|
75
|
-
if (
|
|
77
|
+
if (type !== null) {
|
|
76
78
|
const termNode = termNodeA, ///
|
|
77
79
|
term = Term.fromTermNode(termNode, localContext),
|
|
78
80
|
termVerifiedGivenType = term.verifyGivenType(type, localContext);
|
|
@@ -4,6 +4,7 @@ import shim from "../shim";
|
|
|
4
4
|
import Unifier from "../unifier";
|
|
5
5
|
|
|
6
6
|
import { nodeQuery } from "../utilities/query";
|
|
7
|
+
import { typeNameFromTypeNode } from "../utilities/name";
|
|
7
8
|
|
|
8
9
|
const termNodeQuery = nodeQuery("/term"),
|
|
9
10
|
typeNodeQuery = nodeQuery("/type");
|
|
@@ -28,12 +29,12 @@ class TermWithConstructorUnifier extends Unifier {
|
|
|
28
29
|
unify: (termNodeA, typeNodeB, localContext) => {
|
|
29
30
|
let unified = false;
|
|
30
31
|
|
|
31
|
-
const { Term
|
|
32
|
+
const { Term } = shim,
|
|
32
33
|
typeNode = typeNodeB, ///
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
typeName = typeNameFromTypeNode(typeNode),
|
|
35
|
+
type = localContext.findTypeByTypeName(typeName);
|
|
35
36
|
|
|
36
|
-
if (
|
|
37
|
+
if (type !== null) {
|
|
37
38
|
const termNode = termNodeA, ///
|
|
38
39
|
term = Term.fromTermNode(termNode, localContext),
|
|
39
40
|
termVerifiedGivenType = term.verifyGivenType(type, localContext);
|
package/src/variable.js
CHANGED
|
@@ -75,34 +75,58 @@ export default class Variable {
|
|
|
75
75
|
return verified;
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
verifyType(fileContext) {
|
|
79
|
+
let typeVerified;
|
|
80
|
+
|
|
81
|
+
const typeName = this.type.getName();
|
|
82
|
+
|
|
83
|
+
fileContext.trace(`Verifying the '${typeName}' type...`);
|
|
84
|
+
|
|
85
|
+
const type = fileContext.findTypeByTypeName(typeName);
|
|
86
|
+
|
|
87
|
+
if (type === null) {
|
|
88
|
+
fileContext.debug(`The '${typeName}' type is missing.`);
|
|
89
|
+
} else {
|
|
90
|
+
this.type = type; ///
|
|
91
|
+
|
|
92
|
+
typeVerified = true;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
if (typeVerified) {
|
|
96
|
+
fileContext.debug(`...verified the '${typeName}' type.`);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
return typeVerified;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
verifyAtTopLevel(fileContext) {
|
|
79
103
|
let verifiedAtTopLevel;
|
|
80
104
|
|
|
81
105
|
const variableString = this.string; ///
|
|
82
106
|
|
|
83
|
-
|
|
107
|
+
fileContext.trace(`Verifying the '${variableString}' variable at top level...`);
|
|
84
108
|
|
|
85
109
|
const variableNode = this.node, ///
|
|
86
110
|
variableName = variableNameFromVariableNode(variableNode),
|
|
87
|
-
variablePresent =
|
|
111
|
+
variablePresent = fileContext.isVariablePresentByVariableName(variableName);
|
|
88
112
|
|
|
89
113
|
if (variablePresent) {
|
|
90
|
-
|
|
114
|
+
fileContext.debug(`The '${variableString}' variable is already present.`);
|
|
91
115
|
} else {
|
|
92
|
-
|
|
116
|
+
const typeVerified = this.verifyType(fileContext);
|
|
117
|
+
|
|
118
|
+
verifiedAtTopLevel = typeVerified; ///
|
|
93
119
|
}
|
|
94
120
|
|
|
95
121
|
if (verifiedAtTopLevel) {
|
|
96
|
-
|
|
122
|
+
fileContext.debug(`...verified the '${variableString}' variable at top level.`);
|
|
97
123
|
}
|
|
98
124
|
|
|
99
125
|
return verifiedAtTopLevel;
|
|
100
126
|
}
|
|
101
127
|
|
|
102
128
|
toJSON() {
|
|
103
|
-
const typeJSON =
|
|
104
|
-
this.type.toJSON() :
|
|
105
|
-
null,
|
|
129
|
+
const typeJSON = this.type.toJSON(),
|
|
106
130
|
string = this.string,
|
|
107
131
|
type = typeJSON, ///
|
|
108
132
|
json = {
|
|
@@ -159,9 +183,7 @@ export default class Variable {
|
|
|
159
183
|
string = variableString, ///
|
|
160
184
|
node = variableNode, ///
|
|
161
185
|
name = variableName, ///
|
|
162
|
-
type = (typeNode
|
|
163
|
-
objectType :
|
|
164
|
-
Type.fromTypeNode(typeNode, localContext),
|
|
186
|
+
type = Type.fromTypeNode(typeNode, localContext),
|
|
165
187
|
variable = new Variable(string, node, name, type);
|
|
166
188
|
|
|
167
189
|
return variable;
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
import shim from "../shim";
|
|
4
4
|
import Verifier from "../verifier";
|
|
5
|
+
import LocalContext from "../context/local";
|
|
5
6
|
|
|
6
7
|
import { nodeQuery } from "../utilities/query";
|
|
7
|
-
import
|
|
8
|
+
import { typeNameFromTypeNode } from "../utilities/name";
|
|
8
9
|
|
|
9
10
|
const termNodeQuery = nodeQuery("/term!"),
|
|
10
11
|
typeNodeQuery = nodeQuery("/type!"),
|
|
@@ -55,9 +56,14 @@ class StatementAsCombinatorVerifier extends Verifier {
|
|
|
55
56
|
{
|
|
56
57
|
nodeQuery: typeNodeQuery,
|
|
57
58
|
verify: (typeNode, fileContext) => {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
let typeVerified = false;
|
|
60
|
+
|
|
61
|
+
const typeName = typeNameFromTypeNode(typeNode),
|
|
62
|
+
type = fileContext.findTypeByTypeName(typeName);
|
|
63
|
+
|
|
64
|
+
if (type !== null) {
|
|
65
|
+
typeVerified = true;
|
|
66
|
+
}
|
|
61
67
|
|
|
62
68
|
return typeVerified;
|
|
63
69
|
}
|