I know we can define a class as generic using @generic tag, but I want to implement something like this:
# @generic T
class LinkedList
# @yieldparam element [generic<T>]
# @return [void]
def each
end
end
class Face < LinkedList # LinkedList<Edge>
# I don't want to rewrite every generic methods like this:
# @yieldparam element [Edge]
# @return [void]
def each
end
end
face = Face.new
face.each { |e| e }
# ^ should be Edge
I know we can define a class as generic using
@generictag, but I want to implement something like this: