diff --git a/compiler/ccgexprs.nim b/compiler/ccgexprs.nim index 6d69dafa55..388b6d047f 100644 --- a/compiler/ccgexprs.nim +++ b/compiler/ccgexprs.nim @@ -1155,7 +1155,7 @@ proc genObjConstr(p: BProc, e: PNode, d: var TLoc) = let field = lookupFieldAgain(p, ty, it.sons[0].sym, tmp2.r) if field.loc.r == nil: internalError(e.info, "genObjConstr") if it.len == 3 and optFieldCheck in p.options: - genFieldCheck(p, it.sons[2], tmp2.r, field, ty) + genFieldCheck(p, it.sons[2], r, field, ty) add(tmp2.r, ".") add(tmp2.r, field.loc.r) tmp2.k = locTemp diff --git a/lib/pure/httpclient.nim b/lib/pure/httpclient.nim index a5d4ec1a10..8e182e2745 100644 --- a/lib/pure/httpclient.nim +++ b/lib/pure/httpclient.nim @@ -166,12 +166,12 @@ proc parseChunks(s: Socket, timeout: int): string = proc parseBody(s: Socket, headers: StringTableRef, timeout: int): string = result = "" - if headers["Transfer-Encoding"] == "chunked": + if headers.getOrDefault"Transfer-Encoding" == "chunked": result = parseChunks(s, timeout) else: # -REGION- Content-Length # (http://tools.ietf.org/html/rfc2616#section-4.4) NR.3 - var contentLengthHeader = headers["Content-Length"] + var contentLengthHeader = headers.getOrDefault"Content-Length" if contentLengthHeader != "": var length = contentLengthHeader.parseint() if length > 0: @@ -190,7 +190,7 @@ proc parseBody(s: Socket, headers: StringTableRef, timeout: int): string = # -REGION- Connection: Close # (http://tools.ietf.org/html/rfc2616#section-4.4) NR.5 - if headers["Connection"] == "close": + if headers.getOrDefault"Connection" == "close": var buf = "" while true: buf = newString(4000) @@ -456,7 +456,7 @@ proc redirection(status: string): bool = return true proc getNewLocation(lastUrl: string, headers: StringTableRef): string = - result = headers["Location"] + result = headers.getOrDefault"Location" if result == "": httpError("location header expected") # Relative URLs. (Not part of the spec, but soon will be.) let r = parseUri(result) @@ -679,12 +679,12 @@ proc parseChunks(client: AsyncHttpClient): Future[string] {.async.} = proc parseBody(client: AsyncHttpClient, headers: StringTableRef): Future[string] {.async.} = result = "" - if headers["Transfer-Encoding"] == "chunked": + if headers.getOrDefault"Transfer-Encoding" == "chunked": result = await parseChunks(client) else: # -REGION- Content-Length # (http://tools.ietf.org/html/rfc2616#section-4.4) NR.3 - var contentLengthHeader = headers["Content-Length"] + var contentLengthHeader = headers.getOrDefault"Content-Length" if contentLengthHeader != "": var length = contentLengthHeader.parseint() if length > 0: @@ -699,7 +699,7 @@ proc parseBody(client: AsyncHttpClient, # -REGION- Connection: Close # (http://tools.ietf.org/html/rfc2616#section-4.4) NR.5 - if headers["Connection"] == "close": + if headers.getOrDefault"Connection" == "close": var buf = "" while true: buf = await client.socket.recvFull(4000) diff --git a/tests/objects/tobjconstr2.nim b/tests/objects/tobjconstr2.nim index 39683ddc5c..f6805190bb 100644 --- a/tests/objects/tobjconstr2.nim +++ b/tests/objects/tobjconstr2.nim @@ -24,7 +24,7 @@ var b = Bar(x: 100, y: 200) # used to fail # bug 1275 type - Graphic = object of TObject + Graphic = object of RootObj case kind: range[0..1] of 0: radius: float