2017-10-23 6 views
0

は、私は、次のしているテストケース:エッフェルの継承とカーソルの使用[コンパイルすることはできません]

test_different_cursor: BOOLEAN 
     local 
      cursor: SET_ITERATION_CURSOR[INTEGER, INTEGER] 
      sets: ARRAY[SET[INTEGER, INTEGER]] 
     do 
      create sets.make_empty 

      check attached {SET_ITERATION_CURSOR[INTEGER, INTEGER]} d.different_cursor as current_cursor then 
       cursor := current_cursor 
      end 
      from 
      until 
       cursor.after 
      loop 
       sets.force (cursor.item, sets.count + 1) 
       cursor.forth 
      end 

     end 

ここで、〜端からのループでは、私は、Arrayクラスの力機能を呼び出そうが、コンパイラは言い続けますその行のエラーを次

Error code: VUAR(2) 

Type error: non-compatible actual argument in feature call. 
What to do: make sure that type of actual argument is compatible with 
    the type of corresponding formal argument. 

Class: MY_TESTS 
Feature: test_different_cursor 
Called feature: force (v: [like item] G; i: INTEGER_32) from ARRAY 
Argument name: v 
Argument position: 1 
Formal argument type: SET [INTEGER_32, INTEGER_32] 
Actual argument type: TUPLE [INTEGER_32, INTEGER_32] 
Line: 193 
     loop 
->  sets.force (cursor.item, sets.count + 1) 
      cursor.forth 

をこの場合、私がARRAYクラスを継承SETクラスを作成し、そこに力機能を再定義する必要があるように思えます。しかし、私はそれがコンパイルエラーを修正する正しい方法であるとは本当に確信していません。私のSETクラスの外観は次のとおりです。

class 
    SET[A, B] 

create 
    make 

feature 
    valueA: A 
    valueB: B 

feature 
    make (first: A; second: B) 
     do 
      valueA := first 
      valueB := second 
     end 
end 

これを解決するにはどうすればよいですか?

+0

にライン

sets.force (cursor.item, sets.count + 1) 

をフィーチャーtest_different_cursorにローカル変数

t: TUPLE [first: INTEGER; second: INTEGER] 

を追加し、変更することで行うことができますVUAR(2) '、例えば実際の引数の型。現在のコードから、 'cursor.item'が何を返すのかを推測することは難しいです。あるいは、 'SET_ITERATION_CURSOR'クラスの短い形式を提供することもできます。 –

+0

@AlexanderKogtenkovエラーコード:VUAR(2)型エラー:フィーチャコールで互換性のない実際の引数。対処:実際の引数の型が対応する仮引数の型と互換性があることを確認します。クラス:MY_TESTS機能:test_different_cursor – Miku

+0

タイプはどうですか? –

答えて

0

cursor.itemが返す値は、SET [INTEGER, INTEGER]に変換する必要があります。これは、あなたが `で報告され、より詳細な情報を提供する場合、それが役立つだろう

​​
関連する問題