"illegal parameter count" runtime error with more than 3 ux:Dependency's

If using more than 3 ux:Dependencys on a ux:Class the app fails to start in the test environment, with the error:

Illegal parameter count
Please see the Fuse Monitor (Cmd/Ctrl+M) for details.

The fuse monitor in question just shows a stacktrace within the uno source closure evaluation, but gives no hint as to the actual cause.

Is the limit supposed to be 3? (this seems rather low, and should be documented, if so)

Can the error for this scenario be more informative? Took me a long time of disabling things to work out what was causing it.

Hi! There is no such limit. Can you please provide a test project that reproduces the issue?

Thanks

<App>
	<Panel ux:Class="Test">
		<Panel ux:Dependency="d1" />
		<Panel ux:Dependency="d2" />
		<Panel ux:Dependency="d3" />
		<Panel ux:Dependency="d4" />
	</Panel>

	<Panel ux:Name="input" />
	<Test d1="input" d2="input" d3="input" d4="input" />
</App>

That works fine here. What build command are you using?

Just fuse preview

Here’s a log (from the above MainView.ux):

> fuse preview

Fuse 0.33.0 (build 10195)
Build started: FullCompile
Configuring (2.0 s)
Compiling syntax tree (2.0 s)
Generating code and data (11.6 s)

Build completed in 15.71 seconds
Build ended
GL_VERSION: 4.1.11251 Compatibility Profile Context
GL_VENDOR: ATI Technologies Inc.
GL_RENDERER: AMD Radeon HD 6530D
System.Exception: Illegal parameter count
   at Outracks.Simulator.Runtime.ScopeClosure.Evaluate(Lambda p) in Fusetools\Fuse\App\app-0.33.0.10195\Packages\Outracks.Simulator.Client.Uno\0.1.0\runtime\$.uno:line 262
   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 Fusetools\Fuse\App\app-0.33.0.10195\Packages\Outracks.Simulator.Protocol.Uno\0.0.0\bytecode\$.uno:line 112
   at Outracks.Simulator.Runtime.ScopeClosure.Evaluate(Expression expression) in Fusetools\Fuse\App\app-0.33.0.10195\Packages\Outracks.Simulator.Client.Uno\0.1.0\runtime\$.uno:line 131
   at Outracks.Simulator.Runtime.ScopeClosure.Execute(Lambda lambda, Object[] arguments) in Fusetools\Fuse\App\app-0.33.0.10195\Packages\Outracks.Simulator.Client.Uno\0.1.0\runtime\$.uno:line 105
   at Outracks.Simulator.Runtime.LambdaClosure.Func(Object a1) in Fusetools\Fuse\App\app-0.33.0.10195\Packages\Outracks.Simulator.Client.Uno\0.1.0\runtime\$.uno:line 341
   at Outracks.Simulator.Runtime.LambdaClosure.Action(Object a1) in Fusetools\Fuse\App\app-0.33.0.10195\Packages\Outracks.Simulator.Client.Uno\0.1.0\runtime\$.uno:line 321
   at Outracks.Simulator.Runtime.ScopeClosure.Execute(Object lambda, Object[] arguments) in Fusetools\Fuse\App\app-0.33.0.10195\Packages\Outracks.Simulator.Client.Uno\0.1.0\runtime\$.uno:line 231
   at Outracks.Simulator.Runtime.ScopeClosure.Evaluate(CallLambda i) in Fusetools\Fuse\App\app-0.33.0.10195\Packages\Outracks.Simulator.Client.Uno\0.1.0\runtime\$.uno:line 163
   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 Fusetools\Fuse\App\app-0.33.0.10195\Packages\Outracks.Simulator.Protocol.Uno\0.0.0\bytecode\$.uno:line 117
   at Outracks.Simulator.Runtime.ScopeClosure.Evaluate(Expression expression) in Fusetools\Fuse\App\app-0.33.0.10195\Packages\Outracks.Simulator.Client.Uno\0.1.0\runtime\$.uno:line 131
   at Outracks.Simulator.Runtime.ScopeClosure.Execute(IEnumerable`1 statements)
in Fusetools\Fuse\App\app-0.33.0.10195\Packages\Outracks.Simulator.Client.Uno\0.1.0\runtime\$.uno:line 117
   at Outracks.Simulator.Runtime.ScopeClosure.Execute(Lambda lambda, Object[] arguments) in Fusetools\Fuse\App\app-0.33.0.10195\Packages\Outracks.Simulator.Client.Uno\0.1.0\runtime\$.uno:line 107
   at Outracks.Simulator.Runtime.VirtualMachine.Execute(IReflection reflection,
Lambda lambda, Object[] arguments) in Fusetools\Fuse\App\app-0.33.0.10195\Packages\Outracks.Simulator.Client.Uno\0.1.0\runtime\$.uno:line 78
   at Outracks.Simulator.Runtime.VirtualMachine.Execute(Lambda lambda, Object[]
arguments) in Fusetools\Fuse\App\app-0.33.0.10195\Packages\Outracks.Simulator.Client.Uno\0.1.0\runtime\$.uno:line 73
   at Outracks.Simulator.Reifying.OnEnterState() in Fusetools\Fuse\App\app-0.33.0.10195\Packages\Outracks.Simulator.Client.Uno\0.1.0\$.uno:line 516
   at Outracks.Simulator.Application.SetState(State nextState) in Fusetools\Fuse\App\app-0.33.0.10195\Packages\Outracks.Simulator.Client.Uno\0.1.0\$.uno:line 211
   at Outracks.Simulator.Application.OnUpdate() in Fusetools\Fuse\App\app-0.33.0.10195\Packages\Outracks.Simulator.Client.Uno\0.1.0\$.uno:line 201
   at Fuse.App.Update() in Fusetools\Packages\Fuse.Desktop\0.44.1\$.uno:line 73

Ok, thanks for the report. This seems to be in a different part of the product than what I assumed. Raising an internal issue for the preview engine team.

I’ve just pushed a fix for this, but I believe I missed the merge window for this release, so it’ll likely be fixed in the next release :slight_smile:

Cool, cheers!

A quick update here: The fix will be included in Fuse 0.34, which should be out in a week or two.