@@ -2609,6 +2609,39 @@ defmodule SpitfireTest do
26092609 [ { [ line: 6 , column: 5 ] , "missing closing bracket for list" } ]
26102610 }
26112611 end
2612+
2613+ test "unclosed interpolation" do
2614+ code = """
2615+ defmodule MyModule do
2616+ import List
2617+ var = '\# {
2618+ end
2619+ """
2620+
2621+ assert { :error , _ast , _ } = result = Spitfire . parse ( code )
2622+
2623+ assert result == {
2624+ :error ,
2625+ { :defmodule , [ do: [ line: 1 , column: 20 ] , end: [ line: 1 , column: 20 ] , line: 1 , column: 1 ] ,
2626+ [
2627+ { :__aliases__ , [ last: [ line: 1 , column: 11 ] , line: 1 , column: 11 ] , [ :MyModule ] } ,
2628+ [
2629+ do:
2630+ { :__block__ , [ ] ,
2631+ [
2632+ { :import , [ end_of_expression: [ newlines: 1 , line: 2 , column: 14 ] , line: 2 , column: 3 ] ,
2633+ [ { :__aliases__ , [ last: [ line: 2 , column: 10 ] , line: 2 , column: 10 ] , [ :List ] } ] } ,
2634+ { := , [ line: 3 , column: 7 ] ,
2635+ [ { :var , [ line: 3 , column: 3 ] , nil } , { :__block__ , [ error: true , line: 3 , column: 7 ] , [ ] } ] }
2636+ ] }
2637+ ]
2638+ ] } ,
2639+ [
2640+ { [ line: 3 , column: 7 ] , "malformed right-hand side of = operator" } ,
2641+ { [ line: 1 , column: 20 ] , "missing `end` for do block" }
2642+ ]
2643+ }
2644+ end
26122645 end
26132646
26142647 describe "&parse_with_comments/2" do
0 commit comments