Skip to content

Commit

Permalink
Allow InferType.elementaryTypeNameStringToTypeNode() to return undefi…
Browse files Browse the repository at this point in the history
…ned if it fails to process type name
  • Loading branch information
blitz-1306 committed Nov 17, 2022
1 parent ece08a4 commit 4828954
Showing 1 changed file with 19 additions and 6 deletions.
25 changes: 19 additions & 6 deletions src/types/infer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1659,10 +1659,21 @@ export class InferType {
}

typeOfElementaryTypeNameExpression(node: ElementaryTypeNameExpression): TypeNode {
const innerT =
node.typeName instanceof TypeName
? this.typeNameToTypeNode(node.typeName)
: this.elementaryTypeNameStringToTypeNode(node.typeName);
let innerT: TypeNode;

if (node.typeName instanceof TypeName) {
innerT = this.typeNameToTypeNode(node.typeName);
} else {
const elementaryT = this.elementaryTypeNameStringToTypeNode(node.typeName);

assert(
elementaryT !== undefined,
'NYI converting elementary type name "{0}"',
node.typeName
);

innerT = elementaryT;
}

return new TypeNameType(innerT);
}
Expand Down Expand Up @@ -2080,7 +2091,7 @@ export class InferType {
*
* @todo Consider fixes due to https://github.com/ConsenSys/solc-typed-ast/issues/160
*/
elementaryTypeNameStringToTypeNode(name: string): TypeNode {
elementaryTypeNameStringToTypeNode(name: string): TypeNode | undefined {
name = name.trim();

if (name === "bool") {
Expand Down Expand Up @@ -2124,7 +2135,7 @@ export class InferType {
return new StringType();
}

throw new Error(`NYI converting elementary type name "${name}"`);
return undefined;
}

/**
Expand All @@ -2135,6 +2146,8 @@ export class InferType {
if (node instanceof ElementaryTypeName) {
const type = this.elementaryTypeNameStringToTypeNode(node.name);

assert(type !== undefined, 'NYI converting elementary type name "{0}"', node.name);

/**
* The payability marker of an "address" type is contained
* in `stateMutability` property instead of "name" string.
Expand Down

0 comments on commit 4828954

Please sign in to comment.