Skip to content

Commit

Permalink
chore: PR review changes
Browse files Browse the repository at this point in the history
  • Loading branch information
astahmer committed Aug 4, 2023
1 parent b699f23 commit 4054197
Show file tree
Hide file tree
Showing 8 changed files with 24 additions and 65 deletions.
4 changes: 0 additions & 4 deletions package.json
Expand Up @@ -89,11 +89,7 @@
"typescript-4-7-2": "npm:typescript@4.7.2",
"typescript-4-8-2": "npm:typescript@4.8.2",
"typescript-4-9-4": "npm:typescript@4.9.4",
"typescript-4-9-5": "npm:typescript@4.9.5",
"typescript-5-0-3": "npm:typescript@5.0.3",
"typescript-5-0-4": "npm:typescript@5.0.4",
"typescript-5-1-3": "npm:typescript@5.1.3",
"typescript-5-1-5": "npm:typescript@5.1.5",
"typescript-5-1-6": "npm:typescript@5.1.6"
},
"dependencies": {
Expand Down
36 changes: 0 additions & 36 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Expand Up @@ -10,7 +10,7 @@ export class AsyncIteratorNotSupportedError extends EvaluationError {
super({
message,
environment,
node: typescript.factory?.createEmptyStatement() ?? (typescript as any as (typeof TS)["factory"]).createEmptyStatement()
node: typescript.factory?.createEmptyStatement() ?? (typescript as unknown as TS.NodeFactory).createEmptyStatement()
});
}
}
7 changes: 5 additions & 2 deletions src/interpreter/evaluator/evaluate-node.ts
Expand Up @@ -99,8 +99,11 @@ export function evaluateNode({node, ...rest}: EvaluatorOptions<TS.Node>): unknow
return evaluateObjectLiteralExpression({node, ...rest});
} else if (rest.typescript.isAwaitExpression(node)) {
return evaluateAwaitExpression({node, ...rest});
} else if (rest.typescript.isTypeAssertionExpression?.(node) || (!("isTypeAssertionExpression" in rest.typescript) && (rest.typescript as any).isTypeAssertion(node))) {
return evaluateTypeAssertion({node: node as TS.TypeAssertion, ...rest});
} else if (
rest.typescript.isTypeAssertionExpression?.(node) ||
(!("isTypeAssertionExpression" in rest.typescript) && (rest.typescript as {isTypeAssertion: typeof TS.isTypeAssertionExpression}).isTypeAssertion(node))
) {
return evaluateTypeAssertion({node, ...rest});
} else if (rest.typescript.isTemplateExpression(node)) {
return evaluateTemplateExpression({node, ...rest});
} else if (rest.typescript.isMethodDeclaration(node)) {
Expand Down
7 changes: 5 additions & 2 deletions src/interpreter/lexical-environment/get-dot-path-from-node.ts
Expand Up @@ -21,8 +21,11 @@ export function getDotPathFromNode<T extends TS.Node>(options: EvaluatorOptions<
return SUPER_SYMBOL;
} else if (typescript.isParenthesizedExpression(node)) {
return getDotPathFromNode({...options, node: node.expression});
} else if (typescript.isTypeAssertionExpression?.(node) || (!("isTypeAssertionExpression" in typescript) && (typescript as any).isTypeAssertion(node))) {
return getDotPathFromNode({...options, node: (node as any as TS.TypeAssertion).expression});
} else if (
typescript.isTypeAssertionExpression?.(node) ||
(!("isTypeAssertionExpression" in typescript) && (typescript as {isTypeAssertion: typeof TS.isTypeAssertionExpression}).isTypeAssertion(node))
) {
return getDotPathFromNode({...options, node: node.expression});
} else if (typescript.isPropertyAccessExpression(node)) {
let leftHand = getDotPathFromNode({...options, node: node.expression});
if (leftHand == null) leftHand = evaluate.expression(node.expression, options) as string;
Expand Down
Expand Up @@ -12,8 +12,11 @@ export function expressionContainsSuperKeyword(expression: TS.Expression | TS.Pr
return expressionContainsSuperKeyword(expression.expression, typescript) || expressionContainsSuperKeyword(expression.argumentExpression, typescript);
} else if (typescript.isParenthesizedExpression(expression)) return expressionContainsSuperKeyword(expression.expression, typescript);
else if (typescript.isAsExpression(expression)) return expressionContainsSuperKeyword(expression.expression, typescript);
else if (typescript.isTypeAssertionExpression?.(expression) || (!("isTypeAssertionExpression" in typescript) && (typescript as any).isTypeAssertion(expression))) {
return expressionContainsSuperKeyword((expression as TS.TypeAssertion).expression, typescript);
else if (
typescript.isTypeAssertionExpression?.(expression) ||
(!("isTypeAssertionExpression" in typescript) && (typescript as {isTypeAssertion: typeof TS.isTypeAssertionExpression}).isTypeAssertion(expression))
) {
return expressionContainsSuperKeyword(expression.expression, typescript);
} else {
return false;
}
Expand Down
19 changes: 3 additions & 16 deletions src/interpreter/util/modifier/has-modifier.ts
Expand Up @@ -3,20 +3,7 @@ import {TS} from "../../../type/ts.js";
/**
* Returns true if the given Node has the given kind of Modifier
*/
export function hasModifier(node: TS.Node | TS.Modifier[], modifier: TS.Modifier["kind"], typescript: typeof TS): boolean {
if ("canHaveModifiers" in typescript && "getModifiers" in typescript) {
const nodeList = Array.isArray(node) ? node : [node];
return nodeList.some(n => {
if (!typescript.canHaveModifiers(n)) return false;
const modifiers = typescript.getModifiers(n);
return modifiers != null && modifiers.some(m => m.kind === modifier);
});
}

if ("modifiers" in node) {
const modifiers = Array.isArray(node) ? node : (node.modifiers as readonly TS.Modifier[] | undefined);
return modifiers != null && modifiers.some(m => m.kind === modifier);
}

return false;
export function hasModifier(node: TS.Node | TS.ModifierLike[], modifier: TS.Modifier["kind"]): boolean {
const modifiers = Array.isArray(node) ? node : "modifiers" in node && Array.isArray(node.modifiers) ? (node.modifiers as readonly TS.ModifierLike[]) : undefined;
return modifiers != null && modifiers.some(m => m.kind === modifier);
}
7 changes: 5 additions & 2 deletions src/interpreter/util/node/get-inner-node.ts
Expand Up @@ -3,8 +3,11 @@ import {TS} from "../../../type/ts.js";
export function getInnerNode<T extends TS.Node>(node: TS.Node, typescript: typeof TS): T {
if (typescript.isParenthesizedExpression(node)) return getInnerNode(node.expression, typescript);
else if (typescript.isAsExpression(node)) return getInnerNode(node.expression, typescript);
else if (typescript.isTypeAssertionExpression?.(node) || (!("isTypeAssertionExpression" in typescript) && (typescript as any).isTypeAssertion(node))) {
return getInnerNode((node as TS.TypeAssertion).expression, typescript);
else if (
typescript.isTypeAssertionExpression?.(node) ||
(!("isTypeAssertionExpression" in typescript) && (typescript as {isTypeAssertion: typeof TS.isTypeAssertionExpression}).isTypeAssertion(node))
) {
return getInnerNode(node.expression, typescript);
} else {
return node as T;
}
Expand Down

0 comments on commit 4054197

Please sign in to comment.