This commit is contained in:
Araq
2013-08-30 22:47:14 +02:00
parent cf689f7472
commit 4d9b2f671a
4 changed files with 25 additions and 13 deletions

View File

@@ -74,7 +74,7 @@ proc getSysType(kind: TTypeKind): PType =
of tyUInt64: result = sysTypeFromName("uint64")
of tyFloat: result = sysTypeFromName("float")
of tyFloat32: result = sysTypeFromName("float32")
of tyFloat64: result = sysTypeFromName("float64")
of tyFloat64: return sysTypeFromName("float64")
of tyFloat128: result = sysTypeFromName("float128")
of tyBool: result = sysTypeFromName("bool")
of tyChar: result = sysTypeFromName("char")

View File

@@ -1205,7 +1205,7 @@ proc semStmtList(c: PContext, n: PNode): PNode =
if n.sons[i].typ == EnforceVoidContext or usesResult(n.sons[i]):
voidContext = true
n.typ = EnforceVoidContext
elif i != last or voidContext:
if i != last or voidContext:
discardCheck(n.sons[i])
else:
n.typ = n.sons[i].typ

View File

@@ -0,0 +1,12 @@
discard """
line: 10
errormsg: "value returned by statement has to be discarded"
"""
# bug #578
proc test: string =
result = "blah"
result[1 .. -1]
echo test()

View File

@@ -382,24 +382,24 @@ proc removeDuplicateFiles(c: var TConfigData) =
for cpuB in 1..c.cpus.len:
if osB != osA or cpuB != cpuA:
var orig = buildDir(osB, cpuB) / f
if ExistsFile(orig) and ExistsFile(dup) and
if existsFile(orig) and existsFile(dup) and
sameFileContent(orig, dup):
# file is identical, so delete duplicate:
RemoveFile(dup)
removeFile(dup)
c.cfiles[osA][cpuA][i] = orig
proc writeInstallScripts(c: var TConfigData) =
if c.installScript:
writeFile(installShFile, GenerateInstallScript(c), "\10")
writeFile(installShFile, generateInstallScript(c), "\10")
if c.uninstallScript:
writeFile(deinstallShFile, GenerateDeinstallScript(c), "\10")
writeFile(deinstallShFile, generateDeinstallScript(c), "\10")
proc srcdist(c: var TConfigData) =
if not existsDir(getOutputDir(c) / "src"):
createDir(getOutputDir(c) / "src")
for x in walkFiles(c.libpath / "lib/*.h"):
echo(getOutputDir(c) / "src" / extractFilename(x))
CopyFile(dest=getOutputDir(c) / "src" / extractFilename(x), source=x)
copyFile(dest=getOutputDir(c) / "src" / extractFilename(x), source=x)
for osA in 1..c.oses.len:
for cpuA in 1..c.cpus.len:
var dir = getOutputDir(c) / buildDir(osA, cpuA)
@@ -417,18 +417,18 @@ proc srcdist(c: var TConfigData) =
for i in 0 .. c.cfiles[osA][cpuA].len-1:
let dest = dir / extractFilename(c.cfiles[osA][cpuA][i])
let relDest = buildDir(osA, cpuA) / extractFilename(c.cfiles[osA][cpuA][i])
CopyFile(dest=dest, source=c.cfiles[osA][cpuA][i])
copyFile(dest=dest, source=c.cfiles[osA][cpuA][i])
c.cfiles[osA][cpuA][i] = relDest
# second pass: remove duplicate files
removeDuplicateFiles(c)
writeFile(getOutputDir(c) / buildShFile, GenerateBuildShellScript(c), "\10")
writeFile(getOutputDir(c) / buildBatFile32, GenerateBuildBatchScript(c, tWin32), "\13\10")
writeFile(getOutputDir(c) / buildBatFile64, GenerateBuildBatchScript(c, tWin64), "\13\10")
writeFile(getOutputDir(c) / buildShFile, generateBuildShellScript(c), "\10")
writeFile(getOutputDir(c) / buildBatFile32, generateBuildBatchScript(c, tWin32), "\13\10")
writeFile(getOutputDir(c) / buildBatFile64, generateBuildBatchScript(c, tWin64), "\13\10")
writeInstallScripts(c)
# --------------------- generate inno setup -----------------------------------
proc setupDist(c: var TConfigData) =
var scrpt = GenerateInnoSetup(c)
var scrpt = generateInnoSetup(c)
var n = "build" / "install_$#_$#.iss" % [toLower(c.name), c.version]
writeFile(n, scrpt, "\13\10")
when defined(windows):
@@ -437,7 +437,7 @@ proc setupDist(c: var TConfigData) =
var outcmd = if c.outdir.len == 0: "build" else: c.outdir
var cmd = "$# $# /O$# $#" % [quoteIfContainsWhite(c.innoSetup.path),
c.innoSetup.flags, outcmd, n]
Echo(cmd)
echo(cmd)
if execShellCmd(cmd) == 0:
removeFile(n)
else: