summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2023-08-04 22:52:31 +0200
committerGitHub <noreply@github.com>2023-08-04 22:52:31 +0200
commit873eaa3f65f9ef96f3dc4430e8938d273f04f8e9 (patch)
tree970fc3adcd21f510dd24147732e86227dcf99293
parentdb435a4a797adbbd4dd42edf89267902c0b2e34f (diff)
downloadNim-873eaa3f65f9ef96f3dc4430e8938d273f04f8e9.tar.gz
compiler/llstream: modern code for llstream (#22385)
-rw-r--r--compiler/llstream.nim23
1 files changed, 6 insertions, 17 deletions
diff --git a/compiler/llstream.nim b/compiler/llstream.nim
index 004d990fa..bad28eb12 100644
--- a/compiler/llstream.nim
+++ b/compiler/llstream.nim
@@ -40,33 +40,22 @@ type
 
   PLLStream* = ref TLLStream
 
-proc llStreamOpen*(data: string): PLLStream =
-  new(result)
-  result.s = data
-  result.kind = llsString
+proc llStreamOpen*(data: sink string): PLLStream =
+  PLLStream(kind: llsString, s: data)
 
 proc llStreamOpen*(f: File): PLLStream =
-  new(result)
-  result.f = f
-  result.kind = llsFile
+  PLLStream(kind: llsFile, f: f)
 
 proc llStreamOpen*(filename: AbsoluteFile, mode: FileMode): PLLStream =
-  new(result)
-  result.kind = llsFile
+  result = PLLStream(kind: llsFile)
   if not open(result.f, filename.string, mode): result = nil
 
 proc llStreamOpen*(): PLLStream =
-  new(result)
-  result.kind = llsNone
+  PLLStream(kind: llsNone)
 
 proc llReadFromStdin(s: PLLStream, buf: pointer, bufLen: int): int
 proc llStreamOpenStdIn*(r: TLLRepl = llReadFromStdin, onPrompt: OnPrompt = nil): PLLStream =
-  new(result)
-  result.kind = llsStdIn
-  result.s = ""
-  result.lineOffset = -1
-  result.repl = r
-  result.onPrompt = onPrompt
+  PLLStream(kind: llsStdIn, s: "", lineOffset: -1, repl: r, onPrompt: onPrompt)
 
 proc llStreamClose*(s: PLLStream) =
   case s.kind