diff --git a/stubgenj/_stubgenj.py b/stubgenj/_stubgenj.py index dde8912ccdf5af64b175e75ffd0734f7eb205561..e23e0d385761c559d352c2e9a2ed8d5e48caf845 100644 --- a/stubgenj/_stubgenj.py +++ b/stubgenj/_stubgenj.py @@ -1129,7 +1129,7 @@ def generateJavaClassStub(package: jpype.JPackage, jOverloads = jClass.class_.getMethods() for attr, value in items: if isinstance(value, jpype.JMethod): - matchingOverloads = [o for o in jOverloads if str(o.getName()) == attr and not o.isSynthetic()] + matchingOverloads = [o for o in jOverloads if pysafe(str(o.getName())) == attr and not o.isSynthetic()] generateJavaMethodStub(packageName, attr, matchingOverloads, javadoc.methods, classesDone=classesDone, classesUsed=classesUsed, classTypeVars=usableTypeVars, output=methodsOutput, importsOutput=importsOutput) diff --git a/stubgenj/tests/stubtest/test-data/unit/mangled_python_keywords.test b/stubgenj/tests/stubtest/test-data/unit/mangled_python_keywords.test new file mode 100644 index 0000000000000000000000000000000000000000..1f33c749f076a7d16928b6abc334dbdc8b9bf784 --- /dev/null +++ b/stubgenj/tests/stubtest/test-data/unit/mangled_python_keywords.test @@ -0,0 +1,15 @@ +[case testBitArrayStubIsValid] +from java.util import BitSet + +[case testMangledMethodsAreGenerated] +from java.util import BitSet +BitSet(1).and_(BitSet(2)) +BitSet(1).or_(BitSet(2)) + +[case testNoUnmangledMethodsAreGenerated_and] +from java.util import BitSet +BitSet(1).and(BitSet(2)) # E: invalid syntax + +[case testNoUnmangledMethodsAreGenerated_or] +BitSet(1).or(BitSet(2)) # E: invalid syntax + diff --git a/stubgenj/tests/test_stubtest.py b/stubgenj/tests/test_stubtest.py index bcd5ac930c6e820c44472661d2023c096ae16d35..420cde07bf0016f441971dc2e50f4b06dc6b2b83 100644 --- a/stubgenj/tests/test_stubtest.py +++ b/stubgenj/tests/test_stubtest.py @@ -58,5 +58,6 @@ class StubTestSuite(mypy.test.testcheck.TypeCheckSuite): 'forward_declaration.test', 'hashmap.test', 'jpype_jpackage.test', + 'mangled_python_keywords.test', 'varargs.test', ]