Otherwise, running e.g.
nix-instantiate --eval -E --strict 'builtins.replaceStrings [""] ["X"] "abc"'
would just hang in an infinite loop.
Found by afl-fuzz.
First attempt of this was reverted in e2d71bd186 because it caused
another infinite loop, which is fixed now and a test added.
		
	
			
		
			
				
	
	
		
			11 lines
		
	
	
	
		
			344 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			11 lines
		
	
	
	
		
			344 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
| with builtins;
 | |
| 
 | |
| [ (replaceStrings ["o"] ["a"] "foobar")
 | |
|   (replaceStrings ["o"] [""] "foobar")
 | |
|   (replaceStrings ["oo"] ["u"] "foobar")
 | |
|   (replaceStrings ["oo" "a"] ["a" "oo"] "foobar")
 | |
|   (replaceStrings ["oo" "oo"] ["u" "i"] "foobar")
 | |
|   (replaceStrings [""] ["X"] "abc")
 | |
|   (replaceStrings [""] ["X"] "")
 | |
|   (replaceStrings ["-"] ["_"] "a-b")
 | |
| ]
 |