diff --git a/common/src/main/kotlin/gay/pizza/pork/common/Globals.kt b/common/src/main/kotlin/gay/pizza/pork/common/Globals.kt new file mode 100644 index 0000000..6eb7f4e --- /dev/null +++ b/common/src/main/kotlin/gay/pizza/pork/common/Globals.kt @@ -0,0 +1,9 @@ +package gay.pizza.pork.common + +@Suppress("NOTHING_TO_INLINE", "UnusedReceiverParameter", "unused") +inline fun Any?.markIsUnused() {} + +@Suppress("NOTHING_TO_INLINE", "unused") +inline fun unused(value: Any?) { + value.markIsUnused() +} diff --git a/evaluator/src/main/kotlin/gay/pizza/pork/evaluator/InternalNativeProvider.kt b/evaluator/src/main/kotlin/gay/pizza/pork/evaluator/InternalNativeProvider.kt index dd9e62b..4503adc 100644 --- a/evaluator/src/main/kotlin/gay/pizza/pork/evaluator/InternalNativeProvider.kt +++ b/evaluator/src/main/kotlin/gay/pizza/pork/evaluator/InternalNativeProvider.kt @@ -1,6 +1,7 @@ package gay.pizza.pork.evaluator import gay.pizza.pork.ast.ArgumentSpec +import gay.pizza.pork.common.unused class InternalNativeProvider(val quiet: Boolean = false) : NativeProvider { private val functions = mutableMapOf( @@ -16,18 +17,21 @@ class InternalNativeProvider(val quiet: Boolean = false) : NativeProvider { } private fun printValues(arguments: ArgumentList, stack: CallStack): Any { + unused(stack) if (quiet || arguments.isEmpty()) return None print(arguments.joinToString(" ")) return None } private fun printLine(arguments: ArgumentList, stack: CallStack): Any { + unused(stack) if (quiet) return None println(arguments.joinToString(" ")) return None } private fun setInList(arguments: ArgumentList, stack: CallStack): Any { + unused(stack) @Suppress("UNCHECKED_CAST") val list = arguments[0] as MutableList val value = arguments[2] @@ -36,6 +40,7 @@ class InternalNativeProvider(val quiet: Boolean = false) : NativeProvider { } private fun listInitWith(arguments: ArgumentList, stack: CallStack): Any { + unused(stack) val size = (arguments[0] as Number).toInt() return MutableList(size) { arguments[1] } } diff --git a/support/pork-idea/build.gradle.kts b/support/pork-idea/build.gradle.kts index 6f15b7a..95ec482 100644 --- a/support/pork-idea/build.gradle.kts +++ b/support/pork-idea/build.gradle.kts @@ -7,6 +7,7 @@ plugins { } dependencies { + implementation(project(":common")) implementation(project(":parser")) } diff --git a/support/pork-idea/src/main/kotlin/gay/pizza/pork/idea/psi/PorkElementHelpers.kt b/support/pork-idea/src/main/kotlin/gay/pizza/pork/idea/psi/PorkElementHelpers.kt index 5b95253..500cad5 100644 --- a/support/pork-idea/src/main/kotlin/gay/pizza/pork/idea/psi/PorkElementHelpers.kt +++ b/support/pork-idea/src/main/kotlin/gay/pizza/pork/idea/psi/PorkElementHelpers.kt @@ -10,6 +10,7 @@ import com.intellij.psi.util.PsiTreeUtil import com.intellij.psi.util.childrenOfType import com.intellij.util.PlatformIcons import gay.pizza.pork.ast.NodeType +import gay.pizza.pork.common.unused import gay.pizza.pork.idea.PorkElementTypes import gay.pizza.pork.idea.PorkLanguage import gay.pizza.pork.idea.psi.gen.* @@ -44,6 +45,7 @@ object PorkElementHelpers { } fun referenceOfElement(element: PorkElement, type: NodeType): PsiReference? { + unused(type) val textRangeOfSymbolInElement = element.childrenOfType().firstOrNull()?.textRangeInParent ?: return null return PorkIdentifierReference(element, textRangeOfSymbolInElement) }