;; -*-theme-d-*-

;; Copyright (C) 2016 Tommi Höynälänmaa
;; Distributed under GNU General Public License version 3,
;; see file doc/GPL-3.

;; Expected results: translation error
;;   The purpose of this test is to test the error message.


(define-proper-program (tests test454)


  (import (standard-library core)
	  (standard-library promise)
	  (standard-library stream)
	  (standard-library console-io)
	  (standard-library text-file-io))


  (define-param-proc nonpure-stream-next-err (%type)
		     (((stream (:nonpure-stream %type)))
		      (:nonpure-stream %type)
		      nonpure)
    (match-type stream
      ((<null>) (raise 'nonpure-stream-next-err:empty-stream))
      ((stream2 (:nonempty-nonpure-stream %type))
       (force (cdr stream2)))))

  (define-simple-proc main (() <none> nonpure)
    (let* ((ip (open-input-file "../theme-d-code/tests/aux-test270-data.txt"))
	   (stm (make-input-expr-stream ip)))
      (do ((stm-cur (:nonpure-stream <object>) stm
		    (nonpure-stream-next-err stm-cur))
	   (i <integer> 0 (+ i 1)))
	  ((nonpure-stream-empty? stm-cur))
	(console-display i)
	(console-display " ")
	(console-display-line (nonpure-stream-value stm-cur))))))

