mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 06:05:01 +07:00
PY-76830 PY-76833 PY-76843 PY-76879 Enums support
GitOrigin-RevId: 9021c003cde70c39f8a5635b42761c08049490e2
This commit is contained in:
committed by
intellij-monorepo-bot
parent
71de217118
commit
16d40e9c5d
@@ -0,0 +1,43 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.jetbrains.python.psi.stubs
|
||||
|
||||
import com.intellij.psi.stubs.StubInputStream
|
||||
import com.intellij.psi.stubs.StubOutputStream
|
||||
import com.jetbrains.python.psi.*
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
import java.io.IOException
|
||||
import java.util.*
|
||||
|
||||
@ApiStatus.Internal
|
||||
enum class PyLiteralKind {
|
||||
INT,
|
||||
FLOAT,
|
||||
STRING,
|
||||
BOOL,
|
||||
NONE;
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun fromExpression(expression: PyExpression?): PyLiteralKind? = when (expression) {
|
||||
is PyNumericLiteralExpression -> if (expression.isIntegerLiteral) INT else FLOAT
|
||||
is PyStringLiteralExpression -> STRING
|
||||
is PyBoolLiteralExpression -> BOOL
|
||||
is PyNoneLiteralExpression -> NONE
|
||||
else -> null
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
@Throws(IOException::class)
|
||||
fun serialize(stream: StubOutputStream, kind: PyLiteralKind?) {
|
||||
val index = kind?.ordinal ?: -1
|
||||
stream.writeVarInt(index)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
@Throws(IOException::class)
|
||||
fun deserialize(stream: StubInputStream): PyLiteralKind? {
|
||||
val index = stream.readVarInt()
|
||||
return if (index == -1) null else entries[index]
|
||||
}
|
||||
}
|
||||
}
|
||||
+5
-1
@@ -3,7 +3,7 @@ package com.jetbrains.python.psi.stubs;
|
||||
|
||||
import com.intellij.psi.stubs.NamedStub;
|
||||
import com.intellij.psi.util.QualifiedName;
|
||||
import com.jetbrains.python.psi.PyTargetExpression;
|
||||
import com.jetbrains.python.psi.*;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -41,6 +41,10 @@ public interface PyTargetExpressionStub
|
||||
@Nullable
|
||||
QualifiedName getInitializer();
|
||||
|
||||
@ApiStatus.Internal
|
||||
@Nullable
|
||||
PyLiteralKind getAssignedLiteralKind();
|
||||
|
||||
boolean isQualified();
|
||||
|
||||
@ApiStatus.Internal
|
||||
|
||||
Reference in New Issue
Block a user