ОК, вопрос может быть (очень) для начинающих, но я все еще учусь.
У меня есть два разных "объекта ref"
Из значения "Из""module:
type
Value* = ref object
case kind*: ValueKind:
of stringValue:
s*: string
of integerValue:
i*: int
of realValue:
r*: float
of booleanValue:
b*: bool
of arrayValue:
a*: seq[Value]
of dictionaryValue:
d*: Table[string,Value]
of functionValue:
f*: Function
of objectValue:
o*: Object
proc valueFromString*(v: string): Value =
new(result)
result.kind = stringValue
result.s = v
Из модуля" аргумент ":
type
Argument* = ref object
case kind*: ArgumentKind:
of identifierArgument:
i*: int
of literalArgument:
v*: Value
proc argumentFromStringLiteral(l: cstring):Argument {.exportc.} =
let ret = Argument(kind: literalArgument, v: valueFromString($l))
return ret
Дело в том, что компилятор жалуется на предпоследней строке (при попытке создатьновый аргумент):
type mismatch: got <Value> but expected 'Value = ref Value:ObjectType
Что я делаю не так? valueFromString
возвращает «указатель» на объект Value, не так ли?