Comments (4)
!nim c
type Foo = object
s: string
block:
let i = 2
let foo = Foo(s: "LLR")
let s = ("XYZ", "GHJ")
var node = s[int(foo.s[i] == 'R')]
from nim.
🐧 Linux bisect by @AmjadHD (contributor)
devel 👎 FAIL
Output
Error: Command failed: nim c --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim(7, 20) Error: cannot evaluate at compile time: foo
assertions.nim(34) raiseAssert
Error: unhandled exception: errGenerated [AssertionDefect]
IR
Compiled filesize0 bytes (0 bytes)
Stats
- Started
2024-05-18T00:39:45
- Finished
2024-05-18T00:39:45
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("Foo"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("s"),
newIdentNode("string"),
newEmptyNode()
)
)
)
)
),
nnkBlockStmt.newTree(
newEmptyNode(),
nnkStmtList.newTree(
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("i"),
newEmptyNode(),
newLit(2)
)
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("foo"),
newEmptyNode(),
nnkObjConstr.newTree(
newIdentNode("Foo"),
nnkExprColonExpr.newTree(
newIdentNode("s"),
newLit("LLR")
)
)
)
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("s"),
newEmptyNode(),
nnkTupleConstr.newTree(
newLit("XYZ"),
newLit("GHJ")
)
)
),
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("node"),
newEmptyNode(),
nnkBracketExpr.newTree(
newIdentNode("s"),
nnkCall.newTree(
newIdentNode("int"),
nnkInfix.newTree(
newIdentNode("=="),
nnkBracketExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("foo"),
newIdentNode("s")
),
newIdentNode("i")
),
newLit('R')
)
)
)
)
)
)
)
)
stable 👎 FAIL
Output
Error: Command failed: nim c --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim(7, 20) Error: cannot evaluate at compile time: foo
assertions.nim(34) raiseAssert
Error: unhandled exception: options.nim(681, 5) `false` errGenerated [AssertionDefect]
IR
Compiled filesize0 bytes (0 bytes)
Stats
- Started
2024-05-18T00:39:46
- Finished
2024-05-18T00:39:47
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("Foo"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("s"),
newIdentNode("string"),
newEmptyNode()
)
)
)
)
),
nnkBlockStmt.newTree(
newEmptyNode(),
nnkStmtList.newTree(
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("i"),
newEmptyNode(),
newLit(2)
)
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("foo"),
newEmptyNode(),
nnkObjConstr.newTree(
newIdentNode("Foo"),
nnkExprColonExpr.newTree(
newIdentNode("s"),
newLit("LLR")
)
)
)
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("s"),
newEmptyNode(),
nnkTupleConstr.newTree(
newLit("XYZ"),
newLit("GHJ")
)
)
),
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("node"),
newEmptyNode(),
nnkBracketExpr.newTree(
newIdentNode("s"),
nnkCall.newTree(
newIdentNode("int"),
nnkInfix.newTree(
newIdentNode("=="),
nnkBracketExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("foo"),
newIdentNode("s")
),
newIdentNode("i")
),
newLit('R')
)
)
)
)
)
)
)
)
2.0.4 👎 FAIL
Output
Error: Command failed: nim c --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim(7, 20) Error: cannot evaluate at compile time: foo
assertions.nim(34) raiseAssert
Error: unhandled exception: options.nim(681, 5) `false` errGenerated [AssertionDefect]
IR
Compiled filesize0 bytes (0 bytes)
Stats
- Started
2024-05-18T00:39:47
- Finished
2024-05-18T00:39:47
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("Foo"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("s"),
newIdentNode("string"),
newEmptyNode()
)
)
)
)
),
nnkBlockStmt.newTree(
newEmptyNode(),
nnkStmtList.newTree(
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("i"),
newEmptyNode(),
newLit(2)
)
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("foo"),
newEmptyNode(),
nnkObjConstr.newTree(
newIdentNode("Foo"),
nnkExprColonExpr.newTree(
newIdentNode("s"),
newLit("LLR")
)
)
)
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("s"),
newEmptyNode(),
nnkTupleConstr.newTree(
newLit("XYZ"),
newLit("GHJ")
)
)
),
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("node"),
newEmptyNode(),
nnkBracketExpr.newTree(
newIdentNode("s"),
nnkCall.newTree(
newIdentNode("int"),
nnkInfix.newTree(
newIdentNode("=="),
nnkBracketExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("foo"),
newIdentNode("s")
),
newIdentNode("i")
),
newLit('R')
)
)
)
)
)
)
)
)
1.6.20 👎 FAIL
Output
Error: Command failed: nim c --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim(7, 20) Error: cannot evaluate at compile time: foo
fatal.nim(54) sysFatal
Error: unhandled exception: options.nim(662, 14) `false` errGenerated [AssertionDefect]
IR
Compiled filesize0 bytes (0 bytes)
Stats
- Started
2024-05-18T00:39:50
- Finished
2024-05-18T00:39:50
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("Foo"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("s"),
newIdentNode("string"),
newEmptyNode()
)
)
)
)
),
nnkBlockStmt.newTree(
newEmptyNode(),
nnkStmtList.newTree(
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("i"),
newEmptyNode(),
newLit(2)
)
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("foo"),
newEmptyNode(),
nnkObjConstr.newTree(
newIdentNode("Foo"),
nnkExprColonExpr.newTree(
newIdentNode("s"),
newLit("LLR")
)
)
)
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("s"),
newEmptyNode(),
nnkTupleConstr.newTree(
newLit("XYZ"),
newLit("GHJ")
)
)
),
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("node"),
newEmptyNode(),
nnkBracketExpr.newTree(
newIdentNode("s"),
nnkCall.newTree(
newIdentNode("int"),
nnkInfix.newTree(
newIdentNode("=="),
nnkBracketExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("foo"),
newIdentNode("s")
),
newIdentNode("i")
),
newLit('R')
)
)
)
)
)
)
)
)
1.4.8 👎 FAIL
Output
Error: Command failed: nim c --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim(7, 20) Error: cannot evaluate at compile time: foo
IR
Compiled filesize0 bytes (0 bytes)
Stats
- Started
2024-05-18T00:39:53
- Finished
2024-05-18T00:39:53
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("Foo"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("s"),
newIdentNode("string"),
newEmptyNode()
)
)
)
)
),
nnkBlockStmt.newTree(
newEmptyNode(),
nnkStmtList.newTree(
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("i"),
newEmptyNode(),
newLit(2)
)
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("foo"),
newEmptyNode(),
nnkObjConstr.newTree(
newIdentNode("Foo"),
nnkExprColonExpr.newTree(
newIdentNode("s"),
newLit("LLR")
)
)
)
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("s"),
newEmptyNode(),
nnkPar.newTree(
newLit("XYZ"),
newLit("GHJ")
)
)
),
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("node"),
newEmptyNode(),
nnkBracketExpr.newTree(
newIdentNode("s"),
nnkCall.newTree(
newIdentNode("int"),
nnkInfix.newTree(
newIdentNode("=="),
nnkBracketExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("foo"),
newIdentNode("s")
),
newIdentNode("i")
),
newLit('R')
)
)
)
)
)
)
)
)
1.2.18 👎 FAIL
Output
Error: Command failed: nim c --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim(7, 20) Error: cannot evaluate at compile time: foo
IR
Compiled filesize0 bytes (0 bytes)
Stats
- Started
2024-05-18T00:39:56
- Finished
2024-05-18T00:39:56
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("Foo"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("s"),
newIdentNode("string"),
newEmptyNode()
)
)
)
)
),
nnkBlockStmt.newTree(
newEmptyNode(),
nnkStmtList.newTree(
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("i"),
newEmptyNode(),
newLit(2)
)
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("foo"),
newEmptyNode(),
nnkObjConstr.newTree(
newIdentNode("Foo"),
nnkExprColonExpr.newTree(
newIdentNode("s"),
newLit("LLR")
)
)
)
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("s"),
newEmptyNode(),
nnkPar.newTree(
newLit("XYZ"),
newLit("GHJ")
)
)
),
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("node"),
newEmptyNode(),
nnkBracketExpr.newTree(
newIdentNode("s"),
nnkCall.newTree(
newIdentNode("int"),
nnkInfix.newTree(
newIdentNode("=="),
nnkBracketExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("foo"),
newIdentNode("s")
),
newIdentNode("i")
),
newLit('R')
)
)
)
)
)
)
)
)
1.0.10 👎 FAIL
Output
Error: Command failed: nim c --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim(7, 20) Error: cannot evaluate at compile time: foo
IR
Compiled filesize0 bytes (0 bytes)
Stats
- Started
2024-05-18T00:39:58
- Finished
2024-05-18T00:39:58
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("Foo"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
newEmptyNode(),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("s"),
newIdentNode("string"),
newEmptyNode()
)
)
)
)
),
nnkBlockStmt.newTree(
newEmptyNode(),
nnkStmtList.newTree(
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("i"),
newEmptyNode(),
newLit(2)
)
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("foo"),
newEmptyNode(),
nnkObjConstr.newTree(
newIdentNode("Foo"),
nnkExprColonExpr.newTree(
newIdentNode("s"),
newLit("LLR")
)
)
)
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("s"),
newEmptyNode(),
nnkPar.newTree(
newLit("XYZ"),
newLit("GHJ")
)
)
),
nnkVarSection.newTree(
nnkIdentDefs.newTree(
newIdentNode("node"),
newEmptyNode(),
nnkBracketExpr.newTree(
newIdentNode("s"),
nnkCall.newTree(
newIdentNode("int"),
nnkInfix.newTree(
newIdentNode("=="),
nnkBracketExpr.newTree(
nnkDotExpr.newTree(
newIdentNode("foo"),
newIdentNode("s")
),
newIdentNode("i")
),
newLit('R')
)
)
)
)
)
)
)
)
Stats
- GCC
11.4.0
- Clang
14.0.0
- NodeJS
20.2
- Created
2024-05-18T00:39:12Z
- Comments
1
- Commands
nim c --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
🤖 Bug found in 17 minutes
bisecting 7
commits at 0
commits per second
from nim.
Expected error s
is a tuple which means field access is done statically. In the case of a homogeneous tuple(but why not use an array at that point) one can use
proc getInd(tup: tuple, i: int): auto =
var ind = 0
for field in tup.fields:
if ind == i:
return field
inc ind
raise newException(ValueError, "No Field found with index: " & $i)
var i = 1
static: assert not compiles(("hmm", "huh")[i])
assert ("hmm", "huh").getInd(i) == "huh"
i = 0
assert ("hmm", "huh").getInd(i) == "hmm"
try:
i = 100
discard ("hmm", "huh").getInd(i)
assert false
except ValueError:
assert true
from nim.
Thanks, That makes sense.
from nim.
Related Issues (20)
- Regression from `version-2-0` to `devel` with generic object param type with default value: `Maybe generic arguments are missing?` HOT 1
- `default(M)` where `M` is uninstantiated generic has nil type HOT 1
- Dereferencing result of `cast` in single expression triggers unnecessary copy HOT 4
- SIGSEGV: Illegal storage access deep copy HOT 12
- Can't modify distinct addresses with conversions in VM
- default parameter initialize with template cause syntax error
- Object destructor not called when reassigning after a try-except block.
- Regression from 2.0.8 to `version-2-0`/`version-2-2`/`devel`: `Error: type mismatch: got 'uint' for '0'u' but expected 'P = distinct uint'` with `distinct`-typed labels in `case`statement HOT 1
- GDB. tools/debug/nim-gdb.py bug
- Segfault when checking if you can yield a ref object HOT 3
- Protocol enum field of value zero for sockets HOT 1
- Illegal storage access with nested dicts HOT 2
- Cannot boot Nim on Loongarch64 HOT 3
- Compiler crash when writing to `ptr UncheckedArray` casted from `pointer` in JS backend HOT 4
- Regression with distinct typeclass and or type in default params HOT 1
- Declare an array of pointers with an initializer if possible in generated C code HOT 2
- Regression from 2.0.8/`version-2-0` to `version-2-2`/`devel` with `Error: type mismatch` with templates and generics HOT 9
- `nim -c` would not link again if a C lib is updated HOT 1
- When self-referenced optional field is defined inside a ref type then the option type behaves in a wrong way during an assignment HOT 2
- Calling algorithm reverse causes a SIGSEGV on ORC HOT 11
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nim.