[Chisel/scala] overloaded method apply with alternatives
- M.R 
- May 1, 2024
- 1 min read
Introduction
When writing code in chisel, I occasionally encounter the compilation error mentioned above.
I wasn't really sure what this meant, so I researched about it.
Detail
Let's take the following error as an example and look at it line by line:
overloaded method apply with alternatives:
[error]   [T <: chisel3.Data](elt0: T, elts: T*): chisel3.Vec[T] <and>
[error]   [T <: chisel3.Data](elts: Seq[T]): chisel3.Vec[T]
[error]  cannot be applied to (Seq[MyClass])overloaded method apply with alternatives:
This is easier to understand if you read it as 'apply', with the quotation marks added. There are multiple overloads of the 'apply' method. They are listed below.
[T <: chisel3.Data](elt0: T, elts: T*): chisel3.Vec[T]
This says that the class chisel3.Vec[T] (where T must inherit from chisel3.Data) has an apply method that takes multiple arguments of type T.
[T <: chisel3.Data](elts: Seq[T]): chisel3.Vec[T]
Similarly, there is also an apply() that takes an argument of type Seq[T].
[error] cannot be applied to (Seq[MyClass])
And this error saying that none of the above can be applied to Seq[MyClass].
This error is usually caused by a mistake in the type specification, so if you review that, you can often get rid of the error.






Comments