Skip to content

Commit f980578

Browse files
author
Ary Borenszweig
committedDec 7, 2016
Compiler: error on enum without members. Fixes #3447
1 parent ed790ae commit f980578

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed
 

‎spec/compiler/semantic/enum_spec.cr

+8
Original file line numberDiff line numberDiff line change
@@ -298,4 +298,12 @@ describe "Semantic: enum" do
298298
),
299299
"can't inherit Enum. Use the enum keyword to define enums"
300300
end
301+
302+
it "errors on enum without members (#3447)" do
303+
assert_error %(
304+
enum Foo
305+
end
306+
),
307+
"enum Foo must have at least one member"
308+
end
301309
end

‎src/compiler/crystal/semantic/top_level_visitor.cr

+4
Original file line numberDiff line numberDiff line change
@@ -485,6 +485,10 @@ class Crystal::TopLevelVisitor < Crystal::SemanticVisitor
485485
is_flags: is_flags)
486486
end
487487

488+
if enum_type.types.empty?
489+
node.raise "enum #{node.name} must have at least one member"
490+
end
491+
488492
unless existed
489493
if is_flags
490494
unless enum_type.types["None"]?

0 commit comments

Comments
 (0)
Please sign in to comment.