Skip to content

Commit 5bcea8e

Browse files
committed
Validate type application for superclass
1 parent fbb4aa1 commit 5bcea8e

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

lib/rbs/definition_builder/ancestor_builder.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,7 @@ def one_instance_ancestors(type_name)
217217
NoSuperclassFoundError.check!(super_name, env: env, location: primary.decl.location)
218218
if super_class
219219
InheritModuleError.check!(super_class, env: env)
220+
InvalidTypeApplicationError.check2!(type_name: super_class.name, args: super_class.args, env: env, location: super_class.location)
220221
end
221222

222223
super_entry = env.normalized_class_entry(super_name) or raise

test/rbs/ancestor_builder_test.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -665,6 +665,12 @@ class B < Y[Integer, void]
665665
class C
666666
extend X
667667
end
668+
669+
class D
670+
end
671+
672+
class E < D[Integer]
673+
end
668674
EOF
669675
manager.build do |env|
670676
builder = DefinitionBuilder::AncestorBuilder.new(env: env)
@@ -680,6 +686,10 @@ class C
680686
assert_raises InvalidTypeApplicationError do
681687
builder.singleton_ancestors(type_name("::C"))
682688
end
689+
690+
assert_raises InvalidTypeApplicationError do
691+
builder.instance_ancestors(type_name("::E"))
692+
end
683693
end
684694
end
685695
end

0 commit comments

Comments
 (0)