@@ -223,14 +223,16 @@ function Base.propertynames(sys::AbstractSystem; private=false)
223
223
end
224
224
end
225
225
226
- function Base. getproperty (sys:: AbstractSystem , name:: Symbol ; namespace= false )
226
+ Base. getproperty (sys:: AbstractSystem , name:: Symbol ; namespace= false ) = getvar (sys, name; namespace= namespace)
227
+ getvar (sys, name:: Symbol ; namespace= false ) = getproperty (sys, name)
228
+ function getvar (sys:: AbstractSystem , name:: Symbol ; namespace= false )
227
229
sysname = nameof (sys)
228
230
systems = get_systems (sys)
229
231
if isdefined (sys, name)
230
232
Base. depwarn (" `sys.name` like `sys.$name ` is deprecated. Use getters like `get_$name ` instead." , " sys.$name " )
231
233
return getfield (sys, name)
232
234
elseif ! isempty (systems)
233
- i = findfirst (x-> nameof (x)== name,systems)
235
+ i = findfirst (x-> nameof (x)== name, systems)
234
236
if i != = nothing
235
237
return namespace ? rename (systems[i], renamespace (sysname,name)) : systems[i]
236
238
end
642
644
function _config (expr, namespace)
643
645
cn = Base. Fix2 (_config, namespace)
644
646
if Meta. isexpr (expr, :.)
645
- return :($ getproperty ($ (map (cn, expr. args)... ); namespace= $ namespace))
647
+ return :($ getvar ($ (map (cn, expr. args)... ); namespace= $ namespace))
648
+ elseif Meta. isexpr (expr, :function )
649
+ def = splitdef (expr)
650
+ def[:args ] = map (cn, def[:args ])
651
+ def[:body ] = cn (def[:body ])
652
+ combinedef (def)
646
653
elseif expr isa Expr && ! isempty (expr. args)
647
654
return Expr (expr. head, map (cn, expr. args)... )
655
+ elseif Meta. isexpr (expr, :(= ))
656
+ return Expr (:(= ), map (cn, expr. args)... )
648
657
else
649
658
expr
650
659
end
654
663
$(SIGNATURES)
655
664
656
665
Rewrite `@nonamespace a.b.c` to
657
- `getproperty(getproperty (a, :b; namespace = false), :c; namespace = false)`.
666
+ `getvar(getvar (a, :b; namespace = false), :c; namespace = false)`.
658
667
659
- This is the default behavior of `getproperty `. This should be used when inheriting states from a model.
668
+ This is the default behavior of `getvar `. This should be used when inheriting states from a model.
660
669
"""
661
670
macro nonamespace (expr)
662
671
esc (_config (expr, false ))
666
675
$(SIGNATURES)
667
676
668
677
Rewrite `@namespace a.b.c` to
669
- `getproperty(getproperty (a, :b; namespace = true), :c; namespace = true)`.
678
+ `getvar(getvar (a, :b; namespace = true), :c; namespace = true)`.
670
679
"""
671
680
macro namespace (expr)
672
681
esc (_config (expr, true ))
0 commit comments