summary refs log tree commit diff stats
path: root/compiler
diff options
context:
space:
mode:
authorSimon Hafner <hafnersimon@gmail.com>2015-05-02 08:04:17 +0500
committerSimon Hafner <hafnersimon@gmail.com>2015-05-02 08:04:17 +0500
commit7dfa93d3c0dc17541b5b54654f2af3da8bed91f5 (patch)
tree0f96dbfaf9ac9a64b29ae1143495eea102f8661c /compiler
parenta1ee169d09b8d8c001e868d889c517fad4d1efaa (diff)
downloadNim-7dfa93d3c0dc17541b5b54654f2af3da8bed91f5.tar.gz
fixed first round of bugs
Diffstat (limited to 'compiler')
-rw-r--r--compiler/nimsuggest/nimsuggest.nim17
1 files changed, 8 insertions, 9 deletions
diff --git a/compiler/nimsuggest/nimsuggest.nim b/compiler/nimsuggest/nimsuggest.nim
index 00b3bcbfd..c14c89e16 100644
--- a/compiler/nimsuggest/nimsuggest.nim
+++ b/compiler/nimsuggest/nimsuggest.nim
@@ -133,7 +133,6 @@ proc returnEPC(socket: var Socket, uid: string, s: SexpNode, return_symbol = "re
   let response = $convertSexp([newSSymbol(return_symbol), [uid, s]])
   socket.send(toHex(len(response), 6))
   socket.send(response)
-  socket.close()
 
 proc nextFreePort(server: Socket, host: string, start = 30000): int =
   result = start
@@ -235,9 +234,9 @@ proc serve() =
       var messageBuffer = ""
       if client.recv(messageBuffer, size) != size:
         raise newException(ValueError, "didn't get all the bytes")
-      let message = parseSexp($messageBuffer)
-      let messageType = message[0].getSymbol
-      let body = message[1]
+      let
+        message = parseSexp($messageBuffer)
+        messageType = message[0].getSymbol
       try:
         case messageType:
         of "call":
@@ -246,9 +245,9 @@ proc serve() =
             results.add(s)
 
           let
-            uid = body[0].getStr
-            cmd = parseIdeCmd(body[1].getStr)
-            args = body[2]
+            uid = message[1].getStr
+            cmd = parseIdeCmd(message[2].getStr)
+            args = message[3]
           executeEPC(cmd, args)
           returnEPC(client, uid, sexp(results))
         of "return":
@@ -259,11 +258,11 @@ proc serve() =
           stderr.writeln("recieved epc error: " & $messageBuffer)
           raise newException(IOError, "epc error")
         of "methods":
-          returnEPC(client, body[0].getStr, listEPC())
+          returnEPC(client, message[1].getStr, listEPC())
         else:
           raise newException(EUnexpectedCommand, "unexpected call: " & messageType)
       except:
-        returnEPC(client, body[0].getStr, sexp(getCurrentExceptionMsg()), "return-error")
+        returnEPC(client, message[1].getStr, sexp(getCurrentException().getStackTrace()), "return-error")
 
 proc mainCommand =
   registerPass verbosePass