read-print: Correctly read "(. x)".
* guix/read-print.scm (read-with-comments): Check whether REST is a pair
before calling 'set-cdr!'.
* tests/read-print.scm ("read-with-comments: half dot notation"): New test.
			
			
This commit is contained in:
		
							parent
							
								
									94d0efffb3
								
							
						
					
					
						commit
						8749f31485
					
				
					 2 changed files with 10 additions and 3 deletions
				
			
		|  | @ -179,9 +179,11 @@ BLANK-LINE? is true, assume PORT is at the beginning of a new line." | ||||||
|       (match lst |       (match lst | ||||||
|         (() result) |         (() result) | ||||||
|         (((? dot?) . rest) |         (((? dot?) . rest) | ||||||
|  |          (if (pair? rest) | ||||||
|              (let ((dotted (reverse rest))) |              (let ((dotted (reverse rest))) | ||||||
|                (set-cdr! (last-pair dotted) (car result)) |                (set-cdr! (last-pair dotted) (car result)) | ||||||
|            dotted)) |                dotted) | ||||||
|  |              (car result))) | ||||||
|         ((x . rest) (loop (cons x result) rest))))) |         ((x . rest) (loop (cons x result) rest))))) | ||||||
| 
 | 
 | ||||||
|   (let loop ((blank-line? blank-line?) |   (let loop ((blank-line? blank-line?) | ||||||
|  |  | ||||||
|  | @ -58,6 +58,11 @@ expressions." | ||||||
|   (call-with-input-string "(a . b)" |   (call-with-input-string "(a . b)" | ||||||
|     read-with-comments)) |     read-with-comments)) | ||||||
| 
 | 
 | ||||||
|  | (test-equal "read-with-comments: half dot notation" | ||||||
|  |   '(lambda x x) | ||||||
|  |   (call-with-input-string "(lambda (. x) x)" | ||||||
|  |     read-with-comments)) | ||||||
|  | 
 | ||||||
| (test-equal "read-with-comments: list with blank line" | (test-equal "read-with-comments: list with blank line" | ||||||
|   `(list with ,(vertical-space 1) blank line) |   `(list with ,(vertical-space 1) blank line) | ||||||
|   (call-with-input-string "\ |   (call-with-input-string "\ | ||||||
|  |  | ||||||
		Reference in a new issue