Generate typed QX bindings and add source editing tools

This commit is contained in:
Timothy J. Aveni
2026-09-08 14:27:24 -07:00
parent ce793cc54f
commit 4e17693d82
30 changed files with 2806 additions and 1939 deletions
+9
View File
@@ -928,6 +928,7 @@ const validatePackages = (
}
break;
case "constructor":
if (port.requirement.inputType) validateValueType(issues, port.requirement.inputType, `${portPath}.requirement.inputType`, indexes);
if (!indexes.atoms.has(port.requirement.atomId)) {
issue(
issues,
@@ -1260,6 +1261,14 @@ const validateBoundDependencies = (
`Atom ${requirement.atomId} has no constructor binding`,
);
}
if (requirement.inputType) {
const selected = params.indexes.constructors.get(requirement.atomId);
const implementation = selected ? params.indexes.packages.get(selected.packageRevisionId)?.exports.get(selected.exportId) : undefined;
if (implementation && !valueTypesEqual(requirement.inputType, implementation.inputType)) {
issue(issues, "invalid-dependency-binding", `${path}.binding.atomId`,
`Constructor port requires input ${typeLabel(requirement.inputType)}, but selected constructor accepts ${typeLabel(implementation.inputType)}`);
}
}
break;
}
}