集合中的功能调用中的不兼容实参 make_from_separate

non-compatible actual argument in feature call in collection make_from_separate

不明白我哪里错了...

class
    LINKED_LIST_SEP[G]

inherit
    LINKED_LIST [G]

create
    make,
    make_from_iterable,
    make_from_separate

feature {NONE} -- Initialization

    make_from_separate (other: separate like Current)
        do
            default_create
            across
                other is l_item
            loop
                check
                    attached {G} {SCOOP_UTIL}.any_from_separate (l_item) as l_v
                then
                    extend (l_v)
                end
            end
        end

end -- class

对于无约束形式泛型参数,隐式约束为detachable separate ANY。但是特征 any_from_separate 需要 separate ANY.

可能有以下解决方案:

  1. 在调用any_from_separate之前添加一个测试l_item不无效。
  2. 更改 any_from_separate 的签名以接受可分离类型。然而,在这种情况下,其结果也将变为可分离的。
  3. 对classLINKED_LIST_SEP的形式泛型参数添加约束separate ANY