Skip to content

Commit a468054

Browse files
committed
Allow explicit cast of union type to member type.
1 parent cc065ac commit a468054

3 files changed

Lines changed: 164 additions & 0 deletions

File tree

Dasher.Tests/UnionTests.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,5 +147,15 @@ public void Type()
147147
Assert.Equal(typeof(int), Union<int, double>.Create(1).Type);
148148
Assert.Equal(typeof(double), Union<int, double>.Create(1.0).Type);
149149
}
150+
151+
[Fact]
152+
public void ExplicitCastToValue()
153+
{
154+
Assert.Equal(1, (int)Union<int, double>.Create(1));
155+
Assert.Equal(1.0, (double)Union<int, double>.Create(1.0));
156+
157+
Assert.Throws<InvalidCastException>(() => (double)Union<int, double>.Create(1));
158+
Assert.Throws<InvalidCastException>(() => (int)Union<int, double>.Create(1.0));
159+
}
150160
}
151161
}

0 commit comments

Comments
 (0)