From 7f8cf6aa9188e50cb7e02f4f269d262682f6566a Mon Sep 17 00:00:00 2001 From: Maksim Kurnikov Date: Mon, 17 Feb 2025 21:01:47 +0100 Subject: [PATCH] can import consts from specs --- .../org/move/lang/core/psi/ext/MvElement.kt | 3 --- .../MvUnresolvedReferenceInspectionTest.kt | 14 ++++++++++++++ .../org/move/lang/resolve/ResolveVariablesTest.kt | 15 +++++++++++++++ 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/org/move/lang/core/psi/ext/MvElement.kt b/src/main/kotlin/org/move/lang/core/psi/ext/MvElement.kt index adfaebc40..9f7aed0f5 100644 --- a/src/main/kotlin/org/move/lang/core/psi/ext/MvElement.kt +++ b/src/main/kotlin/org/move/lang/core/psi/ext/MvElement.kt @@ -76,9 +76,6 @@ private fun PsiElement.isMslInner(): Boolean { return CachedValuesManager.getProjectPsiDependentCache(this) { var element: PsiElement? = it while (element != null) { - // use items always non-msl, otherwise import resolution doesn't work correctly - if (element is MvUseSpeck) return@getProjectPsiDependentCache false - // module items if (element is MvModule || element is MvFunction diff --git a/src/test/kotlin/org/move/ide/inspections/MvUnresolvedReferenceInspectionTest.kt b/src/test/kotlin/org/move/ide/inspections/MvUnresolvedReferenceInspectionTest.kt index 34471bb7e..72e6c5279 100644 --- a/src/test/kotlin/org/move/ide/inspections/MvUnresolvedReferenceInspectionTest.kt +++ b/src/test/kotlin/org/move/ide/inspections/MvUnresolvedReferenceInspectionTest.kt @@ -597,4 +597,18 @@ module 0x1::m { } } """) + + fun `test no unresolved reference for const in spec`() = checkByText(""" + module 0x1::features { + const PERMISSIONED_SIGNER: u64 = 84; + + } + module 0x1::m {} + spec 0x1::m { + spec fun is_permissioned_signer(): bool { + use 0x1::features::PERMISSIONED_SIGNER; + PERMISSIONED_SIGNER; + } + } + """) } diff --git a/src/test/kotlin/org/move/lang/resolve/ResolveVariablesTest.kt b/src/test/kotlin/org/move/lang/resolve/ResolveVariablesTest.kt index 793a256cc..54d418b18 100644 --- a/src/test/kotlin/org/move/lang/resolve/ResolveVariablesTest.kt +++ b/src/test/kotlin/org/move/lang/resolve/ResolveVariablesTest.kt @@ -776,4 +776,19 @@ module 0x1::string_tests { } } """) + + fun `test const accessible from spec functions`() = checkByCode(""" + module 0x1::features { + const PERMISSIONED_SIGNER: u64 = 84; + //X + + } + module 0x1::m {} + spec 0x1::m { + spec fun is_permissioned_signer(): bool { + use 0x1::features::PERMISSIONED_SIGNER; + PERMISSIONED_SIGNER; + //^ + } + } """) }