Skip to content

Commit

Permalink
fixes #11525
Browse files Browse the repository at this point in the history
  • Loading branch information
Araq committed Jun 26, 2019
1 parent 48cbf1c commit 19b1424
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 2 deletions.
2 changes: 1 addition & 1 deletion compiler/aliases.nim
Expand Up @@ -186,7 +186,7 @@ proc isPartOf*(a, b: PNode): TAnalysisResult =
if res != arNo:
result = res
if res == arYes: break
of nkCall:
of nkCallKinds:
result = arNo
for i in 1 ..< b.len:
let res = isPartOf(a, b[i])
Expand Down
39 changes: 38 additions & 1 deletion tests/ccgbugs/tobjconstr_bad_aliasing.nim
@@ -1,6 +1,9 @@
discard """
output: '''(10, (20, ))
42'''
42
(x: 900.0, y: 900.0)
(x: 900.0, y: 900.0)
(x: 900.0, y: 900.0)'''
"""

import strutils, sequtils
Expand Down Expand Up @@ -37,3 +40,37 @@ var x = X(v: 42)

x = X(v: f(x.v))
echo x.v


# bug #11525
type
Point[T] = object
x, y: T

proc adjustPos[T](width, height: int, pos: Point[T]): Point[T] =
result = pos

result = Point[T](
x: pos.x - (width / 2),
y: pos.y - (height / 2)
)

proc adjustPos2[T](width, height: int, pos: Point[T]): Point[T] =
result = pos

result = Point[T](
x: result.x - (width / 2),
y: result.y - (height / 2)
)

proc adjustPos3(width, height: int, pos: Point): Point =
result = pos

result = Point(
x: result.x - (width / 2),
y: result.y - (height / 2)
)

echo adjustPos(200, 200, Point[float](x: 1000, y: 1000))
echo adjustPos2(200, 200, Point[float](x: 1000, y: 1000))
echo adjustPos3(200, 200, Point[float](x: 1000, y: 1000))

0 comments on commit 19b1424

Please sign in to comment.