refactor: cleanup unused variables in vFor

This commit is contained in:
Evan You 2019-09-19 13:48:32 -04:00
parent 06c890c336
commit 4c3e7e331a

View File

@ -1,5 +1,5 @@
import { createDirectiveTransform, TransformContext } from '../transform'
import { NodeTypes, ExpressionNode, Node, SourceLocation } from '../ast'
import { createDirectiveTransform } from '../transform'
import { NodeTypes, ExpressionNode, Node } from '../ast'
import { createCompilerError, ErrorCodes } from '../errors'
import { getInnerRange } from '../utils'
@ -16,16 +16,13 @@ export const transformFor = createDirectiveTransform(
context.replaceNode({
type: NodeTypes.FOR,
loc: node.loc,
source: createExpression(aliases.source, dir.exp, context),
valueAlias: aliases.value
? createExpression(aliases.value, dir.exp, context)
: undefined,
keyAlias: aliases.key
? createExpression(aliases.key, dir.exp, context)
: undefined,
objectIndexAlias: aliases.index
? createExpression(aliases.index, dir.exp, context)
: undefined,
source: maybeCreateExpression(
aliases.source,
dir.exp
) as ExpressionNode,
valueAlias: maybeCreateExpression(aliases.value, dir.exp),
keyAlias: maybeCreateExpression(aliases.key, dir.exp),
objectIndexAlias: maybeCreateExpression(aliases.index, dir.exp),
children: [node]
})
} else {
@ -44,25 +41,6 @@ export const transformFor = createDirectiveTransform(
}
)
function createExpression(
alias: AliasExpression,
node: Node,
context: TransformContext
): ExpressionNode {
const loc: SourceLocation = getInnerRange(
node.loc,
alias.offset,
alias.content.length
)
return {
type: NodeTypes.EXPRESSION,
loc: loc,
content: alias.content,
isStatic: false
}
}
interface AliasExpression {
offset: number
content: string
@ -75,13 +53,11 @@ interface AliasExpressions {
index: AliasExpression | undefined
}
function parseAliasExpressions(source: string): null | AliasExpressions {
function parseAliasExpressions(source: string): AliasExpressions | null {
const inMatch = source.match(forAliasRE)
if (!inMatch) return null
const [, LHS, RHS] = inMatch
const result: AliasExpressions = {
source: {
offset: source.indexOf(RHS, LHS.length),
@ -135,3 +111,17 @@ function parseAliasExpressions(source: string): null | AliasExpressions {
return result
}
function maybeCreateExpression(
alias: AliasExpression | undefined,
node: Node
): ExpressionNode | undefined {
if (alias) {
return {
type: NodeTypes.EXPRESSION,
loc: getInnerRange(node.loc, alias.offset, alias.content.length),
content: alias.content,
isStatic: false
}
}
}