Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
17 / 17
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
Less_VisitorReplacing
100.00% covered (success)
100.00%
17 / 17
100.00% covered (success)
100.00%
2 / 2
9
100.00% covered (success)
100.00%
1 / 1
 visitArray
100.00% covered (success)
100.00%
8 / 8
100.00% covered (success)
100.00%
1 / 1
4
 flatten
100.00% covered (success)
100.00%
9 / 9
100.00% covered (success)
100.00%
1 / 1
5
1<?php
2declare( strict_types = 1 );
3
4/**
5 * @private
6 */
7class Less_VisitorReplacing extends Less_Visitor {
8
9    public function visitArray( &$nodes ) {
10        $newNodes = [];
11        foreach ( $nodes as $node ) {
12            $evald = $this->visitObj( $node );
13            if ( $evald ) {
14                if ( is_array( $evald ) ) {
15                    self::flatten( $evald, $newNodes );
16                } else {
17                    $newNodes[] = $evald;
18                }
19            }
20        }
21        return $newNodes;
22    }
23
24    public function flatten( $arr, &$out ) {
25        foreach ( $arr as $item ) {
26            if ( !is_array( $item ) ) {
27                $out[] = $item;
28                continue;
29            }
30
31            foreach ( $item as $nestedItem ) {
32                if ( is_array( $nestedItem ) ) {
33                    self::flatten( $nestedItem, $out );
34                } else {
35                    $out[] = $nestedItem;
36                }
37            }
38        }
39
40        return $out;
41    }
42
43}