Hello,
I've overridden a function by restricting inheritance and defining the function again. I get the new value in "linearize", but "compute_concrete" displays the old value.
Is it the expected behavior? Can I ask "cc" to use the new value? Do I override the function correctly?
An example to reproduce, with the function "beer_N", old value "beer" and new value "piwo":
>>
$ gf
This is GF version 3.11.0.
Built on darwin/x86_64 with ghc-8.6, flags: interrupt server c-runtime
...
Languages:
> > i -retain TestEng.gf
58 msec
> cc beer_N
{s = table
ParamX.Number
<<
I expect to see the word "piwo", not "beer"
>>
[table ResEng.Case ["beer"; "beer's"];
table ResEng.Case ["beers"; "beers'"]];
g = ResEng.Neutr; lock_N = <>}
1 msec
> line (UseN beer_N)
linking ... OK
Languages: TestEng
<<
The word "piwo" as expected
>>
piwo
1052 msec
>
See you.
0 msec
$ cat Test.gf
abstract Test =
Lang
**
{
};
$ cat TestEng.gf
concrete TestEng of Test =
GrammarEng,
LexiconEng-[beer_N]
** open
(P=ParadigmsEng)
in
{
lin
beer_N = P.regN "piwo" ;
}
$
<<
Regards,
Oleg