@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
18 lines (16 loc) • 3.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const DiagnosticCode_1 = require("../../../DiagnosticCode");
const DiagnosticMessage_1 = require("../../../DiagnosticMessage");
const getHasBuiltins_1 = require("./getHasBuiltins");
function handleTypeConversion(context, fromNode, fromType, toNode, toType) {
if (fromType !== undefined && toType !== undefined) {
const hasBuiltins = getHasBuiltins_1.getHasBuiltins(context, fromNode, fromType);
const mismatch = hasBuiltins.some((hasBuiltin) => !hasBuiltin(context, toNode, toType));
if (mismatch) {
context.reportError(fromNode, DiagnosticCode_1.DiagnosticCode.InvalidBuiltinUsage, DiagnosticMessage_1.DiagnosticMessage.InvalidBuiltinAssignment, context.typeChecker.typeToString(fromType, fromNode), context.typeChecker.typeToString(toType, toNode));
}
}
}
exports.handleTypeConversion = handleTypeConversion;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhhbmRsZVR5cGVDb252ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsNERBQXlEO0FBQ3pELGtFQUErRDtBQUMvRCxxREFBa0Q7QUFFbEQsU0FBZ0Isb0JBQW9CLENBQ2xDLE9BQWdCLEVBQ2hCLFFBQWlCLEVBQ2pCLFFBQTZCLEVBQzdCLE1BQWUsRUFDZixNQUEyQjtJQUUzQixJQUFJLFFBQVEsS0FBSyxTQUFTLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtRQUNsRCxNQUFNLFdBQVcsR0FBRywrQkFBYyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDaEUsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3hGLElBQUksUUFBUSxFQUFFO1lBQ1osT0FBTyxDQUFDLFdBQVcsQ0FDakIsUUFBUSxFQUNSLCtCQUFjLENBQUMsbUJBQW1CLEVBQ2xDLHFDQUFpQixDQUFDLHdCQUF3QixFQUMxQyxPQUFPLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQ3BELE9BQU8sQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FDakQsQ0FBQztTQUNIO0tBQ0Y7QUFDSCxDQUFDO0FBcEJELG9EQW9CQyIsImZpbGUiOiJuZW8tb25lLXNtYXJ0LWNvbnRyYWN0LWNvbXBpbGVyL3NyYy9jb21waWxlL2hlbHBlci90eXBlcy9oYW5kbGVUeXBlQ29udmVyc2lvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7IENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9Db250ZXh0JztcbmltcG9ydCB7IERpYWdub3N0aWNDb2RlIH0gZnJvbSAnLi4vLi4vLi4vRGlhZ25vc3RpY0NvZGUnO1xuaW1wb3J0IHsgRGlhZ25vc3RpY01lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi9EaWFnbm9zdGljTWVzc2FnZSc7XG5pbXBvcnQgeyBnZXRIYXNCdWlsdGlucyB9IGZyb20gJy4vZ2V0SGFzQnVpbHRpbnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlVHlwZUNvbnZlcnNpb24oXG4gIGNvbnRleHQ6IENvbnRleHQsXG4gIGZyb21Ob2RlOiB0cy5Ob2RlLFxuICBmcm9tVHlwZTogdHMuVHlwZSB8IHVuZGVmaW5lZCxcbiAgdG9Ob2RlOiB0cy5Ob2RlLFxuICB0b1R5cGU6IHRzLlR5cGUgfCB1bmRlZmluZWQsXG4pOiB2b2lkIHtcbiAgaWYgKGZyb21UeXBlICE9PSB1bmRlZmluZWQgJiYgdG9UeXBlICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBoYXNCdWlsdGlucyA9IGdldEhhc0J1aWx0aW5zKGNvbnRleHQsIGZyb21Ob2RlLCBmcm9tVHlwZSk7XG4gICAgY29uc3QgbWlzbWF0Y2ggPSBoYXNCdWlsdGlucy5zb21lKChoYXNCdWlsdGluKSA9PiAhaGFzQnVpbHRpbihjb250ZXh0LCB0b05vZGUsIHRvVHlwZSkpO1xuICAgIGlmIChtaXNtYXRjaCkge1xuICAgICAgY29udGV4dC5yZXBvcnRFcnJvcihcbiAgICAgICAgZnJvbU5vZGUsXG4gICAgICAgIERpYWdub3N0aWNDb2RlLkludmFsaWRCdWlsdGluVXNhZ2UsXG4gICAgICAgIERpYWdub3N0aWNNZXNzYWdlLkludmFsaWRCdWlsdGluQXNzaWdubWVudCxcbiAgICAgICAgY29udGV4dC50eXBlQ2hlY2tlci50eXBlVG9TdHJpbmcoZnJvbVR5cGUsIGZyb21Ob2RlKSxcbiAgICAgICAgY29udGV4dC50eXBlQ2hlY2tlci50eXBlVG9TdHJpbmcodG9UeXBlLCB0b05vZGUpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==