44
55import * as postcss from 'postcss' ;
66
7- import { Expression , ExpressionProps } from './expression' ;
7+ import { AnyExpression , ExpressionProps } from './expression' ;
88import { fromProps } from './expression/from-props' ;
99import { Node , NodeProps } from './node' ;
1010import { ArgumentList } from './argument-list' ;
@@ -60,7 +60,7 @@ export interface ArgumentRaws {
6060 */
6161export type ArgumentObjectProps = NodeProps & {
6262 raws ?: ArgumentRaws ;
63- value : Expression | ExpressionProps ;
63+ value : AnyExpression | ExpressionProps ;
6464} & ( { name ?: string ; rest ?: never } | { name ?: never ; rest ?: boolean } ) ;
6565
6666/**
@@ -70,7 +70,7 @@ export type ArgumentObjectProps = NodeProps & {
7070 * ArgumentDeclarationProps}.
7171 */
7272export type ArgumentExpressionProps =
73- | Expression
73+ | AnyExpression
7474 | ExpressionProps
7575 | Omit < ArgumentObjectProps , 'name' > ;
7676
@@ -81,7 +81,7 @@ export type ArgumentExpressionProps =
8181 */
8282export type ArgumentProps =
8383 | ArgumentObjectProps
84- | Expression
84+ | AnyExpression
8585 | ExpressionProps
8686 | [ string , ArgumentExpressionProps ] ;
8787
@@ -115,16 +115,16 @@ export class Argument extends Node {
115115 private declare _name ?: string ;
116116
117117 /** The argument's value. */
118- get value ( ) : Expression {
118+ get value ( ) : AnyExpression {
119119 return this . _value ! ;
120120 }
121- set value ( value : Expression | ExpressionProps ) {
121+ set value ( value : AnyExpression | ExpressionProps ) {
122122 if ( this . _value ) this . _value . parent = undefined ;
123- if ( ! ( 'sassType' in value ) ) value = fromProps ( value ) ;
124- if ( value ) value . parent = this ;
125- this . _value = value ;
123+ const built = 'sassType' in value ? value : fromProps ( value ) ;
124+ built . parent = this ;
125+ this . _value = built ;
126126 }
127- private declare _value ?: Expression ;
127+ private declare _value ?: AnyExpression ;
128128
129129 /**
130130 * Whether this is a rest argument (indicated by `...` in Sass).
@@ -147,14 +147,14 @@ export class Argument extends Node {
147147 if ( 'sassType' in props || ! ( 'value' in props ) ) {
148148 defaults = {
149149 name,
150- value : props as Expression | ExpressionProps ,
150+ value : props as AnyExpression | ExpressionProps ,
151151 } ;
152152 } else {
153153 defaults = { name, ...props } as ArgumentObjectProps ;
154154 }
155155 } else if ( 'sassType' in defaults || ! ( 'value' in defaults ) ) {
156156 defaults = {
157- value : defaults as Expression | ExpressionProps ,
157+ value : defaults as AnyExpression | ExpressionProps ,
158158 } ;
159159 }
160160 super ( defaults ) ;
@@ -193,7 +193,7 @@ export class Argument extends Node {
193193 }
194194
195195 /** @hidden */
196- get nonStatementChildren ( ) : ReadonlyArray < Expression > {
196+ get nonStatementChildren ( ) : ReadonlyArray < AnyExpression > {
197197 return [ this . value ] ;
198198 }
199199}
0 commit comments