git.iko.soy/rowtype-yoga/purescript-backend-optimizer
on main help sign in
rowtype-yoga/purescript-backend-optimizer/backend-es/test-snapshots/src/Snapshot.InlineReferenceOpArrayLength.purs
47 lines 916 B history raw
1-- @inline export fn' never
2module Snapshot.InlineReferenceOpArrayLength where
4import Prelude
6import Data.Array as Array
7import Data.Maybe (Maybe(..))
9test1 :: (forall r. r -> Int) -> Array Int
10test1 fn = do
11 let array = [ 1, 2, fn {} ]
12 if Array.length array == 3 then
13 array
14 else
15 []
17test2 :: (forall r. r -> Int) -> Array (Array Int)
18test2 fn = do
19 let array1 = [ 1, 2, fn {} ]
20 let array2 = [ array1, [ 3, 4 ], [ fn {} ] ]
21 if Just 3 == (Array.length <$> Array.index array2 0) then
22 array2
23 else
24 [ array1 ] <> array2
26fn' :: forall r. r -> Int
27fn' _ = 0
29extern1 :: Array Int
30extern1 = [ 1, 2, fn' {} ]
32extern2 :: Array (Array Int)
33extern2 = [ extern1, [ 3 ], [ fn' {} ] ]
35test3 :: Array Int
36test3 =
37 if Array.length extern1 == 3 then
38 extern1
39 else
40 []
42test4 :: Array (Array Int)
43test4 =
44 if Just 3 == (Array.length <$> Array.index extern2 0) then
45 extern2
46 else
47 []