@@ -1270,15 +1270,18 @@ Value _parseChannels(String functionName, Value input,
1270
1270
channels = componentList;
1271
1271
}
1272
1272
1273
- for (var channel in channels) {
1273
+ for (var i = 0 ; i < channels.length; i++ ) {
1274
+ var channel = channels[i];
1274
1275
if (! channel.isSpecialNumber &&
1275
1276
channel is ! SassNumber &&
1276
1277
! _isNone (channel)) {
1277
- var channelName =
1278
- space? .channels[channels.indexOf (channel)].name ?? 'channel' ;
1278
+ var channelName = space? .channels
1279
+ .elementAtOrNull (i)
1280
+ ? .name
1281
+ .andThen ((name) => '$name channel' ) ??
1282
+ 'channel ${i + 1 }' ;
1279
1283
throw SassScriptException (
1280
- 'Expected $channelName channel to be a number, was $channel .' ,
1281
- name);
1284
+ 'Expected $channelName to be a number, was $channel .' , name);
1282
1285
}
1283
1286
}
1284
1287
@@ -1353,15 +1356,11 @@ Value _parseChannels(String functionName, Value input,
1353
1356
[...var initial, SassString (hasQuotes: false , : var text)] => switch (
1354
1357
text.split ('/' )) {
1355
1358
[_] => (input, null ),
1356
- [var channel3 && 'none' , var alpha] ||
1357
- [var channel3, var alpha && 'none' ] =>
1358
- switch ((_parseNumberOrNone (channel3), _parseNumberOrNone (alpha))) {
1359
- (var channel3Value? , var alphaValue? ) => (
1360
- SassList ([...initial, channel3Value], ListSeparator .space),
1361
- alphaValue
1362
- ),
1363
- _ => null
1364
- },
1359
+ [var channel3, var alpha] => (
1360
+ SassList ([...initial, _parseNumberOrString (channel3)],
1361
+ ListSeparator .space),
1362
+ _parseNumberOrString (alpha)
1363
+ ),
1365
1364
_ => null
1366
1365
},
1367
1366
[...var initial, SassNumber (asSlash: (var before, var after))] => (
@@ -1371,15 +1370,12 @@ Value _parseChannels(String functionName, Value input,
1371
1370
_ => (input, null )
1372
1371
};
1373
1372
1374
- /// Parses [text] as either a Sass number or the unquoted Sass string "none".
1375
- ///
1376
- /// If neither matches, returns null.
1377
- Value ? _parseNumberOrNone (String text) {
1378
- if (text == 'none' ) return SassString ('none' , quotes: false );
1373
+ /// Parses [text] as either a Sass number or an unquoted Sass string.
1374
+ Value _parseNumberOrString (String text) {
1379
1375
try {
1380
1376
return ScssParser (text).parseNumber ();
1381
1377
} on SassFormatException {
1382
- return null ;
1378
+ return SassString (text, quotes : false ) ;
1383
1379
}
1384
1380
}
1385
1381
0 commit comments