diff --git a/distribution/lib/Standard/Base/0.0.0-dev/src/Meta.enso b/distribution/lib/Standard/Base/0.0.0-dev/src/Meta.enso index 13454af0ba3e..1225f3267642 100644 --- a/distribution/lib/Standard/Base/0.0.0-dev/src/Meta.enso +++ b/distribution/lib/Standard/Base/0.0.0-dev/src/Meta.enso @@ -395,5 +395,5 @@ is_polyglot value -> Boolean = 3 == Meta_Helpers.get_kind_builtin value Arguments: - value: the value to get the type of Type.from (that:Any) = - typ = Meta.type_of that + typ = if Meta.is_type that then that else Meta.type_of that Type.Value typ diff --git a/engine/runtime-integration-tests/src/test/java/org/enso/interpreter/test/interop/MetaObjectTest.java b/engine/runtime-integration-tests/src/test/java/org/enso/interpreter/test/interop/MetaObjectTest.java index 1727c82ff833..bd14d2b7dbb3 100644 --- a/engine/runtime-integration-tests/src/test/java/org/enso/interpreter/test/interop/MetaObjectTest.java +++ b/engine/runtime-integration-tests/src/test/java/org/enso/interpreter/test/interop/MetaObjectTest.java @@ -333,6 +333,9 @@ private boolean compareQualifiedNameOfValue(Value sn, Value v, StringBuilder sb) } var meta = v.getMetaObject(); var metaName = meta != null ? meta.getMetaSimpleName() : "null"; + if (metaName.endsWith(".type")) { + metaName = metaName.substring(0, metaName.length() - 5); + } if (!simpleName.equals(metaName)) { if (v.isHostObject()) { if (v.hasArrayElements()) { @@ -407,7 +410,7 @@ public void compareQualifiedAndSimpleTypeNameForTypes() throws Exception { } var simpleName = sn.execute(typ).asString(); - var metaName = typ.getMetaSimpleName() + ".type"; + var metaName = typ.getMetaSimpleName(); if (!simpleName.equals(metaName)) { sb.append("\n") .append("Simple names shall be the same for ") diff --git a/test/Base_Tests/src/Semantic/Meta_Spec.enso b/test/Base_Tests/src/Semantic/Meta_Spec.enso index bc4979cbaaa1..4a6d3c2cef42 100644 --- a/test/Base_Tests/src/Semantic/Meta_Spec.enso +++ b/test/Base_Tests/src/Semantic/Meta_Spec.enso @@ -541,6 +541,16 @@ add_specs suite_builder = typ = Meta.Type.find fqn typ . should_equal meta_type + suite_builder.group ".to Meta.Type" group_builder-> + group_builder.specify "Type of Pair type" <| + fqn = Pair.to Meta.Type . qualified_name + fqn . should_equal "Standard.Base.Data.Pair.Pair" + + group_builder.specify "Type of Pair value" <| + p = Pair.new "A" 2 + fqn = p.to Meta.Type . qualified_name + fqn . should_equal "Standard.Base.Data.Pair.Pair" + main filter=Nothing = suite = Test.build suite_builder-> add_specs suite_builder