Merge branch 'devel' into pr-remove-encode-overload

This commit is contained in:
AmjadHD
2022-10-01 23:41:58 +01:00
31 changed files with 79 additions and 8 deletions

View File

@@ -14,6 +14,7 @@
- `std/assertions`
- `std/formatfloat`
- `std/objectdollar`
- `std/widestrs`
In the future, these definitions will be removed from the `system` module,
and their respective modules will have to be imported to use them.

View File

@@ -853,6 +853,9 @@ proc semForVars(c: PContext, n: PNode; flags: TExprFlags): PNode =
var iterAfterVarLent = iter.skipTypes({tyGenericInst, tyAlias, tyLent, tyVar})
# n.len == 3 means that there is one for loop variable
# and thus no tuple unpacking:
if iterAfterVarLent.kind == tyEmpty:
localError(c.config, n[^2].info, "cannot infer element type of $1" %
renderTree(n[^2], {renderNoComments}))
if iterAfterVarLent.kind != tyTuple or n.len == 3:
if n.len == 3:
if n[0].kind == nkVarTuple:

View File

@@ -26,6 +26,8 @@ import asyncdispatch, os
when defined(nimPreviewSlimSystem):
import std/[assertions, syncio]
when defined(windows):
import std/widestrs
# TODO: Fix duplication introduced by PR #4683.

View File

@@ -21,6 +21,8 @@ when defined(nimPreviewSlimSystem):
when defined(windows):
import winlean
when useWinUnicode and defined(nimPreviewSlimSystem):
import std/widestrs
from os import absolutePath
else:
import os

View File

@@ -43,6 +43,8 @@ when not defined(nimscript):
else:
when defined(windows):
when defined(nimPreviewSlimSystem):
import std/widestrs
proc c_putenv(envstring: cstring): cint {.importc: "_putenv", header: "<stdlib.h>".}
from std/private/win_setenv import setEnvImpl
proc c_wgetenv(varname: WideCString): WideCString {.importc: "_wgetenv",

View File

@@ -11,6 +11,8 @@ when not defined(nimscript):
when defined(windows):
import winlean
when useWinUnicode and defined(nimPreviewSlimSystem):
import std/widestrs
proc `==`*(err1, err2: OSErrorCode): bool {.borrow.}
proc `$`*(err: OSErrorCode): string {.borrow.}

View File

@@ -17,6 +17,8 @@
when defined(windows):
import winlean
when useWinUnicode and defined(nimPreviewSlimSystem):
import std/widestrs
elif defined(posix):
import posix
else:

View File

@@ -968,6 +968,9 @@ proc getCacheDir*(app: string): string =
when defined(windows):
type DWORD = uint32
when defined(nimPreviewSlimSystem):
import std/widestrs
proc getTempPath(
nBufferLength: DWORD, lpBuffer: WideCString
): DWORD {.stdcall, dynlib: "kernel32.dll", importc: "GetTempPathW".} =

View File

@@ -33,6 +33,8 @@ when defined(linux) and defined(useClone):
when defined(nimPreviewSlimSystem):
import std/[syncio, assertions]
when defined(windows):
import std/widestrs
type

View File

@@ -61,6 +61,8 @@ when not defined(nimscript):
proc c_putenv(envstring: cstring): cint {.importc: "_putenv", header: "<stdlib.h>".}
from std/private/win_setenv import setEnvImpl
import winlean
when defined(nimPreviewSlimSystem):
import std/widestrs
proc c_wgetenv(varname: WideCString): WideCString {.importc: "_wgetenv",
header: "<stdlib.h>".}
proc getEnvImpl(env: cstring): WideCString = c_wgetenv(env.newWideCString)

View File

@@ -16,6 +16,8 @@ type
when not defined(nimscript):
when defined(windows):
import winlean
when defined(nimPreviewSlimSystem):
import std/widestrs
else:
var errno {.importc, header: "<errno.h>".}: cint

View File

@@ -23,6 +23,9 @@ check errno_t vs cint
when not defined(windows): discard
else:
when defined(nimPreviewSlimSystem):
import std/widestrs
type wchar_t {.importc: "wchar_t".} = int16
proc setEnvironmentVariableW*(lpName, lpValue: WideCString): int32 {.

View File

@@ -12,6 +12,8 @@
include system/inclrtl
import std/private/since
import std/formatfloat
when defined(windows):
import std/widestrs
# ----------------- IO Part ------------------------------------------------
type

View File

@@ -30,6 +30,8 @@ const
when defined(windows):
import winlean
when defined(nimPreviewSlimSystem):
import std/widestrs
var O_RDWR {.importc: "_O_RDWR", header: "<fcntl.h>".}: cint

View File

@@ -7,8 +7,7 @@
# distribution, for details about the copyright.
#
# Nim support for C/C++'s `wide strings`:idx:. This is part of the system
# module! Do not import it directly!
# Nim support for C/C++'s `wide strings`:idx:.
#when not declared(ThisIsSystem):
# {.error: "You must not import this module explicitly".}

View File

@@ -2655,8 +2655,9 @@ when defined(genode):
# and return to thread entrypoint.
import system/widestrs
export widestrs
when not defined(nimPreviewSlimSystem):
import std/widestrs
export widestrs
when notJSnotNims:
when defined(windows) and compileOption("threads"):

View File

@@ -8,7 +8,6 @@ is in separate files:
* `exceptions <exceptions.html>`_
* `assertions <assertions.html>`_
* `dollars <dollars.html>`_
* `widestrs <widestrs.html>`_
* `ctypes <ctypes.html>`_

View File

@@ -11,6 +11,9 @@
import winlean, os
when defined(nimPreviewSlimSystem):
import std/widestrs
type
HKEY* = uint

View File

@@ -19,6 +19,7 @@ when defined(nimHasStyleChecks):
when defined(nimPreviewSlimSystem):
from std/syncio import FileHandle
import std/widestrs
const
useWinUnicode* = not defined(useWinAnsi)

View File

@@ -7,6 +7,9 @@
# distribution, for details about the copyright.
#
when defined(nimPreviewSlimSystem):
import std/widestrs
when not defined(ODBCVER):
const
ODBCVER = 0x0351 ## define ODBC version 3.51 by default

View File

@@ -2,6 +2,8 @@ discard """
matrix: "--gc:refc; --gc:arc"
"""
import std/widestrs
# bug #19862
type NewString = object

View File

@@ -24,6 +24,7 @@ q(a)
# bug #914
when defined(windows):
import std/widestrs
var x = newWideCString("Hello")
echo "success"

View File

@@ -7,6 +7,15 @@ discard """
when defined(linux):
import linenoise
when defined(nimPreviewSlimSystem):
import std/[
assertions,
formatfloat,
objectdollar,
syncio,
widestrs,
]
import
algorithm,
asyncdispatch,

12
tests/errmsgs/t19224.nim Normal file
View File

@@ -0,0 +1,12 @@
discard """
cmd: "nim check --hints:off $file"
errormsg: ""
nimout: '''
t19224.nim(10, 10) Error: cannot infer element type of items([])
t19224.nim(12, 10) Error: cannot infer element type of items(@[])
'''
"""
for _ in []: discard
for _ in @[]: discard

View File

@@ -4,6 +4,11 @@ discard """
{.warning[UnusedImport]: off.}
when defined(nimPreviewSlimSystem):
import std/[
syncio, assertions, formatfloat, objectdollar, widestrs
]
import std/[
# Core:
bitops, typetraits, lenientops, macros, volatile, typeinfo,

View File

@@ -3,5 +3,7 @@ discard """
output: "Test"
"""
import std/widestrs
let ws = newWideCString("Test")
echo ws
echo ws

View File

@@ -49,6 +49,7 @@ template main =
main()
when defined(windows):
import std/widestrs
proc c_wgetenv(env: WideCString): WideCString {.importc: "_wgetenv", header: "<stdlib.h>".}
proc c_getenv(env: cstring): cstring {.importc: "getenv", header: "<stdlib.h>".}

View File

@@ -50,6 +50,7 @@ static: main()
main()
when defined(windows):
import std/widestrs
proc c_wgetenv(env: WideCString): WideCString {.importc: "_wgetenv", header: "<stdlib.h>".}
proc c_getenv(env: cstring): cstring {.importc: "getenv", header: "<stdlib.h>".}

View File

@@ -10,6 +10,7 @@ import std/[syncio, assertions]
when not defined(windows):
echo "OK"
else:
import std/widestrs
{.push gcsafe.}
const CP_UTF8 = 65001'i32

View File

@@ -6,7 +6,9 @@
from stdtest/specialpaths import buildDir
when defined(nimPreviewSlimSystem):
import std/syncio
import std/[
syncio, assertions, formatfloat, objectdollar, widestrs
]
import std/[
# Core:

View File

@@ -197,7 +197,6 @@ lib/system/assertions.nim
lib/system/iterators.nim
lib/system/exceptions.nim
lib/system/dollars.nim
lib/system/widestrs.nim
lib/system/ctypes.nim
""".splitWhitespace()