@@ -72,14 +72,24 @@ package object ops {
7272 protected [singleton] type Arg [Num , T , TWide ] = OpMacro [OpId .Arg , Num , T , TWide ] // Argument for real-time function creation
7373 protected [singleton] type GetType [Sym ] = OpMacro [OpId .GetType , Sym , NP , NP ] // Argument for real-time function creation
7474 type AcceptNonLiteral [P1 ] = OpMacro [OpId .AcceptNonLiteral , P1 , NP , NP ]
75- type GetArg [ArgIdx ] = OpMacro [OpId .GetArg , ArgIdx , NP , NP ] // Use to get argument type of class/definition
76- type GetLHSArg [ArgIdx ] = OpMacro [OpId .GetLHSArg , ArgIdx , NP , NP ] // Use to get argument type of the left-hand-side
75+ type GetArg [ArgIdx ] = OpMacro [OpId .GetArg , ArgIdx , False , NP ] // Use to get argument type of class/definition
76+ type GetLHSArg [ArgIdx ] = OpMacro [OpId .GetArg , ArgIdx , True , NP ] // Use to get argument type of the left-hand-side
7777 type ImplicitFound [Sym ] = OpMacro [OpId .ImplicitFound , GetType [Sym ], NP , NP ] // Implicit Found boolean indication
7878 type EnumCount [Sym ] = OpMacro [OpId .EnumCount , GetType [Sym ], NP , NP ] // Number of direct subclasses
79- final val GetArg = impl.GetArg
80- final val GetLHSArg = impl.GetLHSArg
79+ object GetArg {
80+ type Aux [ArgIdx , Out ] = OpAuxGen [GetArg [ArgIdx ], Out ]
81+ }
82+ object GetLHSArg {
83+ type Aux [ArgIdx , Out ] = OpAuxGen [GetLHSArg [ArgIdx ], Out ]
84+ }
8185 type GetArg0 = GetArg [W .`0`.T ]
86+ object GetArg0 {
87+ type Aux [Out ] = OpAuxGen [GetArg0 , Out ]
88+ }
8289 type GetLHSArg0 = GetLHSArg [W .`0`.T ]
90+ object GetLHSArg0 {
91+ type Aux [Out ] = OpAuxGen [GetLHSArg0 , Out ]
92+ }
8393 type Id [P1 ] = OpMacro [OpId .Id , P1 , NP , NP ]
8494 type ! [P1 ] = OpMacro [OpId .! , P1 , NP , NP ]
8595 type Require [Cond ] = OpMacro [OpId .Require , Cond , DefaultRequireMsg , NoSym ]
0 commit comments