mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Filter out fake elements from typeshed builtins (PY-22508)
This commit is contained in:
@@ -19,6 +19,7 @@ import com.intellij.psi.FileViewProvider
|
||||
import com.jetbrains.python.PythonFileType
|
||||
import com.jetbrains.python.psi.LanguageLevel
|
||||
import com.jetbrains.python.psi.PyImportElement
|
||||
import com.jetbrains.python.psi.impl.PyBuiltinCache
|
||||
import com.jetbrains.python.psi.impl.PyFileImpl
|
||||
import com.jetbrains.python.psi.resolve.ImportedResolveResult
|
||||
import com.jetbrains.python.psi.resolve.RatedResolveResult
|
||||
@@ -29,11 +30,13 @@ import com.jetbrains.python.psi.resolve.RatedResolveResult
|
||||
class PyiFile(viewProvider: FileViewProvider) : PyFileImpl(viewProvider, PyiLanguageDialect.getInstance()) {
|
||||
override fun getFileType(): PythonFileType = PyiFileType.INSTANCE
|
||||
|
||||
override fun toString(): String = "PyiFile:" + name
|
||||
override fun toString(): String = "PyiFile:$name"
|
||||
|
||||
override fun getLanguageLevel(): LanguageLevel = LanguageLevel.PYTHON37
|
||||
|
||||
override fun multiResolveName(name: String, exported: Boolean): List<RatedResolveResult> {
|
||||
if (name == "function" && PyBuiltinCache.getInstance(this).builtinsFile == this) return emptyList()
|
||||
|
||||
val baseResults = super.multiResolveName(name, exported)
|
||||
return if (exported)
|
||||
baseResults
|
||||
|
||||
@@ -48,3 +48,9 @@ def test_builtin_qualified_name():
|
||||
def test_builtin_class_attribute():
|
||||
class C:
|
||||
id = 1
|
||||
|
||||
|
||||
# PY-22508
|
||||
def test_fakes_from_typeshed():
|
||||
function = 10
|
||||
module = 10
|
||||
@@ -1,5 +1,5 @@
|
||||
def transform():
|
||||
def function1(x):
|
||||
def function(x):
|
||||
return x + 5
|
||||
|
||||
return function1
|
||||
return function
|
||||
+6
@@ -764,6 +764,12 @@ public class PyUnresolvedReferencesInspectionTest extends PyInspectionTestCase {
|
||||
doTest();
|
||||
}
|
||||
|
||||
// PY-22508
|
||||
public void testFakesFromTypeshed() {
|
||||
doTestByText("print(<error descr=\"Unresolved reference 'function'\">function</error>)\n" +
|
||||
"print(<error descr=\"Unresolved reference 'module'\">module</error>)");
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
protected Class<? extends PyInspection> getInspectionClass() {
|
||||
|
||||
Reference in New Issue
Block a user