The Match/Case ‘function’ crashes (NullReferenceException), when I’m using the IsDefault-Case (see ‘page4’ in the example, it’s just the sample project with an extra testpage). Without the IsDefault-Case (just one case, or some different other cases) everything is working fine.
Fuse v. 0.9.2
<App Theme="Basic" Background="#eeeeeeff">
<DockPanel>
<iOS.StatusBarConfig ux:Name="statusBarConfig" Style="Light" IsVisible="true"/>
<Panel>
<Style>
<Text TextAlignment="Center" FontSize="16" TextWrapping="Wrap" Y="100" TextColor="#fff"/>
<Image StretchMode="UniformToFill"/>
<Page>
<EnteringAnimation>
<Move X="-1" RelativeTo="ParentSize"/>
</EnteringAnimation>
<ExitingAnimation>
<Move X="1" RelativeTo="ParentSize"/>
</ExitingAnimation>
</Page>
</Style>
<PageIndicator Navigation="navigation" Alignment="BottomCenter" Margin="30">
<Circle ux:Generate="Factory" ux:Binding="DotFactory" Width="10" Height="10" Margin="6">
<SolidColor ux:Name="color" Color="#999"/>
<ActivatingAnimation>
<Change color.Color="#fff" />
</ActivatingAnimation>
</Circle>
</PageIndicator>
<Panel>
<LinearNavigation ux:Name="navigation" Easing="CircularOut"/>
<WhileTrue ux:Name="canSwipe" Value="true">
<SwipeNavigate ux:Name="swipeNavigate" SwipeDirection="Left" SwipeEnds="Closed"/>
</WhileTrue>
<Page>
<Text Width="60%">This button triggers the phone's vibrate function</Text>
<Button Text="Vibrate" Height="45" Alignment="Bottom" Margin="20,80">
<Clicked>
<Fuse.Vibration.Vibrate Duration="0.2"/>
</Clicked>
</Button>
<Image File="Assets/background1.png"/>
</Page>
<Page ux:Name="page2">
<Text Width="70%">This toggle switch disables your ability to swipe between pages</Text>
<Switch Alignment="BottomCenter" Margin="0,80">
<WhileTrue>
<Change canSwipe.Value="false"/>
</WhileTrue>
</Switch>
<Image File="Assets/background2.png"/>
<WhileActive Threshold="0.5">
<Change statusBarConfig.Style="Dark"/>
</WhileActive>
</Page>
<Page ux:Name="page3">
<Text Width="70%">This slider blurs the background image</Text>
<Slider Width="50%" Alignment="Bottom" Margin="0,80">
<ProgressAnimation>
<Change blur.Radius="5"/>
</ProgressAnimation>
</Slider>
<GraphicsView>
<Image File="Assets/background3.png" Margin="-10">
<Blur ux:Name="blur" Radius="0"/>
</Image>
</GraphicsView>
</Page>
<Page ux:Name="page4">
<JavaScript>
var Observable = require("FuseJS/Observable");
var variable = Observable("option1");
module.exports = {
variable:variable
};
</JavaScript>
<Panel Background="#E6E6E6">
<Match Value="{variable}">
<Case String="option1">
<StackPanel>
<Text Value="some text"/>
<Image File="Assets/Hamburger_active.png" Alignment="Center" />
</StackPanel>
</Case>
<Case IsDefault="true">
<StackPanel>
<Text Value="some text2"/>
<Image File="Assets/Hamburger.png" Alignment="Center" />
</StackPanel>
</Case>
</Match>
</Panel>
</Page>
</Panel>
</Panel>
<BottomBarBackground Dock="Bottom" />
</DockPanel>
</App>
ERROR: Object reference not set to an instance of an object.
System.NullReferenceException occured.
at Fuse.Reactive.Match.SelectCase() in C:\ProgramData\Uno\Packages\Fuse.Reactive\0.15.3\$.uno:line 1743
at Fuse.Reactive.Match.Invalidate() in C:\ProgramData\Uno\Packages\Fuse.Reactive\0.15.3\$.uno:line 1729
at Fuse.Reactive.Match.OnRooted(Node n) in C:\ProgramData\Uno\Packages\Fuse.Reactive\0.15.3\$.uno:line 1712
at Fuse.Behavior.Rooted(Node e) in C:\ProgramData\Uno\Packages\FuseCore\0.15.3\$.uno:line 229
at Fuse.Node.RootBehaviors() in C:\ProgramData\Uno\Packages\FuseCore\0.15.3\$.uno:line 2091
at Fuse.Node.MarkRooted() in C:\ProgramData\Uno\Packages\FuseCore\0.15.3\$.uno:line 4072
at Fuse.Node.MarkRooted() in C:\ProgramData\Uno\Packages\FuseCore\0.15.3\$.uno:line 4076
at Fuse.Node.MarkRooted() in C:\ProgramData\Uno\Packages\FuseCore\0.15.3\$.uno:line 4076
at Fuse.Node.MarkRooted() in C:\ProgramData\Uno\Packages\FuseCore\0.15.3\$.uno:line 4076
at Fuse.Node.MarkRooted() in C:\ProgramData\Uno\Packages\FuseCore\0.15.3\$.uno:line 4076
at Fuse.Node.OnAdded(Node parent) in C:\ProgramData\Uno\Packages\FuseCore\0.15.3\$.uno:line 3947
at Fuse.Controls.Panel.ListChildAdded(Node item) in C:\ProgramData\Uno\Packages\Fuse.Controls\0.15.3\$.uno:line 1823
at Uno.Collections.ObservableList`1.Add(T item) in C:\ProgramData\Uno\Packages\Uno.Collections\0.16.2\$.uno:line 50
at Outracks.Simulator.FakeApp.set_RootNode(Node value) in C:\ProgramData\Uno\Packages\Outracks.Simulator.Client.Uno\0.1.0\$.uno:line 224
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Outracks.Simulator.Runtime.TryInvokeExtension.Try(Func`1 func)
at Outracks.Simulator.Runtime.TryInvokeExtension.TryInvoke(MethodInfo mi, Object obj, Object[] value)
at Outracks.Simulator.Runtime.CompiledTypeReflection.SetPropertyValue(Object obj, TypeMemberName propertyName, Object value)
at Outracks.Fuse.Preview.RuntimeObjectPoker.<HookUpReflectionInterface>b__10(Object a, String b, Object c)
at Outracks.Simulator.Reflection.DelegateReflection.Outracks.Simulator.Runtime.IReflection.SetPropertyValue(Object instance, TypeMemberName propertyName, Object value) in C:\ProgramData\Uno\Packages\Outracks.Simulator.Reflection.Uno\0.1.0\$.uno:line 73
at Outracks.Simulator.Runtime.ScopeClosure.Evaluate(WriteProperty p) in C:\ProgramData\Uno\Packages\Outracks.Simulator.Client.Uno\0.1.0\Runtime\$.uno:line 186
at Outracks.Simulator.Bytecode.Expression.Match[T](Func`2 a1, Func`2 a2, Func`2 a3, Func`2 a4, Func`2 a5, Func`2 a6, Func`2 a7, Func`2 a8, Func`2 a9, Func`2 a10, Func`2 a11, Func`2 a12, Func`2 a13, Func`2 a15, Func`2 a16) in C:\ProgramData\Uno\Packages\Outracks.Simulator.Protocol.Uno\0.1.0\Bytecode\$.uno:line 110
at Outracks.Simulator.Runtime.ScopeClosure.Evaluate(Expression expression) in C:\ProgramData\Uno\Packages\Outracks.Simulator.Client.Uno\0.1.0\Runtime\$.uno:line 129
at Outracks.Simulator.Runtime.ScopeClosure.Execute(IEnumerable`1 statements) in C:\ProgramData\Uno\Packages\Outracks.Simulator.Client.Uno\0.1.0\Runtime\$.uno:line 115
at Outracks.Simulator.Runtime.ScopeClosure.Execute(Lambda lambda, Object[] arguments) in C:\ProgramData\Uno\Packages\Outracks.Simulator.Client.Uno\0.1.0\Runtime\$.uno:line 105
at Outracks.Simulator.Runtime.LambdaClosure.Func(Object a1) in C:\ProgramData\Uno\Packages\Outracks.Simulator.Client.Uno\0.1.0\Runtime\$.uno:line 339
at Outracks.Simulator.Runtime.ScopeClosure.Execute(Object lambda, Object[] arguments) in C:\ProgramData\Uno\Packages\Outracks.Simulator.Client.Uno\0.1.0\Runtime\$.uno:line 219
at Outracks.Simulator.Runtime.ScopeClosure.Evaluate(CallLambda i) in C:\ProgramData\Uno\Packages\Outracks.Simulator.Client.Uno\0.1.0\Runtime\$.uno:line 161
at Outracks.Simulator.Bytecode.Expression.Match[T](Func`2 a1, Func`2 a2, Func`2 a3, Func`2 a4, Func`2 a5, Func`2 a6, Func`2 a7, Func`2 a8, Func`2 a9, Func`2 a10, Func`2 a11, Func`2 a12, Func`2 a13, Func`2 a15, Func`2 a16) in C:\ProgramData\Uno\Packages\Outracks.Simulator.Protocol.Uno\0.1.0\Bytecode\$.uno:line 105
at Outracks.Simulator.Runtime.ScopeClosure.Evaluate(Expression expression) in C:\ProgramData\Uno\Packages\Outracks.Simulator.Client.Uno\0.1.0\Runtime\$.uno:line 129
at Outracks.Simulator.Runtime.ScopeClosure.Execute(IEnumerable`1 statements) in C:\ProgramData\Uno\Packages\Outracks.Simulator.Client.Uno\0.1.0\Runtime\$.uno:line 115
at Outracks.Simulator.Runtime.ScopeClosure.Execute(Lambda lambda, Object[] arguments) in C:\ProgramData\Uno\Packages\Outracks.Simulator.Client.Uno\0.1.0\Runtime\$.uno:line 105
at Outracks.Simulator.Runtime.LambdaClosure.Func(Object a1) in C:\ProgramData\Uno\Packages\Outracks.Simulator.Client.Uno\0.1.0\Runtime\$.uno:line 339
at Outracks.Simulator.Runtime.LambdaClosure.Action(Object a1) in C:\ProgramData\Uno\Packages\Outracks.Simulator.Client.Uno\0.1.0\Runtime\$.uno:line 319
at Outracks.Simulator.Runtime.ScopeClosure.Execute(Object lambda, Object[] arguments) in C:\ProgramData\Uno\Packages\Outracks.Simulator.Client.Uno\0.1.0\Runtime\$.uno:line 229
at Outracks.Simulator.Runtime.ScopeClosure.Evaluate(CallLambda i) in C:\ProgramData\Uno\Packages\Outracks.Simulator.Client.Uno\0.1.0\Runtime\$.uno:line 161
at Outracks.Simulator.Bytecode.Expression.Match[T](Func`2 a1, Func`2 a2, Func`2 a3, Func`2 a4, Func`2 a5, Func`2 a6, Func`2 a7, Func`2 a8, Func`2 a9, Func`2 a10, Func`2 a11, Func`2 a12, Func`2 a13, Func`2 a15, Func`2 a16) in C:\ProgramData\Uno\Packages\Outracks.Simulator.Protocol.Uno\0.1.0\Bytecode\$.uno:line 105
at Outracks.Simulator.Runtime.ScopeClosure.Evaluate(Expression expression) in C:\ProgramData\Uno\Packages\Outracks.Simulator.Client.Uno\0.1.0\Runtime\$.uno:line 129
at Outracks.Simulator.Runtime.ScopeClosure.Execute(IEnumerable`1 statements) in C:\ProgramData\Uno\Packages\Outracks.Simulator.Client.Uno\0.1.0\Runtime\$.uno:line 115
at Outracks.Simulator.Runtime.ScopeClosure.Execute(Lambda lambda, Object[] arguments) in C:\ProgramData\Uno\Packages\Outracks.Simulator.Client.Uno\0.1.0\Runtime\$.uno:line 105
at Outracks.Simulator.Runtime.VirtualMachine.Execute(IReflection reflection, Lambda lambda, Object[] arguments) in C:\ProgramData\Uno\Packages\Outracks.Simulator.Client.Uno\0.1.0\Runtime\$.uno:line 76
at Outracks.Simulator.Runtime.VirtualMachine.Execute(Lambda lambda, Object[] arguments) in C:\ProgramData\Uno\Packages\Outracks.Simulator.Client.Uno\0.1.0\Runtime\$.uno:line 71
at Outracks.Simulator.Reifying.OnEnterState() in C:\ProgramData\Uno\Packages\Outracks.Simulator.Client.Uno\0.1.0\$.uno:line 711
at Outracks.Simulator.Application.SetState(State nextState) in C:\ProgramData\Uno\Packages\Outracks.Simulator.Client.Uno\0.1.0\$.uno:line 393
at Outracks.Simulator.Application.OnUpdate() in C:\ProgramData\Uno\Packages\Outracks.Simulator.Client.Uno\0.1.0\$.uno:line 383
at Fuse.App.Update() in C:\ProgramData\Uno\Packages\Fuse.Desktop\0.15.3\$.uno:line 48