瀏覽代碼

[std] use direct from cast for Any (#10148)

Dmitrii Maganov 4 年之前
父節點
當前提交
eda6551f2b
共有 2 個文件被更改,包括 18 次插入4 次删除
  1. 1 4
      std/Any.hx
  2. 17 0
      tests/unit/src/unit/issues/Issue10148.hx

+ 1 - 4
std/Any.hx

@@ -32,13 +32,10 @@
 	to another type.
 **/
 @:forward.variance
-abstract Any(Dynamic) {
+abstract Any(Dynamic) from Dynamic {
 	@:noCompletion @:to extern inline function __promote<T>():T
 		return this;
 
-	@:noCompletion @:from extern inline static function __cast<T>(value:T):Any
-		return cast value;
-
 	@:noCompletion extern inline function toString():String
 		return Std.string(this);
 }

+ 17 - 0
tests/unit/src/unit/issues/Issue10148.hx

@@ -0,0 +1,17 @@
+package unit.issues;
+
+private enum FooBar {
+  Foo;
+  Bar(value: Any);
+}
+
+class Issue10148 extends Test {
+  function test() {
+    var bar: FooBar = Bar(0);
+    var matched = switch (bar) {
+      case Bar(0): true;
+      case _: false;
+    }
+    eq(true, matched);
+  }
+}