From 8a93a16738dde1e6cfd32f4aa3dbecb6629f4f22 Mon Sep 17 00:00:00 2001 From: JohnnyMorganz Date: Mon, 28 Nov 2022 11:16:35 +0000 Subject: [PATCH] Add FFlag --- Analysis/src/TypeInfer.cpp | 3 ++- tests/TypeInfer.classes.test.cpp | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Analysis/src/TypeInfer.cpp b/Analysis/src/TypeInfer.cpp index 4c7d7891..6a0b013f 100644 --- a/Analysis/src/TypeInfer.cpp +++ b/Analysis/src/TypeInfer.cpp @@ -49,6 +49,7 @@ LUAU_FASTFLAGVARIABLE(LuauReportShadowedTypeAlias, false) LUAU_FASTFLAGVARIABLE(LuauBetterMessagingOnCountMismatch, false) LUAU_FASTFLAGVARIABLE(LuauArgMismatchReportFunctionLocation, false) LUAU_FASTFLAGVARIABLE(LuauImplicitElseRefinement, false) +LUAU_FASTFLAGVARIABLE(LuauCallableClasses, false) namespace Luau { @@ -4140,7 +4141,7 @@ std::optional> TypeChecker::checkCallOverload(const Sc if (const MetatableTypeVar* mttv = get(fn)) { callTy = getIndexTypeFromType(scope, mttv->metatable, "__call", expr.func->location, /* addErrors= */ false); - } else if (const ClassTypeVar* ctv = get(fn); ctv && ctv->metatable) + } else if (const ClassTypeVar* ctv = get(fn); FFlag::LuauCallableClasses && ctv && ctv->metatable) { callTy = getIndexTypeFromType(scope, *ctv->metatable, "__call", expr.func->location, /* addErrors= */ false); } diff --git a/tests/TypeInfer.classes.test.cpp b/tests/TypeInfer.classes.test.cpp index cf60eea2..d1a24e5f 100644 --- a/tests/TypeInfer.classes.test.cpp +++ b/tests/TypeInfer.classes.test.cpp @@ -523,6 +523,8 @@ TEST_CASE_FIXTURE(ClassFixture, "unions_of_intersections_of_classes") TEST_CASE_FIXTURE(ClassFixture, "callable_classes") { + ScopedFastFlag luauCallableClasses{"LuauCallableClasses", true}; + CheckResult result = check(R"( local x : CallableClass local y = x("testing")