Sha256: 8b5793094d2f5a18695e6147db9df34a001c3049551dd799b38e4c7a51af6c1c

Contents?: true

Size: 770 Bytes

Versions: 19

Compression:

Stored size: 770 Bytes

Contents

require 'spec_helper'
module Finitio
  describe Syntax, "union_type" do

    subject{
      Syntax.parse(input, root: "union_type")
    }

    describe "compilation result" do
      let(:compiled){
        subject.compile(type_factory)
      }

      context '.Integer|.Float' do
        let(:input){ '.Integer|.Float' }

        it 'compiles to a UnionType' do
          expect(compiled).to be_a(UnionType)
          expect(compiled).to eq(UnionType.new([intType, floatType]))
        end
      end
    end

    describe "AST" do
      let(:input){ '.Integer|.Float' }

      let(:ast){ subject.to_ast }

      it{ expect(ast).to eq([
          :union_type,
          [:builtin_type, "Integer"],
          [:builtin_type, "Float"]
        ])
      }
    end

  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
finitio-0.12.0 spec/syntax/nodes/test_union_type.rb
finitio-0.11.4 spec/syntax/nodes/test_union_type.rb
finitio-0.11.3 spec/syntax/nodes/test_union_type.rb
finitio-0.11.2 spec/syntax/nodes/test_union_type.rb
finitio-0.11.1 spec/syntax/nodes/test_union_type.rb
finitio-0.10.0 spec/syntax/nodes/test_union_type.rb
finitio-0.9.1 spec/syntax/nodes/test_union_type.rb
finitio-0.9.0 spec/syntax/nodes/test_union_type.rb
finitio-0.8.0 spec/syntax/nodes/test_union_type.rb
finitio-0.7.0 spec/syntax/nodes/test_union_type.rb
finitio-0.7.0.pre.rc4 spec/syntax/nodes/test_union_type.rb
finitio-0.7.0.pre.rc3 spec/syntax/nodes/test_union_type.rb
finitio-0.7.0.pre.rc2 spec/syntax/nodes/test_union_type.rb
finitio-0.7.0.pre.rc1 spec/syntax/nodes/test_union_type.rb
finitio-0.6.1 spec/syntax/nodes/test_union_type.rb
finitio-0.6.0 spec/syntax/nodes/test_union_type.rb
finitio-0.5.2 spec/syntax/nodes/test_union_type.rb
finitio-0.5.1 spec/syntax/nodes/test_union_type.rb
finitio-0.5.0 spec/syntax/nodes/test_union_type.rb