diff options
author | Araq <rumpf_a@web.de> | 2013-05-27 23:16:00 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2013-05-27 23:16:00 +0200 |
commit | e1b668c868dbc647bb5da98d8e4769c2c9b351fd (patch) | |
tree | c1b4ca3a7fa14fa4aa3ec6b36bd85a693f511b46 | |
parent | 66653e8f144f2e67a6e48158f9298d9f41b16b09 (diff) | |
download | Nim-e1b668c868dbc647bb5da98d8e4769c2c9b351fd.tar.gz |
Revert "test cases for the new features"
This reverts commit 66653e8f144f2e67a6e48158f9298d9f41b16b09.
-rw-r--r-- | compiler/semexprs.nim | 15 | ||||
-rw-r--r-- | tests/compile/tgenericdefaults.nim | 29 | ||||
-rw-r--r-- | tests/compile/ttypeclasses.nim | 21 | ||||
-rw-r--r-- | tests/run/tstaticparams.nim | 17 |
4 files changed, 4 insertions, 78 deletions
diff --git a/compiler/semexprs.nim b/compiler/semexprs.nim index 0ac71bedf..daad93a85 100644 --- a/compiler/semexprs.nim +++ b/compiler/semexprs.nim @@ -111,11 +111,7 @@ proc semSym(c: PContext, n: PNode, s: PSym, flags: TExprFlags): PNode = # var len = 0 # but won't be called # genericThatUsesLen(x) # marked as taking a closure? of skGenericParam: - if s.typ.kind == tyExpr: - result = newSymNode(s, n.info) - result.typ = s.typ.lastSon - elif s.ast != nil: - result = semExpr(c, s.ast) + if s.ast != nil: result = semExpr(c, s.ast) else: InternalError(n.info, "no default for") result = emptyNode @@ -887,13 +883,10 @@ proc builtinFieldAccess(c: PContext, n: PNode, flags: TExprFlags): PNode = let tbody = ty.sons[0] for s in countup(0, tbody.len-2): let tParam = tbody.sons[s] + assert tParam.kind == tyGenericParam if tParam.sym.name == i: - let rawTyp = ty.sons[s + 1] - if rawTyp.kind == tyExpr: - return rawTyp.n - else: - let foundTyp = makeTypeDesc(c, rawTyp) - return newSymNode(copySym(tParam.sym).linkTo(foundTyp), n.info) + let foundTyp = makeTypeDesc(c, ty.sons[s + 1]) + return newSymNode(copySym(tParam.sym).linkTo(foundTyp), n.info) return else: # echo "TYPE FIELD ACCESS" diff --git a/tests/compile/tgenericdefaults.nim b/tests/compile/tgenericdefaults.nim deleted file mode 100644 index ad96f1851..000000000 --- a/tests/compile/tgenericdefaults.nim +++ /dev/null @@ -1,29 +0,0 @@ -type - TFoo[T, U, R = int] = object - x: T - y: U - z: R - - TBar[T] = TFoo[T, array[4, T], T] - -var x1: TFoo[int, float] - -static: - assert type(x1.x) is int - assert type(x1.y) is float - assert type(x1.z) is int - -var x2: TFoo[string, R = float, U = seq[int]] - -static: - assert type(x2.x) is string - assert type(x2.y) is seq[int] - assert type(x2.z) is float - -var x3: TBar[float] - -static: - assert type(x3.x) is float - assert type(x3.y) is array[4, float] - assert type(x3.z) is float - diff --git a/tests/compile/ttypeclasses.nim b/tests/compile/ttypeclasses.nim index 677229868..5e23e8489 100644 --- a/tests/compile/ttypeclasses.nim +++ b/tests/compile/ttypeclasses.nim @@ -5,8 +5,6 @@ type T1 = expr T2 = expr - Numeric = int|float - proc takesExpr(x, y) = echo x, y @@ -34,22 +32,3 @@ takesFoo(f, f) takes2Types(1, 1, "string") takes2Types[string, int]("test", "test", 1) -proc takesSeq(x: seq) = - echo "seq" - -takesSeq(@[1, 2, 3]) -takesSeq(@["x", "y", "z"]) - -proc takesSeqOfFoos(x: seq[TFoo]) = - echo "foo seq" - -var sf = newSeq[TFoo[int]](3) - -takesSeq(sf) -takesSeqOfFoos(sf) - -proc takesFooOfNumeric(x: TFoo[Numeric]) = - echo "foo of numeric" - -takesFooOfNumeric(sf[0]) - diff --git a/tests/run/tstaticparams.nim b/tests/run/tstaticparams.nim deleted file mode 100644 index 3e501ed8b..000000000 --- a/tests/run/tstaticparams.nim +++ /dev/null @@ -1,17 +0,0 @@ -discard """ - file: "tstaticparams.nim" - output: "abracadabra\ntest" -""" - -type - TFoo[T; Val: expr[string]] = object - data: array[4, T] - -proc takeFoo(x: TFoo) = - echo "abracadabra" - echo TFoo.Val - -var x: TFoo[int, "test"] - -takeFoo(x) - |