Skip to content

Commit

Permalink
Showing 2 changed files with 27 additions and 7 deletions.
16 changes: 15 additions & 1 deletion spec/compiler/data/compiler_sample
Original file line number Diff line number Diff line change
@@ -1 +1,15 @@
print "Hello!"
class Foo
def self.foo
print "He"
end
end


class FOO
def self.foo
print "llo!"
end
end

Foo.foo
FOO.foo
18 changes: 12 additions & 6 deletions src/compiler/crystal/compiler.cr
Original file line number Diff line number Diff line change
@@ -386,12 +386,18 @@ module Crystal
def initialize(@compiler : Compiler, @name : String, @llvm_mod : LLVM::Module,
@output_dir : String, @bc_flags_changed : Bool)
@name = "_main" if @name == ""
@name = @name.gsub do |char|
case char
when 'a'..'z', 'A'..'Z', '0'..'9', '_'
char
else
char.ord
@name = String.build do |str|
@name.each_char do |char|
case char
when 'a'..'z', '0'..'9', '_'
str << char
when 'A'..'Z'
# Because OSX has case insensitive filenames, try to avoid
# clash of 'a' and 'A' by using 'A-' for 'A'.
str << char << '-'
else
str << char.ord
end
end
end

0 comments on commit 4d69af6

Please sign in to comment.