Skip to content

Commit

Permalink
Showing 2 changed files with 14 additions and 0 deletions.
13 changes: 13 additions & 0 deletions spec/compiler/semantic/generic_class_spec.cr
Original file line number Diff line number Diff line change
@@ -981,4 +981,17 @@ describe "Semantic: generic class" do
Bar(Int32).new
)) { generic_class "Bar", int32 }
end

it "errors if invoking new on private new in generic type (#3485)" do
assert_error %(
class Foo(T)
private def self.new
super
end
end
Foo(String).new
),
"private method 'new' called"
end
end
1 change: 1 addition & 0 deletions src/compiler/crystal/syntax/ast.cr
Original file line number Diff line number Diff line change
@@ -935,6 +935,7 @@ module Crystal
a_def.uses_block_arg = uses_block_arg?
a_def.assigns_special_var = assigns_special_var?
a_def.name_column_number = name_column_number
a_def.visibility = visibility
a_def
end

0 comments on commit 4126429

Please sign in to comment.