Skip to content

Commit

Permalink
Showing 2 changed files with 11 additions and 3 deletions.
2 changes: 2 additions & 0 deletions src/compiler/crystal/semantic/base_type_visitor.cr
Original file line number Diff line number Diff line change
@@ -459,6 +459,8 @@ module Crystal

def lookup_type(base_type, names, node, lookup_in_container = true)
base_type.lookup_type names, lookup_in_container: lookup_in_container
rescue ex : Crystal::Exception
raise ex
rescue ex
node.raise ex.message
end
12 changes: 9 additions & 3 deletions src/compiler/crystal/semantic/type_lookup.cr
Original file line number Diff line number Diff line change
@@ -97,7 +97,7 @@ module Crystal
begin
@type = instance_type.instantiate_named_args(entries)
rescue ex : Crystal::Exception
node.raise ex.message if @raise
node.raise "instantiating #{node}", inner: ex if @raise
end

return false
@@ -161,7 +161,7 @@ module Crystal
begin
@type = instance_type.instantiate(type_vars)
rescue ex : Crystal::Exception
node.raise ex.message if @raise
node.raise "instantiating #{node}", inner: ex if @raise
end

false
@@ -228,7 +228,11 @@ module Crystal

meta_vars = MetaVars{"self" => MetaVar.new("self", @self_type)}
visitor = MainVisitor.new(program, meta_vars)
node.expressions.each &.accept visitor
begin
node.expressions.each &.accept visitor
rescue ex : Crystal::Exception
node.raise "typing typeof", inner: ex
end
@type = program.type_merge node.expressions
false
end
@@ -252,6 +256,8 @@ module Crystal
class Type
def lookup_type(node : Path, lookup_in_container = true)
(node.global ? program : self).lookup_type(node.names, lookup_in_container: lookup_in_container)
rescue ex : Crystal::Exception
raise ex
rescue ex
node.raise ex.message
end

0 comments on commit 88bd6d0

Please sign in to comment.