diff options
author | Dana Dahlstrom <dahlstrom@google.com> | 2022-06-21 11:00:00 -0700 |
---|---|---|
committer | Dana Dahlstrom <dahlstrom@google.com> | 2022-06-21 11:00:00 -0700 |
commit | e336a4a02d8dcf2d070996dfaf99936434c6957e (patch) | |
tree | 912e28aefe511bdb02e98e49cfd82f8963d2c10d | |
parent | ef3c07f6f9d86ea9e0821b9cc92614c7092939a5 (diff) | |
parent | 064c82b1d564413391cbddaedd073c29a774cb73 (diff) | |
download | idea-e336a4a02d8dcf2d070996dfaf99936434c6957e.tar.gz |
Merge IntelliJ IDEA 2022.1 221.5080.210
Change-Id: I064c82b1d564413391cbddaedd073c29a774cb73
536 files changed, 9622 insertions, 6214 deletions
diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml index 5bd7f087d0c5..564590a6a488 100644 --- a/.idea/kotlinc.xml +++ b/.idea/kotlinc.xml @@ -11,6 +11,6 @@ <option name="additionalArguments" value="-version -Xno-param-assertions -Xno-call-assertions -Xno-receiver-assertions -Xjvm-default=enable -Xuse-old-backend -Xopt-in=kotlin.io.path.ExperimentalPathApi -Xopt-in=kotlin.RequiresOptIn -Xopt-in=com.intellij.openapi.util.IntellijInternalApi" /> </component> <component name="KotlinJpsPluginSettings"> - <option name="version" value="1.6.10-release-952" /> + <option name="version" value="1.6.10-release-971" /> </component> </project>
\ No newline at end of file diff --git a/.idea/libraries/SSHJ.xml b/.idea/libraries/SSHJ.xml index f91d22afcace..762255df86fe 100644 --- a/.idea/libraries/SSHJ.xml +++ b/.idea/libraries/SSHJ.xml @@ -1,6 +1,6 @@ <component name="libraryTable"> <library name="SSHJ" type="repository"> - <properties maven-id="org.jetbrains.intellij.deps:sshj:0.32.0.1"> + <properties maven-id="org.jetbrains.intellij.deps:sshj:0.32.0-idea2"> <exclude> <dependency maven-id="org.slf4j:slf4j-api" /> <dependency maven-id="org.bouncycastle:bcprov-jdk15on" /> @@ -9,13 +9,13 @@ </exclude> </properties> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/sshj/0.32.0.1/sshj-0.32.0.1.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/sshj/0.32.0-idea2/sshj-0.32.0-idea2.jar!/" /> <root url="jar://$MAVEN_REPOSITORY$/com/hierynomus/asn-one/0.6.0/asn-one-0.6.0.jar!/" /> <root url="jar://$MAVEN_REPOSITORY$/net/i2p/crypto/eddsa/0.3.0/eddsa-0.3.0.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/sshj/0.32.0.1/sshj-0.32.0.1-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/sshj/0.32.0-idea2/sshj-0.32.0-idea2-sources.jar!/" /> <root url="jar://$MAVEN_REPOSITORY$/com/hierynomus/asn-one/0.6.0/asn-one-0.6.0-sources.jar!/" /> <root url="jar://$MAVEN_REPOSITORY$/net/i2p/crypto/eddsa/0.3.0/eddsa-0.3.0-sources.jar!/" /> </SOURCES> diff --git a/.idea/libraries/fixed_kotlin_jps_plugin_classpath.xml b/.idea/libraries/fixed_kotlin_jps_plugin_classpath.xml index 372a7030b670..e31baef56ead 100644 --- a/.idea/libraries/fixed_kotlin_jps_plugin_classpath.xml +++ b/.idea/libraries/fixed_kotlin_jps_plugin_classpath.xml @@ -1,13 +1,13 @@ <?xml version="1.0" encoding="UTF-8"?> <component name="libraryTable"> <library name="fixed.kotlin-jps-plugin-classpath" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-jps-plugin-classpath:1.6.10-release-952" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-jps-plugin-classpath:1.6.10-release-971" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-jps-plugin-classpath/1.6.10-release-952/kotlin-jps-plugin-classpath-1.6.10-release-952.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-jps-plugin-classpath/1.6.10-release-971/kotlin-jps-plugin-classpath-1.6.10-release-971.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-jps-plugin-classpath/1.6.10-release-952/kotlin-jps-plugin-classpath-1.6.10-release-952-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-jps-plugin-classpath/1.6.10-release-971/kotlin-jps-plugin-classpath-1.6.10-release-971-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_allopen_compiler_plugin.xml b/.idea/libraries/kotlinc_allopen_compiler_plugin.xml index 0d31b28bc63a..bf61ffd052a9 100644 --- a/.idea/libraries/kotlinc_allopen_compiler_plugin.xml +++ b/.idea/libraries/kotlinc_allopen_compiler_plugin.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.allopen-compiler-plugin" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:allopen-compiler-plugin-for-ide:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:allopen-compiler-plugin-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/allopen-compiler-plugin-for-ide/1.6.20-RC-release-227/allopen-compiler-plugin-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/allopen-compiler-plugin-for-ide/1.6.20-release-285/allopen-compiler-plugin-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/allopen-compiler-plugin-for-ide/1.6.20-RC-release-227/allopen-compiler-plugin-for-ide-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/allopen-compiler-plugin-for-ide/1.6.20-release-285/allopen-compiler-plugin-for-ide-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_analysis_api_providers.xml b/.idea/libraries/kotlinc_analysis_api_providers.xml index 40ecbf098b6f..4e3ba1c93b67 100644 --- a/.idea/libraries/kotlinc_analysis_api_providers.xml +++ b/.idea/libraries/kotlinc_analysis_api_providers.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.analysis-api-providers" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:analysis-api-providers-for-ide:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:analysis-api-providers-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/analysis-api-providers-for-ide/1.6.20-RC-release-227/analysis-api-providers-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/analysis-api-providers-for-ide/1.6.20-release-285/analysis-api-providers-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/analysis-api-providers-for-ide/1.6.20-RC-release-227/analysis-api-providers-for-ide-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/analysis-api-providers-for-ide/1.6.20-release-285/analysis-api-providers-for-ide-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_analysis_project_structure.xml b/.idea/libraries/kotlinc_analysis_project_structure.xml index 3f06de71923c..7765c923bab8 100644 --- a/.idea/libraries/kotlinc_analysis_project_structure.xml +++ b/.idea/libraries/kotlinc_analysis_project_structure.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.analysis-project-structure" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:analysis-project-structure-for-ide:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:analysis-project-structure-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/analysis-project-structure-for-ide/1.6.20-RC-release-227/analysis-project-structure-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/analysis-project-structure-for-ide/1.6.20-release-285/analysis-project-structure-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/analysis-project-structure-for-ide/1.6.20-RC-release-227/analysis-project-structure-for-ide-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/analysis-project-structure-for-ide/1.6.20-release-285/analysis-project-structure-for-ide-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_android_extensions_compiler_plugin.xml b/.idea/libraries/kotlinc_android_extensions_compiler_plugin.xml index 9a09a1da8da9..08048fa5b963 100644 --- a/.idea/libraries/kotlinc_android_extensions_compiler_plugin.xml +++ b/.idea/libraries/kotlinc_android_extensions_compiler_plugin.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.android-extensions-compiler-plugin" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:android-extensions-compiler-plugin-for-ide:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:android-extensions-compiler-plugin-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/android-extensions-compiler-plugin-for-ide/1.6.20-RC-release-227/android-extensions-compiler-plugin-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/android-extensions-compiler-plugin-for-ide/1.6.20-release-285/android-extensions-compiler-plugin-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/android-extensions-compiler-plugin-for-ide/1.6.20-RC-release-227/android-extensions-compiler-plugin-for-ide-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/android-extensions-compiler-plugin-for-ide/1.6.20-release-285/android-extensions-compiler-plugin-for-ide-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_high_level_api.xml b/.idea/libraries/kotlinc_high_level_api.xml index 20af3ce5f942..cc8343399e24 100644 --- a/.idea/libraries/kotlinc_high_level_api.xml +++ b/.idea/libraries/kotlinc_high_level_api.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.high-level-api" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:high-level-api-for-ide:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:high-level-api-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/high-level-api-for-ide/1.6.20-RC-release-227/high-level-api-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/high-level-api-for-ide/1.6.20-release-285/high-level-api-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/high-level-api-for-ide/1.6.20-RC-release-227/high-level-api-for-ide-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/high-level-api-for-ide/1.6.20-release-285/high-level-api-for-ide-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_high_level_api_fir.xml b/.idea/libraries/kotlinc_high_level_api_fir.xml index 3293e1cb2854..f3c6d3e2df9e 100644 --- a/.idea/libraries/kotlinc_high_level_api_fir.xml +++ b/.idea/libraries/kotlinc_high_level_api_fir.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.high-level-api-fir" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:high-level-api-fir-for-ide:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:high-level-api-fir-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/high-level-api-fir-for-ide/1.6.20-RC-release-227/high-level-api-fir-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/high-level-api-fir-for-ide/1.6.20-release-285/high-level-api-fir-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/high-level-api-fir-for-ide/1.6.20-RC-release-227/high-level-api-fir-for-ide-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/high-level-api-fir-for-ide/1.6.20-release-285/high-level-api-fir-for-ide-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_high_level_api_fir_tests.xml b/.idea/libraries/kotlinc_high_level_api_fir_tests.xml index 58bfe289d9e1..16f7652f279f 100644 --- a/.idea/libraries/kotlinc_high_level_api_fir_tests.xml +++ b/.idea/libraries/kotlinc_high_level_api_fir_tests.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.high-level-api-fir-tests" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:high-level-api-fir-tests-for-ide:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:high-level-api-fir-tests-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/high-level-api-fir-tests-for-ide/1.6.20-RC-release-227/high-level-api-fir-tests-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/high-level-api-fir-tests-for-ide/1.6.20-release-285/high-level-api-fir-tests-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/high-level-api-fir-tests-for-ide/1.6.20-RC-release-227/high-level-api-fir-tests-for-ide-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/high-level-api-fir-tests-for-ide/1.6.20-release-285/high-level-api-fir-tests-for-ide-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_high_level_api_impl_base.xml b/.idea/libraries/kotlinc_high_level_api_impl_base.xml index 37d3eb976d14..ccbc1a12ceae 100644 --- a/.idea/libraries/kotlinc_high_level_api_impl_base.xml +++ b/.idea/libraries/kotlinc_high_level_api_impl_base.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.high-level-api-impl-base" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:high-level-api-impl-base-for-ide:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:high-level-api-impl-base-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/high-level-api-impl-base-for-ide/1.6.20-RC-release-227/high-level-api-impl-base-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/high-level-api-impl-base-for-ide/1.6.20-release-285/high-level-api-impl-base-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/high-level-api-impl-base-for-ide/1.6.20-RC-release-227/high-level-api-impl-base-for-ide-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/high-level-api-impl-base-for-ide/1.6.20-release-285/high-level-api-impl-base-for-ide-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_high_level_api_impl_base_tests.xml b/.idea/libraries/kotlinc_high_level_api_impl_base_tests.xml index 41156fcfeae3..f818a7a1705d 100644 --- a/.idea/libraries/kotlinc_high_level_api_impl_base_tests.xml +++ b/.idea/libraries/kotlinc_high_level_api_impl_base_tests.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.high-level-api-impl-base-tests" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:high-level-api-impl-base-tests-for-ide:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:high-level-api-impl-base-tests-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/high-level-api-impl-base-tests-for-ide/1.6.20-RC-release-227/high-level-api-impl-base-tests-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/high-level-api-impl-base-tests-for-ide/1.6.20-release-285/high-level-api-impl-base-tests-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/high-level-api-impl-base-tests-for-ide/1.6.20-RC-release-227/high-level-api-impl-base-tests-for-ide-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/high-level-api-impl-base-tests-for-ide/1.6.20-release-285/high-level-api-impl-base-tests-for-ide-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_incremental_compilation_impl_tests.xml b/.idea/libraries/kotlinc_incremental_compilation_impl_tests.xml index 08b1986ef317..b2087c9f9dc3 100644 --- a/.idea/libraries/kotlinc_incremental_compilation_impl_tests.xml +++ b/.idea/libraries/kotlinc_incremental_compilation_impl_tests.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.incremental-compilation-impl-tests" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:incremental-compilation-impl-tests-for-ide:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:incremental-compilation-impl-tests-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/incremental-compilation-impl-tests-for-ide/1.6.20-RC-release-227/incremental-compilation-impl-tests-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/incremental-compilation-impl-tests-for-ide/1.6.20-release-285/incremental-compilation-impl-tests-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/incremental-compilation-impl-tests-for-ide/1.6.20-RC-release-227/incremental-compilation-impl-tests-for-ide-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/incremental-compilation-impl-tests-for-ide/1.6.20-release-285/incremental-compilation-impl-tests-for-ide-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_kotlin_build_common_tests.xml b/.idea/libraries/kotlinc_kotlin_build_common_tests.xml index 9f489f5b0ca1..976d45960f70 100644 --- a/.idea/libraries/kotlinc_kotlin_build_common_tests.xml +++ b/.idea/libraries/kotlinc_kotlin_build_common_tests.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.kotlin-build-common-tests" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-build-common-tests-for-ide:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-build-common-tests-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-build-common-tests-for-ide/1.6.20-RC-release-227/kotlin-build-common-tests-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-build-common-tests-for-ide/1.6.20-release-285/kotlin-build-common-tests-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-build-common-tests-for-ide/1.6.20-RC-release-227/kotlin-build-common-tests-for-ide-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-build-common-tests-for-ide/1.6.20-release-285/kotlin-build-common-tests-for-ide-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_kotlin_compiler_cli.xml b/.idea/libraries/kotlinc_kotlin_compiler_cli.xml index ebafd2200ea4..c1a7c59674ff 100644 --- a/.idea/libraries/kotlinc_kotlin_compiler_cli.xml +++ b/.idea/libraries/kotlinc_kotlin_compiler_cli.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.kotlin-compiler-cli" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-compiler-cli-for-ide:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-compiler-cli-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-compiler-cli-for-ide/1.6.20-RC-release-227/kotlin-compiler-cli-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-compiler-cli-for-ide/1.6.20-release-285/kotlin-compiler-cli-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-compiler-cli-for-ide/1.6.20-RC-release-227/kotlin-compiler-cli-for-ide-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-compiler-cli-for-ide/1.6.20-release-285/kotlin-compiler-cli-for-ide-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_kotlin_compiler_common.xml b/.idea/libraries/kotlinc_kotlin_compiler_common.xml index 14ccda0cac49..c1cac9e9f835 100644 --- a/.idea/libraries/kotlinc_kotlin_compiler_common.xml +++ b/.idea/libraries/kotlinc_kotlin_compiler_common.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.kotlin-compiler-common" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-compiler-common-for-ide:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-compiler-common-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-compiler-common-for-ide/1.6.20-RC-release-227/kotlin-compiler-common-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-compiler-common-for-ide/1.6.20-release-285/kotlin-compiler-common-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-compiler-common-for-ide/1.6.20-RC-release-227/kotlin-compiler-common-for-ide-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-compiler-common-for-ide/1.6.20-release-285/kotlin-compiler-common-for-ide-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_kotlin_compiler_fe10.xml b/.idea/libraries/kotlinc_kotlin_compiler_fe10.xml index 99e3bac116ff..1685cc09b4f2 100644 --- a/.idea/libraries/kotlinc_kotlin_compiler_fe10.xml +++ b/.idea/libraries/kotlinc_kotlin_compiler_fe10.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.kotlin-compiler-fe10" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-compiler-fe10-for-ide:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-compiler-fe10-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-compiler-fe10-for-ide/1.6.20-RC-release-227/kotlin-compiler-fe10-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-compiler-fe10-for-ide/1.6.20-release-285/kotlin-compiler-fe10-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-compiler-fe10-for-ide/1.6.20-RC-release-227/kotlin-compiler-fe10-for-ide-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-compiler-fe10-for-ide/1.6.20-release-285/kotlin-compiler-fe10-for-ide-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_kotlin_compiler_fir.xml b/.idea/libraries/kotlinc_kotlin_compiler_fir.xml index 87a654072ca0..92cfa2d679df 100644 --- a/.idea/libraries/kotlinc_kotlin_compiler_fir.xml +++ b/.idea/libraries/kotlinc_kotlin_compiler_fir.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.kotlin-compiler-fir" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-compiler-fir-for-ide:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-compiler-fir-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-compiler-fir-for-ide/1.6.20-RC-release-227/kotlin-compiler-fir-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-compiler-fir-for-ide/1.6.20-release-285/kotlin-compiler-fir-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-compiler-fir-for-ide/1.6.20-RC-release-227/kotlin-compiler-fir-for-ide-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-compiler-fir-for-ide/1.6.20-release-285/kotlin-compiler-fir-for-ide-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_kotlin_compiler_ir.xml b/.idea/libraries/kotlinc_kotlin_compiler_ir.xml index a82fa5bcc9db..6147a6f4c8d7 100644 --- a/.idea/libraries/kotlinc_kotlin_compiler_ir.xml +++ b/.idea/libraries/kotlinc_kotlin_compiler_ir.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.kotlin-compiler-ir" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-compiler-ir-for-ide:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-compiler-ir-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-compiler-ir-for-ide/1.6.20-RC-release-227/kotlin-compiler-ir-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-compiler-ir-for-ide/1.6.20-release-285/kotlin-compiler-ir-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-compiler-ir-for-ide/1.6.20-RC-release-227/kotlin-compiler-ir-for-ide-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-compiler-ir-for-ide/1.6.20-release-285/kotlin-compiler-ir-for-ide-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_kotlin_compiler_testdata.xml b/.idea/libraries/kotlinc_kotlin_compiler_testdata.xml index bfefd5a42de1..9b396d723951 100644 --- a/.idea/libraries/kotlinc_kotlin_compiler_testdata.xml +++ b/.idea/libraries/kotlinc_kotlin_compiler_testdata.xml @@ -1,8 +1,8 @@ <component name="libraryTable"> <library name="kotlinc.kotlin-compiler-testdata" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-compiler-testdata-for-ide:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-compiler-testdata-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-compiler-testdata-for-ide/1.6.20-RC-release-227/kotlin-compiler-testdata-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-compiler-testdata-for-ide/1.6.20-release-285/kotlin-compiler-testdata-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES /> diff --git a/.idea/libraries/kotlinc_kotlin_compiler_tests.xml b/.idea/libraries/kotlinc_kotlin_compiler_tests.xml index 05865ef799a5..c028e39c7ca8 100644 --- a/.idea/libraries/kotlinc_kotlin_compiler_tests.xml +++ b/.idea/libraries/kotlinc_kotlin_compiler_tests.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.kotlin-compiler-tests" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-compiler-tests-for-ide:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-compiler-tests-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-compiler-tests-for-ide/1.6.20-RC-release-227/kotlin-compiler-tests-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-compiler-tests-for-ide/1.6.20-release-285/kotlin-compiler-tests-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-compiler-tests-for-ide/1.6.20-RC-release-227/kotlin-compiler-tests-for-ide-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-compiler-tests-for-ide/1.6.20-release-285/kotlin-compiler-tests-for-ide-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_kotlin_dist.xml b/.idea/libraries/kotlinc_kotlin_dist.xml index 420a8d61d1ff..97ead1d66b7f 100644 --- a/.idea/libraries/kotlinc_kotlin_dist.xml +++ b/.idea/libraries/kotlinc_kotlin_dist.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.kotlin-dist" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-dist-for-ide:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-dist-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-dist-for-ide/1.6.20-RC-release-227/kotlin-dist-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-dist-for-ide/1.6.20-release-285/kotlin-dist-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-dist-for-ide/1.6.20-RC-release-227/kotlin-dist-for-ide-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-dist-for-ide/1.6.20-release-285/kotlin-dist-for-ide-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_kotlin_gradle_statistics.xml b/.idea/libraries/kotlinc_kotlin_gradle_statistics.xml index 96e8a985f4c5..5d3188c3c5ad 100644 --- a/.idea/libraries/kotlinc_kotlin_gradle_statistics.xml +++ b/.idea/libraries/kotlinc_kotlin_gradle_statistics.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.kotlin-gradle-statistics" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-gradle-statistics-for-ide:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-gradle-statistics-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-gradle-statistics-for-ide/1.6.20-RC-release-227/kotlin-gradle-statistics-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-gradle-statistics-for-ide/1.6.20-release-285/kotlin-gradle-statistics-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-gradle-statistics-for-ide/1.6.20-RC-release-227/kotlin-gradle-statistics-for-ide-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-gradle-statistics-for-ide/1.6.20-release-285/kotlin-gradle-statistics-for-ide-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_kotlin_jps_common.xml b/.idea/libraries/kotlinc_kotlin_jps_common.xml index 9ca842068a80..c2c1ea42a218 100644 --- a/.idea/libraries/kotlinc_kotlin_jps_common.xml +++ b/.idea/libraries/kotlinc_kotlin_jps_common.xml @@ -1,13 +1,12 @@ -<?xml version="1.0" encoding="UTF-8"?> <component name="libraryTable"> <library name="kotlinc.kotlin-jps-common" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-jps-common-for-ide:1.6.20-RC-release-227" /> + <properties maven-id="org.jetbrains.kotlin:kotlin-jps-common-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-jps-common-for-ide/1.6.20-RC-release-227/kotlin-jps-common-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-jps-common-for-ide/1.6.20-release-285/kotlin-jps-common-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-jps-common-for-ide/1.6.20-RC-release-227/kotlin-jps-common-for-ide-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-jps-common-for-ide/1.6.20-release-285/kotlin-jps-common-for-ide-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_kotlin_jps_plugin_classpath.xml b/.idea/libraries/kotlinc_kotlin_jps_plugin_classpath.xml index b025454f038c..69b9fc4ad2dd 100644 --- a/.idea/libraries/kotlinc_kotlin_jps_plugin_classpath.xml +++ b/.idea/libraries/kotlinc_kotlin_jps_plugin_classpath.xml @@ -1,13 +1,12 @@ -<?xml version="1.0" encoding="UTF-8"?> <component name="libraryTable"> <library name="kotlinc.kotlin-jps-plugin-classpath" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-jps-plugin-classpath:1.6.20-RC-release-227" /> + <properties maven-id="org.jetbrains.kotlin:kotlin-jps-plugin-classpath:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-jps-plugin-classpath/1.6.20-RC-release-227/kotlin-jps-plugin-classpath-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-jps-plugin-classpath/1.6.20-release-285/kotlin-jps-plugin-classpath-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-jps-plugin-classpath/1.6.20-RC-release-227/kotlin-jps-plugin-classpath-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-jps-plugin-classpath/1.6.20-release-285/kotlin-jps-plugin-classpath-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_kotlin_reflect.xml b/.idea/libraries/kotlinc_kotlin_reflect.xml index 2925967be532..0d37ca18e6b9 100644 --- a/.idea/libraries/kotlinc_kotlin_reflect.xml +++ b/.idea/libraries/kotlinc_kotlin_reflect.xml @@ -1,17 +1,16 @@ -<?xml version="1.0" encoding="UTF-8"?> <component name="libraryTable"> <library name="kotlinc.kotlin-reflect" type="repository"> - <properties maven-id="org.jetbrains.kotlin:kotlin-reflect:1.6.20-RC-release-227"> + <properties maven-id="org.jetbrains.kotlin:kotlin-reflect:1.6.20-release-285"> <exclude> <dependency maven-id="org.jetbrains.kotlin:kotlin-stdlib" /> </exclude> </properties> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-reflect/1.6.20-RC-release-227/kotlin-reflect-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-reflect/1.6.20-release-285/kotlin-reflect-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-reflect/1.6.20-RC-release-227/kotlin-reflect-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-reflect/1.6.20-release-285/kotlin-reflect-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_kotlin_scripting_common.xml b/.idea/libraries/kotlinc_kotlin_scripting_common.xml index 7c0d60ecdb8d..134b67cee1e6 100644 --- a/.idea/libraries/kotlinc_kotlin_scripting_common.xml +++ b/.idea/libraries/kotlinc_kotlin_scripting_common.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.kotlin-scripting-common" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-scripting-common:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-scripting-common:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-scripting-common/1.6.20-RC-release-227/kotlin-scripting-common-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-scripting-common/1.6.20-release-285/kotlin-scripting-common-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-scripting-common/1.6.20-RC-release-227/kotlin-scripting-common-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-scripting-common/1.6.20-release-285/kotlin-scripting-common-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_kotlin_scripting_compiler_impl.xml b/.idea/libraries/kotlinc_kotlin_scripting_compiler_impl.xml index 07f9b653cc09..78d48a6d91fc 100644 --- a/.idea/libraries/kotlinc_kotlin_scripting_compiler_impl.xml +++ b/.idea/libraries/kotlinc_kotlin_scripting_compiler_impl.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.kotlin-scripting-compiler-impl" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-scripting-compiler-impl:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-scripting-compiler-impl:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-scripting-compiler-impl/1.6.20-RC-release-227/kotlin-scripting-compiler-impl-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-scripting-compiler-impl/1.6.20-release-285/kotlin-scripting-compiler-impl-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-scripting-compiler-impl/1.6.20-RC-release-227/kotlin-scripting-compiler-impl-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-scripting-compiler-impl/1.6.20-release-285/kotlin-scripting-compiler-impl-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_kotlin_scripting_jvm.xml b/.idea/libraries/kotlinc_kotlin_scripting_jvm.xml index 9786de445360..5c6df4c2b335 100644 --- a/.idea/libraries/kotlinc_kotlin_scripting_jvm.xml +++ b/.idea/libraries/kotlinc_kotlin_scripting_jvm.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.kotlin-scripting-jvm" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-scripting-jvm:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-scripting-jvm:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-scripting-jvm/1.6.20-RC-release-227/kotlin-scripting-jvm-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-scripting-jvm/1.6.20-release-285/kotlin-scripting-jvm-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-scripting-jvm/1.6.20-RC-release-227/kotlin-scripting-jvm-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-scripting-jvm/1.6.20-release-285/kotlin-scripting-jvm-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_kotlin_stdlib.xml b/.idea/libraries/kotlinc_kotlin_stdlib.xml index bda74e785c79..6977dc5ce0c5 100644 --- a/.idea/libraries/kotlinc_kotlin_stdlib.xml +++ b/.idea/libraries/kotlinc_kotlin_stdlib.xml @@ -1,6 +1,6 @@ <component name="libraryTable"> <library name="kotlinc.kotlin-stdlib" type="repository"> - <properties maven-id="org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.20-RC-release-227" > + <properties maven-id="org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.20-release-285"> <exclude> <dependency maven-id="org.jetbrains:annotations" /> </exclude> @@ -9,17 +9,17 @@ <root url="file://$PROJECT_DIR$/lib/annotations/kotlin" /> </ANNOTATIONS> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.6.20-RC-release-227/kotlin-stdlib-jdk8-1.6.20-RC-release-227.jar!/" /> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/1.6.20-RC-release-227/kotlin-stdlib-1.6.20-RC-release-227.jar!/" /> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-common/1.6.20-RC-release-227/kotlin-stdlib-common-1.6.20-RC-release-227.jar!/" /> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.6.20-RC-release-227/kotlin-stdlib-jdk7-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.6.20-release-285/kotlin-stdlib-jdk8-1.6.20-release-285.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/1.6.20-release-285/kotlin-stdlib-1.6.20-release-285.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-common/1.6.20-release-285/kotlin-stdlib-common-1.6.20-release-285.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.6.20-release-285/kotlin-stdlib-jdk7-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.6.20-RC-release-227/kotlin-stdlib-jdk8-1.6.20-RC-release-227-sources.jar!/" /> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/1.6.20-RC-release-227/kotlin-stdlib-1.6.20-RC-release-227-sources.jar!/" /> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-common/1.6.20-RC-release-227/kotlin-stdlib-common-1.6.20-RC-release-227-sources.jar!/" /> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.6.20-RC-release-227/kotlin-stdlib-jdk7-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.6.20-release-285/kotlin-stdlib-jdk8-1.6.20-release-285-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/1.6.20-release-285/kotlin-stdlib-1.6.20-release-285-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-common/1.6.20-release-285/kotlin-stdlib-common-1.6.20-release-285-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.6.20-release-285/kotlin-stdlib-jdk7-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_kotlin_stdlib_minimal_for_test.xml b/.idea/libraries/kotlinc_kotlin_stdlib_minimal_for_test.xml index 9f7ba2425f0c..b5f84de2719b 100644 --- a/.idea/libraries/kotlinc_kotlin_stdlib_minimal_for_test.xml +++ b/.idea/libraries/kotlinc_kotlin_stdlib_minimal_for_test.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.kotlin-stdlib-minimal-for-test" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-stdlib-minimal-for-test-for-ide:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlin-stdlib-minimal-for-test-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-minimal-for-test-for-ide/1.6.20-RC-release-227/kotlin-stdlib-minimal-for-test-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-minimal-for-test-for-ide/1.6.20-release-285/kotlin-stdlib-minimal-for-test-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-minimal-for-test-for-ide/1.6.20-RC-release-227/kotlin-stdlib-minimal-for-test-for-ide-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-minimal-for-test-for-ide/1.6.20-release-285/kotlin-stdlib-minimal-for-test-for-ide-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_kotlinx_serialization_compiler_plugin.xml b/.idea/libraries/kotlinc_kotlinx_serialization_compiler_plugin.xml index c5e74078afb1..1594fde6621c 100644 --- a/.idea/libraries/kotlinc_kotlinx_serialization_compiler_plugin.xml +++ b/.idea/libraries/kotlinc_kotlinx_serialization_compiler_plugin.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.kotlinx-serialization-compiler-plugin" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlinx-serialization-compiler-plugin-for-ide:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:kotlinx-serialization-compiler-plugin-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlinx-serialization-compiler-plugin-for-ide/1.6.20-RC-release-227/kotlinx-serialization-compiler-plugin-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlinx-serialization-compiler-plugin-for-ide/1.6.20-release-285/kotlinx-serialization-compiler-plugin-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlinx-serialization-compiler-plugin-for-ide/1.6.20-RC-release-227/kotlinx-serialization-compiler-plugin-for-ide-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlinx-serialization-compiler-plugin-for-ide/1.6.20-release-285/kotlinx-serialization-compiler-plugin-for-ide-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_lombok_compiler_plugin.xml b/.idea/libraries/kotlinc_lombok_compiler_plugin.xml index 3757793a3627..3a74db8e0393 100644 --- a/.idea/libraries/kotlinc_lombok_compiler_plugin.xml +++ b/.idea/libraries/kotlinc_lombok_compiler_plugin.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.lombok-compiler-plugin" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:lombok-compiler-plugin-for-ide:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:lombok-compiler-plugin-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/lombok-compiler-plugin-for-ide/1.6.20-RC-release-227/lombok-compiler-plugin-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/lombok-compiler-plugin-for-ide/1.6.20-release-285/lombok-compiler-plugin-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/lombok-compiler-plugin-for-ide/1.6.20-RC-release-227/lombok-compiler-plugin-for-ide-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/lombok-compiler-plugin-for-ide/1.6.20-release-285/lombok-compiler-plugin-for-ide-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_low_level_api_fir.xml b/.idea/libraries/kotlinc_low_level_api_fir.xml index d2eab13f5c86..7c765f537aed 100644 --- a/.idea/libraries/kotlinc_low_level_api_fir.xml +++ b/.idea/libraries/kotlinc_low_level_api_fir.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.low-level-api-fir" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:low-level-api-fir-for-ide:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:low-level-api-fir-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/low-level-api-fir-for-ide/1.6.20-RC-release-227/low-level-api-fir-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/low-level-api-fir-for-ide/1.6.20-release-285/low-level-api-fir-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/low-level-api-fir-for-ide/1.6.20-RC-release-227/low-level-api-fir-for-ide-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/low-level-api-fir-for-ide/1.6.20-release-285/low-level-api-fir-for-ide-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_noarg_compiler_plugin.xml b/.idea/libraries/kotlinc_noarg_compiler_plugin.xml index bb66888fb19c..8432053801b6 100644 --- a/.idea/libraries/kotlinc_noarg_compiler_plugin.xml +++ b/.idea/libraries/kotlinc_noarg_compiler_plugin.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.noarg-compiler-plugin" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:noarg-compiler-plugin-for-ide:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:noarg-compiler-plugin-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/noarg-compiler-plugin-for-ide/1.6.20-RC-release-227/noarg-compiler-plugin-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/noarg-compiler-plugin-for-ide/1.6.20-release-285/noarg-compiler-plugin-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/noarg-compiler-plugin-for-ide/1.6.20-RC-release-227/noarg-compiler-plugin-for-ide-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/noarg-compiler-plugin-for-ide/1.6.20-release-285/noarg-compiler-plugin-for-ide-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_parcelize_compiler_plugin.xml b/.idea/libraries/kotlinc_parcelize_compiler_plugin.xml index 7941b98e224c..545efaa124e1 100644 --- a/.idea/libraries/kotlinc_parcelize_compiler_plugin.xml +++ b/.idea/libraries/kotlinc_parcelize_compiler_plugin.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.parcelize-compiler-plugin" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:parcelize-compiler-plugin-for-ide:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:parcelize-compiler-plugin-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/parcelize-compiler-plugin-for-ide/1.6.20-RC-release-227/parcelize-compiler-plugin-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/parcelize-compiler-plugin-for-ide/1.6.20-release-285/parcelize-compiler-plugin-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/parcelize-compiler-plugin-for-ide/1.6.20-RC-release-227/parcelize-compiler-plugin-for-ide-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/parcelize-compiler-plugin-for-ide/1.6.20-release-285/parcelize-compiler-plugin-for-ide-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_sam_with_receiver_compiler_plugin.xml b/.idea/libraries/kotlinc_sam_with_receiver_compiler_plugin.xml index 153808110d7c..030dea241eb6 100644 --- a/.idea/libraries/kotlinc_sam_with_receiver_compiler_plugin.xml +++ b/.idea/libraries/kotlinc_sam_with_receiver_compiler_plugin.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.sam-with-receiver-compiler-plugin" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:sam-with-receiver-compiler-plugin-for-ide:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:sam-with-receiver-compiler-plugin-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/sam-with-receiver-compiler-plugin-for-ide/1.6.20-RC-release-227/sam-with-receiver-compiler-plugin-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/sam-with-receiver-compiler-plugin-for-ide/1.6.20-release-285/sam-with-receiver-compiler-plugin-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/sam-with-receiver-compiler-plugin-for-ide/1.6.20-RC-release-227/sam-with-receiver-compiler-plugin-for-ide-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/sam-with-receiver-compiler-plugin-for-ide/1.6.20-release-285/sam-with-receiver-compiler-plugin-for-ide-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/kotlinc_symbol_light_classes.xml b/.idea/libraries/kotlinc_symbol_light_classes.xml index 37b8e56d9977..f0cdc4a42400 100644 --- a/.idea/libraries/kotlinc_symbol_light_classes.xml +++ b/.idea/libraries/kotlinc_symbol_light_classes.xml @@ -1,12 +1,12 @@ <component name="libraryTable"> <library name="kotlinc.symbol-light-classes" type="repository"> - <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:symbol-light-classes-for-ide:1.6.20-RC-release-227" /> + <properties include-transitive-deps="false" maven-id="org.jetbrains.kotlin:symbol-light-classes-for-ide:1.6.20-release-285" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/symbol-light-classes-for-ide/1.6.20-RC-release-227/symbol-light-classes-for-ide-1.6.20-RC-release-227.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/symbol-light-classes-for-ide/1.6.20-release-285/symbol-light-classes-for-ide-1.6.20-release-285.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/symbol-light-classes-for-ide/1.6.20-RC-release-227/symbol-light-classes-for-ide-1.6.20-RC-release-227-sources.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/symbol-light-classes-for-ide/1.6.20-release-285/symbol-light-classes-for-ide-1.6.20-release-285-sources.jar!/" /> </SOURCES> </library> </component>
\ No newline at end of file diff --git a/.idea/libraries/tips_pycharm_community.xml b/.idea/libraries/tips_pycharm_community.xml index 84fb87d30283..283376a8299c 100644 --- a/.idea/libraries/tips_pycharm_community.xml +++ b/.idea/libraries/tips_pycharm_community.xml @@ -1,8 +1,8 @@ <component name="libraryTable"> <library name="tips-pycharm-community" type="repository"> - <properties maven-id="com.jetbrains.intellij.documentation:tips-pycharm-community:213.17" /> + <properties maven-id="com.jetbrains.intellij.documentation:tips-pycharm-community:221.18" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/com/jetbrains/intellij/documentation/tips-pycharm-community/213.17/tips-pycharm-community-213.17.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/com/jetbrains/intellij/documentation/tips-pycharm-community/221.18/tips-pycharm-community-221.18.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES /> diff --git a/build.txt b/build.txt index a1edc7c9327f..5046b5976f2a 100644 --- a/build.txt +++ b/build.txt @@ -1 +1 @@ -221.5080.9.2211.SNAPSHOT +221.5080.210.2211.SNAPSHOT diff --git a/build/dependencies/gradle.properties b/build/dependencies/gradle.properties index f448b4a0f38e..cd82fb422097 100644 --- a/build/dependencies/gradle.properties +++ b/build/dependencies/gradle.properties @@ -3,7 +3,7 @@ VulnerabilitySearchPluginVersion=0.7.19 bundledMavenVersion=3.8.1 gradleApiVersion=5.2.1 -jdkBuild=11_0_14_1b2043.14 +jdkBuild=11_0_14_1b2043.25 rkernelVersion=master.214 -runtimeBuild=11_0_14_1b2043.14 +runtimeBuild=11_0_14_1b2043.25 zkmVersion=17.0.1 diff --git a/build/groovy/org/jetbrains/intellij/build/BaseIdeaProperties.groovy b/build/groovy/org/jetbrains/intellij/build/BaseIdeaProperties.groovy index 36af63abc1e3..3e8b6c30a453 100644 --- a/build/groovy/org/jetbrains/intellij/build/BaseIdeaProperties.groovy +++ b/build/groovy/org/jetbrains/intellij/build/BaseIdeaProperties.groovy @@ -104,6 +104,7 @@ abstract class BaseIdeaProperties extends JetBrainsProductProperties { "lib/annotations.jar" : "1.6", // JAR contains class files for Java 1.8 and 11 (several modules packed into it) "lib/util.jar!/com/intellij/serialization/" : "1.8", + "lib/util_rt.jar" : "1.6", "lib/external-system-rt.jar" : "1.6", "plugins/coverage/lib/coverage_rt.jar" : "1.6", "plugins/javaFX/lib/rt/sceneBuilderBridge.jar" : "11", diff --git a/build/groovy/org/jetbrains/intellij/build/CommunityStandaloneJpsBuilder.groovy b/build/groovy/org/jetbrains/intellij/build/CommunityStandaloneJpsBuilder.groovy index 39c0c23900a6..57e327a0c657 100644 --- a/build/groovy/org/jetbrains/intellij/build/CommunityStandaloneJpsBuilder.groovy +++ b/build/groovy/org/jetbrains/intellij/build/CommunityStandaloneJpsBuilder.groovy @@ -27,13 +27,18 @@ final class CommunityStandaloneJpsBuilder { new LayoutBuilder(buildContext).process(targetDir, projectStructureMapping, copyFiles) { zip(getZipName(buildNumber)) { jar("util.jar") { - module("intellij.platform.util.rt") module("intellij.platform.util") module("intellij.platform.util.classLoader") module("intellij.platform.util.text.matching") module("intellij.platform.util.base") module("intellij.platform.util.xmlDom") module("intellij.platform.tracing.rt") + module("intellij.platform.util.diff") + module("intellij.platform.util.rt.java8") + } + + jar("util_rt.jar") { + module("intellij.platform.util.rt") } jar("jps-launcher.jar") { diff --git a/build/tasks/src/org/jetbrains/intellij/build/tasks/trace.kt b/build/tasks/src/org/jetbrains/intellij/build/tasks/trace.kt index 42e807fc9145..b9802e5760a1 100644 --- a/build/tasks/src/org/jetbrains/intellij/build/tasks/trace.kt +++ b/build/tasks/src/org/jetbrains/intellij/build/tasks/trace.kt @@ -12,7 +12,7 @@ import java.util.concurrent.Callable import java.util.concurrent.ForkJoinTask import java.util.function.Supplier -internal val tracer: Tracer by lazy(LazyThreadSafetyMode.NONE) { GlobalOpenTelemetry.getTracer("build-script") } +internal val tracer: Tracer by lazy { GlobalOpenTelemetry.getTracer("build-script") } fun <T> createTask(spanBuilder: SpanBuilder, task: Supplier<T>): ForkJoinTask<T> { val context = Context.current() diff --git a/build/tests/testSrc/org/jetbrains/intellij/build/IdeaCommunityBuildTest.kt b/build/tests/testSrc/org/jetbrains/intellij/build/IdeaCommunityBuildTest.kt index 6f33a941517e..92b516fab3f7 100644 --- a/build/tests/testSrc/org/jetbrains/intellij/build/IdeaCommunityBuildTest.kt +++ b/build/tests/testSrc/org/jetbrains/intellij/build/IdeaCommunityBuildTest.kt @@ -11,9 +11,9 @@ class IdeaCommunityBuildTest { val homePath = PathManager.getHomePathFor(javaClass)!! val communityHomePath = "$homePath/community" runTestBuild( - homePath = communityHomePath, communityHomePath = communityHomePath, + homePath = communityHomePath, + communityHomePath = communityHomePath, productProperties = IdeaCommunityProperties(communityHomePath), - buildTools = ProprietaryBuildTools.DUMMY ) { it.projectClassesOutputDirectory = System.getProperty(BuildOptions.PROJECT_CLASSES_OUTPUT_DIRECTORY_PROPERTY) ?: "$homePath/out/classes" diff --git a/community-resources/src/idea/IdeaApplicationInfo.xml b/community-resources/src/idea/IdeaApplicationInfo.xml index c943466534a7..259c5bbd032c 100644 --- a/community-resources/src/idea/IdeaApplicationInfo.xml +++ b/community-resources/src/idea/IdeaApplicationInfo.xml @@ -1,9 +1,9 @@ <component xmlns="http://jetbrains.org/intellij/schema/application-info" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jetbrains.org/intellij/schema/application-info http://jetbrains.org/intellij/schema/ApplicationInfo.xsd"> - <version major="2022" minor="1" eap="true"/> + <version major="2022" minor="1"/> <company name="JetBrains s.r.o." url="https://www.jetbrains.com"/> - <build number="IC-__BUILD__" date="__BUILD_DATE__"/> <!--majorReleaseDate="20170321"--> + <build number="IC-__BUILD__" date="__BUILD_DATE__" majorReleaseDate="20220412" /> <logo url="/idea_community_logo.png" textcolor="ffffff" progressColor="ffae00" progressY="396" progressHeight="4" /> <about url="/idea_community_about.png" foreground="ffffff" copyrightForeground="ffffff" linkColor="095fdc" logoX="540" logoY="300" logoW="100" logoH="100"/> <icon ico="idea_CE.ico" svg="/idea-ce.svg" svg-small="/idea-ce_16.svg"/> diff --git a/community-resources/src/idea_community_logo.png b/community-resources/src/idea_community_logo.png Binary files differindex 11fa356176f3..bdcd17724cfd 100644 --- a/community-resources/src/idea_community_logo.png +++ b/community-resources/src/idea_community_logo.png diff --git a/community-resources/src/idea_community_logo@2x.png b/community-resources/src/idea_community_logo@2x.png Binary files differindex f8f4b08e62ac..a2f29bdf8f5f 100644 --- a/community-resources/src/idea_community_logo@2x.png +++ b/community-resources/src/idea_community_logo@2x.png diff --git a/java/compiler/impl/src/com/intellij/compiler/impl/CompileDriver.java b/java/compiler/impl/src/com/intellij/compiler/impl/CompileDriver.java index a467cba3fed5..0e6a7f8e9bc1 100644 --- a/java/compiler/impl/src/com/intellij/compiler/impl/CompileDriver.java +++ b/java/compiler/impl/src/com/intellij/compiler/impl/CompileDriver.java @@ -100,7 +100,7 @@ public final class CompileDriver { startup(scope, false, false, withModalProgress, callback, null); } else { - callback.finished(true, 0, 0, DummyCompileContext.create(myProject)); + SwingUtilities.invokeLater(() -> callback.finished(true, 0, 0, DummyCompileContext.create(myProject))); } } @@ -445,7 +445,7 @@ public final class CompileDriver { final ProgressIndicator indicator = compileContext.getProgressIndicator(); if (indicator.isCanceled() || myProject.isDisposed()) { if (callback != null) { - callback.finished(true, 0, 0, compileContext); + SwingUtilities.invokeLater(() -> callback.finished(true, 0, 0, compileContext)); } return; } diff --git a/java/execution/impl/src/com/intellij/execution/application/JvmMainMethodRunConfigurationOptions.kt b/java/execution/impl/src/com/intellij/execution/application/JvmMainMethodRunConfigurationOptions.kt index ba3c45c2ec19..e26232db522d 100644 --- a/java/execution/impl/src/com/intellij/execution/application/JvmMainMethodRunConfigurationOptions.kt +++ b/java/execution/impl/src/com/intellij/execution/application/JvmMainMethodRunConfigurationOptions.kt @@ -16,7 +16,7 @@ open class JvmMainMethodRunConfigurationOptions : JvmConfigurationOptions() { open var workingDirectory by string() @get:OptionTag("INCLUDE_PROVIDED_SCOPE") - var isIncludeProvidedScope by property(false) + open var isIncludeProvidedScope by property(false) @get:OptionTag("PASS_PARENT_ENVS") var isPassParentEnv by property(true) diff --git a/java/idea-ui/resources/assets/ignore/gradle.gitignore.txt b/java/idea-ui/resources/assets/ignore/gradle.gitignore.txt index ca6d52bffb10..b63da4551b2e 100644 --- a/java/idea-ui/resources/assets/ignore/gradle.gitignore.txt +++ b/java/idea-ui/resources/assets/ignore/gradle.gitignore.txt @@ -6,6 +6,8 @@ build/ ### IntelliJ IDEA ### .idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml .idea/libraries/ *.iws *.iml @@ -35,3 +37,6 @@ bin/ ### VS Code ### .vscode/ + +### Mac OS ### +.DS_Store
\ No newline at end of file diff --git a/java/idea-ui/resources/assets/ignore/intellij.gitignore.txt b/java/idea-ui/resources/assets/ignore/intellij.gitignore.txt index f4a532972411..f68d1099657e 100644 --- a/java/idea-ui/resources/assets/ignore/intellij.gitignore.txt +++ b/java/idea-ui/resources/assets/ignore/intellij.gitignore.txt @@ -24,3 +24,6 @@ bin/ ### VS Code ### .vscode/ + +### Mac OS ### +.DS_Store
\ No newline at end of file diff --git a/java/idea-ui/resources/assets/ignore/maven.gitignore.txt b/java/idea-ui/resources/assets/ignore/maven.gitignore.txt index a809267a5ea3..5ff6309b7199 100644 --- a/java/idea-ui/resources/assets/ignore/maven.gitignore.txt +++ b/java/idea-ui/resources/assets/ignore/maven.gitignore.txt @@ -5,6 +5,8 @@ target/ ### IntelliJ IDEA ### .idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml .idea/libraries/ *.iws *.iml @@ -31,3 +33,6 @@ build/ ### VS Code ### .vscode/ + +### Mac OS ### +.DS_Store
\ No newline at end of file diff --git a/java/idea-ui/src/com/intellij/ide/impl/NewProjectUtil.java b/java/idea-ui/src/com/intellij/ide/impl/NewProjectUtil.java index cb8bcd047445..6976393df367 100644 --- a/java/idea-ui/src/com/intellij/ide/impl/NewProjectUtil.java +++ b/java/idea-ui/src/com/intellij/ide/impl/NewProjectUtil.java @@ -37,6 +37,7 @@ import com.intellij.openapi.vfs.VfsUtilCore; import com.intellij.openapi.wm.ToolWindow; import com.intellij.openapi.wm.ToolWindowId; import com.intellij.openapi.wm.ToolWindowManager; +import com.intellij.util.TimeoutUtil; import com.intellij.util.ui.UIUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -64,22 +65,22 @@ public final class NewProjectUtil { Runnable warmUp = () -> ProjectManager.getInstance().getDefaultProject(); // warm-up components boolean proceed = ProgressManager.getInstance().runProcessWithProgressSynchronously(warmUp, title, true, null); - StructuredIdeActivity activity = null; + long time = 0; + WizardContext context = wizard.getWizardContext(); if (isNewWizard()) { - WizardContext context = wizard.getWizardContext(); - activity = NewProjectWizardCollector.logStarted(context.getProject()); + time = System.nanoTime(); NewProjectWizardCollector.logOpen(context); } if (proceed && wizard.showAndGet()) { createFromWizard(wizard); - if (isNewWizard() && activity != null) { - NewProjectWizardCollector.logFinished(activity, true); + if (isNewWizard()) { + NewProjectWizardCollector.logFinish(context, true, TimeoutUtil.getDurationMillis(time)); } return; } - if (isNewWizard() && activity != null) { - NewProjectWizardCollector.logFinished(activity, false); + if (isNewWizard()) { + NewProjectWizardCollector.logFinish(context, false, TimeoutUtil.getDurationMillis(time)); } } diff --git a/java/idea-ui/src/com/intellij/ide/projectWizard/ProjectTypeStep.java b/java/idea-ui/src/com/intellij/ide/projectWizard/ProjectTypeStep.java index 91a498634420..f9764777defc 100644 --- a/java/idea-ui/src/com/intellij/ide/projectWizard/ProjectTypeStep.java +++ b/java/idea-ui/src/com/intellij/ide/projectWizard/ProjectTypeStep.java @@ -558,7 +558,7 @@ public final class ProjectTypeStep extends ModuleWizardStep implements SettingsS } NewProjectWizardCollector.logGeneratorSelected(myContext, builder.getClass()); - NewProjectWizardCollector.logScreen(myContext, 1); + myContext.setScreen(1); showCard(card); diff --git a/java/idea-ui/src/com/intellij/ide/starters/local/StarterModuleBuilder.kt b/java/idea-ui/src/com/intellij/ide/starters/local/StarterModuleBuilder.kt index 9af932ed0eff..8addd910c5d5 100644 --- a/java/idea-ui/src/com/intellij/ide/starters/local/StarterModuleBuilder.kt +++ b/java/idea-ui/src/com/intellij/ide/starters/local/StarterModuleBuilder.kt @@ -360,7 +360,7 @@ abstract class StarterModuleBuilder : ModuleBuilder() { if (starterContext.gitIntegration) { runBackgroundableTask(IdeBundle.message("progress.title.creating.git.repository"), module.project) { - GitRepositoryInitializer.getInstance()?.initRepository(module.project, moduleContentRoot) + GitRepositoryInitializer.getInstance()?.initRepository(module.project, moduleContentRoot, true) } } diff --git a/java/idea-ui/src/com/intellij/ide/starters/local/wizard/StarterInitialStep.kt b/java/idea-ui/src/com/intellij/ide/starters/local/wizard/StarterInitialStep.kt index d84bef920b1a..88e808eb0e2c 100644 --- a/java/idea-ui/src/com/intellij/ide/starters/local/wizard/StarterInitialStep.kt +++ b/java/idea-ui/src/com/intellij/ide/starters/local/wizard/StarterInitialStep.kt @@ -4,6 +4,7 @@ package com.intellij.ide.starters.local.wizard import com.intellij.ide.starters.JavaStartersBundle import com.intellij.ide.starters.local.* import com.intellij.ide.starters.shared.* +import com.intellij.ide.wizard.withVisualPadding import com.intellij.openapi.Disposable import com.intellij.openapi.application.PathManager import com.intellij.openapi.application.impl.ApplicationInfoImpl diff --git a/java/idea-ui/src/com/intellij/ide/starters/local/wizard/StarterLibrariesStep.kt b/java/idea-ui/src/com/intellij/ide/starters/local/wizard/StarterLibrariesStep.kt index f8023da16350..a6aa414648e6 100644 --- a/java/idea-ui/src/com/intellij/ide/starters/local/wizard/StarterLibrariesStep.kt +++ b/java/idea-ui/src/com/intellij/ide/starters/local/wizard/StarterLibrariesStep.kt @@ -8,6 +8,7 @@ import com.intellij.ide.starters.shared.* import com.intellij.ide.starters.shared.ui.LibraryDescriptionPanel import com.intellij.ide.starters.shared.ui.SelectedLibrariesPanel import com.intellij.ide.util.projectWizard.ModuleWizardStep +import com.intellij.ide.wizard.withVisualPadding import com.intellij.openapi.ui.ComboBox import com.intellij.openapi.ui.DialogPanel import com.intellij.openapi.util.NlsSafe diff --git a/java/idea-ui/src/com/intellij/ide/starters/remote/WebStarterModuleBuilder.kt b/java/idea-ui/src/com/intellij/ide/starters/remote/WebStarterModuleBuilder.kt index ac4e778b321c..0a5114a71ebd 100644 --- a/java/idea-ui/src/com/intellij/ide/starters/remote/WebStarterModuleBuilder.kt +++ b/java/idea-ui/src/com/intellij/ide/starters/remote/WebStarterModuleBuilder.kt @@ -266,7 +266,7 @@ abstract class WebStarterModuleBuilder : ModuleBuilder() { ?: throw IllegalStateException("Module root not found") runBackgroundableTask(IdeBundle.message("progress.title.creating.git.repository"), module.project) { - GitRepositoryInitializer.getInstance()?.initRepository(module.project, moduleContentRoot) + GitRepositoryInitializer.getInstance()?.initRepository(module.project, moduleContentRoot, true) } } diff --git a/java/idea-ui/src/com/intellij/ide/starters/remote/wizard/WebStarterInitialStep.kt b/java/idea-ui/src/com/intellij/ide/starters/remote/wizard/WebStarterInitialStep.kt index 61c374923efb..60793e9f6a18 100644 --- a/java/idea-ui/src/com/intellij/ide/starters/remote/wizard/WebStarterInitialStep.kt +++ b/java/idea-ui/src/com/intellij/ide/starters/remote/wizard/WebStarterInitialStep.kt @@ -10,6 +10,7 @@ import com.intellij.ide.starters.shared.* import com.intellij.ide.starters.shared.ValidationFunctions.* import com.intellij.ide.util.PropertiesComponent import com.intellij.ide.wizard.AbstractWizard +import com.intellij.ide.wizard.withVisualPadding import com.intellij.openapi.Disposable import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.ModalityState diff --git a/java/idea-ui/src/com/intellij/ide/starters/remote/wizard/WebStarterLibrariesStep.kt b/java/idea-ui/src/com/intellij/ide/starters/remote/wizard/WebStarterLibrariesStep.kt index 5876b94c0484..e482723f13c6 100644 --- a/java/idea-ui/src/com/intellij/ide/starters/remote/wizard/WebStarterLibrariesStep.kt +++ b/java/idea-ui/src/com/intellij/ide/starters/remote/wizard/WebStarterLibrariesStep.kt @@ -11,6 +11,7 @@ import com.intellij.ide.starters.shared.ui.SelectedLibrariesPanel import com.intellij.ide.util.projectWizard.ModuleWizardStep import com.intellij.ide.util.projectWizard.WizardContext import com.intellij.ide.wizard.AbstractWizard +import com.intellij.ide.wizard.withVisualPadding import com.intellij.openapi.Disposable import com.intellij.openapi.application.ModalityState import com.intellij.openapi.diagnostic.logger diff --git a/java/idea-ui/src/com/intellij/ide/starters/shared/FormUiUtil.kt b/java/idea-ui/src/com/intellij/ide/starters/shared/FormUiUtil.kt index 16771c258b48..ca6aeedb1c39 100644 --- a/java/idea-ui/src/com/intellij/ide/starters/shared/FormUiUtil.kt +++ b/java/idea-ui/src/com/intellij/ide/starters/shared/FormUiUtil.kt @@ -25,19 +25,6 @@ import javax.swing.event.DocumentEvent import javax.swing.tree.DefaultMutableTreeNode import javax.swing.tree.TreeNode -fun DialogPanel.withVisualPadding(topField: Boolean = false): DialogPanel { - if (Experiments.getInstance().isFeatureEnabled("new.project.wizard")) { - val top = if (topField) 20 else 15 - border = IdeBorderFactory.createEmptyBorder(JBInsets(top, 20, 20, 20)) - } - else { - val top = if (topField) 15 else 5 - border = IdeBorderFactory.createEmptyBorder(JBInsets(top, 5, 0, 5)) - } - - return this -} - internal fun gridConstraint(col: Int, row: Int): GridBagConstraints { return GridBagConstraints().apply { fill = GridBagConstraints.BOTH diff --git a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/AbstractProjectWizard.java b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/AbstractProjectWizard.java index 5000eba5c70d..106e22058ca9 100644 --- a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/AbstractProjectWizard.java +++ b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/AbstractProjectWizard.java @@ -259,7 +259,7 @@ public abstract class AbstractProjectWizard extends AbstractWizard<ModuleWizardS super.doNextAction(); if (isNewWizard()) { NewProjectWizardCollector.logNext(myWizardContext, -1); - NewProjectWizardCollector.logScreen(myWizardContext, 2); + myWizardContext.setScreen(2); } } diff --git a/java/java-features-trainer/resources/messages/JavaLessonsBundle.properties b/java/java-features-trainer/resources/messages/JavaLessonsBundle.properties index bca89e2ccf70..66088668657d 100644 --- a/java/java-features-trainer/resources/messages/JavaLessonsBundle.properties +++ b/java/java-features-trainer/resources/messages/JavaLessonsBundle.properties @@ -7,40 +7,40 @@ java.onboarding.module.description=A brief overview of the main features in {0}. java.onboarding.lesson.name=Get Acquainted with IDEA java.onboarding.change.ui.settings=For this lesson, IDEA changes some UI settings to the default state. \ Your preferences will be restored when you complete or exit the lesson. -java.onboarding.project.view.description=The <strong>Project view</strong> is one of the main tool windows. It contains the project directory, SDK-specific external libraries, and scratch files. Use the striped button to open it, and you will see a simple demo project. You can also open it by pressing {0}. +java.onboarding.project.view.description=The <strong>Project view</strong> is one of the main tool windows. It contains the project directory, SDK-specific external libraries, and scratch files. Click the striped button to preview the demo project content. You can also open it by pressing {0}. java.onboarding.balloon.project.view=Click to open the <strong>Project view</strong> java.onboarding.balloon.source.directory=Expand the {0} directory to view the project source files java.onboarding.balloon.open.file=Double-click to open {0} java.onboarding.balloon.open.learn.toolbar=Switch to the {0} tool window to continue this lesson java.onboarding.indexing.description=When you open a project for the first time, <ide/> scans the JDK and the project itself \ to collect details required for coding assistance. To continue, wait until indexing completes. -java.onboarding.context.menu=You have opened the demo, now let's run it. Click the one of the highlighted gutter icons to invoke the context menu. -java.onboarding.run.sample=Choose {0} or try the {1}. +java.onboarding.context.menu=You have opened the demo, now let's run it. Click one of the highlighted gutter icons to invoke the context menu. +java.onboarding.run.sample=Choose {0} or try {1}. java.onboarding.temporary.configuration.description=<ide/> has just created a temporary run configuration. You can find it in the Run toolbar. With this toolbar, you can execute popular running actions for the selected configuration, such as running {0}, debugging {1}, profiling code {2}, and running your code with coverage {3}. java.onboarding.balloon.click.here=Click here to set a breakpoint java.onboarding.toggle.breakpoint.1=You may notice that instead of the expected value of {0}, the {1} method returns {2}. \ Let''s stop at the return statement to debug the problematic code. -java.onboarding.toggle.breakpoint.2=Click the gutter in the highlighted area to set a breakpoint. +java.onboarding.toggle.breakpoint.2=Click the gutter within the highlighted area to set a breakpoint. java.onboarding.balloon.start.debugging=Click the icon to start debugging java.onboarding.start.debugging=Click the {0} icon to start the debugging process. java.onboarding.balloon.about.debug.panel=The {0} tool window provides {1,choice,0#a toolbar|1#toolbars} with various debugging actions. \ You can take the {2} lesson later to try them. java.onboarding.balloon.stop.debugging=Click the icon to stop debugging java.onboarding.stop.debugging=Let''s stop debugging. Click the {0} icon. -java.onboarding.type.division=Once you discovered the problem in the code, let''s fix it. Divide the resulting sum by the length of the values. \ +java.onboarding.type.division=Once you have discovered the problem in the code, let''s fix it. Divide the resulting sum by the length of the values. \ The lesson script inserts {0} already. java.onboarding.invoke.completion=Now let's type a dot to show all available completion options. -java.onboarding.choose.values.item=Now you can start typing {0} to reduce the completion list or just select this item and press {1}. +java.onboarding.choose.values.item=Now you can start typing {0} to reduce the completion list or select this item and press {1}. java.onboarding.invoke.completion.tip=<strong>Tip</strong>: <ide/> shows completion options automatically as you type. \ - Also you can press {0} to show completion items in any place of the code. + Also, you can press {0} to show completion items in any place of the code. java.onboarding.invoke.intention.for.warning.1=You have just fixed a bug, but you can make this code look even better. \ IDEA highlights and adds a yellow bulb to the code lines that can be improved. java.onboarding.invoke.intention.for.warning.2=Press {0} to preview the warnings and apply a quick fix. -java.onboarding.select.fix=Apply the first item: {0}. In this case <strong>for-each</strong> loop will make code easier to understand. +java.onboarding.select.fix=Apply the first item: {0}. In this case, the <strong>for-each</strong> loop will make code easier to understand. java.onboarding.invoke.intention.for.code=Intentions also save your time and make coding easier. Let''s use an intention to reformat string concatenation. \ Press {0} to show possible options. java.onboarding.apply.intention=Select {0} and press {1}. -java.onboarding.invoke.search.everywhere.1=While working in <ide/> you might want to search for files in your project, symbols, classes, or even IDE actions. In this lesson, let''s search for the {0} action to make the {1} string low-case. +java.onboarding.invoke.search.everywhere.1=While working in <ide/>, you might want to search for files in your project, symbols, classes, or even IDE actions. In this lesson, let''s search for the {0} action to make the {1} string low-case. java.onboarding.invoke.search.everywhere.2=Press {0} two times to open the {1} dialog. java.onboarding.search.everywhere.description=As you can see, the selected text, {0}, has been automatically copied into the input string. Let''s type {1} instead of {0}. java.onboarding.apply.action=Select the {0} action and press {1}. @@ -145,4 +145,5 @@ java.debug.workflow.rebuild=For big programs, rerun can take a long time. When y java.debug.workflow.confirm.hot.swap=Confirm the <strong>Hot Swap</strong> replacement. java.debug.workflow.no.confirmation=<strong>Hot Swap</strong> is done automatically in the background. You may see a corresponding message in the lower-left corner. java.debug.workflow.drop.frame=We patched our method, but right now we are still executing obsolete {0}, and it will throw the \ - exception again. Let''s drop the frame and return to the state before the {1} call. Click {2} the debug panel or press {3}. + exception again. Let''s drop the frame and return to the state before the {1} call. Click {2} near the top method in the stack frame or press {3}. +java.debug.workflow.invalid.drop=Oops, it seems that you performed an action that was not planned by the lesson. Please, restart the lesson. diff --git a/java/java-features-trainer/src/com/intellij/java/ift/lesson/run/JavaDebugLesson.kt b/java/java-features-trainer/src/com/intellij/java/ift/lesson/run/JavaDebugLesson.kt index 1be3fdf2d0ba..bb60cb9552f4 100644 --- a/java/java-features-trainer/src/com/intellij/java/ift/lesson/run/JavaDebugLesson.kt +++ b/java/java-features-trainer/src/com/intellij/java/ift/lesson/run/JavaDebugLesson.kt @@ -2,18 +2,21 @@ package com.intellij.java.ift.lesson.run import com.intellij.debugger.JavaDebuggerBundle +import com.intellij.debugger.engine.JavaStackFrame import com.intellij.debugger.settings.DebuggerSettings import com.intellij.icons.AllIcons import com.intellij.java.ift.JavaLessonsBundle import com.intellij.openapi.editor.LogicalPosition import com.intellij.openapi.options.OptionsBundle +import com.intellij.openapi.util.text.StringUtil import com.intellij.xdebugger.XDebuggerBundle -import training.dsl.LessonContext -import training.dsl.TaskTestContext -import training.dsl.highlightButtonById -import training.dsl.restoreChangedSettingsInformer +import com.intellij.xdebugger.XDebuggerManager +import training.dsl.* +import training.learn.CourseManager import training.learn.lesson.general.run.CommonDebugLesson +import training.statistic.LessonStartingWay import training.ui.LearningUiManager +import training.util.isToStringContains import javax.swing.JEditorPane class JavaDebugLesson : CommonDebugLesson("java.debug.workflow") { @@ -24,6 +27,7 @@ class JavaDebugLesson : CommonDebugLesson("java.debug.workflow") { override val configurationName: String = demoClassName override val sample = JavaRunLessonsUtils.demoSample override var logicalPosition: LogicalPosition = LogicalPosition(10, 6) + private val debugLineNumber = StringUtil.offsetToLineNumber(sample.text, sample.getPosition (2).startOffset) override val confNameForWatches: String = "Application" override val quickEvaluationArgument = "Integer.parseInt" @@ -32,7 +36,6 @@ class JavaDebugLesson : CommonDebugLesson("java.debug.workflow") { override val stepIntoDirectionToRight = true override fun LessonContext.applyProgramChangeTasks() { - if (isHotSwapDisabled()) { task { val feature = stateCheck { !isHotSwapDisabled() } @@ -88,12 +91,29 @@ class JavaDebugLesson : CommonDebugLesson("java.debug.workflow") { } } - highlightButtonById("Debugger.PopFrame") + task { + triggerAndBorderHighlight { usePulsation = true }.listItem { item -> + (item as? JavaStackFrame)?.descriptor.isToStringContains("extractNumber") + } + } - actionTask("Debugger.PopFrame") { - proposeModificationRestore(afterFixText) - JavaLessonsBundle.message("java.debug.workflow.drop.frame", code("extractNumber"), code("extractNumber"), - icon(AllIcons.Actions.PopFrame), action(it)) + task("Debugger.PopFrame") { + text(JavaLessonsBundle.message("java.debug.workflow.drop.frame", code("extractNumber"), code("extractNumber"), + icon(AllIcons.Actions.InlineDropFrame), action(it))) + stateCheck { + val currentSession = XDebuggerManager.getInstance(project).currentSession ?: return@stateCheck false + currentSession.currentPosition?.line == logicalPosition.line + } + proposeRestore { + val currentSession = XDebuggerManager.getInstance(project).currentSession + val line = currentSession?.currentPosition?.line + if (line == null || !(line == debugLineNumber || line == logicalPosition.line)) { + TaskContext.RestoreNotification(JavaLessonsBundle.message("java.debug.workflow.invalid.drop")) { + CourseManager.instance.openLesson(project, this@JavaDebugLesson, LessonStartingWay.RESTORE_LINK) + } + } else null + } + test { actions(it) } } } diff --git a/java/java-impl/src/META-INF/JavaPlugin.xml b/java/java-impl/src/META-INF/JavaPlugin.xml index 5c6c32373324..6873ddb00edf 100644 --- a/java/java-impl/src/META-INF/JavaPlugin.xml +++ b/java/java-impl/src/META-INF/JavaPlugin.xml @@ -1742,7 +1742,7 @@ implementationClass="com.intellij.codeInspection.javaDoc.JavadocDeclarationInspection" alternativeId="javadoc"/> <inspectionElementsMerger implementation="com.intellij.codeInspection.javaDoc.JavadocDeclarationMerger" /> <localInspection groupPath="Java" language="JAVA" shortName="JavadocBlankLines" bundle="messages.JavaBundle" key="inspection.javadoc.blank.lines.display.name" - groupKey="group.names.javadoc.issues" groupBundle="messages.InspectionsBundle" enabledByDefault="true" level="WARNING" + groupKey="group.names.javadoc.issues" groupBundle="messages.InspectionsBundle" enabledByDefault="false" level="WARNING" implementationClass="com.intellij.codeInspection.javaDoc.JavadocBlankLinesInspection" alternativeId="javadoc"/> <localInspection groupPath="Java" language="JAVA" shortName="JavadocLinkAsPlainText" bundle="messages.JavaBundle" key="inspection.javadoc.link.as.plain.text.display.name" groupKey="group.names.javadoc.issues" groupBundle="messages.InspectionsBundle" enabledByDefault="true" level="WARNING" diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/problems/pass/ProjectProblemCodeVisionProvider.kt b/java/java-impl/src/com/intellij/codeInsight/daemon/problems/pass/ProjectProblemCodeVisionProvider.kt index 6ca31fa48028..be342686c464 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/problems/pass/ProjectProblemCodeVisionProvider.kt +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/problems/pass/ProjectProblemCodeVisionProvider.kt @@ -5,6 +5,7 @@ import com.intellij.codeInsight.codeVision.CodeVisionAnchorKind import com.intellij.codeInsight.codeVision.CodeVisionEntry import com.intellij.codeInsight.codeVision.CodeVisionHost import com.intellij.codeInsight.codeVision.CodeVisionRelativeOrdering +import com.intellij.codeInsight.codeVision.settings.CodeVisionSettings import com.intellij.codeInsight.codeVision.settings.PlatformCodeVisionIds import com.intellij.codeInsight.codeVision.ui.model.ClickableRichTextCodeVisionEntry import com.intellij.codeInsight.codeVision.ui.model.richText.RichText @@ -26,6 +27,8 @@ import com.intellij.openapi.editor.Editor import com.intellij.openapi.editor.colors.CodeInsightColors import com.intellij.openapi.editor.colors.EditorColorsManager import com.intellij.openapi.fileEditor.FileEditorManager +import com.intellij.openapi.project.Project +import com.intellij.openapi.util.Key import com.intellij.openapi.util.TextRange import com.intellij.psi.* import com.intellij.util.ObjectUtils @@ -35,14 +38,31 @@ import java.awt.event.MouseEvent import java.util.function.Consumer class ProjectProblemCodeVisionProvider : JavaCodeVisionProviderBase() { + companion object { + private val PREVIEW_PROBLEMS_KEY = Key.create<Set<Problem>>("preview.problems.key") + } + override fun computeLenses(editor: Editor, psiFile: PsiFile): List<Pair<TextRange, CodeVisionEntry>> { // we want to let this provider work only in tests dedicated for code vision, otherwise they harm performance if (ApplicationManager.getApplication().isUnitTestMode && !CodeVisionHost.isCodeLensTest(editor)) return emptyList() - val prevState = FileStateUpdater.getState(psiFile) - if (prevState == null) return emptyList() val project = editor.project ?: return emptyList() - + val previewProblems = PREVIEW_PROBLEMS_KEY.get(editor) + if (previewProblems != null) { + val problem = previewProblems.first() + val lenseColor = getCodeVisionColor() + val lensPair = createLensPair(problem.context as PsiMethod, lenseColor, previewProblems) ?: return emptyList() + return listOf(lensPair) + } val problems = ProjectProblemUtils.getReportedProblems(editor) + if (!CodeVisionSettings.instance().isProviderEnabled(PlatformCodeVisionIds.PROBLEMS.key)) { + if (!problems.isEmpty()) { + ProjectProblemUtils.reportProblems(editor, emptyMap()) + updateHighlighters(project, psiFile, editor, SmartList()) + } + return emptyList() + } + val prevState = FileStateUpdater.getState(psiFile) + if (prevState == null) return emptyList() val prevChanges = getPrevChanges(prevState.changes, problems.keys) val curState = findState(psiFile, prevState.snapshot, prevChanges) val changes = curState.changes @@ -59,7 +79,6 @@ class ProjectProblemCodeVisionProvider : JavaCodeVisionProviderBase() { val fileState = FileState(snapshot, allChanges) updateState(psiFile, fileState) - val document = editor.document val highlighters: MutableList<HighlightInfo> = SmartList() val lenses: MutableList<Pair<TextRange, CodeVisionEntry>> = ArrayList() @@ -69,23 +88,43 @@ class ProjectProblemCodeVisionProvider : JavaCodeVisionProviderBase() { psiMember, PsiNameIdentifierOwner::class.java) ?: return@forEach val identifier = namedElement.nameIdentifier ?: return@forEach - val text = JavaBundle.message("project.problems.hint.text", memberProblems.size) - lenses.add(InlayHintsUtils.getTextRangeWithoutLeadingCommentsAndWhitespaces(psiMember) to ClickableRichTextCodeVisionEntry(id, RichText(text).apply { this.setForeColor(lenseColor) }, longPresentation = text, onClick = ClickHandler(psiMember))) + val lensPair = createLensPair(psiMember, lenseColor, memberProblems) ?: return@forEach + lenses.add(lensPair) highlighters.add(ProjectProblemUtils.createHighlightInfo(editor, psiMember!!, identifier)) } + updateHighlighters(project, psiFile, editor, highlighters) + + return lenses + } + + private fun createLensPair(psiMember: PsiMember, lenseColor: Color, memberProblems: Set<Problem?>): Pair<TextRange, ClickableRichTextCodeVisionEntry>? { + val text = JavaBundle.message("project.problems.hint.text", memberProblems.size) + val richText = RichText(text) + richText.setForeColor(lenseColor) + val entry = ClickableRichTextCodeVisionEntry(id, richText, longPresentation = text, onClick = ClickHandler(psiMember)) + return InlayHintsUtils.getTextRangeWithoutLeadingCommentsAndWhitespaces(psiMember) to entry + } + + override fun preparePreview(editor: Editor, file: PsiFile) { + val method = (file as PsiJavaFile).classes[0].methods[0] + editor.putUserData(PREVIEW_PROBLEMS_KEY, setOf(Problem(method, method))) + } + + private fun updateHighlighters(project: Project, + psiFile: PsiFile, + editor: Editor, + highlighters: MutableList<HighlightInfo>) { ApplicationManager.getApplication() .invokeLater({ if (project.isDisposed || !psiFile.isValid) return@invokeLater val fileTextLength: Int = psiFile.textLength val colorsScheme = editor.colorsScheme - UpdateHighlightersUtil.setHighlightersToEditor(project, document, 0, fileTextLength, + UpdateHighlightersUtil.setHighlightersToEditor(project, editor.document, 0, fileTextLength, highlighters, colorsScheme, -1) }, ModalityState.NON_MODAL ) - - return lenses } private fun getCodeVisionColor(): Color { diff --git a/java/java-impl/src/com/intellij/codeInsight/highlighting/JavaPairedBraceMatcher.java b/java/java-impl/src/com/intellij/codeInsight/highlighting/JavaPairedBraceMatcher.java index df5b0e5b1060..7f7d37a9aaaa 100644 --- a/java/java-impl/src/com/intellij/codeInsight/highlighting/JavaPairedBraceMatcher.java +++ b/java/java-impl/src/com/intellij/codeInsight/highlighting/JavaPairedBraceMatcher.java @@ -16,17 +16,14 @@ package com.intellij.codeInsight.highlighting; import com.intellij.ide.highlighter.JavaFileType; -import com.intellij.lang.BracePair; import com.intellij.lang.java.JavaLanguage; -import com.intellij.openapi.editor.highlighter.HighlighterIterator; -import com.intellij.openapi.fileTypes.FileType; import com.intellij.psi.JavaTokenType; import com.intellij.psi.impl.source.tree.StdTokenSets; import com.intellij.psi.tree.IElementType; import com.intellij.psi.tree.TokenSet; import org.jetbrains.annotations.NotNull; -public class JavaPairedBraceMatcher extends PairedBraceMatcherAdapter { +public class JavaPairedBraceMatcher extends PairedBraceAndAnglesMatcher { private static class Holder { private static final TokenSet TYPE_TOKENS = TokenSet.orSet(StdTokenSets.WHITE_SPACE_OR_COMMENT_BIT_SET, @@ -37,70 +34,16 @@ public class JavaPairedBraceMatcher extends PairedBraceMatcherAdapter { } public JavaPairedBraceMatcher() { - super(new JavaBraceMatcher(), JavaLanguage.INSTANCE); + super(new JavaBraceMatcher(), JavaLanguage.INSTANCE, JavaFileType.INSTANCE, Holder.TYPE_TOKENS); } @Override - public boolean isLBraceToken(@NotNull HighlighterIterator iterator, @NotNull CharSequence fileText, @NotNull FileType fileType) { - return isBrace(iterator, fileText, fileType, true); + public @NotNull IElementType lt() { + return JavaTokenType.LT; } @Override - public boolean isRBraceToken(@NotNull HighlighterIterator iterator, @NotNull CharSequence fileText, @NotNull FileType fileType) { - return isBrace(iterator, fileText, fileType, false); - } - - private boolean isBrace(HighlighterIterator iterator, - CharSequence fileText, - FileType fileType, - boolean left) { - final BracePair pair = findPair(left, iterator, fileText, fileType); - if (pair == null) return false; - - final IElementType opposite = left ? JavaTokenType.GT : JavaTokenType.LT; - if ((left ? pair.getRightBraceType() : pair.getLeftBraceType()) != opposite) return true; - - if (fileType != JavaFileType.INSTANCE) return false; - - final IElementType braceElementType = left ? JavaTokenType.LT : JavaTokenType.GT; - int count = 0; - try { - int paired = 1; - while (true) { - count++; - if (left) { - iterator.advance(); - } else { - iterator.retreat(); - } - if (iterator.atEnd()) break; - final IElementType tokenType = iterator.getTokenType(); - if (tokenType == opposite) { - paired--; - if (paired == 0) return true; - continue; - } - - if (tokenType == braceElementType) { - paired++; - continue; - } - - if (!Holder.TYPE_TOKENS.contains(tokenType)) { - return false; - } - } - return false; - } - finally { - while (count-- > 0) { - if (left) { - iterator.retreat(); - } else { - iterator.advance(); - } - } - } + public @NotNull IElementType gt() { + return JavaTokenType.GT; } } - diff --git a/java/java-impl/src/com/intellij/codeInsight/highlighting/PairedBraceAndAnglesMatcher.java b/java/java-impl/src/com/intellij/codeInsight/highlighting/PairedBraceAndAnglesMatcher.java new file mode 100644 index 000000000000..e85fec2ae524 --- /dev/null +++ b/java/java-impl/src/com/intellij/codeInsight/highlighting/PairedBraceAndAnglesMatcher.java @@ -0,0 +1,95 @@ +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.codeInsight.highlighting; + +import com.intellij.lang.BracePair; +import com.intellij.lang.Language; +import com.intellij.lang.PairedBraceMatcher; +import com.intellij.openapi.editor.highlighter.HighlighterIterator; +import com.intellij.openapi.fileTypes.FileType; +import com.intellij.openapi.fileTypes.LanguageFileType; +import com.intellij.psi.tree.IElementType; +import com.intellij.psi.tree.TokenSet; +import org.jetbrains.annotations.NotNull; + +public abstract class PairedBraceAndAnglesMatcher extends PairedBraceMatcherAdapter { + private final TokenSet myTokenSetAllowedInsideAngleBrackets; + private final LanguageFileType myFileType; + + public PairedBraceAndAnglesMatcher(@NotNull PairedBraceMatcher matcher, + @NotNull Language language, + @NotNull LanguageFileType fileType, + @NotNull TokenSet tokenSetAllowedInsideAngleBrackets) { + super(matcher, language); + myTokenSetAllowedInsideAngleBrackets = tokenSetAllowedInsideAngleBrackets; + myFileType = fileType; + } + + @Override + public boolean isLBraceToken(@NotNull HighlighterIterator iterator, @NotNull CharSequence fileText, @NotNull FileType fileType) { + return isBrace(iterator, fileText, fileType, true); + } + + @Override + public boolean isRBraceToken(@NotNull HighlighterIterator iterator, @NotNull CharSequence fileText, @NotNull FileType fileType) { + return isBrace(iterator, fileText, fileType, false); + } + + public abstract @NotNull IElementType lt(); + + public abstract @NotNull IElementType gt(); + + private boolean isBrace(HighlighterIterator iterator, + CharSequence fileText, + FileType fileType, + boolean left) { + final BracePair pair = findPair(left, iterator, fileText, fileType); + if (pair == null) return false; + + final IElementType opposite = left ? gt() : lt(); + if ((left ? pair.getRightBraceType() : pair.getLeftBraceType()) != opposite) return true; + + if (fileType != myFileType) return false; + + final IElementType braceElementType = left ? lt() : gt(); + int count = 0; + try { + int paired = 1; + while (true) { + count++; + if (left) { + iterator.advance(); + } + else { + iterator.retreat(); + } + if (iterator.atEnd()) break; + final IElementType tokenType = iterator.getTokenType(); + if (tokenType == opposite) { + paired--; + if (paired == 0) return true; + continue; + } + + if (tokenType == braceElementType) { + paired++; + continue; + } + + if (!myTokenSetAllowedInsideAngleBrackets.contains(tokenType)) { + return false; + } + } + return false; + } + finally { + while (count-- > 0) { + if (left) { + iterator.retreat(); + } + else { + iterator.advance(); + } + } + } + } +} diff --git a/java/java-impl/src/com/intellij/codeInsight/hints/AnnotationInlayProvider.kt b/java/java-impl/src/com/intellij/codeInsight/hints/AnnotationInlayProvider.kt index 380d027086bd..d96351180133 100644 --- a/java/java-impl/src/com/intellij/codeInsight/hints/AnnotationInlayProvider.kt +++ b/java/java-impl/src/com/intellij/codeInsight/hints/AnnotationInlayProvider.kt @@ -180,11 +180,9 @@ class AnnotationInlayProvider : InlayHintsProvider<AnnotationInlayProvider.Setti val psiMethod = (file as PsiJavaFile).classes[0].methods[0] val factory = PsiElementFactory.getInstance(file.project) if (psiMethod.parameterList.isEmpty) { - if (settings.showExternal) { - PREVIEW_ANNOTATION_KEY.set(psiMethod, factory.createAnnotationFromText("@Deprecated", psiMethod)) - } + PREVIEW_ANNOTATION_KEY.set(psiMethod, factory.createAnnotationFromText("@Deprecated", psiMethod)) } - else if (settings.showInferred) + else PREVIEW_ANNOTATION_KEY.set(psiMethod.parameterList.getParameter(0), factory.createAnnotationFromText("@NotNull", psiMethod)) } diff --git a/java/java-impl/src/com/intellij/codeInsight/hints/JavaVcsCodeVisionContext.kt b/java/java-impl/src/com/intellij/codeInsight/hints/JavaVcsCodeVisionContext.kt index 59441060e39e..06183692dc65 100644 --- a/java/java-impl/src/com/intellij/codeInsight/hints/JavaVcsCodeVisionContext.kt +++ b/java/java-impl/src/com/intellij/codeInsight/hints/JavaVcsCodeVisionContext.kt @@ -7,11 +7,12 @@ import com.intellij.psi.PsiClass import com.intellij.psi.PsiElement import com.intellij.psi.PsiMember import com.intellij.psi.PsiMethod +import com.intellij.psi.PsiTypeParameter import java.awt.event.MouseEvent class JavaVcsCodeVisionContext : VcsCodeVisionLanguageContext { override fun isAccepted(element: PsiElement): Boolean { - return element is PsiMethod || element is PsiClass + return element is PsiMethod || (element is PsiClass && element !is PsiTypeParameter) } override fun handleClick(mouseEvent: MouseEvent, editor: Editor, element: PsiElement) { diff --git a/java/java-impl/src/com/intellij/codeInspection/deadCode/UnusedDeclarationPresentation.java b/java/java-impl/src/com/intellij/codeInspection/deadCode/UnusedDeclarationPresentation.java index 57e722ce51b7..542a57ad4ad3 100644 --- a/java/java-impl/src/com/intellij/codeInspection/deadCode/UnusedDeclarationPresentation.java +++ b/java/java-impl/src/com/intellij/codeInspection/deadCode/UnusedDeclarationPresentation.java @@ -14,6 +14,7 @@ import com.intellij.concurrency.ConcurrentCollectionFactory; import com.intellij.icons.AllIcons; import com.intellij.ide.util.PsiNavigationSupport; import com.intellij.lang.annotation.HighlightSeverity; +import com.intellij.lang.java.JavaLanguage; import com.intellij.openapi.actionSystem.ActionManager; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.application.ApplicationManager; @@ -429,6 +430,8 @@ public class UnusedDeclarationPresentation extends DefaultInspectionToolPresenta (myFixedElements.containsKey(refElement) || isExcluded(refEntity) || isSuppressed(refElement))) && refElement.isValid() && getFilter().accepts(refElement)) { + PsiElement psiElement = refElement.getPsiElement(); + if (psiElement != null && psiElement.getLanguage() != JavaLanguage.INSTANCE) return; if (skipEntryPoints(refElement)) return; registerContentEntry(refEntity, RefJavaUtil.getInstance().getPackageName(refEntity)); } diff --git a/java/java-impl/src/com/intellij/psi/formatter/java/JavaSpacePropertyProcessor.java b/java/java-impl/src/com/intellij/psi/formatter/java/JavaSpacePropertyProcessor.java index 67c6ce968077..99a6c8af5ef2 100644 --- a/java/java-impl/src/com/intellij/psi/formatter/java/JavaSpacePropertyProcessor.java +++ b/java/java-impl/src/com/intellij/psi/formatter/java/JavaSpacePropertyProcessor.java @@ -1892,6 +1892,12 @@ public final class JavaSpacePropertyProcessor extends JavaElementVisitor { } } + @Override + public void visitSnippetAttributeList(PsiSnippetAttributeList attributeList) { + if (myType1 == JavaDocElementType.DOC_SNIPPET_ATTRIBUTE && myType2 == JavaDocElementType.DOC_SNIPPET_ATTRIBUTE) { + createSpaceInCode(true); + } + } public static Spacing getSpacing(Block node, CommonCodeStyleSettings settings, JavaCodeStyleSettings javaSettings) { return new JavaSpacePropertyProcessor(node, settings, javaSettings).myResult; diff --git a/java/java-tests/testSrc/com/intellij/java/navigation/SearchEverywhereTabsCustomizationTest.kt b/java/java-tests/testSrc/com/intellij/java/navigation/SearchEverywhereTabsCustomizationTest.kt new file mode 100644 index 000000000000..55dce203be06 --- /dev/null +++ b/java/java-tests/testSrc/com/intellij/java/navigation/SearchEverywhereTabsCustomizationTest.kt @@ -0,0 +1,63 @@ +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.java.navigation + +import com.intellij.ide.actions.searcheverywhere.* +import com.intellij.openapi.application.ApplicationManager +import com.intellij.openapi.progress.ProgressIndicator +import com.intellij.openapi.util.Disposer +import com.intellij.testFramework.fixtures.LightJavaCodeInsightFixtureTestCase +import com.intellij.testFramework.replaceService +import com.intellij.util.Processor +import org.junit.Assert +import java.util.function.Function +import javax.swing.JPanel +import javax.swing.ListCellRenderer + +class SearchEverywhereTabsCustomizationTest : LightJavaCodeInsightFixtureTestCase() { + + private val contributors : Map<SearchEverywhereContributor<*>, SearchEverywhereTabDescriptor?> = mapOf( + dumb("c1", true) to null, + dumb("c2", true) to null, + dumb("c3", true) to null, + dumb("c4", false) to null, + dumb("c5", false) to null + ) + + private lateinit var ui : SearchEverywhereUI + + override fun setUp() { + super.setUp() + ui = SearchEverywhereUI(project, contributors).apply { Disposer.register(testRootDisposable, this) } + } + + fun testFixedTabsListStrategy() { + val strategy = object : FixedTabsListCustomizationStrategy(listOf("c1", "c3", "c5")) {} + ApplicationManager.getApplication().replaceService(TabsCustomizationStrategy::class.java, strategy, testRootDisposable) + val header = SearchEverywhereHeader(project, contributors, Runnable { }, Function { _ -> null }, null, ui) + val tabIDs = header.tabs.map { it.id } + val expected = listOf(SearchEverywhereManagerImpl.ALL_CONTRIBUTORS_GROUP_ID, "c1", "c3") + Assert.assertEquals(expected, tabIDs) + } + + fun testContributorDefinedStrategy() { + val strategy = ContributorDefinedTabsCustomizationStrategy() + ApplicationManager.getApplication().replaceService(TabsCustomizationStrategy::class.java, strategy, testRootDisposable) + val header = SearchEverywhereHeader(project, contributors, Runnable { }, Function { _ -> null }, null, ui) + val tabIDs = header.tabs.map { it.id } + val expected = listOf(SearchEverywhereManagerImpl.ALL_CONTRIBUTORS_GROUP_ID, "c1", "c2", "c3") + Assert.assertEquals(expected, tabIDs) + } + + private fun dumb(id: String, showTab: Boolean): SearchEverywhereContributor<Unit> = + object : SearchEverywhereContributor<Unit> { + override fun getSearchProviderId(): String = id + override fun getGroupName(): String = id + override fun getSortWeight(): Int = 0 + override fun showInFindResults(): Boolean = false + override fun isShownInSeparateTab(): Boolean = showTab + override fun getElementsRenderer(): ListCellRenderer<in Unit> = ListCellRenderer { _, _, _, _, _ -> JPanel() } + override fun getDataForItem(element: Unit, dataId: String): Any? = null + override fun processSelectedItem(selected: Unit, modifiers: Int, searchText: String): Boolean = false + override fun fetchElements(pattern: String, progressIndicator: ProgressIndicator, consumer: Processor<in Unit>) {} + } +}
\ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/psi/formatter/java/JavadocFormatterTest.kt b/java/java-tests/testSrc/com/intellij/java/psi/formatter/java/JavadocFormatterTest.kt index 6e43b75a6d53..c713e40ad6f6 100644 --- a/java/java-tests/testSrc/com/intellij/java/psi/formatter/java/JavadocFormatterTest.kt +++ b/java/java-tests/testSrc/com/intellij/java/psi/formatter/java/JavadocFormatterTest.kt @@ -1818,4 +1818,24 @@ public class Test { """.trimIndent() ) } + + fun testSnippetHasSpacesBetweenSnippetAttributes() { + doTextTest( + """ + /** + * {@snippet class = ExternalSnippets region = join2} + */ + public class Main { + } + """.trimIndent(), + + """ + /** + * {@snippet class = ExternalSnippets region = join2} + */ + public class Main { + } + """.trimIndent() + ) + } }
\ No newline at end of file diff --git a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsModelSerializationDataService.java b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsModelSerializationDataService.java index b9e4f4799d39..31038eaf01b7 100644 --- a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsModelSerializationDataService.java +++ b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsModelSerializationDataService.java @@ -10,6 +10,7 @@ import org.jetbrains.jps.model.serialization.impl.JpsModuleSerializationDataExte import org.jetbrains.jps.model.serialization.impl.JpsPathVariablesConfigurationImpl; import org.jetbrains.jps.model.serialization.impl.JpsProjectSerializationDataExtensionImpl; import org.jetbrains.jps.model.serialization.module.JpsModuleSerializationDataExtension; +import org.jetbrains.jps.service.JpsServiceManager; import java.io.File; import java.util.HashMap; @@ -23,6 +24,9 @@ public final class JpsModelSerializationDataService { if (configuration != null) { pathVariables.putAll(configuration.getAllUserVariables()); } + for (JpsPathMacroContributor extension : JpsServiceManager.getInstance().getExtensions(JpsPathMacroContributor.class)) { + pathVariables.putAll(extension.getPathMacros()); + } return pathVariables; } diff --git a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsPathMacroContributor.java b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsPathMacroContributor.java new file mode 100644 index 000000000000..39dcfde76c2b --- /dev/null +++ b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsPathMacroContributor.java @@ -0,0 +1,26 @@ +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package org.jetbrains.jps.model.serialization; + +import org.jetbrains.annotations.NotNull; + +import java.util.Map; + +/** + * <p> + * This is an alternative Path Macro contributor specifically for JPS. + * </p> + * <p> + * Note: all path macros contributed by {@link com.intellij.openapi.application.PathMacroContributor} are already handled by the JPS. + * Contrary, path macros contributed by {@link com.intellij.openapi.components.impl.ProjectWidePathMacroContributor} are not + * automatically handled by the JPS so in such cases you may want to use this {@link JpsPathMacroContributor} + * </p> + * + * @see com.intellij.openapi.components.impl.ProjectWidePathMacroContributor + */ +public interface JpsPathMacroContributor { + /** + * You are supposed to pass path macros into JPS process via System properties. You can pass custom + * System properties to the JPS process using {@link com.intellij.compiler.server.BuildProcessParametersProvider} + */ + @NotNull Map<@NotNull String, @NotNull String> getPathMacros(); +} diff --git a/json/src/com/jetbrains/jsonSchema/widget/JsonSchemaStatusWidget.java b/json/src/com/jetbrains/jsonSchema/widget/JsonSchemaStatusWidget.java index 9bfc8184c277..02bb2cf856f8 100644 --- a/json/src/com/jetbrains/jsonSchema/widget/JsonSchemaStatusWidget.java +++ b/json/src/com/jetbrains/jsonSchema/widget/JsonSchemaStatusWidget.java @@ -65,8 +65,7 @@ class JsonSchemaStatusWidget extends EditorBasedStatusBarPopup { private final AtomicReference<Pair<VirtualFile, Boolean>> mySuppressInfoRef = new AtomicReference<>(); - private volatile VirtualFile myLastUpdatedFile; - private volatile WidgetState mySchemaWidgetState; + private volatile Pair<WidgetState, VirtualFile> myLastWidgetStateAndFilePair; private ProgressIndicator myCurrentProgress; JsonSchemaStatusWidget(@NotNull Project project) { @@ -198,14 +197,18 @@ class JsonSchemaStatusWidget extends EditorBasedStatusBarPopup { return WidgetStatus.ENABLED; } - @NotNull @Override - protected WidgetState getWidgetState(@Nullable VirtualFile file) { + protected @NotNull WidgetState getWidgetState(@Nullable VirtualFile file) { + Pair<WidgetState, VirtualFile> lastStateAndFilePair = myLastWidgetStateAndFilePair; + WidgetState widgetState = calcWidgetState(file, Pair.getFirst(lastStateAndFilePair), Pair.getSecond(lastStateAndFilePair)); + myLastWidgetStateAndFilePair = new Pair<>(widgetState, file); + return widgetState; + } + + private @NotNull WidgetState calcWidgetState(@Nullable VirtualFile file, + @Nullable WidgetState lastWidgetState, + @Nullable VirtualFile lastFile) { Pair<VirtualFile, Boolean> suppressInfo = mySuppressInfoRef.getAndSet(null); - WidgetState schemaWidgetState = mySchemaWidgetState; - mySchemaWidgetState = null; - VirtualFile lastUpdatedFile = myLastUpdatedFile; - myLastUpdatedFile = file; if (myCurrentProgress != null && !myCurrentProgress.isCanceled()) { myCurrentProgress.cancel(); } @@ -232,7 +235,7 @@ class JsonSchemaStatusWidget extends EditorBasedStatusBarPopup { scheduleSuppressCheck(file, myCurrentProgress); // show 'loading' only when switching between files and previous state was not hidden, otherwise the widget will "jump" - if (!Comparing.equal(lastUpdatedFile, file) && schemaWidgetState != null && schemaWidgetState != WidgetState.HIDDEN) { + if (!Comparing.equal(lastFile, file) && lastWidgetState != null && lastWidgetState != WidgetState.HIDDEN) { return new WidgetState(JsonBundle.message("schema.widget.checking.state.tooltip"), JsonBundle.message("schema.widget.checking.state.text", isJsonFile ? JsonBundle.message("schema.widget.prefix.json.files") @@ -248,12 +251,10 @@ class JsonSchemaStatusWidget extends EditorBasedStatusBarPopup { } } - WidgetState state = doGetWidgetState(file, isJsonFile); - mySchemaWidgetState = state; - return state; + return doGetWidgetState(file, isJsonFile); } - private WidgetState doGetWidgetState(@NotNull VirtualFile file, boolean isJsonFile) { + private @NotNull WidgetState doGetWidgetState(@NotNull VirtualFile file, boolean isJsonFile) { JsonSchemaService service = getService(); if (service == null) { return getNoSchemaState(); @@ -463,17 +464,19 @@ class JsonSchemaStatusWidget extends EditorBasedStatusBarPopup { @Nullable @Override protected ListPopup createPopup(DataContext context) { - final VirtualFile virtualFile = CommonDataKeys.VIRTUAL_FILE.getData(context); - if (virtualFile == null) return null; + VirtualFile file = CommonDataKeys.VIRTUAL_FILE.getData(context); + if (file == null) return null; Project project = getProject(); - WidgetState popupState = mySchemaWidgetState; - if (!(popupState instanceof MyWidgetState) || !virtualFile.equals(myLastUpdatedFile)) return null; - - JsonSchemaService service = getService(); - if (service == null) return null; - - return JsonSchemaStatusPopup.createPopup(service, project, virtualFile, ((MyWidgetState)popupState).isWarning()); + Pair<WidgetState, VirtualFile> lastWidgetStateAndFilePair = myLastWidgetStateAndFilePair; + WidgetState lastWidgetState = Pair.getFirst(lastWidgetStateAndFilePair); + if (lastWidgetState instanceof MyWidgetState && file.equals(Pair.getSecond(lastWidgetStateAndFilePair))) { + JsonSchemaService service = getService(); + if (service != null) { + return JsonSchemaStatusPopup.createPopup(service, project, file, ((MyWidgetState)lastWidgetState).isWarning()); + } + } + return null; } @Override diff --git a/platform/analysis-impl/resources/messages/FindBundle.properties b/platform/analysis-impl/resources/messages/FindBundle.properties index d9a3935845b0..f9ec46f0d71b 100644 --- a/platform/analysis-impl/resources/messages/FindBundle.properties +++ b/platform/analysis-impl/resources/messages/FindBundle.properties @@ -176,4 +176,4 @@ show.usages.more.usages.label=more usages show.usages.current.usage.label=Current search.everywhere.group.name=Text -se.text.header.action.all.filetypes=All filetypes
\ No newline at end of file +se.text.header.action.all.filetypes=All file types
\ No newline at end of file diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/BuildContextImpl.groovy b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/BuildContextImpl.groovy index eab68547a5a4..bd056cea7ed8 100644 --- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/BuildContextImpl.groovy +++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/BuildContextImpl.groovy @@ -84,7 +84,7 @@ final class BuildContextImpl extends BuildContext { buildNumber = options.buildNumber ?: readSnapshotBuildNumber(paths.communityHomeDir) xBootClassPathJarNames = productProperties.xBootClassPathJarNames - bootClassPathJarNames = List.of("util.jar") + bootClassPathJarNames = List.of("util.jar", "util_rt.jar") applicationInfo = new ApplicationInfoProperties(project, productProperties, options, messages) // Android Studio: don't .patch(this) if (productProperties.productCode == null && applicationInfo.productCode != null) { productProperties.productCode = applicationInfo.productCode diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/PlatformModules.groovy b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/PlatformModules.groovy index 5be4586bfb3a..c9683fbcde6d 100644 --- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/PlatformModules.groovy +++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/PlatformModules.groovy @@ -126,6 +126,8 @@ final class PlatformModules { private static final String UTIL_JAR = "util.jar" + private static final String UTIL_RT_JAR = "util_rt.jar" + public static final Map<String, PackMode> CUSTOM_PACK_MODE = Map.of( // jna uses native lib "jna", PackMode.STANDALONE_MERGED, @@ -203,12 +205,16 @@ final class PlatformModules { layout.moduleExcludes.putValues(entry.key, entry.value) } + jar(UTIL_RT_JAR, List.of( + "intellij.platform.util.rt", + ), productLayout, layout) + + jar(UTIL_JAR, List.of( "intellij.platform.util.rt.java8", "intellij.platform.util.zip", "intellij.platform.util.classLoader", "intellij.platform.bootstrap", - "intellij.platform.util.rt", "intellij.platform.util", "intellij.platform.util.text.matching", "intellij.platform.util.base", @@ -217,7 +223,7 @@ final class PlatformModules { "intellij.platform.extensions", "intellij.platform.tracing.rt", "intellij.platform.boot", - ), productLayout, layout) + ), productLayout, layout) jar("externalProcess-rt.jar", List.of( "intellij.platform.externalProcessAuthHelper.rt" @@ -231,7 +237,7 @@ final class PlatformModules { "intellij.platform.ide.util.io", "intellij.platform.ide.util.io.impl", "intellij.platform.ide.util.netty", - ), productLayout, layout) + ), productLayout, layout) jar(BaseLayout.APP_JAR, List.of( "intellij.relaxng", @@ -295,7 +301,7 @@ final class PlatformModules { layout.projectLibrariesToUnpack.putValues(UTIL_JAR, List.of( "JDOM", "Trove4j", - )) + )) for (ProjectLibraryData item in additionalProjectLevelLibraries) { String name = item.libraryName @@ -330,20 +336,19 @@ final class PlatformModules { } Files.newInputStream(file).withCloseable { - NodeList contentList = DocumentBuilderFactory.newDefaultInstance().newDocumentBuilder() - .parse(it, file.toString()).getDocumentElement().getElementsByTagName("content") + NodeList contentList = DocumentBuilderFactory.newDefaultInstance() + .newDocumentBuilder() + .parse(it, file.toString()) + .getDocumentElement() + .getElementsByTagName("content") if (contentList.length != 0) { NodeList modules = ((Element)contentList.item(0)).getElementsByTagName("module") Set<String> result = new LinkedHashSet<>(modules.length) for (int i = 0; i < modules.length; i++) { - String rawName = ((Element)modules.item(i)) - .getAttribute("name") - - int index = rawName.indexOf('/') - String name = index == -1 ? rawName : rawName.substring(0, index) - result.add(name) + Element element = (Element)modules.item(i) + result.add(element.getAttribute("name")) } - return Collections.unmodifiableSet(result) + return Set.copyOf(result) } return Set.<String> of() } diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/PluginLayout.groovy b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/PluginLayout.groovy index 3effeea54e80..a636e8c183b2 100644 --- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/PluginLayout.groovy +++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/PluginLayout.groovy @@ -2,6 +2,7 @@ package org.jetbrains.intellij.build.impl import com.intellij.openapi.util.Pair +import com.intellij.util.containers.MultiMap import groovy.transform.CompileStatic import org.jetbrains.annotations.NotNull import org.jetbrains.intellij.build.BuildContext @@ -132,6 +133,38 @@ final class PluginLayout extends BaseLayout { }, "")) } + void mergeServiceFiles() { + patchers.add(new BiConsumer<ModuleOutputPatcher, BuildContext>() { + @Override + void accept(ModuleOutputPatcher patcher, BuildContext context) { + MultiMap<String, Pair<String, Path>> discoveredServiceFiles = MultiMap.createLinkedSet() + + moduleJars.get(mainJarName).each { String moduleName -> + Path path = context.findFileInModuleSources(moduleName, "META-INF/services") + if (path == null) return + + Files.list(path).each { Path serviceFile -> + if (!Files.isRegularFile(serviceFile)) return + discoveredServiceFiles.putValue(serviceFile.fileName.toString(), Pair.create(moduleName, serviceFile)) + } + } + + discoveredServiceFiles.entrySet().each { Map.Entry<String, Collection<Pair<String, Path>>> entry -> + String serviceFileName = entry.key + Collection<Pair<String, Path>> serviceFiles = entry.value + + if (serviceFiles.size() <= 1) return + String content = serviceFiles.collect { Files.readString(it.second) }.join("\n") + + context.messages.info("Merging service file " + serviceFileName + " (" + serviceFiles.collect { it.first }.join(", ") + ")") + patcher.patchModuleOutput(serviceFiles.first().first, // first one wins + "META-INF/services/$serviceFileName", + content) + } + } + }) + } + @CompileStatic static final class PluginLayoutSpec extends BaseLayoutSpec { final PluginLayout layout @@ -368,6 +401,14 @@ final class PluginLayout extends BaseLayout { void filterScrambleClasspath(BiPredicate<BuildContext, Path> filter) { layout.scrambleClasspathFilter = filter } + + /** + * Concatenates `META-INF/services` files with the same name from different modules together. + * By default the first service file silently wins. + */ + void mergeServiceFiles() { + layout.mergeServiceFiles() + } } interface VersionEvaluator { diff --git a/platform/build-scripts/icons/src/org/jetbrains/intellij/build/images/IntellijIconClassGeneratorConfig.kt b/platform/build-scripts/icons/src/org/jetbrains/intellij/build/images/IntellijIconClassGeneratorConfig.kt index 38b9fa730279..de82cd977e18 100644 --- a/platform/build-scripts/icons/src/org/jetbrains/intellij/build/images/IntellijIconClassGeneratorConfig.kt +++ b/platform/build-scripts/icons/src/org/jetbrains/intellij/build/images/IntellijIconClassGeneratorConfig.kt @@ -13,6 +13,10 @@ class IntellijIconClassGeneratorConfig : IconsClasses() { override fun getConfigForModule(moduleName: String): IntellijIconClassGeneratorModuleConfig? { @Suppress("SpellCheckingInspection") return when (moduleName) { + "intellij.devkit" -> IntellijIconClassGeneratorModuleConfig( + className = "DevKitIcons", + packageName = "org.jetbrains.idea.devkit", + ) // force generating "Groovy" inner class to preserve backward compatiblity "intellij.groovy.psi" -> IntellijIconClassGeneratorModuleConfig(className = "JetgroovyIcons", iconDirectory = "icons") "intellij.clouds.docker" -> IntellijIconClassGeneratorModuleConfig(className = "DockerIcons", packageName = "com.intellij.docker") @@ -21,6 +25,7 @@ class IntellijIconClassGeneratorConfig : IconsClasses() { packageName = "com.intellij.lang.ognl", iconDirectory = "icons", ) + "intellij.struts2.dom" -> IntellijIconClassGeneratorModuleConfig( className = "Struts2Icons", packageName = "com.intellij.struts2", diff --git a/platform/build-scripts/resources/linux/scripts/remote-dev-server.sh b/platform/build-scripts/resources/linux/scripts/remote-dev-server.sh index bbc0ac2e3e15..608702bd28c1 100644 --- a/platform/build-scripts/resources/linux/scripts/remote-dev-server.sh +++ b/platform/build-scripts/resources/linux/scripts/remote-dev-server.sh @@ -21,8 +21,10 @@ REMOTE_DEV_LAUNCHER_NAME_FOR_USAGE_WITH_EXIT_CODE_CHECK="${REMOTE_DEV_LAUNCHER_N export REMOTE_DEV_LAUNCHER_NAME_FOR_USAGE=$REMOTE_DEV_LAUNCHER_NAME_FOR_USAGE_WITH_EXIT_CODE_CHECK while true; do + set +e "$REMOTE_DEV_SERVER_LAUNCHER_PATH" "__script_name__" "__product_code__" "__product_uc__" "__vm_options__" "__ide_default_xmx__" "$@" host_exit_code=$? + set -e # restart on special exit code, otherwise forward the exit code to caller if [ $host_exit_code -ne $IDEA_RESTART_VIA_EXIT_CODE ]; then exit $host_exit_code diff --git a/platform/build-scripts/resources/win/scripts/executable-template.bat b/platform/build-scripts/resources/win/scripts/executable-template.bat index 4db3b7e9d08f..6eef9c7daec2 100644 --- a/platform/build-scripts/resources/win/scripts/executable-template.bat +++ b/platform/build-scripts/resources/win/scripts/executable-template.bat @@ -84,13 +84,13 @@ IF NOT "%USER_VM_OPTIONS_FILE%" == "" ( ) IF NOT "%VM_OPTIONS_FILE%" == "" ( IF "%USER_GC%" == "" ( - FOR /F "eol=# usebackq delims=" %%i IN ("%VM_OPTIONS_FILE%") DO CALL SET ACC=%%ACC%% "%%i" + FOR /F "eol=# usebackq delims=" %%i IN ("%VM_OPTIONS_FILE%") DO CALL SET "ACC=%%ACC%% %%i" ) ELSE ( - FOR /F "eol=# usebackq delims=" %%i IN (`FINDSTR /R /V /C:"-XX:\+Use.*GC" "%VM_OPTIONS_FILE%"`) DO CALL SET ACC=%%ACC%% "%%i" + FOR /F "eol=# usebackq delims=" %%i IN (`FINDSTR /R /V /C:"-XX:\+Use.*GC" "%VM_OPTIONS_FILE%"`) DO CALL SET "ACC=%%ACC%% %%i" ) ) IF NOT "%USER_VM_OPTIONS_FILE%" == "" ( - FOR /F "eol=# usebackq delims=" %%i IN ("%USER_VM_OPTIONS_FILE%") DO CALL SET ACC=%%ACC%% "%%i" + FOR /F "eol=# usebackq delims=" %%i IN ("%USER_VM_OPTIONS_FILE%") DO CALL SET "ACC=%%ACC%% %%i" ) IF "%VM_OPTIONS_FILE%%USER_VM_OPTIONS_FILE%" == "" ( ECHO ERROR: cannot find a VM options file diff --git a/platform/build-scripts/testFramework/src/org/jetbrains/intellij/build/testFramework/buildScriptTestUtils.kt b/platform/build-scripts/testFramework/src/org/jetbrains/intellij/build/testFramework/buildScriptTestUtils.kt index f8eb8f16e4fe..28db23b611e1 100644 --- a/platform/build-scripts/testFramework/src/org/jetbrains/intellij/build/testFramework/buildScriptTestUtils.kt +++ b/platform/build-scripts/testFramework/src/org/jetbrains/intellij/build/testFramework/buildScriptTestUtils.kt @@ -1,4 +1,4 @@ -// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package org.jetbrains.intellij.build.testFramework import com.intellij.openapi.util.io.FileUtil @@ -29,11 +29,13 @@ private val initializeTracer by lazy { } } -fun createBuildContext(homePath: String, productProperties: ProductProperties, - buildTools: ProprietaryBuildTools, - skipDependencySetup: Boolean = false, - communityHomePath: String = "$homePath/community", - buildOptionsCustomizer: (BuildOptions) -> Unit = {}): BuildContext { +fun createBuildContext( + homePath: String, productProperties: ProductProperties, + buildTools: ProprietaryBuildTools = ProprietaryBuildTools.DUMMY, + skipDependencySetup: Boolean = false, + communityHomePath: String = "$homePath/community", + buildOptionsCustomizer: (BuildOptions) -> Unit = {}, +): BuildContext { val options = BuildOptions() options.isSkipDependencySetup = skipDependencySetup options.isIsTestBuild = true @@ -45,15 +47,40 @@ fun createBuildContext(homePath: String, productProperties: ProductProperties, return BuildContext.createContext(communityHomePath, homePath, productProperties, buildTools, options) } -fun runTestBuild(homePath: String, - productProperties: ProductProperties, - buildTools: ProprietaryBuildTools, - communityHomePath: String = "$homePath/community", - traceSpanName: String? = null, - verifier: (paths: BuildPaths) -> Unit = {}, - buildOptionsCustomizer: (BuildOptions) -> Unit = {}) { +fun runTestBuild( + homePath: String, + productProperties: ProductProperties, + buildTools: ProprietaryBuildTools = ProprietaryBuildTools.DUMMY, + communityHomePath: String = "$homePath/community", + traceSpanName: String? = null, + verifier: (paths: BuildPaths) -> Unit = {}, + buildOptionsCustomizer: (BuildOptions) -> Unit = {}, +) { + val buildContext = createBuildContext( + homePath = homePath, + productProperties = productProperties, + buildTools = buildTools, + skipDependencySetup = false, + communityHomePath = communityHomePath, + buildOptionsCustomizer = buildOptionsCustomizer, + ) + + runTestBuild( + buildContext = buildContext, + traceSpanName = traceSpanName, + verifier = verifier, + ) +} + +fun runTestBuild( + buildContext: BuildContext, + traceSpanName: String? = null, + verifier: (paths: BuildPaths) -> Unit = {}, +) { initializeTracer + val productProperties = buildContext.productProperties + // to see in Jaeger as a one trace val traceFileName = "${productProperties.baseFileName}-trace.json" val span = TracerManager.spanBuilder(traceSpanName ?: "test build of ${productProperties.baseFileName}").startSpan() @@ -61,7 +88,6 @@ fun runTestBuild(homePath: String, val spanScope = span.makeCurrent() try { - val buildContext = createBuildContext(homePath, productProperties, buildTools, false, communityHomePath, buildOptionsCustomizer) val outDir = buildContext.paths.buildOutputDir span.setAttribute("outDir", outDir.toString()) val messages = buildContext.messages as BuildMessagesImpl diff --git a/platform/configuration-store-impl/src/ProjectStoreBridge.kt b/platform/configuration-store-impl/src/ProjectStoreBridge.kt index a64258168044..76024557cc79 100644 --- a/platform/configuration-store-impl/src/ProjectStoreBridge.kt +++ b/platform/configuration-store-impl/src/ProjectStoreBridge.kt @@ -17,6 +17,7 @@ import com.intellij.project.stateStore import com.intellij.util.PathUtil import com.intellij.util.containers.HashingStrategy import com.intellij.util.io.systemIndependentPath +import com.intellij.workspaceModel.ide.JpsProjectConfigLocation import com.intellij.workspaceModel.ide.impl.jps.serialization.* import org.jdom.Element import org.jetbrains.jps.util.JpsPathUtil @@ -67,7 +68,7 @@ private class JpsStorageContentWriter(private val session: ProjectWithModulesSav override fun getReplacePathMacroMap(fileUrl: String): PathMacroMap { val filePath = JpsPathUtil.urlToPath(fileUrl) return if (FileUtil.extensionEquals(filePath, "iml") || isExternalModuleFile(filePath)) { - ModulePathMacroManager.createInstance(Supplier { filePath }).replacePathMap + ModulePathMacroManager.createInstance(project::getProjectFilePath, Supplier { filePath }).replacePathMap } else { ProjectPathMacroManager.getInstance(project).replacePathMap @@ -125,7 +126,7 @@ private class ProjectWithModulesSaveSessionProducerManager(project: Project) : P } internal class StorageJpsConfigurationReader(private val project: Project, - private val baseDirUrl: String) : JpsFileContentReaderWithCache { + private val configLocation: JpsProjectConfigLocation) : JpsFileContentReaderWithCache { @Volatile private var fileContentCachingReader: CachingJpsFileContentReader? = null @@ -159,7 +160,7 @@ internal class StorageJpsConfigurationReader(private val project: Project, } private fun getCachingReader(): CachingJpsFileContentReader { - val reader = fileContentCachingReader ?: CachingJpsFileContentReader(baseDirUrl) + val reader = fileContentCachingReader ?: CachingJpsFileContentReader(configLocation) if (fileContentCachingReader == null) { fileContentCachingReader = reader } diff --git a/platform/configuration-store-impl/src/ProjectStoreImpl.kt b/platform/configuration-store-impl/src/ProjectStoreImpl.kt index 2ba818b78f98..6edeef1aaa85 100644 --- a/platform/configuration-store-impl/src/ProjectStoreImpl.kt +++ b/platform/configuration-store-impl/src/ProjectStoreImpl.kt @@ -184,7 +184,7 @@ open class ProjectWithModulesStoreImpl(project: Project) : ProjectStoreImpl(proj } override fun createContentReader(): JpsFileContentReaderWithCache { - return StorageJpsConfigurationReader(project, getJpsProjectConfigLocation(project)!!.baseDirectoryUrlString) + return StorageJpsConfigurationReader(project, getJpsProjectConfigLocation(project)!!) } private fun commitModuleComponents(moduleStore: ComponentStoreImpl, moduleSaveSessionManager: SaveSessionProducerManager, diff --git a/platform/core-api/src/com/intellij/openapi/application/PathMacroContributor.java b/platform/core-api/src/com/intellij/openapi/application/PathMacroContributor.java index 2d51f1b37065..dfc23f31d736 100644 --- a/platform/core-api/src/com/intellij/openapi/application/PathMacroContributor.java +++ b/platform/core-api/src/com/intellij/openapi/application/PathMacroContributor.java @@ -5,6 +5,14 @@ import org.jetbrains.annotations.NotNull; import java.util.Map; +/** + * <p> + * Application-wide Path Macro contributor. + * </p> + * <p> + * See {@link com.intellij.openapi.components.impl.ProjectWidePathMacroContributor} for the project-wide analog + * </p> + */ public interface PathMacroContributor { /** * Register path.macros diff --git a/platform/core-api/src/com/intellij/util/graph/GraphAlgorithms.java b/platform/core-api/src/com/intellij/util/graph/GraphAlgorithms.java index 1c65f1961b2c..bf00a41d4039 100644 --- a/platform/core-api/src/com/intellij/util/graph/GraphAlgorithms.java +++ b/platform/core-api/src/com/intellij/util/graph/GraphAlgorithms.java @@ -10,12 +10,25 @@ import org.jetbrains.annotations.Nullable; import java.util.Collection; import java.util.List; import java.util.Set; +import java.util.function.Consumer; public abstract class GraphAlgorithms { public static GraphAlgorithms getInstance() { return ApplicationManager.getApplication().getService(GraphAlgorithms.class); } + public abstract <Node> @NotNull Collection<Node> findNodesWhichBelongToAnyPathBetweenTwoNodes( + @NotNull Graph<Node> graph, + @NotNull Node start, + @NotNull Node finish + ); + + public abstract <Node> @NotNull Collection<Node> findNodeNeighbourhood( + @NotNull Graph<Node> graph, + @NotNull Node node, + int levelBound + ); + @Nullable public abstract <Node> List<Node> findShortestPath(@NotNull InboundSemiGraph<Node> graph, @NotNull Node start, @NotNull Node finish); @@ -26,6 +39,11 @@ public abstract class GraphAlgorithms { @NotNull public abstract <Node> Set<List<Node>> findCycles(@NotNull Graph<Node> graph, @NotNull Node node); + public abstract <Node> void iterateOverAllSimpleCycles( + @NotNull Graph<Node> graph, + @NotNull Consumer<List<Node>> cycleConsumer + ); + @NotNull public abstract <Node> List<List<Node>> removePathsWithCycles(@NotNull List<? extends List<Node>> paths); @@ -41,8 +59,9 @@ public abstract class GraphAlgorithms { /** * Adds start node and all its outs to given set recursively. * Nodes which are already in set aren't processed. - * @param start node to start from - * @param set set to be populated + * + * @param start node to start from + * @param set set to be populated */ public abstract <Node> void collectOutsRecursively(@NotNull Graph<Node> graph, Node start, Set<? super Node> set); } diff --git a/platform/core-impl/src/com/intellij/util/graph/impl/Bfs.java b/platform/core-impl/src/com/intellij/util/graph/impl/Bfs.java new file mode 100644 index 000000000000..b7c8d7e2be77 --- /dev/null +++ b/platform/core-impl/src/com/intellij/util/graph/impl/Bfs.java @@ -0,0 +1,53 @@ +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.util.graph.impl; + +import com.intellij.util.graph.OutboundSemiGraph; +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayDeque; +import java.util.HashSet; +import java.util.Queue; +import java.util.Set; +import java.util.function.BiConsumer; + + +public final class Bfs { + + private Bfs() { } + + public static <Node> void performBfs( + @NotNull OutboundSemiGraph<Node> graph, + @NotNull Node root, + @NotNull BiConsumer<Node, Integer> visitor + ) { + final Set<Node> visited = new HashSet<>(); + final Queue<WithIndex<Node>> queue = new ArrayDeque<>(); + queue.add(new WithIndex<>(root, 0)); + + while (!queue.isEmpty()) { + final WithIndex<Node> curr = queue.poll(); + + if (!visited.contains(curr)) { + visitor.accept(curr.node, curr.index); + visited.add(curr.node); + } + + graph.getOut(curr.node).forEachRemaining(next -> { + if (!visited.contains(next)) { + queue.add(new WithIndex<>(next, curr.index + 1)); + } + }); + } + } + + + private static final class WithIndex<Node> { + private final @NotNull Node node; + private final int index; + + private WithIndex(@NotNull Node node, int index) { + this.node = node; + this.index = index; + } + } +} diff --git a/platform/core-impl/src/com/intellij/util/graph/impl/Dfs.java b/platform/core-impl/src/com/intellij/util/graph/impl/Dfs.java new file mode 100644 index 000000000000..0928d0cd2392 --- /dev/null +++ b/platform/core-impl/src/com/intellij/util/graph/impl/Dfs.java @@ -0,0 +1,42 @@ +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.util.graph.impl; + +import com.intellij.util.graph.OutboundSemiGraph; +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayDeque; +import java.util.Deque; +import java.util.HashSet; +import java.util.Set; +import java.util.function.Consumer; + + +public final class Dfs { + + private Dfs() { } + + public static <Node> void performDfs( + @NotNull OutboundSemiGraph<Node> graph, + @NotNull Node root, + @NotNull Consumer<Node> visitor + ) { + final Set<Node> visited = new HashSet<>(); + final Deque<Node> stack = new ArrayDeque<>(); + stack.push(root); + + while (!stack.isEmpty()) { + final Node curr = stack.pop(); + + if (!visited.contains(curr)) { + visitor.accept(curr); + visited.add(curr); + } + + graph.getOut(curr).forEachRemaining(next -> { + if (!visited.contains(next)) { + stack.push(next); + } + }); + } + } +} diff --git a/platform/core-impl/src/com/intellij/util/graph/impl/GraphAlgorithmsImpl.java b/platform/core-impl/src/com/intellij/util/graph/impl/GraphAlgorithmsImpl.java index 37d98c2300b2..01f3ca7e8521 100644 --- a/platform/core-impl/src/com/intellij/util/graph/impl/GraphAlgorithmsImpl.java +++ b/platform/core-impl/src/com/intellij/util/graph/impl/GraphAlgorithmsImpl.java @@ -3,13 +3,46 @@ package com.intellij.util.graph.impl; import com.intellij.openapi.progress.ProgressIndicator; import com.intellij.util.Chunk; +import com.intellij.util.containers.ContainerUtil; import com.intellij.util.graph.*; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.*; +import java.util.function.Consumer; public final class GraphAlgorithmsImpl extends GraphAlgorithms { + + @Override + public @NotNull <Node> Collection<Node> findNodesWhichBelongToAnyPathBetweenTwoNodes( + @NotNull Graph<Node> graph, + @NotNull Node start, + @NotNull Node finish + ) { + final Set<Node> reachableFromStart = new HashSet<>(); + final Set<Node> leadToFinish = new HashSet<>(); + + Dfs.performDfs(graph, start, reachableFromStart::add); + Dfs.performDfs(invertEdgeDirections(graph), finish, leadToFinish::add); + + return ContainerUtil.intersection(reachableFromStart, leadToFinish); + } + + @Override + public @NotNull <Node> Collection<Node> findNodeNeighbourhood( + @NotNull Graph<Node> graph, + @NotNull Node node, + int levelBound + ) { + final Set<Node> neighbourhood = new HashSet<>(); + Bfs.performBfs(graph, node, (neighbour, level) -> { + if (level <= levelBound) { + neighbourhood.add(neighbour); + } + }); + return neighbourhood; + } + @Nullable @Override public <Node> List<Node> findShortestPath(@NotNull InboundSemiGraph<Node> graph, @NotNull Node start, @NotNull Node finish) { @@ -29,6 +62,11 @@ public final class GraphAlgorithmsImpl extends GraphAlgorithms { return new CycleFinder<>(graph).getNodeCycles(node); } + @Override + public <Node> void iterateOverAllSimpleCycles(@NotNull Graph<Node> graph, @NotNull Consumer<List<Node>> cycleConsumer) { + new SimpleCyclesIterator<>(graph).iterateSimpleCycles(cycleConsumer); + } + @NotNull @Override public <Node> Graph<Node> invertEdgeDirections(@NotNull final Graph<Node> graph) { @@ -50,7 +88,6 @@ public final class GraphAlgorithmsImpl extends GraphAlgorithms { public Iterator<Node> getOut(final Node n) { return graph.getIn(n); } - }; } diff --git a/platform/core-impl/src/com/intellij/util/graph/impl/SimpleCyclesIterator.java b/platform/core-impl/src/com/intellij/util/graph/impl/SimpleCyclesIterator.java new file mode 100644 index 000000000000..0c76791d35d9 --- /dev/null +++ b/platform/core-impl/src/com/intellij/util/graph/impl/SimpleCyclesIterator.java @@ -0,0 +1,329 @@ +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.util.graph.impl; + +import com.intellij.openapi.util.Pair; +import com.intellij.util.graph.Graph; +import org.jetbrains.annotations.NotNull; + +import java.util.*; +import java.util.function.Consumer; + + +/** + * Find all simple cycles of a directed graph using the Johnson's algorithm. + * The implementation is copied and adapted from JGraphT one. + * + * @see <a href="https://github.com/jgrapht/jgrapht/blob/master/jgrapht-core/src/main/java/org/jgrapht/alg/cycle/JohnsonSimpleCycles.java">JGraphT implementation</a> + */ +public class SimpleCyclesIterator<Node> { + // The graph. + private Graph<Node> myGraph; + + // The main state of the algorithm. + private Consumer<List<Node>> myCycleConsumer = null; + private Node[] myIToV = null; + private Map<Node, Integer> myVToI = null; + private Set<Node> myBlocked = null; + private Map<Node, Set<Node>> myBSets = null; + private ArrayDeque<Node> myStack = null; + + // The state of the embedded Tarjan SCC algorithm. + private List<Set<Node>> myFoundSCCs = null; + private int myIndex = 0; + private Map<Node, Integer> myVIndex = null; + private Map<Node, Integer> myVLowlink = null; + private ArrayDeque<Node> myPath = null; + private Set<Node> myPathSet = null; + + /** + * Create a simple cycle finder for the specified graph. + * + * @param graph - the DirectedGraph in which to find cycles. + * @throws IllegalArgumentException if the graph argument is <code> + * null</code>. + */ + public SimpleCyclesIterator(@NotNull Graph<Node> graph) { + myGraph = graph; + } + + public void iterateSimpleCycles(@NotNull Consumer<List<Node>> consumer) { + if (myGraph == null) { + throw new IllegalArgumentException("Null graph."); + } + initState(consumer); + + int startIndex = 0; + int size = myGraph.getNodes().size(); + while (startIndex < size) { + Pair<Graph<Node>, Integer> minSCCGResult = findMinSCSG(startIndex); + if (minSCCGResult != null) { + startIndex = minSCCGResult.getSecond(); + Graph<Node> scg = minSCCGResult.getFirst(); + Node startV = toV(startIndex); + + //for (E e : scg.outgoingEdgesOf(startV)) { + // Node Node = myGraph.getEdgeTarget(e); + scg.getOut(startV).forEachRemaining(Node -> { + myBlocked.remove(Node); + getBSet(Node).clear(); + }); + findCyclesInSCG(startIndex, startIndex, scg); + startIndex++; + } + else { + break; + } + } + + clearState(); + } + + private Pair<Graph<Node>, Integer> findMinSCSG(int startIndex) { + /* + * Per Johnson : "adjacency structure of strong component $K$ with least vertex in subgraph + * of $G$ induced by $(s, s + 1, n)$". Or in contemporary terms: the strongly connected + * component of the subgraph induced by $(v_1, \dotso ,v_n)$ which contains the minimum + * (among those SCCs) vertex index. We return that index together with the graph. + */ + initMinSCGState(); + + List<Set<Node>> foundSCCs = findSCCS(startIndex); + + // find the SCC with the minimum index + int minIndexFound = Integer.MAX_VALUE; + Set<Node> minSCC = null; + for (Set<Node> scc : foundSCCs) { + for (Node Node : scc) { + int t = toI(Node); + if (t < minIndexFound) { + minIndexFound = t; + minSCC = scc; + } + } + } + if (minSCC == null) { + return null; + } + + // build a graph for the SCC found + Map<Node, Set<Node>> resultGraph = new HashMap<>(); + + for (Node Node : minSCC) { + resultGraph.putIfAbsent(Node, new HashSet<>()); + } + for (Node Node : minSCC) { + for (Node w : minSCC) { + if (containsEdge(myGraph, Node, w)) { + resultGraph.get(Node).add(w); + } + } + } + + Pair<Graph<Node>, Integer> result = Pair.create(toGraph(resultGraph), minIndexFound); + clearMinSCCState(); + return result; + } + + private @NotNull Graph<Node> toGraph(Map<Node, Set<Node>> resultGraph) { + return new Graph<Node>() { + @Override + public @NotNull Collection<Node> getNodes() { + return resultGraph.keySet(); + } + + @Override + public @NotNull Iterator<Node> getIn(Node node) { + return Collections.emptyIterator(); + } + + @Override + public @NotNull Iterator<Node> getOut(Node node) { + Set<Node> nodes = resultGraph.get(node); + return nodes != null ? nodes.iterator() : Collections.emptyIterator(); + } + }; + } + + private boolean containsEdge(Graph<Node> graph, Node source, Node target) { + Iterator<Node> successors = graph.getOut(source); + while (successors.hasNext()) { + Node successor = successors.next(); + if (successor.equals(target)) { + return true; + } + } + return false; + } + + private List<Set<Node>> findSCCS(int startIndex) { + // Find SCCs in the subgraph induced + // by vertices startIndex and beyond. + // A call to StrongConnectivityAlgorithm + // would be too expensive because of the + // need to materialize the subgraph. + // So - do a local search by the Tarjan's + // algorithm and pretend that vertices + // with an index smaller than startIndex + // do not exist. + for (Node Node : myGraph.getNodes()) { + int vI = toI(Node); + if (vI < startIndex) { + continue; + } + if (!myVIndex.containsKey(Node)) { + getSCCs(startIndex, vI); + } + } + List<Set<Node>> result = myFoundSCCs; + myFoundSCCs = null; + return result; + } + + private void getSCCs(int startIndex, int vertexIndex) { + Node vertex = toV(vertexIndex); + myVIndex.put(vertex, myIndex); + myVLowlink.put(vertex, myIndex); + myIndex++; + myPath.push(vertex); + myPathSet.add(vertex); + + Set<Node> successors = new HashSet<>(); + myGraph.getOut(vertex).forEachRemaining(successors::add); + for (Node successor : successors) { + int successorIndex = toI(successor); + if (successorIndex < startIndex) { + continue; + } + if (!myVIndex.containsKey(successor)) { + getSCCs(startIndex, successorIndex); + myVLowlink.put(vertex, Math.min(myVLowlink.get(vertex), myVLowlink.get(successor))); + } + else if (myPathSet.contains(successor)) { + myVLowlink.put(vertex, Math.min(myVLowlink.get(vertex), myVIndex.get(successor))); + } + } + if (myVLowlink.get(vertex).equals(myVIndex.get(vertex))) { + Set<Node> result = new HashSet<>(); + Node temp; + do { + temp = myPath.pop(); + myPathSet.remove(temp); + result.add(temp); + } + while (!vertex.equals(temp)); + if (result.size() == 1) { + Node Node = result.iterator().next(); + if (successors.contains(Node)) { + myFoundSCCs.add(result); + } + } + else { + myFoundSCCs.add(result); + } + } + } + + private boolean findCyclesInSCG(int startIndex, int vertexIndex, Graph<Node> scg) { + /* + * Find cycles in a strongly connected graph per Johnson. + */ + boolean foundCycle = false; + Node vertex = toV(vertexIndex); + myStack.push(vertex); + myBlocked.add(vertex); + + Set<Node> successors = new HashSet<>(); + scg.getOut(vertex).forEachRemaining(successors::add); + for (Node successor : successors) { + int successorIndex = toI(successor); + if (successorIndex == startIndex) { + List<Node> cycle = new ArrayList<>(myStack.size()); + myStack.descendingIterator().forEachRemaining(cycle::add); + myCycleConsumer.accept(cycle); + foundCycle = true; + } + else if (!myBlocked.contains(successor)) { + boolean gotCycle = findCyclesInSCG(startIndex, successorIndex, scg); + foundCycle = foundCycle || gotCycle; + } + } + if (foundCycle) { + unblock(vertex); + } + else { + for (Node w : successors) { + Set<Node> bSet = getBSet(w); + bSet.add(vertex); + } + } + myStack.pop(); + return foundCycle; + } + + private void unblock(@NotNull Node vertex) { + myBlocked.remove(vertex); + Set<Node> bSet = getBSet(vertex); + while (bSet.size() > 0) { + Node w = bSet.iterator().next(); + bSet.remove(w); + if (myBlocked.contains(w)) { + unblock(w); + } + } + } + + @SuppressWarnings("unchecked") + private void initState(@NotNull Consumer<List<Node>> consumer) { + myCycleConsumer = consumer; + myIToV = (Node[])myGraph.getNodes().toArray(); + myVToI = new HashMap<>(); + myBlocked = new HashSet<>(); + myBSets = new HashMap<>(); + myStack = new ArrayDeque<>(); + + for (int i = 0; i < myIToV.length; i++) { + myVToI.put(myIToV[i], i); + } + } + + private void clearState() { + myCycleConsumer = null; + myIToV = null; + myVToI = null; + myBlocked = null; + myBSets = null; + myStack = null; + } + + private void initMinSCGState() { + myIndex = 0; + myFoundSCCs = new ArrayList<>(); + myVIndex = new HashMap<>(); + myVLowlink = new HashMap<>(); + myPath = new ArrayDeque<>(); + myPathSet = new HashSet<>(); + } + + private void clearMinSCCState() { + myIndex = 0; + myFoundSCCs = null; + myVIndex = null; + myVLowlink = null; + myPath = null; + myPathSet = null; + } + + private @NotNull Integer toI(@NotNull Node vertex) { + return myVToI.get(vertex); + } + + private @NotNull Node toV(@NotNull Integer i) { + return myIToV[i]; + } + + private @NotNull Set<Node> getBSet(@NotNull Node Node) { + // B sets typically not all needed, + // so instantiate lazily. + return myBSets.computeIfAbsent(Node, k -> new HashSet<>()); + } +} diff --git a/platform/diff-api/resources/messages/DiffBundle.properties b/platform/diff-api/resources/messages/DiffBundle.properties index e15e278c9dac..173bc8b811c4 100644 --- a/platform/diff-api/resources/messages/DiffBundle.properties +++ b/platform/diff-api/resources/messages/DiffBundle.properties @@ -28,8 +28,7 @@ diff.inactive.count.differences.status.text=({0} inactive) diff.all.differences.ignored.text=Differences ignored diff.highlighting.disabled.text=Differences highlighting is off error.cant.show.diff.message=Error: Cannot show diff -select.external.diff.program.dialog.title=Select External Diff Program -select.external.merge.program.dialog.title=Select External Merge Program +select.external.program.dialog.title=Select External Program diff.cant.calculate.diff=Can not calculate diff diff.contents.are.identical.message.text=Contents are identical error.files.too.large.to.compare.text=Files are too large to compare @@ -94,14 +93,8 @@ settings.merge.text=Merge settings.automatically.apply.non.conflicting.changes=Automatically apply non-conflicting changes settings.highlight.modified.lines.in.gutter=Highlight modified lines in gutter settings.external.diff.enable.external.tools=Enable external tools -settings.external.diff.path.to.executable=Path to executable: -settings.external.diff.parameters=Parameters: -settings.external.diff.use.by.default=Use by default settings.external.diff.test.diff=Test Diff settings.external.diff.test.three.side.diff=Test Three-Side Diff -settings.external.diff.enable.external.merge.tool=Enable external merge tool -settings.external.diff.path.to.executable.merge=Path to executable: -settings.external.diff.parameters.merge=Parameters: settings.external.diff.trust.process.exit.code=Trust process exit code settings.external.diff.test.merge=Test Merge settings.external.diff.left.file.content=Left file content @@ -118,25 +111,18 @@ settings.external.tools.parameters.description=Different tools have different pa settings.external.tools.parameters.diff=<b>%1</b> - left (Local changes)<br><b>%2</b> - right (Server content)<br><b>%3</b> - base (Current version without local changes) settings.external.tools.parameters.merge=<b>%1</b> - left (Local changes)<br><b>%2</b> - right (Server content)<br><b>%3</b> - base (Current version without local changes)<br><b>%4</b> - output (Merge result) -settings.external.diff.table.default.tool.name=Default -settings.external.diff.table.default.tool.builtin=Built-in -settings.external.diff.table.filetype.column=File type -settings.external.diff.table.difftool.column=External diff tool -settings.external.diff.table.mergetool.column=External merge tool -settings.external.diff.table.add.dialog.title=Configure external diff with file type -settings.external.diff.table.add.dialog.filetype=File type: -settings.external.diff.table.add.dialog.difftool=External diff tool: -settings.external.diff.table.add.dialog.mergetool=External merge tool: -settings.external.diff.table.remove.dialog.title=Remove external diff tool +settings.external.diff.table.filetype.column=File Type +settings.external.diff.table.difftool.column=Diff Tool +settings.external.diff.table.mergetool.column=Merge Tool +settings.external.diff.table.remove.dialog.title=Remove External Diff Tool settings.external.diff.table.remove.dialog.message=Are you sure you want to delete the entry? -settings.external.diff.table.validation.empty=Tool must be selected -settings.external.diff.table.validation.filetype.registered=FileType already registered -settings.external.tool.tree.remove.group.warning.title=Unable to delete a tool group +settings.external.tool.tree.remove.group.warning.title=Unable to Delete a Tool Group settings.external.tool.tree.remove.group.warning.message=Select the tool to be removed -settings.external.tool.tree.remove.warning.title=Unable to delete selected tool +settings.external.tool.tree.remove.warning.title=Unable to Delete Selected Tool settings.external.tool.tree.remove.warning.message=This tool is used in configuration. First remove the configuration in table -settings.external.tool.tree.add.dialog.title=Add an external tool +settings.external.tool.tree.add.dialog.title=Add An External Tool +settings.external.tool.tree.edit.dialog.title=Edit An External Tool settings.external.tool.tree.add.dialog.field.group=Tool group settings.external.tool.tree.add.dialog.field.tool.name=Tool name settings.external.tool.tree.add.dialog.field.program.path=Program path diff --git a/platform/diff-impl/src/com/intellij/diff/settings/ExternalDiffSettingsPanel.kt b/platform/diff-impl/src/com/intellij/diff/settings/ExternalDiffSettingsPanel.kt index ba2da5eec95d..192878d487b1 100644 --- a/platform/diff-impl/src/com/intellij/diff/settings/ExternalDiffSettingsPanel.kt +++ b/platform/diff-impl/src/com/intellij/diff/settings/ExternalDiffSettingsPanel.kt @@ -19,8 +19,10 @@ import com.intellij.diff.tools.external.ExternalDiffSettings import com.intellij.openapi.diff.DiffBundle import com.intellij.openapi.ui.DialogPanel import com.intellij.ui.components.JBCheckBox -import com.intellij.ui.dsl.builder.* +import com.intellij.ui.dsl.builder.BottomGap import com.intellij.ui.dsl.builder.Cell +import com.intellij.ui.dsl.builder.LabelPosition +import com.intellij.ui.dsl.builder.bindSelected import com.intellij.ui.dsl.builder.panel import com.intellij.ui.dsl.gridLayout.HorizontalAlign import com.intellij.ui.layout.* @@ -39,18 +41,17 @@ class ExternalDiffSettingsPanel { .bindSelected(settings::isExternalToolsEnabled) } - val externalToolsTablePanel = ExternalToolsTablePanel() + val models = ExternalToolsModels() + val externalToolsTablePanel = ExternalToolsTablePanel(models) indent { row { - val treePanel = ExternalToolsTreePanel(externalToolsTablePanel.model) + val treePanel = ExternalToolsTreePanel(models) cell(treePanel.component) .label(DiffBundle.message("settings.external.diff.panel.tree.title"), LabelPosition.TOP) .horizontalAlign(HorizontalAlign.FILL) - .bind( - { treePanel.getData() }, - { _, value -> treePanel.updateData(value) }, - settings::externalTools.toMutableProperty() - ) + .onIsModified { treePanel.onModified(settings) } + .onApply { treePanel.onApply(settings) } + .onReset { treePanel.onReset(settings) } }.bottomGap(BottomGap.MEDIUM) row { diff --git a/platform/diff-impl/src/com/intellij/diff/settings/ExternalToolsModels.kt b/platform/diff-impl/src/com/intellij/diff/settings/ExternalToolsModels.kt new file mode 100644 index 000000000000..40949c87a32a --- /dev/null +++ b/platform/diff-impl/src/com/intellij/diff/settings/ExternalToolsModels.kt @@ -0,0 +1,23 @@ +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.diff.settings + +import com.intellij.diff.tools.external.ExternalDiffSettings.ExternalToolConfiguration +import com.intellij.diff.tools.external.ExternalDiffSettings.ExternalToolGroup +import com.intellij.openapi.diff.DiffBundle +import com.intellij.ui.CheckedTreeNode +import com.intellij.util.ui.ListTableModel +import javax.swing.tree.DefaultTreeModel + +internal class ExternalToolsModels { + val treeModel = DefaultTreeModel(CheckedTreeNode()) + + val tableModel = ListTableModel<ExternalToolConfiguration>( + ExternalToolsTablePanel.FileTypeColumn(this), + ExternalToolsTablePanel.ExternalToolColumn(ExternalToolGroup.DIFF_TOOL, + treeModel, + DiffBundle.message("settings.external.diff.table.difftool.column")), + ExternalToolsTablePanel.ExternalToolColumn(ExternalToolGroup.MERGE_TOOL, + treeModel, + DiffBundle.message("settings.external.diff.table.mergetool.column")) + ) +}
\ No newline at end of file diff --git a/platform/diff-impl/src/com/intellij/diff/settings/ExternalToolsTablePanel.kt b/platform/diff-impl/src/com/intellij/diff/settings/ExternalToolsTablePanel.kt index 4975a2e45ef2..06ca2297102b 100644 --- a/platform/diff-impl/src/com/intellij/diff/settings/ExternalToolsTablePanel.kt +++ b/platform/diff-impl/src/com/intellij/diff/settings/ExternalToolsTablePanel.kt @@ -2,55 +2,45 @@ package com.intellij.diff.settings import com.intellij.diff.tools.external.ExternalDiffSettings -import com.intellij.diff.tools.external.ExternalDiffSettings.ExternalToolConfiguration +import com.intellij.diff.tools.external.ExternalDiffSettings.* import com.intellij.openapi.diff.DiffBundle import com.intellij.openapi.fileTypes.FileTypeManager -import com.intellij.openapi.ui.ComboBox -import com.intellij.openapi.ui.DialogWrapper +import com.intellij.openapi.ui.ComboBoxTableRenderer import com.intellij.openapi.ui.MessageDialogBuilder -import com.intellij.openapi.ui.ValidationInfo -import com.intellij.ui.ColoredListCellRenderer -import com.intellij.ui.ColoredTableCellRenderer +import com.intellij.openapi.util.NlsContexts +import com.intellij.ui.CheckedTreeNode +import com.intellij.ui.SimpleColoredComponent import com.intellij.ui.SimpleTextAttributes import com.intellij.ui.ToolbarDecorator -import com.intellij.ui.dsl.builder.Row -import com.intellij.ui.dsl.builder.panel -import com.intellij.ui.dsl.gridLayout.HorizontalAlign import com.intellij.ui.table.TableView import com.intellij.util.ui.ColumnInfo -import com.intellij.util.ui.JBUI import com.intellij.util.ui.ListTableModel import com.intellij.util.ui.components.BorderLayoutPanel -import java.awt.event.MouseAdapter -import java.awt.event.MouseEvent +import java.awt.Component +import javax.swing.Icon import javax.swing.JComponent -import javax.swing.JList import javax.swing.JTable +import javax.swing.table.TableCellEditor import javax.swing.table.TableCellRenderer +import javax.swing.tree.DefaultMutableTreeNode +import javax.swing.tree.DefaultTreeModel -internal class ExternalToolsTablePanel : BorderLayoutPanel() { - private val columnInfos = arrayOf(FileTypeColumn(), ExternalDiffToolColumn(), ExternalMergeToolColumn()) - - val model: ListTableModel<ExternalToolConfiguration> = ListTableModel<ExternalToolConfiguration>(columnInfos, mutableListOf(), 0) +internal class ExternalToolsTablePanel(private val models: ExternalToolsModels) : BorderLayoutPanel() { + val component: JComponent + private val model: ListTableModel<ExternalToolConfiguration> = models.tableModel private val table: TableView<ExternalToolConfiguration> = TableView(model).apply { visibleRowCount = 8 - addMouseListener(object : MouseAdapter() { - override fun mousePressed(mouseEvent: MouseEvent) { - if (mouseEvent.clickCount == 2 && selectedRow != -1) { - editData() - } - } - }) - } + rowSelectionAllowed = false + tableHeader.reorderingAllowed = false - val component: JComponent + setExpandableItemsEnabled(false) + } init { val toolbarTable = ToolbarDecorator.createDecorator(table) .setAddAction { addData() } .setRemoveAction { removeData() } - .setEditAction { editData() } .disableUpDownActions() .createPanel() @@ -79,15 +69,16 @@ internal class ExternalToolsTablePanel : BorderLayoutPanel() { fun onReset(settings: ExternalDiffSettings) { repeat(model.items.size) { model.removeRow(0) } - model.addRow(settings.defaultToolConfiguration) - model.addRows(settings.externalToolsConfiguration) + model.addRow(settings.defaultToolConfiguration.copy()) + model.addRows(settings.externalToolsConfiguration.map { it.copy() }) } private fun addData() { - val dialog = AddToolConfigurationDialog() - if (dialog.showAndGet()) { - model.addRow(dialog.createExternalToolConfiguration()) - } + val fileTypes = FileTypeManager.getInstance().registeredFileTypes.map { it.displayName }.toSet() + val configuredFileTypes = models.tableModel.items.map { it.fileTypeName }.toSet() + val availableFileTypes = fileTypes - configuredFileTypes + + model.addRow(ExternalToolConfiguration(availableFileTypes.first())) } private fun removeData() { @@ -102,212 +93,101 @@ internal class ExternalToolsTablePanel : BorderLayoutPanel() { } } - private fun editData() { - val selectedRow = table.selectedRow - val selectedToolConfiguration = model.getItem(selectedRow) - val dialog = AddToolConfigurationDialog(selectedToolConfiguration) - - if (dialog.showAndGet()) { - val toolConfiguration = dialog.createExternalToolConfiguration() - - model.removeRow(selectedRow) - model.insertRow(selectedRow, toolConfiguration) - } - } - - private class FileTypeColumn : ColumnInfo<ExternalToolConfiguration, String>( + class FileTypeColumn(private val models: ExternalToolsModels) : ColumnInfo<ExternalToolConfiguration, String>( DiffBundle.message("settings.external.diff.table.filetype.column") ) { - override fun valueOf(externalToolConfiguration: ExternalToolConfiguration): String { - return externalToolConfiguration.fileTypeName - } + private val fileTypes = FileTypeManager.getInstance().registeredFileTypes.map { it.displayName }.toSet() - override fun getRenderer(item: ExternalToolConfiguration): TableCellRenderer { - return object : ColoredTableCellRenderer() { - override fun customizeCellRenderer(table: JTable, value: Any?, selected: Boolean, hasFocus: Boolean, row: Int, column: Int) { - if (item.fileTypeName == ExternalToolConfiguration.DEFAULT_TOOL_NAME) { - append(DiffBundle.message("settings.external.diff.table.default.tool.name"), SimpleTextAttributes.REGULAR_BOLD_ATTRIBUTES) - return - } - - val fileTypeManager = FileTypeManager.getInstance() - val fileType = fileTypeManager.findFileTypeByName(item.fileTypeName) - - icon = fileType.icon - append(fileType.description) - } - } - } - } - - private class ExternalDiffToolColumn : ColumnInfo<ExternalToolConfiguration, String>( - DiffBundle.message("settings.external.diff.table.difftool.column") - ) { - override fun valueOf(externalToolConfiguration: ExternalToolConfiguration): String { - return externalToolConfiguration.diffToolName - } - - override fun getRenderer(item: ExternalToolConfiguration): TableCellRenderer { - return ToolCellRenderer(item.diffToolName) - } - } - - private class ExternalMergeToolColumn : ColumnInfo<ExternalToolConfiguration, String>( - DiffBundle.message("settings.external.diff.table.mergetool.column") - ) { override fun valueOf(externalToolConfiguration: ExternalToolConfiguration): String { - return externalToolConfiguration.mergeToolName + return externalToolConfiguration.fileTypeName } - override fun getRenderer(item: ExternalToolConfiguration): TableCellRenderer { - return ToolCellRenderer(item.mergeToolName) + override fun setValue(item: ExternalToolConfiguration, value: String) { + item.fileTypeName = value } - } - private class ToolCellRenderer(private val toolName: String) : ColoredTableCellRenderer() { - override fun customizeCellRenderer(table: JTable, value: Any?, selected: Boolean, hasFocus: Boolean, row: Int, column: Int) { - if (toolName == ExternalToolConfiguration.BUILTIN_TOOL) { - append(DiffBundle.message("settings.external.diff.table.default.tool.builtin"), SimpleTextAttributes.REGULAR_BOLD_ATTRIBUTES) - return - } + override fun getEditor(item: ExternalToolConfiguration): TableCellEditor = createComboBoxRendererAndEditor() - append(toolName) // NON-NLS - } - } + override fun getRenderer(item: ExternalToolConfiguration): TableCellRenderer = createComboBoxRendererAndEditor() - private inner class AddToolConfigurationDialog(private val oldFileType: String? = null) : DialogWrapper(null) { - private val fileTypeManager = FileTypeManager.getInstance() - private val fileTypes = fileTypeManager.registeredFileTypes.map { it.name }.toList() + override fun isCellEditable(item: ExternalToolConfiguration): Boolean = true - private val builtinTool = ExternalDiffSettings.ExternalTool(ExternalToolConfiguration.BUILTIN_TOOL) - private val tools = ExternalDiffSettings.instance.externalTools - private val externalDiffTools = mutableListOf(builtinTool).apply { - tools[ExternalDiffSettings.ExternalToolGroup.DIFF_TOOL]?.let { addAll(it) } - } - private val externalMergeTools = mutableListOf(builtinTool).apply { - tools[ExternalDiffSettings.ExternalToolGroup.MERGE_TOOL]?.let { addAll(it) } - } + private fun createComboBoxRendererAndEditor(): ComboBoxTableRenderer<String> { + val configuredFileTypes = models.tableModel.items.map { it.fileTypeName }.toSet() + val availableFileTypes = fileTypes - configuredFileTypes - private val fileTypeField = ComboBox(fileTypes.toTypedArray()).apply { - renderer = FileTypeCellRenderer() - } - private val diffToolField = ComboBox(externalDiffTools.toTypedArray()).apply { - renderer = ExternalToolCellRenderer() - } - private val mergeToolField = ComboBox(externalMergeTools.toTypedArray()).apply { - renderer = ExternalToolCellRenderer() + return FileTypeCellComboBox(availableFileTypes.toTypedArray()).withClickCount(1) } - private lateinit var fileTypeRow: Row + private class FileTypeCellComboBox(values: Array<String>) : ComboBoxTableRenderer<String>(values) { + private val fileTypeManager = FileTypeManager.getInstance() - constructor(externalToolConfiguration: ExternalToolConfiguration) : this(externalToolConfiguration.fileTypeName) { - if (externalToolConfiguration.fileTypeName == ExternalToolConfiguration.DEFAULT_TOOL_NAME) { - customizeWithDefaultTool(externalToolConfiguration) - return - } - - fileTypeField.selectedItem = externalToolConfiguration.fileTypeName // NON-NLS - diffToolField.selectedItem = externalDiffTools.find { it.name == externalToolConfiguration.diffToolName } - mergeToolField.selectedItem = externalMergeTools.find { it.name == externalToolConfiguration.mergeToolName } - } + override fun getTableCellRendererComponent(table: JTable, value: Any, + isSelected: Boolean, hasFocus: Boolean, + row: Int, column: Int): Component { + if ((value as String) == ExternalToolConfiguration.DEFAULT_TOOL_NAME) { + return SimpleColoredComponent().apply { + append(value, SimpleTextAttributes.REGULAR_BOLD_ATTRIBUTES) // NON-NLS + } + } - init { - JBUI.size(400, 200).let { - rootPane.minimumSize = it - rootPane.preferredSize = it + return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column) } - title = DiffBundle.message("settings.external.diff.table.add.dialog.title") - init() - } + override fun getTableCellEditorComponent(table: JTable, value: Any, isSelected: Boolean, row: Int, column: Int): Component? { + if ((value as String) == ExternalToolConfiguration.DEFAULT_TOOL_NAME) { + return null + } - override fun createCenterPanel(): JComponent = panel { - fileTypeRow = row(DiffBundle.message("settings.external.diff.table.add.dialog.filetype")) { - cell(fileTypeField).horizontalAlign(HorizontalAlign.FILL).validationOnApply { fileTypeValidation(it.item) } - } - row(DiffBundle.message("settings.external.diff.table.add.dialog.difftool")) { - cell(diffToolField).horizontalAlign(HorizontalAlign.FILL).validationOnApply { comboBoxValidation(it.item) } + return super.getTableCellEditorComponent(table, value, isSelected, row, column) } - row(DiffBundle.message("settings.external.diff.table.add.dialog.mergetool")) { - cell(mergeToolField).horizontalAlign(HorizontalAlign.FILL).validationOnApply { comboBoxValidation(it.item) } - } - } - - fun createExternalToolConfiguration(): ExternalToolConfiguration = ExternalToolConfiguration(fileTypeField.item, - diffToolField.item.name, - mergeToolField.item.name) - - private fun customizeWithDefaultTool(externalToolConfiguration: ExternalToolConfiguration) { - fileTypeField.removeAllItems() - fileTypeField.addItem(ExternalToolConfiguration.DEFAULT_TOOL_NAME) // NON-NLS - fileTypeField.item = ExternalToolConfiguration.DEFAULT_TOOL_NAME // NON-NLS - diffToolField.selectedItem = getExternalToolOrDefault(externalToolConfiguration.diffToolName, externalDiffTools) - mergeToolField.selectedItem = getExternalToolOrDefault(externalToolConfiguration.mergeToolName, externalMergeTools) - - fileTypeRow.visible(false) + override fun getIconFor(value: String): Icon? = fileTypeManager.findFileTypeByName(value)?.icon } + } - private fun fileTypeValidation(fileTypeName: String): ValidationInfo? { - model.fireTableDataChanged() - if (model.items.any { it.fileTypeName == fileTypeName } && fileTypeName != oldFileType) { - return ValidationInfo(DiffBundle.message("settings.external.diff.table.validation.filetype.registered")) - } - - return null + class ExternalToolColumn( + private val externalToolGroup: ExternalToolGroup, + private val treeModel: DefaultTreeModel, + @NlsContexts.ColumnName columnMessage: String + ) : ColumnInfo<ExternalToolConfiguration, String>(columnMessage) { + override fun valueOf(externalToolConfiguration: ExternalToolConfiguration): String = when (externalToolGroup) { + ExternalToolGroup.DIFF_TOOL -> externalToolConfiguration.diffToolName + ExternalToolGroup.MERGE_TOOL -> externalToolConfiguration.mergeToolName } - private fun comboBoxValidation(externalTool: ExternalDiffSettings.ExternalTool?): ValidationInfo? { - if (externalTool == null) { - return ValidationInfo(DiffBundle.message("settings.external.diff.table.validation.empty")) + override fun setValue(item: ExternalToolConfiguration, value: String) { + when (externalToolGroup) { + ExternalToolGroup.DIFF_TOOL -> item.diffToolName = value + ExternalToolGroup.MERGE_TOOL -> item.mergeToolName = value } - - return null } - private fun getExternalToolOrDefault(toolName: String, - tools: List<ExternalDiffSettings.ExternalTool>): ExternalDiffSettings.ExternalTool? { - return if (toolName == ExternalToolConfiguration.BUILTIN_TOOL) builtinTool - else tools.find { tool -> tool.name == toolName } - } + override fun getRenderer(item: ExternalToolConfiguration): TableCellRenderer = createComboBoxRendererAndEditor() - private inner class FileTypeCellRenderer : ColoredListCellRenderer<String>() { - override fun customizeCellRenderer(list: JList<out String>, - value: String, - index: Int, - selected: Boolean, - hasFocus: Boolean) { - if (value == ExternalToolConfiguration.DEFAULT_TOOL_NAME) { - append(DiffBundle.message("settings.external.diff.table.default.tool.name"), SimpleTextAttributes.REGULAR_BOLD_ATTRIBUTES) - return - } + override fun getEditor(item: ExternalToolConfiguration): TableCellEditor = createComboBoxRendererAndEditor() - val fileType = fileTypeManager.findFileTypeByName(value) - if (fileType == null) return + override fun isCellEditable(item: ExternalToolConfiguration): Boolean = true - icon = fileType.icon - append(fileType.description) - } + private fun createComboBoxRendererAndEditor(): ComboBoxTableRenderer<String> { + val values = treeModel.collectTools(externalToolGroup).toTypedArray() + return ComboBoxTableRenderer(values).withClickCount(1) } - private inner class ExternalToolCellRenderer : ColoredListCellRenderer<ExternalDiffSettings.ExternalTool>() { - override fun customizeCellRenderer(list: JList<out ExternalDiffSettings.ExternalTool>, - value: ExternalDiffSettings.ExternalTool?, - index: Int, - selected: Boolean, - hasFocus: Boolean) { - if (value == null) { - append("") - return + private fun DefaultTreeModel.collectTools(externalToolGroup: ExternalToolGroup): List<String> { + val tools = mutableListOf(ExternalToolConfiguration.BUILTIN_TOOL) + for (child in (root as CheckedTreeNode).children()) { + val treeNode = child as DefaultMutableTreeNode + if (treeNode.userObject as ExternalToolGroup == externalToolGroup) { + tools.addAll(treeNode.children().asSequence().map { + val node = it as DefaultMutableTreeNode + val tool = node.userObject as ExternalTool + tool.name + }.toList()) } - - if (value.name == ExternalToolConfiguration.BUILTIN_TOOL) { - append(DiffBundle.message("settings.external.diff.table.default.tool.builtin"), SimpleTextAttributes.REGULAR_BOLD_ATTRIBUTES) - return - } - - append(value.name) // NON-NLS } + + return tools } } }
\ No newline at end of file diff --git a/platform/diff-impl/src/com/intellij/diff/settings/ExternalToolsTreePanel.kt b/platform/diff-impl/src/com/intellij/diff/settings/ExternalToolsTreePanel.kt index 492c831e4f01..f8ac861a6e49 100644 --- a/platform/diff-impl/src/com/intellij/diff/settings/ExternalToolsTreePanel.kt +++ b/platform/diff-impl/src/com/intellij/diff/settings/ExternalToolsTreePanel.kt @@ -6,7 +6,10 @@ import com.intellij.diff.DiffRequestFactory import com.intellij.diff.merge.MergeResult import com.intellij.diff.merge.ThreesideMergeRequest import com.intellij.diff.tools.external.ExternalDiffSettings +import com.intellij.diff.tools.external.ExternalDiffSettings.ExternalTool +import com.intellij.diff.tools.external.ExternalDiffSettings.ExternalToolGroup import com.intellij.diff.tools.external.ExternalDiffToolUtil +import com.intellij.ide.util.treeView.TreeState import com.intellij.openapi.diff.DiffBundle import com.intellij.openapi.editor.impl.DocumentImpl import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory @@ -14,57 +17,71 @@ import com.intellij.openapi.fileTypes.FileTypes import com.intellij.openapi.fileTypes.PlainTextFileType import com.intellij.openapi.ui.* import com.intellij.openapi.util.text.StringUtil -import com.intellij.ui.CheckboxTree -import com.intellij.ui.CheckedTreeNode import com.intellij.ui.ColoredListCellRenderer +import com.intellij.ui.SimpleColoredComponent +import com.intellij.ui.SmartExpander import com.intellij.ui.ToolbarDecorator import com.intellij.ui.components.JBCheckBox import com.intellij.ui.components.JBTextField -import com.intellij.ui.dsl.builder.MAX_LINE_LENGTH_WORD_WRAP +import com.intellij.ui.dsl.builder.DEFAULT_COMMENT_WIDTH import com.intellij.ui.dsl.builder.TopGap import com.intellij.ui.dsl.builder.components.DslLabel import com.intellij.ui.dsl.builder.components.DslLabelType import com.intellij.ui.dsl.builder.panel import com.intellij.ui.dsl.gridLayout.HorizontalAlign import com.intellij.ui.layout.* -import com.intellij.util.ui.JBUI +import com.intellij.ui.treeStructure.Tree +import com.intellij.util.PathUtilRt import com.intellij.util.ui.ListTableModel import com.intellij.util.ui.components.BorderLayoutPanel import com.intellij.util.ui.tree.TreeUtil +import java.awt.Component import java.awt.event.MouseAdapter import java.awt.event.MouseEvent -import javax.swing.JButton -import javax.swing.JComponent -import javax.swing.JList -import javax.swing.JTree +import javax.swing.* import javax.swing.event.DocumentEvent import javax.swing.event.DocumentListener +import javax.swing.event.TreeExpansionEvent +import javax.swing.event.TreeExpansionListener import javax.swing.tree.DefaultMutableTreeNode import javax.swing.tree.DefaultTreeModel +import javax.swing.tree.TreeCellRenderer import javax.swing.tree.TreePath -internal class ExternalToolsTreePanel( - private val tableModel: ListTableModel<ExternalDiffSettings.ExternalToolConfiguration> -) : BorderLayoutPanel() { - private val root = CheckedTreeNode() - private val treeModel = DefaultTreeModel(root) - private val tree = CheckboxTree(ExternalToolsTreeCellRenderer(), root).apply { +internal class ExternalToolsTreePanel(private val models: ExternalToolsModels) : BorderLayoutPanel() { + private var treeState: TreeState + private val treeModel = models.treeModel + private val root = treeModel.root as DefaultMutableTreeNode + private val tree = Tree(treeModel).apply { visibleRowCount = 8 - model = treeModel + isRootVisible = false + cellRenderer = ExternalToolsTreeCellRenderer() + treeState = TreeState.createOn(this) + addMouseListener(object : MouseAdapter() { override fun mousePressed(mouseEvent: MouseEvent) { - if (mouseEvent.clickCount == 2 && selectionPath != null) { - when ((selectionPath.lastPathComponent as DefaultMutableTreeNode).userObject) { - is ExternalDiffSettings.ExternalToolGroup -> { - if (isExpanded(selectionPath)) collapsePath(selectionPath) - else expandPath(selectionPath) - } - is ExternalDiffSettings.ExternalTool -> editData() + val treePath = selectionPath ?: return + if (mouseEvent.clickCount == 2 && SwingUtilities.isLeftMouseButton(mouseEvent)) { + mouseEvent.consume() + val node = treePath.lastPathComponent as DefaultMutableTreeNode + when (node.userObject) { + is ExternalTool -> editData() else -> {} } } } }) + addTreeExpansionListener(object : TreeExpansionListener { + override fun treeExpanded(event: TreeExpansionEvent) { + treeState = TreeState.createOn(this@apply) + } + + override fun treeCollapsed(event: TreeExpansionEvent) { + treeState = TreeState.createOn(this@apply) + } + }) + + SmartExpander.installOn(this) } val component: JComponent @@ -72,7 +89,9 @@ internal class ExternalToolsTreePanel( init { val decoratedTree = ToolbarDecorator.createDecorator(tree) .setAddAction { addTool() } + .setRemoveActionUpdater { isExternalToolSelected(tree.selectionPath) } .setRemoveAction { removeData() } + .setEditActionUpdater { isExternalToolSelected(tree.selectionPath) } .setEditAction { editData() } .disableUpDownActions() .createPanel() @@ -80,36 +99,16 @@ internal class ExternalToolsTreePanel( component = decoratedTree } - fun getData(): MutableMap<ExternalDiffSettings.ExternalToolGroup, List<ExternalDiffSettings.ExternalTool>> { - val data = mutableMapOf<ExternalDiffSettings.ExternalToolGroup, List<ExternalDiffSettings.ExternalTool>>() - - for (group in root.children()) { - val groupNode = group as DefaultMutableTreeNode - - val tools = mutableListOf<ExternalDiffSettings.ExternalTool>() - for (child in group.children()) { - val childNode = child as DefaultMutableTreeNode - val tool = childNode.userObject as ExternalDiffSettings.ExternalTool - tools.add(tool) - } - - data[groupNode.userObject as ExternalDiffSettings.ExternalToolGroup] = tools - } + fun onModified(settings: ExternalDiffSettings): Boolean = treeModel.toMap() != settings.externalTools - return data + fun onApply(settings: ExternalDiffSettings) { + settings.externalTools = treeModel.toMap() + treeState = TreeState.createOn(tree) } - fun updateData(value: Map<ExternalDiffSettings.ExternalToolGroup, List<ExternalDiffSettings.ExternalTool>>) { - root.removeAllChildren() - - value.toSortedMap().forEach { (group, tools) -> - val groupNode = DefaultMutableTreeNode(group) - tools.forEach { groupNode.add(DefaultMutableTreeNode(it)) } - treeModel.insertNodeInto(groupNode, root, root.childCount) - } - - treeModel.nodeStructureChanged(root) - TreeUtil.expandAll(tree) + fun onReset(settings: ExternalDiffSettings) { + treeModel.update(settings.externalTools) + treeState.applyTo(tree) } private fun addTool() { @@ -125,10 +124,10 @@ internal class ExternalToolsTreePanel( } } - private fun findGroupNode(externalToolGroup: ExternalDiffSettings.ExternalToolGroup): DefaultMutableTreeNode { + private fun findGroupNode(externalToolGroup: ExternalToolGroup): DefaultMutableTreeNode { for (child in root.children()) { val treeNode = child as DefaultMutableTreeNode - val valueNode = treeNode.userObject as ExternalDiffSettings.ExternalToolGroup + val valueNode = treeNode.userObject as ExternalToolGroup if (valueNode == externalToolGroup) return treeNode } @@ -141,14 +140,11 @@ internal class ExternalToolsTreePanel( private fun removeData() { val treePath = tree.selectionPath ?: return val node = treePath.lastPathComponent as DefaultMutableTreeNode - if (node.userObject !is ExternalDiffSettings.ExternalTool) { - Messages.showWarningDialog(DiffBundle.message("settings.external.tool.tree.remove.group.warning.message"), - DiffBundle.message("settings.external.tool.tree.remove.group.warning.title")) - return - } + val parentNode = treePath.parentPath.lastPathComponent as DefaultMutableTreeNode + val toolGroup = parentNode.userObject as ExternalToolGroup - val externalTool = node.userObject as ExternalDiffSettings.ExternalTool - if (ExternalDiffSettings.isConfigurationRegistered(externalTool)) { + val externalTool = node.userObject as ExternalTool + if (isConfigurationRegistered(externalTool, toolGroup)) { Messages.showWarningDialog(DiffBundle.message("settings.external.tool.tree.remove.warning.message"), DiffBundle.message("settings.external.tool.tree.remove.warning.title")) return @@ -158,57 +154,83 @@ internal class ExternalToolsTreePanel( DiffBundle.message("settings.external.diff.table.remove.dialog.message")) if (dialog.guessWindowAndAsk()) { treeModel.removeNodeFromParent(node) + if (parentNode.childCount == 0) { + treeModel.removeNodeFromParent(parentNode) + } } } private fun editData() { val treePath = tree.selectionPath ?: return val node = treePath.lastPathComponent as DefaultMutableTreeNode - if (node.userObject !is ExternalDiffSettings.ExternalTool) { + if (node.userObject !is ExternalTool) { return } - val currentTool = node.userObject as ExternalDiffSettings.ExternalTool + val currentTool = node.userObject as ExternalTool val dialog = AddToolDialog(currentTool) if (dialog.showAndGet()) { val editedTool = dialog.createExternalTool() val groupNode = findGroupNode(dialog.getToolGroup()) - val toolGroup = groupNode.userObject as ExternalDiffSettings.ExternalToolGroup + val toolGroup = groupNode.userObject as ExternalToolGroup node.userObject = editedTool treeModel.nodeChanged(node) - tableModel.updateEntities(toolGroup, currentTool, editedTool) + models.tableModel.updateEntities(toolGroup, currentTool, editedTool) } } - private class ExternalToolsTreeCellRenderer : CheckboxTree.CheckboxTreeCellRenderer() { - override fun customizeRenderer(tree: JTree?, - value: Any?, - selected: Boolean, - expanded: Boolean, - leaf: Boolean, - row: Int, - hasFocus: Boolean) { - val renderer = textRenderer - val text = when (val item = (value as DefaultMutableTreeNode).userObject) { - null -> return - is ExternalDiffSettings.ExternalToolGroup -> item.groupName // NON-NLS - is ExternalDiffSettings.ExternalTool -> item.name // NON-NLS - else -> item.toString() // NON-NLS - } + private fun isConfigurationRegistered(externalTool: ExternalTool, externalToolGroup: ExternalToolGroup): Boolean { + val configurations = models.tableModel.items + + return when (externalToolGroup) { + ExternalToolGroup.DIFF_TOOL -> configurations.any { it.diffToolName == externalTool.name } + ExternalToolGroup.MERGE_TOOL -> configurations.any { it.mergeToolName == externalTool.name } + } + } + + private fun isExternalToolSelected(selectionPath: TreePath?): Boolean { + if (selectionPath == null) return false + + val node = selectionPath.lastPathComponent as DefaultMutableTreeNode + return when (node.userObject) { + is ExternalTool -> true + else -> false + } + } - renderer.append(text) + private class ExternalToolsTreeCellRenderer : TreeCellRenderer { + private val renderer = SimpleColoredComponent() + + override fun getTreeCellRendererComponent(tree: JTree, value: Any, + selected: Boolean, expanded: Boolean, + leaf: Boolean, row: Int, hasFocus: Boolean): Component { + return renderer.apply { + val node = value as DefaultMutableTreeNode + val text = when (val userObject = node.userObject) { + null -> "" // Special for root (not visible in tree) + is ExternalToolGroup -> userObject.groupName // NON-NLS + is ExternalTool -> userObject.name // NON-NLS + else -> userObject.toString() // NON-NLS + } + + clear() + append(text) + } } } - private inner class AddToolDialog(private val oldToolName: String? = null) : DialogWrapper(null) { + private inner class AddToolDialog( + private val oldToolName: String? = null, + private val isEditMode: Boolean = false, + ) : DialogWrapper(null) { private val groupField = ComboBox( - arrayOf(ExternalDiffSettings.ExternalToolGroup.DIFF_TOOL, ExternalDiffSettings.ExternalToolGroup.MERGE_TOOL) + arrayOf(ExternalToolGroup.DIFF_TOOL, ExternalToolGroup.MERGE_TOOL) ).apply { - renderer = object : ColoredListCellRenderer<ExternalDiffSettings.ExternalToolGroup>() { - override fun customizeCellRenderer(list: JList<out ExternalDiffSettings.ExternalToolGroup>, - value: ExternalDiffSettings.ExternalToolGroup, + renderer = object : ColoredListCellRenderer<ExternalToolGroup>() { + override fun customizeCellRenderer(list: JList<out ExternalToolGroup>, + value: ExternalToolGroup, index: Int, selected: Boolean, hasFocus: Boolean) { @@ -229,14 +251,12 @@ internal class ExternalToolsTreePanel( }) } private val programPathField = TextFieldWithBrowseButton().apply { - addBrowseFolderListener(DiffBundle.message("select.external.diff.program.dialog.title"), - null, - null, + addBrowseFolderListener(DiffBundle.message("select.external.program.dialog.title"), null, null, FileChooserDescriptorFactory.createSingleFileNoJarsDescriptor()) textField.document.addDocumentListener(object : DocumentListener { override fun insertUpdate(event: DocumentEvent) { if (isAutocompleteToolName) { - val guessToolName = StringUtil.capitalize(text.split("/").last()) + val guessToolName = StringUtil.capitalize(PathUtilRt.getFileName(text)) toolNameField.text = guessToolName } } @@ -258,24 +278,23 @@ internal class ExternalToolsTreePanel( addActionListener { showTestMerge() } } private val argumentPatternDescription = DslLabel(DslLabelType.COMMENT).apply { - maxLineLength = MAX_LINE_LENGTH_WORD_WRAP - text = createDescription(ExternalDiffSettings.ExternalToolGroup.DIFF_TOOL) + maxLineLength = DEFAULT_COMMENT_WIDTH + text = createDescription(ExternalToolGroup.DIFF_TOOL) } - constructor(externalTool: ExternalDiffSettings.ExternalTool) : this(externalTool.name) { + constructor(externalTool: ExternalTool) : this(externalTool.name, true) { + isAutocompleteToolName = false + toolNameField.text = externalTool.name programPathField.text = externalTool.programPath argumentPatternField.text = externalTool.argumentPattern + isMergeTrustExitCode.isSelected = externalTool.isMergeTrustExitCode + groupField.selectedItem = externalTool.groupName - groupField.isEnabled = false + title = DiffBundle.message("settings.external.tool.tree.edit.dialog.title") } init { - JBUI.size(WINDOW_WIDTH, WINDOW_HEIGHT).let { - rootPane.minimumSize = it - rootPane.preferredSize = it - } - title = DiffBundle.message("settings.external.tool.tree.add.dialog.title") init() @@ -284,7 +303,7 @@ internal class ExternalToolsTreePanel( override fun createCenterPanel(): JComponent = panel { row(DiffBundle.message("settings.external.tool.tree.add.dialog.field.group")) { cell(groupField).horizontalAlign(HorizontalAlign.FILL) - } + }.visible(!isEditMode) row(DiffBundle.message("settings.external.tool.tree.add.dialog.field.program.path")) { cell(programPathField).horizontalAlign(HorizontalAlign.FILL) } @@ -296,52 +315,50 @@ internal class ExternalToolsTreePanel( } row { cell(isMergeTrustExitCode).horizontalAlign(HorizontalAlign.FILL) - .enabledIf(object : ComponentPredicate() { + .visibleIf(object : ComponentPredicate() { override fun addListener(listener: (Boolean) -> Unit) { groupField.addItemListener { - val isMergeEnabled = invoke() - testDiffButton.isVisible = !isMergeEnabled - testThreeSideDiffButton.isVisible = !isMergeEnabled - testMergeButton.isVisible = isMergeEnabled + val isMergeGroup = invoke() + testDiffButton.isVisible = !isMergeGroup + testThreeSideDiffButton.isVisible = !isMergeGroup + testMergeButton.isVisible = isMergeGroup argumentPatternField.text = - if (isMergeEnabled) MERGE_TOOL_DEFAULT_ARGUMENT_PATTERN + if (isMergeGroup) MERGE_TOOL_DEFAULT_ARGUMENT_PATTERN else DIFF_TOOL_DEFAULT_ARGUMENT_PATTERN argumentPatternDescription.text = - if (isMergeEnabled) createDescription(ExternalDiffSettings.ExternalToolGroup.MERGE_TOOL) - else createDescription(ExternalDiffSettings.ExternalToolGroup.DIFF_TOOL) + if (isMergeGroup) createDescription(ExternalToolGroup.MERGE_TOOL) + else createDescription(ExternalToolGroup.DIFF_TOOL) - listener(isMergeEnabled) + listener(isMergeGroup) } } override fun invoke(): Boolean { - val item = groupField.selectedItem as ExternalDiffSettings.ExternalToolGroup - return item == ExternalDiffSettings.ExternalToolGroup.MERGE_TOOL + val item = groupField.selectedItem as ExternalToolGroup + return item == ExternalToolGroup.MERGE_TOOL } }) } row { cell(argumentPatternDescription) } row { - val isMergeEnabled = isMergeTrustExitCode.isEnabled - cell(testDiffButton).visible(!isMergeEnabled) - cell(testThreeSideDiffButton).visible(!isMergeEnabled) - cell(testMergeButton).visible(isMergeEnabled) + val isMergeGroup = isMergeTrustExitCode.isVisible + cell(testDiffButton).visible(!isMergeGroup) + cell(testThreeSideDiffButton).visible(!isMergeGroup) + cell(testMergeButton).visible(isMergeGroup) }.topGap(TopGap.MEDIUM) } - fun createExternalTool(): ExternalDiffSettings.ExternalTool = ExternalDiffSettings.ExternalTool( - toolNameField.text, - programPathField.text, - argumentPatternField.text, - isMergeTrustExitCode.isEnabled && isMergeTrustExitCode.isSelected, - groupField.item - ) + fun createExternalTool(): ExternalTool = ExternalTool(toolNameField.text, + programPathField.text, + argumentPatternField.text, + isMergeTrustExitCode.isVisible && isMergeTrustExitCode.isSelected, + groupField.item) - fun getToolGroup(): ExternalDiffSettings.ExternalToolGroup = groupField.item + fun getToolGroup(): ExternalToolGroup = groupField.item - private fun toolFieldValidation(toolGroup: ExternalDiffSettings.ExternalToolGroup, toolName: String): ValidationInfo? { + private fun toolFieldValidation(toolGroup: ExternalToolGroup, toolName: String): ValidationInfo? { if (toolName.isEmpty()) { return ValidationInfo(DiffBundle.message("settings.external.tool.tree.validation.empty")) } @@ -353,10 +370,10 @@ internal class ExternalToolsTreePanel( return null } - private fun isToolAlreadyExist(toolGroup: ExternalDiffSettings.ExternalToolGroup, toolName: String): Boolean { + private fun isToolAlreadyExist(toolGroup: ExternalToolGroup, toolName: String): Boolean { val isNodeExist = TreeUtil.findNode(findGroupNode(toolGroup)) { node -> when (val externalTool = node.userObject) { - is ExternalDiffSettings.ExternalTool -> externalTool.name == toolName + is ExternalTool -> externalTool.name == toolName else -> false // skip root } } @@ -364,11 +381,11 @@ internal class ExternalToolsTreePanel( return isNodeExist != null } - private fun createDescription(toolGroup: ExternalDiffSettings.ExternalToolGroup): String { + private fun createDescription(toolGroup: ExternalToolGroup): String { val title = DiffBundle.message("settings.external.tools.parameters.description") val argumentPattern = when (toolGroup) { - ExternalDiffSettings.ExternalToolGroup.DIFF_TOOL -> DiffBundle.message("settings.external.tools.parameters.diff") - ExternalDiffSettings.ExternalToolGroup.MERGE_TOOL -> DiffBundle.message("settings.external.tools.parameters.merge") + ExternalToolGroup.DIFF_TOOL -> DiffBundle.message("settings.external.tools.parameters.diff") + ExternalToolGroup.MERGE_TOOL -> DiffBundle.message("settings.external.tools.parameters.merge") } return "$title<br>$argumentPattern" @@ -428,13 +445,49 @@ internal class ExternalToolsTreePanel( } } + private fun DefaultTreeModel.toMap(): MutableMap<ExternalToolGroup, List<ExternalTool>> { + val root = this.root as DefaultMutableTreeNode + val model = mutableMapOf<ExternalToolGroup, List<ExternalTool>>() + + for (group in root.children()) { + if (group.childCount == 0) continue + + val groupNode = group as DefaultMutableTreeNode + val tools = mutableListOf<ExternalTool>() + for (child in group.children()) { + val childNode = child as DefaultMutableTreeNode + val tool = childNode.userObject as ExternalTool + tools.add(tool) + } + + model[groupNode.userObject as ExternalToolGroup] = tools + } + + return model + } + + private fun DefaultTreeModel.update(value: Map<ExternalToolGroup, List<ExternalTool>>) { + val root = this.root as DefaultMutableTreeNode + root.removeAllChildren() + + value.toSortedMap().forEach { (group, tools) -> + if (tools.isEmpty()) return@forEach + + val groupNode = DefaultMutableTreeNode(group) + tools.forEach { groupNode.add(DefaultMutableTreeNode(it)) } + insertNodeInto(groupNode, root, root.childCount) + } + + nodeStructureChanged(root) + } + private fun ListTableModel<ExternalDiffSettings.ExternalToolConfiguration>.updateEntities( - toolGroup: ExternalDiffSettings.ExternalToolGroup, - oldTool: ExternalDiffSettings.ExternalTool, - newTool: ExternalDiffSettings.ExternalTool + toolGroup: ExternalToolGroup, + oldTool: ExternalTool, + newTool: ExternalTool ) { items.forEach { configuration -> - if (toolGroup == ExternalDiffSettings.ExternalToolGroup.DIFF_TOOL) { + if (toolGroup == ExternalToolGroup.DIFF_TOOL) { if (configuration.diffToolName == oldTool.name) { configuration.diffToolName = newTool.name } @@ -448,9 +501,6 @@ internal class ExternalToolsTreePanel( } companion object { - private const val WINDOW_WIDTH = 400 - private const val WINDOW_HEIGHT = 400 - private const val DIFF_TOOL_DEFAULT_ARGUMENT_PATTERN = "%1 %2 %3" private const val MERGE_TOOL_DEFAULT_ARGUMENT_PATTERN = "%1 %2 %3 %4" } diff --git a/platform/diff-impl/src/com/intellij/diff/tools/external/ExternalDiffSettings.kt b/platform/diff-impl/src/com/intellij/diff/tools/external/ExternalDiffSettings.kt index 06a4ee810463..8dcfcc26d45c 100644 --- a/platform/diff-impl/src/com/intellij/diff/tools/external/ExternalDiffSettings.kt +++ b/platform/diff-impl/src/com/intellij/diff/tools/external/ExternalDiffSettings.kt @@ -5,6 +5,8 @@ import com.intellij.diff.util.DiffUtil import com.intellij.openapi.components.* import com.intellij.openapi.fileTypes.FileType import com.intellij.openapi.fileTypes.FileTypeManager +import com.intellij.openapi.util.text.StringUtil +import com.intellij.util.PathUtilRt import com.intellij.util.xmlb.annotations.OptionTag import org.jetbrains.annotations.NonNls @@ -87,27 +89,6 @@ class ExternalDiffSettings : BaseState(), PersistentStateComponent<ExternalDiffS private fun nonNullString(initialValue: String = "") = property(initialValue) { it == initialValue } - private fun migrateOldSettings(state: ExternalDiffSettings) { - if (!state.isSettingsMigrated) { - // load old settings - state.isExternalToolsEnabled = isDiffEnabled - val oldDiffTool = ExternalTool(state.diffExePath, state.diffExePath, state.diffParameters, - false, ExternalToolGroup.DIFF_TOOL) - val oldMergeTool = ExternalTool(state.mergeExePath, state.mergeExePath, state.mergeParameters, - state.isMergeTrustExitCode, ExternalToolGroup.MERGE_TOOL) - state.externalTools[ExternalToolGroup.DIFF_TOOL] = listOf(oldDiffTool) - state.externalTools[ExternalToolGroup.MERGE_TOOL] = listOf(oldMergeTool) - - // save old settings - state.defaultToolConfiguration = defaultToolConfiguration.apply { - if (state.isDiffEnabled && diffExePath.isNotEmpty()) diffToolName = oldDiffTool.name - if (state.isMergeEnabled && mergeExePath.isNotEmpty()) mergeToolName = oldMergeTool.name - } - - state.isSettingsMigrated = true - } - } - companion object { @JvmStatic val instance: ExternalDiffSettings @@ -148,17 +129,38 @@ class ExternalDiffSettings : BaseState(), PersistentStateComponent<ExternalDiffS return instance.defaultToolConfiguration.mergeToolName != ExternalToolConfiguration.BUILTIN_TOOL } - @JvmStatic - fun isConfigurationRegistered(externalTool: ExternalTool): Boolean { - return instance.defaultToolConfiguration.diffToolName == externalTool.name || - instance.defaultToolConfiguration.mergeToolName == externalTool.name || - instance.externalToolsConfiguration.any { it.diffToolName == externalTool.name || it.mergeToolName == externalTool.name } - } - private fun findTool(tools: List<ExternalTool>, toolName: String): ExternalTool? = tools.find { it.name == toolName } private fun findToolConfiguration(fileType: FileType): ExternalToolConfiguration? = instance.externalToolsConfiguration.find { fileTypeManager.findFileTypeByName(it.fileTypeName) == fileType } + + private fun migrateOldSettings(state: ExternalDiffSettings) { + if (!state.isSettingsMigrated) { + // load old settings + state.isExternalToolsEnabled = state.isDiffEnabled || state.isMergeEnabled + + // save old settings + state.defaultToolConfiguration = ExternalToolConfiguration().apply { + if (state.diffExePath.isNotEmpty()) { + val oldDiffTool = ExternalTool(StringUtil.capitalize(PathUtilRt.getFileName(state.diffExePath)), + state.diffExePath, state.diffParameters, + false, ExternalToolGroup.DIFF_TOOL) + state.externalTools[ExternalToolGroup.DIFF_TOOL] = listOf(oldDiffTool) + diffToolName = oldDiffTool.name + } + + if (state.mergeExePath.isNotEmpty()) { + val oldMergeTool = ExternalTool(StringUtil.capitalize(PathUtilRt.getFileName(state.mergeExePath)), + state.mergeExePath, state.mergeParameters, + state.isMergeTrustExitCode, ExternalToolGroup.MERGE_TOOL) + state.externalTools[ExternalToolGroup.MERGE_TOOL] = listOf(oldMergeTool) + mergeToolName = oldMergeTool.name + } + } + + state.isSettingsMigrated = true + } + } } } diff --git a/platform/diff-impl/src/com/intellij/diff/tools/external/ExternalDiffToolUtil.java b/platform/diff-impl/src/com/intellij/diff/tools/external/ExternalDiffToolUtil.java index 7594b9c6c17b..21e89addee57 100644 --- a/platform/diff-impl/src/com/intellij/diff/tools/external/ExternalDiffToolUtil.java +++ b/platform/diff-impl/src/com/intellij/diff/tools/external/ExternalDiffToolUtil.java @@ -21,7 +21,6 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.Messages; import com.intellij.openapi.util.Ref; import com.intellij.openapi.util.io.FileUtil; -import com.intellij.openapi.util.io.StreamUtil; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.CharsetToolkit; import com.intellij.openapi.vfs.VfsUtil; @@ -42,9 +41,7 @@ import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.io.File; import java.io.IOException; -import java.io.InputStreamReader; import java.nio.charset.Charset; -import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -323,7 +320,7 @@ public final class ExternalDiffToolUtil { @NotNull private static Process execute(@NotNull String exePath, @NotNull String parametersTemplate, @NotNull Map<String, String> patterns) - throws ExecutionException, IOException { + throws ExecutionException { List<String> parameters = ParametersListUtil.parse(parametersTemplate, true); List<String> from = new ArrayList<>(); @@ -342,14 +339,7 @@ public final class ExternalDiffToolUtil { GeneralCommandLine commandLine = new GeneralCommandLine(); commandLine.setExePath(exePath); commandLine.addParameters(args); - - Process process = commandLine.createProcess(); - String infoMessage = StreamUtil.readText(new InputStreamReader(process.getInputStream(), StandardCharsets.UTF_8)); // NON-NLS - if (!infoMessage.isEmpty()) { - throw new ExecutionException(infoMessage); - } - - return process; + return commandLine.createProcess(); } // diff --git a/platform/execution-impl/src/com/intellij/execution/runToolbar/RunToolbarAdditionAction.kt b/platform/execution-impl/src/com/intellij/execution/runToolbar/RunToolbarAdditionAction.kt index 4fb1717dd48c..134a3f2b44d3 100644 --- a/platform/execution-impl/src/com/intellij/execution/runToolbar/RunToolbarAdditionAction.kt +++ b/platform/execution-impl/src/com/intellij/execution/runToolbar/RunToolbarAdditionAction.kt @@ -11,22 +11,25 @@ internal class RunToolbarAdditionAction(val executorGroup: ExecutorGroup<*>, val process: RunToolbarProcess, val selectedAction: () -> AnAction?) : AnAction() { init { - updatePresentation(templatePresentation) + updateAndGetVisibility(templatePresentation) } override fun update(e: AnActionEvent) { - updatePresentation(e.presentation) + e.presentation.isVisible = updateAndGetVisibility(e.presentation) e.project?.let { e.presentation.isEnabled = !e.isActiveProcess() } } - private fun updatePresentation(presentation: Presentation) { + private fun updateAndGetVisibility(presentation: Presentation): Boolean { val action = selectedAction() - if (action is ExecutorRegistryImpl.ExecutorAction) { + return if (action is ExecutorRegistryImpl.ExecutorAction) { presentation.copyFrom(action.getTemplatePresentation()) presentation.text = executorGroup.getRunToolbarActionText(action.templatePresentation.text) + true + } else { + false } } diff --git a/platform/execution-impl/src/com/intellij/execution/runToolbar/RunToolbarEditConfigurationAction.kt b/platform/execution-impl/src/com/intellij/execution/runToolbar/RunToolbarEditConfigurationAction.kt index 5a772525e1c3..1b7c0a8854f2 100644 --- a/platform/execution-impl/src/com/intellij/execution/runToolbar/RunToolbarEditConfigurationAction.kt +++ b/platform/execution-impl/src/com/intellij/execution/runToolbar/RunToolbarEditConfigurationAction.kt @@ -67,7 +67,7 @@ class RunToolbarMoveToTopAction : DumbAwareAction() { override fun actionPerformed(e: AnActionEvent) { e.project?.let { project -> val manager = RunToolbarSlotManager.getInstance(project) - if (manager.getState().isSinglePlain()) { + if (manager.getState().isSinglePlain() && manager.mainSlotData == e.runToolbarData()) { manager.activeProcesses.activeSlots.firstOrNull()?.let { manager.moveToTop(it.id) } diff --git a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/SourceFolderManagerImpl.kt b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/SourceFolderManagerImpl.kt index d75481449625..74e338501212 100644 --- a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/SourceFolderManagerImpl.kt +++ b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/SourceFolderManagerImpl.kt @@ -16,7 +16,7 @@ import com.intellij.openapi.module.ModuleManager import com.intellij.openapi.project.ModuleListener import com.intellij.openapi.project.Project import com.intellij.openapi.roots.ModifiableRootModel -import com.intellij.openapi.roots.ModuleRootManagerEx +import com.intellij.openapi.roots.ModuleRootManager import com.intellij.openapi.roots.SourceFolder import com.intellij.openapi.roots.impl.RootConfigurationAccessor import com.intellij.openapi.util.Disposer @@ -31,6 +31,7 @@ import com.intellij.util.containers.MultiMap import com.intellij.util.xmlb.annotations.XCollection import com.intellij.workspaceModel.ide.WorkspaceModel import com.intellij.workspaceModel.ide.impl.legacyBridge.RootConfigurationAccessorForWorkspaceModel +import com.intellij.workspaceModel.ide.impl.legacyBridge.module.roots.ModuleRootComponentBridge import com.intellij.workspaceModel.ide.legacyBridge.ModifiableRootModelBridge import com.intellij.workspaceModel.storage.WorkspaceEntityStorageBuilder import com.intellij.workspaceModel.storage.toBuilder @@ -199,8 +200,9 @@ class SourceFolderManagerImpl(private val project: Project) : SourceFolderManage private fun batchUpdateModels(project: Project, modules: Collection<Module>, modifier: (ModifiableRootModel) -> Unit) { val diffBuilder = WorkspaceModel.getInstance(project).entityStorage.current.toBuilder() val modifiableRootModels = modules.asSequence().filter { !it.isDisposed }.map { module -> - val modifiableRootModel = ModuleRootManagerEx.getInstanceEx(module).getModifiableModelForMultiCommit( - ExternalSystemRootConfigurationAccessor(diffBuilder)) + val moduleRootComponentBridge = ModuleRootManager.getInstance(module) as ModuleRootComponentBridge + val modifiableRootModel = moduleRootComponentBridge.getModifiableModelForMultiCommit(ExternalSystemRootConfigurationAccessor(diffBuilder), + false) modifiableRootModel as ModifiableRootModelBridge modifier.invoke(modifiableRootModel) modifiableRootModel.prepareForCommit() diff --git a/platform/icons/src/toolbarDecorator/exportSmall.svg b/platform/icons/src/toolbarDecorator/exportSmall.svg new file mode 100644 index 000000000000..0bb58c3a8d70 --- /dev/null +++ b/platform/icons/src/toolbarDecorator/exportSmall.svg @@ -0,0 +1,5 @@ +<!-- Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. --> +<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M12 8V4H8L9.4697 5.4697L6.46973 8.46967L7.53039 9.53033L10.5304 6.53036L12 8Z" fill="#6E6E6E"/> +<path d="M4 5H5.5V10.5H11V12H4V5Z" fill="#6E6E6E"/> +</svg> diff --git a/platform/icons/src/toolbarDecorator/exportSmall_dark.svg b/platform/icons/src/toolbarDecorator/exportSmall_dark.svg new file mode 100644 index 000000000000..dfc4a38f8141 --- /dev/null +++ b/platform/icons/src/toolbarDecorator/exportSmall_dark.svg @@ -0,0 +1,5 @@ +<!-- Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. --> +<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M12 8V4H8L9.4697 5.4697L6.46973 8.46967L7.53039 9.53033L10.5304 6.53036L12 8Z" fill="#AFB1B3"/> +<path d="M4 5H5.5V10.5H11V12H4V5Z" fill="#AFB1B3"/> +</svg> diff --git a/platform/ide-core/resources/messages/ApplicationBundle.properties b/platform/ide-core/resources/messages/ApplicationBundle.properties index b07c644f44ef..c925d6e20f17 100644 --- a/platform/ide-core/resources/messages/ApplicationBundle.properties +++ b/platform/ide-core/resources/messages/ApplicationBundle.properties @@ -787,14 +787,14 @@ checkbox.advanced.settings.modified=Show modified only advanced.setting.ide.show.fileType.icon.in.titleBar=Show file type icon in IDE frame header advanced.setting.ide.show.fileType.icon.in.titleBar.description=On macOS, the icon can be used to drag a file to a different application advanced.setting.ide.max.recent.projects=Maximum number of recent projects -advanced.setting.temporary.configurations.limit=Temporary Run/Debug configurations limit +advanced.setting.temporary.configurations.limit=Temporary configurations limit advanced.setting.confirm.rerun.with.termination=Confirm rerun with process termination -advanced.setting.start.run.configurations.pinned=Make run configurations pinned by default +advanced.setting.start.run.configurations.pinned=Make configurations pinned by default advanced.setting.localHistory.daysToKeep=Duration of storing changes in Local History advanced.setting.localHistory.daysToKeep.description=Do not use Local History as the primary version control system since it may become corrupted if the IDE hangs advanced.setting.localHistory.daysToKeep.trailingLabel=days -advanced.setting.se.enable.text.search=Show text search results in Search Everywhere -advanced.setting.se.enable.text.search.description=Show text search results in the "All" tab and display the "Text" tab in Search Everywhere +advanced.setting.se.text.search=Show text search results in Search Everywhere +advanced.setting.se.text.search.description=Show text search results in the "All" tab and display the "Text" tab in Search Everywhere advanced.setting.edit.source.on.enter.key.request.focus.in.editor=Move focus to editor when Enter is pressed advanced.setting.ide.open.readme.md.on.startup=Open README.md file if there are no open files on project startup advanced.setting.editor.skip.copy.and.cut.for.empty.selection=Don't copy/cut the current line when invoking the Copy or Cut action with no selection diff --git a/platform/ide-core/src/com/intellij/openapi/actionSystem/IdeActions.java b/platform/ide-core/src/com/intellij/openapi/actionSystem/IdeActions.java index 310eefc51db1..3d0fc9faeca3 100644 --- a/platform/ide-core/src/com/intellij/openapi/actionSystem/IdeActions.java +++ b/platform/ide-core/src/com/intellij/openapi/actionSystem/IdeActions.java @@ -156,6 +156,7 @@ public interface IdeActions { String ACTION_FIND_USAGES = "FindUsages"; String ACTION_FIND_IN_PATH = "FindInPath"; + String ACTION_REPLACE_IN_PATH = "ReplaceInPath"; String ACTION_TYPE_HIERARCHY = "TypeHierarchy"; String ACTION_METHOD_HIERARCHY = "MethodHierarchy"; diff --git a/platform/indexing-impl/src/com/intellij/psi/search/FilenameIndexImpl.java b/platform/indexing-impl/src/com/intellij/psi/search/FilenameIndexImpl.java index 11e937dbf76a..553297430a46 100644 --- a/platform/indexing-impl/src/com/intellij/psi/search/FilenameIndexImpl.java +++ b/platform/indexing-impl/src/com/intellij/psi/search/FilenameIndexImpl.java @@ -2,6 +2,7 @@ package com.intellij.psi.search; +import com.intellij.openapi.util.registry.Registry; import com.intellij.util.indexing.*; import com.intellij.util.io.EnumeratorStringDescriptor; import com.intellij.util.io.KeyDescriptor; @@ -46,7 +47,7 @@ public class FilenameIndexImpl extends ScalarIndexExtension<String> { @Override public int getVersion() { - return 3; + return 3 + (Registry.is("indexing.filename.over.vfs") ? 0xff : 0); } @Override diff --git a/platform/lang-api/src/com/intellij/codeInsight/hints/InlayHintsProvider.kt b/platform/lang-api/src/com/intellij/codeInsight/hints/InlayHintsProvider.kt index e697707736e9..fce21fe7fdd3 100644 --- a/platform/lang-api/src/com/intellij/codeInsight/hints/InlayHintsProvider.kt +++ b/platform/lang-api/src/com/intellij/codeInsight/hints/InlayHintsProvider.kt @@ -108,6 +108,7 @@ interface InlayHintsProvider<T : Any> { @JvmDefault val description: String? + @Nls get() { return getProperty("inlay." + key.id + ".description") } @@ -141,6 +142,12 @@ interface InlayHintsProvider<T : Any> { fun preparePreview(editor: Editor, file: PsiFile, settings: T) { } + @Nls + @JvmDefault + fun getCaseDescription(case: ImmediateConfigurable.Case): String? { + return getProperty("inlay." + this.key.id + "." + case.id) + } + val isVisibleInSettings: Boolean get() = true } diff --git a/platform/lang-api/src/com/intellij/codeInsight/hints/InlayParameterHintsProvider.java b/platform/lang-api/src/com/intellij/codeInsight/hints/InlayParameterHintsProvider.java index b7b46d76d600..9b74eb6be14d 100644 --- a/platform/lang-api/src/com/intellij/codeInsight/hints/InlayParameterHintsProvider.java +++ b/platform/lang-api/src/com/intellij/codeInsight/hints/InlayParameterHintsProvider.java @@ -149,6 +149,9 @@ public interface InlayParameterHintsProvider { return SyntaxTraverser.psiTraverser(root); } + @Nls + default String getDescription() { return null; } + /** * @param key bundle key of the option. * @return description of the given option or null (in this case it won't be shown). diff --git a/platform/lang-api/src/com/intellij/ide/actions/searcheverywhere/SearchEverywhereContributor.java b/platform/lang-api/src/com/intellij/ide/actions/searcheverywhere/SearchEverywhereContributor.java index 50636c73f563..6d220b5b39d4 100644 --- a/platform/lang-api/src/com/intellij/ide/actions/searcheverywhere/SearchEverywhereContributor.java +++ b/platform/lang-api/src/com/intellij/ide/actions/searcheverywhere/SearchEverywhereContributor.java @@ -74,10 +74,7 @@ public interface SearchEverywhereContributor<Item> extends PossiblyDumbAware, Di * <p>Defines if separate tab should be shown for this contributor in <i>Search Everywhere</i> dialog.</p> * <p>Please do not override this method unless absolutely necessary. Too many separate tabs make the <i>Search Everywhere</i> * dialog unusable.</p> - * - * @deprecated method is not used since 2022.1 */ - @Deprecated(since = "2022.1") default boolean isShownInSeparateTab() { return false; } diff --git a/platform/lang-api/src/com/intellij/ide/actions/searcheverywhere/TabsCustomizationStrategy.kt b/platform/lang-api/src/com/intellij/ide/actions/searcheverywhere/TabsCustomizationStrategy.kt new file mode 100644 index 000000000000..82064a24d707 --- /dev/null +++ b/platform/lang-api/src/com/intellij/ide/actions/searcheverywhere/TabsCustomizationStrategy.kt @@ -0,0 +1,18 @@ +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.ide.actions.searcheverywhere + +import com.intellij.openapi.application.ApplicationManager +import org.jetbrains.annotations.ApiStatus + +@ApiStatus.Internal +@ApiStatus.Experimental +interface TabsCustomizationStrategy { + + companion object { + @JvmStatic fun getInstance(): TabsCustomizationStrategy = + ApplicationManager.getApplication().getService(TabsCustomizationStrategy::class.java) + } + + fun getSeparateTabContributors(contributors: List<SearchEverywhereContributor<*>>) : List<SearchEverywhereContributor<*>> + +}
\ No newline at end of file diff --git a/platform/lang-core/src/com/intellij/ide/util/projectWizard/WizardContext.java b/platform/lang-core/src/com/intellij/ide/util/projectWizard/WizardContext.java index e8204bf4f362..9ee062d162ae 100644 --- a/platform/lang-core/src/com/intellij/ide/util/projectWizard/WizardContext.java +++ b/platform/lang-core/src/com/intellij/ide/util/projectWizard/WizardContext.java @@ -44,6 +44,7 @@ public class WizardContext extends UserDataHolderBase { private ModulesProvider myModulesProvider; private boolean myProjectFileDirectorySetExplicitly; private String myDefaultModuleName = "untitled"; + private int myScreen = 1; public void setProjectStorageFormat(StorageScheme format) { myProjectStorageFormat = format; @@ -233,4 +234,12 @@ public class WizardContext extends UserDataHolderBase { public Session getSessionId() { return mySessionId; } + + public int getScreen() { + return myScreen; + } + + public void setScreen(int screen) { + myScreen = screen; + } } diff --git a/platform/lang-impl/resources/codeVisionProviders/problems/preview.java b/platform/lang-impl/resources/codeVisionProviders/problems/preview.java new file mode 100644 index 000000000000..8a4b0f4cb6c4 --- /dev/null +++ b/platform/lang-impl/resources/codeVisionProviders/problems/preview.java @@ -0,0 +1,5 @@ +class Thing { + void changedMethod(String s) { + + } +}
\ No newline at end of file diff --git a/platform/lang-impl/resources/codeVisionProviders/vcs.code.vision/preview.java b/platform/lang-impl/resources/codeVisionProviders/vcs.code.vision/preview.java new file mode 100644 index 000000000000..f74088d87f83 --- /dev/null +++ b/platform/lang-impl/resources/codeVisionProviders/vcs.code.vision/preview.java @@ -0,0 +1,5 @@ +class Thing { + void doThing() { + + } +}
\ No newline at end of file diff --git a/platform/lang-impl/resources/messages/CodeVisionBundle.properties b/platform/lang-impl/resources/messages/CodeVisionBundle.properties index 539f9863eede..efde2a8b5d8e 100644 --- a/platform/lang-impl/resources/messages/CodeVisionBundle.properties +++ b/platform/lang-impl/resources/messages/CodeVisionBundle.properties @@ -7,9 +7,10 @@ CodeVisionConfigurable.column.name.metric=Metric CodeVisionConfigurable.column.name.position=Position ShowCodeVisionPopupAction.action.show.code.vision.text=Show Code Vision -LensListPopup.tooltip.settings=&Settings +LensListPopup.tooltip.settings=&Configure... -action.hide.this.metric.text=&Hide this metric +action.hide.this.metric.text=&Hide `Code Vision: {0}` Inlay Hints +action.hide.all.text=&Hide All `Code Vision` Inlay Hints CodeLensGlobalSettingsProvider.defaultPosition.description=Default position for metrics: CodeLensGlobalSettingsProvider.visibleMetricsAbove.description=Visible metrics above declaration: diff --git a/platform/lang-impl/src/com/intellij/codeInsight/codeVision/CodeVisionHost.kt b/platform/lang-impl/src/com/intellij/codeInsight/codeVision/CodeVisionHost.kt index 97c97f070d55..4226e7b71380 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/codeVision/CodeVisionHost.kt +++ b/platform/lang-impl/src/com/intellij/codeInsight/codeVision/CodeVisionHost.kt @@ -1,9 +1,14 @@ +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.codeInsight.codeVision +import com.intellij.codeInsight.codeVision.settings.CodeVisionGroupDefaultSettingModel import com.intellij.codeInsight.codeVision.settings.CodeVisionSettings import com.intellij.codeInsight.codeVision.settings.CodeVisionSettingsLiveModel import com.intellij.codeInsight.codeVision.ui.CodeVisionView import com.intellij.codeInsight.codeVision.ui.model.PlaceholderCodeVisionEntry +import com.intellij.codeInsight.codeVision.ui.model.RichTextCodeVisionEntry +import com.intellij.codeInsight.codeVision.ui.model.richText.RichText +import com.intellij.codeInsight.daemon.DaemonCodeAnalyzer import com.intellij.codeInsight.hints.InlayGroup import com.intellij.codeInsight.hints.settings.InlayHintsConfigurable import com.intellij.codeInsight.hints.settings.language.isInlaySettingsEditor @@ -14,7 +19,8 @@ import com.intellij.openapi.Disposable import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.ModalityState import com.intellij.openapi.application.runReadAction -import com.intellij.openapi.components.ServiceManager +import com.intellij.openapi.components.service +import com.intellij.openapi.diagnostic.ControlFlowException import com.intellij.openapi.editor.Editor import com.intellij.openapi.editor.EditorKind import com.intellij.openapi.editor.event.DocumentEvent @@ -32,7 +38,10 @@ import com.intellij.openapi.roots.ProjectRootManager import com.intellij.openapi.util.Key import com.intellij.openapi.util.TextRange import com.intellij.psi.PsiFile +import com.intellij.psi.PsiManager import com.intellij.psi.SyntaxTraverser +import com.intellij.psi.util.PsiModificationTracker +import com.intellij.ui.SimpleTextAttributes import com.intellij.util.Alarm import com.intellij.util.application import com.intellij.util.concurrency.AppExecutorUtil @@ -95,7 +104,7 @@ open class CodeVisionHost(val project: Project) { init { - lifeSettingModel.isEnabledWithRegistry.whenTrue(codeVisionLifetime) { enableCodeVisionLifetime -> + lifeSettingModel.isRegistryEnabled.whenTrue(codeVisionLifetime) { enableCodeVisionLifetime -> ApplicationManager.getApplication().invokeLater { runReadAction { if (project.isDisposed) return@runReadAction @@ -106,7 +115,7 @@ open class CodeVisionHost(val project: Project) { } } - val viewService = ServiceManager.getService(project, CodeVisionView::class.java) + val viewService = project.service<CodeVisionView>() viewService.setPerAnchorLimits( CodeVisionAnchorKind.values().associateWith { (lifeSettingModel.getAnchorLimit(it) ?: defaultVisibleLenses) }) @@ -147,6 +156,17 @@ open class CodeVisionHost(val project: Project) { recollectAndRearrangeProviders() } }) + project.messageBus.connect(enableCodeVisionLifetime.createNestedDisposable()) + .subscribe(CodeVisionSettings.CODE_LENS_SETTINGS_CHANGED, object : CodeVisionSettings.CodeVisionSettingsListener { + override fun groupPositionChanged(id: String, position: CodeVisionAnchorKind) { + + } + + override fun providerAvailabilityChanged(id: String, isEnabled: Boolean) { + PsiManager.getInstance(project).dropPsiCaches() + DaemonCodeAnalyzer.getInstance(project).restart() + } + }) } } } @@ -162,7 +182,7 @@ open class CodeVisionHost(val project: Project) { val placeholders = ArrayList<Pair<TextRange, CodeVisionEntry>>() val settings = CodeVisionSettings.instance() for (provider in providers) { - if (!settings.isProviderEnabled(provider.id)) continue + if (!settings.isProviderEnabled(provider.groupId)) continue if (getAnchorForProvider(provider) != CodeVisionAnchorKind.Top) continue val placeholderCollector: CodeVisionPlaceholderCollector = provider.getPlaceholderCollector(editor, psiFile) ?: continue if (placeholderCollector is BypassBasedPlaceholderCollector) { @@ -230,6 +250,12 @@ open class CodeVisionHost(val project: Project) { } open fun handleLensExtraAction(editor: Editor, range: TextRange, entry: CodeVisionEntry, actionId: String) { + if (actionId == settingsLensProviderId) { + val provider = getProviderById(entry.providerId) + openCodeVisionSettings(provider?.groupId) + return + } + val frontendProvider = providers.firstOrNull { it.id == entry.providerId } if (frontendProvider != null) { frontendProvider.handleExtraAction(editor, range, actionId) @@ -248,14 +274,14 @@ open class CodeVisionHost(val project: Project) { } private fun getAnchorForProvider(provider: CodeVisionProvider<*>): CodeVisionAnchorKind{ - return lifeSettingModel.codeVisionGroupToPosition[provider.name].nullIfDefault() ?: lifeSettingModel.defaultPosition.value + return lifeSettingModel.codeVisionGroupToPosition[provider.groupId].nullIfDefault() ?: lifeSettingModel.defaultPosition.value } private fun getPriorityForId(id: String): Int { return defaultSortedProvidersList.indexOf(id) } - protected open fun getProviderById(id: String): CodeVisionProvider<*>? { + open fun getProviderById(id: String): CodeVisionProvider<*>? { return providers.firstOrNull { it.id == id } } @@ -350,36 +376,56 @@ open class CodeVisionHost(val project: Project) { } executeOnPooledThread(calcLifetime, inTestSyncMode) { ProgressManager.checkCanceled() - val results = mutableListOf<Pair<TextRange, CodeVisionEntry>>() + var results = mutableListOf<Pair<TextRange, CodeVisionEntry>>() val providerWhoWantToUpdate = mutableListOf<String>() var everyProviderReadyToUpdate = true + val inlaySettingsEditor = isInlaySettingsEditor(editor) providers.forEach { @Suppress("UNCHECKED_CAST") it as CodeVisionProvider<Any?> + if (!inlaySettingsEditor && !lifeSettingModel.disabledCodeVisionProviderIds.contains(it.groupId)) { + if (!it.shouldRecomputeForEditor(editor, precalculatedUiThings[it.id])) { + everyProviderReadyToUpdate = false + return@forEach + } + } if (groupsToRecalculate.isNotEmpty() && !groupsToRecalculate.contains(it.id)) return@forEach ProgressManager.checkCanceled() if (project.isDisposed) return@executeOnPooledThread - if (lifeSettingModel.disabledCodeVisionProviderIds.contains(it.groupId)) { + if (!inlaySettingsEditor && lifeSettingModel.disabledCodeVisionProviderIds.contains(it.groupId)) { if (editor.lensContextOrThrow.hasProviderCodeVision(it.id)) { providerWhoWantToUpdate.add(it.id) } return@forEach } - if (!it.shouldRecomputeForEditor(editor, precalculatedUiThings[it.id])) { - everyProviderReadyToUpdate = false - return@forEach - } providerWhoWantToUpdate.add(it.id) try { - val result = it.computeForEditor(editor, precalculatedUiThings[it.id]) - results.addAll(result) + val state = it.computeCodeVision(editor, precalculatedUiThings[it.id]) + if (state.isReady.not()) { + everyProviderReadyToUpdate = false + } + else { + results.addAll(state.result) + } } catch (e: Exception) { + if (e is ControlFlowException) throw e + logger.error("Exception during computeForEditor for ${it.id}", e) } } + val previewData = CodeVisionGroupDefaultSettingModel.isEnabledInPreview(editor) + if (previewData == false) { + results = results.map { + val richText = RichText() + richText.append(it.second.longPresentation, SimpleTextAttributes(SimpleTextAttributes.STYLE_STRIKEOUT, null)) + val entry = RichTextCodeVisionEntry(it.second.providerId, richText) + it.first to entry + }.toMutableList() + } + if (!everyProviderReadyToUpdate) { editor.lensContextOrThrow.discardPending() return@executeOnPooledThread @@ -390,10 +436,6 @@ open class CodeVisionHost(val project: Project) { return@executeOnPooledThread } - if(results.isEmpty() && editor.lensContextOrThrow.hasOnlyPlaceholders()){ - editor.lensContextOrThrow.discardPending() - return@executeOnPooledThread - } if (!inTestSyncMode) { application.invokeLater({ @@ -427,9 +469,11 @@ open class CodeVisionHost(val project: Project) { return indicator } - private fun openCodeVisionSettings() { + private fun openCodeVisionSettings(groupId: String? = null) { InlayHintsConfigurable.showSettingsDialogForLanguage(project, Language.ANY) { - return@showSettingsDialogForLanguage it.group == InlayGroup.CODE_VISION_GROUP_NEW + if(groupId == null) return@showSettingsDialogForLanguage it.group == InlayGroup.CODE_VISION_GROUP_NEW + + return@showSettingsDialogForLanguage it.group == InlayGroup.CODE_VISION_GROUP_NEW && it.id == groupId } } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/codeVision/CodeVisionProvider.kt b/platform/lang-impl/src/com/intellij/codeInsight/codeVision/CodeVisionProvider.kt index 1c640a02ccc9..b4c60ab35cc2 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/codeVision/CodeVisionProvider.kt +++ b/platform/lang-impl/src/com/intellij/codeInsight/codeVision/CodeVisionProvider.kt @@ -34,6 +34,10 @@ interface CodeVisionProvider<T> { */ @JvmDefault fun isAvailableFor(project: Project) = true + + @JvmDefault + fun preparePreview(editor: Editor, file: PsiFile) { + } /** * Computes some data on UI thread, before the background thread invocation @@ -52,9 +56,17 @@ interface CodeVisionProvider<T> { * * Note that this method is not executed under read action. */ - fun computeForEditor(editor: Editor, uiData: T): List<Pair<TextRange, CodeVisionEntry>> + @Deprecated("Use computeCodeVision instead", ReplaceWith("computeCodeVision")) + fun computeForEditor(editor: Editor, uiData: T): List<Pair<TextRange, CodeVisionEntry>> = emptyList() /** + * Should return text ranges and applicable hints for them, invoked on background thread. + * + * Note that this method is not executed under read action. + */ + fun computeCodeVision(editor: Editor, uiData: T): CodeVisionState = CodeVisionState.Ready(computeForEditor(editor, uiData)) + + /** * Handle click on a lens at given range * [java.awt.event.MouseEvent] accessible with [codeVisionEntryMouseEventKey] data key from [CodeVisionEntry] */ diff --git a/platform/lang-impl/src/com/intellij/codeInsight/codeVision/CodeVisionState.kt b/platform/lang-impl/src/com/intellij/codeInsight/codeVision/CodeVisionState.kt new file mode 100644 index 000000000000..ee8ba40fa51d --- /dev/null +++ b/platform/lang-impl/src/com/intellij/codeInsight/codeVision/CodeVisionState.kt @@ -0,0 +1,12 @@ +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.codeInsight.codeVision + +import com.intellij.openapi.util.TextRange + +sealed class CodeVisionState(val isReady: Boolean, val result: List<Pair<TextRange, CodeVisionEntry>>) { + companion object{ + val READY_EMPTY = Ready(emptyList()) + } + class Ready(lenses: List<Pair<TextRange, CodeVisionEntry>>) : CodeVisionState(true, lenses) + object NotReady : CodeVisionState(false, emptyList()) +}
\ No newline at end of file diff --git a/platform/lang-impl/src/com/intellij/codeInsight/codeVision/settings/CodeVisionGroupDefaultSettingModel.kt b/platform/lang-impl/src/com/intellij/codeInsight/codeVision/settings/CodeVisionGroupDefaultSettingModel.kt index 74f5c471ab2e..208322b4904a 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/codeVision/settings/CodeVisionGroupDefaultSettingModel.kt +++ b/platform/lang-impl/src/com/intellij/codeInsight/codeVision/settings/CodeVisionGroupDefaultSettingModel.kt @@ -3,12 +3,14 @@ package com.intellij.codeInsight.codeVision.settings import com.intellij.codeInsight.codeVision.CodeVisionAnchorKind import com.intellij.codeInsight.codeVision.CodeVisionBundle +import com.intellij.codeInsight.codeVision.CodeVisionHost import com.intellij.codeInsight.codeVision.CodeVisionProvider import com.intellij.codeInsight.hints.codeVision.CodeVisionPass import com.intellij.codeInsight.hints.codeVision.CodeVisionProviderAdapter import com.intellij.lang.Language import com.intellij.openapi.editor.Editor import com.intellij.openapi.ui.ComboBox +import com.intellij.openapi.util.Key import com.intellij.psi.PsiFile import com.intellij.ui.dsl.builder.panel import com.intellij.util.ResourceUtil @@ -19,16 +21,30 @@ open class CodeVisionGroupDefaultSettingModel(override val name: String, override val description: String?, isEnabled: Boolean, val providers: List<CodeVisionProvider<*>>) : CodeVisionGroupSettingModel(isEnabled, id = groupId) { + companion object { + private val CODE_VISION_PREVIEW_ENABLED = Key<Boolean>("code.vision.preview.data") + + internal fun isEnabledInPreview(editor: Editor) : Boolean? { + return editor.getUserData(CODE_VISION_PREVIEW_ENABLED) + } + } + private val settings = CodeVisionSettings.instance() private lateinit var positionComboBox: ComboBox<CodeVisionAnchorKind> override fun collectData(editor: Editor, file: PsiFile): Runnable { - val visionProviders = providers.filterIsInstance<CodeVisionProviderAdapter>().map { it.delegate } - val codeVisionData = CodeVisionPass.collectData(editor, file, visionProviders) + for (provider in providers) { + provider.preparePreview(editor, file) + } + val daemonBoundProviders = providers.filterIsInstance<CodeVisionProviderAdapter>().map { it.delegate } + val codeVisionData = CodeVisionPass.collectData(editor, file, daemonBoundProviders) return Runnable { + editor.putUserData(CODE_VISION_PREVIEW_ENABLED, isEnabled) val project = editor.project ?: return@Runnable codeVisionData.applyTo(editor, project) + CodeVisionHost.getInstance(project).invalidateProviderSignal + .fire(CodeVisionHost.LensInvalidateSignal(editor)) } } @@ -47,17 +63,17 @@ open class CodeVisionGroupDefaultSettingModel(override val name: String, override fun isModified(): Boolean { return (isEnabled != (settings.isProviderEnabled(id) && settings.codeVisionEnabled) - || positionComboBox.item != (settings.getPositionForGroup(name) ?: settings.defaultPosition)) + || positionComboBox.item != (settings.getPositionForGroup(id) ?: settings.defaultPosition)) } override fun apply() { settings.setProviderEnabled(id, isEnabled) - settings.setPositionForGroup(name, positionComboBox.item) + settings.setPositionForGroup(id, positionComboBox.item) } override fun reset() { isEnabled = settings.isProviderEnabled(id) && settings.codeVisionEnabled - positionComboBox.item = settings.getPositionForGroup(name) ?: CodeVisionAnchorKind.Default + positionComboBox.item = settings.getPositionForGroup(id) ?: CodeVisionAnchorKind.Default } private fun getCasePreview(): String? { diff --git a/platform/lang-impl/src/com/intellij/codeInsight/codeVision/settings/CodeVisionSettingsLiveModel.kt b/platform/lang-impl/src/com/intellij/codeInsight/codeVision/settings/CodeVisionSettingsLiveModel.kt index 27d8314299d0..51e350cd9196 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/codeVision/settings/CodeVisionSettingsLiveModel.kt +++ b/platform/lang-impl/src/com/intellij/codeInsight/codeVision/settings/CodeVisionSettingsLiveModel.kt @@ -39,13 +39,12 @@ class CodeVisionSettingsLiveModel(lifetime: Lifetime) { val defaultPosition: Property<CodeVisionAnchorKind> = Property(CodeVisionSettings.instance().defaultPosition) val visibleMetricsAboveDeclarationCount: Property<Int> = Property(CodeVisionSettings.instance().visibleMetricsAboveDeclarationCount) val visibleMetricsNextToDeclarationCount: Property<Int> = Property(CodeVisionSettings.instance().visibleMetricsNextToDeclarationCount) - val disabledCodeVisionProviderIds: ViewableSet<String> = ViewableSet(CodeVisionSettings.instance().state.disabledCodeVisionProviderIds) + val disabledCodeVisionProviderIds: ViewableSet<String> = ViewableSet(CodeVisionSettings.instance().state.disabledCodeVisionProviderIds.toMutableSet()) val codeVisionGroupToPosition: ViewableMap<String, CodeVisionAnchorKind> = ViewableMap<String, CodeVisionAnchorKind>().apply { putAll(CodeVisionSettings.instance().state.codeVisionGroupToPosition.map { it.key to CodeVisionAnchorKind.valueOf(it.value) }) } init { - application.messageBus.connect(lifetime.createNestedDisposable()) .subscribe(CodeVisionSettings.CODE_LENS_SETTINGS_CHANGED, object : CodeVisionSettings.CodeVisionSettingsListener { diff --git a/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/model/CodeVisionListData.kt b/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/model/CodeVisionListData.kt index 42bad6d3da06..c2bfe43d179d 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/model/CodeVisionListData.kt +++ b/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/model/CodeVisionListData.kt @@ -5,6 +5,7 @@ import com.intellij.codeInsight.codeVision.CodeVisionEntry import com.intellij.openapi.editor.Inlay import com.intellij.openapi.editor.impl.EditorImpl import com.intellij.openapi.util.Key +import com.intellij.openapi.util.registry.Registry import com.jetbrains.rd.util.lifetime.Lifetime import com.jetbrains.rd.util.reactive.map import com.jetbrains.rd.util.throttleLast @@ -63,7 +64,7 @@ class CodeVisionListData( } fun state() = rangeCodeVisionModel.state() - fun isMoreLensActive() = throttle + fun isMoreLensActive() = throttle && Registry.`is`("editor.codeVision.more.inlay") fun isHoveredEntry(entry: CodeVisionEntry) = projectModel.hoveredEntry.value == entry && projectModel.hoveredInlay.value == inlay } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/model/CodeVisionSelectionController.kt b/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/model/CodeVisionSelectionController.kt index 92bcba3045ed..e15773011d93 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/model/CodeVisionSelectionController.kt +++ b/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/model/CodeVisionSelectionController.kt @@ -15,7 +15,6 @@ import com.intellij.openapi.editor.impl.EditorImpl import com.intellij.openapi.rd.createLifetime import com.intellij.ui.awt.RelativePoint import com.intellij.util.ui.UIUtil -import com.jetbrains.rd.swing.componentHoverPoint import com.jetbrains.rd.util.asProperty import com.jetbrains.rd.util.debounceNotNull import com.jetbrains.rd.util.lifetime.Lifetime @@ -72,7 +71,7 @@ class CodeVisionSelectionController private constructor(val lifetime: Lifetime, editor.mouseReleased().advise(entryLifetime) { val mouseEvent: MouseEvent = it.mouseEvent - checkEditorMousePosition(editor.contentComponent.componentHoverPoint()) ?: return@advise + checkEditorMousePosition(mouseEvent.point) ?: return@advise if (mouseEvent.isPopupTrigger) it.consume() } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/model/ProjectCodeVisionModel.kt b/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/model/ProjectCodeVisionModel.kt index 19a6b0385e77..2b5e919b6780 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/model/ProjectCodeVisionModel.kt +++ b/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/model/ProjectCodeVisionModel.kt @@ -19,6 +19,7 @@ class ProjectCodeVisionModel private constructor(val project: Project) { const val MORE_PROVIDER_ID = "!More" const val HIDE_PROVIDER_ID = "!Hide" + const val HIDE_ALL = "!HideAll" } val maxVisibleLensCount = ViewableMap<CodeVisionAnchorKind, Int>() @@ -28,7 +29,6 @@ class ProjectCodeVisionModel private constructor(val project: Project) { val moreEntry = AdditionalCodeVisionEntry(MORE_PROVIDER_ID, "More...") - val hideLens = CodeVisionEntryExtraActionModel(CodeVisionBundle.message("action.hide.this.metric.text"), HIDE_PROVIDER_ID) private fun getCodeVisionHost() = CodeVisionHost.getInstance(project) @@ -47,8 +47,15 @@ class ProjectCodeVisionModel private constructor(val project: Project) { fun handleLensExtraAction(editor: Editor, range: TextRange, entry: CodeVisionEntry, actionId: String) { if (actionId == HIDE_PROVIDER_ID) { - CodeVisionSettings.instance().setProviderEnabled(entry.providerId, false) - CodeVisionHost.getInstance(project).invalidateProviderSignal.fire(CodeVisionHost.LensInvalidateSignal(null, listOf(entry.providerId))) + val id = CodeVisionHost.getInstance(project).getProviderById(entry.providerId)?.groupId ?: entry.providerId + CodeVisionSettings.instance().setProviderEnabled(id, false) + CodeVisionHost.getInstance(project).invalidateProviderSignal.fire(CodeVisionHost.LensInvalidateSignal(null)) + return + } + + if (actionId == HIDE_ALL) { + CodeVisionSettings.instance().codeVisionEnabled = false + CodeVisionHost.getInstance(project).invalidateProviderSignal.fire(CodeVisionHost.LensInvalidateSignal(null)) return } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/popup/CodeVisionContextPopup.kt b/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/popup/CodeVisionContextPopup.kt index bb8bc89122f5..4d34a8454308 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/popup/CodeVisionContextPopup.kt +++ b/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/popup/CodeVisionContextPopup.kt @@ -1,8 +1,11 @@ package com.intellij.codeInsight.codeVision.ui.popup +import com.intellij.codeInsight.codeVision.CodeVisionBundle import com.intellij.codeInsight.codeVision.CodeVisionEntry import com.intellij.codeInsight.codeVision.CodeVisionEntryExtraActionModel +import com.intellij.codeInsight.codeVision.CodeVisionHost import com.intellij.codeInsight.codeVision.ui.model.CodeVisionListData +import com.intellij.codeInsight.codeVision.ui.model.ProjectCodeVisionModel import com.intellij.openapi.project.Project import com.intellij.openapi.ui.popup.ListPopupStep import com.intellij.openapi.ui.popup.ListSeparator @@ -15,7 +18,11 @@ class CodeVisionContextPopup private constructor(project: Project, aStep: ListPo companion object { fun createLensList(entry: CodeVisionEntry, model: CodeVisionListData, project: Project): CodeVisionContextPopup { - val lst = entry.extraActions + model.projectModel.hideLens + val activeProvider = CodeVisionHost.getInstance(project).getProviderById(entry.providerId) ?: error("Can't find provider with id: ${entry.providerId}") + val lst = entry.extraActions + + CodeVisionEntryExtraActionModel(CodeVisionBundle.message("action.hide.this.metric.text", activeProvider.name), ProjectCodeVisionModel.HIDE_PROVIDER_ID) + + CodeVisionEntryExtraActionModel(CodeVisionBundle.message("action.hide.all.text"), ProjectCodeVisionModel.HIDE_ALL) + + CodeVisionEntryExtraActionModel(CodeVisionBundle.message("LensListPopup.tooltip.settings"), CodeVisionHost.settingsLensProviderId) val aStep = object : SubCodeVisionMenu(lst, { @@ -24,7 +31,7 @@ class CodeVisionContextPopup private constructor(project: Project, aStep: ListPo override fun getSeparatorAbove(value: CodeVisionEntryExtraActionModel): ListSeparator? { - return super.getSeparatorAbove(value) ?: if (value == model.projectModel.hideLens) ListSeparator() else null + return null } } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/renderers/painters/CodeVisionRichTextPainter.kt b/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/renderers/painters/CodeVisionRichTextPainter.kt index 4e393dd615ec..be6a4275f584 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/renderers/painters/CodeVisionRichTextPainter.kt +++ b/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/renderers/painters/CodeVisionRichTextPainter.kt @@ -3,6 +3,7 @@ package com.intellij.codeInsight.codeVision.ui.renderers.painters import com.intellij.codeInsight.codeVision.ui.model.RangeCodeVisionModel import com.intellij.codeInsight.codeVision.ui.model.richText.RichText +import com.intellij.openapi.components.service import com.intellij.openapi.diagnostic.Logger import com.intellij.openapi.editor.Editor import com.intellij.openapi.editor.markup.TextAttributes @@ -31,10 +32,13 @@ class CodeVisionRichTextPainter<T>( g as Graphics2D val richSegments = printer.invoke(value).parts + val themeInfoProvider = service<CodeVisionThemeInfoProvider>() val inSelectedBlock = textAttributes.backgroundColor == editor.selectionModel.textAttributes.backgroundColor g.color = if (inSelectedBlock) editor.selectionModel.textAttributes.foregroundColor ?: editor.colorsScheme.defaultForeground - else CodeVisionTheme.foregroundColor(editor, hovered) + else { + themeInfoProvider.foregroundColor(editor, hovered) + } val x = point.x + theme.left val y = point.y + theme.top @@ -49,18 +53,22 @@ class CodeVisionRichTextPainter<T>( val foregroundColor = it.attributes.fgColor if (underlineColor == null) underlineColor = foregroundColor else if(underlineColor != foregroundColor) underlineColor = g.color - val font = CodeVisionTheme.font(editor, it.attributes.fontStyle) + val font = themeInfoProvider.font(editor, it.attributes.fontStyle) g.font = font withColor(g, foregroundColor) { g.drawString(it.text, xOffset, y) } val metrics = g.fontMetrics + if (it.attributes.isStrikeout) { + withColor(g, foregroundColor) { + EffectPainter2D.STRIKE_THROUGH.paint(g, xOffset.toDouble(), (y + JBUI.scale(1)).toDouble(), metrics.stringWidth(it.text).toDouble(), 5.0, g.font) + } + } xOffset += metrics.stringWidth(it.text) } if (hovered) { val size = size(editor, state, value) - withColor(g, underlineColor) { EffectPainter2D.LINE_UNDERSCORE.paint(g, x.toDouble(), (y + JBUI.scale(1)).toDouble(), size.width.toDouble(), 5.0, g.font) } @@ -78,9 +86,10 @@ class CodeVisionRichTextPainter<T>( val richSegments = printer.invoke(value).parts var width = theme.left var height = theme.top + val themeInfoProvider = service<CodeVisionThemeInfoProvider>() richSegments.forEach { - val font = CodeVisionTheme.font(editor, it.attributes.fontStyle) + val font = themeInfoProvider.font(editor, it.attributes.fontStyle) val metrics = editor.component.getFontMetrics(font) width += metrics.stringWidth(it.text) height = maxOf(height, metrics.height) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/renderers/painters/CodeVisionTheme.kt b/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/renderers/painters/CodeVisionTheme.kt index ed7d3c741dec..a7adda2487f0 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/renderers/painters/CodeVisionTheme.kt +++ b/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/renderers/painters/CodeVisionTheme.kt @@ -2,14 +2,9 @@ package com.intellij.codeInsight.codeVision.ui.renderers.painters import com.intellij.openapi.editor.Editor import com.intellij.openapi.editor.colors.EditorFontType -import com.intellij.ui.JBColor import com.intellij.util.ui.JBUI -import com.intellij.util.ui.UIUtil -import java.awt.Color import java.awt.Font import java.awt.Rectangle -import kotlin.math.max -import kotlin.math.min class CodeVisionTheme( var iconGap: Int = JBUI.scale(2), @@ -19,24 +14,6 @@ class CodeVisionTheme( var bottom: Int = 0 ) { companion object { - //todo rider proper color keys - fun foregroundColor(editor: Editor, hovered: Boolean): Color { - return if (hovered) { - JBUI.CurrentTheme.Link.Foreground.ENABLED - } - else { - JBColor.GRAY - } - } - - fun font(editor: Editor, style: Int = Font.PLAIN): Font { - val size = lensFontSize(editor) - return UIUtil.getLabelFont().deriveFont(style, size) - } - - fun lensFontSize(editor: Editor) = - min(max(editor.colorsScheme.editorFontSize * 80f / 100, 10f), editor.colorsScheme.editorFontSize.toFloat()) - fun editorFont(editor: Editor, style: EditorFontType = EditorFontType.PLAIN): Font = editor.colorsScheme.getFont(style) fun yInInlayBounds(y: Int, size: Rectangle): Boolean { diff --git a/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/renderers/painters/CodeVisionThemeInfoProvider.kt b/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/renderers/painters/CodeVisionThemeInfoProvider.kt new file mode 100644 index 000000000000..b2dd87823844 --- /dev/null +++ b/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/renderers/painters/CodeVisionThemeInfoProvider.kt @@ -0,0 +1,36 @@ +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.codeInsight.codeVision.ui.renderers.painters + +import com.intellij.codeInsight.daemon.impl.HintUtil +import com.intellij.openapi.editor.Editor +import com.intellij.openapi.editor.ex.EditorSettingsExternalizable +import com.intellij.openapi.editor.ex.util.EditorUtil +import com.intellij.ui.JBColor +import com.intellij.util.ui.JBUI +import com.intellij.util.ui.UIUtil +import java.awt.Color +import java.awt.Font + +open class CodeVisionThemeInfoProvider { + open fun foregroundColor(editor: Editor, hovered: Boolean): Color { + return if (hovered) { + JBUI.CurrentTheme.Link.Foreground.ENABLED + } + else { + JBColor.GRAY + } + } + + open fun font(editor: Editor, style: Int = Font.PLAIN): Font { + val size = lensFontSize(editor) + return if (EditorSettingsExternalizable.getInstance().isUseEditorFontInInlays) { + val editorFont = EditorUtil.getEditorFont() + editorFont.deriveFont(style, size) + } + else { + UIUtil.getLabelFont().deriveFont(style, size) + } + } + + open fun lensFontSize(editor: Editor) = HintUtil.getSize(editor) +}
\ No newline at end of file diff --git a/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/renderers/painters/CodeVisionVisionTextPainter.kt b/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/renderers/painters/CodeVisionVisionTextPainter.kt index 05b2d4cd7077..d948c89766cf 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/renderers/painters/CodeVisionVisionTextPainter.kt +++ b/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/renderers/painters/CodeVisionVisionTextPainter.kt @@ -1,6 +1,7 @@ package com.intellij.codeInsight.codeVision.ui.renderers.painters import com.intellij.codeInsight.codeVision.ui.model.RangeCodeVisionModel +import com.intellij.openapi.components.service import com.intellij.openapi.editor.Editor import com.intellij.openapi.editor.markup.TextAttributes import com.intellij.ui.paint.EffectPainter2D @@ -27,12 +28,13 @@ open class CodeVisionVisionTextPainter<T>( hovered: Boolean ) { g as Graphics2D + val themeInfoProvider = service<CodeVisionThemeInfoProvider>() val inSelectedBlock = textAttributes.backgroundColor == editor.selectionModel.textAttributes.backgroundColor g.color = if (inSelectedBlock) editor.selectionModel.textAttributes.foregroundColor ?: editor.colorsScheme.defaultForeground - else CodeVisionTheme.foregroundColor(editor, hovered) + else themeInfoProvider.foregroundColor(editor, hovered) - g.font = CodeVisionTheme.font(editor) + g.font = themeInfoProvider.font(editor) val x = point.x + theme.left var y = point.y + theme.top g.drawString(printer.invoke(value), x, y) @@ -49,7 +51,7 @@ open class CodeVisionVisionTextPainter<T>( state: RangeCodeVisionModel.InlayState, value: T ): Dimension { - val fontMetrics = editor.component.getFontMetrics(CodeVisionTheme.font(editor)) + val fontMetrics = editor.component.getFontMetrics(service<CodeVisionThemeInfoProvider>().font(editor)) return Dimension( fontMetrics.stringWidth(printer.invoke(value)) + theme.left + theme.right, fontMetrics.height + theme.top + theme.bottom diff --git a/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/renderers/painters/DelimiterPainter.kt b/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/renderers/painters/DelimiterPainter.kt index 5653ca05bbc5..8e3c30fd0df2 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/renderers/painters/DelimiterPainter.kt +++ b/platform/lang-impl/src/com/intellij/codeInsight/codeVision/ui/renderers/painters/DelimiterPainter.kt @@ -1,6 +1,7 @@ package com.intellij.codeInsight.codeVision.ui.renderers.painters import com.intellij.codeInsight.codeVision.ui.model.RangeCodeVisionModel +import com.intellij.openapi.components.service import com.intellij.openapi.editor.Editor import com.intellij.openapi.editor.markup.TextAttributes import com.intellij.util.ui.JBUI @@ -20,7 +21,7 @@ class DelimiterPainter : ICodeVisionGraphicPainter { } override fun size(editor: Editor, state: RangeCodeVisionModel.InlayState): Dimension { - val width = CodeVisionTheme.lensFontSize(editor) + val width = service<CodeVisionThemeInfoProvider>().lensFontSize(editor) return Dimension(JBUI.scale(width.toInt()), editor.lineHeight) } }
\ No newline at end of file diff --git a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/ParameterHintsPresentationManager.java b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/ParameterHintsPresentationManager.java index 05a44292366e..8ead18b9f457 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/ParameterHintsPresentationManager.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/ParameterHintsPresentationManager.java @@ -2,6 +2,7 @@ package com.intellij.codeInsight.daemon.impl; import com.intellij.codeInsight.hints.HintWidthAdjustment; +import com.intellij.codeInsight.hints.InlayHintsUtilsKt; import com.intellij.openapi.Disposable; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ModalityState; @@ -26,6 +27,7 @@ import java.util.Set; public final class ParameterHintsPresentationManager implements Disposable { private static final Key<AnimationStep> ANIMATION_STEP = Key.create("ParameterHintAnimationStep"); + private static final Key<Boolean> PREVIEW_MODE = Key.create("ParameterHintsPreviewMode"); private static final int ANIMATION_STEP_MS = 25; private static final int ANIMATION_CHARS_PER_STEP = 3; @@ -109,6 +111,10 @@ public final class ParameterHintsPresentationManager implements Disposable { return renderer.current; } + public void setPreviewMode(Editor editor, boolean b) { + PREVIEW_MODE.set(editor, b); + } + private void updateRenderer(@NotNull Editor editor, @NotNull Inlay hint, @Nullable String newText, HintWidthAdjustment widthAdjuster, boolean useAnimation) { MyRenderer renderer = (MyRenderer)hint.getRenderer(); @@ -167,10 +173,13 @@ public final class ParameterHintsPresentationManager implements Disposable { @Override protected TextAttributes getTextAttributes(@NotNull Editor editor) { if (step > steps || startWidth != 0) { - return editor.getColorsScheme().getAttributes(current - ? DefaultLanguageHighlighterColors.INLINE_PARAMETER_HINT_CURRENT - : highlighted ? DefaultLanguageHighlighterColors.INLINE_PARAMETER_HINT_HIGHLIGHTED - : DefaultLanguageHighlighterColors.INLINE_PARAMETER_HINT); + TextAttributes attributes = editor.getColorsScheme().getAttributes(current + ? DefaultLanguageHighlighterColors.INLINE_PARAMETER_HINT_CURRENT + : highlighted + ? DefaultLanguageHighlighterColors.INLINE_PARAMETER_HINT_HIGHLIGHTED + : DefaultLanguageHighlighterColors.INLINE_PARAMETER_HINT); + Boolean aBoolean = PREVIEW_MODE.get(editor); + return aBoolean != null && aBoolean ? InlayHintsUtilsKt.strikeOutBuilder(editor).applyTo(attributes.clone()) : attributes; } return null; } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/hints/InlayHintsUtils.kt b/platform/lang-impl/src/com/intellij/codeInsight/hints/InlayHintsUtils.kt index 46e0a9430050..339666649422 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/hints/InlayHintsUtils.kt +++ b/platform/lang-impl/src/com/intellij/codeInsight/hints/InlayHintsUtils.kt @@ -1,6 +1,7 @@ // Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.codeInsight.hints +import com.intellij.codeInsight.hints.presentation.AttributesTransformerPresentation import com.intellij.codeInsight.hints.presentation.InlayPresentation import com.intellij.codeInsight.hints.presentation.RecursivelyUpdatingRootPresentation import com.intellij.codeInsight.hints.presentation.RootInlayPresentation @@ -9,12 +10,16 @@ import com.intellij.configurationStore.serialize import com.intellij.lang.Language import com.intellij.openapi.actionSystem.AnAction import com.intellij.openapi.application.invokeLater +import com.intellij.openapi.editor.DefaultLanguageHighlighterColors import com.intellij.openapi.editor.Editor +import com.intellij.openapi.editor.markup.EffectType +import com.intellij.openapi.editor.markup.TextAttributesEffectsBuilder import com.intellij.openapi.util.TextRange import com.intellij.psi.* import com.intellij.refactoring.suggested.endOffset import com.intellij.refactoring.suggested.startOffset import com.intellij.util.SmartList +import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap import org.jetbrains.annotations.ApiStatus import org.jetbrains.annotations.Nls import org.jetbrains.annotations.Nls.Capitalization.Title @@ -71,6 +76,11 @@ internal fun <T : Any> copySettings(from: T, provider: InlayHintsProvider<T>): T return settings } +internal fun strikeOutBuilder(editor: Editor): TextAttributesEffectsBuilder { + val effectColor = editor.colorsScheme.getAttributes(DefaultLanguageHighlighterColors.INLAY_DEFAULT).foregroundColor + return TextAttributesEffectsBuilder.create().coverWith(EffectType.STRIKEOUT, effectColor) +} + class CollectorWithSettings<T : Any>( val collector: InlayHintsCollector, val key: SettingsKey<T>, @@ -95,7 +105,13 @@ class CollectorWithSettings<T : Any>( * Same as [collectTraversingAndApply] but invoked on bg thread */ fun collectTraversingAndApplyOnEdt(editor: Editor, file: PsiFile, enabled: Boolean) { - val hintsBuffer = collectTraversing(editor, file, enabled) + val hintsBuffer = collectTraversing(editor, file, true) + if (!enabled) { + val builder = strikeOutBuilder(editor) + addStrikeout(hintsBuffer.inlineHints, builder) { root, constraints -> HorizontalConstrainedPresentation(root, constraints) } + addStrikeout(hintsBuffer.blockAboveHints, builder) { root, constraints -> BlockConstrainedPresentation(root, constraints) } + addStrikeout(hintsBuffer.blockBelowHints, builder) { root, constraints -> BlockConstrainedPresentation(root, constraints) } + } invokeLater { applyToEditor(file, editor, hintsBuffer) } } @@ -114,6 +130,19 @@ class CollectorWithSettings<T : Any>( } } +internal fun <T: Any> addStrikeout(inlineHints: Int2ObjectOpenHashMap<MutableList<ConstrainedPresentation<*, T>>>, + builder: TextAttributesEffectsBuilder, + factory: (RootInlayPresentation<*>, T?) -> ConstrainedPresentation<*, T> +) { + inlineHints.forEach { + it.value.replaceAll { presentation -> + val transformer = AttributesTransformerPresentation(presentation.root) { builder.applyTo(it) } + val rootPresentation = RecursivelyUpdatingRootPresentation(transformer) + factory(rootPresentation, presentation.constraints) + } + } +} + fun InlayPresentation.fireContentChanged() { fireContentChanged(Rectangle(width, height)) } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/hints/codeVision/CodeVisionPass.kt b/platform/lang-impl/src/com/intellij/codeInsight/hints/codeVision/CodeVisionPass.kt index 1a141d5b15d3..9a68792b0178 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/hints/codeVision/CodeVisionPass.kt +++ b/platform/lang-impl/src/com/intellij/codeInsight/hints/codeVision/CodeVisionPass.kt @@ -3,7 +3,11 @@ package com.intellij.codeInsight.hints.codeVision import com.intellij.codeHighlighting.EditorBoundHighlightingPass import com.intellij.codeInsight.codeVision.CodeVisionHost +import com.intellij.codeInsight.codeVision.CodeVisionProviderFactory +import com.intellij.codeInsight.codeVision.settings.CodeVisionSettings import com.intellij.codeInsight.codeVision.ui.model.ProjectCodeVisionModel +import com.intellij.codeInsight.codeVision.ui.model.RichTextCodeVisionEntry +import com.intellij.codeInsight.codeVision.ui.model.richText.RichText import com.intellij.concurrency.JobLauncher import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.editor.Editor @@ -15,10 +19,13 @@ import com.intellij.openapi.rd.createLifetime import com.intellij.psi.PsiElement import com.intellij.psi.PsiFile import com.intellij.psi.util.PsiModificationTracker +import com.intellij.ui.SimpleTextAttributes import com.intellij.util.Processor import com.jetbrains.rd.util.reactive.adviseUntil import org.jetbrains.annotations.ApiStatus.Internal import java.util.concurrent.ConcurrentHashMap +import java.util.stream.Collectors +import kotlin.streams.toList /** * Prepares data for [com.intellij.codeInsight.codeVision.CodeVisionHost]. @@ -37,7 +44,16 @@ class CodeVisionPass( fun collectData(editor: Editor, file: PsiFile, providers: List<DaemonBoundCodeVisionProvider>) : CodeVisionData { val providerIdToLenses = ConcurrentHashMap<String, DaemonBoundCodeVisionCacheService.CodeVisionWithStamp>() collect(EmptyProgressIndicator(), editor, file, providerIdToLenses, providers) - return CodeVisionData(providerIdToLenses) + val allProviders = CodeVisionProviderFactory.createAllProviders(file.project) + val dataForAllProviders = HashMap<String, DaemonBoundCodeVisionCacheService.CodeVisionWithStamp>() + val modificationStamp = file.modificationStamp + for (provider in allProviders) { + if (provider !is CodeVisionProviderAdapter) continue + val providerId = provider.id + dataForAllProviders[providerId] = providerIdToLenses[providerId] + ?: DaemonBoundCodeVisionCacheService.CodeVisionWithStamp(emptyList(), modificationStamp) + } + return CodeVisionData(dataForAllProviders) } private fun collect(progress: ProgressIndicator, @@ -54,18 +70,16 @@ class CodeVisionPass( }) } - private fun updateProviders(project: Project, - editor: Editor, - providerIdToLenses: Map<String, DaemonBoundCodeVisionCacheService.CodeVisionWithStamp>) { + internal fun updateProviders(project: Project, + editor: Editor, + providerIdToLenses: Map<String, DaemonBoundCodeVisionCacheService.CodeVisionWithStamp>) { val codeVisionHost = CodeVisionHost.getInstance(project) - for (providerId in providerIdToLenses.keys) { - codeVisionHost.invalidateProviderSignal.fire(CodeVisionHost.LensInvalidateSignal(editor, providerIdToLenses.keys)) - } + codeVisionHost.invalidateProviderSignal.fire(CodeVisionHost.LensInvalidateSignal(editor, providerIdToLenses.keys)) } internal fun saveToCache(project: Project, - editor: Editor, - providerIdToLenses: Map<String, DaemonBoundCodeVisionCacheService.CodeVisionWithStamp>) { + editor: Editor, + providerIdToLenses: Map<String, DaemonBoundCodeVisionCacheService.CodeVisionWithStamp>) { val cacheService = DaemonBoundCodeVisionCacheService.getInstance(project) for ((providerId, results) in providerIdToLenses) { cacheService.storeVisionDataForEditor(editor, providerId, results) @@ -77,7 +91,11 @@ class CodeVisionPass( private val currentIndicator = ProgressManager.getGlobalProgressIndicator() override fun doCollectInformation(progress: ProgressIndicator) { - collect(progress, editor, myFile, providerIdToLenses, DaemonBoundCodeVisionProvider.extensionPoint.extensionList) + val settings = CodeVisionSettings.instance() + val providers = DaemonBoundCodeVisionProvider.extensionPoint.extensions() + .filter { settings.isProviderEnabled(it.groupId) } + .collect(Collectors.toList()) + collect(progress, editor, myFile, providerIdToLenses, providers) } override fun doApplyInformationToEditor() { diff --git a/platform/lang-impl/src/com/intellij/codeInsight/hints/codeVision/CodeVisionProviderAdapter.kt b/platform/lang-impl/src/com/intellij/codeInsight/hints/codeVision/CodeVisionProviderAdapter.kt index 2ed40473f96f..fcf6bced7040 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/hints/codeVision/CodeVisionProviderAdapter.kt +++ b/platform/lang-impl/src/com/intellij/codeInsight/hints/codeVision/CodeVisionProviderAdapter.kt @@ -18,6 +18,10 @@ class CodeVisionProviderAdapter(internal val delegate: DaemonBoundCodeVisionProv // nothing } + override fun preparePreview(editor: Editor, file: PsiFile) { + delegate.preparePreview(editor, file) + } + override fun collectPlaceholders(editor: Editor): List<TextRange> { return delegate.collectPlaceholders(editor) } @@ -37,10 +41,10 @@ class CodeVisionProviderAdapter(internal val delegate: DaemonBoundCodeVisionProv } - override fun computeForEditor(editor: Editor, uiData: Unit): List<Pair<TextRange, CodeVisionEntry>> { - val project = editor.project ?: return emptyList() + override fun computeCodeVision(editor: Editor, uiData: Unit): CodeVisionState { + val project = editor.project ?: return CodeVisionState.NotReady val cacheService = DaemonBoundCodeVisionCacheService.getInstance(project) - val cached = cacheService.getVisionDataForEditor(editor, id) ?: return emptyList() + val cached = cacheService.getVisionDataForEditor(editor, id) ?: return CodeVisionState.NotReady val document = editor.document // ranges may be slightly outdated, so we have to unsure that they fit the document val lenses = cached.codeVisionEntries.map { @@ -53,7 +57,7 @@ class CodeVisionProviderAdapter(internal val delegate: DaemonBoundCodeVisionProv it } } - return lenses + return CodeVisionState.Ready(lenses) } override fun handleClick(editor: Editor, textRange: TextRange, entry: CodeVisionEntry) { diff --git a/platform/lang-impl/src/com/intellij/codeInsight/hints/codeVision/DaemonBoundCodeVisionProvider.kt b/platform/lang-impl/src/com/intellij/codeInsight/hints/codeVision/DaemonBoundCodeVisionProvider.kt index db72e97d2ed8..32e5b37ee140 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/hints/codeVision/DaemonBoundCodeVisionProvider.kt +++ b/platform/lang-impl/src/com/intellij/codeInsight/hints/codeVision/DaemonBoundCodeVisionProvider.kt @@ -23,6 +23,11 @@ interface DaemonBoundCodeVisionProvider { val extensionPoint = ExtensionPointName.create<DaemonBoundCodeVisionProvider>(EP_NAME) } + @JvmDefault + fun preparePreview(editor: Editor, file: PsiFile) { + + } + /** * Computes code lens data in read action in background for a given editor. */ diff --git a/platform/lang-impl/src/com/intellij/codeInsight/hints/presentation/TextInlayPresentation.kt b/platform/lang-impl/src/com/intellij/codeInsight/hints/presentation/TextInlayPresentation.kt index 55e9255e260e..c2d2da643a06 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/hints/presentation/TextInlayPresentation.kt +++ b/platform/lang-impl/src/com/intellij/codeInsight/hints/presentation/TextInlayPresentation.kt @@ -43,7 +43,7 @@ class TextInlayPresentation( when (attributes.effectType) { EffectType.LINE_UNDERSCORE -> EffectPainter.LINE_UNDERSCORE.paint(g, 0, metrics.ascent, width, metrics.descent, font) EffectType.BOLD_LINE_UNDERSCORE -> EffectPainter.BOLD_LINE_UNDERSCORE.paint(g, 0, metrics.ascent, width, metrics.descent, font) - EffectType.STRIKEOUT -> EffectPainter.STRIKE_THROUGH.paint(g, 0, metrics.ascent, width, height, font) + EffectType.STRIKEOUT -> EffectPainter.STRIKE_THROUGH.paint(g, 0, metrics.fontBaseline, width, height, font) EffectType.WAVE_UNDERSCORE -> EffectPainter.WAVE_UNDERSCORE.paint(g, 0, metrics.ascent, width, metrics.descent, font) EffectType.BOLD_DOTTED_LINE -> EffectPainter.BOLD_DOTTED_UNDERSCORE.paint(g, 0, metrics.ascent, width, metrics.descent, font) else -> {} diff --git a/platform/lang-impl/src/com/intellij/codeInsight/hints/settings/InlaySettingsPanel.kt b/platform/lang-impl/src/com/intellij/codeInsight/hints/settings/InlaySettingsPanel.kt index 76e6dbb2510a..94909679c69d 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/hints/settings/InlaySettingsPanel.kt +++ b/platform/lang-impl/src/com/intellij/codeInsight/hints/settings/InlaySettingsPanel.kt @@ -14,6 +14,7 @@ import com.intellij.openapi.editor.colors.EditorColorsManager import com.intellij.openapi.fileTypes.PlainTextFileType import com.intellij.openapi.project.Project import com.intellij.openapi.util.Condition +import com.intellij.openapi.util.Key import com.intellij.openapi.util.registry.Registry import com.intellij.openapi.util.text.StringUtil import com.intellij.ui.* @@ -35,6 +36,8 @@ import javax.swing.tree.DefaultMutableTreeNode import javax.swing.tree.DefaultTreeModel import javax.swing.tree.TreeNode +val CASE_KEY = Key.create<ImmediateConfigurable.Case>("inlay.case.key") + class InlaySettingsPanel(val project: Project): JPanel(BorderLayout()) { val tree: CheckboxTree @@ -42,6 +45,11 @@ class InlaySettingsPanel(val project: Project): JPanel(BorderLayout()) { private val groups: MutableMap<InlayGroup, List<InlayProviderSettingsModel>> private var currentEditor: Editor? = null + companion object { + @kotlin.jvm.JvmField + val PREVIEW_KEY = Key.create<Any>("inlay.preview.key") + } + init { val models = InlaySettingsProvider.EP.getExtensions().flatMap { provider -> provider.getSupportedLanguages(project).flatMap { provider.createModels(project, it) } @@ -183,13 +191,13 @@ class InlaySettingsPanel(val project: Project): JPanel(BorderLayout()) { rightPanel.add(item.component) } is InlayProviderSettingsModel -> { - if (treeNode.isLeaf) { + if (item.description != null) { addDescription(item.description) } item.component.border = JBUI.Borders.empty() rightPanel.add(item.component) if (treeNode.isLeaf) { - addPreview(item.getCasePreview(null) ?: item.previewText, item) + addPreview(item.getCasePreview(null) ?: item.previewText, item, null) } } is ImmediateConfigurable.Case -> { @@ -197,7 +205,7 @@ class InlaySettingsPanel(val project: Project): JPanel(BorderLayout()) { val model = parent.userObject as InlayProviderSettingsModel addDescription(model.getCaseDescription(item)) val preview = model.getCasePreview(item) - addPreview(preview, model) + addPreview(preview, model, item) } } if (treeNode != null) { @@ -207,10 +215,12 @@ class InlaySettingsPanel(val project: Project): JPanel(BorderLayout()) { rightPanel.repaint() } - private fun addPreview(previewText: String?, model: InlayProviderSettingsModel) { + private fun addPreview(previewText: String?, model: InlayProviderSettingsModel, case: ImmediateConfigurable.Case?) { if (previewText != null) { val editorTextField = createEditor(model.getCasePreviewLanguage(null) ?: model.language, project) { editor -> currentEditor = editor + PREVIEW_KEY.set(editor, "") + CASE_KEY.set(editor, case) updateHints(editor, model) } editorTextField.text = previewText @@ -229,20 +239,19 @@ class InlaySettingsPanel(val project: Project): JPanel(BorderLayout()) { private fun updateHints(editor: Editor, model: InlayProviderSettingsModel) { val fileType = model.getCasePreviewLanguage(null)?.associatedFileType ?: PlainTextFileType.INSTANCE - ApplicationManager.getApplication().invokeLater { - ReadAction.nonBlocking(Callable { - val file = model.createFile(project, fileType, editor.document) - val continuation = model.collectData(editor, file) - continuation - }) - .finishOnUiThread(ModalityState.current()) { continuation -> - ApplicationManager.getApplication().runWriteAction { - continuation.run() - } + ReadAction.nonBlocking(Callable { + val file = model.createFile(project, fileType, editor.document) + val continuation = model.collectData(editor, file) + continuation + }) + .finishOnUiThread(ModalityState.stateForComponent(this)) { continuation -> + ApplicationManager.getApplication().runWriteAction { + continuation.run() } - .inSmartMode(project) - .submit(AppExecutorUtil.getAppExecutorService()) - } + } + .expireWhen { editor.isDisposed } + .inSmartMode(project) + .submit(AppExecutorUtil.getAppExecutorService()) } private fun addDescription(@Nls s: String?) { diff --git a/platform/lang-impl/src/com/intellij/codeInsight/hints/settings/language/NewInlayProviderSettingsModel.kt b/platform/lang-impl/src/com/intellij/codeInsight/hints/settings/language/NewInlayProviderSettingsModel.kt index 980779adba00..38b5945cea9f 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/hints/settings/language/NewInlayProviderSettingsModel.kt +++ b/platform/lang-impl/src/com/intellij/codeInsight/hints/settings/language/NewInlayProviderSettingsModel.kt @@ -2,6 +2,7 @@ package com.intellij.codeInsight.hints.settings.language import com.intellij.codeInsight.hints.* +import com.intellij.codeInsight.hints.settings.CASE_KEY import com.intellij.codeInsight.hints.settings.InlayProviderSettingsModel import com.intellij.configurationStore.deserializeInto import com.intellij.configurationStore.serialize @@ -43,7 +44,24 @@ class NewInlayProviderSettingsModel<T : Any>( override fun collectData(editor: Editor, file: PsiFile) : Runnable { providerWithSettings.provider.preparePreview(editor, file, providerWithSettings.settings) val collectorWrapper = providerWithSettings.getCollectorWrapperFor(file, editor, providerWithSettings.language) ?: return Runnable {} - val hintsBuffer: HintsBuffer = collectorWrapper.collectTraversing(editor, file, true) + val case = CASE_KEY.get(editor) + val enabled = case?.value ?: isEnabled + val backup = cases.map { it.value } + val hintsBuffer: HintsBuffer + try { + cases.forEach { it.value = false } + case?.let { it.value = true } + hintsBuffer = collectorWrapper.collectTraversing(editor, file, true) + if (!enabled) { + val builder = strikeOutBuilder(editor) + addStrikeout(hintsBuffer.inlineHints, builder) { root, constraints -> HorizontalConstrainedPresentation(root, constraints) } + addStrikeout(hintsBuffer.blockAboveHints, builder) { root, constraints -> BlockConstrainedPresentation(root, constraints) } + addStrikeout(hintsBuffer.blockBelowHints, builder) { root, constraints -> BlockConstrainedPresentation(root, constraints) } + } + } + finally { + cases.forEachIndexed { index, c -> c.value = backup[index] } + } return Runnable { collectorWrapper.applyToEditor(file, editor, hintsBuffer) } @@ -65,7 +83,7 @@ class NewInlayProviderSettingsModel<T : Any>( override fun getCaseDescription(case: ImmediateConfigurable.Case): String? { val key = "inlay." + providerWithSettings.provider.key.id + "." + case.id - return providerWithSettings.provider.getProperty(key) + return providerWithSettings.provider.getCaseDescription(case) } override fun apply() { @@ -96,7 +114,14 @@ class NewInlayProviderSettingsModel<T : Any>( fun getCasePreview(language: Language, provider: Any, case: ImmediateConfigurable.Case?): String? { val key = (provider as? InlayHintsProvider<*>)?.key?.id ?: "Parameters" val fileType = language.associatedFileType ?: PlainTextFileType.INSTANCE - val path = "inlayProviders/" + key + "/" + (case?.id ?: "preview") + "." + fileType.defaultExtension + return getStream(key, case, provider, fileType.defaultExtension) ?: getStream(key, case, provider, "dockerfile") +} + +private fun getStream(key: String, + case: ImmediateConfigurable.Case?, + provider: Any, + extension: String): String? { + val path = "inlayProviders/" + key + "/" + (case?.id ?: "preview") + "." + extension val stream = provider.javaClass.classLoader.getResourceAsStream(path) return if (stream != null) ResourceUtil.loadText(stream) else null }
\ No newline at end of file diff --git a/platform/lang-impl/src/com/intellij/codeInsight/hints/settings/language/ParameterInlayProviderSettingsModel.kt b/platform/lang-impl/src/com/intellij/codeInsight/hints/settings/language/ParameterInlayProviderSettingsModel.kt index c2cf333f474f..e115593ce1f5 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/hints/settings/language/ParameterInlayProviderSettingsModel.kt +++ b/platform/lang-impl/src/com/intellij/codeInsight/hints/settings/language/ParameterInlayProviderSettingsModel.kt @@ -3,11 +3,13 @@ package com.intellij.codeInsight.hints.settings.language import com.intellij.codeInsight.CodeInsightBundle import com.intellij.codeInsight.daemon.impl.DaemonProgressIndicator +import com.intellij.codeInsight.daemon.impl.ParameterHintsPresentationManager import com.intellij.codeInsight.hints.* +import com.intellij.codeInsight.hints.settings.CASE_KEY import com.intellij.codeInsight.hints.settings.InlayProviderSettingsModel import com.intellij.codeInsight.hints.settings.ParameterHintsSettingsPanel +import com.intellij.codeInsight.hints.settings.ParameterNameHintsSettings import com.intellij.lang.Language -import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.editor.Editor import com.intellij.openapi.progress.ProgressManager import com.intellij.openapi.progress.util.ProgressIndicatorBase @@ -65,22 +67,28 @@ class ParameterInlayProviderSettingsModel( val pass = ParameterHintsPass(file, editor, HintInfoFilter { true }, true) ProgressManager.getInstance().runProcess({ val backup = ParameterInlayProviderSettingsModel(provider, language) + val enabled = ParameterNameHintsSettings.getInstance().isEnabledForLanguage(getLanguageForSettingKey(language)) backup.reset() try { apply() + val case = CASE_KEY.get(editor) + ParameterHintsPresentationManager.getInstance().setPreviewMode(editor, !isEnabled || case != null && !case.value) + provider.supportedOptions.forEach { it.set(true) } + setShowParameterHintsForLanguage(true, language) pass.collectInformation(ProgressIndicatorBase()) } finally { backup.apply() + setShowParameterHintsForLanguage(enabled, language) } }, DaemonProgressIndicator()) return Runnable { + ParameterHintsPass(file, editor, HintInfoFilter { true }, true).doApplyInformationToEditor() // clean up hints pass.doApplyInformationToEditor() } } - override val description: String? - get() = null + override val description: String? = provider.description override fun toString(): String = name diff --git a/platform/lang-impl/src/com/intellij/codeInspection/incorrectFormatting/IncorrectFormattingFix.kt b/platform/lang-impl/src/com/intellij/codeInspection/incorrectFormatting/IncorrectFormattingFix.kt index ef17d4ea33e4..01646aedfc36 100644 --- a/platform/lang-impl/src/com/intellij/codeInspection/incorrectFormatting/IncorrectFormattingFix.kt +++ b/platform/lang-impl/src/com/intellij/codeInspection/incorrectFormatting/IncorrectFormattingFix.kt @@ -47,7 +47,8 @@ object ReformatQuickFix : LocalQuickFix { override fun getFamilyName() = LangBundle.message("inspection.incorrect.formatting.fix.reformat") override fun applyFix(project: Project, descriptor: ProblemDescriptor) { - val file = descriptor.psiElement.containingFile + val innerFile = descriptor.psiElement.containingFile + val file = innerFile.viewProvider.run { getPsi(baseLanguage) } CodeStyleManager.getInstance(project).reformatText(file, 0, file.textLength) } } diff --git a/platform/lang-impl/src/com/intellij/execution/services/ServiceViewManagerImpl.java b/platform/lang-impl/src/com/intellij/execution/services/ServiceViewManagerImpl.java index 5db24dfc57dd..6769b7a4fff1 100644 --- a/platform/lang-impl/src/com/intellij/execution/services/ServiceViewManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/execution/services/ServiceViewManagerImpl.java @@ -167,7 +167,8 @@ public final class ServiceViewManagerImpl implements ServiceViewManager, Persist ToolWindow toolWindow = toolWindowManager.registerToolWindow(toolWindowId, builder -> { builder.contentFactory = new ServiceViewToolWindowFactory(); builder.icon = AllIcons.Toolwindows.ToolWindowServices; - if (toolWindowId == ToolWindowId.SERVICES) { + builder.hideOnEmptyContent = false; + if (toolWindowId.equals(ToolWindowId.SERVICES)) { builder.stripeTitle = () -> { @NlsSafe String title = toolWindowId; return title; @@ -178,9 +179,7 @@ public final class ServiceViewManagerImpl implements ServiceViewManager, Persist if (active) { myActiveToolWindowIds.add(toolWindowId); } - else { - toolWindow.setShowStripeButton(false); - } + toolWindow.setShowStripeButton(true); } finally { myRegisteringToolWindowAvailable = false; @@ -200,7 +199,7 @@ public final class ServiceViewManagerImpl implements ServiceViewManager, Persist } if (active) { - boolean doShow = show && !myActiveToolWindowIds.contains(toolWindowId) && !toolWindow.isShowStripeButton(); + boolean doShow = show && !myActiveToolWindowIds.contains(toolWindowId); myActiveToolWindowIds.add(toolWindowId); if (doShow) { toolWindow.show(); @@ -209,7 +208,6 @@ public final class ServiceViewManagerImpl implements ServiceViewManager, Persist else if (myActiveToolWindowIds.remove(toolWindowId)) { // Hide tool window only if model roots became empty and there were some services shown before update. toolWindow.hide(); - toolWindow.setShowStripeButton(false); } }, ModalityState.NON_MODAL, myProject.getDisposed()); } diff --git a/platform/lang-impl/src/com/intellij/find/actions/ShowUsagesAction.java b/platform/lang-impl/src/com/intellij/find/actions/ShowUsagesAction.java index 1d3ae912200c..e40a6427a8c0 100644 --- a/platform/lang-impl/src/com/intellij/find/actions/ShowUsagesAction.java +++ b/platform/lang-impl/src/com/intellij/find/actions/ShowUsagesAction.java @@ -1178,18 +1178,14 @@ public class ShowUsagesAction extends AnAction implements PopupAction, HintManag Dimension toolbarSize = toolbarComponent != null ? toolbarComponent.getPreferredSize() : JBUI.emptySize(); Dimension headerSize = popup.getHeaderPreferredSize(); - var newWidth = 0; - if(calcMaxWidth(table) < minWidth.get()){ - newWidth = calcMaxWidth(table); - } else { - int width = Math.max(d.width, calcMaxWidth(table)); - width = Math.max(Math.max(headerSize.width, width), toolbarSize.width); - width = Math.max(minWidth.get(), width); - - int delta = minWidth.get() == -1 ? 0 : width - minWidth.get(); - newWidth = Math.max(width, d.width + delta); - minWidth.set(newWidth); - } + int width = Math.max(d.width, calcMaxWidth(table)); + width = Math.max(Math.max(headerSize.width, width), toolbarSize.width); + width = Math.max(minWidth.get(), width); + + int delta = minWidth.get() == -1 ? 0 : width - minWidth.get(); + int newWidth = Math.max(width, d.width + delta); + + minWidth.set(newWidth); int minHeight = headerSize.height + toolbarSize.height; diff --git a/platform/lang-impl/src/com/intellij/find/impl/JComboboÑ…Action.kt b/platform/lang-impl/src/com/intellij/find/impl/JComboboÑ…Action.kt index 9d0086c47eb5..351cf86a0f15 100644 --- a/platform/lang-impl/src/com/intellij/find/impl/JComboboÑ…Action.kt +++ b/platform/lang-impl/src/com/intellij/find/impl/JComboboÑ…Action.kt @@ -46,6 +46,7 @@ class JComboboxAction(val project: Project, val onChanged: () -> Unit) : AnActio init { setEditor(BasicComboBoxEditor()) maximumRowCount = 12 + prototypeDisplayValue = emptyText isOpaque = false insertItemAt(emptyText, 0) selectedItem = FindSettings.getInstance().fileMask ?: emptyText @@ -77,7 +78,7 @@ class JComboboxAction(val project: Project, val onChanged: () -> Unit) : AnActio } } - override fun getPreferredSize() = Dimension(super.getPreferredSize().width, + override fun getPreferredSize() = Dimension(JBUI.scale(120), ActionToolbar.NAVBAR_MINIMUM_BUTTON_SIZE.height + insets.top + insets.bottom - JBUI.scale( 1)) diff --git a/platform/lang-impl/src/com/intellij/find/impl/TextSearchContributor.kt b/platform/lang-impl/src/com/intellij/find/impl/TextSearchContributor.kt index 0286546f75b3..9e5b82d9ad67 100644 --- a/platform/lang-impl/src/com/intellij/find/impl/TextSearchContributor.kt +++ b/platform/lang-impl/src/com/intellij/find/impl/TextSearchContributor.kt @@ -81,7 +81,7 @@ class TextSearchContributor(val event: AnActionEvent) : WeightedSearchEverywhere override fun getSearchProviderId() = ID override fun getGroupName() = FindBundle.message("search.everywhere.group.name") override fun getSortWeight() = 1500 - override fun showInFindResults() = true + override fun showInFindResults() = enabled() override fun isShownInSeparateTab() = true override fun fetchWeightedElements(pattern: String, @@ -189,7 +189,7 @@ class TextSearchContributor(val event: AnActionEvent) : WeightedSearchEverywhere companion object { private const val ID = "TextSearchContributor" - private const val ADVANCED_OPTION_ID = "se.enable.text.search" + private const val ADVANCED_OPTION_ID = "se.text.search" private val SE_TEXT_SELECTED_SCOPE = Key.create<String>("SE_TEXT_SELECTED_SCOPE") private fun enabled() = AdvancedSettings.getBoolean(ADVANCED_OPTION_ID) diff --git a/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/ContributorDefinedTabsCustomizationStrategy.kt b/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/ContributorDefinedTabsCustomizationStrategy.kt new file mode 100644 index 000000000000..e9950f74ed8d --- /dev/null +++ b/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/ContributorDefinedTabsCustomizationStrategy.kt @@ -0,0 +1,9 @@ +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.ide.actions.searcheverywhere + +class ContributorDefinedTabsCustomizationStrategy: TabsCustomizationStrategy { + + override fun getSeparateTabContributors(contributors: List<SearchEverywhereContributor<*>>): List<SearchEverywhereContributor<*>> = + contributors.filter { it.isShownInSeparateTab } + +}
\ No newline at end of file diff --git a/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/FixedTabsListCustomizationStrategy.kt b/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/FixedTabsListCustomizationStrategy.kt new file mode 100644 index 000000000000..35064236a9a1 --- /dev/null +++ b/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/FixedTabsListCustomizationStrategy.kt @@ -0,0 +1,8 @@ +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.ide.actions.searcheverywhere +abstract class FixedTabsListCustomizationStrategy(private val shownIds: List<String>): TabsCustomizationStrategy { + + override fun getSeparateTabContributors(contributors: List<SearchEverywhereContributor<*>>) + : List<SearchEverywhereContributor<*>> = + contributors.filter { it.searchProviderId in shownIds && it.isShownInSeparateTab} +}
\ No newline at end of file diff --git a/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/SearchEverywhereHeader.java b/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/SearchEverywhereHeader.java index e9de4f6e6ebb..8ff4b60aea0a 100644 --- a/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/SearchEverywhereHeader.java +++ b/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/SearchEverywhereHeader.java @@ -4,7 +4,6 @@ package com.intellij.ide.actions.searcheverywhere; import com.google.common.collect.Lists; import com.intellij.ide.IdeBundle; import com.intellij.ide.actions.searcheverywhere.statistics.SearchEverywhereUsageTriggerCollector; -import com.intellij.ide.ui.search.SearchEverywhereTabsCustomization; import com.intellij.ide.util.ElementsChooser; import com.intellij.ide.util.gotoByName.SearchEverywhereConfiguration; import com.intellij.ide.util.scopeChooser.ScopeDescriptor; @@ -266,19 +265,16 @@ public class SearchEverywhereHeader { res.add(allTab); } - Map<String, ? extends SearchEverywhereContributor<?>> contributorsMap = - ContainerUtil.map2Map(contributors, c -> Pair.create(c.getSearchProviderId(), c)); - - SearchEverywhereTabsCustomization.getInstance().getContributorsWithTab().forEach(id -> { - SearchEverywhereContributor<?> contributor = contributorsMap.get(id); - if (contributor != null) { + TabsCustomizationStrategy.getInstance() + .getSeparateTabContributors(contributors) + .forEach(contributor -> { SETab tab = createTab(contributor, () -> { myToolbar.updateActionsImmediately(); myScopeChangedCallback.run(); }); res.add(tab); - } - }); + }); + return res; } diff --git a/platform/lang-impl/src/com/intellij/ide/bookmark/BookmarkOccurrence.kt b/platform/lang-impl/src/com/intellij/ide/bookmark/BookmarkOccurrence.kt index 587afa74bf36..ce4c7a457d70 100644 --- a/platform/lang-impl/src/com/intellij/ide/bookmark/BookmarkOccurrence.kt +++ b/platform/lang-impl/src/com/intellij/ide/bookmark/BookmarkOccurrence.kt @@ -51,7 +51,8 @@ class BookmarkOccurrence internal constructor( companion object { private fun manager(project: Project) = BookmarksManager.getInstance(project) as? BookmarksManagerImpl - private val cyclic + + val cyclic get() = Registry.`is`("ide.bookmark.occurrence.cyclic.iteration.allowed", false) fun firstFileBookmark(project: Project) = first(project) { it.bookmark is FileBookmark } diff --git a/platform/lang-impl/src/com/intellij/ide/bookmark/actions/NextBookmarkInEditor.kt b/platform/lang-impl/src/com/intellij/ide/bookmark/actions/NextBookmarkInEditor.kt index 951da0b35c90..bf836ab618bd 100644 --- a/platform/lang-impl/src/com/intellij/ide/bookmark/actions/NextBookmarkInEditor.kt +++ b/platform/lang-impl/src/com/intellij/ide/bookmark/actions/NextBookmarkInEditor.kt @@ -1,7 +1,8 @@ -// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.ide.bookmark.actions import com.intellij.ide.bookmark.BookmarkBundle.messagePointer +import com.intellij.ide.bookmark.BookmarkOccurrence import com.intellij.ide.bookmark.BookmarksManager import com.intellij.ide.bookmark.LineBookmark import com.intellij.openapi.actionSystem.CommonDataKeys @@ -55,9 +56,10 @@ private class NextBookmarkInEditor(val forward: Boolean) : EditorActionHandler() if (bookmark.line < line) return bookmark } } - // cyclic selection - val bookmark = bookmarks[0] - if (bookmark.line != line) return bookmark + if (BookmarkOccurrence.cyclic) { + val bookmark = bookmarks[0] + if (bookmark.line != line) return bookmark + } } return null } diff --git a/platform/lang-impl/src/com/intellij/ide/bookmark/actions/NextBookmarkService.kt b/platform/lang-impl/src/com/intellij/ide/bookmark/actions/NextBookmarkService.kt index 81fcf162deb5..837566a01475 100644 --- a/platform/lang-impl/src/com/intellij/ide/bookmark/actions/NextBookmarkService.kt +++ b/platform/lang-impl/src/com/intellij/ide/bookmark/actions/NextBookmarkService.kt @@ -1,9 +1,10 @@ -// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.ide.bookmark.actions import com.intellij.ide.bookmark.BookmarkBundle.messagePointer import com.intellij.ide.bookmark.Bookmark import com.intellij.ide.bookmark.BookmarkGroup +import com.intellij.ide.bookmark.BookmarkOccurrence import com.intellij.ide.bookmark.BookmarksListener import com.intellij.ide.bookmark.BookmarksManager import com.intellij.ide.bookmark.LineBookmark @@ -65,8 +66,11 @@ internal class NextBookmarkService(private val project: Project) : BookmarksList fun next(forward: Boolean, bookmark: LineBookmark?): LineBookmark? { val bookmarks = getCachedBookmarks().ifEmpty { return null } - bookmark ?: return if (forward) bookmarks.first() else bookmarks.last() - return bookmarks.getOrNull(next(forward, bookmarks.binarySearch(bookmark, this))) + if (bookmark != null) { + val next = bookmarks.getOrNull(next(forward, bookmarks.binarySearch(bookmark, this))) + if (next != null || !BookmarkOccurrence.cyclic) return next + } + return if (forward) bookmarks.first() else bookmarks.last() } init { diff --git a/platform/lang-impl/src/com/intellij/ide/util/scopeChooser/ScopeChooserCombo.java b/platform/lang-impl/src/com/intellij/ide/util/scopeChooser/ScopeChooserCombo.java index 4808a3601a0f..1e36c2e5c0b8 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/scopeChooser/ScopeChooserCombo.java +++ b/platform/lang-impl/src/com/intellij/ide/util/scopeChooser/ScopeChooserCombo.java @@ -59,6 +59,8 @@ public class ScopeChooserCombo extends ComboboxWithBrowseButton implements Dispo private Condition<? super ScopeDescriptor> myScopeFilter; private BrowseListener myBrowseListener; + private SearchScope preselectedScope; + public ScopeChooserCombo() { super(new MyComboBox()); } @@ -106,6 +108,23 @@ public class ScopeChooserCombo extends ComboboxWithBrowseButton implements Dispo combo.setRenderer(createDefaultRenderer()); combo.setSwingPopup(false); + if (selection != null) { + var provider = PredefinedSearchScopeProvider.getInstance(); + var scopes = provider.getPredefinedScopes(project, + null, + suggestSearchInLibs, + prevSearchWholeFiles, + false, + false, + false); + for (SearchScope s : scopes) { + if (selection.equals(s.getDisplayName())) { + preselectedScope = s; + break; + } + } + } + return rebuildModelAndSelectScopeOnSuccess(selection); } @@ -230,6 +249,7 @@ public class ScopeChooserCombo extends ComboboxWithBrowseButton implements Dispo .onSuccess(__ -> { getComboBox().setModel(model); selectItem(selection); + preselectedScope = null; }) ); } @@ -276,17 +296,30 @@ public class ScopeChooserCombo extends ComboboxWithBrowseButton implements Dispo @Nullable public SearchScope getSelectedScope() { ScopeDescriptor item = (ScopeDescriptor)getComboBox().getSelectedItem(); - return item == null ? null : item.getScope(); + return item == null ? preselectedScope : item.getScope(); } public @Nullable @Nls String getSelectedScopeName() { ScopeDescriptor item = (ScopeDescriptor)getComboBox().getSelectedItem(); - return item == null ? null : item.getDisplayName(); + if (item == null) { + return preselectedScope == null ? null : preselectedScope.getDisplayName(); + } + return item.getDisplayName(); } public @Nullable @NonNls String getSelectedScopeId() { ScopeDescriptor item = (ScopeDescriptor)getComboBox().getSelectedItem(); - String scopeName = item != null ? item.getDisplayName() : null; + String scopeName; + if (item != null) { + scopeName = item.getDisplayName(); + } + else { + if (preselectedScope != null) { + scopeName = preselectedScope.getDisplayName(); + } else { + scopeName = null; + } + } return scopeName != null ? ScopeIdMapper.getInstance().getScopeSerializationId(scopeName) : null; } diff --git a/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexDataInitialization.java b/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexDataInitialization.java index 840bacd53359..6e85888d1ccc 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexDataInitialization.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexDataInitialization.java @@ -18,6 +18,7 @@ import com.intellij.openapi.vfs.newvfs.ManagingFS; import com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl; import com.intellij.psi.search.FilenameIndex; import com.intellij.util.ThrowableRunnable; +import com.intellij.util.containers.ContainerUtil; import com.intellij.util.indexing.impl.storage.DefaultIndexStorageLayout; import com.intellij.util.indexing.impl.storage.FileBasedIndexLayoutSettings; import com.intellij.util.io.DataOutputStream; @@ -219,8 +220,8 @@ final class FileBasedIndexDataInitialization extends IndexDataInitializer<IndexC } } + boolean dropFilenameIndex = Registry.is("indexing.filename.over.vfs") && indicesToDrop.contains(FilenameIndex.NAME.getName()); if (!exceptionThrown) { - boolean dropFilenameIndex = Registry.is("indexing.filename.over.vfs") && indicesToDrop.contains(FilenameIndex.NAME.getName()); for (ID<?, ?> key : ids) { if (dropFilenameIndex && key == FilenameIndex.NAME) continue; indicesToDrop.remove(key.getName()); @@ -228,7 +229,9 @@ final class FileBasedIndexDataInitialization extends IndexDataInitializer<IndexC } if (!indicesToDrop.isEmpty()) { - LOG.info("Dropping indices:" + String.join(",", indicesToDrop)); + Collection<String> filtered = !dropFilenameIndex ? indicesToDrop : + ContainerUtil.filter(indicesToDrop, o -> !FilenameIndex.NAME.getName().equals(o)); + if (!filtered.isEmpty()) LOG.info("Dropping indices:" + String.join(",", filtered)); for (String s : indicesToDrop) { try { FileUtil.deleteWithRenaming(IndexInfrastructure.getFileBasedIndexRootDir(s).toFile()); diff --git a/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java b/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java index a336b9f20813..352418c88cb2 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java @@ -811,9 +811,7 @@ public final class FileBasedIndexImpl extends FileBasedIndexEx { if (!ActionUtil.isDumbMode(project) || getCurrentDumbModeAccessType_NoDumbChecks() == null) { forceUpdate(project, filter, restrictedFile); } - if (!areUnsavedDocumentsIndexed(indexId)) { // todo: check scope ? - indexUnsavedDocuments(indexId, project, filter, restrictedFile); - } + indexUnsavedDocuments(indexId, project, filter, restrictedFile); } catch (RuntimeException e) { final Throwable cause = e.getCause(); @@ -842,10 +840,6 @@ public final class FileBasedIndexImpl extends FileBasedIndexEx { return super.processAllKeys(indexId, processor, scope, idFilter); } - private boolean areUnsavedDocumentsIndexed(@NotNull ID<?, ?> indexId) { - return myUpToDateIndicesForUnsavedOrTransactedDocuments.contains(indexId); - } - private static void handleDumbMode(@Nullable Project project) throws IndexNotReadyException { ProgressManager.checkCanceled(); throw IndexNotReadyException.create(project == null ? null : DumbServiceImpl.getInstance(project).getDumbModeStartTrace()); diff --git a/platform/lang-impl/testSources/com/intellij/ide/actions/searcheverywhere/HeaderTabsTest.kt b/platform/lang-impl/testSources/com/intellij/ide/actions/searcheverywhere/HeaderTabsTest.kt new file mode 100644 index 000000000000..3009a6a59aa9 --- /dev/null +++ b/platform/lang-impl/testSources/com/intellij/ide/actions/searcheverywhere/HeaderTabsTest.kt @@ -0,0 +1,70 @@ +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.ide.actions.searcheverywhere + +import com.intellij.openapi.progress.ProgressIndicator +import com.intellij.util.Processor +import org.junit.Assert +import org.junit.Test +import javax.swing.JPanel +import javax.swing.ListCellRenderer + +class HeaderTabsTest { + + @Test + fun contributorDefinedStrategyTest() { + ContributorDefinedTabsCustomizationStrategy().doTest( + mapOf( + emptyList<Pair<String, Boolean>>() to emptyList(), + listOf("c1" to true, "c2" to true, "c3" to false, "c4" to true, "c5" to false) to listOf("c1", "c2", "c4"), + listOf("c1" to false, "c2" to false, "c3" to false, "c4" to false, "c5" to false) to emptyList() + ) + ) + } + + @Test + fun fixedListDefinedStrategyTest() { + createFixedListStrategy(listOf("c1", "c2", "c5")).doTest( + mapOf( + emptyList<Pair<String, Boolean>>() to emptyList(), + listOf("c1" to true, "c2" to true, "c3" to false, "c4" to true, "c5" to false) to listOf("c1", "c2"), + listOf("c1" to false, "c2" to false, "c3" to false, "c4" to false, "c5" to false) to emptyList() + ) + ) + + createFixedListStrategy(emptyList()).doTest( + mapOf( + emptyList<Pair<String, Boolean>>() to emptyList(), + listOf("c1" to true, "c2" to true, "c3" to false, "c4" to true, "c5" to false) to emptyList(), + listOf("c1" to false, "c2" to false, "c3" to false, "c4" to false, "c5" to false) to emptyList() + ) + ) + } + + private fun createFixedListStrategy(ids: List<String>): TabsCustomizationStrategy { + return object : FixedTabsListCustomizationStrategy(ids) {} + } + + private fun TabsCustomizationStrategy.doTest(map: Map<List<Pair<String, Boolean>>, List<String>>) { + map.forEach { (contributors, expected) -> + val actual = contributors + .map { createDumbContributor(it.first, it.second) } + .let { getSeparateTabContributors(it) } + .map { it.searchProviderId } + + Assert.assertEquals(expected, actual) + } + } + + private fun createDumbContributor(id: String, showTab: Boolean): SearchEverywhereContributor<Unit> = + object : SearchEverywhereContributor<Unit> { + override fun getSearchProviderId(): String = id + override fun getGroupName(): String = id + override fun getSortWeight(): Int = 0 + override fun showInFindResults(): Boolean = false + override fun isShownInSeparateTab(): Boolean = showTab + override fun getElementsRenderer(): ListCellRenderer<in Unit> = ListCellRenderer { _, _, _, _, _ -> JPanel() } + override fun getDataForItem(element: Unit, dataId: String): Any? = null + override fun processSelectedItem(selected: Unit, modifiers: Int, searchText: String): Boolean = false + override fun fetchElements(pattern: String, progressIndicator: ProgressIndicator, consumer: Processor<in Unit>) {} + } +}
\ No newline at end of file diff --git a/platform/platform-api/resources/messages/IdeBundle.properties b/platform/platform-api/resources/messages/IdeBundle.properties index accfb717cf5d..97ae99ddd104 100644 --- a/platform/platform-api/resources/messages/IdeBundle.properties +++ b/platform/platform-api/resources/messages/IdeBundle.properties @@ -2707,7 +2707,7 @@ project.widget.open=Open... project.widget.from.vcs=Get from Version Control... to.create.new.file.tooltip=To create a new file, press <b>{0}</b>. Alternatively, right-click any folder and select <b>New | \\<file type\\></b> -general.module.type.description=A basic project that allows working with separate files and compile Java and Kotlin classes. +general.module.type.description=A basic project that allows working with separate files and compiling Java and Kotlin classes. main.toolbar.menu.button=Main menu label.project.wizard.install.plugin=Install Plugin diff --git a/platform/platform-api/resources/messages/UIBundle.properties b/platform/platform-api/resources/messages/UIBundle.properties index 70edde9f5665..73e3ba7e5b71 100644 --- a/platform/platform-api/resources/messages/UIBundle.properties +++ b/platform/platform-api/resources/messages/UIBundle.properties @@ -277,7 +277,7 @@ label.project.wizard.module.generator.name=New Module label.project.wizard.module.generator.description=Create new module with predefined language and build system label.project.wizard.empty.project.generator.name=Empty Project label.project.wizard.empty.project.generator.description=Create Empty Project -label.project.wizard.empty.project.generator.full.description=A basic project that allows working with separate files and compile Java and Kotlin classes. +label.project.wizard.empty.project.generator.full.description=A basic project that allows working with separate files and compiling Java and Kotlin classes. label.project.wizard.multi.project.generator.name=Multi-module Project label.project.wizard.multi.project.generator.description=Create Multi-module Project label.project.wizard.multi.project.generator.full.description=Multi-module project allows creating free-style module structure.\ diff --git a/platform/platform-api/src/com/intellij/ide/ui/search/SearchEverywhereTabsCustomization.kt b/platform/platform-api/src/com/intellij/ide/ui/search/SearchEverywhereTabsCustomization.kt deleted file mode 100644 index 15e23fac8ef9..000000000000 --- a/platform/platform-api/src/com/intellij/ide/ui/search/SearchEverywhereTabsCustomization.kt +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.ide.ui.search - -import com.intellij.openapi.application.ApplicationManager -import org.jetbrains.annotations.ApiStatus - -@ApiStatus.Internal -@ApiStatus.Experimental -interface SearchEverywhereTabsCustomization { - - companion object { - @JvmStatic fun getInstance():SearchEverywhereTabsCustomization = - ApplicationManager.getApplication().getService(SearchEverywhereTabsCustomization::class.java) - } - - fun getContributorsWithTab(): List<String> - -}
\ No newline at end of file diff --git a/platform/platform-api/src/com/intellij/openapi/GitRepositoryInitializer.java b/platform/platform-api/src/com/intellij/openapi/GitRepositoryInitializer.java index 09af616ce391..1e1caf6fef5a 100644 --- a/platform/platform-api/src/com/intellij/openapi/GitRepositoryInitializer.java +++ b/platform/platform-api/src/com/intellij/openapi/GitRepositoryInitializer.java @@ -10,12 +10,19 @@ import org.jetbrains.annotations.Nullable; /** * Initializes a Git repository in the specified place. + * + * @see GitSilentFileAdderProvider#create(Project) */ public interface GitRepositoryInitializer { ExtensionPointName<GitRepositoryInitializer> EP_NAME = ExtensionPointName.create("com.intellij.gitRepositoryInitializer"); @RequiresBackgroundThread - void initRepository(@NotNull Project project, @NotNull VirtualFile root); + default void initRepository(@NotNull Project project, @NotNull VirtualFile root) { + initRepository(project, root, false); + } + + @RequiresBackgroundThread + void initRepository(@NotNull Project project, @NotNull VirtualFile root, boolean addFilesToVcs); @Nullable static GitRepositoryInitializer getInstance() { diff --git a/platform/platform-api/src/com/intellij/openapi/GitSilentFileAdder.java b/platform/platform-api/src/com/intellij/openapi/GitSilentFileAdder.java new file mode 100644 index 000000000000..3a01ec4979fe --- /dev/null +++ b/platform/platform-api/src/com/intellij/openapi/GitSilentFileAdder.java @@ -0,0 +1,64 @@ +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.openapi; + +import com.intellij.openapi.vfs.VirtualFile; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.SystemIndependent; + +import java.io.File; +import java.nio.file.Path; + +/** + * To be used in async Project initialization tasks to add files silently, + * preventing triggering of 'add new files to vcs' notifications/dialogs + * by {@link com.intellij.openapi.vcs.VcsVFSListener}. + * + * @see GitRepositoryInitializer + * @see com.intellij.openapi.vcs.VcsFileListenerContextHelper + */ +@ApiStatus.Internal +public interface GitSilentFileAdder { + /** + * Schedule file to be added into vcs silently + * <p> + * Method should be called before firing the corresponding VFS event. + * Meaning, inside the same write command or before VFS refresh for externally changed files. + */ + void markFileForAdding(@NotNull @SystemIndependent String path, boolean isDirectory); + + void markFileForAdding(@NotNull VirtualFile file); + + void markFileForAdding(@NotNull File file, boolean isDirectory); + + void markFileForAdding(@NotNull Path path, boolean isDirectory); + + /** + * Notify that marked files can be added on pooled thread. + * <p> + * Should be called after explicit VFS refresh if files are added externally (ex: using NIO). + */ + void finish(); + + class Empty implements GitSilentFileAdder { + @Override + public void markFileForAdding(@NotNull @SystemIndependent String path, boolean isDirectory) { + } + + @Override + public void markFileForAdding(@NotNull VirtualFile file) { + } + + @Override + public void markFileForAdding(@NotNull File file, boolean isDirectory) { + } + + @Override + public void markFileForAdding(@NotNull Path path, boolean isDirectory) { + } + + @Override + public void finish() { + } + } +} diff --git a/platform/platform-api/src/com/intellij/openapi/GitSilentFileAdderProvider.java b/platform/platform-api/src/com/intellij/openapi/GitSilentFileAdderProvider.java new file mode 100644 index 000000000000..85fe0d3a4093 --- /dev/null +++ b/platform/platform-api/src/com/intellij/openapi/GitSilentFileAdderProvider.java @@ -0,0 +1,18 @@ +// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +package com.intellij.openapi; + +import com.intellij.openapi.extensions.ProjectExtensionPointName; +import com.intellij.openapi.project.Project; +import org.jetbrains.annotations.NotNull; + +public interface GitSilentFileAdderProvider { + ProjectExtensionPointName<GitSilentFileAdderProvider> EP_NAME = new ProjectExtensionPointName<>("com.intellij.gitSilentFileAdder"); + + @NotNull + GitSilentFileAdder create(); + + @NotNull + static GitSilentFileAdder create(@NotNull Project project) { + return EP_NAME.extensions(project).findFirst().map(it -> it.create()).orElse(new GitSilentFileAdder.Empty()); + } +} diff --git a/platform/platform-api/src/com/intellij/openapi/MnemonicWrapper.java b/platform/platform-api/src/com/intellij/openapi/MnemonicWrapper.java index 97a5e90c9824..6b401f2449e1 100644 --- a/platform/platform-api/src/com/intellij/openapi/MnemonicWrapper.java +++ b/platform/platform-api/src/com/intellij/openapi/MnemonicWrapper.java @@ -18,7 +18,7 @@ import java.beans.PropertyChangeListener; abstract class MnemonicWrapper<T extends JComponent> implements Runnable, PropertyChangeListener { public static MnemonicWrapper<?> getWrapper(Component component) { - if (component == null || component.getClass().getName().equals("com.intellij.openapi.wm.impl.StripeButton")) { + if (component == null || component.getClass().getName().equals("com.intellij.toolWindow.StripeButton")) { return null; } for (PropertyChangeListener listener : component.getPropertyChangeListeners()) { diff --git a/platform/platform-api/src/com/intellij/util/ui/ListTableModel.java b/platform/platform-api/src/com/intellij/util/ui/ListTableModel.java index 81f03298c7db..722ae6f087c2 100644 --- a/platform/platform-api/src/com/intellij/util/ui/ListTableModel.java +++ b/platform/platform-api/src/com/intellij/util/ui/ListTableModel.java @@ -5,6 +5,7 @@ import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; import javax.swing.*; +import javax.swing.event.TableModelEvent; import java.util.*; public class ListTableModel<Item> extends TableViewModel<Item> implements EditableModel { @@ -86,6 +87,11 @@ public class ListTableModel<Item> extends TableViewModel<Item> implements Editab fireTableDataChanged(); } + public void setItem(int rowIndex, @NotNull Item item) { + myItems.set(rowIndex, item); + fireTableCellUpdated(rowIndex, TableModelEvent.ALL_COLUMNS); + } + @Override public Object getValueAt(int rowIndex, int columnIndex) { return myColumnInfos[columnIndex].valueOf(getItem(rowIndex)); diff --git a/platform/platform-impl/src/com/intellij/codeInsight/daemon/impl/HintRenderer.kt b/platform/platform-impl/src/com/intellij/codeInsight/daemon/impl/HintRenderer.kt index 60f75b20bf3c..1f7ad13167f2 100644 --- a/platform/platform-impl/src/com/intellij/codeInsight/daemon/impl/HintRenderer.kt +++ b/platform/platform-impl/src/com/intellij/codeInsight/daemon/impl/HintRenderer.kt @@ -234,7 +234,7 @@ open class HintRenderer(var text: String?) : EditorCustomElementRenderer { @JvmStatic protected fun getFontMetrics(editor: Editor, useEditorFont: Boolean): MyFontMetrics { - val size = max(1f, editor.colorsScheme.editorFontSize2D - 1f) + val size = HintUtil.getSize(editor) var metrics = editor.getUserData(HINT_FONT_METRICS) val attributes = editor.colorsScheme.getAttributes(DefaultLanguageHighlighterColors.INLINE_PARAMETER_HINT) val fontType = attributes.fontType diff --git a/platform/platform-impl/src/com/intellij/codeInsight/daemon/impl/HintUtil.kt b/platform/platform-impl/src/com/intellij/codeInsight/daemon/impl/HintUtil.kt new file mode 100644 index 000000000000..661d9bc74cc3 --- /dev/null +++ b/platform/platform-impl/src/com/intellij/codeInsight/daemon/impl/HintUtil.kt @@ -0,0 +1,9 @@ +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.codeInsight.daemon.impl + +import com.intellij.openapi.editor.Editor +import kotlin.math.max + +object HintUtil { + fun getSize(editor: Editor): Float = max(1f, editor.colorsScheme.editorFontSize2D - 1f) +}
\ No newline at end of file diff --git a/platform/platform-impl/src/com/intellij/featureStatistics/fusCollectors/OsDataCollector.kt b/platform/platform-impl/src/com/intellij/featureStatistics/fusCollectors/OsDataCollector.kt index 5467a4e5f5e8..dd385b19aeb8 100644 --- a/platform/platform-impl/src/com/intellij/featureStatistics/fusCollectors/OsDataCollector.kt +++ b/platform/platform-impl/src/com/intellij/featureStatistics/fusCollectors/OsDataCollector.kt @@ -16,6 +16,7 @@ import java.nio.file.Files import java.nio.file.Path import java.time.OffsetDateTime import java.util.* +import kotlin.io.path.name import kotlin.streams.asSequence internal class OsDataCollector : ApplicationUsagesCollector(), AllowedDuringStartupCollector { @@ -27,17 +28,21 @@ internal class OsDataCollector : ApplicationUsagesCollector(), AllowedDuringStar "te", "th", "tr", "uk", "ur", "uz", "vi", "yo", "zh", "zu") @Suppress("SpellCheckingInspection") + private val SHELLS = listOf("sh", "ash", "bash", "csh", "dash", "fish", "ksh", "tcsh", "xonsh", "zsh", "nu", "other", "unknown") + + @Suppress("SpellCheckingInspection") private val DISTROS = listOf( - "almalinux", "alpine", "amzn", "arch", "bunsenlabs", "centos", "chromeos", "debian", "deepin", "devuan", "elementary", "fedora", - "galliumos", "garuda", "gentoo", "kali", "linuxmint", "mageia", "manjaro", "neon", "nixos", "ol", "opensuse-leap", "opensuse-tumbleweed", - "parrot", "pop", "pureos", "raspbian", "rhel", "rocky", "rosa", "sabayon", "slackware", "solus", "ubuntu", "void", "zorin", - "other", "unknown") + "almalinux", "alpine", "amzn", "arch", "bunsenlabs", "centos", "chromeos", "debian", "deepin", "devuan", "elementary", + "endeavouros", "fedora", "galliumos", "garuda", "gentoo", "kali", "linuxmint", "mageia", "manjaro", "neon", "nixos", "ol", + "opensuse-leap", "opensuse-tumbleweed", "parrot", "pop", "pureos", "raspbian", "rhel", "rocky", "rosa", "sabayon", + "slackware", "solus", "ubuntu", "void", "zorin", "other", "unknown") - private val GROUP = EventLogGroup("system.os", 14) + private val GROUP = EventLogGroup("system.os", 16) private val OS_NAME = String("name", OS_NAMES) private val OS_LANG = String("locale", LOCALES) private val OS_TZ = StringValidatedByRegexp("time_zone", "time_zone") - private val OS = GROUP.registerVarargEvent("os.name", OS_NAME, Version, OS_LANG, OS_TZ) + private val OS_SHELL = String("shell", SHELLS) + private val OS = GROUP.registerVarargEvent("os.name", OS_NAME, Version, OS_LANG, OS_TZ, OS_SHELL) @ApiStatus.ScheduledForRemoval(inVersion = "2024.1") @Suppress("MissingDeprecatedAnnotationOnScheduledForRemovalApi") private val TIMEZONE = GROUP.registerEvent("os.timezone", StringValidatedByRegexp("value", "time_zone")) // backward compatibility @@ -49,7 +54,7 @@ internal class OsDataCollector : ApplicationUsagesCollector(), AllowedDuringStar override fun getMetrics(): Set<MetricEvent> { val tz = getTimeZone() val metrics = mutableSetOf( - OS.metric(OS_NAME.with(getOSName()), Version.with(SystemInfo.OS_VERSION), OS_LANG.with(getLanguage()), OS_TZ.with(tz)), + OS.metric(OS_NAME.with(getOSName()), Version.with(SystemInfo.OS_VERSION), OS_LANG.with(getLanguage()), OS_TZ.with(tz), OS_SHELL.with(getShell())), TIMEZONE.metric(tz)) when { @@ -80,6 +85,10 @@ internal class OsDataCollector : ApplicationUsagesCollector(), AllowedDuringStar private fun getTimeZone(): String = OffsetDateTime.now().offset.toString() + private fun getShell(): String? = + if (SystemInfo.isWindows) null + else SHELLS.coerce(runCatching { System.getenv("SHELL")?.let { Path.of(it).name } }.getOrNull()) + // https://www.freedesktop.org/software/systemd/man/os-release.html private fun getReleaseData(): Pair<String, String?> = try { @@ -89,11 +98,7 @@ internal class OsDataCollector : ApplicationUsagesCollector(), AllowedDuringStar .map { it.split('=') } .filter { it.size == 2 && it[0] in fields } .associate { it[0] to it[1].trim('"') } - val distro = when (val id = values["ID"]) { - null -> "unknown" - in DISTROS -> id - else -> "other" - } + val distro = DISTROS.coerce(values["ID"]) distro to values["VERSION_ID"] } } @@ -109,4 +114,11 @@ internal class OsDataCollector : ApplicationUsagesCollector(), AllowedDuringStar catch(e: IOException) { false } + + private fun List<String>.coerce(value: String?): String = + when (value) { + null -> "unknown" + in this -> value + else -> "other" + } } diff --git a/platform/platform-impl/src/com/intellij/ide/CommandLineProcessor.java b/platform/platform-impl/src/com/intellij/ide/CommandLineProcessor.java index d81d3f500246..c9a3fec987c9 100644 --- a/platform/platform-impl/src/com/intellij/ide/CommandLineProcessor.java +++ b/platform/platform-impl/src/com/intellij/ide/CommandLineProcessor.java @@ -72,7 +72,7 @@ public final class CommandLineProcessor { if (!LightEditUtil.isForceOpenInLightEditMode()) { OpenProjectTask options = PlatformProjectOpenProcessor.createOptionsToOpenDotIdeaOrCreateNewIfNotExists(file, null); // do not check for .ipr files in the specified directory (@develar: it is existing behaviour, I am not fully sure that it is correct) - ProjectUtil.FORCE_CHECK_DIRECTORY_KEY.set(options, Boolean.TRUE); + ProjectUtil.PREVENT_IPR_LOOKUP_KEY.set(options, Boolean.TRUE); OpenResult openResult = ProjectUtil.tryOpenOrImport(file, options); if (openResult instanceof OpenResult.Success) { project = ((OpenResult.Success)openResult).getProject(); diff --git a/platform/platform-impl/src/com/intellij/ide/IdeTooltipManager.java b/platform/platform-impl/src/com/intellij/ide/IdeTooltipManager.java index d0e3ee3ccce4..4f41ed1e1cb3 100644 --- a/platform/platform-impl/src/com/intellij/ide/IdeTooltipManager.java +++ b/platform/platform-impl/src/com/intellij/ide/IdeTooltipManager.java @@ -705,7 +705,7 @@ public class IdeTooltipManager implements Disposable, AWTEventListener { JLayeredPane lp = layeredPane; if (lp == null) { JRootPane rootPane = UIUtil.getRootPane(this); - if (rootPane != null) { + if (rootPane != null && rootPane.getSize().width > 0) { lp = rootPane.getLayeredPane(); } } diff --git a/platform/platform-impl/src/com/intellij/ide/actionMacro/ActionMacroManager.java b/platform/platform-impl/src/com/intellij/ide/actionMacro/ActionMacroManager.java index e53f24838bd2..c3573656b1f4 100644 --- a/platform/platform-impl/src/com/intellij/ide/actionMacro/ActionMacroManager.java +++ b/platform/platform-impl/src/com/intellij/ide/actionMacro/ActionMacroManager.java @@ -1,4 +1,4 @@ -// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.ide.actionMacro; import com.intellij.icons.AllIcons; @@ -52,7 +52,6 @@ import java.awt.*; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; -import java.util.List; import java.util.*; @State(name = "ActionMacroManager", storages = @Storage("macros.xml"), category = SettingsCategory.UI) @@ -471,14 +470,12 @@ public final class ActionMacroManager implements PersistentStateComponent<Elemen // fix references to and icons of renamed macros in the custom actions schema final CustomActionsSchema customActionsSchema = CustomActionsSchema.getInstance(); - final List<ActionUrl> actions = customActionsSchema.getActions(); - for (final ActionUrl actionUrl : actions) { + for (ActionUrl actionUrl : customActionsSchema.getActions()) { final String newId = renamingMap.get(actionUrl.getComponent()); if (newId != null) { actionUrl.setComponent(newId); } } - customActionsSchema.setActions(actions); for (Map.Entry<String, String> entry : renamingMap.entrySet()) { final String oldId = entry.getKey(); final String path = customActionsSchema.getIconPath(oldId); diff --git a/platform/platform-impl/src/com/intellij/ide/impl/ProjectUtil.java b/platform/platform-impl/src/com/intellij/ide/impl/ProjectUtil.java index de431fd548a3..a36fe7754e75 100644 --- a/platform/platform-impl/src/com/intellij/ide/impl/ProjectUtil.java +++ b/platform/platform-impl/src/com/intellij/ide/impl/ProjectUtil.java @@ -63,7 +63,7 @@ public final class ProjectUtil extends ProjectUtilCore { public static final String PROPERTY_PROJECT_PATH = "%s.project.path"; @ApiStatus.Internal - public static final Key<Boolean> FORCE_CHECK_DIRECTORY_KEY = Key.create("project.util.processor.chooser"); + public static final Key<Boolean> PREVENT_IPR_LOOKUP_KEY = Key.create("project.util.prevent.ipr.lookup"); @ApiStatus.Internal public static final Key<Function<List<? extends ProjectOpenProcessor>, ProjectOpenProcessor>> PROCESSOR_CHOOSER_KEY = @@ -179,7 +179,7 @@ public final class ProjectUtil extends ProjectUtilCore { return openResult(project, OpenResult.failure()); } - if (FORCE_CHECK_DIRECTORY_KEY.get(options) == Boolean.TRUE && Files.isDirectory(file)) { + if (PREVENT_IPR_LOOKUP_KEY.get(options) != Boolean.TRUE && Files.isDirectory(file)) { try (DirectoryStream<Path> directoryStream = Files.newDirectoryStream(file)) { for (Path child : directoryStream) { String childPath = child.toString(); @@ -256,7 +256,7 @@ public final class ProjectUtil extends ProjectUtilCore { return ProjectManagerEx.getInstanceEx().openProjectAsync(file, options.withRunConfigurators()); } - if (FORCE_CHECK_DIRECTORY_KEY.get(options) == Boolean.TRUE && Files.isDirectory(file)) { + if (PREVENT_IPR_LOOKUP_KEY.get(options) != Boolean.TRUE && Files.isDirectory(file)) { try (DirectoryStream<Path> directoryStream = Files.newDirectoryStream(file)) { for (Path child : directoryStream) { String childPath = child.toString(); @@ -768,15 +768,25 @@ public final class ProjectUtil extends ProjectUtilCore { public static @Nullable Path getProjectFile(@NotNull String name) { Path projectDir = getProjectPath(name); - return Files.isDirectory(projectDir.resolve(Project.DIRECTORY_STORE_FOLDER)) ? projectDir : null; + return isProjectFile(projectDir) ? projectDir : null; + } + + private static boolean isProjectFile(@NotNull Path projectDir) { + return Files.isDirectory(projectDir.resolve(Project.DIRECTORY_STORE_FOLDER)); } public static @Nullable Project openOrCreateProject(@NotNull String name) { return openOrCreateProject(name, null); } - public static @Nullable Project openOrCreateProject(@NotNull String name, @Nullable ProjectCreatedCallback projectCreatedCallback) { - return ProgressManager.getInstance().computeInNonCancelableSection(() -> openOrCreateProjectInner(name, projectCreatedCallback)); + public static @Nullable Project openOrCreateProject(@NotNull String name, @Nullable ProjectCreatedCallback projectCreatedCallback) { + return openOrCreateProject(name, getProjectPath(name), projectCreatedCallback); + } + + public static @Nullable Project openOrCreateProject(@NotNull String name, @NotNull Path file, @Nullable ProjectCreatedCallback projectCreatedCallback) { + return ProgressManager.getInstance().computeInNonCancelableSection(() -> { + return openOrCreateProjectInner(name, file, projectCreatedCallback); + }); } public interface ProjectCreatedCallback { @@ -795,7 +805,13 @@ public final class ProjectUtil extends ProjectUtilCore { } private static @Nullable Project openOrCreateProjectInner(@NotNull String name, @Nullable ProjectCreatedCallback projectCreatedCallback) { - Path existingFile = getProjectFile(name); + Path file = getProjectPath(name); + return openOrCreateProjectInner(name, file, projectCreatedCallback); + } + + @Nullable + private static Project openOrCreateProjectInner(@NotNull String name, @NotNull Path file, @Nullable ProjectCreatedCallback projectCreatedCallback) { + Path existingFile = isProjectFile(file) ? file : null; if (existingFile != null) { Project[] openProjects = ProjectManager.getInstance().getOpenProjects(); for (Project p : openProjects) { @@ -807,7 +823,6 @@ public final class ProjectUtil extends ProjectUtilCore { return ProjectManagerEx.getInstanceEx().openProject(existingFile, new OpenProjectTask().withRunConfigurators()); } - Path file = getProjectPath(name); boolean created; try { created = (!Files.exists(file) && Files.createDirectories(file) != null) || Files.isDirectory(file); @@ -825,7 +840,7 @@ public final class ProjectUtil extends ProjectUtilCore { projectCreatedCallback.projectCreated(project); } saveAndDisposeProject(project); - projectFile = getProjectFile(name); + projectFile = file; } } if (projectFile == null) return null; diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTableModel.java b/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTableModel.java index d05622504565..cdd0fa0eb608 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTableModel.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTableModel.java @@ -89,12 +89,13 @@ public class InstalledPluginsTableModel { (descriptor, pair) -> { }); + Map<PluginId, IdeaPluginDescriptorImpl> pluginIdMap = PluginManagerCore.buildPluginIdMap(); List<IdeaPluginDescriptorImpl> impls = descriptors.stream() - .filter(IdeaPluginDescriptorImpl.class::isInstance) - .map(IdeaPluginDescriptorImpl.class::cast) + .map(descriptor -> descriptor instanceof IdeaPluginDescriptorImpl ? + (IdeaPluginDescriptorImpl)descriptor : + findByPluginId(descriptor.getPluginId(), pluginIdMap)) .collect(Collectors.toCollection(ArrayList::new)); - Map<PluginId, IdeaPluginDescriptorImpl> pluginIdMap = PluginManagerCore.buildPluginIdMap(); List<IdeaPluginDescriptorImpl> descriptorsToUpdate = action.isEnable() ? getDependenciesToEnable(impls, tempEnabled, pluginIdMap) : getDependentsToDisable(impls, tempEnabled, pluginIdMap); @@ -116,6 +117,12 @@ public class InstalledPluginsTableModel { updatePluginDependencies(pluginIdMap); } + private static @NotNull IdeaPluginDescriptorImpl findByPluginId(@NotNull PluginId pluginId, + @NotNull Map<PluginId, IdeaPluginDescriptorImpl> pluginIdMap) { + return Objects.requireNonNull(pluginIdMap.get(pluginId), + "'" + pluginId + "' not found"); + } + private static void setNewEnabled(@NotNull Collection<? extends IdeaPluginDescriptor> descriptors, @NotNull Map<PluginId, PluginEnabledState> enabledMap, @NotNull PluginEnableDisableAction action, diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/PluginInstaller.java b/platform/platform-impl/src/com/intellij/ide/plugins/PluginInstaller.java index 355ca7c5d321..38ffbaaf359e 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/PluginInstaller.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/PluginInstaller.java @@ -1,4 +1,4 @@ -// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.ide.plugins; import com.intellij.CommonBundle; @@ -88,7 +88,8 @@ public final class PluginInstaller { return false; } - private static void uninstallAfterRestart(@NotNull Path pluginPath) throws IOException { + @ApiStatus.Internal + public static void uninstallAfterRestart(@NotNull Path pluginPath) throws IOException { addActionCommand(new DeleteCommand(pluginPath)); } @@ -97,7 +98,8 @@ public final class PluginInstaller { boolean isUpdate) { boolean uninstalledWithoutRestart = true; if (pluginDescriptor.isEnabled()) { - DynamicPlugins.UnloadPluginOptions options = new DynamicPlugins.UnloadPluginOptions().withDisable(false) + DynamicPlugins.UnloadPluginOptions options = new DynamicPlugins.UnloadPluginOptions() + .withDisable(false) .withUpdate(isUpdate) .withWaitForClassloaderUnload(true); @@ -395,7 +397,8 @@ public final class PluginInstaller { return false; } - return DynamicPlugins.INSTANCE.loadPlugin(targetDescriptor); + return PluginEnabler.HEADLESS.isDisabled(targetDescriptor.getPluginId()) || + DynamicPlugins.INSTANCE.loadPlugin(targetDescriptor); } private static @NotNull Set<String> findNotInstalledPluginDependencies(@NotNull List<? extends IdeaPluginDependency> dependencies, diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/newui/MyPluginModel.java b/platform/platform-impl/src/com/intellij/ide/plugins/newui/MyPluginModel.java index 4aeef6508ad7..5d15dcf82848 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/newui/MyPluginModel.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/newui/MyPluginModel.java @@ -73,7 +73,7 @@ public class MyPluginModel extends InstalledPluginsTableModel implements PluginE public boolean needRestart; public boolean createShutdownCallback = true; - private boolean myInstallsRequiringRestart; + private final List<PluginDetailsPageComponent> myDetailPanels = new ArrayList<>(); private final @Nullable StatusBarEx myStatusBar; @@ -138,8 +138,18 @@ public class MyPluginModel extends InstalledPluginsTableModel implements PluginE myDiff.remove(pluginDescriptor); PluginId pluginId = pluginDescriptor.getPluginId(); - if (!PluginInstaller.uninstallDynamicPlugin(parent, pluginDescriptor, false)) { + if (!needRestart) { + needRestart = !PluginInstaller.uninstallDynamicPlugin(parent, pluginDescriptor, false); + } + + if (needRestart) { uninstallsRequiringRestart.add(pluginId); + try { + PluginInstaller.uninstallAfterRestart(pluginDescriptor.getPluginPath()); + } + catch (IOException e) { + LOG.error(e); + } } else { getEnabledMap().remove(pluginId); @@ -150,25 +160,21 @@ public class MyPluginModel extends InstalledPluginsTableModel implements PluginE } } - boolean installsRequiringRestart = myInstallsRequiringRestart; - List<PluginId> dynamicPluginsRequiringRestart = new ArrayList<>(); - for (PendingDynamicPluginInstall pendingPluginInstall : myDynamicPluginsToInstall.values()) { PluginId pluginId = pendingPluginInstall.getPluginDescriptor().getPluginId(); - if (!uninstallsRequiringRestart.contains(pluginId)) { + if (!needRestart && + !uninstallsRequiringRestart.contains(pluginId)) { InstalledPluginsState.getInstance().trackPluginInstallation(() -> { - if (!PluginInstaller.installAndLoadDynamicPlugin(pendingPluginInstall.getFile(), - parent, - pendingPluginInstall.getPluginDescriptor())) { - dynamicPluginsRequiringRestart.add(pluginId); - } + needRestart = !PluginInstaller.installAndLoadDynamicPlugin(pendingPluginInstall.getFile(), + parent, + pendingPluginInstall.getPluginDescriptor()); }); } - else { + + if (needRestart) { try { PluginInstaller.installAfterRestart(pendingPluginInstall.getFile(), !Registry.is("ide.plugins.keep.archive", true), null, pendingPluginInstall.getPluginDescriptor()); - installsRequiringRestart = true; } catch (IOException e) { LOG.error(e); @@ -176,21 +182,21 @@ public class MyPluginModel extends InstalledPluginsTableModel implements PluginE } } + if (needRestart) { + InstalledPluginsState.getInstance().setRestartRequired(true); + } + myDynamicPluginsToInstall.clear(); myPluginsToRemoveOnCancel.clear(); - boolean enableDisableAppliedWithoutRestart = applyEnableDisablePlugins(pluginEnabler, parent); + needRestart |= !applyEnableDisablePlugins(pluginEnabler, parent); myDynamicPluginsToUninstall.clear(); myDiff.clear(); - boolean changesAppliedWithoutRestart = enableDisableAppliedWithoutRestart && - uninstallsRequiringRestart.isEmpty() && - !installsRequiringRestart && - dynamicPluginsRequiringRestart.isEmpty(); - if (!changesAppliedWithoutRestart) { + if (needRestart) { InstalledPluginsState.getInstance().setRestartRequired(true); } - return changesAppliedWithoutRestart; + return !needRestart; } public void clear(@Nullable JComponent parentComponent) { @@ -613,10 +619,9 @@ public class MyPluginModel extends InstalledPluginsTableModel implements PluginE info.indicator.cancel(); if (success) { - needRestart = true; - myInstallsRequiringRestart |= restartRequired; + needRestart |= restartRequired; } - if (!success && showErrors) { + else if (showErrors) { Messages.showErrorDialog(getProject(), IdeBundle.message("plugins.configurable.plugin.installing.failed", descriptor.getName()), IdeBundle.message("action.download.and.install.plugin")); } @@ -717,9 +722,8 @@ public class MyPluginModel extends InstalledPluginsTableModel implements PluginE setEnabled(id, PluginEnabledState.ENABLED); } - if (restartNeeded) { - needRestart = myInstallsRequiringRestart = true; - } + needRestart |= restartNeeded; + if (myDownloaded == null) { return; } @@ -991,7 +995,6 @@ public class MyPluginModel extends InstalledPluginsTableModel implements PluginE void uninstallAndUpdateUi(@NotNull IdeaPluginDescriptor descriptor) { boolean needRestartForUninstall = performUninstall((IdeaPluginDescriptorImpl)descriptor); needRestart |= descriptor.isEnabled() && needRestartForUninstall; - myInstallsRequiringRestart |= needRestartForUninstall; List<ListPluginComponent> listComponents = myInstalledPluginComponentMap.get(descriptor.getPluginId()); if (listComponents != null) { diff --git a/platform/platform-impl/src/com/intellij/ide/projectWizard/NewProjectWizardCollector.kt b/platform/platform-impl/src/com/intellij/ide/projectWizard/NewProjectWizardCollector.kt index 6b4ed7ce6bc7..f919edca7e55 100644 --- a/platform/platform-impl/src/com/intellij/ide/projectWizard/NewProjectWizardCollector.kt +++ b/platform/platform-impl/src/com/intellij/ide/projectWizard/NewProjectWizardCollector.kt @@ -5,7 +5,6 @@ import com.intellij.ide.util.projectWizard.WizardContext import com.intellij.ide.wizard.BuildSystemNewProjectWizardData import com.intellij.ide.wizard.NewProjectWizardLanguageStep import com.intellij.ide.wizard.NewProjectWizardStep -import com.intellij.internal.statistic.StructuredIdeActivity import com.intellij.internal.statistic.eventLog.EventLogGroup import com.intellij.internal.statistic.eventLog.FeatureUsageData import com.intellij.internal.statistic.eventLog.events.* @@ -20,10 +19,10 @@ class NewProjectWizardCollector : CounterUsagesCollector() { companion object { // @formatter:off - private val GROUP = EventLogGroup("new.project.wizard.interactions", 5) + private val GROUP = EventLogGroup("new.project.wizard.interactions", 7) private val sessionIdField = EventFields.Int("wizard_session_id") - private val screenNumField = IntEventField("screen") + private val screenNumField = EventFields.Int("screen") private val typedCharsField = IntEventField("typed_chars") private val hitsField = IntEventField("hits") private val generatorTypeField = ClassEventField("generator") @@ -37,86 +36,87 @@ class NewProjectWizardCollector : CounterUsagesCollector() { private val buildSystemParentField = EventFields.Boolean("build_system_parent") private val groovyVersionField = EventFields.Version private val groovySourceTypeField = BoundedStringEventField("groovy_sdk_type", "maven", "local") + private val pluginField = EventFields.String("plugin_selected", NewProjectWizardLanguageStep.allLanguages.keys.toList()) //events - private val activity = GROUP.registerIdeActivity("new_project_wizard", finishEventAdditionalFields = arrayOf(isSucceededField)) - - private val open = GROUP.registerEvent("wizard.dialog.open", sessionIdField) - private val screen = GROUP.registerEvent("screen", sessionIdField, screenNumField) - private val next = GROUP.registerEvent("navigate.next", sessionIdField, inputMaskField) - private val prev = GROUP.registerEvent("navigate.prev", sessionIdField, inputMaskField) - private val projectCreated = GROUP.registerEvent("project.created", sessionIdField) - private val search = GROUP.registerEvent("search", sessionIdField, typedCharsField, hitsField) - private val generator = GROUP.registerEvent("search", sessionIdField, generatorTypeField) - private val location = GROUP.registerEvent("project.location.changed", sessionIdField, generatorTypeField) - private val name = GROUP.registerEvent("project.name.changed", sessionIdField, generatorTypeField) - private val languageSelected = GROUP.registerEvent("select.language", sessionIdField, languageField) - private val gitChanged = GROUP.registerEvent("git.changed", sessionIdField) - private val templateSelected = GROUP.registerEvent("select.custom.template", sessionIdField) - private val helpNavigation = GROUP.registerEvent("navigate.help", sessionIdField) - private val buildSystemChangedEvent = GROUP.registerEvent("build.system.changed", sessionIdField, languageField, buildSystemField) - private val sdkChangedEvent = GROUP.registerVarargEvent("build.system.sdk.changed", sessionIdField, languageField, buildSystemField, buildSystemSdkField) - private val dslChangedEvent = GROUP.registerVarargEvent("build.system.dsl.changed", sessionIdField, languageField, buildSystemField, buildSystemDslField) - private val parentChangedEvent = GROUP.registerVarargEvent("build.system.parent.changed", sessionIdField, languageField, buildSystemField, buildSystemParentField) - private val addSampleCodeChangedEvent = GROUP.registerEvent("build.system.add.sample.code.changed", sessionIdField, languageField, buildSystemField) - private val moduleNameChangedEvent = GROUP.registerEvent("build.system.module.name.changed", sessionIdField, languageField, buildSystemField) - private val contentRootChangedEvent = GROUP.registerEvent("build.system.content.root.changed", sessionIdField, languageField, buildSystemField) - private val moduleFileLocationChangedEvent = GROUP.registerEvent("build.system.module.file.location.changed", sessionIdField, languageField, buildSystemField) - private val groupIdChangedEvent = GROUP.registerEvent("build.system.group.id.changed", sessionIdField, languageField, buildSystemField) - private val artifactIdChangedEvent = GROUP.registerEvent("build.system.artifact.id.changed", sessionIdField, languageField, buildSystemField) - private val versionChangedEvent = GROUP.registerEvent("build.system.version.changed", sessionIdField, languageField, buildSystemField) - private val groovyLibraryChanged = GROUP.registerEvent("groovy.lib.changed", sessionIdField, groovySourceTypeField, groovyVersionField) + private val open = GROUP.registerVarargEvent("wizard.dialog.open", sessionIdField, screenNumField) + private val finish = GROUP.registerVarargEvent("wizard.dialog.finish", sessionIdField, screenNumField, isSucceededField, EventFields.DurationMs) + private val next = GROUP.registerVarargEvent("navigate.next", sessionIdField, screenNumField, inputMaskField) + private val prev = GROUP.registerVarargEvent("navigate.prev", sessionIdField, screenNumField, inputMaskField) + private val projectCreated = GROUP.registerVarargEvent("project.created", screenNumField) + private val search = GROUP.registerVarargEvent("search", sessionIdField, screenNumField, typedCharsField, hitsField) + private val generator = GROUP.registerVarargEvent("generator.selected", sessionIdField, screenNumField, generatorTypeField) + private val location = GROUP.registerVarargEvent("project.location.changed", sessionIdField, screenNumField, generatorTypeField) + private val name = GROUP.registerVarargEvent("project.name.changed", sessionIdField, screenNumField, generatorTypeField) + private val languageSelected = GROUP.registerVarargEvent("select.language", sessionIdField, screenNumField, languageField) + private val gitChanged = GROUP.registerVarargEvent("git.changed", screenNumField) + private val templateSelected = GROUP.registerVarargEvent("select.custom.template", screenNumField) + private val helpNavigation = GROUP.registerVarargEvent("navigate.help", screenNumField) + private val buildSystemChangedEvent = GROUP.registerVarargEvent("build.system.changed", sessionIdField, screenNumField, languageField, buildSystemField) + private val sdkChangedEvent = GROUP.registerVarargEvent("build.system.sdk.changed", sessionIdField, screenNumField, languageField, buildSystemField, buildSystemSdkField) + private val dslChangedEvent = GROUP.registerVarargEvent("build.system.dsl.changed", sessionIdField, screenNumField, languageField, buildSystemField, buildSystemDslField) + private val parentChangedEvent = GROUP.registerVarargEvent("build.system.parent.changed", sessionIdField, screenNumField, languageField, buildSystemField, buildSystemParentField) + private val addSampleCodeChangedEvent = GROUP.registerVarargEvent("build.system.add.sample.code.changed", sessionIdField, screenNumField, languageField, buildSystemField) + private val moduleNameChangedEvent = GROUP.registerVarargEvent("build.system.module.name.changed", sessionIdField, screenNumField, languageField, buildSystemField) + private val contentRootChangedEvent = GROUP.registerVarargEvent("build.system.content.root.changed", sessionIdField, screenNumField, languageField, buildSystemField) + private val moduleFileLocationChangedEvent = GROUP.registerVarargEvent("build.system.module.file.location.changed", sessionIdField, screenNumField, languageField, buildSystemField) + private val groupIdChangedEvent = GROUP.registerVarargEvent("build.system.group.id.changed", sessionIdField, screenNumField, languageField, buildSystemField) + private val artifactIdChangedEvent = GROUP.registerVarargEvent("build.system.artifact.id.changed", sessionIdField, screenNumField, languageField, buildSystemField) + private val versionChangedEvent = GROUP.registerVarargEvent("build.system.version.changed", sessionIdField, screenNumField, languageField, buildSystemField) + private val groovyLibraryChanged = GROUP.registerVarargEvent("groovy.lib.changed", sessionIdField, screenNumField, groovySourceTypeField, groovyVersionField) + private val addPlugin = GROUP.registerVarargEvent("add.plugin.clicked", screenNumField) + private val pluginSelected = GROUP.registerVarargEvent("plugin.selected", sessionIdField, screenNumField, pluginField) //finish events - private val gitFinish = GROUP.registerEvent("create.git.repo", sessionIdField, gitField) - private val generatorFinished = GROUP.registerEvent("generator.finished", sessionIdField, generatorTypeField) - private val languageFinished = GROUP.registerEvent("language.finished", sessionIdField, languageField) - private val buildSystemFinishedEvent = GROUP.registerEvent("build.system.finished", sessionIdField, languageField, buildSystemField) - private val sdkFinishedEvent = GROUP.registerVarargEvent("build.system.sdk.finished", sessionIdField, languageField, buildSystemField, buildSystemSdkField) - private val groovyLibraryFinished = GROUP.registerEvent("groovy.lib.finished", sessionIdField, groovySourceTypeField, groovyVersionField) + private val gitFinish = GROUP.registerVarargEvent("create.git.repo", sessionIdField, screenNumField, gitField) + private val generatorFinished = GROUP.registerVarargEvent("generator.finished", sessionIdField, screenNumField, generatorTypeField) + private val languageFinished = GROUP.registerVarargEvent("language.finished", sessionIdField, screenNumField, languageField) + private val buildSystemFinishedEvent = GROUP.registerVarargEvent("build.system.finished", sessionIdField, screenNumField, languageField, buildSystemField) + private val sdkFinishedEvent = GROUP.registerVarargEvent("build.system.sdk.finished", sessionIdField, screenNumField, languageField, buildSystemField, buildSystemSdkField) + private val groovyLibraryFinished = GROUP.registerVarargEvent("groovy.lib.finished", sessionIdField, screenNumField, groovySourceTypeField, groovyVersionField) //logs - @JvmStatic fun logStarted(project: Project?) = activity.started(project) - @JvmStatic fun logScreen(context: WizardContext, screenNumber: Int) = screen.log(context.project, context.sessionId.id, screenNumber) - @JvmStatic fun logOpen(context: WizardContext) = open.log(context.project, context.sessionId.id) - @JvmStatic fun logSearchChanged(context: WizardContext, chars: Int, results: Int) = search.log(context.project, context.sessionId.id, min(chars, 10), results) - @JvmStatic fun logLocationChanged(context: WizardContext, generator: Class<*>) = location.log(context.project, context.sessionId.id, generator) - @JvmStatic fun logNameChanged(context: WizardContext, generator: Class<*>) = name.log(context.project, context.sessionId.id, generator) - @JvmStatic fun logLanguageChanged(context: WizardContext, language: String) = languageSelected.log(context.project, context.sessionId.id, language) - @JvmStatic fun logGitChanged(context: WizardContext) = gitChanged.log(context.project, context.sessionId.id) - @JvmStatic fun logGeneratorSelected(context: WizardContext, title: Class<*>) = generator.log(context.project, context.sessionId.id, title) - @JvmStatic fun logCustomTemplateSelected(context: WizardContext) = templateSelected.log(context.project, context.sessionId.id) - @JvmStatic fun logNext(context: WizardContext, inputMask: Long = -1) = next.log(context.project, context.sessionId.id, inputMask) - @JvmStatic fun logPrev(context: WizardContext, inputMask: Long = -1) = prev.log(context.project, context.sessionId.id, inputMask) - @JvmStatic fun logHelpNavigation(context: WizardContext) = helpNavigation.log(context.project, context.sessionId.id) + @JvmStatic fun logOpen(context: WizardContext) = open.log(context.project,sessionIdField with context.sessionId.id, screenNumField with context.screen) + @JvmStatic fun logFinish(context: WizardContext, success: Boolean, duration: Long) = finish.log(context.project, sessionIdField with context.sessionId.id,screenNumField with context.screen, isSucceededField with success, EventFields.DurationMs with duration) + @JvmStatic fun logSearchChanged(context: WizardContext, chars: Int, results: Int) = search.log(context.project, sessionIdField with context.sessionId.id,screenNumField with context.screen, typedCharsField with min(chars, 10), hitsField with results) + @JvmStatic fun logLocationChanged(context: WizardContext, generator: Class<*>) = location.log(context.project, sessionIdField with context.sessionId.id,screenNumField with context.screen, generatorTypeField with generator) + @JvmStatic fun logNameChanged(context: WizardContext, generator: Class<*>) = name.log(context.project, sessionIdField with context.sessionId.id,screenNumField with context.screen, generatorTypeField with generator) + @JvmStatic fun logLanguageChanged(context: WizardContext, language: String) = languageSelected.log(context.project, sessionIdField with context.sessionId.id,screenNumField with context.screen, languageField with language) + @JvmStatic fun logGitChanged(context: WizardContext) = gitChanged.log(context.project,screenNumField with context.screen) + @JvmStatic fun logGeneratorSelected(context: WizardContext, title: Class<*>) = generator.log(context.project, sessionIdField with context.sessionId.id,screenNumField with context.screen, generatorTypeField with title) + @JvmStatic fun logCustomTemplateSelected(context: WizardContext) = templateSelected.log(context.project,screenNumField with context.screen) + @JvmStatic fun logNext(context: WizardContext, inputMask: Long = -1) = next.log(context.project, sessionIdField with context.sessionId.id,screenNumField with context.screen, inputMaskField with inputMask) + @JvmStatic fun logPrev(context: WizardContext, inputMask: Long = -1) = prev.log(context.project, sessionIdField with context.sessionId.id,screenNumField with context.screen, inputMaskField with inputMask) + @JvmStatic fun logHelpNavigation(context: WizardContext) = helpNavigation.log(context.project,screenNumField with context.screen) //finish - @JvmStatic fun logFinished(activity: StructuredIdeActivity, success: Boolean) = activity.finished { listOf(isSucceededField with success)} - @JvmStatic fun logProjectCreated(project: Project?, context: WizardContext) = projectCreated.log(project, context.sessionId.id) - @JvmStatic fun logLanguageFinished(context: WizardContext, language: String) = languageFinished.log(context.project, context.sessionId.id, language) - @JvmStatic fun logGitFinished(context: WizardContext, git: Boolean) = gitFinish.log(context.project, context.sessionId.id, git) - @JvmStatic fun logGeneratorFinished(context: WizardContext, generator: Class<*>) = generatorFinished.log(context.project, context.sessionId.id, generator) + @JvmStatic fun logProjectCreated(project: Project?, context: WizardContext) = projectCreated.log(project,screenNumField with context.screen) + @JvmStatic fun logLanguageFinished(context: WizardContext, language: String) = languageFinished.log(context.project, sessionIdField with context.sessionId.id,screenNumField with context.screen, languageField with language) + @JvmStatic fun logGitFinished(context: WizardContext, git: Boolean) = gitFinish.log(context.project, sessionIdField with context.sessionId.id,screenNumField with context.screen, gitField with git) + @JvmStatic fun logGeneratorFinished(context: WizardContext, generator: Class<*>) = generatorFinished.log(context.project, sessionIdField with context.sessionId.id,screenNumField with context.screen, generatorTypeField with generator) + @JvmStatic fun logAddPlugin(context: WizardContext) = addPlugin.log(context.project,screenNumField with context.screen) + @JvmStatic fun logPluginSelected(context: WizardContext, plugin: String) = pluginSelected.log(context.project, sessionIdField with context.sessionId.id, screenNumField with context.screen, pluginField with plugin) // @formatter:on } object BuildSystem { // @formatter:off - fun logBuildSystemChanged(context: WizardContext, language: String, buildSystem: String) = buildSystemChangedEvent.log(context.project, context.sessionId.id, language, buildSystem) - fun logBuildSystemFinished(context: WizardContext, language: String, buildSystem: String) = buildSystemFinishedEvent.log(context.project, context.sessionId.id, language, buildSystem) + fun logBuildSystemChanged(context: WizardContext, language: String, buildSystem: String) = buildSystemChangedEvent.log(context.project, sessionIdField with context.sessionId.id,screenNumField with context.screen, languageField with language, buildSystemField with buildSystem) + fun logBuildSystemFinished(context: WizardContext, language: String, buildSystem: String) = buildSystemFinishedEvent.log(context.project, sessionIdField with context.sessionId.id,screenNumField with context.screen, languageField with language, buildSystemField with buildSystem) fun logSdkChanged(context: WizardContext, language: String, buildSystem: String, sdk: Sdk?) = logSdkChanged(context, language, buildSystem, sdk?.featureVersion ?: -1) fun logSdkChanged(context: WizardContext, language: String, buildSystem: String, version: Int) = sdkChangedEvent.log(context.project, EventPair(sessionIdField, context.sessionId.id), EventPair(languageField, language), EventPair(buildSystemField, buildSystem), EventPair(buildSystemSdkField, version)) fun logSdkFinished(context: WizardContext, language: String, buildSystem: String, sdk: Sdk?) = logSdkFinished(context, language, buildSystem, sdk?.featureVersion ?: -1) - fun logSdkFinished(context: WizardContext, language: String, buildSystem: String, version: Int) = sdkFinishedEvent.log(context.project, EventPair(sessionIdField, context.sessionId.id), EventPair(languageField, language), EventPair(buildSystemField, buildSystem), EventPair(buildSystemSdkField, version)) + fun logSdkFinished(context: WizardContext, language: String, buildSystem: String, version: Int) = sdkFinishedEvent.log(context.project, EventPair(sessionIdField, context.sessionId.id), EventPair(screenNumField, context.screen), EventPair(languageField, language), EventPair(buildSystemField, buildSystem), EventPair(buildSystemSdkField, version)) fun logDslChanged(context: WizardContext, language: String, buildSystem: String, isUseKotlinDsl: Boolean) = logDslChanged(context, language, buildSystem, if (isUseKotlinDsl) "kotlin" else "groovy") - fun logDslChanged(context: WizardContext, language: String, buildSystem: String, dsl: String) = dslChangedEvent.log(context.project, EventPair(sessionIdField, context.sessionId.id), EventPair(languageField, language), EventPair(buildSystemField, buildSystem), EventPair(buildSystemDslField, dsl)) - fun logParentChanged(context: WizardContext, language: String, buildSystem: String, isNone: Boolean) = parentChangedEvent.log(context.project, EventPair(sessionIdField, context.sessionId.id), EventPair(languageField, language), EventPair(buildSystemField, buildSystem), EventPair(buildSystemParentField, isNone)) - fun logAddSampleCodeChanged(context: WizardContext, language: String, buildSystem: String) = addSampleCodeChangedEvent.log(context.project, context.sessionId.id, language, buildSystem) - fun logModuleNameChanged(context: WizardContext, language: String, buildSystem: String) = moduleNameChangedEvent.log(context.project, context.sessionId.id, language, buildSystem) - fun logContentRootChanged(context: WizardContext, language: String, buildSystem: String) = contentRootChangedEvent.log(context.project, context.sessionId.id, language, buildSystem) - fun logModuleFileLocationChanged(context: WizardContext, language: String, buildSystem: String) = moduleFileLocationChangedEvent.log(context.project, context.sessionId.id, language, buildSystem) - fun logGroupIdChanged(context: WizardContext, language: String, buildSystem: String) = groupIdChangedEvent.log(context.project, context.sessionId.id, language, buildSystem) - fun logArtifactIdChanged(context: WizardContext, language: String, buildSystem: String) = artifactIdChangedEvent.log(context.project, context.sessionId.id, language, buildSystem) - fun logVersionChanged(context: WizardContext, language: String, buildSystem: String) = versionChangedEvent.log(context.project, context.sessionId.id, language, buildSystem) + fun logDslChanged(context: WizardContext, language: String, buildSystem: String, dsl: String) = dslChangedEvent.log(context.project, EventPair(sessionIdField, context.sessionId.id), EventPair(screenNumField, context.screen), EventPair(languageField, language), EventPair(buildSystemField, buildSystem), EventPair(buildSystemDslField, dsl)) + fun logParentChanged(context: WizardContext, language: String, buildSystem: String, isNone: Boolean) = parentChangedEvent.log(context.project, EventPair(sessionIdField, context.sessionId.id), EventPair(screenNumField, context.screen), EventPair(languageField, language), EventPair(buildSystemField, buildSystem), EventPair(buildSystemParentField, isNone)) + fun logAddSampleCodeChanged(context: WizardContext, language: String, buildSystem: String) = addSampleCodeChangedEvent.log(context.project, sessionIdField with context.sessionId.id, screenNumField with context.screen, languageField with language, buildSystemField with buildSystem) + fun logModuleNameChanged(context: WizardContext, language: String, buildSystem: String) = moduleNameChangedEvent.log(context.project, sessionIdField with context.sessionId.id, screenNumField with context.screen, languageField with language, buildSystemField with buildSystem) + fun logContentRootChanged(context: WizardContext, language: String, buildSystem: String) = contentRootChangedEvent.log(context.project, sessionIdField with context.sessionId.id, screenNumField with context.screen, languageField with language, buildSystemField with buildSystem) + fun logModuleFileLocationChanged(context: WizardContext, language: String, buildSystem: String) = moduleFileLocationChangedEvent.log(context.project, sessionIdField with context.sessionId.id, screenNumField with context.screen, languageField with language, buildSystemField with buildSystem) + fun logGroupIdChanged(context: WizardContext, language: String, buildSystem: String) = groupIdChangedEvent.log(context.project, sessionIdField with context.sessionId.id, screenNumField with context.screen, languageField with language, buildSystemField with buildSystem) + fun logArtifactIdChanged(context: WizardContext, language: String, buildSystem: String) = artifactIdChangedEvent.log(context.project, sessionIdField with context.sessionId.id, screenNumField with context.screen, languageField with language, buildSystemField with buildSystem) + fun logVersionChanged(context: WizardContext, language: String, buildSystem: String) = versionChangedEvent.log(context.project, sessionIdField with context.sessionId.id, screenNumField with context.screen, languageField with language, buildSystemField with buildSystem) fun <S> S.logBuildSystemChanged() where S: BuildSystemNewProjectWizardData, S: NewProjectWizardStep = logBuildSystemChanged(context, language, buildSystem) fun <S> S.logBuildSystemFinished() where S: BuildSystemNewProjectWizardData, S: NewProjectWizardStep = logBuildSystemFinished(context, language, buildSystem) @@ -138,8 +138,8 @@ class NewProjectWizardCollector : CounterUsagesCollector() { } object Groovy { - fun logGroovyLibraryChanged(context: WizardContext, groovyLibrarySource: String, groovyLibraryVersion: String) = groovyLibraryChanged.log(context.project, context.sessionId.id, groovyLibrarySource, groovyLibraryVersion) - fun logGroovyLibraryFinished(context: WizardContext, groovyLibrarySource: String, groovyLibraryVersion: String) = groovyLibraryFinished.log(context.project, context.sessionId.id, groovyLibrarySource, groovyLibraryVersion) + fun logGroovyLibraryChanged(context: WizardContext, groovyLibrarySource: String, groovyLibraryVersion: String) = groovyLibraryChanged.log(context.project, sessionIdField with context.sessionId.id, screenNumField with context.screen, groovySourceTypeField with groovyLibrarySource, groovyVersionField with groovyLibraryVersion) + fun logGroovyLibraryFinished(context: WizardContext, groovyLibrarySource: String, groovyLibraryVersion: String) = groovyLibraryFinished.log(context.project, sessionIdField with context.sessionId.id, screenNumField with context.screen, groovySourceTypeField with groovyLibrarySource, groovyVersionField with groovyLibraryVersion) } private class BoundedStringEventField(name: String, vararg allowedValues: String) : StringEventField(name) { diff --git a/platform/platform-impl/src/com/intellij/ide/ui/AppearanceConfigurable.kt b/platform/platform-impl/src/com/intellij/ide/ui/AppearanceConfigurable.kt index 4a8dfb7ebd9c..12377361c58d 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/AppearanceConfigurable.kt +++ b/platform/platform-impl/src/com/intellij/ide/ui/AppearanceConfigurable.kt @@ -254,7 +254,7 @@ internal class AppearanceConfigurable : BoundSearchableConfigurable(message("tit contextHelp(message("checkbox.smooth.scrolling.description")) }) yield({ checkBox(cdDnDWithAlt) }) - if (IdeFrameDecorator.isCustomDecorationAvailable()) { + if (SystemInfo.isWindows && IdeFrameDecorator.isCustomDecorationAvailable()) { yield({ val overridden = UISettings.isMergeMainMenuWithWindowTitleOverridden checkBox(cdMergeMainMenuWithWindowTitle) diff --git a/platform/platform-impl/src/com/intellij/ide/ui/PluginBooleanOptionDescriptor.java b/platform/platform-impl/src/com/intellij/ide/ui/PluginBooleanOptionDescriptor.java index 251510e1adea..8cce37807f7f 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/PluginBooleanOptionDescriptor.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/PluginBooleanOptionDescriptor.java @@ -171,13 +171,11 @@ public final class PluginBooleanOptionDescriptor extends BooleanOptionDescriptio } Notification notification = ourPreviousNotification.get(); - if (notification == null) { - return; - } - - Balloon balloon = notification.getBalloon(); - if (balloon != null && !balloon.isDisposed()) { - return; + if (notification != null) { + Balloon balloon = notification.getBalloon(); + if (balloon != null && !balloon.isDisposed()) { + return; + } } Notification newNotification = UpdateChecker.getNotificationGroupForIdeUpdateResults() diff --git a/platform/platform-impl/src/com/intellij/ide/ui/UITheme.java b/platform/platform-impl/src/com/intellij/ide/ui/UITheme.java index 4642c807d817..794c6fd2270a 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/UITheme.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/UITheme.java @@ -411,6 +411,11 @@ public final class UITheme { } @ApiStatus.Internal + public boolean isUnloaded() { + return providerClassLoader == null; + } + + @ApiStatus.Internal public void setProviderClassLoader(@Nullable ClassLoader providerClassLoader) { this.providerClassLoader = providerClassLoader; } diff --git a/platform/platform-impl/src/com/intellij/ide/ui/customization/CustomActionsSchema.java b/platform/platform-impl/src/com/intellij/ide/ui/customization/CustomActionsSchema.java index 3ba50d189e8c..603edb424c14 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/customization/CustomActionsSchema.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/customization/CustomActionsSchema.java @@ -144,11 +144,15 @@ public final class CustomActionsSchema implements PersistentStateComponent<Eleme } } + /** + * Mutable list is returned. + */ public @NotNull List<ActionUrl> getActions() { return actions; } public void setActions(@NotNull List<ActionUrl> newActions) { + assert actions != newActions; actions.clear(); actions.addAll(newActions); actions.sort(ActionUrlComparator.INSTANCE); diff --git a/platform/platform-impl/src/com/intellij/ide/ui/customization/CustomizationUtil.java b/platform/platform-impl/src/com/intellij/ide/ui/customization/CustomizationUtil.java index 996260e450f3..fe86fd56e630 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/customization/CustomizationUtil.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/customization/CustomizationUtil.java @@ -86,8 +86,7 @@ public final class CustomizationUtil { ActionManager actionManager = ActionManager.getInstance(); final ArrayList<AnAction> reorderedChildren = new ArrayList<>(); ContainerUtil.addAll(reorderedChildren, group.getChildren(e)); - final List<ActionUrl> actions = schema.getActions(); - for (ActionUrl actionUrl : actions) { + for (ActionUrl actionUrl : schema.getActions()) { if (actionUrl.getParentGroup() == null) continue; if ((actionUrl.getParentGroup().equals(text) || actionUrl.getParentGroup().equals(defaultGroupName) || diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/darcula.theme.json b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/darcula.theme.json index 956215da07ff..45a4b6263b3e 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/darcula.theme.json +++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/darcula.theme.json @@ -162,6 +162,8 @@ "underlinedTabBackground": "#4E5254" }, + "Editor.SearchField.background": "#45494A", + "FileView.fileIcon": "AllIcons.FileTypes.Unknown", "Focus.color": "ff0000", diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/intellijlaf.theme.json b/platform/platform-impl/src/com/intellij/ide/ui/laf/intellijlaf.theme.json index 9e2561927e2a..56a7c21ab6a5 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/laf/intellijlaf.theme.json +++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/intellijlaf.theme.json @@ -251,7 +251,8 @@ "Editor": { "background": "grey09", "foreground": "infoPanelForeground", - "shortcutForeground": "#4274A6" + "shortcutForeground": "#4274A6", + "SearchField.background" : "contentBackground" }, "EditorPane": { diff --git a/platform/platform-impl/src/com/intellij/ide/ui/search/DefaultSearchEverywhereTabsCustomization.kt b/platform/platform-impl/src/com/intellij/ide/ui/search/DefaultSearchEverywhereTabsCustomization.kt deleted file mode 100644 index 8e446ca5a70d..000000000000 --- a/platform/platform-impl/src/com/intellij/ide/ui/search/DefaultSearchEverywhereTabsCustomization.kt +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.ide.ui.search - -class DefaultSearchEverywhereTabsCustomization: SearchEverywhereTabsCustomization { - - override fun getContributorsWithTab(): List<String> = - listOf("ClassSearchEverywhereContributor", "FileSearchEverywhereContributor", "SymbolSearchEverywhereContributor", - "ActionSearchEverywhereContributor", "Vcs.Git") - -}
\ No newline at end of file diff --git a/platform/platform-impl/src/com/intellij/ide/wizard/AbstractNewProjectWizardMultiStepWithAddButton.kt b/platform/platform-impl/src/com/intellij/ide/wizard/AbstractNewProjectWizardMultiStepWithAddButton.kt index c6bd25ed9362..85d016c098bc 100644 --- a/platform/platform-impl/src/com/intellij/ide/wizard/AbstractNewProjectWizardMultiStepWithAddButton.kt +++ b/platform/platform-impl/src/com/intellij/ide/wizard/AbstractNewProjectWizardMultiStepWithAddButton.kt @@ -3,6 +3,7 @@ package com.intellij.ide.wizard import com.intellij.icons.AllIcons import com.intellij.ide.plugins.PluginManagerConfigurable +import com.intellij.ide.projectWizard.NewProjectWizardCollector import com.intellij.openapi.actionSystem.* import com.intellij.openapi.actionSystem.PlatformCoreDataKeys.CONTEXT_COMPONENT import com.intellij.openapi.actionSystem.impl.ActionButton @@ -47,7 +48,8 @@ abstract class AbstractNewProjectWizardMultiStepWithAddButton<S : NewProjectWiza private inner class AdditionalStepsAction : DumbAwareAction(null, null, AllIcons.General.Add) { override fun actionPerformed(e: AnActionEvent) { - val additionalSteps = (additionalStepPlugins.keys - steps.keys).map { OpenMarketPlaceAction(it) } + NewProjectWizardCollector.logAddPlugin(context) + val additionalSteps = (additionalStepPlugins.keys - steps.keys).sorted().map { OpenMarketPlaceAction(it) } JBPopupFactory.getInstance().createActionGroupPopup( UIBundle.message("new.project.wizard.popup.title.install.plugin"), DefaultActionGroup(additionalSteps), e.dataContext, @@ -56,16 +58,17 @@ abstract class AbstractNewProjectWizardMultiStepWithAddButton<S : NewProjectWiza } } - private inner class OpenMarketPlaceAction(private val language: String) : DumbAwareAction(Supplier { language }) { + private inner class OpenMarketPlaceAction(private val step: String) : DumbAwareAction(Supplier { step }) { override fun actionPerformed(e: AnActionEvent) { - val pluginId = PluginId.getId(additionalStepPlugins[language]!!) + NewProjectWizardCollector.logPluginSelected(context, step) + val pluginId = PluginId.getId(additionalStepPlugins[step]!!) val component = e.dataContext.getData(CONTEXT_COMPONENT)!! if (Registry.`is`("new.project.wizard.modal.plugin.install", false)) { ProgressManager.getInstance().run(InstallPluginTask(setOf(pluginId), ModalityState.stateForComponent(component))) } else { ShowSettingsUtil.getInstance().editConfigurable(null, PluginManagerConfigurable(), Consumer { - it.openMarketplaceTab("/tag:Languages $language") + it.openMarketplaceTab("/tag: \"Programming Language\" $step") }) } } diff --git a/platform/platform-impl/src/com/intellij/ide/wizard/GitNewProjectWizardStep.kt b/platform/platform-impl/src/com/intellij/ide/wizard/GitNewProjectWizardStep.kt index b37f10c8657c..822939452097 100644 --- a/platform/platform-impl/src/com/intellij/ide/wizard/GitNewProjectWizardStep.kt +++ b/platform/platform-impl/src/com/intellij/ide/wizard/GitNewProjectWizardStep.kt @@ -40,7 +40,7 @@ class GitNewProjectWizardStep( val projectBaseDirectory = LocalFileSystem.getInstance().refreshAndFindFileByNioFile(Path.of(path, name)) if (projectBaseDirectory != null) { runBackgroundableTask(IdeBundle.message("progress.title.creating.git.repository"), project) { - GitRepositoryInitializer.getInstance()!!.initRepository(project, projectBaseDirectory) + GitRepositoryInitializer.getInstance()!!.initRepository(project, projectBaseDirectory, true) } } } diff --git a/platform/platform-impl/src/com/intellij/ide/wizard/NewProjectWizardStepPanel.kt b/platform/platform-impl/src/com/intellij/ide/wizard/NewProjectWizardStepPanel.kt index 0a79f45d9fed..7a9af1f0c538 100644 --- a/platform/platform-impl/src/com/intellij/ide/wizard/NewProjectWizardStepPanel.kt +++ b/platform/platform-impl/src/com/intellij/ide/wizard/NewProjectWizardStepPanel.kt @@ -19,10 +19,10 @@ class NewProjectWizardStepPanel(val step: NewProjectWizardStep) { val component by lazy { panel { step.setupUI(this) - }.apply { - registerValidators(step.context.disposable) - withBorder(JBUI.Borders.empty(14, 20)) - setMinimumWidthForAllRowLabels(JBUI.scale(90)) - } + }.withVisualPadding(topField = true) + .apply { + registerValidators(step.context.disposable) + setMinimumWidthForAllRowLabels(JBUI.scale(90)) + } } }
\ No newline at end of file diff --git a/platform/platform-impl/src/com/intellij/ide/wizard/UIWizardUtil.kt b/platform/platform-impl/src/com/intellij/ide/wizard/UIWizardUtil.kt index 6632601e2281..382bea9f684e 100644 --- a/platform/platform-impl/src/com/intellij/ide/wizard/UIWizardUtil.kt +++ b/platform/platform-impl/src/com/intellij/ide/wizard/UIWizardUtil.kt @@ -4,12 +4,15 @@ package com.intellij.ide.wizard import com.intellij.ide.util.projectWizard.WizardContext +import com.intellij.openapi.application.Experiments import com.intellij.openapi.project.Project import com.intellij.openapi.project.ProjectManager import com.intellij.openapi.ui.DialogPanel +import com.intellij.ui.IdeBorderFactory import com.intellij.ui.dsl.builder.DslComponentProperty import com.intellij.ui.dsl.builder.Panel import com.intellij.ui.dsl.gridLayout.GridLayout +import com.intellij.util.ui.JBInsets import com.intellij.util.ui.UIUtil import javax.swing.JComponent import javax.swing.JLabel @@ -86,4 +89,17 @@ private fun isRowLabel(label: JLabel): Boolean { private fun JComponent.setMinimumWidth(width: Int) { minimumSize = minimumSize.apply { this.width = width } +} + +fun DialogPanel.withVisualPadding(topField: Boolean = false): DialogPanel { + if (Experiments.getInstance().isFeatureEnabled("new.project.wizard")) { + val top = if (topField) 20 else 15 + border = IdeBorderFactory.createEmptyBorder(JBInsets(top, 20, 20, 20)) + } + else { + val top = if (topField) 15 else 5 + border = IdeBorderFactory.createEmptyBorder(JBInsets(top, 5, 0, 5)) + } + + return this }
\ No newline at end of file diff --git a/platform/platform-impl/src/com/intellij/notification/impl/NotificationsToolWindow.kt b/platform/platform-impl/src/com/intellij/notification/impl/NotificationsToolWindow.kt index b07ab3c0c2ba..b9bce711ede2 100644 --- a/platform/platform-impl/src/com/intellij/notification/impl/NotificationsToolWindow.kt +++ b/platform/platform-impl/src/com/intellij/notification/impl/NotificationsToolWindow.kt @@ -2,12 +2,10 @@ package com.intellij.notification.impl import com.intellij.UtilBundle -import com.intellij.codeInsight.hint.HintUtil import com.intellij.icons.AllIcons import com.intellij.ide.DataManager import com.intellij.ide.IdeBundle import com.intellij.ide.ui.LafManagerListener -import com.intellij.ide.util.PropertiesComponent import com.intellij.idea.ActionsBundle import com.intellij.notification.ActionCenter import com.intellij.notification.EventLog @@ -20,7 +18,6 @@ import com.intellij.openapi.actionSystem.* import com.intellij.openapi.actionSystem.impl.ActionButton import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.ModalityState -import com.intellij.openapi.editor.colors.EditorColorsManager import com.intellij.openapi.options.ShowSettingsUtil import com.intellij.openapi.project.DumbAware import com.intellij.openapi.project.DumbAwareAction @@ -28,7 +25,6 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.ui.Divider import com.intellij.openapi.ui.NullableComponent import com.intellij.openapi.ui.OnePixelDivider -import com.intellij.openapi.ui.ex.MultiLineLabel import com.intellij.openapi.ui.popup.JBPopup import com.intellij.openapi.ui.popup.JBPopupListener import com.intellij.openapi.ui.popup.LightweightWindowEvent @@ -464,8 +460,6 @@ private class NotificationGroupComponent(private val myMainContent: Notification private val myTimeComponents = ArrayList<JLabel>() private val myTimeAlarm = Alarm(myProject) - private val mySuggestionGotItPanel = JPanel(BorderLayout()) - private lateinit var myClearCallback: (List<Notification>) -> Unit private lateinit var myRemoveCallback: Consumer<Notification> @@ -481,28 +475,6 @@ private class NotificationGroupComponent(private val myMainContent: Notification myTitle.foreground = NotificationComponent.INFO_COLOR if (mySuggestionType) { - mySuggestionGotItPanel.background = JBColor.lazy { - EditorColorsManager.getInstance().globalScheme.getColor(HintUtil.PROMOTION_PANE_KEY) - } - mySuggestionGotItPanel.isVisible = false - mySuggestionGotItPanel.border = JBUI.Borders.customLineBottom(JBColor.border()) - add(mySuggestionGotItPanel, BorderLayout.NORTH) - - val gotItTitle = MultiLineLabel(IdeBundle.message("notifications.toolwindow.suggestion.gotit.title")) - gotItTitle.mediumFontFunction() - gotItTitle.border = JBUI.Borders.empty(7, 12, 7, 0) - mySuggestionGotItPanel.add(gotItTitle, BorderLayout.WEST) - - val panel = JPanel(BorderLayout()) - panel.isOpaque = false - panel.border = JBUI.Borders.empty(7, 0, 0, 12) - mySuggestionGotItPanel.add(panel, BorderLayout.EAST) - panel.add(LinkLabel<Any>(IdeBundle.message("notifications.toolwindow.suggestion.gotit.link"), null) { _, _ -> - mySuggestionGotItPanel.isVisible = false - myTitle.isVisible = true - myMainContent.fullRepaint() - }, BorderLayout.NORTH) - myTitle.border = JBUI.Borders.emptyLeft(10) mainPanel.add(myTitle, BorderLayout.NORTH) } @@ -566,12 +538,6 @@ private class NotificationGroupComponent(private val myMainContent: Notification updateLayout() myEventHandler.add(component) - if (mySuggestionType && !PropertiesComponent.getInstance().getBoolean("notification.suggestion.dont.show.gotit")) { - PropertiesComponent.getInstance().setValue("notification.suggestion.dont.show.gotit", true) - mySuggestionGotItPanel.isVisible = true - myTitle.isVisible = false - } - updateContent() if (mySuggestionType) { diff --git a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButton.java b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButton.java index edfb0066de7e..f2beb310a018 100644 --- a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButton.java +++ b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButton.java @@ -242,6 +242,9 @@ public class ActionButton extends JComponent implements ActionButtonComponent, A myPresentation.removePropertyChangeListener(myPresentationListener); myPresentationListener = null; } + if (myMouseDown) { + ourGlobalMouseDown = false; + } myRollover = false; myMouseDown = false; HelpTooltip.dispose(this); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/EditorColorsManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/EditorColorsManagerImpl.java index 9ebfbb5d52a7..8a19eb790365 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/EditorColorsManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/EditorColorsManagerImpl.java @@ -272,6 +272,7 @@ public final class EditorColorsManagerImpl extends EditorColorsManager implement for (UIThemeBasedLookAndFeelInfo laf : UiThemeProviderListManager.getInstance().getLaFs()) { UITheme theme = laf.getTheme(); + if (theme.isUnloaded()) continue; String path = theme.getEditorScheme(); if (path != null) { mySchemeManager.loadBundledScheme(path, theme, null); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorGutterComponentImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorGutterComponentImpl.java index 4e2a2d46229e..0a2fcf2a97dd 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorGutterComponentImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorGutterComponentImpl.java @@ -729,7 +729,7 @@ final class EditorGutterComponentImpl extends EditorGutterComponentEx implements Icon iconOnTheLine = null; Icon hoverIcon = null; - if (ExperimentalUI.isNewUI() && EditorUtil.isRealFileEditor(getEditor())) { + if (ExperimentalUI.isNewUI() /*&& EditorUtil.isRealFileEditor(getEditor())*/) { VisualPosition visualPosition = myEditor.logicalToVisualPosition(new LogicalPosition(logicalLine, 0)); Optional<GutterMark> breakpoint = getGutterRenderers(visualPosition.line).stream() .filter(r -> r instanceof GutterIconRenderer && diff --git a/platform/platform-impl/src/com/intellij/openapi/fileChooser/actions/FileDeleteAction.java b/platform/platform-impl/src/com/intellij/openapi/fileChooser/actions/FileDeleteAction.java index b07102f62a07..217be79d24d5 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileChooser/actions/FileDeleteAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileChooser/actions/FileDeleteAction.java @@ -4,6 +4,7 @@ package com.intellij.openapi.fileChooser.actions; import com.intellij.CommonBundle; import com.intellij.ide.IdeBundle; import com.intellij.openapi.actionSystem.AnActionEvent; +import com.intellij.openapi.actionSystem.PlatformCoreDataKeys; import com.intellij.openapi.application.ApplicationBundle; import com.intellij.openapi.fileChooser.FileChooserPanel; import com.intellij.openapi.fileChooser.FileSystemTree; @@ -19,6 +20,8 @@ import com.intellij.util.ui.IoErrorText; import com.intellij.util.ui.UIUtil; import org.jetbrains.annotations.NotNull; +import javax.swing.JTextField; +import java.awt.event.KeyEvent; import java.io.IOException; public class FileDeleteAction extends FileChooserAction { @@ -72,7 +75,10 @@ public class FileDeleteAction extends FileChooserAction { protected void update(@NotNull FileSystemTree fileChooser, @NotNull AnActionEvent e) { boolean visible = !isDisabled(e); e.getPresentation().setVisible(visible); - e.getPresentation().setEnabled(visible && new VirtualFileDeleteProvider().canDeleteElement(e.getDataContext())); + e.getPresentation().setEnabled( + visible && + !(e.getInputEvent() instanceof KeyEvent && e.getData(PlatformCoreDataKeys.CONTEXT_COMPONENT) instanceof JTextField) && // do not override text deletion + new VirtualFileDeleteProvider().canDeleteElement(e.getDataContext())); } @Override diff --git a/platform/platform-impl/src/com/intellij/openapi/fileChooser/ex/FileSaverDialogImpl.java b/platform/platform-impl/src/com/intellij/openapi/fileChooser/ex/FileSaverDialogImpl.java index 0e8d7299c84c..38007fc1b5db 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileChooser/ex/FileSaverDialogImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileChooser/ex/FileSaverDialogImpl.java @@ -1,4 +1,4 @@ -// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.openapi.fileChooser.ex; import com.intellij.openapi.fileChooser.FileSaverDescriptor; diff --git a/platform/platform-impl/src/com/intellij/openapi/fileChooser/impl/FileChooserPanelImpl.java b/platform/platform-impl/src/com/intellij/openapi/fileChooser/impl/FileChooserPanelImpl.java index 6dc5ac196e04..b4bc71812163 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileChooser/impl/FileChooserPanelImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileChooser/impl/FileChooserPanelImpl.java @@ -116,17 +116,29 @@ final class FileChooserPanelImpl extends JBPanel<FileChooserPanelImpl> implement myPath = new ComboBox<>(Stream.of(recentPaths).map(PathWrapper::new).toArray(PathWrapper[]::new)); myPath.setVisible(myShowPathBar); myPath.setEditable(true); - myPath.addFocusListener(new FocusAdapter() { + var pathEditor = (JTextField)myPath.getEditor().getEditorComponent(); + pathEditor.addFocusListener(new FocusAdapter() { @Override public void focusGained(FocusEvent e) { myPathBarActive = true; } }); - var pathEditor = (JTextField)myPath.getEditor().getEditorComponent(); var finder = new LocalFsFinder(false).withBaseDir(null); FileLookup.LookupFilter filter = f -> myDescriptor.isFileVisible(new CoreLocalVirtualFile(FS, ((LocalFsFinder.IoFile)f).getFile()), myShowHiddenFiles); new FileTextFieldImpl(pathEditor, finder, filter, FileChooserFactoryImpl.getMacroMap(), this); + pathEditor.getActionMap().put(JTextField.notifyAction, new AbstractAction() { + @Override + public void actionPerformed(ActionEvent e) { + if (myPath.isPopupVisible()) { + myPath.setPopupVisible(false); + } + var path = typedPath(); + if (path != null) { + load(path, null, 0); + } + } + }); myModel = new SortedListModel<>(FsItem.COMPARATOR); myList = new JBList<>(myModel); @@ -222,6 +234,20 @@ final class FileChooserPanelImpl extends JBPanel<FileChooserPanelImpl> implement } } + private @Nullable Path typedPath() { + var object = myPath.getEditor().getItem(); + if (object instanceof PathWrapper) { + return ((PathWrapper)object).path; + } + if (object instanceof String && !((String)object).isBlank()) { + var path = findByPath(FileUtil.expandUserHome(((String)object).trim())); + if (path != null && path.isAbsolute()) { + return path; + } + } + return null; + } + private void openItemAtIndex(int idx, InputEvent e) { FsItem item = myModel.get(idx); if (item.directory) { @@ -242,17 +268,8 @@ final class FileChooserPanelImpl extends JBPanel<FileChooserPanelImpl> implement @NotNull List<@NotNull Path> chosenPaths() { if (myShowPathBar && myPathBarActive) { - var object = myPath.getEditor().getItem(); - if (object instanceof PathWrapper) { - return List.of(((PathWrapper)object).path); - } - if (object instanceof String && !((String)object).isBlank()) { - var path = findByPath(FileUtil.expandUserHome(((String)object).trim())); - if (path != null && path.isAbsolute()) { - return List.of(path); - } - } - return List.of(); + var path = typedPath(); + return path != null ? List.of(path) : List.of(); } else { var items = myList.getSelectedValuesList(); @@ -550,9 +567,14 @@ final class FileChooserPanelImpl extends JBPanel<FileChooserPanelImpl> implement name = name.substring(0, name.length() - 1); } if (SystemInfo.isWindows) { - var store = Files.getFileStore(root).name(); - if (!store.isBlank()) { - name += " [" + store + ']'; + try { + var store = Files.getFileStore(root).name(); + if (!store.isBlank()) { + name += " [" + store + ']'; + } + } + catch (IOException e) { + LOG.debug(e); } } var item = new FsItem(root, name, true, true, myDescriptor.isFileSelectable(virtualFile), AllIcons.Nodes.Folder); diff --git a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorComposite.java b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorComposite.java index c3129d2e90c8..5b15a35b127d 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorComposite.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorComposite.java @@ -452,8 +452,9 @@ public class EditorComposite extends UserDataHolderBase implements Disposable { public void setSelectedEditor(@NotNull String providerId) { FileEditorWithProvider newSelection = ContainerUtil.find(myEditorsWithProviders, it -> it.getProvider().getEditorTypeId().equals(providerId)); - LOG.assertTrue(newSelection != null, "Unable to find providerId=" + providerId); - setSelectedEditor(newSelection); + if (newSelection != null) { + setSelectedEditor(newSelection); + } } public void setSelectedEditor(@NotNull FileEditor editor) { diff --git a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/pluginsAdvertisement/PluginAdvertiserEditorNotificationProvider.kt b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/pluginsAdvertisement/PluginAdvertiserEditorNotificationProvider.kt index 5c442357d81e..c324f3087cad 100644 --- a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/pluginsAdvertisement/PluginAdvertiserEditorNotificationProvider.kt +++ b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/pluginsAdvertisement/PluginAdvertiserEditorNotificationProvider.kt @@ -73,7 +73,7 @@ class PluginAdvertiserEditorNotificationProvider : EditorNotificationProvider, val suggestedIdes: List<SuggestedIde>, ) : Function<FileEditor, EditorNotificationPanel?> { - private var disabledPlugin: IdeaPluginDescriptor? = null + private var installedPlugin: IdeaPluginDescriptor? = null private val jbProduced = mutableSetOf<PluginId>() @VisibleForTesting @@ -84,11 +84,8 @@ class PluginAdvertiserEditorNotificationProvider : EditorNotificationProvider, for (data in dataSet) { val pluginId = data.pluginId - val installedPlugin: IdeaPluginDescriptor? = descriptorsById[pluginId] - if (installedPlugin != null) { - if (!installedPlugin.isEnabled && disabledPlugin == null) { - disabledPlugin = installedPlugin - } + if (pluginId in descriptorsById) { + installedPlugin = descriptorsById[pluginId] } else if (!data.isBundled) { (if (jbPluginsIds.contains(pluginId.idString)) jbProduced else thirdParty) += pluginId @@ -117,12 +114,20 @@ class PluginAdvertiserEditorNotificationProvider : EditorNotificationProvider, } } - if (disabledPlugin != null) { - panel.createActionLabel(IdeBundle.message("plugins.advertiser.action.enable.plugin", disabledPlugin!!.name)) { - pluginAdvertiserExtensionsState.addEnabledExtensionOrFileNameAndInvalidateCache(extensionOrFileName) - updateAllNotifications(project) - FUSEventSource.EDITOR.logEnablePlugins(listOf(disabledPlugin!!.pluginId.idString), project) - PluginManagerConfigurable.showPluginConfigurableAndEnable(project, setOf(disabledPlugin)) + val installedPlugin = installedPlugin + if (installedPlugin != null) { + if (!installedPlugin.isEnabled) { + panel.createActionLabel(IdeBundle.message("plugins.advertiser.action.enable.plugin", installedPlugin.name)) { + pluginAdvertiserExtensionsState.addEnabledExtensionOrFileNameAndInvalidateCache(extensionOrFileName) + updateAllNotifications(project) + FUSEventSource.EDITOR.logEnablePlugins(listOf(installedPlugin.pluginId.idString), project) + PluginManagerConfigurable.showPluginConfigurableAndEnable(project, setOf(installedPlugin)) + } + } + else { + // Plugin supporting the pattern is installed and enabled but the current file is reassigned to a different + // file type + return null } } else if (jbProduced.isNotEmpty()) { diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/DesktopLayout.kt b/platform/platform-impl/src/com/intellij/openapi/wm/impl/DesktopLayout.kt index f792e018efb8..f2cb37c1378c 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/DesktopLayout.kt +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/DesktopLayout.kt @@ -140,11 +140,13 @@ class DesktopLayout(private val idToInfo: MutableMap<String, WindowInfoImpl> = H return null } - val state = Element(tagName) + var state: Element? = null for (info in getSortedList()) { - serialize(info)?.let { - state.addContent(it) + val child = serialize(info) ?: continue + if (state == null) { + state = Element(tagName) } + state.addContent(child) } return state } diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFrameDecorator.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFrameDecorator.java index edaa33a3057b..14f0b712c8db 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFrameDecorator.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFrameDecorator.java @@ -218,9 +218,8 @@ public abstract class IdeFrameDecorator implements IdeFrameImpl.FrameDecorator { public static boolean isCustomDecorationActive() { UISettings settings = UISettings.getInstanceOrNull(); if (settings == null) { - // true by default if no settings is available (e.g. during the initial IDE setup wizard) and not overridden - return isCustomDecorationAvailable() - && !Objects.equals(UISettings.getMergeMainMenuWithWindowTitleOverrideValue(), false); + // true by default if no settings is available (e.g. during the initial IDE setup wizard) and not overridden (only for Windows) + return isCustomDecorationAvailable() && getDefaultCustomDecorationState(); } // Cache the initial value received from settings, because this value doesn't support change in runtime (we can't redraw frame headers @@ -234,4 +233,8 @@ public abstract class IdeFrameDecorator implements IdeFrameImpl.FrameDecorator { return settings.getMergeMainMenuWithWindowTitle(); }); } + + private static boolean getDefaultCustomDecorationState() { + return SystemInfo.isWindows && !Objects.equals(UISettings.getMergeMainMenuWithWindowTitleOverrideValue(), false); + } }
\ No newline at end of file diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowManagerImpl.kt b/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowManagerImpl.kt index 04c2ff06618d..d760c7588df6 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowManagerImpl.kt +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowManagerImpl.kt @@ -85,7 +85,7 @@ open class ToolWindowManagerImpl @NonInjectable @TestOnly internal constructor(v @field:JvmField internal val isNewUi: Boolean, private val explicitButtonManager: ToolWindowButtonManager?, private val isEdtRequired: Boolean) - : ToolWindowManagerEx(), PersistentStateComponent<Element?>, Disposable { + : ToolWindowManagerEx(), PersistentStateComponent<Element>, Disposable { private val dispatcher = EventDispatcher.create(ToolWindowManagerListener::class.java) private var oldLayout: DesktopLayout? = null @@ -1681,6 +1681,11 @@ open class ToolWindowManagerImpl @NonInjectable @TestOnly internal constructor(v override fun loadState(state: Element) { var layoutIsScheduled = false for (element in state.children) { + if (JDOMUtil.isEmpty(element)) { + // make sure that layoutIsScheduled is not set if empty layout for some reason is provided + continue + } + when (element.name) { DesktopLayout.TAG -> { val layout = DesktopLayout() @@ -2027,7 +2032,13 @@ open class ToolWindowManagerImpl @NonInjectable @TestOnly internal constructor(v } info.isShowStripeButton = value + if (!value) { + entry.removeStripeButton() + } entry.applyWindowInfo(info.copy()) + if (value && entry.stripeButton == null) { + entry.stripeButton = buttonManager.createStripeButton(entry.toolWindow, entry.readOnlyWindowInfo, task = null) + } fireStateChanged() } diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ContentLayout.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ContentLayout.java index 067592b06a9e..7fa2f15aeb92 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ContentLayout.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ContentLayout.java @@ -12,7 +12,9 @@ import com.intellij.ui.content.ContentManagerEvent; import com.intellij.util.ui.JBUI; import org.jetbrains.annotations.NotNull; +import javax.swing.border.Border; import java.awt.*; +import java.util.Objects; abstract class ContentLayout { ToolWindowContentUi ui; @@ -51,11 +53,17 @@ abstract class ContentLayout { if (suffix != null) title += suffix; label.setText(title); - label.setBorder(JBUI.Borders.empty(0, 2, 0, 7)); + Border border = JBUI.Borders.empty(0, 2, 0, 7); if (ExperimentalUI.isNewUI()) { - label.setBorder(shouldShowId() - ? JBUI.Borders.empty(JBUI.CurrentTheme.ToolWindow.headerLabelLeftRightInsets()) - : JBUI.Borders.empty(JBUI.CurrentTheme.ToolWindow.headerTabLeftRightInsets())); + border = shouldShowId() + ? JBUI.Borders.empty(JBUI.CurrentTheme.ToolWindow.headerLabelLeftRightInsets()) + : JBUI.Borders.empty(JBUI.CurrentTheme.ToolWindow.headerTabLeftRightInsets()); + } + Border oldBorder = label.getBorder(); + // Don't update component border (with following revalidation and repainting) if existing border is exactly the same we're going to set + if (oldBorder == null || !Objects.equals(oldBorder.getClass(), border.getClass()) + || !oldBorder.getBorderInsets(label).equals(border.getBorderInsets(label))) { + label.setBorder(border); } label.setVisible(shouldShowId()); } diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ContentTabLabel.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ContentTabLabel.java index 1e0fc4bdba63..b94cdf141b13 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ContentTabLabel.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ContentTabLabel.java @@ -10,6 +10,7 @@ import com.intellij.openapi.actionSystem.ex.ActionUtil; import com.intellij.openapi.keymap.KeymapManager; import com.intellij.openapi.keymap.KeymapUtil; import com.intellij.openapi.ui.popup.ActiveIcon; +import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.NlsContexts; import com.intellij.openapi.wm.impl.content.tabActions.ContentTabAction; import com.intellij.ui.EngravedTextGraphics; @@ -18,6 +19,9 @@ import com.intellij.ui.LayeredIcon; import com.intellij.ui.content.Content; import com.intellij.ui.content.ContentManager; import com.intellij.ui.scale.JBUIScale; +import com.intellij.util.Alarm; +import com.intellij.util.ObjectUtils; +import com.intellij.util.SingleAlarm; import com.intellij.util.ui.JBUI; import com.intellij.util.ui.UIUtilities; import org.jetbrains.annotations.NotNull; @@ -66,24 +70,36 @@ public class ContentTabLabel extends ContentLabel { } private void updateText() { - if (myText != null && myText.startsWith("<html>")) { - super.setText(myText); // SwingUtilities2.clipString does not support HTML - return; - } - FontMetrics fm = getFontMetrics(getFont()); - int textWidth = UIUtilities.stringWidth(this, fm, myText); - int prefWidth = myIconWithInsetsWidth + textWidth; + try { + if (myText != null && myText.startsWith("<html>")) { + super.setText(myText); // SwingUtilities2.clipString does not support HTML + return; + } + FontMetrics fm = getFontMetrics(getFont()); + int textWidth = UIUtilities.stringWidth(this, fm, myText); + int prefWidth = myIconWithInsetsWidth + textWidth; - int maxWidth = getMaximumSize().width; + int maxWidth = getMaximumSize().width; - if (prefWidth > maxWidth) { - int offset = maxWidth - myIconWithInsetsWidth; - String s = UIUtilities.clipString(this, fm, myText, offset); - super.setText(s); - return; - } + if (prefWidth > maxWidth) { + int offset = maxWidth - myIconWithInsetsWidth; + String s = UIUtilities.clipString(this, fm, myText, offset); + super.setText(s); + return; + } - super.setText(myText); + super.setText(myText); + } finally { + //noinspection ConstantConditions + if (myContent != null && !Disposer.isDisposed(myContent)) { + new SingleAlarm(() -> { + ObjectUtils.consumeIfNotNull(getParent(), c -> { + c.revalidate(); + c.repaint(); + }); + }, 50, myContent, Alarm.ThreadToUse.SWING_THREAD).request(); + } + } } ContentTabLabel(@NotNull Content content, @NotNull TabContentLayout layout) { diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/FlatWelcomeFrame.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/FlatWelcomeFrame.java index 2d797ec80189..589a071763bb 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/FlatWelcomeFrame.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/FlatWelcomeFrame.java @@ -13,7 +13,6 @@ import com.intellij.ide.plugins.PluginDropHandler; import com.intellij.ide.ui.LafManager; import com.intellij.ide.ui.LafManagerListener; import com.intellij.idea.SplashManager; -import com.intellij.jdkEx.JdkEx; import com.intellij.notification.NotificationsManager; import com.intellij.notification.impl.NotificationsManagerImpl; import com.intellij.openapi.Disposable; @@ -77,7 +76,7 @@ public class FlatWelcomeFrame extends JFrame implements IdeFrame, Disposable, Ac public static boolean USE_TABBED_WELCOME_SCREEN = Boolean.parseBoolean(SystemProperty.get("use.tabbed.welcome.screen", "true")); public static final String BOTTOM_PANEL = "BOTTOM_PANEL"; - public static final int DEFAULT_HEIGHT = USE_TABBED_WELCOME_SCREEN ? 600 : 460; + public static final int DEFAULT_HEIGHT = USE_TABBED_WELCOME_SCREEN ? 650 : 460; public static final int MAX_DEFAULT_WIDTH = 800; private final AbstractWelcomeScreen myScreen; private WelcomeBalloonLayoutImpl myBalloonLayout; diff --git a/platform/platform-impl/src/com/intellij/toolWindow/InternalDecoratorImpl.kt b/platform/platform-impl/src/com/intellij/toolWindow/InternalDecoratorImpl.kt index a28790e723eb..7412f9bb87cf 100644 --- a/platform/platform-impl/src/com/intellij/toolWindow/InternalDecoratorImpl.kt +++ b/platform/platform-impl/src/com/intellij/toolWindow/InternalDecoratorImpl.kt @@ -584,6 +584,7 @@ class InternalDecoratorImpl internal constructor( } override fun reshape(x: Int, y: Int, w: Int, h: Int) { + val rectangle = bounds super.reshape(x, y, w, h) val topLevelDecorator = findTopLevelDecorator(this) if (topLevelDecorator == null || !topLevelDecorator.isShowing) { @@ -603,7 +604,9 @@ class InternalDecoratorImpl internal constructor( putClientProperty(HIDE_COMMON_TOOLWINDOW_BUTTONS, hideButtons) putClientProperty(INACTIVE_LOOK, hideActivity) } - contentUi.update() + if (!rectangle.equals(bounds)) { + contentUi.update() + } } fun setDropInfoIndex(index: Int, width: Int) { diff --git a/platform/platform-impl/src/com/intellij/toolWindow/ToolWindowDefaultLayoutManager.kt b/platform/platform-impl/src/com/intellij/toolWindow/ToolWindowDefaultLayoutManager.kt index 43f60ca09ac9..d4dd733501cf 100644 --- a/platform/platform-impl/src/com/intellij/toolWindow/ToolWindowDefaultLayoutManager.kt +++ b/platform/platform-impl/src/com/intellij/toolWindow/ToolWindowDefaultLayoutManager.kt @@ -67,8 +67,11 @@ internal class ToolWindowDefaultLayoutManager(private val isNewUi: Boolean) override fun loadState(state: ToolWindowLayoutStorageManagerState) { this.state = state - if (if (isNewUi) state.v2.isEmpty() else state.v1.isEmpty()) { + val list = if (isNewUi) state.v2 else state.v1 + if (list.isEmpty()) { loadDefaultLayout(isNewUi) + } else { + setLayout(convertDescriptorListToLayout(list)) } } diff --git a/platform/platform-impl/src/com/intellij/toolWindow/ToolWindowSetInitializer.kt b/platform/platform-impl/src/com/intellij/toolWindow/ToolWindowSetInitializer.kt index f20d129ddc12..4c1376675cd3 100644 --- a/platform/platform-impl/src/com/intellij/toolWindow/ToolWindowSetInitializer.kt +++ b/platform/platform-impl/src/com/intellij/toolWindow/ToolWindowSetInitializer.kt @@ -26,13 +26,13 @@ import com.intellij.openapi.wm.impl.DesktopLayout import com.intellij.openapi.wm.impl.ToolWindowManagerImpl import com.intellij.ui.ExperimentalUI import com.intellij.util.concurrency.AppExecutorUtil -import com.intellij.util.containers.ContainerUtil import com.intellij.util.containers.addIfNotNull import com.intellij.util.ui.EDT import com.intellij.util.ui.UIUtil import org.jetbrains.annotations.NonNls import org.jetbrains.annotations.VisibleForTesting import java.util.concurrent.CompletableFuture +import java.util.concurrent.ConcurrentLinkedQueue import java.util.concurrent.Executor import java.util.concurrent.ForkJoinPool import java.util.concurrent.atomic.AtomicReference @@ -87,7 +87,7 @@ internal class ToolWindowSetInitializer(private val project: Project, private va private val initFuture: CompletableFuture<Ref<List<RegisterToolWindowTask>?>> private val pendingLayout = AtomicReference<DesktopLayout?>() - private val pendingTasks = ContainerUtil.createLockFreeCopyOnWriteList<Runnable>() + private val pendingTasks = ConcurrentLinkedQueue<Runnable>() init { val app = ApplicationManager.getApplication() @@ -146,7 +146,9 @@ internal class ToolWindowSetInitializer(private val project: Project, private va ref.set(null) createAndLayoutToolWindows(manager, tasks ?: return@thenAcceptAsync, toolWindowPane) - pendingTasks.forEach(Runnable::run) + while (true) { + (pendingTasks.poll() ?: break).run() + } }, Executor { command -> if (EDT.isCurrentThreadEdt()) { diff --git a/platform/platform-impl/src/com/intellij/ui/WindowMouseListener.java b/platform/platform-impl/src/com/intellij/ui/WindowMouseListener.java index 016552309f32..c766790b79b8 100644 --- a/platform/platform-impl/src/com/intellij/ui/WindowMouseListener.java +++ b/platform/platform-impl/src/com/intellij/ui/WindowMouseListener.java @@ -124,7 +124,7 @@ abstract class WindowMouseListener extends MouseAdapter implements MouseInputLis if (!bounds.equals(viewBounds)) { boolean moved = bounds.x != viewBounds.x || bounds.y != viewBounds.y; boolean resized = bounds.width != viewBounds.width || bounds.height != viewBounds.height; - view.setBounds(bounds); + view.reshape(bounds.x, bounds.y, bounds.width, bounds.height); view.invalidate(); view.validate(); view.repaint(); diff --git a/platform/platform-impl/src/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectModelSynchronizer.kt b/platform/platform-impl/src/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectModelSynchronizer.kt index 4af81eb90aaa..e0a3b144f75d 100644 --- a/platform/platform-impl/src/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectModelSynchronizer.kt +++ b/platform/platform-impl/src/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectModelSynchronizer.kt @@ -28,6 +28,7 @@ import com.intellij.openapi.vfs.newvfs.events.VFileCreateEvent import com.intellij.openapi.vfs.newvfs.events.VFileDeleteEvent import com.intellij.openapi.vfs.newvfs.events.VFileEvent import com.intellij.project.stateStore +import com.intellij.util.PlatformUtils.isIntelliJ import com.intellij.util.PlatformUtils.isRider import com.intellij.workspaceModel.ide.* import com.intellij.workspaceModel.ide.impl.WorkspaceModelImpl @@ -233,7 +234,8 @@ class JpsProjectModelSynchronizer(private val project: Project) : Disposable { } // IDEA-288703 - fun hasNoSerializedJpsModules(): Boolean = !isRider() && (prepareSerializers() as JpsProjectSerializersImpl).moduleSerializers.isEmpty() + fun hasNoSerializedJpsModules(): Boolean = !isIntelliJ() && // todo: https://youtrack.jetbrains.com/issue/IDEA-291451#focus=Comments-27-5967781.0-0 + !isRider() && (prepareSerializers() as JpsProjectSerializersImpl).moduleSerializers.isEmpty() private fun prepareSerializers(): JpsProjectSerializers { val existingSerializers = this.serializers.get() diff --git a/platform/platform-resources-en/src/inspectionDescriptions/IncorrectFormatting.html b/platform/platform-resources-en/src/inspectionDescriptions/IncorrectFormatting.html index a15fdac18600..3d163cbcfd31 100644 --- a/platform/platform-resources-en/src/inspectionDescriptions/IncorrectFormatting.html +++ b/platform/platform-resources-en/src/inspectionDescriptions/IncorrectFormatting.html @@ -1,5 +1,13 @@ <html> <body> -Detects formatting issues according your project code style settings. +<p> + Reports formatting issues that appear if your code doesn't + follow your project's code style settings. +</p> +<p> + This inspection is not compatible with languages that require + third-party formatters for code formatting, for example, Go or + C with CLangFormat enabled. +</p> </body> -</html>
\ No newline at end of file +</html> diff --git a/platform/platform-resources-en/src/messages/ActionsBundle.properties b/platform/platform-resources-en/src/messages/ActionsBundle.properties index 8dedcdabefb9..67520b148e5d 100644 --- a/platform/platform-resources-en/src/messages/ActionsBundle.properties +++ b/platform/platform-resources-en/src/messages/ActionsBundle.properties @@ -28,6 +28,8 @@ action.Vcs.ShowHistoryForRevision.text=History Up to Here action.Vcs.ShowHistoryForRevision.description=Show history for file until the selected revision action.Vcs.ShowTabbedFileHistory.text=Show _History action.Vcs.ShowTabbedFileHistory.description=Show history of file +action.Vcs.Toolbar.ShowMoreActions.text=Version Control +action.Vcs.Toolbar.ShowMoreActions.description=VCS Operations group.RightToolbarSideGroup.text=Right Side group.LeftToolbarSideGroup.text=Left Side action.SegmentedVcsControlAction.text=VCS Widget @@ -1607,6 +1609,7 @@ action.WelcomeScreen.Configure.Import.text=Import Settings... action.WelcomeScreen.Configure.Export.text=Export Settings action.WelcomeScreen.Configure.RestoreDefault.text=Restore Default Settings... group.WelcomeScreen.Options.text=Options Menu +action.GatewayCollectLogsAction.text = Collect All Logs action.CommittedChanges.Revert.text=Revert Changes action.CommittedChanges.Revert.description=Apply the reverse of the selected changes to the working copy @@ -2000,6 +2003,8 @@ action.SearchEverywhere.NavigateToNextGroup.text=Next group element action.SearchEverywhere.NavigateToNextGroup.description=Navigate to next group in Search Everywhere dialog action.SearchEverywhere.NavigateToPrevGroup.text=Prev group element action.SearchEverywhere.NavigateToPrevGroup.description=Navigate to prev group in Search Everywhere dialog +action.SegmentedButton-left.text=Select Previous Segmented Button +action.SegmentedButton-right.text=Select Next Segmented Button action.QuickActionPopup.text=Show Quick Actions Popup action.NavBar-selectHome.text=Select First Item @@ -2593,3 +2598,6 @@ apply.toolbar.customization=Apply action.Start.Use.Vcs.Vcs.Toolbar.Widget.text=Other Services... action.Start.Use.Vcs.text=_Enable Version Control Integration\u2026 + +action.TextSearchAction.text=Text... +action.TextSearchAction.description=Show text occurrences in Search Everywhere diff --git a/platform/platform-resources/src/META-INF/LangExtensions.xml b/platform/platform-resources/src/META-INF/LangExtensions.xml index d9e90fa85cbf..ca2ed4c456e5 100644 --- a/platform/platform-resources/src/META-INF/LangExtensions.xml +++ b/platform/platform-resources/src/META-INF/LangExtensions.xml @@ -396,6 +396,7 @@ <applicationService serviceImplementation="com.intellij.codeInsight.codeVision.settings.CodeVisionSettings" /> <projectService serviceImplementation="com.intellij.codeInsight.codeVision.CodeVisionHost" preload="true" /> <projectService serviceImplementation="com.intellij.codeInsight.codeVision.CodeVisionContextProvider" /> + <applicationService serviceImplementation="com.intellij.codeInsight.codeVision.ui.renderers.painters.CodeVisionThemeInfoProvider" /> <config.inlaySettingsProvider implementation="com.intellij.codeInsight.codeVision.settings.CodeVisionInlaySettingProvider" /> diff --git a/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml b/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml index d0201b5e7ddf..49b26e33db22 100644 --- a/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml +++ b/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml @@ -97,6 +97,10 @@ <extensionPoint name="gitRepositoryInitializer" interface="com.intellij.openapi.GitRepositoryInitializer" dynamic="true"/> + <extensionPoint name="gitSilentFileAdder" + interface="com.intellij.openapi.GitSilentFileAdderProvider" + area="IDEA_PROJECT" + dynamic="true"/> <extensionPoint name="undoProvider" interface="com.intellij.openapi.command.impl.UndoProvider" dynamic="true"/> <extensionPoint name="projectUndoProvider" interface="com.intellij.openapi.command.impl.UndoProvider" diff --git a/platform/platform-resources/src/META-INF/PlatformExtensions.xml b/platform/platform-resources/src/META-INF/PlatformExtensions.xml index b3fed6f91012..b92355411ed8 100644 --- a/platform/platform-resources/src/META-INF/PlatformExtensions.xml +++ b/platform/platform-resources/src/META-INF/PlatformExtensions.xml @@ -208,8 +208,8 @@ serviceImplementation="com.intellij.ide.ui.search.SearchableOptionsRegistrarImpl"/> <search.optionContributor implementation="com.intellij.ide.ui.search.PluginSearchableOptionContributor"/> - <applicationService serviceInterface="com.intellij.ide.ui.search.SearchEverywhereTabsCustomization" - serviceImplementation="com.intellij.ide.ui.search.DefaultSearchEverywhereTabsCustomization"/> + <applicationService serviceInterface="com.intellij.ide.actions.searcheverywhere.TabsCustomizationStrategy" + serviceImplementation="com.intellij.ide.actions.searcheverywhere.ContributorDefinedTabsCustomizationStrategy"/> <applicationService serviceImplementation="com.intellij.openapi.fileEditor.impl.EditorEmptyTextPainter"/> @@ -930,7 +930,7 @@ Android Studio: instead AndroidStudioStatisticsEventLoggerProvider is registered <bundleName>messages.LangBundle</bundleName> <categoryKey>intention.category.other</categoryKey> </intentionAction> - + <intentionAction> <className>com.intellij.openapi.editor.actions.lists.JoinLinesIntention</className> <bundleName>messages.LangBundle</bundleName> @@ -1305,7 +1305,7 @@ Android Studio: instead AndroidStudioStatisticsEventLoggerProvider is registered <advancedSetting id="temporary.configurations.limit" default="5" groupKey="group.advanced.settings.run"/> <advancedSetting id="confirm.rerun.with.termination" default="true" groupKey="group.advanced.settings.run"/> <advancedSetting id="start.run.configurations.pinned" default="false" groupKey="group.advanced.settings.run"/> - <advancedSetting id="se.enable.text.search" default="false" groupKey="group.advanced.settings.se"/> + <advancedSetting id="se.text.search" default="false" groupKey="group.advanced.settings.se"/> <advancedSetting id="edit.source.on.enter.key.request.focus.in.editor" default="true" groupKey="group.advanced.settings.project.view"/> <advancedSetting id="ide.tree.collapse.recursively" default="true" groupKey="group.advanced.settings.project.view"/> <advancedSetting id="ide.open.readme.md.on.startup" default="true" groupKey="group.advanced.settings.startup"/> diff --git a/platform/platform-tests/testSrc/com/intellij/openapi/components/impl/PathMacroManagerTest.java b/platform/platform-tests/testSrc/com/intellij/openapi/components/impl/PathMacroManagerTest.java index a9ba64828bd1..8701aaa98508 100644 --- a/platform/platform-tests/testSrc/com/intellij/openapi/components/impl/PathMacroManagerTest.java +++ b/platform/platform-tests/testSrc/com/intellij/openapi/components/impl/PathMacroManagerTest.java @@ -62,7 +62,7 @@ public class PathMacroManagerTest { private MockModule createModule(@NotNull String basePath) { MockProject project = createProject(basePath); - return new MockModule(project) { + return new MockModule(project, project) { @Override public @NotNull Path getModuleNioFile() { return Paths.get(project.getBasePath()).resolve("module/module.iml"); diff --git a/platform/platform-tests/testSrc/com/intellij/openapi/diagnostic/RollingFileHandlerTest.kt b/platform/platform-tests/testSrc/com/intellij/openapi/diagnostic/RollingFileHandlerTest.kt index a0f02da30735..f2efc2b27656 100644 --- a/platform/platform-tests/testSrc/com/intellij/openapi/diagnostic/RollingFileHandlerTest.kt +++ b/platform/platform-tests/testSrc/com/intellij/openapi/diagnostic/RollingFileHandlerTest.kt @@ -1,4 +1,4 @@ -// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.openapi.diagnostic import com.intellij.testFramework.TemporaryDirectory @@ -19,7 +19,7 @@ class RollingFileHandlerTest { @Test fun testRollingHandler() { val logPath = tempDir.newPath("RollingFileHandlerTest.log") - val handler = RollingFileHandler(logPath, 100, 2, false) + val handler = RollingFileHandler(logPath, 100, 10, false) handler.formatter = object : Formatter() { override fun format(record: LogRecord): String { return record.message diff --git a/platform/projectModel-impl/resources/META-INF/ProjectModelImpl.xml b/platform/projectModel-impl/resources/META-INF/ProjectModelImpl.xml index 4417fbd16aa1..6c89f8ea1520 100644 --- a/platform/projectModel-impl/resources/META-INF/ProjectModelImpl.xml +++ b/platform/projectModel-impl/resources/META-INF/ProjectModelImpl.xml @@ -7,6 +7,8 @@ <extensionPoint name="workspaceModel.moduleExtensionBridgeFactory" interface="com.intellij.workspaceModel.ide.legacyBridge.ModuleExtensionBridgeFactory" dynamic="true"/> + <extensionPoint name="projectPathMacroContributor" interface="com.intellij.openapi.components.impl.ProjectWidePathMacroContributor" + dynamic="true"/> </extensionPoints> <extensions defaultExtensionNs="com.intellij"> <projectService serviceInterface="com.intellij.openapi.roots.impl.DirectoryIndex" diff --git a/platform/projectModel-impl/src/com/intellij/application/options/PathMacrosImpl.kt b/platform/projectModel-impl/src/com/intellij/application/options/PathMacrosImpl.kt index 0e25d6e6ce33..acd767d8084d 100644 --- a/platform/projectModel-impl/src/com/intellij/application/options/PathMacrosImpl.kt +++ b/platform/projectModel-impl/src/com/intellij/application/options/PathMacrosImpl.kt @@ -29,8 +29,6 @@ open class PathMacrosImpl @JvmOverloads constructor(private val loadContributors private val modificationStamp = AtomicLong() private val ignoredMacros = ContainerUtil.createLockFreeCopyOnWriteList<String>() - private var userMacroMapCache: Map<String, String>? = null - companion object { @JvmStatic private val EP_NAME = ExtensionPointName<PathMacroContributor>("com.intellij.pathMacroContributor") @@ -133,7 +131,6 @@ open class PathMacrosImpl @JvmOverloads constructor(private val loadContributors private fun userMacroModified() { modificationStamp.incrementAndGet() - userMacroMapCache = null } override fun getState(): Element? { diff --git a/platform/projectModel-impl/src/com/intellij/openapi/components/impl/ModulePathMacroManager.java b/platform/projectModel-impl/src/com/intellij/openapi/components/impl/ModulePathMacroManager.java index 8f51de90e1ff..8749490fe2f6 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/components/impl/ModulePathMacroManager.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/components/impl/ModulePathMacroManager.java @@ -8,22 +8,28 @@ import com.intellij.openapi.components.PathMacroManager; import com.intellij.openapi.module.Module; import com.intellij.serviceContainer.NonInjectable; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.SystemIndependent; import org.jetbrains.jps.model.serialization.PathMacroUtil; +import java.util.Map; import java.util.function.Supplier; public class ModulePathMacroManager extends PathMacroManager { - private final Supplier<@SystemIndependent String> myModuleDirPointer; + private final @NotNull Supplier<@Nullable @SystemIndependent String> myProjectFilePathPointer; + private final @NotNull Supplier<@NotNull @SystemIndependent String> myModuleDirPointer; public ModulePathMacroManager(@NotNull Module module) { super(PathMacros.getInstance()); + myProjectFilePathPointer = module.getProject()::getProjectFilePath; myModuleDirPointer = module::getModuleFilePath; } @NonInjectable - private ModulePathMacroManager(Supplier<@SystemIndependent String> moduleDirPointer) { + private ModulePathMacroManager(@NotNull Supplier<@Nullable @SystemIndependent String> projectFilePathPointer, + @NotNull Supplier<@NotNull @SystemIndependent String> moduleDirPointer) { super(PathMacros.getInstance()); + myProjectFilePathPointer = projectFilePathPointer; myModuleDirPointer = moduleDirPointer; } @@ -31,6 +37,12 @@ public class ModulePathMacroManager extends PathMacroManager { public @NotNull ExpandMacroToPathMap getExpandMacroMap() { ExpandMacroToPathMap result = super.getExpandMacroMap(); addFileHierarchyReplacements(result, PathMacroUtil.MODULE_DIR_MACRO_NAME, PathMacroUtil.getModuleDir(myModuleDirPointer.get())); + String projectFile = myProjectFilePathPointer.get(); + if (projectFile != null) { + for (Map.Entry<String, String> entry : ProjectWidePathMacroContributor.getAllMacros(projectFile).entrySet()) { + result.addMacroExpand(entry.getKey(), entry.getValue()); + } + } return result; } @@ -45,7 +57,8 @@ public class ModulePathMacroManager extends PathMacroManager { resetCachedReplacePathMap(); } - public static ModulePathMacroManager createInstance(Supplier<@SystemIndependent String> moduleDirPointer) { - return new ModulePathMacroManager(moduleDirPointer); + public static ModulePathMacroManager createInstance(@NotNull Supplier<@Nullable @SystemIndependent String> projectFilePathPointer, + @NotNull Supplier<@NotNull @SystemIndependent String> moduleDirPointer) { + return new ModulePathMacroManager(projectFilePathPointer, moduleDirPointer); } -}
\ No newline at end of file +} diff --git a/platform/projectModel-impl/src/com/intellij/openapi/components/impl/ProjectPathMacroManager.java b/platform/projectModel-impl/src/com/intellij/openapi/components/impl/ProjectPathMacroManager.java index bd97349ca0bb..ba0db4a9df1c 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/components/impl/ProjectPathMacroManager.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/components/impl/ProjectPathMacroManager.java @@ -12,47 +12,57 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.SystemIndependent; import org.jetbrains.jps.model.serialization.PathMacroUtil; +import java.util.Map; import java.util.function.Supplier; public class ProjectPathMacroManager extends PathMacroManager { - private final Supplier<@SystemIndependent String> myBasePathPointer; - private final @Nullable Supplier<@SystemIndependent String> myNamePointer; + private final @NotNull Supplier<@Nullable @SystemIndependent String> myProjectFilePathPointer; + private final @NotNull Supplier<@Nullable @SystemIndependent String> myBasePathPointer; + private final @Nullable Supplier<@NotNull @SystemIndependent String> myNamePointer; public ProjectPathMacroManager(@NotNull Project project) { super(PathMacros.getInstance()); + myProjectFilePathPointer = project::getProjectFilePath; myBasePathPointer = project::getBasePath; myNamePointer = !project.isDefault() ? project::getName : null; } @NonInjectable - private ProjectPathMacroManager(Supplier<@SystemIndependent String> basePathPointer, - @Nullable Supplier<@SystemIndependent String> namePointer) { + private ProjectPathMacroManager(@NotNull Supplier<@Nullable @SystemIndependent String> projectFilePathPointer, + @NotNull Supplier<@Nullable @SystemIndependent String> basePathPointer, + @Nullable Supplier<@NotNull @SystemIndependent String> namePointer) { super(PathMacros.getInstance()); + myProjectFilePathPointer = projectFilePathPointer; myBasePathPointer = basePathPointer; myNamePointer = namePointer; } - @NotNull @Override - public ExpandMacroToPathMap getExpandMacroMap() { + public @NotNull ExpandMacroToPathMap getExpandMacroMap() { ExpandMacroToPathMap result = super.getExpandMacroMap(); addFileHierarchyReplacements(result, PathMacroUtil.PROJECT_DIR_MACRO_NAME, myBasePathPointer.get()); if (myNamePointer != null) { result.addMacroExpand(PathMacroUtil.PROJECT_NAME_MACRO_NAME, myNamePointer.get()); } + String projectFile = myProjectFilePathPointer.get(); + if (projectFile != null) { + for (Map.Entry<String, String> entry : ProjectWidePathMacroContributor.getAllMacros(projectFile).entrySet()) { + result.addMacroExpand(entry.getKey(), entry.getValue()); + } + } return result; } - @NotNull @Override - protected ReplacePathToMacroMap computeReplacePathMap() { + protected @NotNull ReplacePathToMacroMap computeReplacePathMap() { ReplacePathToMacroMap result = super.computeReplacePathMap(); addFileHierarchyReplacements(result, PathMacroUtil.PROJECT_DIR_MACRO_NAME, myBasePathPointer.get(), null); return result; } - public static ProjectPathMacroManager createInstance(Supplier<@SystemIndependent String> basePathPointer, - @Nullable Supplier<@SystemIndependent String> namePointer) { - return new ProjectPathMacroManager(basePathPointer, namePointer); + public static ProjectPathMacroManager createInstance(@NotNull Supplier<@Nullable @SystemIndependent String> projectFilePathPointer, + @NotNull Supplier<@SystemIndependent @Nullable String> basePathPointer, + @Nullable Supplier<@SystemIndependent @NotNull String> namePointer) { + return new ProjectPathMacroManager(projectFilePathPointer, basePathPointer, namePointer); } } diff --git a/platform/projectModel-impl/src/com/intellij/openapi/components/impl/ProjectWidePathMacroContributor.java b/platform/projectModel-impl/src/com/intellij/openapi/components/impl/ProjectWidePathMacroContributor.java new file mode 100644 index 000000000000..799884b7b935 --- /dev/null +++ b/platform/projectModel-impl/src/com/intellij/openapi/components/impl/ProjectWidePathMacroContributor.java @@ -0,0 +1,42 @@ +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.openapi.components.impl; + +import com.intellij.openapi.extensions.ExtensionPointName; +import com.intellij.openapi.project.Project; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.SystemIndependent; + +import java.util.HashMap; +import java.util.Map; + +/** + * <p> + * The extension point allows providing project-wide path macros (contrary to the + * {@link com.intellij.openapi.application.PathMacroContributor} which is the application-wide) + * </p> + * <p> + * If you want your custom project-wide path macro to be available in the JPS then consider implementing separate Path Macro + * contributor for the JPS too {@link org.jetbrains.jps.model.serialization.JpsPathMacroContributor} + * </p> + */ +@ApiStatus.Internal +public interface ProjectWidePathMacroContributor { + ExtensionPointName<ProjectWidePathMacroContributor> EP_NAME = new ExtensionPointName<>("com.intellij.projectPathMacroContributor"); + + /** + * @param projectFilePath See {@link com.intellij.openapi.project.Project#getProjectFilePath} + */ + @NotNull Map<@NotNull String, @NotNull String> getProjectPathMacros(@NotNull @SystemIndependent String projectFilePath); + + /** + * @param projectFilePath See {@link com.intellij.openapi.project.Project#getProjectFilePath} + */ + static @NotNull Map<@NotNull String, @NotNull String> getAllMacros(@NotNull @SystemIndependent String projectFilePath) { + Map<String, String> result = new HashMap<>(); + for (ProjectWidePathMacroContributor contributor : EP_NAME.getExtensionList()) { + result.putAll(contributor.getProjectPathMacros(projectFilePath)); + } + return result; + } +} diff --git a/platform/projectModel-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/module/roots/ModuleRootComponentBridge.kt b/platform/projectModel-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/module/roots/ModuleRootComponentBridge.kt index dea3adb51c0a..ddd9254c824a 100644 --- a/platform/projectModel-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/module/roots/ModuleRootComponentBridge.kt +++ b/platform/projectModel-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/module/roots/ModuleRootComponentBridge.kt @@ -19,6 +19,7 @@ import com.intellij.workspaceModel.storage.WorkspaceEntityStorage import com.intellij.workspaceModel.storage.WorkspaceEntityStorageBuilder import com.intellij.workspaceModel.storage.impl.DisposableCachedValue import com.intellij.workspaceModel.storage.url.VirtualFileUrl +import org.jetbrains.annotations.ApiStatus import org.jetbrains.jps.model.module.JpsModuleSourceRoot import org.jetbrains.jps.model.module.JpsModuleSourceRootType @@ -105,11 +106,16 @@ class ModuleRootComponentBridge( * This method is used in Project Structure dialog to ensure that changes made in {@link ModifiableModuleModel} after creation * of this {@link ModifiableRootModel} are available in its storage and references in its {@link OrderEntry} can be resolved properly. */ - override fun getModifiableModelForMultiCommit(accessor: RootConfigurationAccessor): ModifiableRootModel = ModifiableRootModelBridgeImpl( + override fun getModifiableModelForMultiCommit(accessor: RootConfigurationAccessor): ModifiableRootModel = + getModifiableModelForMultiCommit(accessor, true) + + @ApiStatus.Internal + fun getModifiableModelForMultiCommit(accessor: RootConfigurationAccessor, cacheStorageResult: Boolean): ModifiableRootModel = ModifiableRootModelBridgeImpl( (moduleBridge.diff as? WorkspaceEntityStorageBuilder) ?: (accessor as? RootConfigurationAccessorForWorkspaceModel)?.actualDiffBuilder ?: WorkspaceEntityStorageBuilder.from(moduleBridge.entityStorage.current), moduleBridge, - accessor) + accessor, + cacheStorageResult) fun getModifiableModel(diff: WorkspaceEntityStorageBuilder, accessor: RootConfigurationAccessor): ModifiableRootModel { return ModifiableRootModelBridgeImpl(diff, moduleBridge, accessor, false) diff --git a/platform/projectModel-impl/src/com/intellij/workspaceModel/ide/jpsEntitySources.kt b/platform/projectModel-impl/src/com/intellij/workspaceModel/ide/jpsEntitySources.kt index 4b86a75e1731..2496cd6d7086 100644 --- a/platform/projectModel-impl/src/com/intellij/workspaceModel/ide/jpsEntitySources.kt +++ b/platform/projectModel-impl/src/com/intellij/workspaceModel/ide/jpsEntitySources.kt @@ -17,6 +17,7 @@ import com.intellij.workspaceModel.storage.url.VirtualFileUrl import com.intellij.workspaceModel.storage.url.VirtualFileUrlManager import org.jetbrains.annotations.ApiStatus import org.jetbrains.annotations.TestOnly +import org.jetbrains.jps.util.JpsPathUtil import java.util.concurrent.atomic.AtomicInteger /** @@ -26,16 +27,27 @@ sealed class JpsProjectConfigLocation { val baseDirectoryUrlString: String get() = baseDirectoryUrl.url + /** + * Same as [Project.getProjectFilePath] + */ + abstract val projectFilePath: String + abstract val baseDirectoryUrl: VirtualFileUrl data class DirectoryBased(val projectDir: VirtualFileUrl, val ideaFolder: VirtualFileUrl) : JpsProjectConfigLocation() { override val baseDirectoryUrl: VirtualFileUrl get() = projectDir + + override val projectFilePath: String + get() = JpsPathUtil.urlToPath(ideaFolder.append("misc.xml").url) } data class FileBased(val iprFile: VirtualFileUrl, val iprFileParent: VirtualFileUrl) : JpsProjectConfigLocation() { override val baseDirectoryUrl: VirtualFileUrl get() = iprFileParent + + override val projectFilePath: String + get() = JpsPathUtil.urlToPath(iprFile.url) } } diff --git a/platform/remoteDev-util/src/com/intellij/remoteDev/thinClientLink/ClientLinkModels.kt b/platform/remoteDev-util/src/com/intellij/remoteDev/thinClientLink/ClientLinkModels.kt index ef9a82247822..11179bb3ea49 100644 --- a/platform/remoteDev-util/src/com/intellij/remoteDev/thinClientLink/ClientLinkModels.kt +++ b/platform/remoteDev-util/src/com/intellij/remoteDev/thinClientLink/ClientLinkModels.kt @@ -16,6 +16,9 @@ sealed class GtwToClientMessage { @Serializable object GatewayClose : GtwToClientMessage() + + @Serializable + data class GatewayLogs(val gtwLogs: String) : GtwToClientMessage() } @@ -29,6 +32,9 @@ sealed class ClientToGtwMessage { object ClientRestart : ClientToGtwMessage() @Serializable + object ClientAsksLogs : ClientToGtwMessage() + + @Serializable data class ProjectOpenFailed(val exitCode: Int) : ClientToGtwMessage() @Serializable diff --git a/platform/remoteDev-util/src/com/intellij/remoteDev/util/UrlParameterKeys.kt b/platform/remoteDev-util/src/com/intellij/remoteDev/util/UrlParameterKeys.kt index ae2943a0540c..c82be2796e09 100644 --- a/platform/remoteDev-util/src/com/intellij/remoteDev/util/UrlParameterKeys.kt +++ b/platform/remoteDev-util/src/com/intellij/remoteDev/util/UrlParameterKeys.kt @@ -6,6 +6,7 @@ import org.jetbrains.annotations.ApiStatus class UrlParameterKeys { companion object { const val projectPath = "projectPath" + const val downloadLocation = "downloadLocation" const val idePath = "idePath" const val host = "host" const val user = "user" diff --git a/platform/testFramework/extensions/src/com/intellij/keymap/KeymapsTestCase.java b/platform/testFramework/extensions/src/com/intellij/keymap/KeymapsTestCase.java index 20d50cfd97bf..e60f3e0d2d46 100644 --- a/platform/testFramework/extensions/src/com/intellij/keymap/KeymapsTestCase.java +++ b/platform/testFramework/extensions/src/com/intellij/keymap/KeymapsTestCase.java @@ -273,6 +273,41 @@ public abstract class KeymapsTestCase extends KeymapsTestCaseBase { {"shift ctrl alt P", "IntroduceFunctionalParameter", "ReformatWithPrettierAction", "VcsShowPrevChangeMarker"}, {"shift ctrl alt UP", "MoveStatementUp", "ResizeToolWindowUp"}, }), + Map.entry("Visual Studio OSX", new String[][]{ + {"meta L", "$Cut", "Terminal.ClearBuffer"}, + {"alt DELETE", "EditorDeleteToWordEnd", "SafeDelete"}, + {"shift ctrl RIGHT", "Diff.NextChange", "EditorRightWithSelection"}, + {"meta F10", "RunToCursor", "UpdateRunningApplication"}, + {"ctrl alt LEFT", "GotoSuperMethod", "ResizeToolWindowLeft"}, + {"meta Y", "$Redo", "QuickImplementations"}, + {"meta alt B", "ViewBreakpoints", "org.jetbrains.r.rendering.chunk.RunChunksAboveAction"}, + {"meta SUBTRACT", "Back", "CollapseAll", "CollapseExpandableComponent"}, + {"meta MINUS", "Back", "CollapseAll", "CollapseExpandableComponent"}, + {"shift F5", "Graph.ApplyCurrentLayout", "Stop"}, + {"shift meta alt R", "ChooseRunConfiguration", "ForceRefresh"}, + {"ctrl alt F", "ActivateStructureToolWindow", "EditorNextWord", "ShowFilterPopup"}, + {"meta alt ENTER", "QuickActionPopup", "ReformatCode", "org.jetbrains.r.actions.DebugSelection"}, + {"shift meta L", "EditorDeleteLine", "Jdbc.OpenConsole.New", "rspec.LetIntroduce"}, + {"shift alt ENTER", "JupyterDebugAction", "ToggleFullScreen"}, + {"shift alt F11", "FindUsagesInFile", "HighlightUsagesInFile"}, + {"shift meta alt P", "GoFmtProjectAction", "IntroduceFunctionalParameter", "ReformatWithPrettierAction", "VcsShowPrevChangeMarker"}, + {"alt F11", "ForceStepInto", "RunJsbtTask"}, + {"meta I", "DatabaseView.PropertiesAction", "IncrementalSearch", "org.intellij.plugins.markdown.ui.actions.styling.ToggleItalicAction"}, + {"F5", "Graph.RouteEdges", "PoBrowserRefresh", "Resume"}, + {"meta F1", "ExternalJavaDoc", "ShowErrorDescription"}, + {"shift meta MINUS", "Forward", "NotebookSplitCellAction"}, + {"F7", "CompileDirty", "NextDiff"}, + {"meta ENTER", "Console.Execute.Multiline", "DirDiffMenu.SynchronizeDiff.All", "Docker.RemoteServers.StartComposeService", "EditorStartNewLineBefore", "SplitChooser.Duplicate", "Terminal.SmartCommandExecution.Run", "ViewSource", "org.jetbrains.r.actions.RunSelection"}, + {"shift meta 8", "ActivateUnitTestsToolWindow", "EditorToggleColumnMode"}, + {"shift meta H", "ChangesView.ShelveSilently", "ReplaceInPath"}, + {"meta alt W", "ActivateWebToolWindow", "Vcs.UpdateProject"}, + {"shift meta S", "SaveAll", "org.intellij.plugins.markdown.ui.actions.styling.ToggleStrikethroughAction"}, + {"shift ctrl LEFT", "Diff.PrevChange", "EditorLeftWithSelection"}, + {"ctrl H", "Replace", "Vcs.ShowMessageHistory"}, + {"meta K", "SECOND_STROKE_SHORTCUT", "Terminal.ClearBuffer"}, + {"meta R", "SECOND_STROKE_SHORTCUT", "org.jetbrains.plugins.ruby.rails.console.ReloadSources"}, + {"meta E", "SECOND_STROKE_SHORTCUT", "SwitcherIterateItems", "SwitcherRecentEditedChangedToggleCheckBox"}, + }), Map.entry("Default for XWin", new String[][]{ {"ctrl SLASH", "CommentByLineComment", "FileChooserList.Root", "Graph.ActualSize"}, {"shift ctrl C", "CopyPaths", "DatabaseView.CopyDdlAction", "Terminal.CopySelectedText", diff --git a/platform/testFramework/extensions/src/com/intellij/keymap/KeymapsTestCaseBase.java b/platform/testFramework/extensions/src/com/intellij/keymap/KeymapsTestCaseBase.java index 1e3bb43ee0e9..e6094cdadeff 100644 --- a/platform/testFramework/extensions/src/com/intellij/keymap/KeymapsTestCaseBase.java +++ b/platform/testFramework/extensions/src/com/intellij/keymap/KeymapsTestCaseBase.java @@ -187,7 +187,7 @@ public abstract class KeymapsTestCaseBase extends BareTestFixtureTestCase { assertThat(newKeymaps) .overridingErrorMessage("Modify 'known duplicates list' test data. Keymaps were added: %s", newKeymaps) .isEmpty(); - assertThat(newKeymaps) + assertThat(missingKeymaps) .overridingErrorMessage("Modify 'known duplicates list' test data. Keymaps were removed: %s", missingKeymaps) .isEmpty(); diff --git a/platform/usageView-impl/src/com/intellij/usages/impl/UsagePreviewPanel.java b/platform/usageView-impl/src/com/intellij/usages/impl/UsagePreviewPanel.java index 8c4b6cf2aa22..f1918e0d07da 100644 --- a/platform/usageView-impl/src/com/intellij/usages/impl/UsagePreviewPanel.java +++ b/platform/usageView-impl/src/com/intellij/usages/impl/UsagePreviewPanel.java @@ -314,7 +314,7 @@ public class UsagePreviewPanel extends UsageContextPanelBase implements DataProv } private void customizeEditorSettings(@NotNull EditorSettings settings) { - settings.setLineMarkerAreaShown(false); + settings.setLineMarkerAreaShown(myIsEditor); settings.setFoldingOutlineShown(false); settings.setAdditionalColumnsCount(0); settings.setAdditionalLinesCount(0); diff --git a/platform/util/resources/misc/registry.properties b/platform/util/resources/misc/registry.properties index e97d82cae9d1..aba896a24402 100644 --- a/platform/util/resources/misc/registry.properties +++ b/platform/util/resources/misc/registry.properties @@ -1720,7 +1720,7 @@ ssr.in.editor.problem.highlighting.description=Show location of search template jdk.regex.soe.workaround=true jdk.regex.soe.workaround.description=In regular expression pattern replace choice \\n|. with . (and DOT_ALL option) to prevent stack overflow during matching -batch.inspections.process.project.usages.in.parallel=true +batch.inspections.process.project.usages.in.parallel=false batch.inspections.process.project.usages.in.parallel.description=When enabled batch inspection project usages are processed in parallel for increased speed batch.inspections.process.external.elements=true @@ -1783,6 +1783,8 @@ editor.completion.hints.virtual.comma.description=Don't insert commas between co editor.codeVision.new=true editor.codeVision.new.description=New code vision hints (inlays) +editor.codeVision.more.inlay=false +editor.codeVision.more.inlay.description=Show `More...` hint on hover over code vision entities folding.signature.validation=false folding.signature.validation.description=Validate that signature for a PSI element, for which a folding region is generated, can be used to\ @@ -2196,7 +2198,7 @@ ide.gtd.show.error.description=Whether to show "Cannot find declaration to go" e ide.shift.hover.image.preview=false ide.shift.hover.image.preview.description=Whether to enable image/color preview hint by shift+hovering in the editor -ide.ui.new.file.chooser=true +ide.ui.new.file.chooser=false ide.ui.new.file.chooser.description=Experimental file chooser implementation (IDEA-101218) ide.modal.progress.wrapper.refactoring=false diff --git a/platform/util/src/com/intellij/icons/AllIcons.java b/platform/util/src/com/intellij/icons/AllIcons.java index ec4e92e6521b..505b5470fd63 100644 --- a/platform/util/src/com/intellij/icons/AllIcons.java +++ b/platform/util/src/com/intellij/icons/AllIcons.java @@ -1086,6 +1086,7 @@ public class AllIcons { /** 16x16 */ public static final @NotNull Icon AddRemoteDatasource = load("toolbarDecorator/addRemoteDatasource.svg", 175893248, 2); /** 16x16 */ public static final @NotNull Icon AddYouTrack = load("toolbarDecorator/addYouTrack.svg", -178809474, 2); /** 16x16 */ public static final @NotNull Icon Export = load("toolbarDecorator/export.svg", -1997817006, 2); + /** 16x16 */ public static final @NotNull Icon ExportSmall = load("toolbarDecorator/exportSmall.svg", 1616570485, 2); /** 16x16 */ public static final @NotNull Icon Import = load("toolbarDecorator/import.svg", 1687651157, 2); } diff --git a/platform/util/src/com/intellij/openapi/diagnostic/RollingFileHandler.kt b/platform/util/src/com/intellij/openapi/diagnostic/RollingFileHandler.kt index e7989be035e5..d597ded59ea1 100644 --- a/platform/util/src/com/intellij/openapi/diagnostic/RollingFileHandler.kt +++ b/platform/util/src/com/intellij/openapi/diagnostic/RollingFileHandler.kt @@ -1,4 +1,4 @@ -// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.openapi.diagnostic import java.io.BufferedOutputStream @@ -18,11 +18,11 @@ class RollingFileHandler @JvmOverloads constructor( val append: Boolean, val onRotate: Runnable? = null ) : StreamHandler() { - private lateinit var meter: MeteredOutputStream + @Volatile private lateinit var meter: MeteredOutputStream private class MeteredOutputStream( private val delegate: OutputStream, - var written: Long, + @Volatile var written: Long, ) : OutputStream() { override fun write(b: Int) { delegate.write(b) @@ -54,6 +54,7 @@ class RollingFileHandler @JvmOverloads constructor( } private fun open(append: Boolean) { + Files.createDirectories(logPath.parent) val fout = Files.newOutputStream(logPath, StandardOpenOption.CREATE, StandardOpenOption.APPEND) val bout = BufferedOutputStream(fout) meter = MeteredOutputStream(bout, if (append) Files.size(logPath) else 0) @@ -65,15 +66,20 @@ class RollingFileHandler @JvmOverloads constructor( super.publish(record) flush() if (limit > 0 && meter.written >= limit) { - rotate() + synchronized(this) { + if (meter.written >= limit) { + rotate() + } + } } } + private fun rotate() { onRotate?.run() try { Files.deleteIfExists(logPathWithIndex(count)) - for (i in 1 until count) { + for (i in count-1 downTo 1) { val path = logPathWithIndex(i) if (Files.exists(path)) { Files.move(path, logPathWithIndex(i+1), StandardCopyOption.ATOMIC_MOVE) diff --git a/platform/util/src/com/intellij/util/EnvironmentUtil.java b/platform/util/src/com/intellij/util/EnvironmentUtil.java index 610371594a86..9deb11c87fa9 100644 --- a/platform/util/src/com/intellij/util/EnvironmentUtil.java +++ b/platform/util/src/com/intellij/util/EnvironmentUtil.java @@ -239,7 +239,7 @@ public final class EnvironmentUtil { } public final @NotNull Map<String, String> readShellEnv(@Nullable Path file, @Nullable Map<String, String> additionalEnvironment) throws IOException { - String reader; + String reader; if (SystemInfoRt.isMac) { reader = PathManager.findBinFileWithException(MacOS_LOADER_BINARY).toAbsolutePath().toString(); @@ -248,7 +248,8 @@ public final class EnvironmentUtil { reader = SHELL_ENV_COMMAND + "' '" + ENV_ZERO_ARGUMENT; } - Path envDataFile = Files.createTempFile("ij-shell-env-data.", ".tmp"); + Path envDataFileDir = Files.createTempDirectory("ij-env-tmp-dir"); + Path envDataFile = envDataFileDir.resolve("ij-shell-env-data.tmp"); StringBuilder readerCmd = new StringBuilder(); if (file != null) { @@ -272,7 +273,13 @@ public final class EnvironmentUtil { } LOG.info("loading shell env: " + String.join(" ", command)); - return runProcessAndReadOutputAndEnvs(command, null, additionalEnvironment, envDataFile).getValue(); + try { + return runProcessAndReadOutputAndEnvs(command, null, additionalEnvironment, envDataFile).getValue(); + } + finally { + deleteTempFile(envDataFile); + deleteTempFile(envDataFileDir); + } } /** @@ -360,7 +367,6 @@ public final class EnvironmentUtil { return new AbstractMap.SimpleImmutableEntry<>(log, parseEnv(envData)); } finally { - deleteTempFile(envDataFile); deleteTempFile(logFile); } } diff --git a/platform/util/ui/src/com/intellij/ui/icons/ImageDescriptor.java b/platform/util/ui/src/com/intellij/ui/icons/ImageDescriptor.java index 04e321fdc588..13a79cba4147 100644 --- a/platform/util/ui/src/com/intellij/ui/icons/ImageDescriptor.java +++ b/platform/util/ui/src/com/intellij/ui/icons/ImageDescriptor.java @@ -1,4 +1,4 @@ -// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.ui.icons; import org.jetbrains.annotations.ApiStatus; @@ -14,19 +14,13 @@ public final class ImageDescriptor { public final @NotNull String path; public final float scale; // initial scale factor public final boolean isSvg; - public final boolean original; // path is not altered public ImageDescriptor(@NotNull String path, float scale, boolean isSvg, boolean isDark) { - this(path, scale, isSvg, isDark, false); - } - - public ImageDescriptor(@NotNull String path, float scale, boolean isSvg, boolean isDark, boolean original) { assert !path.isEmpty(); this.path = path; this.scale = scale; this.isSvg = isSvg; - this.original = original; this.isDark = isDark; } diff --git a/platform/util/ui/src/com/intellij/util/ImageLoader.java b/platform/util/ui/src/com/intellij/util/ImageLoader.java index e6f407fb8a87..621fe9acfdff 100644 --- a/platform/util/ui/src/com/intellij/util/ImageLoader.java +++ b/platform/util/ui/src/com/intellij/util/ImageLoader.java @@ -257,9 +257,6 @@ public final class ImageLoader { if (resourceClass == null && (classLoader == null || URLUtil.containsScheme(descriptor.path)) && !descriptor.path.startsWith("file://")) { URLConnection connection = new URL(descriptor.path).openConnection(); if (connection instanceof HttpURLConnection) { - if (!descriptor.original) { - return null; - } connection.addRequestProperty("User-Agent", "IntelliJ"); } diff --git a/platform/vcs-api/src/com/intellij/openapi/vcs/VcsFileListenerContextHelper.java b/platform/vcs-api/src/com/intellij/openapi/vcs/VcsFileListenerContextHelper.java index 4c706a3978d5..4e5a9c859dcb 100644 --- a/platform/vcs-api/src/com/intellij/openapi/vcs/VcsFileListenerContextHelper.java +++ b/platform/vcs-api/src/com/intellij/openapi/vcs/VcsFileListenerContextHelper.java @@ -2,59 +2,39 @@ package com.intellij.openapi.vcs; import com.intellij.openapi.project.Project; -import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.newvfs.events.VFileCreateEvent; import com.intellij.openapi.vfs.newvfs.events.VFileDeleteEvent; +import org.jetbrains.annotations.NotNull; -import java.util.HashSet; -import java.util.Set; +import java.util.Collection; /** + * Allows excluding specific files from being processed by {@link VcsVFSListener}. + * <p> * NB: processing order is different for Added and Deleted files, {@link VcsVFSListener} implementation depends on it. * <p/> * For DELETED files {@link VFileDeleteEvent} MUST be fired AFTER {@link #ignoreDeleted} method invocation. * For ADDED files {@link VFileCreateEvent} CAN be fired BEFORE {@link #ignoreAdded} method invocation, in the same command. */ -public class VcsFileListenerContextHelper { - // to ignore by listeners - private final Set<FilePath> myDeletedContext; - private final Set<VirtualFile> myAddContext; - - VcsFileListenerContextHelper(final Project project) { - myDeletedContext = new HashSet<>(); - myAddContext = new HashSet<>(); - } +public interface VcsFileListenerContextHelper { - public static VcsFileListenerContextHelper getInstance(final Project project) { + static VcsFileListenerContextHelper getInstance(@NotNull Project project) { return project.getService(VcsFileListenerContextHelper.class); } - public void ignoreDeleted(final FilePath filePath) { - myDeletedContext.add(filePath); - } + void ignoreDeleted(@NotNull Collection<FilePath> filePath); - public boolean isDeletionIgnored(final FilePath filePath) { - return myDeletedContext.contains(filePath); - } + boolean isDeletionIgnored(@NotNull FilePath filePath); - public void ignoreAdded(final VirtualFile virtualFile) { - myAddContext.add(virtualFile); - } + void ignoreAdded(@NotNull Collection<FilePath> filePaths); - public boolean isAdditionIgnored(final VirtualFile virtualFile) { - return myAddContext.contains(virtualFile); - } + void ignoreAddedRecursive(@NotNull Collection<FilePath> filePaths); - public void clearContext() { - myAddContext.clear(); - myDeletedContext.clear(); - } + boolean isAdditionIgnored(@NotNull FilePath filePath); - public boolean isAdditionContextEmpty() { - return myAddContext.isEmpty(); - } + void clearContext(); - public boolean isDeletionContextEmpty() { - return myDeletedContext.isEmpty(); - } + boolean isAdditionContextEmpty(); + + boolean isDeletionContextEmpty(); } diff --git a/platform/vcs-api/src/com/intellij/vcsUtil/VcsUtil.java b/platform/vcs-api/src/com/intellij/vcsUtil/VcsUtil.java index a8dc174b036f..54c618fa5a09 100644 --- a/platform/vcs-api/src/com/intellij/vcsUtil/VcsUtil.java +++ b/platform/vcs-api/src/com/intellij/vcsUtil/VcsUtil.java @@ -38,6 +38,7 @@ import org.jetbrains.annotations.*; import javax.swing.*; import java.io.File; import java.io.IOException; +import java.nio.file.Path; import java.util.*; import java.util.stream.Collectors; @@ -209,6 +210,11 @@ public class VcsUtil { } @NotNull + public static FilePath getFilePath(@NotNull Path path, boolean isDirectory) { + return VcsContextFactory.SERVICE.getInstance().createFilePath(path, isDirectory); + } + + @NotNull public static FilePath getFilePath(@NotNull @NonNls String path, boolean isDirectory) { return VcsContextFactory.SERVICE.getInstance().createFilePath(path, isDirectory); } @@ -535,10 +541,17 @@ public class VcsUtil { } else if (FileUtil.pathsEqual(mapping.getDirectory(), newMapping.getDirectory())) { if (!StringUtil.isEmptyOrSpaces(mapping.getVcs())) { - LOG.warn("Substituting existing mapping [" + mapping.getDirectory() + "] -> [" + mapping.getVcs() + "] with [" + mapping.getVcs() + "]"); + if (mapping.getVcs().equals(newMapping.getVcs())) { + LOG.debug(String.format("Substituting existing mapping with identical [%s] -> [%s]", + mapping.getDirectory(), mapping.getVcs())); + } + else { + LOG.warn(String.format("Substituting existing mapping [%s] -> [%s] with [%s]", + mapping.getDirectory(), mapping.getVcs(), newMapping.getVcs())); + } } else { - LOG.debug("Removing [" + mapping.getDirectory() + "] -> <None> mapping"); + LOG.debug(String.format("Removing [%s] -> <None> mapping", mapping.getDirectory())); } iterator.remove(); } diff --git a/platform/vcs-impl/resources/META-INF/VcsExtensions.xml b/platform/vcs-impl/resources/META-INF/VcsExtensions.xml index b1f367816a57..0e5cb1112dad 100644 --- a/platform/vcs-impl/resources/META-INF/VcsExtensions.xml +++ b/platform/vcs-impl/resources/META-INF/VcsExtensions.xml @@ -211,7 +211,8 @@ serviceImplementation="com.intellij.openapi.vcs.impl.projectlevelman.AllVcses"/> <projectService serviceImplementation="com.intellij.openapi.vcs.changes.RemoteRevisionsCache"/> - <projectService serviceImplementation="com.intellij.openapi.vcs.VcsFileListenerContextHelper"/> + <projectService serviceInterface="com.intellij.openapi.vcs.VcsFileListenerContextHelper" + serviceImplementation="com.intellij.openapi.vcs.VcsFileListenerContextHelperImpl"/> <vcs.fileStatusProvider implementation="com.intellij.openapi.vcs.changes.conflicts.ChangelistConflictFileStatusProvider"/> <writingAccessProvider implementation="com.intellij.openapi.vcs.changes.conflicts.ChangelistConflictAccessProvider"/> diff --git a/platform/vcs-impl/src/com/intellij/codeInsight/hints/VcsCodeAuthorInlayHintsCollector.kt b/platform/vcs-impl/src/com/intellij/codeInsight/hints/VcsCodeAuthorInlayHintsCollector.kt index b523faf148dc..a845ddc92fa1 100644 --- a/platform/vcs-impl/src/com/intellij/codeInsight/hints/VcsCodeAuthorInlayHintsCollector.kt +++ b/platform/vcs-impl/src/com/intellij/codeInsight/hints/VcsCodeAuthorInlayHintsCollector.kt @@ -41,7 +41,7 @@ internal class VcsCodeAuthorInlayHintsCollector( if (!filter.invoke(element)) return true val range = getTextRangeWithoutLeadingCommentsAndWhitespaces(element) - val info = PREVIEW_INFO_KEY.get(element.containingFile) ?: getCodeAuthorInfo(element.project, range, editor) + val info = PREVIEW_INFO_KEY.get(editor) ?: getCodeAuthorInfo(element.project, range, editor) val presentation = buildPresentation(element, info, editor).addContextMenu(element.project) sink.addCodeVisionElement(editor, range.startOffset, BlockInlayPriority.CODE_AUTHOR, presentation) diff --git a/platform/vcs-impl/src/com/intellij/codeInsight/hints/VcsCodeVisionProvider.kt b/platform/vcs-impl/src/com/intellij/codeInsight/hints/VcsCodeVisionProvider.kt index d9997072c008..22473514e617 100644 --- a/platform/vcs-impl/src/com/intellij/codeInsight/hints/VcsCodeVisionProvider.kt +++ b/platform/vcs-impl/src/com/intellij/codeInsight/hints/VcsCodeVisionProvider.kt @@ -3,7 +3,9 @@ package com.intellij.codeInsight.hints import com.intellij.codeInsight.codeVision.* +import com.intellij.codeInsight.codeVision.CodeVisionState.Companion.READY_EMPTY import com.intellij.codeInsight.codeVision.ui.model.ClickableTextCodeVisionEntry +import com.intellij.codeInsight.hints.Result.Companion.SUCCESS_EMPTY import com.intellij.icons.AllIcons import com.intellij.lang.Language import com.intellij.openapi.Disposable @@ -19,6 +21,7 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.util.Disposer import com.intellij.openapi.util.Key import com.intellij.openapi.util.TextRange +import com.intellij.openapi.vcs.AbstractVcs import com.intellij.openapi.vcs.ProjectLevelVcsManager import com.intellij.openapi.vcs.VcsBundle import com.intellij.openapi.vcs.actions.ShortNameType @@ -49,27 +52,33 @@ class VcsCodeVisionProvider : CodeVisionProvider<Unit> { } - override fun computeForEditor(editor: Editor, uiData: Unit): List<Pair<TextRange, CodeVisionEntry>> { + override fun preparePreview(editor: Editor, file: PsiFile) { + addPreviewInfo(editor) + } + + override fun computeCodeVision(editor: Editor, uiData: Unit): CodeVisionState { return runReadAction { - val project = editor.project ?: return@runReadAction emptyList() + val project = editor.project ?: return@runReadAction READY_EMPTY val document = editor.document - val file = PsiDocumentManager.getInstance(project).getPsiFile(document) ?: return@runReadAction emptyList() + val file = PsiDocumentManager.getInstance(project).getPsiFile(document) ?: return@runReadAction CodeVisionState.NotReady val language = file.language - val aspect = getAspect(file, editor) ?: return@runReadAction emptyList() + val aspectResult = getAspect(file, editor) + if (aspectResult.isSuccess.not()) return@runReadAction CodeVisionState.NotReady + val aspect = aspectResult.result ?: return@runReadAction READY_EMPTY val lenses = ArrayList<Pair<TextRange, CodeVisionEntry>>() try { val visionLanguageContext = VcsCodeVisionLanguageContext.providersExtensionPoint.forLanguage(language) - ?: return@runReadAction emptyList() + ?: return@runReadAction READY_EMPTY val traverser = SyntaxTraverser.psiTraverser(file) for (element in traverser.preOrderDfsTraversal()) { if (visionLanguageContext.isAccepted(element)) { val textRange = InlayHintsUtils.getTextRangeWithoutLeadingCommentsAndWhitespaces(element) val length = editor.document.textLength val adjustedRange = TextRange(min(textRange.startOffset, length), min(textRange.endOffset, length)) - val codeAuthorInfo = getCodeAuthorInfo(element.project, adjustedRange, editor, aspect) + val codeAuthorInfo = PREVIEW_INFO_KEY.get(editor) ?: getCodeAuthorInfo(element.project, adjustedRange, editor, aspect) val text = codeAuthorInfo.getText() val icon = if (codeAuthorInfo.mainAuthor != null) AllIcons.Vcs.Author else null val clickHandler = CodeAuthorClickHandler(element, language) @@ -83,7 +92,7 @@ class VcsCodeVisionProvider : CodeVisionProvider<Unit> { e.printStackTrace() throw e } - return@runReadAction lenses + return@runReadAction CodeVisionState.Ready(lenses) } } @@ -180,21 +189,25 @@ private fun getCodeAuthorInfo(project: Project, range: TextRange, editor: Editor ) } -fun getAspect(file: PsiFile, editor: Editor): LineAnnotationAspect? { - if (hasPreviewInfo(file)) return LineAnnotationAspectAdapter.NULL_ASPECT - val virtualFile = file.virtualFile ?: return null - val annotation = getAnnotation(file.project, virtualFile, editor) ?: return null - return annotation.aspects.find { it.id == LineAnnotationAspect.AUTHOR } +private fun getAspect(file: PsiFile, editor: Editor): Result<LineAnnotationAspect?> { + if (hasPreviewInfo(editor)) return Result.Success(LineAnnotationAspectAdapter.NULL_ASPECT) + val virtualFile = file.virtualFile ?: return SUCCESS_EMPTY + val annotationResult = getAnnotation(file.project, virtualFile, editor) + if (annotationResult.isSuccess.not()) return Result.Failure() + + return Result.Success(annotationResult.result?.aspects?.find { it.id == LineAnnotationAspect.AUTHOR }) } private val VCS_CODE_AUTHOR_ANNOTATION = Key.create<FileAnnotation>("Vcs.CodeAuthor.Annotation") -private fun getAnnotation(project: Project, file: VirtualFile, editor: Editor): FileAnnotation? { - editor.getUserData(VCS_CODE_AUTHOR_ANNOTATION)?.let { return it } +private fun getAnnotation(project: Project, file: VirtualFile, editor: Editor): Result<FileAnnotation?> { + editor.getUserData(VCS_CODE_AUTHOR_ANNOTATION)?.let { return Result.Success(it) } - val vcs = ProjectLevelVcsManager.getInstance(project).getVcsFor(file) ?: return null - val provider = vcs.annotationProvider as? CacheableAnnotationProvider ?: return null - val annotation = provider.getFromCache(file) ?: return null + val vcs = ProjectLevelVcsManager.getInstance(project).getVcsFor(file) ?: return SUCCESS_EMPTY + val provider = vcs.annotationProvider as? CacheableAnnotationProvider ?: return SUCCESS_EMPTY + val isFileInVcs = AbstractVcs.fileInVcsByFileStatus(project, file) + if (!isFileInVcs) return SUCCESS_EMPTY + val annotation = provider.getFromCache(file) ?: return Result.Failure() val annotationDisposable = Disposable { unregisterAnnotation(file, annotation) @@ -214,7 +227,7 @@ private fun getAnnotation(project: Project, file: VirtualFile, editor: Editor): EditorUtil.disposeWithEditor(editor, annotationDisposable) } - return annotation + return Result.Success(annotation) } private fun registerAnnotation(file: VirtualFile, annotation: FileAnnotation) = @@ -235,4 +248,21 @@ private fun VcsCodeAuthorInfo.getText(): String { !isMultiAuthor && isModified -> VcsBundle.message("label.single.author.modified.code", mainAuthorText) else -> mainAuthorText } -}
\ No newline at end of file +} + +private sealed class Result<out T>(val isSuccess: Boolean, val result: T?){ + + companion object{ + val SUCCESS_EMPTY = Success(null) + } + class Success<T>(result: T) : Result<T>(true, result) + class Failure<T> : Result<T>(false, null) +} + +private val PREVIEW_INFO_KEY = Key.create<VcsCodeAuthorInfo>("preview.author.info") + +private fun addPreviewInfo(editor: Editor) { + editor.putUserData(PREVIEW_INFO_KEY, VcsCodeAuthorInfo("John Smith", 2, false)) +} + +private fun hasPreviewInfo(editor: Editor) = PREVIEW_INFO_KEY.get(editor) != null
\ No newline at end of file diff --git a/platform/vcs-impl/src/com/intellij/openapi/diff/impl/patch/apply/GenericPatchApplier.java b/platform/vcs-impl/src/com/intellij/openapi/diff/impl/patch/apply/GenericPatchApplier.java index f87e8b93a6bc..81141c62ffeb 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/diff/impl/patch/apply/GenericPatchApplier.java +++ b/platform/vcs-impl/src/com/intellij/openapi/diff/impl/patch/apply/GenericPatchApplier.java @@ -60,7 +60,7 @@ public class GenericPatchApplier { } @Nullable - public static AppliedPatch apply(CharSequence text, List<? extends PatchHunk> hunks) { + public static AppliedPatch apply(@NotNull CharSequence text, @NotNull List<? extends PatchHunk> hunks) { String patchedText = PlainSimplePatchApplier.apply(text, hunks); if (patchedText != null) { return new AppliedPatch(patchedText, SUCCESS); diff --git a/platform/vcs-impl/src/com/intellij/openapi/diff/impl/patch/formove/TriggerAdditionOrDeletion.java b/platform/vcs-impl/src/com/intellij/openapi/diff/impl/patch/formove/TriggerAdditionOrDeletion.java index 9f9165a046f0..ba07e2f4de58 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/diff/impl/patch/formove/TriggerAdditionOrDeletion.java +++ b/platform/vcs-impl/src/com/intellij/openapi/diff/impl/patch/formove/TriggerAdditionOrDeletion.java @@ -8,8 +8,6 @@ import com.intellij.openapi.vcs.checkin.CheckinEnvironment; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VfsUtilCore; import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.util.FilePathByPathComparator; -import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; import java.util.*; @@ -135,9 +133,7 @@ public class TriggerAdditionOrDeletion { myAffected.addAll(toBeDeleted); if (!vcs.fileListenerIsSynchronous()) { - for (FilePath filePath : toBeDeleted) { - myVcsFileListenerContextHelper.ignoreDeleted(filePath); - } + myVcsFileListenerContextHelper.ignoreDeleted(toBeDeleted); Set<FilePath> paths = myPreparedDeletion.computeIfAbsent(vcs, key -> new HashSet<>()); paths.addAll(toBeDeleted); @@ -177,9 +173,7 @@ public class TriggerAdditionOrDeletion { myAffected.addAll(toBeAdded); if (!vcs.fileListenerIsSynchronous()) { - for (FilePath filePath : ContainerUtil.sorted(toBeAdded, FilePathByPathComparator.getInstance())) { - myVcsFileListenerContextHelper.ignoreAdded(filePath.getVirtualFile()); - } + myVcsFileListenerContextHelper.ignoreAdded(toBeAdded); Set<FilePath> paths = myPreparedAddition.computeIfAbsent(vcs, key -> new HashSet<>()); paths.addAll(toBeAdded); diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/VcsFileListenerContextHelperImpl.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/VcsFileListenerContextHelperImpl.java new file mode 100644 index 000000000000..b6d4fd514803 --- /dev/null +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/VcsFileListenerContextHelperImpl.java @@ -0,0 +1,76 @@ +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.openapi.vcs; + +import com.intellij.openapi.util.SystemInfo; +import com.intellij.openapi.vcs.impl.projectlevelman.RecursiveFilePathSet; +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; +import java.util.HashSet; +import java.util.Set; + +public class VcsFileListenerContextHelperImpl implements VcsFileListenerContextHelper { + private final Object LOCK = new Object(); + private final Set<FilePath> myIgnoredDeleted = new HashSet<>(); + private final Set<FilePath> myIgnoredAdded = new HashSet<>(); + private final RecursiveFilePathSet myIgnoredAddedRecursive = new RecursiveFilePathSet(SystemInfo.isFileSystemCaseSensitive); + + @Override + public void ignoreDeleted(@NotNull Collection<FilePath> filePath) { + synchronized (LOCK) { + myIgnoredDeleted.addAll(filePath); + } + } + + @Override + public boolean isDeletionIgnored(@NotNull FilePath filePath) { + synchronized (LOCK) { + return myIgnoredDeleted.contains(filePath); + } + } + + @Override + public void ignoreAdded(@NotNull Collection<FilePath> filePaths) { + synchronized (LOCK) { + myIgnoredAdded.addAll(filePaths); + } + } + + @Override + public void ignoreAddedRecursive(@NotNull Collection<FilePath> filePaths) { + synchronized (LOCK) { + myIgnoredAddedRecursive.addAll(filePaths); + } + } + + @Override + public boolean isAdditionIgnored(@NotNull FilePath filePath) { + synchronized (LOCK) { + return myIgnoredAdded.contains(filePath) || + myIgnoredAddedRecursive.hasAncestor(filePath); + } + } + + @Override + public void clearContext() { + synchronized (LOCK) { + myIgnoredAdded.clear(); + myIgnoredAddedRecursive.clear(); + myIgnoredDeleted.clear(); + } + } + + @Override + public boolean isAdditionContextEmpty() { + synchronized (LOCK) { + return myIgnoredAdded.isEmpty() && myIgnoredAddedRecursive.isEmpty(); + } + } + + @Override + public boolean isDeletionContextEmpty() { + synchronized (LOCK) { + return myIgnoredDeleted.isEmpty(); + } + } +} diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/VcsVFSListener.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/VcsVFSListener.java index 26ef9e5ed260..48c45eab88ec 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/VcsVFSListener.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/VcsVFSListener.java @@ -200,9 +200,9 @@ public abstract class VcsVFSListener implements Disposable { private boolean isAnythingToProcess() { return withLock(PROCESSING_LOCK.readLock(), () -> !myAddedFiles.isEmpty() || - !myDeletedFiles.isEmpty() || - !myDeletedWithoutConfirmFiles.isEmpty() || - !myMovedFiles.isEmpty()); + !myDeletedFiles.isEmpty() || + !myDeletedWithoutConfirmFiles.isEmpty() || + !myMovedFiles.isEmpty()); } @RequiresBackgroundThread @@ -219,7 +219,8 @@ public abstract class VcsVFSListener implements Disposable { List<VcsException> exceptions = acquireExceptions(); if (!exceptions.isEmpty()) { - AbstractVcsHelper.getInstance(myProject).showErrors(exceptions, VcsBundle.message("vcs.tab.title.vcs.name.operations.errors", myVcs.getDisplayName())); + AbstractVcsHelper.getInstance(myProject) + .showErrors(exceptions, VcsBundle.message("vcs.tab.title.vcs.name.operations.errors", myVcs.getDisplayName())); } } @@ -429,7 +430,7 @@ public abstract class VcsVFSListener implements Disposable { private boolean allowedAddition(@NotNull VFileEvent event) { if (myVcsFileListenerContextHelper.isAdditionContextEmpty()) return true; - return !myVcsFileListenerContextHelper.isAdditionIgnored(event.getFile()); + return !myVcsFileListenerContextHelper.isAdditionIgnored(VcsUtil.getFilePath(event.getPath())); } @RequiresBackgroundThread @@ -544,6 +545,7 @@ public abstract class VcsVFSListener implements Disposable { /** * Same as {@link #selectFilePathsToDelete} but for add operation + * * @param addFiles added files set * @return selected files or empty if {@link VcsShowConfirmationOption.Value#DO_NOTHING_SILENTLY} */ @@ -741,37 +743,38 @@ public abstract class VcsVFSListener implements Disposable { }; } } - private class MyCommandAdapter implements CommandListener { - @Override - public void commandFinished(@NotNull CommandEvent event) { - if (myProject != event.getProject()) return; + private class MyCommandAdapter implements CommandListener { - /* - * Create file events cannot be filtered in afterVfsChange since VcsFileListenerContextHelper populated after actual file creation in PathsVerifier.CheckAdded.check - * So this commandFinished is the only way to get in sync with VcsFileListenerContextHelper to check if additions need to be filtered. - */ - List<VFileEvent> events = ContainerUtil.filter(myEventsToProcess, e -> !(e instanceof VFileCreateEvent) || allowedAddition(e)); - myEventsToProcess.clear(); + @Override + public void commandFinished(@NotNull CommandEvent event) { + if (myProject != event.getProject()) return; - if (events.isEmpty() && !myProcessor.isAnythingToProcess()) return; + /* + * Create file events cannot be filtered in afterVfsChange since VcsFileListenerContextHelper populated after actual file creation in PathsVerifier.CheckAdded.check + * So this commandFinished is the only way to get in sync with VcsFileListenerContextHelper to check if additions need to be filtered. + */ + List<VFileEvent> events = ContainerUtil.filter(myEventsToProcess, e -> !(e instanceof VFileCreateEvent) || allowedAddition(e)); + myEventsToProcess.clear(); - processEventsInBackground(events); - } + if (events.isEmpty() && !myProcessor.isAnythingToProcess()) return; - /** - * Not using modal progress here, because it could lead to some focus related assertion (e.g. "showing dialogs from popup" in com.intellij.ui.popup.tree.TreePopupImpl) - * Assume, that it is a safe to do all processing in background even if "Add to VCS" dialog may appear during such processing. - */ - private void processEventsInBackground(List<VFileEvent> events) { - new Task.Backgroundable(myProject, VcsBundle.message("progress.title.version.control.processing.changed.files"), true) { - @Override - public void run(@NotNull ProgressIndicator indicator) { - indicator.checkCanceled(); - myProcessor.process(events); - } - }.queue(); - } + processEventsInBackground(events); } + + /** + * Not using modal progress here, because it could lead to some focus related assertion (e.g. "showing dialogs from popup" in com.intellij.ui.popup.tree.TreePopupImpl) + * Assume, that it is a safe to do all processing in background even if "Add to VCS" dialog may appear during such processing. + */ + private void processEventsInBackground(List<VFileEvent> events) { + new Task.Backgroundable(myProject, VcsBundle.message("progress.title.version.control.processing.changed.files"), true) { + @Override + public void run(@NotNull ProgressIndicator indicator) { + indicator.checkCanceled(); + myProcessor.process(events); + } + }.queue(); + } + } } diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/VcsQuickActionsToolbarPopup.kt b/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/VcsQuickActionsToolbarPopup.kt index 1075885b1f63..258941882e4f 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/VcsQuickActionsToolbarPopup.kt +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/VcsQuickActionsToolbarPopup.kt @@ -6,6 +6,7 @@ import com.intellij.ide.DataManager import com.intellij.ide.HelpTooltip import com.intellij.ide.actions.GotoClassPresentationUpdater.getActionTitlePluralized import com.intellij.ide.ui.customization.CustomActionsSchema +import com.intellij.idea.ActionsBundle import com.intellij.openapi.actionSystem.* import com.intellij.openapi.actionSystem.ex.CustomComponentAction import com.intellij.openapi.actionSystem.impl.ActionButtonWithText @@ -46,12 +47,12 @@ open class VcsQuickActionsToolbarPopup : IconWithTextAction(), CustomComponentAc if (Registry.`is`("ide.helptooltip.enabled")) { HelpTooltip.dispose(this) HelpTooltip() - .setTitle(VcsBundle.message("action.Vcs.Toolbar.ShowMoreActions.description")) + .setTitle(ActionsBundle.message("action.Vcs.Toolbar.ShowMoreActions.description")) .setShortcut(shortcut) .installOn(this) } else { - toolTipText = VcsBundle.message("action.Vcs.Toolbar.ShowMoreActions.description", shortcutText, classesTabName) + toolTipText = ActionsBundle.message("action.Vcs.Toolbar.ShowMoreActions.description", shortcutText, classesTabName) } } @@ -106,7 +107,7 @@ open class VcsQuickActionsToolbarPopup : IconWithTextAction(), CustomComponentAc } presentation.isEnabledAndVisible = true presentation.icon = AllIcons.Vcs.BranchNode - presentation.text = VcsBundle.message("action.Vcs.Toolbar.ShowMoreActions.text") + " " + presentation.text = ActionsBundle.message("action.Vcs.Toolbar.ShowMoreActions.text") + " " } companion object { diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/projectlevelman/RecursiveFilePathSet.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/projectlevelman/RecursiveFilePathSet.java index d75ed7e6fc8b..fb54450c492f 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/projectlevelman/RecursiveFilePathSet.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/projectlevelman/RecursiveFilePathSet.java @@ -27,6 +27,10 @@ public class RecursiveFilePathSet { myMapping.remove(filePath.getPath()); } + public boolean isEmpty() { + return myMapping.values().isEmpty(); + } + public void clear() { myMapping.clear(); } diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogContentUtil.kt b/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogContentUtil.kt index aa6ad82fc7a0..41ec78888ff5 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogContentUtil.kt +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogContentUtil.kt @@ -1,4 +1,4 @@ -// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.vcs.log.impl import com.intellij.openapi.project.Project @@ -37,7 +37,7 @@ object VcsLogContentUtil { return uis.singleOrNull() } - internal fun selectLogUi(project: Project, logUi: VcsLogUi): Boolean { + internal fun selectLogUi(project: Project, logUi: VcsLogUi, requestFocus: Boolean = true): Boolean { val toolWindow = ToolWindowManager.getInstance(project).getToolWindow(ChangesViewContentManager.TOOLWINDOW_ID) ?: return false val manager = toolWindow.contentManager val component = ContentUtilEx.findContentComponent(manager) { c -> getLogUi(c)?.id == logUi.id } ?: return false @@ -45,7 +45,7 @@ object VcsLogContentUtil { if (!toolWindow.isVisible) { toolWindow.activate(null) } - return ContentUtilEx.selectContent(manager, component, true) + return ContentUtilEx.selectContent(manager, component, requestFocus) } fun getId(content: Content): String? { diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogNavigationUtil.kt b/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogNavigationUtil.kt index 00f2eac70e02..f1cba0702d58 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogNavigationUtil.kt +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogNavigationUtil.kt @@ -114,6 +114,15 @@ object VcsLogNavigationUtil { } } + val otherUis = manager.getLogUis(VcsLogTabLocation.TOOL_WINDOW).filterIsInstance<MainVcsLogUi>() - selectedUis.toSet() + otherUis.find { ui -> + ui.refresher.setValid(true, false) + predicate(ui) && ui.showCommit(hash, root, requestFocus) + }?.let { ui -> + VcsLogContentUtil.selectLogUi(project, ui, requestFocus) + return ui + } + val newUi = VcsProjectLog.getInstance(project).openLogTab(VcsLogFilterObject.EMPTY_COLLECTION, VcsLogTabLocation.TOOL_WINDOW) ?: return null if (newUi.showCommit(hash, root, requestFocus)) return newUi diff --git a/platform/workspaceModel/jps/src/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectEntitiesLoader.kt b/platform/workspaceModel/jps/src/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectEntitiesLoader.kt index 492107b925b9..dcd504fc330f 100644 --- a/platform/workspaceModel/jps/src/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectEntitiesLoader.kt +++ b/platform/workspaceModel/jps/src/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectEntitiesLoader.kt @@ -34,7 +34,7 @@ object JpsProjectEntitiesLoader { externalStoragePath: Path, errorReporter: ErrorReporter, virtualFileManager: VirtualFileUrlManager, fileInDirectorySourceNames: FileInDirectorySourceNames = FileInDirectorySourceNames.empty(), externalStorageConfigurationManager: ExternalStorageConfigurationManager? = null): JpsProjectSerializers { - val reader = CachingJpsFileContentReader(configLocation.baseDirectoryUrlString) + val reader = CachingJpsFileContentReader(configLocation) val data = createProjectEntitiesSerializers(configLocation, reader, externalStoragePath, true, virtualFileManager, externalStorageConfigurationManager = externalStorageConfigurationManager, fileInDirectorySourceNames = fileInDirectorySourceNames) @@ -54,7 +54,7 @@ object JpsProjectEntitiesLoader { builder: WorkspaceEntityStorageBuilder, errorReporter: ErrorReporter, virtualFileManager: VirtualFileUrlManager) { - val reader = CachingJpsFileContentReader(configLocation.baseDirectoryUrlString) + val reader = CachingJpsFileContentReader(configLocation) val serializer = ModuleListSerializerImpl.createModuleEntitiesSerializer(moduleFile.toVirtualFileUrl(virtualFileManager), null, source, virtualFileManager) serializer.loadEntities(builder, reader, errorReporter, virtualFileManager) diff --git a/platform/workspaceModel/jps/src/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectSerializersImpl.kt b/platform/workspaceModel/jps/src/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectSerializersImpl.kt index e737bb2a1a35..cfc89a196d6b 100644 --- a/platform/workspaceModel/jps/src/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectSerializersImpl.kt +++ b/platform/workspaceModel/jps/src/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectSerializersImpl.kt @@ -39,6 +39,7 @@ import java.util.* import java.util.concurrent.Callable import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.ForkJoinTask +import java.util.function.Supplier import kotlin.streams.toList class JpsProjectSerializersImpl(directorySerializersFactories: List<JpsDirectoryEntitiesSerializerFactory<*>>, @@ -834,8 +835,12 @@ class JpsProjectSerializersImpl(directorySerializersFactories: List<JpsDirectory } } -class CachingJpsFileContentReader(projectBaseDirUrl: String) : JpsFileContentReader { - private val projectPathMacroManager = ProjectPathMacroManager.createInstance({ JpsPathUtil.urlToPath(projectBaseDirUrl) }, null) +class CachingJpsFileContentReader(private val configLocation: JpsProjectConfigLocation) : JpsFileContentReader { + private val projectPathMacroManager = ProjectPathMacroManager.createInstance( + configLocation::projectFilePath, + { JpsPathUtil.urlToPath(configLocation.baseDirectoryUrlString) }, + null + ) private val fileContentCache = ConcurrentHashMap<String, Map<String, Element>>() override fun loadComponent(fileUrl: String, componentName: String, customModuleFilePath: String?): Element? { @@ -860,7 +865,7 @@ class CachingJpsFileContentReader(projectBaseDirUrl: String) : JpsFileContentRea customModuleFilePath: String?): PathMacroManager { val path = JpsPathUtil.urlToPath(fileUrl) return if (FileUtil.extensionEquals(fileUrl, "iml") || isExternalModuleFile(path)) { - ModulePathMacroManager.createInstance { customModuleFilePath ?: path } + ModulePathMacroManager.createInstance(configLocation::projectFilePath, Supplier { customModuleFilePath ?: path }) } else { projectPathMacroManager diff --git a/platform/workspaceModel/jps/tests/testSrc/com/intellij/workspaceModel/ide/ImlReplaceBySourceTest.kt b/platform/workspaceModel/jps/tests/testSrc/com/intellij/workspaceModel/ide/ImlReplaceBySourceTest.kt index ff14c0cc3b5e..da013942f6d5 100644 --- a/platform/workspaceModel/jps/tests/testSrc/com/intellij/workspaceModel/ide/ImlReplaceBySourceTest.kt +++ b/platform/workspaceModel/jps/tests/testSrc/com/intellij/workspaceModel/ide/ImlReplaceBySourceTest.kt @@ -115,7 +115,7 @@ class ImlReplaceBySourceTest { storageBuilder1, virtualFileManager) val storageBuilder2 = WorkspaceEntityStorageBuilder.create() - val reader = CachingJpsFileContentReader(projectFile.asConfigLocation(virtualFileManager).baseDirectoryUrlString) + val reader = CachingJpsFileContentReader(projectFile.asConfigLocation(virtualFileManager)) data.loadAll(reader, storageBuilder2, TestErrorReporter, null) val before = storageBuilder1.toStorage() diff --git a/platform/workspaceModel/jps/tests/testSrc/com/intellij/workspaceModel/ide/impl/jps/serialization/DelayedProjectSynchronizerTest.kt b/platform/workspaceModel/jps/tests/testSrc/com/intellij/workspaceModel/ide/impl/jps/serialization/DelayedProjectSynchronizerTest.kt index f62daff1a2c6..13e6b847d413 100644 --- a/platform/workspaceModel/jps/tests/testSrc/com/intellij/workspaceModel/ide/impl/jps/serialization/DelayedProjectSynchronizerTest.kt +++ b/platform/workspaceModel/jps/tests/testSrc/com/intellij/workspaceModel/ide/impl/jps/serialization/DelayedProjectSynchronizerTest.kt @@ -84,7 +84,7 @@ class DelayedProjectSynchronizerTest { private fun checkSerializersConsistency(project: Project) { val storage = WorkspaceModel.getInstance(project).entityStorage.current val serializers = JpsProjectModelSynchronizer.getInstance(project)!!.getSerializers() - serializers.checkConsistency(getJpsProjectConfigLocation(project)!!.baseDirectoryUrlString, storage, VirtualFileUrlManager.getInstance(project)) + serializers.checkConsistency(getJpsProjectConfigLocation(project)!!, storage, VirtualFileUrlManager.getInstance(project)) } @Test @@ -123,7 +123,7 @@ class DelayedProjectSynchronizerTest { LibraryTablesRegistrar.getInstance().getLibraryTable(project).createLibrary("foo") } val storage = WorkspaceModel.getInstance(project).entityStorage.current - JpsProjectModelSynchronizer.getInstance(project)!!.getSerializers().saveAllEntities(storage, projectData.projectDir) + JpsProjectModelSynchronizer.getInstance(project)!!.getSerializers().saveAllEntities(storage, projectData.configLocation) val librariesFolder = projectData.projectDir.toPath().resolve(".idea/libraries/") val librariesPaths = Files.list(librariesFolder).sorted().toList() assertEquals(4, librariesPaths.size) @@ -144,7 +144,7 @@ class DelayedProjectSynchronizerTest { val configLocation = toConfigLocation(projectData.projectDir.toPath(), virtualFileManager) val serializers = loadProject(configLocation, originalBuilder, virtualFileManager, fileInDirectorySourceNames) as JpsProjectSerializersImpl val loadedProjectData = LoadedProjectData(originalBuilder.toStorage(), serializers, configLocation, projectFile) - serializers.checkConsistency(loadedProjectData.projectDirUrl, loadedProjectData.storage, virtualFileManager) + serializers.checkConsistency(configLocation, loadedProjectData.storage, virtualFileManager) assertThat(projectData.storage.entities(ModuleEntity::class.java).map { assertTrue(it.entitySource is JpsFileEntitySource.FileInDirectory) diff --git a/platform/workspaceModel/jps/tests/testSrc/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectReloadingTest.kt b/platform/workspaceModel/jps/tests/testSrc/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectReloadingTest.kt index bee9debbf6d9..0f3593adacdf 100644 --- a/platform/workspaceModel/jps/tests/testSrc/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectReloadingTest.kt +++ b/platform/workspaceModel/jps/tests/testSrc/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectReloadingTest.kt @@ -115,10 +115,10 @@ class JpsProjectReloadingTest : HeavyPlatformTestCase() { val projectData = copyAndLoadProject(originalProjectFile, virtualFileManager) val change = updateAction(projectData) val (changedEntities, builder) = - projectData.serializers.reloadFromChangedFiles(change, CachingJpsFileContentReader(projectData.projectDirUrl), TestErrorReporter) + projectData.serializers.reloadFromChangedFiles(change, CachingJpsFileContentReader(projectData.configLocation), TestErrorReporter) val originalBuilder = WorkspaceEntityStorageBuilder.from(projectData.storage) originalBuilder.replaceBySource({it in changedEntities}, builder) - projectData.serializers.checkConsistency(projectData.projectDirUrl, originalBuilder, virtualFileManager) + projectData.serializers.checkConsistency(projectData.configLocation, originalBuilder, virtualFileManager) return ReloadedProjectData(originalBuilder, projectData.projectDirUrl) } diff --git a/platform/workspaceModel/jps/tests/testSrc/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectSaveAfterChangesTest.kt b/platform/workspaceModel/jps/tests/testSrc/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectSaveAfterChangesTest.kt index f4ca90e09d26..7c5ae8fd02ec 100644 --- a/platform/workspaceModel/jps/tests/testSrc/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectSaveAfterChangesTest.kt +++ b/platform/workspaceModel/jps/tests/testSrc/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectSaveAfterChangesTest.kt @@ -163,10 +163,10 @@ class JpsProjectSaveAfterChangesTest { is EntityChange.Replaced -> listOf(change.oldEntity, change.newEntity) } }.map { it.entitySource }} - val writer = JpsFileContentWriterImpl(projectData.projectDir) + val writer = JpsFileContentWriterImpl(projectData.configLocation) projectData.serializers.saveEntities(builder.toStorage(), changedSources, writer) writer.writeFiles() - projectData.serializers.checkConsistency(projectData.projectDirUrl, builder.toStorage(), virtualFileManager) + projectData.serializers.checkConsistency(projectData.configLocation, builder.toStorage(), virtualFileManager) val expectedDir = FileUtil.createTempDirectory("jpsProjectTest", "expected") FileUtil.copyDir(projectData.originalProjectDir, expectedDir) diff --git a/platform/workspaceModel/jps/tests/testSrc/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectSaveAllEntitiesTest.kt b/platform/workspaceModel/jps/tests/testSrc/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectSaveAllEntitiesTest.kt index 20ff5521475e..5847bb8ff569 100644 --- a/platform/workspaceModel/jps/tests/testSrc/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectSaveAllEntitiesTest.kt +++ b/platform/workspaceModel/jps/tests/testSrc/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectSaveAllEntitiesTest.kt @@ -59,14 +59,14 @@ class JpsProjectSaveAllEntitiesTest { @Test fun `add library to empty project`() { val projectDir = FileUtil.createTempDirectory("jpsSaveTest", null) - val serializers = createProjectSerializers(projectDir, virtualFileManager) + val (serializers, configLocation) = createProjectSerializers(projectDir, virtualFileManager) val builder = WorkspaceEntityStorageBuilder.create() val jarUrl = virtualFileManager.fromUrl("jar://${projectDir.systemIndependentPath}/lib/foo.jar!/") val libraryRoot = LibraryRoot(jarUrl, LibraryRootTypeId.COMPILED) val source = JpsEntitySourceFactory.createJpsEntitySourceForProjectLibrary(projectDir.asConfigLocation(virtualFileManager)) builder.addLibraryEntity("foo", LibraryTableId.ProjectLibraryTableId, listOf(libraryRoot), emptyList(), source) val storage = builder.toStorage() - serializers.saveAllEntities(storage, projectDir) + serializers.saveAllEntities(storage, configLocation) val expectedDir = File(PathManagerEx.getCommunityHomePath(), "platform/workspaceModel/jps/tests/testData/serialization/fromScratch/addLibrary") assertDirectoryMatches(projectDir, expectedDir, emptySet(), emptyList()) @@ -75,14 +75,14 @@ class JpsProjectSaveAllEntitiesTest { @Test fun `escape special symbols in library name`() { val projectDir = FileUtil.createTempDirectory("jpsSaveTest", null) - val serializers = createProjectSerializers(projectDir, virtualFileManager) + val (serializers, configLocation) = createProjectSerializers(projectDir, virtualFileManager) val builder = WorkspaceEntityStorageBuilder.create() for (libName in listOf("a lib", "my-lib", "group-id:artifact-id")) { val source = JpsEntitySourceFactory.createJpsEntitySourceForProjectLibrary(projectDir.asConfigLocation(virtualFileManager)) builder.addLibraryEntity(libName, LibraryTableId.ProjectLibraryTableId, emptyList(), emptyList(), source) } val storage = builder.toStorage() - serializers.saveAllEntities(storage, projectDir) + serializers.saveAllEntities(storage, configLocation) val expectedDir = File(PathManagerEx.getCommunityHomePath(), "platform/workspaceModel/jps/tests/testData/serialization/specialSymbolsInLibraryName") assertDirectoryMatches(projectDir, expectedDir, emptySet(), emptyList()) @@ -91,7 +91,7 @@ class JpsProjectSaveAllEntitiesTest { @Test fun `escape special symbols in library name2`() { val projectDir = FileUtil.createTempDirectory("jpsSaveTest", null) - val serializers = createProjectSerializers(projectDir, virtualFileManager) + val (serializers, configLocation) = createProjectSerializers(projectDir, virtualFileManager) val builder = WorkspaceEntityStorageBuilder.create() @@ -100,7 +100,7 @@ class JpsProjectSaveAllEntitiesTest { builder.addLibraryEntity(libName, LibraryTableId.ProjectLibraryTableId, emptyList(), emptyList(), source) } val storage = builder.toStorage() - serializers.saveAllEntities(storage, projectDir) + serializers.saveAllEntities(storage, configLocation) val expectedDir = File(PathManagerEx.getCommunityHomePath(), "platform/workspaceModel/jps/tests/testData/serialization/specialSymbolsInLibraryName") assertDirectoryMatches(projectDir, expectedDir, emptySet(), emptyList()) @@ -109,7 +109,7 @@ class JpsProjectSaveAllEntitiesTest { private fun checkLoadSave(originalProjectFile: File) { val projectData = copyAndLoadProject(originalProjectFile, virtualFileManager) FileUtil.delete(projectData.projectDir) - projectData.serializers.saveAllEntities(projectData.storage, projectData.projectDir) + projectData.serializers.saveAllEntities(projectData.storage, projectData.configLocation) assertDirectoryMatches(projectData.projectDir, projectData.originalProjectDir, setOf(".idea/misc.xml", ".idea/encodings.xml", ".idea/compiler.xml", ".idea/.name"), listOf("CompilerConfiguration", "Encoding", "ProjectRootManager")) diff --git a/platform/workspaceModel/jps/tests/testSrc/com/intellij/workspaceModel/ide/impl/jps/serialization/jpsTestUtils.kt b/platform/workspaceModel/jps/tests/testSrc/com/intellij/workspaceModel/ide/impl/jps/serialization/jpsTestUtils.kt index fe8c94d07e9f..a7bcbfd7d75d 100644 --- a/platform/workspaceModel/jps/tests/testSrc/com/intellij/workspaceModel/ide/impl/jps/serialization/jpsTestUtils.kt +++ b/platform/workspaceModel/jps/tests/testSrc/com/intellij/workspaceModel/ide/impl/jps/serialization/jpsTestUtils.kt @@ -30,6 +30,7 @@ import org.junit.Assert.assertEquals import org.junit.Assert.assertTrue import java.io.File import java.nio.file.Path +import java.util.function.Supplier internal val sampleDirBasedProjectFile = File(PathManagerEx.getCommunityHomePath(), "jps/model-serialization/testData/sampleProject") internal val sampleFileBasedProjectFile = File(PathManagerEx.getCommunityHomePath(), @@ -54,7 +55,7 @@ internal fun copyAndLoadProject(originalProjectFile: File, virtualFileManager: V val configLocation = toConfigLocation(projectFile.toPath(), virtualFileManager) val serializers = loadProject(configLocation, originalBuilder, virtualFileManager) as JpsProjectSerializersImpl val loadedProjectData = LoadedProjectData(originalBuilder.toStorage(), serializers, configLocation, originalProjectDir) - serializers.checkConsistency(loadedProjectData.projectDirUrl, loadedProjectData.storage, virtualFileManager) + serializers.checkConsistency(loadedProjectData.configLocation, loadedProjectData.storage, virtualFileManager) return loadedProjectData } @@ -74,8 +75,8 @@ internal fun loadProject(configLocation: JpsProjectConfigLocation, originalBuild externalStorageConfigurationManager) } -internal fun JpsProjectSerializersImpl.saveAllEntities(storage: WorkspaceEntityStorage, projectDir: File) { - val writer = JpsFileContentWriterImpl(projectDir) +internal fun JpsProjectSerializersImpl.saveAllEntities(storage: WorkspaceEntityStorage, configLocation: JpsProjectConfigLocation) { + val writer = JpsFileContentWriterImpl(configLocation) saveAllEntities(storage, writer) writer.writeFiles() } @@ -111,14 +112,19 @@ internal fun assertDirectoryMatches(actualDir: File, expectedDir: File, filesToI UsefulTestCase.assertEmpty(expectedFiles.keys - actualFiles.keys) } -internal fun createProjectSerializers(projectDir: File, virtualFileManager: VirtualFileUrlManager): JpsProjectSerializersImpl { - val reader = CachingJpsFileContentReader(VfsUtilCore.pathToUrl(projectDir.systemIndependentPath)) +internal fun createProjectSerializers(projectDir: File, + virtualFileManager: VirtualFileUrlManager): Pair<JpsProjectSerializersImpl, JpsProjectConfigLocation> { + val configLocation = toConfigLocation(projectDir.toPath(), virtualFileManager) + val reader = CachingJpsFileContentReader(configLocation) val externalStoragePath = projectDir.toPath().resolve("cache") - return JpsProjectEntitiesLoader.createProjectSerializers(toConfigLocation(projectDir.toPath(), virtualFileManager), reader, - externalStoragePath, true, virtualFileManager) as JpsProjectSerializersImpl + val serializer = JpsProjectEntitiesLoader.createProjectSerializers(configLocation, reader, externalStoragePath, true, + virtualFileManager) as JpsProjectSerializersImpl + return serializer to configLocation } -fun JpsProjectSerializersImpl.checkConsistency(projectBaseDirUrl: String, storage: WorkspaceEntityStorage, virtualFileManager: VirtualFileUrlManager) { +fun JpsProjectSerializersImpl.checkConsistency(configLocation: JpsProjectConfigLocation, + storage: WorkspaceEntityStorage, + virtualFileManager: VirtualFileUrlManager) { fun getNonNullActualFileUrl(source: EntitySource): String { return getActualFileUrl(source) ?: throw AssertionFailedError("file name is not registered for $source") } @@ -133,7 +139,7 @@ fun JpsProjectSerializersImpl.checkConsistency(projectBaseDirUrl: String, storag moduleListSerializersByUrl.forEach { (url, fileSerializer) -> assertEquals(url, fileSerializer.fileUrl) val fileSerializers = moduleSerializers.getKeysByValue(fileSerializer) ?: emptyList() - val urlsFromFactory = fileSerializer.loadFileList(CachingJpsFileContentReader(projectBaseDirUrl), virtualFileManager) + val urlsFromFactory = fileSerializer.loadFileList(CachingJpsFileContentReader(configLocation), virtualFileManager) assertEquals(urlsFromFactory.map { it.first.url }.sorted(), fileSerializers.map { getNonNullActualFileUrl(it.internalEntitySource) }.sorted()) } @@ -179,7 +185,7 @@ internal fun toConfigLocation(file: Path, virtualFileManager: VirtualFileUrlMana } } -internal class JpsFileContentWriterImpl(private val baseProjectDir: File) : JpsFileContentWriter { +internal class JpsFileContentWriterImpl(private val configLocation: JpsProjectConfigLocation) : JpsFileContentWriter { val urlToComponents = LinkedHashMap<String, LinkedHashMap<String, Element?>>() override fun saveComponent(fileUrl: String, componentName: String, componentTag: Element?) { @@ -188,9 +194,11 @@ internal class JpsFileContentWriterImpl(private val baseProjectDir: File) : JpsF override fun getReplacePathMacroMap(fileUrl: String): PathMacroMap { return if (isModuleFile(JpsPathUtil.urlToFile(fileUrl))) - ModulePathMacroManager.createInstance { JpsPathUtil.urlToOsPath(fileUrl) }.replacePathMap + ModulePathMacroManager.createInstance(configLocation::projectFilePath, Supplier { JpsPathUtil.urlToOsPath(fileUrl) }).replacePathMap else - ProjectPathMacroManager.createInstance({ baseProjectDir.systemIndependentPath }, null).replacePathMap + ProjectPathMacroManager.createInstance(configLocation::projectFilePath, + { JpsPathUtil.urlToPath(configLocation.baseDirectoryUrlString) }, + null).replacePathMap } internal fun writeFiles() { @@ -200,7 +208,7 @@ internal class JpsFileContentWriterImpl(private val baseProjectDir: File) : JpsF val replaceMacroMap = getReplacePathMacroMap(url) val newRootElement = when { isModuleFile(file) -> Element("module") - FileUtil.filesEqual(File(baseProjectDir, ".idea"), file.parentFile.parentFile) -> null + FileUtil.filesEqual(File(JpsPathUtil.urlToPath(configLocation.baseDirectoryUrlString), ".idea"), file.parentFile.parentFile) -> null else -> Element("project") } diff --git a/plugins/color-schemes/all-hallows-eve-color-scheme/resources/META-INF/plugin.xml b/plugins/color-schemes/all-hallows-eve-color-scheme/resources/META-INF/plugin.xml index aecd4cf7523c..16b19a2f574e 100644 --- a/plugins/color-schemes/all-hallows-eve-color-scheme/resources/META-INF/plugin.xml +++ b/plugins/color-schemes/all-hallows-eve-color-scheme/resources/META-INF/plugin.xml @@ -3,6 +3,9 @@ <id>com.intellij.plugins.all_hallows_eve.colorscheme</id> <vendor>JetBrains</vendor> <category>UI</category> + <description> + All Hallow's Eve editor color scheme for all IntelliJ-based IDEs. + </description> <depends>com.intellij.modules.lang</depends> <extensions defaultExtensionNs="com.intellij"> <bundledColorScheme path="/colorSchemes/all_hallows_eve"/> diff --git a/plugins/color-schemes/blackboard-color-scheme/resources/META-INF/plugin.xml b/plugins/color-schemes/blackboard-color-scheme/resources/META-INF/plugin.xml index 8d0b06a84180..5d7cbc99b4a8 100644 --- a/plugins/color-schemes/blackboard-color-scheme/resources/META-INF/plugin.xml +++ b/plugins/color-schemes/blackboard-color-scheme/resources/META-INF/plugin.xml @@ -4,6 +4,9 @@ <vendor>JetBrains</vendor> <category>UI</category> <depends>com.intellij.modules.lang</depends> + <description> + Blackboard editor color scheme for all IntelliJ-based IDEs. + </description> <extensions defaultExtensionNs="com.intellij"> <bundledColorScheme path="/colorSchemes/blackboard"/> </extensions> diff --git a/plugins/color-schemes/cobalt-color-scheme/resources/META-INF/plugin.xml b/plugins/color-schemes/cobalt-color-scheme/resources/META-INF/plugin.xml index a277e9d99b1c..210f7b024f8b 100644 --- a/plugins/color-schemes/cobalt-color-scheme/resources/META-INF/plugin.xml +++ b/plugins/color-schemes/cobalt-color-scheme/resources/META-INF/plugin.xml @@ -4,6 +4,9 @@ <vendor>JetBrains</vendor> <category>UI</category> <depends>com.intellij.modules.lang</depends> + <description> + Cobalt editor color scheme for all IntelliJ-based IDEs. + </description> <extensions defaultExtensionNs="com.intellij"> <bundledColorScheme path="/colorSchemes/cobalt"/> </extensions> diff --git a/plugins/color-schemes/github-color-scheme/resources/META-INF/plugin.xml b/plugins/color-schemes/github-color-scheme/resources/META-INF/plugin.xml index f893a0db193d..10df8b907486 100644 --- a/plugins/color-schemes/github-color-scheme/resources/META-INF/plugin.xml +++ b/plugins/color-schemes/github-color-scheme/resources/META-INF/plugin.xml @@ -4,6 +4,9 @@ <vendor>JetBrains</vendor> <category>UI</category> <depends>com.intellij.modules.lang</depends> + <description> + Github editor color scheme for all IntelliJ-based IDEs. + </description> <extensions defaultExtensionNs="com.intellij"> <bundledColorScheme path="/colorSchemes/github"/> </extensions> diff --git a/plugins/color-schemes/monokai-color-scheme/resources/META-INF/plugin.xml b/plugins/color-schemes/monokai-color-scheme/resources/META-INF/plugin.xml index 6e184d4018a8..0992315462c4 100644 --- a/plugins/color-schemes/monokai-color-scheme/resources/META-INF/plugin.xml +++ b/plugins/color-schemes/monokai-color-scheme/resources/META-INF/plugin.xml @@ -4,6 +4,9 @@ <vendor>JetBrains</vendor> <category>UI</category> <depends>com.intellij.modules.lang</depends> + <description> + Monokai editor color scheme for all IntelliJ-based IDEs. + </description> <extensions defaultExtensionNs="com.intellij"> <bundledColorScheme path="/colorSchemes/monokai"/> </extensions> diff --git a/plugins/color-schemes/rails-casts-color-scheme/resources/META-INF/plugin.xml b/plugins/color-schemes/rails-casts-color-scheme/resources/META-INF/plugin.xml index 0d7048d61963..52a42baef335 100644 --- a/plugins/color-schemes/rails-casts-color-scheme/resources/META-INF/plugin.xml +++ b/plugins/color-schemes/rails-casts-color-scheme/resources/META-INF/plugin.xml @@ -4,6 +4,9 @@ <vendor>JetBrains</vendor> <category>UI</category> <depends>com.intellij.modules.lang</depends> + <description> + Railscasts editor color scheme for all IntelliJ-based IDEs. + </description> <extensions defaultExtensionNs="com.intellij"> <bundledColorScheme path="/colorSchemes/rails_casts"/> </extensions> diff --git a/plugins/color-schemes/twilight-color-scheme/resources/META-INF/plugin.xml b/plugins/color-schemes/twilight-color-scheme/resources/META-INF/plugin.xml index 34f6038defa4..666973d342d9 100644 --- a/plugins/color-schemes/twilight-color-scheme/resources/META-INF/plugin.xml +++ b/plugins/color-schemes/twilight-color-scheme/resources/META-INF/plugin.xml @@ -4,6 +4,9 @@ <vendor>JetBrains</vendor> <category>UI</category> <depends>com.intellij.modules.lang</depends> + <description> + Twilight editor color scheme for all IntelliJ-based IDEs. + </description> <extensions defaultExtensionNs="com.intellij"> <bundledColorScheme path="/colorSchemes/twilight"/> </extensions> diff --git a/plugins/color-schemes/vibrant-ink-color-scheme/resources/META-INF/plugin.xml b/plugins/color-schemes/vibrant-ink-color-scheme/resources/META-INF/plugin.xml index 53c6528d5a14..202f9f75a314 100644 --- a/plugins/color-schemes/vibrant-ink-color-scheme/resources/META-INF/plugin.xml +++ b/plugins/color-schemes/vibrant-ink-color-scheme/resources/META-INF/plugin.xml @@ -4,6 +4,9 @@ <vendor>JetBrains</vendor> <category>UI</category> <depends>com.intellij.modules.lang</depends> + <description> + VibrantInk editor color scheme for all IntelliJ-based IDEs. + </description> <extensions defaultExtensionNs="com.intellij"> <bundledColorScheme path="/colorSchemes/vibrant_ink"/> </extensions> diff --git a/plugins/color-schemes/warm-neon-color-scheme/resources/META-INF/plugin.xml b/plugins/color-schemes/warm-neon-color-scheme/resources/META-INF/plugin.xml index 29ea1ae757cf..ec36236de05e 100644 --- a/plugins/color-schemes/warm-neon-color-scheme/resources/META-INF/plugin.xml +++ b/plugins/color-schemes/warm-neon-color-scheme/resources/META-INF/plugin.xml @@ -4,6 +4,9 @@ <vendor>JetBrains</vendor> <category>UI</category> <depends>com.intellij.modules.lang</depends> + <description> + WarmNeon editor color scheme for all IntelliJ-based IDEs. + </description> <extensions defaultExtensionNs="com.intellij"> <bundledColorScheme path="/colorSchemes/WarmNeon"/> </extensions> diff --git a/plugins/devkit/devkit-core/gen/icons/DevkitIcons.java b/plugins/devkit/devkit-core/gen/org/jetbrains/idea/devkit/DevKitIcons.java index 12a0c8a0004a..b5892dce39d8 100644 --- a/plugins/devkit/devkit-core/gen/icons/DevkitIcons.java +++ b/plugins/devkit/devkit-core/gen/org/jetbrains/idea/devkit/DevKitIcons.java @@ -1,5 +1,5 @@ -// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -package icons; +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package org.jetbrains.idea.devkit; import com.intellij.ui.IconManager; import org.jetbrains.annotations.NotNull; @@ -10,9 +10,9 @@ import javax.swing.*; * NOTE THIS FILE IS AUTO-GENERATED * DO NOT EDIT IT BY HAND, run "Generate icon classes" configuration instead */ -public final class DevkitIcons { +public final class DevKitIcons { private static @NotNull Icon load(@NotNull String path, int cacheKey, int flags) { - return IconManager.getInstance().loadRasterizedIcon(path, DevkitIcons.class.getClassLoader(), cacheKey, flags); + return IconManager.getInstance().loadRasterizedIcon(path, DevKitIcons.class.getClassLoader(), cacheKey, flags); } /** 16x16 */ public static final @NotNull Icon Add_sdk = load("icons/add_sdk.svg", -983487671, 2); diff --git a/plugins/devkit/devkit-core/src/module/IdePluginModuleBuilder.kt b/plugins/devkit/devkit-core/src/module/IdePluginModuleBuilder.kt index fcbbca46d73e..52a07fbea7a9 100644 --- a/plugins/devkit/devkit-core/src/module/IdePluginModuleBuilder.kt +++ b/plugins/devkit/devkit-core/src/module/IdePluginModuleBuilder.kt @@ -221,7 +221,8 @@ class IdePluginModuleBuilder : StarterModuleBuilder() { "https://jb.gg/plugin-template") } - if (PluginManager.isPluginInstalled(PluginId.findId("org.intellij.scala"))) { + val scalaPluginId = PluginId.findId("org.intellij.scala") + if (scalaPluginId != null && PluginManager.isPluginInstalled(scalaPluginId)) { layout.row { hyperLink(DevKitBundle.message("module.builder.scala.github.template.link"), "https://github.com/JetBrains/sbt-idea-plugin") diff --git a/plugins/devkit/devkit-core/src/navigation/DescriptionTypeRelatedItemLineMarkerProvider.java b/plugins/devkit/devkit-core/src/navigation/DescriptionTypeRelatedItemLineMarkerProvider.java index 8edea9c87dbb..d4211bba1ff9 100644 --- a/plugins/devkit/devkit-core/src/navigation/DescriptionTypeRelatedItemLineMarkerProvider.java +++ b/plugins/devkit/devkit-core/src/navigation/DescriptionTypeRelatedItemLineMarkerProvider.java @@ -1,4 +1,4 @@ -// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package org.jetbrains.idea.devkit.navigation; import com.intellij.codeInsight.daemon.RelatedItemLineMarkerInfo; @@ -13,9 +13,9 @@ import com.intellij.psi.util.InheritanceUtil; import com.intellij.util.NotNullFunction; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.SortedList; -import icons.DevkitIcons; import org.jetbrains.annotations.NotNull; import org.jetbrains.idea.devkit.DevKitBundle; +import org.jetbrains.idea.devkit.DevKitIcons; import org.jetbrains.idea.devkit.inspections.DescriptionCheckerUtil; import org.jetbrains.idea.devkit.inspections.DescriptionType; import org.jetbrains.idea.devkit.inspections.InspectionDescriptionInfo; @@ -26,7 +26,7 @@ import java.util.Collections; import java.util.Comparator; import java.util.List; -public class DescriptionTypeRelatedItemLineMarkerProvider extends DevkitRelatedClassLineMarkerProviderBase { +final class DescriptionTypeRelatedItemLineMarkerProvider extends DevkitRelatedClassLineMarkerProviderBase { private static final NotNullFunction<PsiFile, Collection<? extends PsiElement>> CONVERTER = psiFile -> ContainerUtil.createMaybeSingletonList(psiFile); @@ -35,10 +35,10 @@ public class DescriptionTypeRelatedItemLineMarkerProvider extends DevkitRelatedC private final Option myDescriptionOption = new Option("devkit.description", DevKitBundle.message("gutter.related.option.description"), - DevkitIcons.Gutter.DescriptionFile); + DevKitIcons.Gutter.DescriptionFile); private final Option myBeforeAfterOption = new Option("devkit.beforeAfter", DevKitBundle.message("gutter.related.option.before.after.templates"), - DevkitIcons.Gutter.Diff); + DevKitIcons.Gutter.Diff); @Override public Option @NotNull [] getOptions() { @@ -105,7 +105,7 @@ public class DescriptionTypeRelatedItemLineMarkerProvider extends DevkitRelatedC PsiFile descriptionFile, Collection<? super RelatedItemLineMarkerInfo<?>> result) { final RelatedItemLineMarkerInfo<PsiElement> info = NavigationGutterIconBuilder - .create(DevkitIcons.Gutter.DescriptionFile, CONVERTER, RELATED_ITEM_PROVIDER) + .create(DevKitIcons.Gutter.DescriptionFile, CONVERTER, RELATED_ITEM_PROVIDER) .setTarget(descriptionFile) .setTooltipText(DevKitBundle.message("gutter.related.navigation.popup.description.tooltip")) .setAlignment(GutterIconRenderer.Alignment.RIGHT) @@ -130,7 +130,7 @@ public class DescriptionTypeRelatedItemLineMarkerProvider extends DevkitRelatedC //noinspection DialogTitleCapitalization final RelatedItemLineMarkerInfo<PsiElement> info = NavigationGutterIconBuilder - .create(DevkitIcons.Gutter.Diff, CONVERTER, RELATED_ITEM_PROVIDER) + .create(DevKitIcons.Gutter.Diff, CONVERTER, RELATED_ITEM_PROVIDER) .setTargets(templateFiles) .setPopupTitle(DevKitBundle.message("gutter.related.navigation.popup.template.title")) .setTooltipText(DevKitBundle.message("gutter.related.navigation.popup.template.tooltip")) diff --git a/plugins/devkit/devkit-core/src/navigation/ExtensionDeclarationRelatedItemLineMarkerProvider.java b/plugins/devkit/devkit-core/src/navigation/ExtensionDeclarationRelatedItemLineMarkerProvider.java index 0c360aab33b2..f5268f8a6ff6 100644 --- a/plugins/devkit/devkit-core/src/navigation/ExtensionDeclarationRelatedItemLineMarkerProvider.java +++ b/plugins/devkit/devkit-core/src/navigation/ExtensionDeclarationRelatedItemLineMarkerProvider.java @@ -1,12 +1,12 @@ -// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package org.jetbrains.idea.devkit.navigation; import com.intellij.codeInsight.daemon.RelatedItemLineMarkerInfo; import com.intellij.psi.PsiClass; import com.intellij.psi.PsiElement; -import icons.DevkitIcons; import org.jetbrains.annotations.NotNull; import org.jetbrains.idea.devkit.DevKitBundle; +import org.jetbrains.idea.devkit.DevKitIcons; import org.jetbrains.idea.devkit.util.ExtensionCandidate; import org.jetbrains.idea.devkit.util.ExtensionLocatorKt; @@ -21,10 +21,9 @@ public final class ExtensionDeclarationRelatedItemLineMarkerProvider extends Dev return DevKitBundle.message("gutter.related.extension.declaration"); } - @NotNull @Override - public Icon getIcon() { - return DevkitIcons.Gutter.Plugin; + public @NotNull Icon getIcon() { + return DevKitIcons.Gutter.Plugin; } @Override diff --git a/plugins/devkit/devkit-core/src/navigation/LineMarkerInfoHelper.java b/plugins/devkit/devkit-core/src/navigation/LineMarkerInfoHelper.java index ec3fb091f029..181822ec3c6f 100644 --- a/plugins/devkit/devkit-core/src/navigation/LineMarkerInfoHelper.java +++ b/plugins/devkit/devkit-core/src/navigation/LineMarkerInfoHelper.java @@ -1,4 +1,4 @@ -// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package org.jetbrains.idea.devkit.navigation; import com.intellij.codeInsight.daemon.RelatedItemLineMarkerInfo; @@ -19,11 +19,11 @@ import com.intellij.util.containers.ContainerUtil; import com.intellij.util.ui.UIUtil; import com.intellij.util.xml.DomElement; import com.intellij.util.xml.DomUtil; -import icons.DevkitIcons; import org.jetbrains.annotations.Nls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.PropertyKey; import org.jetbrains.idea.devkit.DevKitBundle; +import org.jetbrains.idea.devkit.DevKitIcons; import org.jetbrains.idea.devkit.dom.Extension; import org.jetbrains.idea.devkit.dom.ExtensionPoint; import org.jetbrains.idea.devkit.util.PointableCandidate; @@ -32,6 +32,7 @@ import java.util.Collection; import java.util.List; final class LineMarkerInfoHelper { + private static final NotNullFunction<PointableCandidate, Collection<? extends PsiElement>> CONVERTER = candidate -> ContainerUtil.createMaybeSingletonList(candidate.pointer.getElement()); private static final NotNullFunction<PointableCandidate, Collection<? extends GotoRelatedItem>> RELATED_ITEM_PROVIDER = @@ -49,8 +50,7 @@ final class LineMarkerInfoHelper { return getExtensionPointName(DomUtil.getDomElement(tag)); }); - @NotNull - private static String getExtensionPointName(DomElement element) { + private static @NotNull String getExtensionPointName(DomElement element) { if (!(element instanceof ExtensionPoint)) return "?"; return ((ExtensionPoint)element).getEffectiveQualifiedName(); } @@ -58,29 +58,26 @@ final class LineMarkerInfoHelper { private LineMarkerInfoHelper() { } - @NotNull - static RelatedItemLineMarkerInfo<PsiElement> createExtensionLineMarkerInfo(@NotNull List<? extends PointableCandidate> targets, - @NotNull PsiElement element) { + static @NotNull RelatedItemLineMarkerInfo<PsiElement> createExtensionLineMarkerInfo(@NotNull List<? extends PointableCandidate> targets, + @NotNull PsiElement element) { return createPluginLineMarkerInfo(targets, element, DevKitBundle.message("gutter.related.navigation.choose.extension"), EXTENSION_NAMER); } - @NotNull - static RelatedItemLineMarkerInfo<PsiElement> createExtensionPointLineMarkerInfo(@NotNull List<? extends PointableCandidate> targets, - @NotNull PsiElement element) { + static @NotNull RelatedItemLineMarkerInfo<PsiElement> createExtensionPointLineMarkerInfo(@NotNull List<? extends PointableCandidate> targets, + @NotNull PsiElement element) { return createPluginLineMarkerInfo(targets, element, DevKitBundle.message("gutter.related.navigation.choose.extension.point"), EXTENSION_POINT_NAMER); } - @NotNull - private static RelatedItemLineMarkerInfo<PsiElement> createPluginLineMarkerInfo(@NotNull List<? extends PointableCandidate> targets, - @NotNull PsiElement element, - @Nls(capitalization = Nls.Capitalization.Title) String popup, - NullableFunction<PointableCandidate, String> namer) { + private static @NotNull RelatedItemLineMarkerInfo<PsiElement> createPluginLineMarkerInfo(@NotNull List<? extends PointableCandidate> targets, + @NotNull PsiElement element, + @Nls(capitalization = Nls.Capitalization.Title) String popup, + NullableFunction<PointableCandidate, String> namer) { return NavigationGutterIconBuilder - .create(DevkitIcons.Gutter.Plugin, CONVERTER, RELATED_ITEM_PROVIDER) + .create(DevKitIcons.Gutter.Plugin, CONVERTER, RELATED_ITEM_PROVIDER) .setTargets(targets) .setPopupTitle(popup) .setNamer(namer) @@ -88,9 +85,8 @@ final class LineMarkerInfoHelper { .createLineMarkerInfo(element); } - @NotNull - private static NullableFunction<PointableCandidate, String> createNamer(@PropertyKey(resourceBundle = DevKitBundle.BUNDLE) String tooltipPatternPropertyName, - NotNullFunction<? super XmlTag, String> nameProvider) { + private static @NotNull NullableFunction<PointableCandidate, String> createNamer(@PropertyKey(resourceBundle = DevKitBundle.BUNDLE) String tooltipPatternPropertyName, + NotNullFunction<? super XmlTag, String> nameProvider) { return target -> { XmlTag tag = target.pointer.getElement(); if (tag == null) { diff --git a/plugins/devkit/devkit-core/src/references/DevKitRelatedPropertiesProvider.java b/plugins/devkit/devkit-core/src/references/DevKitRelatedPropertiesProvider.java index dc804bf51e81..f3bc00efbea0 100644 --- a/plugins/devkit/devkit-core/src/references/DevKitRelatedPropertiesProvider.java +++ b/plugins/devkit/devkit-core/src/references/DevKitRelatedPropertiesProvider.java @@ -1,4 +1,4 @@ -// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package org.jetbrains.idea.devkit.references; import com.intellij.codeInsight.daemon.RelatedItemLineMarkerInfo; @@ -21,9 +21,9 @@ import com.intellij.util.containers.ContainerUtil; import com.intellij.util.xml.DomElement; import com.intellij.util.xml.DomUtil; import com.intellij.util.xml.GenericDomValue; -import icons.DevkitIcons; import org.jetbrains.annotations.NotNull; import org.jetbrains.idea.devkit.DevKitBundle; +import org.jetbrains.idea.devkit.DevKitIcons; import org.jetbrains.idea.devkit.dom.ActionOrGroup; import org.jetbrains.idea.devkit.dom.OverrideText; import org.jetbrains.idea.devkit.navigation.DevkitRelatedLineMarkerProviderBase; @@ -46,16 +46,16 @@ import java.util.Collections; * * @see MessageBundleReferenceContributor */ -public final class DevKitRelatedPropertiesProvider extends DevkitRelatedLineMarkerProviderBase { +final class DevKitRelatedPropertiesProvider extends DevkitRelatedLineMarkerProviderBase { + @Override public String getName() { return DevKitBundle.message("line.marker.related.property.description"); } - @NotNull @Override - public Icon getIcon() { - return DevkitIcons.Gutter.Properties; + public @NotNull Icon getIcon() { + return DevKitIcons.Gutter.Properties; } @Override @@ -99,7 +99,7 @@ public final class DevKitRelatedPropertiesProvider extends DevkitRelatedLineMark if (query.findFirst() == null) return; result.add( - NavigationGutterIconBuilder.create(DevkitIcons.Gutter.Properties, + NavigationGutterIconBuilder.create(DevKitIcons.Gutter.Properties, e -> Collections.singletonList(((PsiElement)e)), e -> Collections.singletonList(new GotoRelatedItem((PsiElement)e))) .setTargets(NotNullLazyValue.createValue(() -> { diff --git a/plugins/devkit/devkit-core/src/run/PluginRunConfiguration.java b/plugins/devkit/devkit-core/src/run/PluginRunConfiguration.java index b2c4bb0b8d20..3bf6d0bab9ca 100644 --- a/plugins/devkit/devkit-core/src/run/PluginRunConfiguration.java +++ b/plugins/devkit/devkit-core/src/run/PluginRunConfiguration.java @@ -211,7 +211,7 @@ public class PluginRunConfiguration extends RunConfigurationBase<Element> implem else { // log4j, jdom and trove4j needed for running on branch 202 and older final List<String> jars = List.of("log4j.jar", "jdom.jar", "trove4j.jar", - "openapi.jar", "util.jar", "bootstrap.jar", "idea_rt.jar", "idea.jar"); + "openapi.jar", "util.jar", "util_rt.jar", "bootstrap.jar", "idea_rt.jar", "idea.jar"); for (String path : jars) { params.getClassPath().add(ideaJdkHome + FileUtil.toSystemDependentName("/lib/" + path)); } diff --git a/plugins/devkit/devkit-core/src/testAssistant/TestDataLineMarkerProvider.java b/plugins/devkit/devkit-core/src/testAssistant/TestDataLineMarkerProvider.java index e3b6a627acd2..e943ce1cd000 100644 --- a/plugins/devkit/devkit-core/src/testAssistant/TestDataLineMarkerProvider.java +++ b/plugins/devkit/devkit-core/src/testAssistant/TestDataLineMarkerProvider.java @@ -116,7 +116,8 @@ public final class TestDataLineMarkerProvider extends LineMarkerProviderDescript currentPsiClass.equals(psiClass) ? annotationValue(currentPsiClass, TestFrameworkConstants.TEST_METADATA_ANNOTATION_QUALIFIED_NAME) : null; - testDataPath = annotationValue(currentPsiClass, TestFrameworkConstants.TEST_DATA_PATH_ANNOTATION_QUALIFIED_NAME); + String localTestDataPath = annotationValue(currentPsiClass, TestFrameworkConstants.TEST_DATA_PATH_ANNOTATION_QUALIFIED_NAME); + testDataPath = localTestDataPath != null ? localTestDataPath : testDataPath; PsiClass containingClass = currentPsiClass.getContainingClass(); currentPsiClass = containingClass; } diff --git a/plugins/devkit/devkit-java-tests/testData/referenceCollector/TestMetadataDataNoTopLevel.java b/plugins/devkit/devkit-java-tests/testData/referenceCollector/TestMetadataDataNoTopLevel.java new file mode 100644 index 000000000000..16750a92ed3e --- /dev/null +++ b/plugins/devkit/devkit-java-tests/testData/referenceCollector/TestMetadataDataNoTopLevel.java @@ -0,0 +1,28 @@ +public class ATest extends LightCodeInsightFixtureTestCase { + + @com.intellij.testFramework.TestDataPath("$CONTENT_ROOT") + @org.jetbrains.kotlin.test.TestMetadata("testData/refactoring/introduceVariable") + public static class IntroduceVariable extends ATest { + private void runTest(String testDataFilePath) throws Exception { + + } + + @org.jetbrains.kotlin.test.TestMetadata("AnonymousType.kt") + public void testAnonymousType() throws Exception { + runTest("testData/refactoring/introduceVariable/AnonymousType.kt"); + } + + @org.jetbrains.kotlin.test.TestMetadata("testData/refactoring/introduceVariable/extra") + public static class IntroduceExtraVariable extends ATest { + private void runTest(String testDataFilePath) throws Exception { + + } + + @org.jetbrains.kotlin.test.TestMetadata("AnonymousType.kt") + public void testAnonymousType() throws Exception { + runTest("testData/refactoring/introduceVariable/extra/AnonymousType.kt"); + } + } + } + +} diff --git a/plugins/devkit/devkit-java-tests/testSrc/org/jetbrains/idea/devkit/navigation/DescriptionTypeRelatedItemLineMarkerProviderTest.java b/plugins/devkit/devkit-java-tests/testSrc/org/jetbrains/idea/devkit/navigation/DescriptionTypeRelatedItemLineMarkerProviderTest.java index 13e34a29be0b..d8d2703e0537 100644 --- a/plugins/devkit/devkit-java-tests/testSrc/org/jetbrains/idea/devkit/navigation/DescriptionTypeRelatedItemLineMarkerProviderTest.java +++ b/plugins/devkit/devkit-java-tests/testSrc/org/jetbrains/idea/devkit/navigation/DescriptionTypeRelatedItemLineMarkerProviderTest.java @@ -1,9 +1,9 @@ -// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package org.jetbrains.idea.devkit.navigation; import com.intellij.codeInsight.daemon.GutterMark; import com.intellij.testFramework.TestDataPath; -import icons.DevkitIcons; +import org.jetbrains.idea.devkit.DevKitIcons; import org.jetbrains.idea.devkit.DevkitJavaTestsUtil; import java.util.Collections; @@ -38,8 +38,8 @@ public class DescriptionTypeRelatedItemLineMarkerProviderTest extends Descriptio List<GutterMark> gutters = myFixture.findAllGutters("MyIntentionActionWithDescription.java"); assertThat(gutters.size()).isEqualTo(2); Collections.sort(gutters, Comparator.comparing(GutterMark::getTooltipText)); - DevKitGutterTargetsChecker.checkGutterTargets(gutters.get(1), "Description", DevkitIcons.Gutter.DescriptionFile, "description.html"); - DevKitGutterTargetsChecker.checkGutterTargets(gutters.get(0), "Before/After Templates", DevkitIcons.Gutter.Diff, + DevKitGutterTargetsChecker.checkGutterTargets(gutters.get(1), "Description", DevKitIcons.Gutter.DescriptionFile, "description.html"); + DevKitGutterTargetsChecker.checkGutterTargets(gutters.get(0), "Before/After Templates", DevKitIcons.Gutter.Diff, "after.java.template", "before.java.template"); } }
\ No newline at end of file diff --git a/plugins/devkit/devkit-java-tests/testSrc/org/jetbrains/idea/devkit/navigation/ExtensionPointDeclarationRelatedItemLineMarkerProviderTest.java b/plugins/devkit/devkit-java-tests/testSrc/org/jetbrains/idea/devkit/navigation/ExtensionPointDeclarationRelatedItemLineMarkerProviderTest.java index ca8538873e4b..c8ed038cc979 100644 --- a/plugins/devkit/devkit-java-tests/testSrc/org/jetbrains/idea/devkit/navigation/ExtensionPointDeclarationRelatedItemLineMarkerProviderTest.java +++ b/plugins/devkit/devkit-java-tests/testSrc/org/jetbrains/idea/devkit/navigation/ExtensionPointDeclarationRelatedItemLineMarkerProviderTest.java @@ -1,4 +1,4 @@ -// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package org.jetbrains.idea.devkit.navigation; import com.intellij.codeInsight.daemon.GutterMark; @@ -14,7 +14,7 @@ import com.intellij.ui.ColorUtil; import com.intellij.ui.components.JBList; import com.intellij.util.PathUtil; import com.intellij.util.ui.UIUtil; -import icons.DevkitIcons; +import org.jetbrains.idea.devkit.DevKitIcons; import org.jetbrains.idea.devkit.DevkitJavaTestsUtil; @TestDataPath("$CONTENT_ROOT/testData/navigation/extensionPointDeclaration") @@ -73,6 +73,6 @@ public class ExtensionPointDeclarationRelatedItemLineMarkerProviderTest extends "<font color=\"" + color + "\">[" + module.getName() + "]</font><br></body></html>"; final GutterMark gutter = myFixture.findGutter(filePath); - DevKitGutterTargetsChecker.checkGutterTargets(gutter, expectedTooltip, DevkitIcons.Gutter.Plugin, "extensionPoint"); + DevKitGutterTargetsChecker.checkGutterTargets(gutter, expectedTooltip, DevKitIcons.Gutter.Plugin, "extensionPoint"); } }
\ No newline at end of file diff --git a/plugins/devkit/devkit-java-tests/testSrc/org/jetbrains/idea/devkit/testAssistant/TestDataReferenceCollectorTest.java b/plugins/devkit/devkit-java-tests/testSrc/org/jetbrains/idea/devkit/testAssistant/TestDataReferenceCollectorTest.java index d868f92a1f00..35059d9002d8 100644 --- a/plugins/devkit/devkit-java-tests/testSrc/org/jetbrains/idea/devkit/testAssistant/TestDataReferenceCollectorTest.java +++ b/plugins/devkit/devkit-java-tests/testSrc/org/jetbrains/idea/devkit/testAssistant/TestDataReferenceCollectorTest.java @@ -47,6 +47,13 @@ public class TestDataReferenceCollectorTest extends LightJavaCodeInsightFixtureT assertEquals("/src/testData/refactoring/introduceVariable/extra/AnonymousType.kt", references.get(2)); } + public void testTestMetadataDataNoTopLevel() { + final List<String> references = doTest(); + assertEquals(2, references.size()); + assertEquals("/src/testData/refactoring/introduceVariable/AnonymousType.kt", references.get(0)); + assertEquals("/src/testData/refactoring/introduceVariable/extra/AnonymousType.kt", references.get(1)); + } + public void testAbstractMethod() { final List<String> references = doTest(); assertEquals(1, references.size()); diff --git a/plugins/devkit/devkit-tests/src/org/jetbrains/idea/devkit/navigation/DescriptionTypeRelatedItemLineMarkerProviderTestBase.java b/plugins/devkit/devkit-tests/src/org/jetbrains/idea/devkit/navigation/DescriptionTypeRelatedItemLineMarkerProviderTestBase.java index 9a022ac713c2..5f5dd379475f 100644 --- a/plugins/devkit/devkit-tests/src/org/jetbrains/idea/devkit/navigation/DescriptionTypeRelatedItemLineMarkerProviderTestBase.java +++ b/plugins/devkit/devkit-tests/src/org/jetbrains/idea/devkit/navigation/DescriptionTypeRelatedItemLineMarkerProviderTestBase.java @@ -1,4 +1,4 @@ -// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package org.jetbrains.idea.devkit.navigation; import com.intellij.codeInsight.daemon.GutterMark; @@ -7,8 +7,8 @@ import com.intellij.testFramework.builders.JavaModuleFixtureBuilder; import com.intellij.testFramework.fixtures.JavaCodeInsightFixtureTestCase; import com.intellij.ui.components.JBList; import com.intellij.util.PathUtil; -import icons.DevkitIcons; import org.jetbrains.annotations.NotNull; +import org.jetbrains.idea.devkit.DevKitIcons; public abstract class DescriptionTypeRelatedItemLineMarkerProviderTestBase extends JavaCodeInsightFixtureTestCase { @Override @@ -22,6 +22,6 @@ public abstract class DescriptionTypeRelatedItemLineMarkerProviderTestBase exten protected void doTestInspectionDescription(@NotNull String inspectionFile, @NotNull String descriptionFile) { myFixture.copyDirectoryToProject("inspectionDescriptions", "inspectionDescriptions"); GutterMark gutter = myFixture.findGutter(inspectionFile); - DevKitGutterTargetsChecker.checkGutterTargets(gutter, "Description", DevkitIcons.Gutter.DescriptionFile, descriptionFile); + DevKitGutterTargetsChecker.checkGutterTargets(gutter, "Description", DevKitIcons.Gutter.DescriptionFile, descriptionFile); } } diff --git a/plugins/devkit/devkit-tests/src/org/jetbrains/idea/devkit/navigation/ExtensionDeclarationRelatedItemLineMarkerProviderTestBase.java b/plugins/devkit/devkit-tests/src/org/jetbrains/idea/devkit/navigation/ExtensionDeclarationRelatedItemLineMarkerProviderTestBase.java index e7a7cce66d6a..839047a23da2 100644 --- a/plugins/devkit/devkit-tests/src/org/jetbrains/idea/devkit/navigation/ExtensionDeclarationRelatedItemLineMarkerProviderTestBase.java +++ b/plugins/devkit/devkit-tests/src/org/jetbrains/idea/devkit/navigation/ExtensionDeclarationRelatedItemLineMarkerProviderTestBase.java @@ -1,4 +1,4 @@ -// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package org.jetbrains.idea.devkit.navigation; import com.intellij.codeInsight.daemon.GutterMark; @@ -12,10 +12,11 @@ import com.intellij.ui.ColorUtil; import com.intellij.ui.components.JBList; import com.intellij.util.PathUtil; import com.intellij.util.ui.UIUtil; -import icons.DevkitIcons; import org.jetbrains.annotations.NotNull; +import org.jetbrains.idea.devkit.DevKitIcons; public abstract class ExtensionDeclarationRelatedItemLineMarkerProviderTestBase extends JavaCodeInsightFixtureTestCase { + @Override protected void tuneFixture(JavaModuleFixtureBuilder moduleBuilder) { String extensionsJar = PathUtil.getJarPathForClass(ExtensionPointName.class); @@ -38,7 +39,7 @@ public abstract class ExtensionDeclarationRelatedItemLineMarkerProviderTestBase "<font color=\"" + color + "\">[" + module.getName() + "]</font><br></body></html>"; GutterMark gutter = myFixture.findGutter(file); - DevKitGutterTargetsChecker.checkGutterTargets(gutter, expectedTooltip, DevkitIcons.Gutter.Plugin, "myEp"); + DevKitGutterTargetsChecker.checkGutterTargets(gutter, expectedTooltip, DevKitIcons.Gutter.Plugin, "myEp"); } protected void doTestInvalidExtension(@NotNull String file) { diff --git a/plugins/git4idea/resources/META-INF/plugin.xml b/plugins/git4idea/resources/META-INF/plugin.xml index e2ae7b6aaaaa..4041680a03b3 100644 --- a/plugins/git4idea/resources/META-INF/plugin.xml +++ b/plugins/git4idea/resources/META-INF/plugin.xml @@ -537,9 +537,11 @@ <statistics.projectUsagesCollector implementation="git4idea.GitStatisticsCollector"/> <statistics.counterUsagesCollector implementationClass="git4idea.GitBranchesUsageCollector"/> <statistics.counterUsagesCollector implementationClass="git4idea.GitStashUsageCollector"/> + <statistics.counterUsagesCollector implementationClass="git4idea.GitRefreshUsageCollector"/> <statistics.notificationIdsHolder implementation="git4idea.GitNotificationIdsHolder"/> <vcsRepositoryInitializer implementation="git4idea.repo.GitRepositoryInitializer"/> <gitRepositoryInitializer implementation="git4idea.repo.GitRepositoryInitializerImpl"/> + <gitSilentFileAdder implementation="git4idea.repo.GitSilentFileAdderProviderImpl"/> <openapi.vcs.changes.actions.diff.ChangeDiffRequestProvider implementation="git4idea.diff.GitSubmoduleDiffRequestProvider"/> <vcs.ignoredFilesHolder implementation="git4idea.repo.GitIgnoredFilesHolder$Provider"/> diff --git a/plugins/git4idea/resources/messages/GitBundle.properties b/plugins/git4idea/resources/messages/GitBundle.properties index a224e5440dde..084f16667532 100644 --- a/plugins/git4idea/resources/messages/GitBundle.properties +++ b/plugins/git4idea/resources/messages/GitBundle.properties @@ -632,6 +632,7 @@ action.Git.BrowseRepoAtRevision.text=Show Repository at Revision action.Git.Log.text=Show Git Repository Log\u2026 action.Git.Init.text=Create Git Repository\u2026 action.Git.Init.error=Git init failed +action.Git.Init.Stage.error=Adding files to Git failed checkbox.dont.warn.again=Don't warn again checkbox.run.git.hooks=Run Git hooks tooltip.run.git.hooks=If unchecked, Git hooks will be skipped with the '--no-verify' parameter diff --git a/plugins/git4idea/src/git4idea/GitNotificationIdsHolder.kt b/plugins/git4idea/src/git4idea/GitNotificationIdsHolder.kt index 555079bb49a4..e1cea26bc76d 100644 --- a/plugins/git4idea/src/git4idea/GitNotificationIdsHolder.kt +++ b/plugins/git4idea/src/git4idea/GitNotificationIdsHolder.kt @@ -48,6 +48,7 @@ class GitNotificationIdsHolder : NotificationIdsHolder { FIX_TRACKED_NOT_ON_BRANCH, INIT_ERROR, INIT_FAILED, + INIT_STAGE_FAILED, LOCAL_CHANGES_NOT_RESTORED, MERGE_ABORT_FAILED, MERGE_ABORT_SUCCESS, @@ -147,6 +148,7 @@ class GitNotificationIdsHolder : NotificationIdsHolder { const val FIX_TRACKED_NOT_ON_BRANCH = "git.fix.tracked.not.on.branch" const val INIT_ERROR = "git.init.error" const val INIT_FAILED = "git.init.failed" + const val INIT_STAGE_FAILED = "git.init.stage.failed" const val LOCAL_CHANGES_NOT_RESTORED = "git.local.changes.not.restored" const val MERGE_ABORT_FAILED = "git.merge.abort.failed" const val MERGE_ABORT_SUCCESS ="git.merge.abort.success" diff --git a/plugins/git4idea/src/git4idea/GitRefreshUsageCollector.kt b/plugins/git4idea/src/git4idea/GitRefreshUsageCollector.kt new file mode 100644 index 000000000000..ae197dbe73b8 --- /dev/null +++ b/plugins/git4idea/src/git4idea/GitRefreshUsageCollector.kt @@ -0,0 +1,36 @@ +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package git4idea + +import com.intellij.internal.statistic.StructuredIdeActivity +import com.intellij.internal.statistic.eventLog.EventLogGroup +import com.intellij.internal.statistic.eventLog.events.EventFields +import com.intellij.internal.statistic.service.fus.collectors.CounterUsagesCollector +import com.intellij.openapi.project.Project + +class GitRefreshUsageCollector : CounterUsagesCollector() { + override fun getGroup(): EventLogGroup = GROUP + + companion object { + private val GROUP: EventLogGroup = EventLogGroup("git.status.refresh", 1) + + private val IS_FULL_REFRESH_FIELD = EventFields.Boolean("is_full_refresh") + private val STATUS_REFRESH = GROUP.registerIdeActivity(activityName = "status.refresh", + startEventAdditionalFields = arrayOf(IS_FULL_REFRESH_FIELD)) + private val UNTRACKED_REFRESH = GROUP.registerIdeActivity(activityName = "untracked.refresh", + startEventAdditionalFields = arrayOf(IS_FULL_REFRESH_FIELD)) + + @JvmStatic + fun logStatusRefresh(project: Project, everythingDirty: Boolean): StructuredIdeActivity { + return STATUS_REFRESH.started(project) { + listOf(IS_FULL_REFRESH_FIELD.with(everythingDirty)) + } + } + + @JvmStatic + fun logUntrackedRefresh(project: Project, everythingDirty: Boolean): StructuredIdeActivity { + return UNTRACKED_REFRESH.started(project) { + listOf(IS_FULL_REFRESH_FIELD.with(everythingDirty)) + } + } + } +}
\ No newline at end of file diff --git a/plugins/git4idea/src/git4idea/GitStatisticsCollector.kt b/plugins/git4idea/src/git4idea/GitStatisticsCollector.kt index 46dd6470520d..9bdfeb289ffc 100644 --- a/plugins/git4idea/src/git4idea/GitStatisticsCollector.kt +++ b/plugins/git4idea/src/git4idea/GitStatisticsCollector.kt @@ -128,7 +128,7 @@ class GitStatisticsCollector : ProjectUsagesCollector() { } companion object { - private val GROUP = EventLogGroup("git.configuration", 9) + private val GROUP = EventLogGroup("git.configuration", 10) private val REPO_SYNC_VALUE: EnumEventField<Value> = EventFields.Enum("value", Value::class.java) { it.name.lowercase() } private val REPO_SYNC: VarargEventId = GROUP.registerVarargEvent("repo.sync", REPO_SYNC_VALUE) @@ -190,26 +190,6 @@ class GitStatisticsCollector : ProjectUsagesCollector() { return null } - - private val IS_FULL_REFRESH_FIELD = EventFields.Boolean("is_full_refresh") - private val STATUS_REFRESH = GROUP.registerIdeActivity(activityName = "status.refresh", - startEventAdditionalFields = arrayOf(IS_FULL_REFRESH_FIELD)) - private val UNTRACKED_REFRESH = GROUP.registerIdeActivity(activityName = "untracked.refresh", - startEventAdditionalFields = arrayOf(IS_FULL_REFRESH_FIELD)) - - @JvmStatic - fun logStatusRefresh(project: Project, everythingDirty: Boolean): StructuredIdeActivity { - return STATUS_REFRESH.started(project) { - listOf(IS_FULL_REFRESH_FIELD.with(everythingDirty)) - } - } - - @JvmStatic - fun logUntrackedRefresh(project: Project, everythingDirty: Boolean): StructuredIdeActivity { - return UNTRACKED_REFRESH.started(project) { - listOf(IS_FULL_REFRESH_FIELD.with(everythingDirty)) - } - } } } diff --git a/plugins/git4idea/src/git4idea/actions/GitInit.java b/plugins/git4idea/src/git4idea/actions/GitInit.java index b8ff63e95568..5b062b40f14e 100644 --- a/plugins/git4idea/src/git4idea/actions/GitInit.java +++ b/plugins/git4idea/src/git4idea/actions/GitInit.java @@ -91,4 +91,9 @@ public class GitInit extends DumbAwareAction { manager.setDirectoryMappings(VcsUtil.addMapping(manager.getDirectoryMappings(), path, GitVcs.NAME)); VcsDirtyScopeManager.getInstance(project).dirDirtyRecursively(root); } + + public static void configureVcsMappings(@NotNull Project project, @NotNull VirtualFile root) { + ProjectLevelVcsManager manager = ProjectLevelVcsManager.getInstance(project); + manager.setDirectoryMappings(VcsUtil.addMapping(manager.getDirectoryMappings(), root.getPath(), GitVcs.NAME)); + } } diff --git a/plugins/git4idea/src/git4idea/actions/GitQuickActionsToolbarPopup.kt b/plugins/git4idea/src/git4idea/actions/GitQuickActionsToolbarPopup.kt index a9051c27e05a..bf8a00c469ef 100644 --- a/plugins/git4idea/src/git4idea/actions/GitQuickActionsToolbarPopup.kt +++ b/plugins/git4idea/src/git4idea/actions/GitQuickActionsToolbarPopup.kt @@ -55,21 +55,8 @@ internal class GitQuickActionsToolbarPopup : VcsQuickActionsToolbarPopup() { presentation.isEnabledAndVisible = true } - val repo = GitRepositoryManager.getInstance(project).repositories.isNotEmpty() - presentation.icon = if (repo) { - AllIcons.Actions.More.toSize(ActionToolbar.DEFAULT_MINIMUM_BUTTON_SIZE) - } - else { - AllIcons.Vcs.BranchNode - } - - presentation.text = if (repo) { - "" - } - else { - GitBundle.message("action.Vcs.Toolbar.ShowMoreActions.text") + " " - } + presentation.icon = AllIcons.Actions.More.toSize(ActionToolbar.DEFAULT_MINIMUM_BUTTON_SIZE) } class MyGitRepositoryListener(val project: Project) : VcsRepositoryMappingListener { diff --git a/plugins/git4idea/src/git4idea/ignore/GitIgnoreInStoreDirGenerator.kt b/plugins/git4idea/src/git4idea/ignore/GitIgnoreInStoreDirGenerator.kt index 82de40192d95..ca1d0939517f 100644 --- a/plugins/git4idea/src/git4idea/ignore/GitIgnoreInStoreDirGenerator.kt +++ b/plugins/git4idea/src/git4idea/ignore/GitIgnoreInStoreDirGenerator.kt @@ -104,7 +104,7 @@ class GitIgnoreInStoreDirGenerator(private val project: Project) : Disposable { } } - private fun generateGitignoreInStoreDirIfNeeded() { + fun generateGitignoreInStoreDirIfNeeded() { if (!needGenerate.compareAndSet(true, false)) return val projectConfigDirPath = project.stateStore.directoryStorePath diff --git a/plugins/git4idea/src/git4idea/repo/GitRepositoryInitializerImpl.java b/plugins/git4idea/src/git4idea/repo/GitRepositoryInitializerImpl.java index ae29f5a58649..d2d61c33caa6 100644 --- a/plugins/git4idea/src/git4idea/repo/GitRepositoryInitializerImpl.java +++ b/plugins/git4idea/src/git4idea/repo/GitRepositoryInitializerImpl.java @@ -1,9 +1,11 @@ // Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package git4idea.repo; +import com.intellij.configurationStore.StoreUtil; import com.intellij.openapi.GitRepositoryInitializer; import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.project.Project; +import com.intellij.openapi.vcs.VcsException; import com.intellij.openapi.vcs.VcsNotifier; import com.intellij.openapi.vfs.VirtualFile; import git4idea.GitUtil; @@ -11,13 +13,18 @@ import git4idea.actions.GitInit; import git4idea.commands.Git; import git4idea.commands.GitCommandResult; import git4idea.i18n.GitBundle; +import git4idea.ignore.GitIgnoreInStoreDirGenerator; +import git4idea.util.GitFileUtils; import org.jetbrains.annotations.NotNull; +import java.util.Collections; + import static git4idea.GitNotificationIdsHolder.INIT_FAILED; +import static git4idea.GitNotificationIdsHolder.INIT_STAGE_FAILED; public class GitRepositoryInitializerImpl implements GitRepositoryInitializer { @Override - public void initRepository(@NotNull Project project, @NotNull VirtualFile root) { + public void initRepository(@NotNull Project project, @NotNull VirtualFile root, boolean addFilesToVcs) { ProgressManager.progress2(GitBundle.message("progress.title.creating.git.repository")); GitCommandResult result = Git.getInstance().init(project, root); @@ -27,7 +34,21 @@ public class GitRepositoryInitializerImpl implements GitRepositoryInitializer { return; } - GitInit.refreshAndConfigureVcsMappings(project, root, root.getPath()); + GitInit.configureVcsMappings(project, root); GitUtil.generateGitignoreFileIfNeeded(project, root); + // make sure .idea/.gitignore is created before adding files + project.getService(GitIgnoreInStoreDirGenerator.class).generateGitignoreInStoreDirIfNeeded(); + + if (addFilesToVcs) { + StoreUtil.saveSettings(project, true); // ensure vcs.xml is up-to-date + + try { + GitFileUtils.addFiles(project, root, Collections.singletonList(root)); + } + catch (VcsException e) { + VcsNotifier.getInstance(project).notifyError(INIT_STAGE_FAILED, GitBundle.message("action.Git.Init.Stage.error"), + result.getErrorOutputAsHtmlString(), true); + } + } } } diff --git a/plugins/git4idea/src/git4idea/repo/GitSilentFileAdderProvider.kt b/plugins/git4idea/src/git4idea/repo/GitSilentFileAdderProvider.kt new file mode 100644 index 000000000000..90d187e1e17d --- /dev/null +++ b/plugins/git4idea/src/git4idea/repo/GitSilentFileAdderProvider.kt @@ -0,0 +1,88 @@ +// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +package git4idea.repo + +import com.intellij.openapi.GitSilentFileAdder +import com.intellij.openapi.GitSilentFileAdderProvider +import com.intellij.openapi.diagnostic.logger +import com.intellij.openapi.progress.util.BackgroundTaskUtil +import com.intellij.openapi.project.Project +import com.intellij.openapi.vcs.FilePath +import com.intellij.openapi.vcs.ProjectLevelVcsManager +import com.intellij.openapi.vcs.VcsException +import com.intellij.openapi.vcs.VcsFileListenerContextHelper +import com.intellij.openapi.vfs.VirtualFile +import com.intellij.vcsUtil.VcsUtil +import git4idea.GitUtil +import git4idea.GitVcs +import git4idea.util.GitFileUtils +import java.io.File +import java.nio.file.Path + +class GitSilentFileAdderProviderImpl(private val project: Project) : GitSilentFileAdderProvider { + override fun create(): GitSilentFileAdder = GitSilentFileAdderImpl(project) +} + +class GitSilentFileAdderImpl(private val project: Project) : GitSilentFileAdder { + private val gitVcs = GitVcs.getInstance(project) + private val vcsManager = ProjectLevelVcsManager.getInstance(project) + private val vcsFileListenerContextHelper = VcsFileListenerContextHelper.getInstance(project) + + private val pendingAddition: MutableSet<FilePath> = HashSet() + + override fun markFileForAdding(path: String, isDirectory: Boolean) { + addFile(VcsUtil.getFilePath(path, isDirectory)) + } + + override fun markFileForAdding(file: VirtualFile) { + if (file.isInLocalFileSystem) { + addFile(VcsUtil.getFilePath(file)) + } + } + + override fun markFileForAdding(file: File, isDirectory: Boolean) { + addFile(VcsUtil.getFilePath(file, isDirectory)) + } + + override fun markFileForAdding(path: Path, isDirectory: Boolean) { + addFile(VcsUtil.getFilePath(path, isDirectory)) + } + + private fun addFile(filePath: FilePath) { + val vcsRoot = vcsManager.getVcsRootObjectFor(filePath) + if (vcsRoot == null || vcsRoot.vcs != gitVcs) return + + if (filePath.isDirectory) { + vcsFileListenerContextHelper.ignoreAddedRecursive(listOf(filePath)) + } + else { + vcsFileListenerContextHelper.ignoreAdded(listOf(filePath)) + } + + pendingAddition.add(filePath) + } + + override fun finish() { + vcsFileListenerContextHelper.clearContext() + + val filesToAdd = pendingAddition.toList() + pendingAddition.clear() + + @Suppress("IncorrectParentDisposable") + BackgroundTaskUtil.executeOnPooledThread(project) { addToVcs(filesToAdd) } + } + + /** + * Called on pooled thread when all operations are completed. + */ + private fun addToVcs(filePaths: Collection<FilePath>) { + val map = GitUtil.sortFilePathsByGitRoot(project, filePaths) + for ((root, rootPaths) in map) { + try { + GitFileUtils.addPaths(project, root, rootPaths) + } + catch (e: VcsException) { + logger<GitSilentFileAdderImpl>().warn(e) + } + } + } +}
\ No newline at end of file diff --git a/plugins/git4idea/src/git4idea/repo/GitUntrackedFilesHolder.java b/plugins/git4idea/src/git4idea/repo/GitUntrackedFilesHolder.java index 17014c9c5c95..e7fccfd8cb10 100644 --- a/plugins/git4idea/src/git4idea/repo/GitUntrackedFilesHolder.java +++ b/plugins/git4idea/src/git4idea/repo/GitUntrackedFilesHolder.java @@ -25,7 +25,7 @@ import com.intellij.util.ui.update.MergingUpdateQueue; import com.intellij.util.ui.update.Update; import com.intellij.vcsUtil.VcsUtil; import git4idea.GitContentRevision; -import git4idea.GitStatisticsCollector; +import git4idea.GitRefreshUsageCollector; import git4idea.index.GitIndexStatusUtilKt; import git4idea.index.LightFileStatus.StatusRecord; import git4idea.status.GitRefreshListener; @@ -243,7 +243,7 @@ public class GitUntrackedFilesHolder implements Disposable { BackgroundTaskUtil.syncPublisher(myProject, GitRefreshListener.TOPIC).progressStarted(); try { boolean everythingDirty = dirtyFiles == null || dirtyFiles.contains(VcsUtil.getFilePath(myRoot)); - StructuredIdeActivity activity = GitStatisticsCollector.logUntrackedRefresh(myProject, everythingDirty); + StructuredIdeActivity activity = GitRefreshUsageCollector.logUntrackedRefresh(myProject, everythingDirty); RefreshResult result = refreshFiles(dirtyFiles); activity.finished(); diff --git a/plugins/git4idea/src/git4idea/status/GitStagingAreaHolder.java b/plugins/git4idea/src/git4idea/status/GitStagingAreaHolder.java index 1f1da52cf8ff..404b96c59d46 100644 --- a/plugins/git4idea/src/git4idea/status/GitStagingAreaHolder.java +++ b/plugins/git4idea/src/git4idea/status/GitStagingAreaHolder.java @@ -16,7 +16,7 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.messages.Topic; import com.intellij.vcsUtil.VcsUtil; -import git4idea.GitStatisticsCollector; +import git4idea.GitRefreshUsageCollector; import git4idea.commands.GitHandler; import git4idea.index.GitFileStatus; import git4idea.index.GitIndexStatusUtilKt; @@ -103,7 +103,7 @@ public class GitStagingAreaHolder { dirtyScope.addAll(dirtyPaths); boolean everythingDirty = dirtyScope.contains(VcsUtil.getFilePath(root)); - StructuredIdeActivity activity = GitStatisticsCollector.logStatusRefresh(myProject, everythingDirty); + StructuredIdeActivity activity = GitRefreshUsageCollector.logStatusRefresh(myProject, everythingDirty); List<GitFileStatus> rootRecords = GitIndexStatusUtilKt.getStatus(myProject, root, dirtyPaths, true, false, false); activity.finished(); diff --git a/plugins/git4idea/src/git4idea/util/GitFileUtils.java b/plugins/git4idea/src/git4idea/util/GitFileUtils.java index 45658d16aa4d..9d393743e75d 100644 --- a/plugins/git4idea/src/git4idea/util/GitFileUtils.java +++ b/plugins/git4idea/src/git4idea/util/GitFileUtils.java @@ -96,7 +96,7 @@ public final class GitFileUtils { @NotNull Collection<? extends VirtualFile> addedFiles) { GitRepository repository = GitUtil.getRepositoryManager(project).getRepositoryForRoot(root); if (repository == null) { - LOG.error("Repository not found for root " + root.getPresentableUrl()); + LOG.warn("Repository not found for root " + root.getPresentableUrl()); return; } repository.getUntrackedFilesHolder().remove(ContainerUtil.map(addedFiles, VcsUtil::getFilePath)); @@ -106,7 +106,7 @@ public final class GitFileUtils { @NotNull Collection<VirtualFile> addedFiles) { GitRepository repository = GitUtil.getRepositoryManager(project).getRepositoryForRoot(root); if (repository == null) { - LOG.error("Repository not found for root " + root.getPresentableUrl()); + LOG.warn("Repository not found for root " + root.getPresentableUrl()); return; } repository.getIgnoredFilesHolder().removeIgnoredFiles(ContainerUtil.mapNotNull(addedFiles, VcsUtil::getFilePath)); @@ -116,7 +116,7 @@ public final class GitFileUtils { @NotNull Collection<? extends VirtualFile> removedFiles) { GitRepository repository = GitUtil.getRepositoryManager(project).getRepositoryForRoot(root); if (repository == null) { - LOG.error("Repository not found for root " + root.getPresentableUrl()); + LOG.warn("Repository not found for root " + root.getPresentableUrl()); return; } repository.getUntrackedFilesHolder().add(ContainerUtil.map(removedFiles, VcsUtil::getFilePath)); @@ -126,7 +126,7 @@ public final class GitFileUtils { @NotNull Collection<? extends FilePath> resetFiles) { GitRepository repository = GitUtil.getRepositoryManager(project).getRepositoryForRoot(root); if (repository == null) { - LOG.error("Repository not found for root " + root.getPresentableUrl()); + LOG.warn("Repository not found for root " + root.getPresentableUrl()); return; } repository.getUntrackedFilesHolder().markPossiblyUntracked(resetFiles); diff --git a/plugins/github/resources/messages/GithubBundle.properties b/plugins/github/resources/messages/GithubBundle.properties index c14fedec05e4..8da9880c67c5 100644 --- a/plugins/github/resources/messages/GithubBundle.properties +++ b/plugins/github/resources/messages/GithubBundle.properties @@ -376,7 +376,8 @@ pull.request.timeline.comment.suggested.changes.error.branches.message=The curre pull.request.timeline.comment.suggested.changes.action.commit.name=Commit... pull.request.timeline.comment.suggested.changes.action.commit.title=Commit message pull.request.timeline.comment.suggested.changes.tooltip.outdated=Outdated suggestions cannot be applied -pull.request.timeline.comment.suggested.changes.tooltip.different.branch=Unable to apply a suggested change from a different branch a pull request +pull.request.timeline.comment.suggested.changes.tooltip.resolved=This suggestion has been resolved +pull.request.timeline.comment.suggested.changes.tooltip.different.branch=Unable to apply the suggested change from a pull request in a different branch #various errors cannot.collect.additional.data=Can't collect additional data diff --git a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/GHPRTimelineFileEditor.kt b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/GHPRTimelineFileEditor.kt index 82904585dc58..9c7c675946c5 100644 --- a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/GHPRTimelineFileEditor.kt +++ b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/GHPRTimelineFileEditor.kt @@ -31,6 +31,7 @@ internal class GHPRTimelineFileEditor(private val project: Project, : FileEditorBase() { val securityService = dataContext.securityService + val repositoryDataService = dataContext.repositoryDataService val avatarIconsProvider = dataContext.avatarIconsProvider val detailsData = dataProvider.detailsData diff --git a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/GHMarkdownToHtmlConverter.kt b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/GHMarkdownToHtmlConverter.kt index 0e2a652f3343..347b3c21ff8f 100644 --- a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/GHMarkdownToHtmlConverter.kt +++ b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/GHMarkdownToHtmlConverter.kt @@ -17,17 +17,16 @@ import java.net.URI class GHMarkdownToHtmlConverter(private val project: Project?) { @NlsSafe fun convertMarkdown(@NlsSafe markdownText: String): String { - val text = markdownText.replace("\r", "") // TODO: fix bug with CRLF line endings from markdown library val flavourDescriptor = GithubFlavourDescriptor(CodeBlockHtmlSyntaxHighlighter(project)) + return MarkdownToHtmlConverter(flavourDescriptor).convertMarkdownToHtml(text, null) } @NlsSafe - fun convertMarkdownWithSuggestedChange(@NlsSafe markdownText: String, suggestedChangeInfo: GHSuggestedChangeInfo): String { - - val text = markdownText.replace("\r", "") // TODO: fix bug with CRLF line endings from markdown library - val htmlSyntaxHighlighter = GHSuggestionHtmlSyntaxHighlighter(project, suggestedChangeInfo) + fun convertMarkdownWithSuggestedChange(suggestedChange: GHSuggestedChange): String { + val text = suggestedChange.commentBody.replace("\r", "") // TODO: fix bug with CRLF line endings from markdown library + val htmlSyntaxHighlighter = GHSuggestionHtmlSyntaxHighlighter(project, suggestedChange) val flavourDescriptor = GithubFlavourDescriptor(htmlSyntaxHighlighter) return MarkdownToHtmlConverter(flavourDescriptor).convertMarkdownToHtml(text, null) diff --git a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/GHPRDiffReviewSupportImpl.kt b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/GHPRDiffReviewSupportImpl.kt index ddcd652caaf4..074493ebda00 100644 --- a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/GHPRDiffReviewSupportImpl.kt +++ b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/GHPRDiffReviewSupportImpl.kt @@ -21,10 +21,12 @@ import org.jetbrains.plugins.github.pullrequest.comment.viewer.GHPRUnifiedDiffVi import org.jetbrains.plugins.github.pullrequest.data.GHPRChangeDiffData import org.jetbrains.plugins.github.pullrequest.data.provider.GHPRDetailsDataProvider import org.jetbrains.plugins.github.pullrequest.data.provider.GHPRReviewDataProvider +import org.jetbrains.plugins.github.pullrequest.data.service.GHPRRepositoryDataService import org.jetbrains.plugins.github.pullrequest.ui.GHCompletableFutureLoadingModel import org.jetbrains.plugins.github.pullrequest.ui.GHLoadingModel import org.jetbrains.plugins.github.pullrequest.ui.GHSimpleLoadingModel import org.jetbrains.plugins.github.pullrequest.ui.changes.GHPRCreateDiffCommentParametersHelper +import org.jetbrains.plugins.github.pullrequest.ui.changes.GHPRSuggestedChangeHelper import org.jetbrains.plugins.github.ui.avatars.GHAvatarIconsProvider import org.jetbrains.plugins.github.util.GHPatchHunkUtil import java.util.function.Function @@ -33,8 +35,9 @@ import kotlin.properties.Delegates.observable class GHPRDiffReviewSupportImpl(private val project: Project, private val reviewDataProvider: GHPRReviewDataProvider, private val detailsDataProvider: GHPRDetailsDataProvider, - private val diffData: GHPRChangeDiffData, private val avatarIconsProvider: GHAvatarIconsProvider, + private val repositoryDataService: GHPRRepositoryDataService, + private val diffData: GHPRChangeDiffData, private val currentUser: GHUser) : GHPRDiffReviewSupport { @@ -72,11 +75,14 @@ class GHPRDiffReviewSupportImpl(private val project: Project, loadReviewThreads(viewer) val createCommentParametersHelper = GHPRCreateDiffCommentParametersHelper(diffData.commitSha, diffData.filePath, diffData.linesMapper) + val suggestedChangesHelper = GHPRSuggestedChangeHelper(project, + viewer, repositoryDataService.remoteCoordinates.repository, + reviewDataProvider, + detailsDataProvider) val componentsFactory = GHPRDiffEditorReviewComponentsFactoryImpl(project, - reviewDataProvider, - detailsDataProvider, - createCommentParametersHelper, - avatarIconsProvider, currentUser) + reviewDataProvider, avatarIconsProvider, + createCommentParametersHelper, suggestedChangesHelper, + currentUser) val cumulative = diffData is GHPRChangeDiffData.Cumulative when (viewer) { is SimpleOnesideDiffViewer -> diff --git a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/GHSuggestedChangeInfo.kt b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/GHSuggestedChange.kt index 5b54fc0e9161..d172a62413a0 100644 --- a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/GHSuggestedChangeInfo.kt +++ b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/GHSuggestedChange.kt @@ -6,22 +6,36 @@ import com.intellij.openapi.diff.impl.patch.PatchLine import com.intellij.openapi.diff.impl.patch.PatchReader import org.jetbrains.plugins.github.util.GHPatchHunkUtil -data class GHSuggestedChangeInfo( +data class GHSuggestedChange( + val commentBody: String, val patchHunk: PatchHunk, val filePath: String, val startLine: Int, val endLine: Int ) { + fun cutContextContent(): List<String> = patchHunk.lines + .filter { it.type != PatchLine.Type.REMOVE } + .dropLast(endLine - startLine + 1) + .takeLast(3) + .map { it.text } + fun cutChangedContent(): List<String> = patchHunk.lines .filter { it.type != PatchLine.Type.REMOVE } .takeLast(endLine - startLine + 1) .map { it.text } + fun cutSuggestedChangeContent(): List<String> { + return commentBody.lines() + .dropWhile { !it.startsWith("```suggestion") } + .drop(1) + .takeWhile { !it.startsWith("```") } + } + companion object { - fun create(diffHunk: String, filePath: String, startLine: Int, endLine: Int): GHSuggestedChangeInfo { + fun create(commentBody: String, diffHunk: String, filePath: String, startLine: Int, endLine: Int): GHSuggestedChange { val patchHunk = parseDiffHunk(diffHunk, filePath) - return GHSuggestedChangeInfo(patchHunk, filePath, startLine - 1, endLine - 1) + return GHSuggestedChange(commentBody, patchHunk, filePath, startLine - 1, endLine - 1) } fun containsSuggestedChange(markdownText: String): Boolean = markdownText.lines().any { it.startsWith("```suggestion") } diff --git a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/GHSuggestedChangeApplier.kt b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/GHSuggestedChangeApplier.kt index dbce2d7e289b..0d6998c7501e 100644 --- a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/GHSuggestedChangeApplier.kt +++ b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/GHSuggestedChangeApplier.kt @@ -8,40 +8,39 @@ import com.intellij.openapi.diff.impl.patch.TextFilePatch import com.intellij.openapi.diff.impl.patch.apply.GenericPatchApplier import com.intellij.openapi.diff.impl.patch.formove.PatchApplier import com.intellij.openapi.project.Project -import com.intellij.openapi.project.guessProjectDir import com.intellij.openapi.vcs.LocalFilePath -import com.intellij.openapi.vcs.changes.ChangeListManager -import com.intellij.openapi.vcs.changes.SimpleContentRevision -import git4idea.GitContentRevision -import git4idea.GitRevisionNumber +import com.intellij.vcsUtil.VcsImplUtil +import git4idea.GitUtil import git4idea.checkin.GitCheckinEnvironment import git4idea.checkin.GitCommitOptions import git4idea.index.GitIndexUtil -import git4idea.repo.GitRepositoryManager +import git4idea.repo.GitRepository +import git4idea.util.GitFileUtils +import org.jetbrains.plugins.github.util.GithubUtil import java.nio.charset.Charset import java.nio.file.Path -import kotlin.io.path.isExecutable class GHSuggestedChangeApplier( private val project: Project, - private val suggestedChange: String, - private val suggestedChangeInfo: GHSuggestedChangeInfo, + private val repository: GitRepository, + private val suggestedChange: GHSuggestedChange ) { - private val projectDir = project.guessProjectDir()!! + private val virtualBaseDir = repository.root fun applySuggestedChange(): ApplyPatchStatus { - val suggestedChangePatch = createSuggestedChangePatch(suggestedChange, suggestedChangeInfo) - val patchApplier = PatchApplier(project, projectDir, listOf(suggestedChangePatch), null, null) + val suggestedChangePatch = createSuggestedChangePatch(suggestedChange) + val patchApplier = PatchApplier(project, virtualBaseDir, listOf(suggestedChangePatch), null, null) return patchApplier.execute(true, false) } - private fun createSuggestedChangePatchHunk(suggestedChangeContent: List<String>, suggestedChangeInfo: GHSuggestedChangeInfo): PatchHunk { - val suggestedChangePatchHunk = PatchHunk(suggestedChangeInfo.startLine, suggestedChangeInfo.endLine, - suggestedChangeInfo.startLine, suggestedChangeInfo.startLine + suggestedChangeContent.size - 1) + private fun createSuggestedChangePatchHunk(suggestedChange: GHSuggestedChange): PatchHunk { + val suggestedChangeContent = suggestedChange.cutSuggestedChangeContent() + val suggestedChangePatchHunk = PatchHunk(suggestedChange.startLine, suggestedChange.endLine, + suggestedChange.startLine, suggestedChange.startLine + suggestedChangeContent.size - 1) - val changedLines = suggestedChangeInfo.cutChangedContent() - changedLines.forEach { suggestedChangePatchHunk.addLine(PatchLine(PatchLine.Type.REMOVE, it)) } + suggestedChange.cutContextContent().forEach { suggestedChangePatchHunk.addLine(PatchLine(PatchLine.Type.CONTEXT, it)) } + suggestedChange.cutChangedContent().forEach { suggestedChangePatchHunk.addLine(PatchLine(PatchLine.Type.REMOVE, it)) } suggestedChangeContent.forEach { suggestedChangePatchHunk.addLine(PatchLine(PatchLine.Type.ADD, it)) } return suggestedChangePatchHunk @@ -49,9 +48,9 @@ class GHSuggestedChangeApplier( fun commitSuggestedChanges(commitMessage: String): ApplyPatchStatus { // Apply patch - val suggestedChangePatch = createSuggestedChangePatch(suggestedChange, suggestedChangeInfo) - val patchApplier = PatchApplier(project, projectDir, listOf(suggestedChangePatch), null, null) - val patchStatus = patchApplier.execute(true, true) + val suggestedChangePatch = createSuggestedChangePatch(suggestedChange) + val patchApplier = PatchApplier(project, virtualBaseDir, listOf(suggestedChangePatch), null, null) + val patchStatus = patchApplier.execute(true, false) if (patchStatus == ApplyPatchStatus.ALREADY_APPLIED) { return patchStatus } @@ -60,49 +59,43 @@ class GHSuggestedChangeApplier( val beforeLocalFilePath = createLocalFilePath(suggestedChangePatch.beforeName) val afterLocalFilePath = createLocalFilePath(suggestedChangePatch.afterName) - val beforeRevision = GitContentRevision.createRevision(beforeLocalFilePath, GitRevisionNumber.HEAD, project) - val appliedPatch = GenericPatchApplier.apply(beforeRevision.content, suggestedChangePatch.hunks) + val bytes = GitFileUtils.getFileContent(project, virtualBaseDir, GitUtil.HEAD, suggestedChangePatch.beforeName) + val revisionContent = VcsImplUtil.loadTextFromBytes(project, bytes, beforeLocalFilePath) + val appliedPatch = GenericPatchApplier.apply(revisionContent, suggestedChangePatch.hunks) if (appliedPatch == null || appliedPatch.status != ApplyPatchStatus.SUCCESS) { return appliedPatch?.status ?: ApplyPatchStatus.FAILURE } - val repository = GitRepositoryManager.getInstance(project).getRepositoryForRoot(projectDir) ?: return ApplyPatchStatus.FAILURE val virtualFile = beforeLocalFilePath.virtualFile ?: return ApplyPatchStatus.FAILURE val fileContent = GitCheckinEnvironment.convertDocumentContentToBytesWithBOM(repository, appliedPatch.patchedText, virtualFile) - val isExecutable = Path.of(beforeLocalFilePath.path).isExecutable() - val hash = GitIndexUtil.write(repository, beforeLocalFilePath, fileContent, isExecutable) - val suggestedChangeRevision = SimpleContentRevision(appliedPatch.patchedText, afterLocalFilePath, hash.asString()) + val stagedFile = GitIndexUtil.listStaged(repository, beforeLocalFilePath) ?: return ApplyPatchStatus.FAILURE + GitIndexUtil.write(repository, beforeLocalFilePath, fileContent, stagedFile.isExecutable) // Commit suggested change - val changes = ChangeListManager.getInstance(project).defaultChangeList.changes.map { - GitCheckinEnvironment.ChangedPath(it.beforeRevision?.file, it.afterRevision?.file) + val suggestedChangedPath = GitCheckinEnvironment.ChangedPath(beforeLocalFilePath, afterLocalFilePath) + val commitMessageFile = GitCheckinEnvironment.createCommitMessageFile(project, virtualBaseDir, commitMessage) + val exceptions = GitCheckinEnvironment.commitUsingIndex(project, repository, + listOf(suggestedChangedPath), setOf(suggestedChangedPath), + commitMessageFile, GitCommitOptions()) + + if (exceptions.isNotEmpty()) { + val messages = exceptions.flatMap { it.messages.toList() }.toTypedArray() + GithubUtil.LOG.error("Failed to commit suggested change", *messages) + return ApplyPatchStatus.FAILURE } - val suggestedChangedPath = GitCheckinEnvironment.ChangedPath(beforeRevision.file, suggestedChangeRevision.file) - val commitMessageFile = GitCheckinEnvironment.createCommitMessageFile(project, projectDir, commitMessage) - GitCheckinEnvironment.commitUsingIndex(project, repository, - listOf(suggestedChangedPath), changes.toSet(), - commitMessageFile, GitCommitOptions()) return ApplyPatchStatus.SUCCESS } - private fun createSuggestedChangePatch(suggestedChange: String, suggestedChangeInfo: GHSuggestedChangeInfo): TextFilePatch { - val suggestedChangeContent = getSuggestedChangeContent(suggestedChange) - val suggestedChangePatchHunk = createSuggestedChangePatchHunk(suggestedChangeContent, suggestedChangeInfo) + private fun createSuggestedChangePatch(suggestedChange: GHSuggestedChange): TextFilePatch { + val suggestedChangePatchHunk = createSuggestedChangePatchHunk(suggestedChange) return TextFilePatch(Charset.defaultCharset()).apply { - beforeName = suggestedChangeInfo.filePath - afterName = suggestedChangeInfo.filePath + beforeName = suggestedChange.filePath + afterName = suggestedChange.filePath addHunk(suggestedChangePatchHunk) } } - private fun createLocalFilePath(filename: String): LocalFilePath = LocalFilePath(Path.of(projectDir.path, filename), false) - - private fun getSuggestedChangeContent(comment: String): List<String> { - return comment.lines() - .dropWhile { !it.startsWith("```suggestion") } - .drop(1) - .takeWhile { !it.startsWith("```") } - } + private fun createLocalFilePath(filename: String): LocalFilePath = LocalFilePath(Path.of(virtualBaseDir.path, filename), false) }
\ No newline at end of file diff --git a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/GHSuggestionHtmlSyntaxHighlighter.kt b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/GHSuggestionHtmlSyntaxHighlighter.kt index ccf05602eb66..ff4d715f409f 100644 --- a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/GHSuggestionHtmlSyntaxHighlighter.kt +++ b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/GHSuggestionHtmlSyntaxHighlighter.kt @@ -20,7 +20,7 @@ import org.jetbrains.annotations.VisibleForTesting class GHSuggestionHtmlSyntaxHighlighter( private val project: Project?, - private val suggestedChangeInfo: GHSuggestedChangeInfo, + private val suggestedChangeInfo: GHSuggestedChange, ) : HtmlSyntaxHighlighter { override fun color(language: String?, rawContent: String): HtmlChunk { val name = PathUtil.getFileName(suggestedChangeInfo.filePath) diff --git a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/ui/GHPRDiffEditorReviewComponentsFactoryImpl.kt b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/ui/GHPRDiffEditorReviewComponentsFactoryImpl.kt index b4a112d40df4..f8f831cdcad7 100644 --- a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/ui/GHPRDiffEditorReviewComponentsFactoryImpl.kt +++ b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/ui/GHPRDiffEditorReviewComponentsFactoryImpl.kt @@ -3,7 +3,6 @@ package org.jetbrains.plugins.github.pullrequest.comment.ui import com.intellij.collaboration.async.CompletableFutureUtil.successOnEdt import com.intellij.collaboration.ui.codereview.comment.ReviewUIUtil -import com.intellij.collaboration.ui.codereview.comment.RoundedPanel import com.intellij.diff.util.Side import com.intellij.openapi.progress.EmptyProgressIndicator import com.intellij.openapi.project.Project @@ -14,23 +13,26 @@ import org.jetbrains.plugins.github.api.data.GHUser import org.jetbrains.plugins.github.api.data.request.GHPullRequestDraftReviewComment import org.jetbrains.plugins.github.api.data.request.GHPullRequestDraftReviewThread import org.jetbrains.plugins.github.i18n.GithubBundle -import org.jetbrains.plugins.github.pullrequest.data.provider.GHPRDetailsDataProvider import org.jetbrains.plugins.github.pullrequest.data.provider.GHPRReviewDataProvider import org.jetbrains.plugins.github.pullrequest.ui.changes.GHPRCreateDiffCommentParametersHelper +import org.jetbrains.plugins.github.pullrequest.ui.changes.GHPRSuggestedChangeHelper import org.jetbrains.plugins.github.ui.avatars.GHAvatarIconsProvider import javax.swing.JComponent class GHPRDiffEditorReviewComponentsFactoryImpl internal constructor(private val project: Project, private val reviewDataProvider: GHPRReviewDataProvider, - private val detailsDataProvider: GHPRDetailsDataProvider, - private val createCommentParametersHelper: GHPRCreateDiffCommentParametersHelper, private val avatarIconsProvider: GHAvatarIconsProvider, + private val createCommentParametersHelper: GHPRCreateDiffCommentParametersHelper, + private val suggestedChangeHelper: GHPRSuggestedChangeHelper, private val currentUser: GHUser) : GHPRDiffEditorReviewComponentsFactory { override fun createThreadComponent(thread: GHPRReviewThreadModel): JComponent = - GHPRReviewThreadComponent.create(project, thread, reviewDataProvider, detailsDataProvider, avatarIconsProvider, currentUser).apply { + GHPRReviewThreadComponent.create(project, thread, + reviewDataProvider, avatarIconsProvider, + suggestedChangeHelper, + currentUser).apply { border = JBUI.Borders.empty(8, 8) }.let { ReviewUIUtil.createEditorInlayPanel(it) } diff --git a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/ui/GHPRReviewCommentComponent.kt b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/ui/GHPRReviewCommentComponent.kt index e28b7bec7cf2..93dca3aeea96 100644 --- a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/ui/GHPRReviewCommentComponent.kt +++ b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/ui/GHPRReviewCommentComponent.kt @@ -18,11 +18,11 @@ import net.miginfocom.layout.LC import net.miginfocom.swing.MigLayout import org.jetbrains.plugins.github.api.data.pullrequest.GHPullRequestReviewCommentState import org.jetbrains.plugins.github.i18n.GithubBundle -import org.jetbrains.plugins.github.pullrequest.comment.GHSuggestedChangeInfo -import org.jetbrains.plugins.github.pullrequest.data.provider.GHPRDetailsDataProvider +import org.jetbrains.plugins.github.pullrequest.comment.GHSuggestedChange import org.jetbrains.plugins.github.pullrequest.data.provider.GHPRReviewDataProvider import org.jetbrains.plugins.github.pullrequest.ui.GHEditableHtmlPaneHandle import org.jetbrains.plugins.github.pullrequest.ui.GHTextActions +import org.jetbrains.plugins.github.pullrequest.ui.changes.GHPRSuggestedChangeHelper import org.jetbrains.plugins.github.ui.avatars.GHAvatarIconsProvider import org.jetbrains.plugins.github.ui.util.GHUIUtil import org.jetbrains.plugins.github.ui.util.HtmlEditorPane @@ -33,11 +33,11 @@ import javax.swing.JPanel object GHPRReviewCommentComponent { fun create(project: Project, - reviewDataProvider: GHPRReviewDataProvider, thread: GHPRReviewThreadModel, - detailsDataProvider: GHPRDetailsDataProvider, comment: GHPRReviewCommentModel, + reviewDataProvider: GHPRReviewDataProvider, avatarIconsProvider: GHAvatarIconsProvider, + suggestedChangeHelper: GHPRSuggestedChangeHelper, showResolvedMarker: Boolean = true): JComponent { val avatarLabel = ActionLink("") { @@ -65,9 +65,11 @@ object GHPRReviewCommentComponent { isOpaque = false } - Controller(project, thread, - reviewDataProvider, detailsDataProvider, comment, - titlePane, pendingLabel, resolvedLabel, commentPanel, showResolvedMarker) + Controller(project, + thread, comment, + suggestedChangeHelper, + titlePane, pendingLabel, resolvedLabel, commentPanel, + showResolvedMarker) val editablePaneHandle = GHEditableHtmlPaneHandle(project, commentPanel, comment::body) { reviewDataProvider.updateComment(EmptyProgressIndicator(), comment.id, it) @@ -103,9 +105,8 @@ object GHPRReviewCommentComponent { private class Controller(private val project: Project, private val thread: GHPRReviewThreadModel, - private val reviewDataProvider: GHPRReviewDataProvider, - private val detailsDataProvider: GHPRDetailsDataProvider, private val comment: GHPRReviewCommentModel, + private val suggestedChangeHelper: GHPRSuggestedChangeHelper, private val titlePane: HtmlEditorPane, private val pendingLabel: JComponent, private val resolvedLabel: JComponent, @@ -120,12 +121,11 @@ object GHPRReviewCommentComponent { private fun update() { val commentComponentFactory = GHPRReviewCommentComponentFactory(project) - val commentComponent = if (GHSuggestedChangeInfo.containsSuggestedChange(comment.body)) { - val suggestedChangeInfo = GHSuggestedChangeInfo.create(thread.diffHunk, thread.filePath, - thread.startLine ?: thread.line, thread.line) - commentComponentFactory.createCommentWithSuggestedChangeComponent(comment.body, thread.id, - thread.isOutdated, suggestedChangeInfo, - reviewDataProvider, detailsDataProvider) + val commentComponent = if (GHSuggestedChange.containsSuggestedChange(comment.body)) { + val suggestedChange = GHSuggestedChange.create(comment.body, + thread.diffHunk, thread.filePath, + thread.startLine ?: thread.line, thread.line) + commentComponentFactory.createCommentWithSuggestedChangeComponent(thread, suggestedChange, suggestedChangeHelper) } else { commentComponentFactory.createCommentComponent(comment.body) @@ -143,6 +143,7 @@ object GHPRReviewCommentComponent { pendingLabel.isVisible = true titlePane.setBody(authorLink) } + GHPullRequestReviewCommentState.SUBMITTED -> { pendingLabel.isVisible = false titlePane.setBody(GithubBundle.message("pull.request.review.commented", authorLink, @@ -154,13 +155,20 @@ object GHPRReviewCommentComponent { } } - fun factory(project: Project, reviewDataProvider: GHPRReviewDataProvider, avatarIconsProvider: GHAvatarIconsProvider, - detailsDataProvider: GHPRDetailsDataProvider, + fun factory(project: Project, thread: GHPRReviewThreadModel, + reviewDataProvider: GHPRReviewDataProvider, + avatarIconsProvider: GHAvatarIconsProvider, + suggestedChangeHelper: GHPRSuggestedChangeHelper, showResolvedMarkerOnFirstComment: Boolean = true) : (GHPRReviewCommentModel) -> JComponent { return { comment -> - create(project, reviewDataProvider, thread, detailsDataProvider, comment, avatarIconsProvider, showResolvedMarkerOnFirstComment) + create( + project, + thread, comment, + reviewDataProvider, avatarIconsProvider, + suggestedChangeHelper, + showResolvedMarkerOnFirstComment) } } } diff --git a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/ui/GHPRReviewCommentComponentFactory.kt b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/ui/GHPRReviewCommentComponentFactory.kt index 81ac37896f8e..2acf11184074 100644 --- a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/ui/GHPRReviewCommentComponentFactory.kt +++ b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/ui/GHPRReviewCommentComponentFactory.kt @@ -5,10 +5,9 @@ import com.intellij.openapi.project.Project import com.intellij.ui.components.panels.VerticalLayout import org.jetbrains.annotations.VisibleForTesting import org.jetbrains.plugins.github.pullrequest.comment.GHMarkdownToHtmlConverter +import org.jetbrains.plugins.github.pullrequest.comment.GHSuggestedChange import org.jetbrains.plugins.github.pullrequest.comment.GHSuggestedChangeApplier -import org.jetbrains.plugins.github.pullrequest.comment.GHSuggestedChangeInfo -import org.jetbrains.plugins.github.pullrequest.data.provider.GHPRDetailsDataProvider -import org.jetbrains.plugins.github.pullrequest.data.provider.GHPRReviewDataProvider +import org.jetbrains.plugins.github.pullrequest.ui.changes.GHPRSuggestedChangeHelper import org.jetbrains.plugins.github.ui.util.HtmlEditorPane import javax.swing.JComponent import javax.swing.JPanel @@ -23,20 +22,16 @@ class GHPRReviewCommentComponentFactory(private val project: Project) { } fun createCommentWithSuggestedChangeComponent( - commentBody: String, - threadId: String, - isOutdated: Boolean, - suggestedChangeInfo: GHSuggestedChangeInfo, - reviewDataProvider: GHPRReviewDataProvider, - detailsDataProvider: GHPRDetailsDataProvider + thread: GHPRReviewThreadModel, + suggestedChange: GHSuggestedChange, + suggestedChangeHelper: GHPRSuggestedChangeHelper ): JComponent { - val htmlBody = markdownConverter.convertMarkdownWithSuggestedChange(commentBody, suggestedChangeInfo) + val htmlBody = markdownConverter.convertMarkdownWithSuggestedChange(suggestedChange) val content = htmlBody.removePrefix("<body>").removeSuffix("</body>") val commentBlocks = collectCommentBlocks(content) - val suggestedChangeApplier = GHSuggestedChangeApplier(project, commentBody, suggestedChangeInfo) - val suggestedChangeComponent = GHPRReviewSuggestedChangeComponentFactory(project, threadId, suggestedChangeApplier, - reviewDataProvider, detailsDataProvider) + val suggestedChangeApplier = GHSuggestedChangeApplier(project, suggestedChangeHelper.repository, suggestedChange) + val suggestedChangeComponent = GHPRReviewSuggestedChangeComponentFactory(project, thread, suggestedChangeApplier, suggestedChangeHelper) return JPanel(VerticalLayout(0)).apply { isOpaque = false @@ -44,7 +39,7 @@ class GHPRReviewCommentComponentFactory(private val project: Project) { commentBlocks.forEach { when (it.commentType) { CommentType.COMMENT -> add(HtmlEditorPane(it.content)) - CommentType.SUGGESTED_CHANGE -> add(suggestedChangeComponent.create(it.content, isOutdated)) + CommentType.SUGGESTED_CHANGE -> add(suggestedChangeComponent.create(it.content)) } } } diff --git a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/ui/GHPRReviewSuggestedChangeComponentFactory.kt b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/ui/GHPRReviewSuggestedChangeComponentFactory.kt index 1a18406f3c4a..a6beb2446324 100644 --- a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/ui/GHPRReviewSuggestedChangeComponentFactory.kt +++ b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/ui/GHPRReviewSuggestedChangeComponentFactory.kt @@ -11,12 +11,10 @@ import com.intellij.openapi.editor.Document import com.intellij.openapi.editor.colors.EditorColorsManager import com.intellij.openapi.editor.event.DocumentEvent import com.intellij.openapi.editor.event.DocumentListener -import com.intellij.openapi.progress.EmptyProgressIndicator import com.intellij.openapi.progress.ProgressIndicator import com.intellij.openapi.progress.Task import com.intellij.openapi.project.Project import com.intellij.openapi.ui.ComponentContainer -import com.intellij.openapi.ui.Messages import com.intellij.openapi.ui.popup.JBPopupFactory import com.intellij.openapi.util.registry.Registry import com.intellij.openapi.vcs.VcsBundle @@ -31,27 +29,22 @@ import com.intellij.ui.dsl.gridLayout.VerticalAlign import com.intellij.util.ui.JBDimension import com.intellij.util.ui.JBUI import com.intellij.util.ui.UIUtil -import git4idea.branch.GitBranchUtil import org.jetbrains.plugins.github.i18n.GithubBundle import org.jetbrains.plugins.github.pullrequest.comment.GHSuggestedChangeApplier -import org.jetbrains.plugins.github.pullrequest.data.provider.GHPRDetailsDataProvider -import org.jetbrains.plugins.github.pullrequest.data.provider.GHPRReviewDataProvider +import org.jetbrains.plugins.github.pullrequest.ui.changes.GHPRSuggestedChangeHelper import org.jetbrains.plugins.github.ui.util.HtmlEditorPane import java.awt.BorderLayout import java.awt.event.ActionEvent import java.awt.event.ActionListener -import javax.swing.AbstractAction -import javax.swing.JButton -import javax.swing.JComponent +import javax.swing.* class GHPRReviewSuggestedChangeComponentFactory( private val project: Project, - private val threadId: String, + private val thread: GHPRReviewThreadModel, private val suggestionApplier: GHSuggestedChangeApplier, - private val reviewDataProvider: GHPRReviewDataProvider, - private val detailsDataProvider: GHPRDetailsDataProvider + private val suggestedChangeHelper: GHPRSuggestedChangeHelper ) { - fun create(content: String, isOutdated: Boolean): JComponent = RoundedPanel(BorderLayout(), 8).apply { + fun create(content: String): JComponent = RoundedPanel(BorderLayout(), 8).apply { isOpaque = false border = JBUI.Borders.compound(JBUI.Borders.empty(EMPTY_GAP, 0), border) @@ -80,35 +73,29 @@ class GHPRReviewSuggestedChangeComponentFactory( add(topPanel, BorderLayout.NORTH) add(HtmlEditorPane(content), BorderLayout.CENTER) - if (isCurrentBranchDifferentWithPullRequest()) { - optionButton.disableActions() - optionButton.optionTooltipText = GithubBundle.message("pull.request.timeline.comment.suggested.changes.tooltip.different.branch") - } - else if (isOutdated) { - optionButton.disableActions() - optionButton.optionTooltipText = GithubBundle.message("pull.request.timeline.comment.suggested.changes.tooltip.outdated") - } + suggestedChangeHelper.isCorrectBranch.addAndInvokeListener { updateUI(optionButton, it, thread.isOutdated, thread.isResolved) } } - private fun isCurrentBranchDifferentWithPullRequest(): Boolean { - val currentRepository = GitBranchUtil.getCurrentRepository(project) - val currentBranchName = currentRepository?.let { GitBranchUtil.getBranchNameOrRev(it) } ?: return true - - val pullRequestSourceBranchName = detailsDataProvider.loadedDetails?.headRefName + private fun updateUI(optionButton: JBOptionButton, isCorrectBranch: Boolean, isOutdated: Boolean, isResolved: Boolean) { + if (isCorrectBranch && !isOutdated && !isResolved) { + optionButton.enableActions() + return + } - return currentBranchName != pullRequestSourceBranchName + optionButton.apply { + disableActions() + optionTooltipText = when { + isOutdated -> GithubBundle.message("pull.request.timeline.comment.suggested.changes.tooltip.outdated") + isResolved -> GithubBundle.message("pull.request.timeline.comment.suggested.changes.tooltip.resolved") + else -> GithubBundle.message("pull.request.timeline.comment.suggested.changes.tooltip.different.branch") + } + } } private inner class ApplyLocallySuggestedChangeAction : AbstractAction( GithubBundle.message("pull.request.timeline.comment.suggested.changes.button") ) { override fun actionPerformed(event: ActionEvent) { - if (isCurrentBranchDifferentWithPullRequest()) { - Messages.showWarningDialog(GithubBundle.message("pull.request.timeline.comment.suggested.changes.error.branches.message"), - GithubBundle.message("pull.request.timeline.comment.suggested.changes.error.branches.title")) - return - } - object : Task.Backgroundable( project, GithubBundle.message("pull.request.timeline.comment.suggested.changes.progress.bar.apply"), @@ -122,7 +109,7 @@ class GHPRReviewSuggestedChangeComponentFactory( override fun onSuccess() { if (applyStatus == ApplyPatchStatus.SUCCESS) { - reviewDataProvider.resolveThread(EmptyProgressIndicator(), threadId) + suggestedChangeHelper.resolveThread(thread.id) } } }.queue() @@ -138,7 +125,7 @@ class GHPRReviewSuggestedChangeComponentFactory( cancelRunnable?.invoke() } - val container = createPopupComponentContainer(reviewDataProvider.submitReviewCommentDocument, cancelActionListener) + val container = createPopupComponentContainer(suggestedChangeHelper.suggestedChangeCommitMessageDocument, cancelActionListener) val popup = JBPopupFactory.getInstance() .createComponentPopupBuilder(container.component, container.preferredFocusableComponent) .setFocusable(true) @@ -153,6 +140,33 @@ class GHPRReviewSuggestedChangeComponentFactory( private fun createPopupComponentContainer(commentDocument: Document, cancelActionListener: ActionListener): ComponentContainer { return object : ComponentContainer { + private val commitAction = ActionListener { + if (commitEditor.text.isBlank()) { + errorLabel.isVisible = true + return@ActionListener + } + + object : Task.Backgroundable( + project, + GithubBundle.message("pull.request.timeline.comment.suggested.changes.progress.bar.commit"), + true + ) { + private var commitStatus = ApplyPatchStatus.FAILURE + + override fun run(indicator: ProgressIndicator) { + commitStatus = suggestionApplier.commitSuggestedChanges(commitEditor.text) + } + + override fun onSuccess() { + cancelActionListener.actionPerformed(it) + if (commitStatus == ApplyPatchStatus.SUCCESS) { + suggestedChangeHelper.resolveThread(thread.id) + runWriteAction { commentDocument.setText("") } + } + } + }.queue() + } + private val errorLabel = JBLabel().apply { text = VcsBundle.message("error.no.commit.message") icon = AllIcons.General.Error @@ -175,38 +189,7 @@ class GHPRReviewSuggestedChangeComponentFactory( private val commitButton = JButton(VcsBundle.message("commit.progress.title")).apply { isOpaque = false - addActionListener { - if (commitEditor.text.isBlank()) { - errorLabel.isVisible = true - return@addActionListener - } - - if (isCurrentBranchDifferentWithPullRequest()) { - Messages.showWarningDialog(GithubBundle.message("pull.request.timeline.comment.suggested.changes.error.branches.message"), - GithubBundle.message("pull.request.timeline.comment.suggested.changes.error.branches.title")) - return@addActionListener - } - - object : Task.Backgroundable( - project, - GithubBundle.message("pull.request.timeline.comment.suggested.changes.progress.bar.commit"), - true - ) { - private var commitStatus = ApplyPatchStatus.FAILURE - - override fun run(indicator: ProgressIndicator) { - commitStatus = suggestionApplier.commitSuggestedChanges(commitEditor.text) - } - - override fun onSuccess() { - cancelActionListener.actionPerformed(it) - if (commitStatus == ApplyPatchStatus.SUCCESS) { - reviewDataProvider.resolveThread(EmptyProgressIndicator(), threadId) - runWriteAction { commentDocument.setText("") } - } - } - }.queue() - } + addActionListener(commitAction) }.defaultButton() private val cancelButton = JButton(CommonBundle.getCancelButtonText()).apply { @@ -228,15 +211,25 @@ class GHPRReviewSuggestedChangeComponentFactory( }.apply { background = EditorColorsManager.getInstance().globalScheme.defaultBackground preferredSize = JBDimension(450, 165) + + isFocusCycleRoot = true + focusTraversalPolicy = LayoutFocusTraversalPolicy() + + registerKeyboardAction(commitAction, KeyStroke.getKeyStroke("ctrl ENTER"), JPanel.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT) } - override fun getPreferredFocusableComponent(): JComponent = commitEditor + override fun getPreferredFocusableComponent(): JComponent = commitEditor.editorField override fun dispose() {} } } } + private fun JBOptionButton.enableActions() { + action.isEnabled = true + options?.forEach { it.isEnabled = true } + } + private fun JBOptionButton.disableActions() { action.isEnabled = false options?.forEach { it.isEnabled = false } diff --git a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/ui/GHPRReviewThreadComponent.kt b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/ui/GHPRReviewThreadComponent.kt index 000f97f82672..0613c96b584b 100644 --- a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/ui/GHPRReviewThreadComponent.kt +++ b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/comment/ui/GHPRReviewThreadComponent.kt @@ -29,8 +29,8 @@ import net.miginfocom.swing.MigLayout import org.jetbrains.plugins.github.api.data.GHUser import org.jetbrains.plugins.github.api.data.pullrequest.GHPullRequestReviewCommentState import org.jetbrains.plugins.github.i18n.GithubBundle -import org.jetbrains.plugins.github.pullrequest.data.provider.GHPRDetailsDataProvider import org.jetbrains.plugins.github.pullrequest.data.provider.GHPRReviewDataProvider +import org.jetbrains.plugins.github.pullrequest.ui.changes.GHPRSuggestedChangeHelper import org.jetbrains.plugins.github.pullrequest.ui.timeline.GHPRReviewThreadDiffComponentFactory import org.jetbrains.plugins.github.pullrequest.ui.timeline.GHPRSelectInToolWindowHelper import org.jetbrains.plugins.github.ui.avatars.GHAvatarIconsProvider @@ -46,15 +46,15 @@ object GHPRReviewThreadComponent { fun create(project: Project, thread: GHPRReviewThreadModel, reviewDataProvider: GHPRReviewDataProvider, - detailsDataProvider: GHPRDetailsDataProvider, avatarIconsProvider: GHAvatarIconsProvider, + suggestedChangeHelper: GHPRSuggestedChangeHelper, currentUser: GHUser): JComponent { val panel = JPanel(VerticalLayout(12)).apply { isOpaque = false } - panel.add( - GHPRReviewThreadCommentsPanel.create(thread, GHPRReviewCommentComponent.factory(project, reviewDataProvider, avatarIconsProvider, - detailsDataProvider, thread))) + panel.add(GHPRReviewThreadCommentsPanel.create(thread, GHPRReviewCommentComponent.factory(project, thread, + reviewDataProvider, avatarIconsProvider, + suggestedChangeHelper))) if (reviewDataProvider.canComment()) { panel.add(getThreadActionsComponent(project, reviewDataProvider, thread, avatarIconsProvider, currentUser)) @@ -65,10 +65,10 @@ object GHPRReviewThreadComponent { fun createWithDiff(project: Project, thread: GHPRReviewThreadModel, reviewDataProvider: GHPRReviewDataProvider, - detailsDataProvider: GHPRDetailsDataProvider, - selectInToolWindowHelper: GHPRSelectInToolWindowHelper, - diffComponentFactory: GHPRReviewThreadDiffComponentFactory, avatarIconsProvider: GHAvatarIconsProvider, + diffComponentFactory: GHPRReviewThreadDiffComponentFactory, + selectInToolWindowHelper: GHPRSelectInToolWindowHelper, + suggestedChangeHelper: GHPRSuggestedChangeHelper, currentUser: GHUser): JComponent { val collapseButton = InlineIconButton(AllIcons.General.CollapseComponent, AllIcons.General.CollapseComponentHover, @@ -94,8 +94,10 @@ object GHPRReviewThreadComponent { val commentsComponent = JPanel(VerticalLayout(12)).apply { isOpaque = false - val reviewCommentComponent = GHPRReviewCommentComponent.factory(project, reviewDataProvider, avatarIconsProvider, - detailsDataProvider, thread, false) + val reviewCommentComponent = GHPRReviewCommentComponent.factory(project, thread, + reviewDataProvider, avatarIconsProvider, + suggestedChangeHelper, + false) add(GHPRReviewThreadCommentsPanel.create(thread, reviewCommentComponent)) if (reviewDataProvider.canComment()) { diff --git a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/data/provider/GHPRReviewDataProviderImpl.kt b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/data/provider/GHPRReviewDataProviderImpl.kt index 1731ef1f993b..78310b565f4f 100644 --- a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/data/provider/GHPRReviewDataProviderImpl.kt +++ b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/data/provider/GHPRReviewDataProviderImpl.kt @@ -20,7 +20,6 @@ import org.jetbrains.plugins.github.api.data.pullrequest.GHPullRequestReviewThre import org.jetbrains.plugins.github.api.data.request.GHPullRequestDraftReviewComment import org.jetbrains.plugins.github.api.data.request.GHPullRequestDraftReviewThread import org.jetbrains.plugins.github.pullrequest.data.GHPRIdentifier -import org.jetbrains.plugins.github.pullrequest.data.service.GHPRCommentService import org.jetbrains.plugins.github.pullrequest.data.service.GHPRReviewService import org.jetbrains.plugins.github.util.LazyCancellableBackgroundProcessValue import java.util.concurrent.CompletableFuture diff --git a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/changes/GHPRDiffRequestChainProducer.kt b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/changes/GHPRDiffRequestChainProducer.kt index de127e2d11d4..0d75534166de 100644 --- a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/changes/GHPRDiffRequestChainProducer.kt +++ b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/changes/GHPRDiffRequestChainProducer.kt @@ -33,6 +33,7 @@ import org.jetbrains.plugins.github.pullrequest.comment.action.GHPRDiffReviewThr import org.jetbrains.plugins.github.pullrequest.comment.action.GHPRDiffReviewThreadsToggleAction import org.jetbrains.plugins.github.pullrequest.data.GHPRChangesProvider import org.jetbrains.plugins.github.pullrequest.data.provider.GHPRDataProvider +import org.jetbrains.plugins.github.pullrequest.data.service.GHPRRepositoryDataService import org.jetbrains.plugins.github.ui.avatars.GHAvatarIconsProvider import org.jetbrains.plugins.github.util.DiffRequestChainProducer import org.jetbrains.plugins.github.util.GHToolbarLabelAction @@ -42,6 +43,7 @@ open class GHPRDiffRequestChainProducer( private val project: Project, private val dataProvider: GHPRDataProvider, private val avatarIconsProvider: GHAvatarIconsProvider, + private val repositoryDataService: GHPRRepositoryDataService, private val currentUser: GHUser ) : DiffRequestChainProducer { @@ -110,7 +112,11 @@ open class GHPRDiffRequestChainProducer( private fun getReviewSupport(changesProvider: GHPRChangesProvider, change: Change): GHPRDiffReviewSupport? { val diffData = changesProvider.findChangeDiffData(change) ?: return null - return GHPRDiffReviewSupportImpl(project, dataProvider.reviewData, dataProvider.detailsData, diffData, avatarIconsProvider, currentUser) + return GHPRDiffReviewSupportImpl(project, + dataProvider.reviewData, dataProvider.detailsData, avatarIconsProvider, + repositoryDataService, + diffData, + currentUser) } private fun getDiffComputer(changesProvider: GHPRChangesProvider, change: Change): DiffUserDataKeysEx.DiffComputer? { diff --git a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/changes/GHPRSuggestedChangeHelper.kt b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/changes/GHPRSuggestedChangeHelper.kt new file mode 100644 index 000000000000..497f8cdc28f1 --- /dev/null +++ b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/changes/GHPRSuggestedChangeHelper.kt @@ -0,0 +1,52 @@ +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package org.jetbrains.plugins.github.pullrequest.ui.changes + +import com.intellij.collaboration.ui.SingleValueModel +import com.intellij.openapi.Disposable +import com.intellij.openapi.editor.EditorFactory +import com.intellij.openapi.progress.EmptyProgressIndicator +import com.intellij.openapi.project.Project +import git4idea.branch.GitBranchUtil +import git4idea.repo.GitRepository +import git4idea.repo.GitRepository.GIT_REPO_CHANGE +import git4idea.repo.GitRepositoryChangeListener +import org.jetbrains.plugins.github.pullrequest.data.provider.GHPRDetailsDataProvider +import org.jetbrains.plugins.github.pullrequest.data.provider.GHPRReviewDataProvider + +class GHPRSuggestedChangeHelper( + project: Project, + parentDisposable: Disposable, + val repository: GitRepository, + private val reviewDataProvider: GHPRReviewDataProvider, + private val detailsDataProvider: GHPRDetailsDataProvider +) { + val suggestedChangeCommitMessageDocument by lazy(LazyThreadSafetyMode.NONE) { + EditorFactory.getInstance().createDocument("") + } + + val isCorrectBranch by lazy(LazyThreadSafetyMode.NONE) { + SingleValueModel(isCorrectBranchWithPullRequestSource()) + } + + init { + project.messageBus + .connect(parentDisposable) + .subscribe(GIT_REPO_CHANGE, GitRepositoryChangeListener { + val currentBranchName = it.currentBranch?.name ?: return@GitRepositoryChangeListener + val pullRequestSourceBranchName = detailsDataProvider.loadedDetails?.headRefName ?: return@GitRepositoryChangeListener + + isCorrectBranch.value = currentBranchName == pullRequestSourceBranchName + }) + } + + fun resolveThread(threadId: String) { + reviewDataProvider.resolveThread(EmptyProgressIndicator(), threadId) + } + + private fun isCorrectBranchWithPullRequestSource(): Boolean { + val currentBranchName = GitBranchUtil.getBranchNameOrRev(repository) + val pullRequestSourceBranchName = detailsDataProvider.loadedDetails?.headRefName ?: return false + + return currentBranchName == pullRequestSourceBranchName + } +}
\ No newline at end of file diff --git a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/timeline/GHPRFileEditorComponentFactory.kt b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/timeline/GHPRFileEditorComponentFactory.kt index 8449a3d8489e..7cfa1903b687 100644 --- a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/timeline/GHPRFileEditorComponentFactory.kt +++ b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/timeline/GHPRFileEditorComponentFactory.kt @@ -36,6 +36,7 @@ import org.jetbrains.plugins.github.pullrequest.data.provider.GHPRCommentsDataPr import org.jetbrains.plugins.github.pullrequest.data.provider.GHPRDetailsDataProvider import org.jetbrains.plugins.github.pullrequest.data.provider.GHPRReviewDataProvider import org.jetbrains.plugins.github.pullrequest.ui.GHApiLoadingErrorHandler +import org.jetbrains.plugins.github.pullrequest.ui.changes.GHPRSuggestedChangeHelper import org.jetbrains.plugins.github.ui.avatars.GHAvatarIconsProvider import org.jetbrains.plugins.github.ui.component.GHHandledErrorPanelModel import org.jetbrains.plugins.github.ui.component.GHHtmlErrorPanel @@ -104,11 +105,20 @@ internal class GHPRFileEditorComponentFactory(private val project: Project, val header = GHPRTitleComponent.create(project, detailsModel, editor.detailsData) + val suggestedChangesHelper = GHPRSuggestedChangeHelper(project, + uiDisposable, + editor.repositoryDataService.remoteCoordinates.repository, + editor.reviewData, + editor.detailsData) val timeline = GHPRTimelineComponent(detailsModel, timelineModel, - createItemComponentFactory(project, editor.detailsData, editor.commentsData, editor.reviewData, - reviewThreadsModelsProvider, - editor.avatarIconsProvider, editor.securityService.currentUser)).apply { + createItemComponentFactory( + project, + editor.detailsData, editor.commentsData, editor.reviewData, + reviewThreadsModelsProvider, editor.avatarIconsProvider, + suggestedChangesHelper, + editor.securityService.currentUser + )).apply { border = JBUI.Borders.empty(16, 0) } val errorPanel = GHHtmlErrorPanel.create(errorModel) @@ -201,15 +211,19 @@ internal class GHPRFileEditorComponentFactory(private val project: Project, reviewDataProvider: GHPRReviewDataProvider, reviewThreadsModelsProvider: GHPRReviewsThreadsModelsProvider, avatarIconsProvider: GHAvatarIconsProvider, + suggestedChangeHelper: GHPRSuggestedChangeHelper, currentUser: GHUser) : GHPRTimelineItemComponentFactory { val selectInToolWindowHelper = GHPRSelectInToolWindowHelper(project, detailsModel.value) val diffFactory = GHPRReviewThreadDiffComponentFactory(project, EditorFactory.getInstance()) val eventsFactory = GHPRTimelineEventComponentFactoryImpl(avatarIconsProvider) - return GHPRTimelineItemComponentFactory(project, detailsDataProvider, commentsDataProvider, reviewDataProvider, - avatarIconsProvider, reviewThreadsModelsProvider, diffFactory, - eventsFactory, - selectInToolWindowHelper, currentUser) + return GHPRTimelineItemComponentFactory( + project, + detailsDataProvider, commentsDataProvider, reviewDataProvider, avatarIconsProvider, reviewThreadsModelsProvider, + diffFactory, + eventsFactory, selectInToolWindowHelper, + suggestedChangeHelper, currentUser + ) } }
\ No newline at end of file diff --git a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/timeline/GHPRTimelineItemComponentFactory.kt b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/timeline/GHPRTimelineItemComponentFactory.kt index d5fbca7d56de..33b9155aef35 100644 --- a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/timeline/GHPRTimelineItemComponentFactory.kt +++ b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/timeline/GHPRTimelineItemComponentFactory.kt @@ -43,6 +43,7 @@ import org.jetbrains.plugins.github.pullrequest.data.provider.GHPRDetailsDataPro import org.jetbrains.plugins.github.pullrequest.data.provider.GHPRReviewDataProvider import org.jetbrains.plugins.github.pullrequest.ui.GHEditableHtmlPaneHandle import org.jetbrains.plugins.github.pullrequest.ui.GHTextActions +import org.jetbrains.plugins.github.pullrequest.ui.changes.GHPRSuggestedChangeHelper import org.jetbrains.plugins.github.ui.avatars.GHAvatarIconsProvider import org.jetbrains.plugins.github.ui.util.GHUIUtil import org.jetbrains.plugins.github.ui.util.HtmlEditorPane @@ -61,6 +62,7 @@ class GHPRTimelineItemComponentFactory(private val project: Project, private val reviewDiffComponentFactory: GHPRReviewThreadDiffComponentFactory, private val eventComponentFactory: GHPRTimelineEventComponentFactory<GHPRTimelineEvent>, private val selectInToolWindowHelper: GHPRSelectInToolWindowHelper, + private val suggestedChangeHelper: GHPRSuggestedChangeHelper, private val currentUser: GHUser) : TimelineItemComponentFactory<GHPRTimelineItem> { override fun createComponent(item: GHPRTimelineItem): Item { @@ -166,11 +168,10 @@ class GHPRTimelineItemComponentFactory(private val project: Project, if (panelHandle != null) add(panelHandle.panel) add(GHPRReviewThreadsPanel.create(reviewThreadsModel) { GHPRReviewThreadComponent.createWithDiff(project, it, - reviewDataProvider, - detailsDataProvider, - selectInToolWindowHelper, + reviewDataProvider, avatarIconsProvider, reviewDiffComponentFactory, - avatarIconsProvider, currentUser) + selectInToolWindowHelper, suggestedChangeHelper, + currentUser) }) } val actionText = when (review.state) { diff --git a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/toolwindow/GHPRViewComponentFactory.kt b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/toolwindow/GHPRViewComponentFactory.kt index 0ab95f3c8f6c..511d65648f41 100644 --- a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/toolwindow/GHPRViewComponentFactory.kt +++ b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/toolwindow/GHPRViewComponentFactory.kt @@ -112,7 +112,10 @@ internal class GHPRViewComponentFactory(private val actionManager: ActionManager private val repository: GitRepository get() = dataContext.repositoryDataService.remoteCoordinates.repository private val diffRequestProducer: DiffRequestChainProducer = - object : GHPRDiffRequestChainProducer(project, dataProvider, dataContext.avatarIconsProvider, dataContext.securityService.currentUser) { + object : GHPRDiffRequestChainProducer(project, + dataProvider, dataContext.avatarIconsProvider, + dataContext.repositoryDataService, + dataContext.securityService.currentUser) { private val viewedStateSupport = GHPRViewedStateDiffSupportImpl(repository, dataProvider.viewedStateData) diff --git a/plugins/github/test/org/jetbrains/plugins/github/pullrequest/comment/GHSuggestionHtmlSyntaxHighlighterTest.kt b/plugins/github/test/org/jetbrains/plugins/github/pullrequest/comment/GHSuggestionHtmlSyntaxHighlighterTest.kt index 84453779783f..fab4bfc003c8 100644 --- a/plugins/github/test/org/jetbrains/plugins/github/pullrequest/comment/GHSuggestionHtmlSyntaxHighlighterTest.kt +++ b/plugins/github/test/org/jetbrains/plugins/github/pullrequest/comment/GHSuggestionHtmlSyntaxHighlighterTest.kt @@ -122,7 +122,7 @@ class GHSuggestionHtmlSyntaxHighlighterTest { } private fun checkSuggestedChange(expected: List<String>, diffHunk: String, afterStartLine: Int, afterEndLine: Int) { - val suggestedChangeInfo = GHSuggestedChangeInfo.create(diffHunk, "", afterStartLine, afterEndLine) + val suggestedChangeInfo = GHSuggestedChange.create("", diffHunk, "", afterStartLine, afterEndLine) val changedContent = suggestedChangeInfo.cutChangedContent() assertArrayEquals(expected.toTypedArray(), changedContent.toTypedArray()) diff --git a/plugins/gradle/java/src/service/project/wizard/AbstractGradleModuleBuilder.java b/plugins/gradle/java/src/service/project/wizard/AbstractGradleModuleBuilder.java index fd9870199c5c..6da7ce69737b 100644 --- a/plugins/gradle/java/src/service/project/wizard/AbstractGradleModuleBuilder.java +++ b/plugins/gradle/java/src/service/project/wizard/AbstractGradleModuleBuilder.java @@ -8,6 +8,8 @@ import com.intellij.ide.projectWizard.ProjectSettingsStep; import com.intellij.ide.util.EditorHelper; import com.intellij.ide.util.projectWizard.*; import com.intellij.openapi.Disposable; +import com.intellij.openapi.GitSilentFileAdder; +import com.intellij.openapi.GitSilentFileAdderProvider; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ModalityState; import com.intellij.openapi.diagnostic.Logger; @@ -255,7 +257,14 @@ public abstract class AbstractGradleModuleBuilder extends AbstractExternalModule } private void createWrapper(@NotNull Project project, @NotNull Runnable callback) { - GradleExecutionUtil.ensureInstalledWrapper(project, rootProjectPath, gradleVersion, callback); + GitSilentFileAdder vcsFileAdder = GitSilentFileAdderProvider.create(project); + vcsFileAdder.markFileForAdding(rootProjectPath.resolve("gradle"), true); + vcsFileAdder.markFileForAdding(rootProjectPath.resolve("gradlew"), false); + vcsFileAdder.markFileForAdding(rootProjectPath.resolve("gradlew.bat"), false); + GradleExecutionUtil.ensureInstalledWrapper(project, rootProjectPath, gradleVersion, () -> { + vcsFileAdder.finish(); + callback.run(); + }); } public void configureBuildScript(@NotNull Consumer<GradleBuildScriptBuilder<?>> configure) { diff --git a/plugins/gradle/java/src/service/project/wizard/groovy/GradleGroovyNewProjectWizard.kt b/plugins/gradle/java/src/service/project/wizard/groovy/GradleGroovyNewProjectWizard.kt index c62840ccbf04..0570757d0272 100644 --- a/plugins/gradle/java/src/service/project/wizard/groovy/GradleGroovyNewProjectWizard.kt +++ b/plugins/gradle/java/src/service/project/wizard/groovy/GradleGroovyNewProjectWizard.kt @@ -9,6 +9,14 @@ import com.intellij.ide.projectWizard.NewProjectWizardCollector.BuildSystem.logP import com.intellij.ide.projectWizard.NewProjectWizardCollector.BuildSystem.logSdkChanged import com.intellij.ide.projectWizard.NewProjectWizardCollector.BuildSystem.logSdkFinished import com.intellij.ide.projectWizard.NewProjectWizardCollector.BuildSystem.logVersionChanged +import com.intellij.ide.projectWizard.generators.AssetsNewProjectWizardStep +import com.intellij.ide.projectWizard.generators.AssetsNewProjectWizardStep.Companion.withJavaSampleCodeAsset +import com.intellij.ide.starters.local.StandardAssetsProvider +import com.intellij.ide.wizard.GitNewProjectWizardData.Companion.gitData +import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.name +import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.path +import com.intellij.ide.wizard.NewProjectWizardStep +import com.intellij.ide.wizard.chain import com.intellij.openapi.application.runWriteAction import com.intellij.openapi.externalSystem.service.project.manage.ExternalProjectsManagerImpl import com.intellij.openapi.project.Project @@ -16,6 +24,8 @@ import com.intellij.openapi.roots.ui.distribution.LocalDistributionInfo import com.intellij.openapi.vfs.VfsUtil import com.intellij.ui.dsl.builder.BottomGap import com.intellij.ui.dsl.builder.Panel +import org.jetbrains.plugins.gradle.service.project.wizard.GradleJavaNewProjectWizardData.Companion.addSampleCode +import org.jetbrains.plugins.gradle.service.project.wizard.GradleJavaNewProjectWizardData.Companion.groupId import org.jetbrains.plugins.gradle.service.project.wizard.GradleNewProjectWizardStep import org.jetbrains.plugins.gradle.service.project.wizard.generateModuleBuilder import org.jetbrains.plugins.gradle.util.GradleConstants @@ -29,7 +39,7 @@ class GradleGroovyNewProjectWizard : BuildSystemGroovyNewProjectWizard { override val ordinal: Int = 2 - override fun createStep(parent: GroovyNewProjectWizard.Step): GradleNewProjectWizardStep<GroovyNewProjectWizard.Step> = Step(parent) + override fun createStep(parent: GroovyNewProjectWizard.Step): NewProjectWizardStep = Step(parent).chain(::AssetsStep) class Step(parent: GroovyNewProjectWizard.Step) : GradleNewProjectWizardStep<GroovyNewProjectWizard.Step>(parent), @@ -96,4 +106,13 @@ class GradleGroovyNewProjectWizard : BuildSystemGroovyNewProjectWizard { versionProperty.afterChange { logVersionChanged() } } } + + private class AssetsStep(parent: NewProjectWizardStep) : AssetsNewProjectWizardStep(parent) { + override fun setupAssets(project: Project) { + outputDirectory = "$path/$name" + if (gitData?.git == true) { + addAssets(StandardAssetsProvider().getGradleIgnoreAssets()) + } + } + } }
\ No newline at end of file diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/target/GradleServerEnvironmentSetupImpl.kt b/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/target/GradleServerEnvironmentSetupImpl.kt index ea739cbeb357..afb860db64a1 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/target/GradleServerEnvironmentSetupImpl.kt +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/target/GradleServerEnvironmentSetupImpl.kt @@ -164,11 +164,11 @@ internal class GradleServerEnvironmentSetupImpl(private val project: Project, for (localPath in localPathsToMap) { if (targetPathMapper != null && targetPathMapper.canReplaceLocal(localPath)) { val targetPath = targetPathMapper.convertToRemote(localPath) - mapperInitScript.append("ext.pathMapper.put(\"${toGroovyString(localPath)}\", \"${toGroovyString(targetPath)}\")\n") + mapperInitScript.append("ext.pathMapper.put(${toGroovyString(localPath)}, ${toGroovyString(targetPath)})\n") } else if (pathMappingSettings.canReplaceLocal(localPath)) { val targetPath = pathMappingSettings.convertToRemote(localPath) - mapperInitScript.append("ext.pathMapper.put(\"${toGroovyString(localPath)}\", \"${toGroovyString(targetPath)}\")\n") + mapperInitScript.append("ext.pathMapper.put(${toGroovyString(localPath)}, ${toGroovyString(targetPath)})\n") } } @@ -179,7 +179,7 @@ internal class GradleServerEnvironmentSetupImpl(private val project: Project, if (javaRuntime != null) { val targetJavaExecutablePath = arrayOf(javaRuntime.homePath, "bin", java).joinToString(platform.fileSeparator.toString()) mapperInitScript.append( - "ext.pathMapper.put(\"${targetJavaExecutablePathMappingKey}\", \"${toGroovyString(targetJavaExecutablePath)}\")\n") + "ext.pathMapper.put(\"${targetJavaExecutablePathMappingKey}\", ${toGroovyString(targetJavaExecutablePath)})\n") } else { mapperInitScript.append("ext.pathMapper.put(\"${targetJavaExecutablePathMappingKey}\", \"${java}\")\n") diff --git a/plugins/grazie/resources/META-INF/plugin.xml b/plugins/grazie/resources/META-INF/plugin.xml index a94bcd931704..ad920fe1b2ce 100644 --- a/plugins/grazie/resources/META-INF/plugin.xml +++ b/plugins/grazie/resources/META-INF/plugin.xml @@ -4,19 +4,22 @@ <vendor>JetBrains</vendor> <description><![CDATA[ - <p>Provides intelligent spelling and grammar checks for text that you write in the IDE.</p> + <p>Intelligent spelling and grammar checks for any text you write in the IDE.</p> <ul> - <li>Supports over 15 languages, including English, German, Russian, Chinese, and others.</li> - <li>Recognizes natural language constructs in programming languages (Python, Java and others), - markup languages (Latex, Markdown, XML, HTML), comments, commits messages, and more.</li> + <li> + Supports over 20 languages, including English, German, Russian, and Chinese. + English is enabled by default. + To add other languages, open <b>Settings/Preferences | Editor | Natural Languages</b>. + </li> + <li> + Works with natural languages in programming language constructs (Python, Java, and others), + markup languages (Markdown, HTML, XML, and others), comments, and commit messages. + </li> <li>Uses <a href="https://www.languagetool.org/">LanguageTool</a> as its proofreading engine.</li> </ul> - <p>English is enabled by default when you install the plugin. To enable other languages, open <strong>Settings/Preferences</strong> - and select <strong>Editor</strong> > <strong>Natural Languages</strong>.</p> - - <p><strong>NOTE:</strong> By default, all verification is performed locally, inside your IDE.</p> + <p>Data privacy: all verification is performed locally, inside your IDE.</p> ]]></description> <content> diff --git a/plugins/grazie/src/intellij.grazie.core.iml b/plugins/grazie/src/intellij.grazie.core.iml index cc2679e09c96..7490a67f3dc2 100644 --- a/plugins/grazie/src/intellij.grazie.core.iml +++ b/plugins/grazie/src/intellij.grazie.core.iml @@ -89,9 +89,9 @@ <orderEntry type="module" module-name="intellij.platform.ide" /> <orderEntry type="module-library"> <library name="org.languagetool:languagetool-core:5.6" type="repository"> - <properties include-transitive-deps="false" maven-id="org.languagetool:languagetool-core:5.6.1-grz" /> + <properties include-transitive-deps="false" maven-id="org.languagetool:languagetool-core:5.6.2-grz" /> <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/org/languagetool/languagetool-core/5.6.1-grz/languagetool-core-5.6.1-grz.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/languagetool/languagetool-core/5.6.2-grz/languagetool-core-5.6.2-grz.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES /> diff --git a/plugins/groovy/groovy-psi/resources/inlayProviders/groovy.parameters.hints/type.parameter.list.groovy b/plugins/groovy/groovy-psi/resources/inlayProviders/groovy.parameters.hints/type.parameter.list.groovy index 8a603f5c55fd..2ab87c65cc7f 100644 --- a/plugins/groovy/groovy-psi/resources/inlayProviders/groovy.parameters.hints/type.parameter.list.groovy +++ b/plugins/groovy/groovy-psi/resources/inlayProviders/groovy.parameters.hints/type.parameter.list.groovy @@ -1,2 +1,8 @@ -def m1(a) { } -m1(1)
\ No newline at end of file +static def foo(a, b) { + b.add(a) +} + +static def bar() { + foo(1, [1]) + foo("", [""]) +}
\ No newline at end of file diff --git a/plugins/groovy/groovy-psi/resources/messages/GroovyBundle.properties b/plugins/groovy/groovy-psi/resources/messages/GroovyBundle.properties index 1d8b805a8e26..bb9bf8fd70b3 100644 --- a/plugins/groovy/groovy-psi/resources/messages/GroovyBundle.properties +++ b/plugins/groovy/groovy-psi/resources/messages/GroovyBundle.properties @@ -742,7 +742,7 @@ settings.inlay.type.parameter.list=Type parameter list settings.inlay.show.type.hints.for=Show type hints for: inlay.groovy.implicit.null.argument.hint.description=Calls that pass no arguments to methods that take one argument, which means that an implicit null will be passed as the argument. inlay.groovy.parameters.hints.inferred.parameter.types=Inferred parameter types in methods. -inlay.groovy.parameters.hints.type.parameter.list=Methods with one or more inferred type parameters. +inlay.groovy.parameters.hints.type.parameter.list=Methods with one or more inferred type parameters. Requires the <b>Inferred parameter types<b/> hint. intention.name.replace.with.in=Replace ':' with 'in' intention.name.activate.back=Activate back intention.name.cast.to.0=Cast to {0} @@ -1091,6 +1091,8 @@ gdsl.trusted.project.answer.dont.trust=No label.groovy.sdk=Groovy SDK: local.variable.types=Local variable types settings.inlay.show.variable.type.hints=Show local variable type hints +# suppress inspection "UnusedProperty" +inlay.groovy.variable.type.hints.description=Local variable types at declarations where they are not specified explicitly. settings.inlay.put.type.hint.before.identifier=Put type hint before identifier dialog.title.select.groovy.sdk=Select Groovy SDK dialog.title.specify.groovy.sdk=Specify Groovy SDK home @@ -1110,3 +1112,4 @@ documentation.inferred.type.label=Inferred type documentation.gdk.label=GDK notification.group.groovy.dsl=Groovy DSL errors notification.group.grape=Groovy @Grab annotation processed +shows.parameter.names.at.function.call.sites=Shows parameter names at function call sites. diff --git a/plugins/groovy/resources/inlayProviders/Parameters/preview.groovy b/plugins/groovy/resources/inlayProviders/Parameters/preview.groovy new file mode 100644 index 000000000000..efd2b44c6aa3 --- /dev/null +++ b/plugins/groovy/resources/inlayProviders/Parameters/preview.groovy @@ -0,0 +1,5 @@ +hi("Jane") + +def hi(name) { + println("Hello, $name!") +}
\ No newline at end of file diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInsight/hint/GroovyInlayParameterHintsProvider.kt b/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInsight/hint/GroovyInlayParameterHintsProvider.kt index acfccf867fd0..c788dae40dc7 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInsight/hint/GroovyInlayParameterHintsProvider.kt +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInsight/hint/GroovyInlayParameterHintsProvider.kt @@ -10,6 +10,7 @@ import com.intellij.openapi.util.text.StringUtil import com.intellij.psi.PsiElement import com.intellij.psi.PsiMethod import com.intellij.psi.PsiMirrorElement +import org.jetbrains.plugins.groovy.GroovyBundle import org.jetbrains.plugins.groovy.editor.shouldHideInlayHints import org.jetbrains.plugins.groovy.lang.psi.api.GrFunctionalExpression import org.jetbrains.plugins.groovy.lang.psi.api.GroovyMethodResult @@ -46,6 +47,8 @@ class GroovyInlayParameterHintsProvider : InlayParameterHintsProvider { override fun getBlackListDependencyLanguage(): Language = JavaLanguage.INSTANCE + override fun getDescription(): String = GroovyBundle.message("shows.parameter.names.at.function.call.sites") + private companion object { private val blackList = setOf( diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInsight/hint/types/GroovyLocalVariableTypeHintsInlayProvider.kt b/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInsight/hint/types/GroovyLocalVariableTypeHintsInlayProvider.kt index 151707132aaf..819acaca5b00 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInsight/hint/types/GroovyLocalVariableTypeHintsInlayProvider.kt +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInsight/hint/types/GroovyLocalVariableTypeHintsInlayProvider.kt @@ -1,10 +1,10 @@ -// Copyright 2000-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package org.jetbrains.plugins.groovy.codeInsight.hint.types import com.intellij.codeInsight.hints.* import com.intellij.openapi.editor.Editor import com.intellij.psi.PsiFile -import com.intellij.ui.layout.* +import com.intellij.ui.dsl.builder.panel import org.jetbrains.plugins.groovy.GroovyBundle import javax.swing.JPanel @@ -13,7 +13,10 @@ class GroovyLocalVariableTypeHintsInlayProvider : InlayHintsProvider<GroovyLocal private val ourKey: SettingsKey<Settings> = SettingsKey("groovy.variable.type.hints") } - override fun getCollectorFor(file: PsiFile, editor: Editor, settings: Settings, sink: InlayHintsSink): InlayHintsCollector = GroovyLocalVariableTypeHintsCollector(editor, settings) + override fun getCollectorFor(file: PsiFile, + editor: Editor, + settings: Settings, + sink: InlayHintsSink): InlayHintsCollector = GroovyLocalVariableTypeHintsCollector(editor, settings) override fun createSettings(): Settings = Settings() @@ -35,14 +38,27 @@ def foo() { } """.trimIndent() - override fun createConfigurable(settings: Settings): ImmediateConfigurable = object : ImmediateConfigurable { - override val cases: List<ImmediateConfigurable.Case> = listOf( - ImmediateConfigurable.Case(GroovyBundle.message("settings.inlay.put.type.hint.before.identifier"), "inferred.parameter.types", settings::insertBeforeIdentifier), - ) + override fun createConfigurable(settings: Settings): ImmediateConfigurable = object: ImmediateConfigurable { + val insertTypeHintBeforeIdentifier: Boolean = settings.insertBeforeIdentifier - override fun createComponent(listener: ChangeListener): JPanel = panel {} + override fun createComponent(listener: ChangeListener): JPanel = panel { + row { + checkBox(GroovyBundle.message("settings.inlay.put.type.hint.before.identifier")) + .applyToComponent { + isSelected = insertTypeHintBeforeIdentifier + addItemListener { + listener.settingsChanged() + settings.insertBeforeIdentifier = this@applyToComponent.isSelected + } + } + } + } - override val mainCheckboxText: String - get() = GroovyBundle.message("settings.inlay.show.variable.type.hints") + override fun reset() { + settings.insertBeforeIdentifier = insertTypeHintBeforeIdentifier + super.reset() + } + + override val mainCheckboxText: String get() = GroovyBundle.message("settings.inlay.show.variable.type.hints") } }
\ No newline at end of file diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInsight/hint/types/GroovyParameterTypeHintsCollector.kt b/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInsight/hint/types/GroovyParameterTypeHintsCollector.kt index 2ff28167c6a1..e879ae2a7d8c 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInsight/hint/types/GroovyParameterTypeHintsCollector.kt +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInsight/hint/types/GroovyParameterTypeHintsCollector.kt @@ -4,6 +4,7 @@ package org.jetbrains.plugins.groovy.codeInsight.hint.types import com.intellij.codeInsight.hints.FactoryInlayHintsCollector import com.intellij.codeInsight.hints.InlayHintsSink import com.intellij.codeInsight.hints.presentation.InlayPresentation +import com.intellij.codeInsight.hints.settings.CASE_KEY import com.intellij.openapi.editor.Editor import com.intellij.openapi.project.DumbService import com.intellij.psi.CommonClassNames @@ -32,7 +33,7 @@ class GroovyParameterTypeHintsCollector(editor: Editor, if (DumbService.isDumb(element.project) || element.project.isDefault) { return false } - if (!settings.showInferredParameterTypes) { + if (!settings.showInferredParameterTypes && CASE_KEY.get(editor) == null) { return false } PsiUtilCore.ensureValid(element) diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInsight/hint/types/GroovyParameterTypeHintsInlayProvider.kt b/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInsight/hint/types/GroovyParameterTypeHintsInlayProvider.kt index 3a3e2852e64b..bc79fb3bbe99 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInsight/hint/types/GroovyParameterTypeHintsInlayProvider.kt +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInsight/hint/types/GroovyParameterTypeHintsInlayProvider.kt @@ -37,8 +37,12 @@ class GroovyParameterTypeHintsInlayProvider : InlayHintsProvider<GroovyParameter override val group: InlayGroup get() = InlayGroup.TYPES_GROUP - override fun getProperty(key: String): String { - return GroovyBundle.message(key) + override fun getCaseDescription(case: ImmediateConfigurable.Case): String? { + when(case.id) { + "inferred.parameter.types" -> return GroovyBundle.message("inlay.groovy.parameters.hints.inferred.parameter.types") + "type.parameter.list" -> return GroovyBundle.message("inlay.groovy.parameters.hints.type.parameter.list") + } + return null } override val previewText: String diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/config/wizard/IntelliJGroovyNewProjectWizard.kt b/plugins/groovy/src/org/jetbrains/plugins/groovy/config/wizard/IntelliJGroovyNewProjectWizard.kt index 3d5b7be2bf24..ba6780a2dbbc 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/config/wizard/IntelliJGroovyNewProjectWizard.kt +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/config/wizard/IntelliJGroovyNewProjectWizard.kt @@ -10,10 +10,16 @@ import com.intellij.ide.projectWizard.NewProjectWizardCollector.BuildSystem.logM import com.intellij.ide.projectWizard.NewProjectWizardCollector.BuildSystem.logModuleNameChanged import com.intellij.ide.projectWizard.NewProjectWizardCollector.BuildSystem.logSdkChanged import com.intellij.ide.projectWizard.NewProjectWizardCollector.BuildSystem.logSdkFinished +import com.intellij.ide.projectWizard.generators.AssetsNewProjectWizardStep import com.intellij.ide.projectWizard.generators.IntelliJNewProjectWizardStep +import com.intellij.ide.starters.local.StandardAssetsProvider import com.intellij.ide.util.EditorHelper import com.intellij.ide.util.projectWizard.ModuleBuilder +import com.intellij.ide.wizard.GitNewProjectWizardData.Companion.gitData +import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.name +import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.path import com.intellij.ide.wizard.NewProjectWizardStep +import com.intellij.ide.wizard.chain import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.runReadAction import com.intellij.openapi.module.Module @@ -43,13 +49,12 @@ class IntelliJGroovyNewProjectWizard : BuildSystemGroovyNewProjectWizard { override val ordinal: Int = 0 - override fun createStep(parent: GroovyNewProjectWizard.Step): NewProjectWizardStep = Step(parent) + override fun createStep(parent: GroovyNewProjectWizard.Step): NewProjectWizardStep = Step(parent).chain(::AssetsStep) class Step(parent: GroovyNewProjectWizard.Step) : IntelliJNewProjectWizardStep<GroovyNewProjectWizard.Step>(parent), BuildSystemGroovyNewProjectWizardData by parent { - override fun Panel.customOptions() { row(GroovyBundle.message("label.groovy.sdk")) { groovySdkComboBox(context, groovySdkProperty) @@ -107,8 +112,6 @@ class IntelliJGroovyNewProjectWizard : BuildSystemGroovyNewProjectWizard { } } - - private fun createCompositionSettings(project: Project, container: LibrariesContainer): LibraryCompositionSettings? { val libraryDescription = GroovyLibraryDescription() val versionFilter = FrameworkLibraryVersionFilter.ALL @@ -136,6 +139,14 @@ class IntelliJGroovyNewProjectWizard : BuildSystemGroovyNewProjectWizard { else -> return null } } + } + private class AssetsStep(parent: NewProjectWizardStep) : AssetsNewProjectWizardStep(parent) { + override fun setupAssets(project: Project) { + outputDirectory = "$path/$name" + if (gitData?.git == true) { + addAssets(StandardAssetsProvider().getIntelliJIgnoreAssets()) + } + } } }
\ No newline at end of file diff --git a/plugins/ide-features-trainer/intellij.featuresTrainer.iml b/plugins/ide-features-trainer/intellij.featuresTrainer.iml index b63c87c43543..14fb23fe45a2 100644 --- a/plugins/ide-features-trainer/intellij.featuresTrainer.iml +++ b/plugins/ide-features-trainer/intellij.featuresTrainer.iml @@ -49,5 +49,6 @@ <orderEntry type="library" name="Velocity" level="project" /> <orderEntry type="library" name="kotlinx-serialization-core" level="project" /> <orderEntry type="library" name="kotlinx-serialization-json" level="project" /> + <orderEntry type="module" module-name="intellij.platform.lvcs.impl" /> </component> </module>
\ No newline at end of file diff --git a/plugins/ide-features-trainer/res/META-INF/plugin.xml b/plugins/ide-features-trainer/res/META-INF/plugin.xml index 2928f28b84c6..044ca2e32328 100644 --- a/plugins/ide-features-trainer/res/META-INF/plugin.xml +++ b/plugins/ide-features-trainer/res/META-INF/plugin.xml @@ -126,7 +126,7 @@ restartRequired="false"/> <registryKey key="ift.send.onboarding.feedback" description="Where to send onboarding lessons feedback (nowhere, staging, production)." - defaultValue="nowhere" + defaultValue="production" restartRequired="false"/> <registryKey key="ift.adapt.to.not.native.localization" description="Lessons logic will be changed like using not native localization." diff --git a/plugins/ide-features-trainer/src/training/featuresSuggester/FeatureSuggestersManager.kt b/plugins/ide-features-trainer/src/training/featuresSuggester/FeatureSuggestersManager.kt index 5d2b165f05e2..fc91a1a7db5f 100644 --- a/plugins/ide-features-trainer/src/training/featuresSuggester/FeatureSuggestersManager.kt +++ b/plugins/ide-features-trainer/src/training/featuresSuggester/FeatureSuggestersManager.kt @@ -35,7 +35,6 @@ class FeatureSuggestersManager(val project: Project) : Disposable { } private fun handleAction(action: Action) { - if (project.isDisposed) return val language = action.language ?: return val suggesters = FeatureSuggester.suggesters .filter { it.languages.find { id -> id == Language.ANY.id || id == language.id } != null } diff --git a/plugins/ide-features-trainer/src/training/featuresSuggester/SuggestingUtils.kt b/plugins/ide-features-trainer/src/training/featuresSuggester/SuggestingUtils.kt index 71509d7afec1..2a714681023d 100644 --- a/plugins/ide-features-trainer/src/training/featuresSuggester/SuggestingUtils.kt +++ b/plugins/ide-features-trainer/src/training/featuresSuggester/SuggestingUtils.kt @@ -28,7 +28,7 @@ internal object SuggestingUtils { set(value) = Registry.get("feature.suggester.force.show.suggestions").setValue(value) fun isActionsProcessingEnabled(project: Project): Boolean { - return !DumbService.isDumb(project) && FeatureSuggesterSettings.instance().isAnySuggesterEnabled + return !project.isDisposed && !DumbService.isDumb(project) && FeatureSuggesterSettings.instance().isAnySuggesterEnabled } fun handleAction(project: Project, action: Action) { diff --git a/plugins/ide-features-trainer/src/training/learn/lesson/general/assistance/LocalHistoryLesson.kt b/plugins/ide-features-trainer/src/training/learn/lesson/general/assistance/LocalHistoryLesson.kt index 1cbd795858da..90570a4544a0 100644 --- a/plugins/ide-features-trainer/src/training/learn/lesson/general/assistance/LocalHistoryLesson.kt +++ b/plugins/ide-features-trainer/src/training/learn/lesson/general/assistance/LocalHistoryLesson.kt @@ -2,6 +2,8 @@ package training.learn.lesson.general.assistance import com.intellij.CommonBundle +import com.intellij.history.integration.ui.actions.LocalHistoryGroup +import com.intellij.history.integration.ui.actions.ShowHistoryAction import com.intellij.icons.AllIcons import com.intellij.idea.ActionsBundle import com.intellij.openapi.actionSystem.CommonDataKeys @@ -49,7 +51,6 @@ import training.ui.LearningUiHighlightingManager import training.ui.LearningUiHighlightingManager.HighlightingOptions import training.ui.LearningUiUtil import training.util.LessonEndInfo -import training.util.isToStringContains import java.awt.Component import java.awt.Point import java.awt.Rectangle @@ -165,7 +166,7 @@ class LocalHistoryLesson : KLesson("CodeAssistance.LocalHistory", LessonsBundle. text(LessonsBundle.message("local.history.invoke.context.menu", strong(localHistoryActionText))) triggerAndBorderHighlight().component { ui: EditorComponentImpl -> ui.editor == editor } triggerAndFullHighlight().component { ui: ActionMenu -> - ui.text.isToStringContains(localHistoryActionText) + isClassEqual(ui.anAction, LocalHistoryGroup::class.java) } test { ideFrame { robot().rightClick(editor.component) } @@ -176,14 +177,14 @@ class LocalHistoryLesson : KLesson("CodeAssistance.LocalHistory", LessonsBundle. val showHistoryActionText = ActionsBundle.actionText(it).dropMnemonic() text(LessonsBundle.message("local.history.show.history", strong(localHistoryActionText), strong(showHistoryActionText))) triggerAndFullHighlight { clearPreviousHighlights = false }.component { ui: ActionMenuItem -> - ui.text == showHistoryActionText + isClassEqual(ui.anAction, ShowHistoryAction::class.java) } trigger(it) restoreByUi() test { ideFrame { - jMenuItem { item: ActionMenu -> item.text.isToStringContains(localHistoryActionText) }.click() - jMenuItem { item: ActionMenuItem -> item.text == showHistoryActionText }.click() + jMenuItem { item: ActionMenu -> isClassEqual(item.anAction, LocalHistoryGroup::class.java) }.click() + jMenuItem { item: ActionMenuItem -> isClassEqual(item.anAction, ShowHistoryAction::class.java) }.click() } } } @@ -300,6 +301,10 @@ class LocalHistoryLesson : KLesson("CodeAssistance.LocalHistory", LessonsBundle. } } + private fun isClassEqual(value: Any, expectedClass: Class<*>): Boolean { + return value.javaClass.name == expectedClass.name + } + private fun findDiffGutterRect(ui: EditorGutterComponentEx): Rectangle? { val editor = CommonDataKeys.EDITOR.getData(ui as DataProvider) ?: return null val offset = editor.document.charsSequence.indexOf(textToDelete) diff --git a/plugins/kotlin/analysis/src/org/jetbrains/kotlin/idea/caches/project/KotlinStdlibCache.kt b/plugins/kotlin/analysis/src/org/jetbrains/kotlin/idea/caches/project/KotlinStdlibCache.kt index ab5f73e91969..6ec04c971ffc 100644 --- a/plugins/kotlin/analysis/src/org/jetbrains/kotlin/idea/caches/project/KotlinStdlibCache.kt +++ b/plugins/kotlin/analysis/src/org/jetbrains/kotlin/idea/caches/project/KotlinStdlibCache.kt @@ -5,16 +5,23 @@ package org.jetbrains.kotlin.idea.caches.project +import com.intellij.openapi.progress.ProgressManager import com.intellij.openapi.project.Project +import com.intellij.openapi.roots.LibraryOrderEntry import com.intellij.openapi.roots.OrderRootType +import com.intellij.openapi.roots.ProjectFileIndex +import com.intellij.openapi.roots.impl.libraries.LibraryEx +import com.intellij.openapi.util.ThrowableComputable import com.intellij.openapi.vfs.VirtualFile import com.intellij.psi.search.DelegatingGlobalSearchScope import com.intellij.psi.search.GlobalSearchScope +import com.intellij.util.indexing.DumbModeAccessType import com.intellij.util.indexing.FileBasedIndex import org.jetbrains.kotlin.caches.project.cacheInvalidatingOnRootModifications import org.jetbrains.kotlin.idea.configuration.IdeBuiltInsLoadingState import org.jetbrains.kotlin.idea.vfilefinder.KotlinStdlibIndex import org.jetbrains.kotlin.name.FqName +import org.jetbrains.kotlin.utils.addToStdlib.safeAs import java.util.concurrent.ConcurrentHashMap // TODO(kirpichenkov): works only for JVM (see KT-44552) @@ -75,13 +82,15 @@ class KotlinStdlibCacheImpl(val project: Project) : KotlinStdlibCache { override fun toString() = "All files under: $directories" } - private fun libraryScopeContainsIndexedFilesForNames(libraryInfo: LibraryInfo, names: Collection<FqName>) = + private fun libraryScopeContainsIndexedFilesForNames(libraryInfo: LibraryInfo, names: Collection<FqName>): Boolean = names.any { name -> - FileBasedIndex.getInstance().getContainingFiles( - KotlinStdlibIndex.KEY, - name, - LibraryScope(project, libraryInfo.library.rootProvider.getFiles(OrderRootType.CLASSES).toSet()) - ).isNotEmpty() + DumbModeAccessType.RELIABLE_DATA_ONLY.ignoreDumbMode(ThrowableComputable { + FileBasedIndex.getInstance().getContainingFiles( + KotlinStdlibIndex.KEY, + name, + LibraryScope(project, libraryInfo.library.rootProvider.getFiles(OrderRootType.CLASSES).toSet()) + ).isNotEmpty() + }) } private fun libraryScopeContainsIndexedFilesForName(libraryInfo: LibraryInfo, name: FqName) = @@ -108,11 +117,41 @@ class KotlinStdlibCacheImpl(val project: Project) : KotlinStdlibCache { } override fun findStdlibInModuleDependencies(module: IdeaModuleInfo): LibraryInfo? { + ProgressManager.checkCanceled() val stdlibDependency = moduleStdlibDependencyCache.getOrPut(module) { - val stdLib = module.dependencies().firstOrNull { + val moduleSourceInfo = module.safeAs<ModuleSourceInfo>() + val stdLib = moduleSourceInfo?.module?.moduleWithLibrariesScope?.let index@{ scope -> + val stdlibManifests = + FileBasedIndex.getInstance().getContainingFiles( + KotlinStdlibIndex.KEY, + KotlinStdlibIndex.KOTLIN_STDLIB_NAME, + scope + ) + val index = ProjectFileIndex.SERVICE.getInstance(project) + for (manifest in stdlibManifests) { + val orderEntries = index.getOrderEntriesForFile(manifest) + orderEntries.firstNotNullOfOrNull { it.safeAs<LibraryOrderEntry>()?.library.safeAs<LibraryEx>() }?.let { + createLibraryInfo(project, it) + }?.firstOrNull(::isStdlib)?.let { + return@index it + } + } + null + } ?: module.safeAs<LibraryInfo>()?.takeIf(::isStdlib) ?: module.dependencies().firstOrNull { it is LibraryInfo && isStdlib(it) } as LibraryInfo? - StdlibDependency(stdLib) + + val stdlibDependency = StdlibDependency(stdLib) + moduleSourceInfo?.let { _ -> + // all module dependencies have same stdlib as module itself + module.dependencies().forEach { + if (it is LibraryInfo) { + moduleStdlibDependencyCache.putIfAbsent(it, stdlibDependency) + } + } + } + + stdlibDependency } return stdlibDependency.libraryInfo diff --git a/plugins/kotlin/analysis/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinJpsPluginSettings.kt b/plugins/kotlin/analysis/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinJpsPluginSettings.kt index b56c79cd997d..424969401351 100644 --- a/plugins/kotlin/analysis/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinJpsPluginSettings.kt +++ b/plugins/kotlin/analysis/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinJpsPluginSettings.kt @@ -17,6 +17,9 @@ class KotlinJpsPluginSettings(project: Project) : BaseKotlinCompilerSettings<Jps override fun createSettings() = JpsPluginSettings() companion object { + // Use bundled by default because this will work even without internet connection + val DEFAULT_VERSION = KotlinPluginLayout.instance.standaloneCompilerVersion + fun getInstance(project: Project): KotlinJpsPluginSettings? { val jpsPluginSettings = project.getServiceSafe<KotlinJpsPluginSettings>() if (!isUnbundledJpsExperimentalFeatureEnabled(project)) { @@ -27,8 +30,7 @@ class KotlinJpsPluginSettings(project: Project) : BaseKotlinCompilerSettings<Jps if (jpsPluginSettings.settings.version.isEmpty()) { // Encourage user to specify desired Kotlin compiler version in project settings for sake of reproducible builds jpsPluginSettings.settings = jpsPluginSettings.settings.unfrozen().apply { - // Use bundled by default because this will work even without internet connection - version = KotlinPluginLayout.instance.standaloneCompilerVersion + version = DEFAULT_VERSION } } return jpsPluginSettings diff --git a/plugins/kotlin/frontend-independent/resources-en/messages/KotlinBundle.properties b/plugins/kotlin/frontend-independent/resources-en/messages/KotlinBundle.properties index 1f2e073497db..e96861c7052a 100644 --- a/plugins/kotlin/frontend-independent/resources-en/messages/KotlinBundle.properties +++ b/plugins/kotlin/frontend-independent/resources-en/messages/KotlinBundle.properties @@ -1317,6 +1317,8 @@ function.0.returning.1.without.the.corresponding=Function ''{0}'' returning ''{1 redundant.async.call.may.be.reduced.to.0=Redundant ''async'' call may be reduced to ''{0}'' redundant.runcatching.call.may.be.reduced.to.0=Redundant ''runCatching'' call may be reduced to ''{0}'' rename.to.fix.text=Rename to ''{0}'' +rename.only.current.0=Rename only current {0,choice,1#function|2#property} +rename.base.0=Rename base {0,choice,1#function|2#property|3#member|4#method|11#functions|12#properties|13#members|14#methods} rename.declaration.title.0.implements.1.2.of.3={0} {1,choice,1#implements|2#overrides} {2} of {3} wrap.with.coroutine.scope.fix.text=Wrap function body with 'coroutineScope { ... }' wrap.with.coroutine.scope.fix.text2=Wrap call with 'coroutineScope { ... }' @@ -2454,7 +2456,7 @@ inspection.message.inconsistent.parameter.name.for.0=Inconsistent parameter name inspection.kotlin.catch.may.ignore.exception.display.name='catch' block may ignore exception inspection.message.empty.catch.block=Empty catch block -project.wizard.new.project.kotlin.comment=To create a complex project, use the <a>Kotlin Templates generator</a>. +project.wizard.new.project.kotlin.comment=To create a complex project, use the <a>Kotlin Multiplatform</a> generator. add.empty.argument.list=Add empty argument list diff --git a/plugins/kotlin/gradle/gradle-idea/src/org/jetbrains/kotlin/idea/gradle/configuration/cachedCompilerArgumentsRestoring.kt b/plugins/kotlin/gradle/gradle-idea/src/org/jetbrains/kotlin/idea/gradle/configuration/cachedCompilerArgumentsRestoring.kt index b309d62bd21c..c60a5c884a44 100644 --- a/plugins/kotlin/gradle/gradle-idea/src/org/jetbrains/kotlin/idea/gradle/configuration/cachedCompilerArgumentsRestoring.kt +++ b/plugins/kotlin/gradle/gradle-idea/src/org/jetbrains/kotlin/idea/gradle/configuration/cachedCompilerArgumentsRestoring.kt @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.idea.projectModel.ArgsInfo import org.jetbrains.kotlin.idea.projectModel.CompilerArgumentsCacheAware import org.jetbrains.kotlin.idea.projectModel.KotlinCachedCompilerArgument import org.jetbrains.kotlin.idea.projectModel.KotlinRawCompilerArgument +import org.jetbrains.kotlin.platform.impl.FakeK2NativeCompilerArguments import java.io.File import kotlin.reflect.KMutableProperty1 import kotlin.reflect.KProperty1 @@ -48,6 +49,7 @@ class EmptyFlatArgsInfo : FlatSerializedArgsInfo { object CachedArgumentsRestoring { private val LOGGER = Logger.getInstance(CachedArgumentsRestoring.javaClass) + private const val STUB_K_2_NATIVE_COMPILER_ARGUMENTS_CLASS = "org.jetbrains.kotlin.gradle.tasks.StubK2NativeCompilerArguments" fun restoreSerializedArgsInfo( cachedSerializedArgsInfo: CachedSerializedArgsInfo, compilerArgumentsCacheHolder: CompilerArgumentsCacheHolder @@ -102,7 +104,12 @@ object CachedArgumentsRestoring { LOGGER.error("Failed to restore name of compiler arguments class from id $it! 'CommonCompilerArguments' instance was created instead") } } - val compilerArgumentsClass = Class.forName(compilerArgumentsClassName) as Class<out CommonCompilerArguments> + //TODO: Fixup. Remove it once actual K2NativeCompilerArguments will be available without 'kotlin.native.enabled = true' flag + val compilerArgumentsClass = if (compilerArgumentsClassName == STUB_K_2_NATIVE_COMPILER_ARGUMENTS_CLASS) + FakeK2NativeCompilerArguments::class.java + else + Class.forName(compilerArgumentsClassName) as Class<out CommonCompilerArguments> + val newCompilerArgumentsBean = compilerArgumentsClass.getConstructor().newInstance() val propertiesByName = compilerArgumentsClass.kotlin.memberProperties.associateBy { it.name } cachedBucket.singleArguments.entries.mapNotNull { diff --git a/plugins/kotlin/gradle/gradle-tooling/src/org/jetbrains/kotlin/idea/gradleTooling/reflect/KotlinNativeCompileReflection.kt b/plugins/kotlin/gradle/gradle-tooling/src/org/jetbrains/kotlin/idea/gradleTooling/reflect/KotlinNativeCompileReflection.kt index 8cbce71a7516..ba86c0c16506 100644 --- a/plugins/kotlin/gradle/gradle-tooling/src/org/jetbrains/kotlin/idea/gradleTooling/reflect/KotlinNativeCompileReflection.kt +++ b/plugins/kotlin/gradle/gradle-tooling/src/org/jetbrains/kotlin/idea/gradleTooling/reflect/KotlinNativeCompileReflection.kt @@ -1,7 +1,9 @@ // Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package org.jetbrains.kotlin.idea.gradleTooling.reflect +import org.gradle.api.file.DirectoryProperty import org.gradle.api.provider.Provider +import org.jetbrains.kotlin.idea.gradleTooling.getMethodOrNull import java.io.File fun KotlinNativeCompileReflection(compileKotlinTask: Any): KotlinNativeCompileReflection = @@ -13,8 +15,11 @@ interface KotlinNativeCompileReflection { private class KotlinNativeCompileReflectionImpl(private val instance: Any) : KotlinNativeCompileReflection { override val destinationDir: File? by lazy { - instance.callReflectiveGetter("getDestinationDir", logger) - ?: when(val outputFile = instance.callReflective("getOutputFile", parameters(), returnType<Any>(), logger)) { + val instanceClazz = instance::class.java + if (instanceClazz.getMethodOrNull("getDestinationDirectory") != null) + instance.callReflectiveGetter<DirectoryProperty>("getDestinationDirectory", logger)?.asFile?.get() + else instance.callReflectiveGetter("getDestinationDir", logger) + ?: when (val outputFile = instance.callReflectiveAnyGetter("getOutputFile", logger)) { is Provider<*> -> outputFile.orNull as? File is File -> outputFile else -> null diff --git a/plugins/kotlin/idea/resources/inlayProviders/kotlin.lambdas.hints/hints.lambda.receivers.parameters.kt b/plugins/kotlin/idea/resources/inlayProviders/kotlin.lambdas.hints/hints.lambda.receivers.parameters.kt index d93e1185441d..c429d584926e 100644 --- a/plugins/kotlin/idea/resources/inlayProviders/kotlin.lambdas.hints/hints.lambda.receivers.parameters.kt +++ b/plugins/kotlin/idea/resources/inlayProviders/kotlin.lambdas.hints/hints.lambda.receivers.parameters.kt @@ -1,10 +1,7 @@ -fun numbers(): String { - val numbers = StringBuilder() - return with(numbers) { - // the implicit receiver is "numbers" (StringBuilder) - for (letter in '0'..'9') { - append(letter) - } - toString() +fun printString(str: String) { + str.run { + println(length) } -}
\ No newline at end of file +} + +fun <R> run(block: () -> R): R = TODO()
\ No newline at end of file diff --git a/plugins/kotlin/idea/resources/inlayProviders/kotlin.lambdas.hints/hints.lambda.return.kt b/plugins/kotlin/idea/resources/inlayProviders/kotlin.lambdas.hints/hints.lambda.return.kt index b0072d19da9f..383cfda3b1e5 100644 --- a/plugins/kotlin/idea/resources/inlayProviders/kotlin.lambdas.hints/hints.lambda.return.kt +++ b/plugins/kotlin/idea/resources/inlayProviders/kotlin.lambdas.hints/hints.lambda.return.kt @@ -1,10 +1,4 @@ -fun numbers(): String { - val numbers = StringBuilder() - return with(numbers) { - // "with" structure starts here - for (letter in '0'..'9') { - append(letter) - } - toString() // used as the return value - } +val lambda = { i: Int -> + i + 10 + i + 20 }
\ No newline at end of file diff --git a/plugins/kotlin/idea/resources/inlayProviders/kotlin.references.types.hints/hints.type.function.parameter.kt b/plugins/kotlin/idea/resources/inlayProviders/kotlin.references.types.hints/hints.type.function.parameter.kt index 110a932b044a..0bc0633d12cc 100644 --- a/plugins/kotlin/idea/resources/inlayProviders/kotlin.references.types.hints/hints.type.function.parameter.kt +++ b/plugins/kotlin/idea/resources/inlayProviders/kotlin.references.types.hints/hints.type.function.parameter.kt @@ -2,4 +2,13 @@ fun hintsDemo() { listOf(1, 2, 3).filter { elem -> // parameter with inferred type elem >= 3 } -}
\ No newline at end of file +} + +class List<T> { + fun filter<R>(op: (T) -> Boolean) : List<R> = TODO() +} + +fun <T> listOf(vararg elements: T): List<T> = TODO() + +class Int +class Boolean
\ No newline at end of file diff --git a/plugins/kotlin/idea/resources/inlayProviders/kotlin.references.types.hints/hints.type.function.return.kt b/plugins/kotlin/idea/resources/inlayProviders/kotlin.references.types.hints/hints.type.function.return.kt index 33dfc696980a..f8c387a27c5c 100644 --- a/plugins/kotlin/idea/resources/inlayProviders/kotlin.references.types.hints/hints.type.function.return.kt +++ b/plugins/kotlin/idea/resources/inlayProviders/kotlin.references.types.hints/hints.type.function.return.kt @@ -1 +1,5 @@ -fun square(arg: Int) = arg * arg
\ No newline at end of file +fun square(arg: Int) = arg * arg + +class Int { + operator fun times(other: Int): Int +}
\ No newline at end of file diff --git a/plugins/kotlin/idea/resources/inlayProviders/kotlin.references.types.hints/hints.type.property.kt b/plugins/kotlin/idea/resources/inlayProviders/kotlin.references.types.hints/hints.type.property.kt index 5f7632fd17ae..acc8ed74534c 100644 --- a/plugins/kotlin/idea/resources/inlayProviders/kotlin.references.types.hints/hints.type.property.kt +++ b/plugins/kotlin/idea/resources/inlayProviders/kotlin.references.types.hints/hints.type.property.kt @@ -1 +1,9 @@ -val a = listOf(1, 2, 3).sum()
\ No newline at end of file +val a = listOf(1, 2, 3).sum() + +class List<T> { + fun sum() : Int = TODO() +} + +fun <T> listOf(vararg elements: T): List<T> = TODO() + +class Int
\ No newline at end of file diff --git a/plugins/kotlin/idea/resources/inlayProviders/kotlin.references.types.hints/hints.type.variable.kt b/plugins/kotlin/idea/resources/inlayProviders/kotlin.references.types.hints/hints.type.variable.kt index 0a67c414264b..17a58bae4fff 100644 --- a/plugins/kotlin/idea/resources/inlayProviders/kotlin.references.types.hints/hints.type.variable.kt +++ b/plugins/kotlin/idea/resources/inlayProviders/kotlin.references.types.hints/hints.type.variable.kt @@ -1,4 +1,9 @@ -fun test() -{ +fun test() { val list = listOf(81.0) -}
\ No newline at end of file +} + +class List<T> { + fun sum() : Int = TODO() +} + +fun <T> listOf(vararg elements: T): List<T> = TODO()
\ No newline at end of file diff --git a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/KotlinPairMatcher.kt b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/KotlinPairMatcher.kt index c6975b87215b..95a5daa5674a 100644 --- a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/KotlinPairMatcher.kt +++ b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/KotlinPairMatcher.kt @@ -2,15 +2,40 @@ package org.jetbrains.kotlin.idea +import com.intellij.codeInsight.highlighting.PairedBraceAndAnglesMatcher import com.intellij.codeInsight.hint.DeclarationRangeUtil import com.intellij.lang.BracePair import com.intellij.lang.PairedBraceMatcher import com.intellij.psi.PsiFile import com.intellij.psi.tree.IElementType +import com.intellij.psi.tree.TokenSet import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.psi.KtBlockExpression import org.jetbrains.kotlin.psi.KtClassBody +class KotlinPairedBraceMatcher : + PairedBraceAndAnglesMatcher( + KotlinPairMatcher(), + KotlinLanguage.INSTANCE, + KotlinFileType.INSTANCE, + TYPE_TOKENS_INSIDE_ANGLE_BRACKETS + ) { + override fun lt(): IElementType = KtTokens.LT + override fun gt(): IElementType = KtTokens.GT +} + +private val TYPE_TOKENS_INSIDE_ANGLE_BRACKETS = TokenSet.orSet( + KtTokens.WHITE_SPACE_OR_COMMENT_BIT_SET, + TokenSet.create( + KtTokens.IDENTIFIER, KtTokens.COMMA, + KtTokens.AT, + KtTokens.RBRACKET, KtTokens.LBRACKET, + KtTokens.IN_KEYWORD, KtTokens.OUT_KEYWORD, KtTokens.MUL, + KtTokens.COLON, KtTokens.COLONCOLON, KtTokens.LPAR, KtTokens.RPAR, + KtTokens.CLASS_KEYWORD, KtTokens.DOT + ) +) + class KotlinPairMatcher : PairedBraceMatcher { private val pairs = arrayOf( BracePair(KtTokens.LPAR, KtTokens.RPAR, false), diff --git a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/KotlinPluginMacros.kt b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/KotlinPluginMacros.kt deleted file mode 100644 index 7461940878d6..000000000000 --- a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/KotlinPluginMacros.kt +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. - -package org.jetbrains.kotlin.idea - -import com.intellij.openapi.application.PathMacroContributor -import org.jetbrains.kotlin.config.KotlinCompilerVersion -import org.jetbrains.kotlin.idea.compiler.configuration.KotlinJpsPluginSettings -import org.jetbrains.kotlin.idea.compiler.configuration.KotlinPathsProvider -import org.jetbrains.kotlin.idea.compiler.configuration.KotlinPluginLayout -import org.jetbrains.kotlin.idea.util.application.isUnitTestMode - -/** - * Some actions have to be performed before loading and opening any project. - * - * E.g. path variables have to be registered in advance as modules could rely on some path variables. - */ -class KotlinPluginMacros : PathMacroContributor { - override fun registerPathMacros(macros: MutableMap<String, String>, legacyMacros: MutableMap<String, String>) { - - } - - override fun forceRegisterPathMacros(macros: MutableMap<String, String>) { - if (!isUnitTestMode()) { - macros[KOTLIN_BUNDLED_PATH_VARIABLE] = KotlinPluginLayout.instance.kotlinc.canonicalPath - } - } - - companion object { - const val KOTLIN_BUNDLED_PATH_VARIABLE = "KOTLIN_BUNDLED" - } - -}
\ No newline at end of file diff --git a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/codeInsight/hints/KotlinCallChainHintsProvider.kt b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/codeInsight/hints/KotlinCallChainHintsProvider.kt index f599f9bb0f93..1c9e4a75e41e 100644 --- a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/codeInsight/hints/KotlinCallChainHintsProvider.kt +++ b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/codeInsight/hints/KotlinCallChainHintsProvider.kt @@ -33,8 +33,8 @@ class KotlinCallChainHintsProvider : AbstractCallChainHintsProvider<KtQualifiedE override val previewText: String get() = """ - fun main() { - (1..100).filter { it % 2 == 0 } + fun doSomething(list: List<Int>) { + list.filter { it % 2 == 0 } .map { it * 2 } .takeIf { list -> list.all { it % 2 == 0 } @@ -42,6 +42,14 @@ class KotlinCallChainHintsProvider : AbstractCallChainHintsProvider<KtQualifiedE ?.map { "item: ${'$'}it" } ?.forEach { println(it) } } + + class List<T> { + fun filter(pred: (T) -> Boolean) : List<T> = TODO() + fun <R> map(op: (T) -> R) : List<R> = TODO() + fun all(op: (T) -> Boolean) : Boolean = TODO() + fun forEach(op: (T) -> Unit) : Unit = TODO() + } + fun <T> T.takeIf(predicate: (T) -> Boolean): T? = TODO() """.trimIndent() override val description: String diff --git a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/inspections/UnnecessaryOptInAnnotationInspection.kt b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/inspections/UnnecessaryOptInAnnotationInspection.kt index e462063b908a..8ca03bda8664 100644 --- a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/inspections/UnnecessaryOptInAnnotationInspection.kt +++ b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/inspections/UnnecessaryOptInAnnotationInspection.kt @@ -5,33 +5,27 @@ import com.intellij.codeInspection.LocalQuickFix import com.intellij.codeInspection.ProblemDescriptor import com.intellij.codeInspection.ProblemHighlightType import com.intellij.codeInspection.ProblemsHolder -import com.intellij.openapi.module.Module import com.intellij.openapi.project.Project import com.intellij.psi.PsiElementVisitor import com.intellij.psi.SmartPsiElementPointer import com.intellij.psi.util.parentOfType -import org.jetbrains.kotlin.config.KotlinFacetSettingsProvider -import org.jetbrains.kotlin.config.LanguageVersion -import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor -import org.jetbrains.kotlin.descriptors.DeclarationDescriptor -import org.jetbrains.kotlin.descriptors.PropertyDescriptor +import org.jetbrains.kotlin.config.ApiVersion +import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.idea.KotlinBundle import org.jetbrains.kotlin.idea.caches.resolve.analyze import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny import org.jetbrains.kotlin.idea.core.getDirectlyOverriddenDeclarations +import org.jetbrains.kotlin.idea.project.languageVersionSettings import org.jetbrains.kotlin.idea.refactoring.fqName.fqName import org.jetbrains.kotlin.idea.references.ReadWriteAccessChecker import org.jetbrains.kotlin.idea.references.resolveMainReferenceToDescriptors import org.jetbrains.kotlin.idea.resolve.ResolutionFacade -import org.jetbrains.kotlin.idea.util.projectStructure.module -import org.jetbrains.kotlin.lexer.KtSingleValueToken import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.createSmartPointer -import org.jetbrains.kotlin.psi.psiUtil.getParentOfTypes import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType import org.jetbrains.kotlin.renderer.render import org.jetbrains.kotlin.resolve.BindingContext @@ -41,10 +35,8 @@ import org.jetbrains.kotlin.resolve.constants.ArrayValue import org.jetbrains.kotlin.resolve.constants.KClassValue import org.jetbrains.kotlin.resolve.constants.StringValue import org.jetbrains.kotlin.resolve.descriptorUtil.* -import org.jetbrains.kotlin.resolve.references.ReferenceAccess -import org.jetbrains.kotlin.types.expressions.OperatorConventions +import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.util.aliasImportMap -import org.jetbrains.kotlin.utils.addToStdlib.constant import org.jetbrains.kotlin.utils.addToStdlib.safeAs /** @@ -186,7 +178,7 @@ private class MarkerCollector(private val resolutionFacade: ResolutionFacade) { if (declaration !is KtFunction && declaration !is KtProperty && declaration !is KtParameter) return if (declaration.hasModifier(KtTokens.OVERRIDE_KEYWORD)) { val descriptor = declaration.resolveToDescriptorIfAny(resolutionFacade)?.safeAs<CallableMemberDescriptor>() ?: return - descriptor.getDirectlyOverriddenDeclarations().forEach { it.collectMarkers(declaration.module) } + descriptor.getDirectlyOverriddenDeclarations().forEach { it.collectMarkers(declaration.languageVersionSettings.apiVersion) } } } @@ -210,24 +202,46 @@ private class MarkerCollector(private val resolutionFacade: ResolutionFacade) { .resolveMainReferenceToDescriptors() .flatMap { setOf(it, it.getImportableDescriptor()) } - val module = expression.module + val moduleApiVersion = expression.languageVersionSettings.apiVersion + for (descriptor in descriptorList) { - descriptor.collectMarkers(module) + descriptor.collectMarkers(moduleApiVersion) // A special case: a property has no experimental markers but its setter is experimental. // We need to additionally collect markers from the setter if it is invoked in the expression. if (descriptor is PropertyDescriptor) { - val setter = descriptor.setter ?: continue - if (expression.isSetterCall()) setter.collectMarkers(module) + val setter = descriptor.setter + if (setter != null && expression.isSetterCall()) setter.collectMarkers(moduleApiVersion) + } + + // The caller implicitly uses argument types and return types of a declaration, + // so we need to check whether these types have experimental markers + // regardless of the `@OptIn` annotation on the declaration itself. + if (descriptor is CallableDescriptor) { + descriptor.valueParameters.forEach { it.type.collectMarkers(moduleApiVersion)} + descriptor.returnType?.collectMarkers(moduleApiVersion) } } } /** + * Collect markers from a declaration descriptor corresponding to a Kotlin type. + * + * @receiver the type to collect markers + * @param moduleApiVersion the API version of the current module to check `@WasExperimental` annotations + */ + private fun KotlinType.collectMarkers(moduleApiVersion: ApiVersion) { + arguments.forEach { it.type.collectMarkers(moduleApiVersion) } + val descriptor = this.constructor.declarationDescriptor ?: return + descriptor.collectMarkers(moduleApiVersion) + } + + /** * Actually collect markers for a resolved descriptor and add them to [foundMarkers]. * * @receiver the descriptor to collect markers + * @param moduleApiVersion the API version of the current module to check `@WasExperimental` annotations */ - private fun DeclarationDescriptor.collectMarkers(currentModule: Module?) { + private fun DeclarationDescriptor.collectMarkers(moduleApiVersion: ApiVersion) { for (ann in annotations) { val annotationFqName = ann.fqName ?: continue val annotationClass = ann.annotationClass ?: continue @@ -238,8 +252,9 @@ private class MarkerCollector(private val resolutionFacade: ResolutionFacade) { foundMarkers += annotationFqName } - val wasExperimental = annotations.findAnnotation(OptInNames.WAS_EXPERIMENTAL_FQ_NAME) ?: continue + val wasExperimental = annotations.findAnnotation(OptInNames.WAS_EXPERIMENTAL_FQ_NAME) ?: continue val sinceKotlin = annotations.findAnnotation(SINCE_KOTLIN_FQ_NAME) ?: continue + // If there are both `@SinceKotlin` and `@WasExperimental` annotations, // and Kotlin API version of the module is less than the version specified by `@SinceKotlin`, // then the `@OptIn` for `@WasExperimental` marker is necessary and should be added @@ -257,23 +272,12 @@ private class MarkerCollector(private val resolutionFacade: ResolutionFacade) { // annotation would not be necessary. At the same time, when the code is compiled with // `apiVersion = 1.5`, the non-experimental declaration of `foo` will be hidden // from the resolver, so `@OptIn` is necessary for the code to compile. - val sinceKotlinApiVersion = sinceKotlin.allValueArguments[VERSION_ARGUMENT] ?.safeAs<StringValue>()?.value?.let { - LanguageVersion.fromVersionString(it) + ApiVersion.parse(it) } - val moduleApiVersion = currentModule?.let { - KotlinFacetSettingsProvider.getInstance(it.project)?.getSettings(it)?.apiLevel - } - - // If the Kotlin API version of the current module could not be found, - // add the marker, as it is better to skip a redundant `@OptIn` than to remove - // a necessary annotation. If the module API version is known, compare it - // to the API version specified via the `@SinceKotlin` annotation. - // Add the marker only if the module API version is less than the version - // required by the declaration. - if (moduleApiVersion == null || (sinceKotlinApiVersion != null && moduleApiVersion < sinceKotlinApiVersion)) { + if (sinceKotlinApiVersion != null && moduleApiVersion < sinceKotlinApiVersion) { wasExperimental.allValueArguments[OptInNames.WAS_EXPERIMENTAL_ANNOTATION_CLASS]?.safeAs<ArrayValue>()?.value ?.mapNotNull { it.safeAs<KClassValue>()?.getArgumentType(module)?.fqName } ?.forEach { foundMarkers.add(it) } diff --git a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/jps/SetupKotlinJpsPluginBeforeCompileTask.kt b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/jps/SetupKotlinJpsPluginBeforeCompileTask.kt index ffeff3b3df7f..aca88236c022 100644 --- a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/jps/SetupKotlinJpsPluginBeforeCompileTask.kt +++ b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/jps/SetupKotlinJpsPluginBeforeCompileTask.kt @@ -1,7 +1,6 @@ // Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package org.jetbrains.kotlin.idea.jps -import com.intellij.openapi.application.PathMacros import com.intellij.openapi.compiler.CompileContext import com.intellij.openapi.compiler.CompileTask import com.intellij.openapi.compiler.CompilerMessageCategory @@ -10,7 +9,6 @@ import com.intellij.project.stateStore import org.jetbrains.annotations.Nls import org.jetbrains.kotlin.config.SettingConstants import org.jetbrains.kotlin.idea.KotlinBundle -import org.jetbrains.kotlin.idea.KotlinPluginMacros import org.jetbrains.kotlin.idea.KotlinVersionVerbose import org.jetbrains.kotlin.idea.compiler.configuration.KotlinJpsPluginSettings import org.jetbrains.kotlin.idea.compiler.configuration.KotlinPathsProvider @@ -66,8 +64,6 @@ class SetupKotlinJpsPluginBeforeCompileTask : CompileTask { return false } - PathMacros.getInstance().setMacro(KotlinPluginMacros.KOTLIN_BUNDLED_PATH_VARIABLE, unpackedKotlinc.canonicalPath) - return true } diff --git a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/macros/ApplicationWideKotlinBundledPathMacroCleaner.kt b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/macros/ApplicationWideKotlinBundledPathMacroCleaner.kt new file mode 100644 index 000000000000..8c924f0a3aa9 --- /dev/null +++ b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/macros/ApplicationWideKotlinBundledPathMacroCleaner.kt @@ -0,0 +1,24 @@ +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package org.jetbrains.kotlin.idea.macros + +import com.intellij.ide.SaveAndSyncHandler +import com.intellij.openapi.application.PathMacros + +/** + * Starting from KTIJ-11633 Kotlin JPS plugin is downloaded by IDEA depending on what current version of Kotlin compiler in project + * settings. Thus, we migrated KOTLIN_BUNDLED from application-wide [PathMacros]/[com.intellij.openapi.application.PathMacroContributor] EP + * to project-wide EP [com.intellij.openapi.components.impl.ProjectWidePathMacroContributor]. + * + * Application-wide path macros are visible in the "Path Variables" UI. Since we don't want to confuse users with application-wide + * KOTLIN_BUNDLED stale value in the UI, we clean the application-wide value in this class + */ +class ApplicationWideKotlinBundledPathMacroCleaner { + init { + if (PathMacros.getInstance().getValue(KOTLIN_BUNDLED) != null) { + PathMacros.getInstance().setMacro(KOTLIN_BUNDLED, null) + // Flush settings otherwise they may stay in config/idea/options/path.macros.xml and then leak into the JPS + // (because JPS "reimplements" Path macro subsystem and, basically, just reads the `path.macros.xml` file again on its own) + SaveAndSyncHandler.getInstance().scheduleSave(SaveAndSyncHandler.SaveTask(null, true)) + } + } +} diff --git a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/macros/KotlinBundledPathMacroContributor.kt b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/macros/KotlinBundledPathMacroContributor.kt new file mode 100644 index 000000000000..cc00987681a3 --- /dev/null +++ b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/macros/KotlinBundledPathMacroContributor.kt @@ -0,0 +1,44 @@ +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package org.jetbrains.kotlin.idea.macros + +import com.intellij.ide.highlighter.ProjectFileType +import com.intellij.openapi.components.impl.ProjectWidePathMacroContributor +import com.intellij.openapi.util.JDOMUtil +import com.intellij.util.io.exists +import com.intellij.util.xmlb.XmlSerializer +import org.jetbrains.kotlin.config.JpsPluginSettings +import org.jetbrains.kotlin.config.SettingConstants +import org.jetbrains.kotlin.idea.compiler.configuration.KotlinJpsPluginSettings +import org.jetbrains.kotlin.idea.compiler.configuration.KotlinPathsProvider +import org.jetbrains.kotlin.idea.compiler.configuration.KotlinPluginLayout +import java.nio.file.Paths +import kotlin.io.path.extension + +const val KOTLIN_BUNDLED = "KOTLIN_BUNDLED" + +class KotlinBundledPathMacroContributor : ProjectWidePathMacroContributor { + override fun getProjectPathMacros(projectFilePath: String): Map<String, String> { + // It's not possible to use KotlinJpsPluginSettings.getInstance(project) because the project isn't yet initialized + val path = Paths.get(projectFilePath) + .let { iprOrMisc -> + when (iprOrMisc.extension) { + ProjectFileType.DEFAULT_EXTENSION -> iprOrMisc + "xml" -> iprOrMisc.resolveSibling(SettingConstants.KOTLIN_COMPILER_SETTINGS_FILE) + else -> error("projectFilePath should be either misc.xml or *.ipr file") + } + } + .takeIf { it.exists() } + ?.let { JDOMUtil.load(it) } + ?.children + ?.singleOrNull { it.getAttributeValue("name") == KotlinJpsPluginSettings::class.java.simpleName } + ?.let { xmlElement -> + JpsPluginSettings().apply { + XmlSerializer.deserializeInto(this, xmlElement) + } + } + ?.version + ?.let { KotlinPathsProvider.getKotlinPaths(it).homePath.canonicalPath } + ?: KotlinPluginLayout.instance.kotlinc.canonicalPath + return mapOf(KOTLIN_BUNDLED to path) + } +}
\ No newline at end of file diff --git a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/projectWizard/WizardStatsService.kt b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/projectWizard/WizardStatsService.kt index dabee1d0a5ea..b303ea10b60b 100644 --- a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/projectWizard/WizardStatsService.kt +++ b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/projectWizard/WizardStatsService.kt @@ -23,7 +23,7 @@ class WizardStatsService : CounterUsagesCollector() { companion object { // Collector ID - private val GROUP = EventLogGroup("kotlin.ide.new.project", 9) + private val GROUP = EventLogGroup("kotlin.ide.new.project", 10) // Whitelisted values for the events fields private val allowedProjectTemplates = listOf( // Modules @@ -54,6 +54,7 @@ class WizardStatsService : CounterUsagesCollector() { "none", // AppCode KMM "multiplatformMobileApplicationUsingAppleGradlePlugin", + "multiplatformMobileApplicationUsingHybridProject", ) private val allowedModuleTemplates = listOf( "composeAndroid", diff --git a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/refactoring/kotlinRefactoringUtil.kt b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/refactoring/kotlinRefactoringUtil.kt index 0b52072c65f7..60288396a3f2 100644 --- a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/refactoring/kotlinRefactoringUtil.kt +++ b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/refactoring/kotlinRefactoringUtil.kt @@ -1,4 +1,4 @@ -// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package org.jetbrains.kotlin.idea.refactoring @@ -1013,7 +1013,6 @@ fun getSuperMethods(declaration: KtDeclaration, ignore: Collection<PsiElement>?) fun checkSuperMethodsWithPopup( declaration: KtNamedDeclaration, deepestSuperMethods: List<PsiElement>, - actionStringPrefixKey: String, editor: Editor, action: (List<PsiElement>) -> Unit ) { @@ -1045,10 +1044,10 @@ fun checkSuperMethodsWithPopup( else -> kindIndex } - val renameBase = KotlinBundle.message("$actionStringPrefixKey.base.0", superKindIndex + (if (deepestSuperMethods.size > 1) 10 else 0)) - val renameCurrent = KotlinBundle.message("$actionStringPrefixKey.only.current.0", kindIndex) + val renameBase = KotlinBundle.message("rename.base.0", superKindIndex + (if (deepestSuperMethods.size > 1) 10 else 0)) + val renameCurrent = KotlinBundle.message("rename.only.current.0", kindIndex) val title = KotlinBundle.message( - "$actionStringPrefixKey.declaration.title.0.implements.1.2.of.3", + "rename.declaration.title.0.implements.1.2.of.3", declaration.name ?: "", if (isAbstract) 1 else 2, ElementDescriptionUtil.getElementDescription(superMethod, UsageViewTypeLocation.INSTANCE), diff --git a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinFunctionProcessor.kt b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinFunctionProcessor.kt index a01d3ac52db2..5cbdb5356d67 100644 --- a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinFunctionProcessor.kt +++ b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinFunctionProcessor.kt @@ -1,4 +1,4 @@ -// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package org.jetbrains.kotlin.idea.refactoring.rename @@ -152,7 +152,7 @@ class RenameKotlinFunctionProcessor : RenameKotlinPsiProcessor() { } else -> { val declaration = element.unwrapped as? KtNamedFunction ?: return - checkSuperMethodsWithPopup(declaration, deepestSuperMethods.toList(), "rename", editor) { + checkSuperMethodsWithPopup(declaration, deepestSuperMethods.toList(), editor) { preprocessAndPass(if (it.size > 1) FunctionWithSupersWrapper(declaration, it) else wrappedMethod ?: element) } } diff --git a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinPropertyProcessor.kt b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinPropertyProcessor.kt index a53aa30cd230..8b9df319b628 100644 --- a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinPropertyProcessor.kt +++ b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinPropertyProcessor.kt @@ -1,4 +1,4 @@ -// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package org.jetbrains.kotlin.idea.refactoring.rename @@ -281,7 +281,7 @@ class RenameKotlinPropertyProcessor : RenameKotlinPsiProcessor() { } val superPsiMethods = listOfNotNull(deepestSuperDeclaration.getRepresentativeLightMethod()) - checkSuperMethodsWithPopup(callableDeclaration, superPsiMethods, "rename", editor) { + checkSuperMethodsWithPopup(callableDeclaration, superPsiMethods, editor) { preprocessAndPass(if (it.size > 1) deepestSuperDeclaration else callableDeclaration) } } diff --git a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/script/configuration/MultipleScriptDefinitionsChecker.kt b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/script/configuration/MultipleScriptDefinitionsChecker.kt index 3e39e9f6c7b3..2f1c9262d00d 100644 --- a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/script/configuration/MultipleScriptDefinitionsChecker.kt +++ b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/script/configuration/MultipleScriptDefinitionsChecker.kt @@ -58,7 +58,8 @@ class MultipleScriptDefinitionsChecker : EditorNotificationProvider { private fun areDefinitionsForGradleKts(allApplicableDefinitions: List<ScriptDefinition>): Boolean { return allApplicableDefinitions.all { val pattern = it.asLegacyOrNull<KotlinScriptDefinitionFromAnnotatedTemplate>()?.scriptFilePattern?.pattern - pattern == ".*\\.gradle\\.kts" || pattern == "^(settings|.+\\.settings)\\.gradle\\.kts\$" || pattern == ".+\\.init\\.gradle\\.kts" + pattern?.endsWith("\\.gradle\\.kts") == true || + pattern?.endsWith("\\.gradle\\.kts$") == true } } diff --git a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/editor/KotlinBraceMatcherTest.kt b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/editor/KotlinBraceMatcherTest.kt new file mode 100644 index 000000000000..f90214fc9f64 --- /dev/null +++ b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/editor/KotlinBraceMatcherTest.kt @@ -0,0 +1,28 @@ +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package org.jetbrains.kotlin.idea.editor + +import com.intellij.codeInsight.highlighting.BraceMatchingUtil +import org.junit.Assert +import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase +import org.junit.internal.runners.JUnit38ClassRunner +import org.junit.runner.RunWith + +@RunWith(JUnit38ClassRunner::class) +class KotlinBraceMatcherTest : KotlinLightCodeInsightFixtureTestCase() { + fun testGenericsWithInOutModifiers() { + doBraceMatchingTest("class A<caret><in T, out F, *>") + } + + fun testGenericsWithComplexParameters() { + doBraceMatchingTest("class A<caret><T : List<@Ann(B::class) Int>>") + } + + private fun doBraceMatchingTest(text: String) { + myFixture.configureByText("a.kt", text.trimMargin()) + + val editor = myFixture.editor + val iterator = editor.highlighter.createIterator(editor.caretModel.offset) + val matched = BraceMatchingUtil.matchBrace(editor.document.charsSequence, myFixture.file.fileType, iterator, true) + Assert.assertTrue(matched) + } +}
\ No newline at end of file diff --git a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/editor/TypedHandlerTest.kt b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/editor/TypedHandlerTest.kt index 2a11c9d93e9c..7e391c277af3 100644 --- a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/editor/TypedHandlerTest.kt +++ b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/editor/TypedHandlerTest.kt @@ -929,6 +929,23 @@ class TypedHandlerTest : KotlinLightCodeInsightFixtureTestCase() { doTypeTest('\'', "val c = <caret>", "val c = ''") } + fun testDontInsertExtraRBraceWithGTSymbolInTheMiddleOnTyping() { + doTypeTest( + ")", + "fun foo() { if (1 > 2<caret>) {} }", + "fun foo() { if (1 > 2)<caret> {} }", + ) + } + + fun testDontInsertExtraRBraceWithLTSymbolInTheMiddleOnTyping() { + doTypeTest( + ")", + "fun foo() { if (1 < 2<caret>) {} }", + "fun foo() { if (1 < 2)<caret> {} }", + ) + } + + private val enableSmartEnter: (CodeStyleSettings) -> Unit get() = { val indentOptions = it.getLanguageIndentOptions(KotlinLanguage.INSTANCE) diff --git a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java index 6f5f79e44d26..669785afe32f 100644 --- a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java +++ b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java @@ -15063,6 +15063,31 @@ public abstract class LocalInspectionTestGenerated extends AbstractLocalInspecti runTest("testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryFqAnnotation.kt"); } + @TestMetadata("necessaryFunctionLambdaArgument.kt") + public void testNecessaryFunctionLambdaArgument() throws Exception { + runTest("testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryFunctionLambdaArgument.kt"); + } + + @TestMetadata("necessaryFunctionLambdaArgument2.kt") + public void testNecessaryFunctionLambdaArgument2() throws Exception { + runTest("testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryFunctionLambdaArgument2.kt"); + } + + @TestMetadata("necessaryFunctionOptionalArgument.kt") + public void testNecessaryFunctionOptionalArgument() throws Exception { + runTest("testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryFunctionOptionalArgument.kt"); + } + + @TestMetadata("necessaryFunctionReturnValue.kt") + public void testNecessaryFunctionReturnValue() throws Exception { + runTest("testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryFunctionReturnValue.kt"); + } + + @TestMetadata("necessaryFunctionReturnValue2.kt") + public void testNecessaryFunctionReturnValue2() throws Exception { + runTest("testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryFunctionReturnValue2.kt"); + } + @TestMetadata("necessaryImportAlias.kt") public void testNecessaryImportAlias() throws Exception { runTest("testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryImportAlias.kt"); @@ -15178,6 +15203,21 @@ public abstract class LocalInspectionTestGenerated extends AbstractLocalInspecti runTest("testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryValueParameter.kt"); } + @TestMetadata("necessaryValueUsage1.kt") + public void testNecessaryValueUsage1() throws Exception { + runTest("testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryValueUsage1.kt"); + } + + @TestMetadata("necessaryValueUsage2.kt") + public void testNecessaryValueUsage2() throws Exception { + runTest("testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryValueUsage2.kt"); + } + + @TestMetadata("necessaryValueUsage3.kt") + public void testNecessaryValueUsage3() throws Exception { + runTest("testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryValueUsage3.kt"); + } + @TestMetadata("necessaryWasExperimental.kt") public void testNecessaryWasExperimental() throws Exception { runTest("testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryWasExperimental.kt"); @@ -15223,6 +15263,11 @@ public abstract class LocalInspectionTestGenerated extends AbstractLocalInspecti runTest("testData/inspectionsLocal/unnecessaryOptInAnnotation/redundantClassTwoMarkersBothUseless.kt"); } + @TestMetadata("redundantFunctionBody.kt") + public void testRedundantFunctionBody() throws Exception { + runTest("testData/inspectionsLocal/unnecessaryOptInAnnotation/redundantFunctionBody.kt"); + } + @TestMetadata("redundantImportAlias.kt") public void testRedundantImportAlias() throws Exception { runTest("testData/inspectionsLocal/unnecessaryOptInAnnotation/redundantImportAlias.kt"); diff --git a/plugins/kotlin/idea/tests/testData/gradle/hmppImportAndHighlighting/multiModulesHmpp/bottom-mpp/build.gradle b/plugins/kotlin/idea/tests/testData/gradle/hmppImportAndHighlighting/multiModulesHmpp/bottom-mpp/build.gradle index ba1e70b0c2ef..c6a6802586bd 100644 --- a/plugins/kotlin/idea/tests/testData/gradle/hmppImportAndHighlighting/multiModulesHmpp/bottom-mpp/build.gradle +++ b/plugins/kotlin/idea/tests/testData/gradle/hmppImportAndHighlighting/multiModulesHmpp/bottom-mpp/build.gradle @@ -30,7 +30,12 @@ kotlin { // Creating static library with a custom name. staticLib('customNameForiosSimLib') { outputDirectory = file("fooCustomNameForiosSimLib") // outputDir is a `val` property. - linkTask.destinationDir = file("fooCustomNameForiosSimLib") + if (linkTask.metaClass.hasProperty(linkTask, "destinationDirectory")) { + linkTask.destinationDirectory = project.getObjects().directoryProperty().fileValue(file("fooCustomNameForiosSimLib")) + } + else { + linkTask.destinationDir = file("fooCustomNameForiosSimLib") + } } } } @@ -39,17 +44,18 @@ kotlin { targets.all { compilations.all { kotlinOptions { - freeCompilerArgs += ["-Xprogressive", "-XXLanguage:+NewInference", "-XXLanguage:+SamConversionForKotlinFunctions", "-Xuse-experimental=kotlin.ExperimentalMultiplatform", "-Xskip-prerelease-check"] + freeCompilerArgs += + ["-Xprogressive", "-XXLanguage:+NewInference", "-XXLanguage:+SamConversionForKotlinFunctions", "-Xuse-experimental=kotlin.ExperimentalMultiplatform", "-Xskip-prerelease-check"] } } } sourceSets { commonMain { - dependencies { } + dependencies {} } commonTest { - dependencies { } + dependencies {} } // creating a diamond @@ -77,26 +83,26 @@ kotlin { // setting up the targets source sets jvm16Main { - dependencies { } + dependencies {} // connecting to the diamond dependsOn jvmJavaJvm16Main } jvm16Test { - dependencies { } + dependencies {} // connecting to the diamond dependsOn jvmJavaJvm16Test } jvmWithJavaMain { - dependencies { } + dependencies {} // connecting to the diamond dependsOn jvmJavaJvm16Main dependsOn jvmWithJavaiOSMain } jvmWithJavaTest { - dependencies { } + dependencies {} // connecting to the diamond dependsOn jvmJavaJvm16Test @@ -104,13 +110,13 @@ kotlin { } iosSimLibMain { - dependencies { } + dependencies {} // connecting to the diamond dependsOn jvmWithJavaiOSMain } iosSimLibTest { - dependencies { } + dependencies {} // connecting to the diamond dependsOn jvmWithJavaiOSTest diff --git a/plugins/kotlin/idea/tests/testData/gradle/hmppImportAndHighlighting/multiModulesHmpp/top-mpp/build.gradle b/plugins/kotlin/idea/tests/testData/gradle/hmppImportAndHighlighting/multiModulesHmpp/top-mpp/build.gradle index bcb324c8e013..9bdda1acc72d 100644 --- a/plugins/kotlin/idea/tests/testData/gradle/hmppImportAndHighlighting/multiModulesHmpp/top-mpp/build.gradle +++ b/plugins/kotlin/idea/tests/testData/gradle/hmppImportAndHighlighting/multiModulesHmpp/top-mpp/build.gradle @@ -6,12 +6,20 @@ version publishing_version buildscript { repositories { - {{kotlin_plugin_repositories}} + { + { + kotlin_plugin_repositories + } + } } } repositories { - {{kotlin_plugin_repositories}} + { + { + kotlin_plugin_repositories + } + } } def complexLibAttribute = Attribute.of('org.jetbrains.qa.complexlib', String) @@ -35,7 +43,12 @@ kotlin { // Creating static library with a custom name. staticLib('customNameForLinuxLib') { outputDirectory = file("customNameForLinuxLib") // outputDir is a `val` property. - linkTask.destinationDir = file("customNameForLinuxLib") + if (linkTask.metaClass.hasProperty(linkTask, "destinationDirectory")) { + linkTask.destinationDirectory = project.getObjects().directoryProperty().fileValue(file("customNameForLinuxLib")) + } + else { + linkTask.destinationDir = file("customNameForLinuxLib") + } } } } @@ -46,7 +59,12 @@ kotlin { // Creating static library with a custom name. staticLib('customNameForMacosLib') { outputDirectory = file("customNameForMacosLib") // outputDir is a `val` property. - linkTask.destinationDir = file("customNameForMacosLib") + if (linkTask.metaClass.hasProperty(linkTask, "destinationDirectory")) { + linkTask.destinationDirectory = project.getObjects().directoryProperty().fileValue(file("customNameForMacosLib")) + } + else { + linkTask.destinationDir = file("customNameForMacosLib") + } } } } @@ -56,7 +74,12 @@ kotlin { // KT-29395 fix framework { outputDirectory = file("fooDummyiOS") // outputDir is a `val` property. - linkTask.destinationDir = file("fooDummyiOS") + if (linkTask.metaClass.hasProperty(linkTask, "destinationDirectory")) { + linkTask.destinationDirectory = project.getObjects().directoryProperty().fileValue(file("fooDummyiOS")) + } + else { + linkTask.destinationDir = file("fooDummyiOS") + } } } } @@ -65,7 +88,8 @@ kotlin { targets.all { compilations.all { kotlinOptions { - freeCompilerArgs += ["-Xprogressive", "-XXLanguage:+NewInference", "-XXLanguage:+SamConversionForKotlinFunctions", "-Xuse-experimental=kotlin.ExperimentalMultiplatform"] + freeCompilerArgs += + ["-Xprogressive", "-XXLanguage:+NewInference", "-XXLanguage:+SamConversionForKotlinFunctions", "-Xuse-experimental=kotlin.ExperimentalMultiplatform"] } } } @@ -73,10 +97,10 @@ kotlin { sourceSets { commonMain { - dependencies { } + dependencies {} } commonTest { - dependencies { } + dependencies {} } // intermediate between commonMain and jsJvm18Main @@ -97,7 +121,7 @@ kotlin { jsJvm18iOSTest { dependsOn commonTest - dependencies { } + dependencies {} } jsLinuxMain { dependsOn commonMain @@ -120,7 +144,7 @@ kotlin { dependsOn jsJvm18iOSMain } jvm18Test { - dependencies { } + dependencies {} // connecting to the diamond dependsOn jsJvm18iOSTest @@ -145,32 +169,32 @@ kotlin { dependsOn jsLinuxTest } linuxMain { - dependencies { } + dependencies {} // connecting to the diamond dependsOn jsLinuxMain } linuxTest { - dependencies { } + dependencies {} // connecting to the diamond dependsOn jsLinuxTest } macosMain { - dependencies { } + dependencies {} } macosTest { - dependencies { } + dependencies {} } dummyiOSMain { // connecting to the diamond dependsOn jsJvm18iOSMain - dependencies { } + dependencies {} } dummyiOSTest { dependsOn jsJvm18iOSTest - dependencies { } + dependencies {} } } } diff --git a/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryFunctionLambdaArgument.kt b/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryFunctionLambdaArgument.kt new file mode 100644 index 000000000000..905a84898ea5 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryFunctionLambdaArgument.kt @@ -0,0 +1,15 @@ +// PROBLEM: none +// WITH_STDLIB +// COMPILER_ARGUMENTS: -opt-in=kotlin.RequiresOptIn + +@RequiresOptIn +annotation class Marker + +@Marker +class Foo + +@OptIn(Marker::class) +fun makeFoo(action: (Foo) -> Unit): Int = 0 + +@OptIn(<caret>Marker::class) +val foo = makeFoo {} diff --git a/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryFunctionLambdaArgument2.kt b/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryFunctionLambdaArgument2.kt new file mode 100644 index 000000000000..aff0c12c04d3 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryFunctionLambdaArgument2.kt @@ -0,0 +1,15 @@ +// PROBLEM: none +// WITH_STDLIB +// COMPILER_ARGUMENTS: -opt-in=kotlin.RequiresOptIn + +@RequiresOptIn +annotation class Marker + +@Marker +class Foo + +@OptIn(Marker::class) +fun makeFoo(action: (Int) -> List<Foo>): Int = 0 + +@OptIn(<caret>Marker::class) +val foo = makeFoo { emptyList() } diff --git a/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryFunctionOptionalArgument.kt b/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryFunctionOptionalArgument.kt new file mode 100644 index 000000000000..1487d8994838 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryFunctionOptionalArgument.kt @@ -0,0 +1,15 @@ +// PROBLEM: none +// WITH_STDLIB +// COMPILER_ARGUMENTS: -opt-in=kotlin.RequiresOptIn + +@RequiresOptIn +annotation class Marker + +@Marker +class Foo + +@OptIn(Marker::class) +fun makeFoo(x: Foo? = null): Int = 0 + +@OptIn(<caret>Marker::class) +val foo = makeFoo() diff --git a/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryFunctionReturnValue.kt b/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryFunctionReturnValue.kt new file mode 100644 index 000000000000..f8e36c04a30c --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryFunctionReturnValue.kt @@ -0,0 +1,15 @@ +// PROBLEM: none +// WITH_STDLIB +// COMPILER_ARGUMENTS: -opt-in=kotlin.RequiresOptIn + +@RequiresOptIn +annotation class Marker + +@Marker +class Foo + +@OptIn(Marker::class) +fun makeFoo() = Foo() + +@OptIn(<caret>Marker::class) +val foo = makeFoo() diff --git a/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryFunctionReturnValue2.kt b/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryFunctionReturnValue2.kt new file mode 100644 index 000000000000..5a568891e8a1 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryFunctionReturnValue2.kt @@ -0,0 +1,15 @@ +// PROBLEM: none +// WITH_STDLIB +// COMPILER_ARGUMENTS: -opt-in=kotlin.RequiresOptIn + +@RequiresOptIn +annotation class Marker + +@Marker +class Foo + +@OptIn(Marker::class) +fun makeFoo(): Foo? = null + +@OptIn(<caret>Marker::class) +val foo = makeFoo() diff --git a/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryValueUsage1.kt b/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryValueUsage1.kt new file mode 100644 index 000000000000..30894114be42 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryValueUsage1.kt @@ -0,0 +1,17 @@ +// PROBLEM: none +// WITH_STDLIB +// COMPILER_ARGUMENTS: -opt-in=kotlin.RequiresOptIn + +@RequiresOptIn +annotation class Marker + +@Marker +class Foo { + fun f() {} +} + +@OptIn(Marker::class) +val foo = Foo() + +@OptIn(<caret>Marker::class) +fun bar() = foo.f() diff --git a/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryValueUsage2.kt b/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryValueUsage2.kt new file mode 100644 index 000000000000..626798c0fa8a --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryValueUsage2.kt @@ -0,0 +1,19 @@ +// PROBLEM: none +// WITH_STDLIB +// COMPILER_ARGUMENTS: -opt-in=kotlin.RequiresOptIn + +@RequiresOptIn +annotation class Marker + +@Marker +class Foo { + fun f() {} +} + +@OptIn(Marker::class) +val foo = Foo() + +@OptIn(<caret>Marker::class) +fun bar() { + val x = foo +} diff --git a/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryValueUsage3.kt b/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryValueUsage3.kt new file mode 100644 index 000000000000..46ac9453f1bf --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/necessaryValueUsage3.kt @@ -0,0 +1,17 @@ +// PROBLEM: none +// WITH_STDLIB +// COMPILER_ARGUMENTS: -opt-in=kotlin.RequiresOptIn + +@RequiresOptIn +annotation class Marker + +@Marker +class Foo + +@OptIn(Marker::class) +var foo: Foo? = Foo() + +@OptIn(<caret>Marker::class) +fun f() { + foo = null +} diff --git a/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/redundantFunctionBody.kt b/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/redundantFunctionBody.kt new file mode 100644 index 000000000000..3ca4679e519a --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/redundantFunctionBody.kt @@ -0,0 +1,16 @@ +// WITH_STDLIB +// COMPILER_ARGUMENTS: -opt-in=kotlin.RequiresOptIn + +@RequiresOptIn +annotation class Marker + +open class FooBase + +@Marker +class Foo : FooBase() + +@OptIn(Marker::class) +fun makeFoo(x: FooBase? = null): FooBase = Foo() + +@OptIn(<caret>Marker::class) +val foo = makeFoo() diff --git a/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/redundantFunctionBody.kt.after b/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/redundantFunctionBody.kt.after new file mode 100644 index 000000000000..77076860f8b5 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/inspectionsLocal/unnecessaryOptInAnnotation/redundantFunctionBody.kt.after @@ -0,0 +1,15 @@ +// WITH_STDLIB +// COMPILER_ARGUMENTS: -opt-in=kotlin.RequiresOptIn + +@RequiresOptIn +annotation class Marker + +open class FooBase + +@Marker +class Foo : FooBase() + +@OptIn(Marker::class) +fun makeFoo(x: FooBase? = null): FooBase = Foo() + +val foo = makeFoo() diff --git a/plugins/kotlin/jvm-debugger/core/src/org/jetbrains/kotlin/idea/debugger/stackFrame/InlineStackTraceCalculator.kt b/plugins/kotlin/jvm-debugger/core/src/org/jetbrains/kotlin/idea/debugger/stackFrame/InlineStackTraceCalculator.kt index 4424bff65c41..4bb1b2214bd9 100644 --- a/plugins/kotlin/jvm-debugger/core/src/org/jetbrains/kotlin/idea/debugger/stackFrame/InlineStackTraceCalculator.kt +++ b/plugins/kotlin/jvm-debugger/core/src/org/jetbrains/kotlin/idea/debugger/stackFrame/InlineStackTraceCalculator.kt @@ -8,36 +8,33 @@ import com.sun.jdi.Location import com.sun.jdi.Method import org.jetbrains.kotlin.idea.debugger.* import org.jetbrains.kotlin.idea.debugger.DebuggerUtils.getBorders -import org.jetbrains.kotlin.load.java.JvmAbi +import org.jetbrains.kotlin.load.java.JvmAbi.LOCAL_VARIABLE_NAME_PREFIX_INLINE_ARGUMENT as INLINE_ARGUMENT_PREFIX +import org.jetbrains.kotlin.load.java.JvmAbi.LOCAL_VARIABLE_NAME_PREFIX_INLINE_FUNCTION as INLINE_FUNCTION_PREFIX object InlineStackTraceCalculator { fun calculateInlineStackTrace(frameProxy: StackFrameProxyImpl): List<XStackFrame> { val location = frameProxy.safeLocation() ?: return emptyList() val method = location.safeMethod() ?: return emptyList() - val inlineStackFramesInfo = method.getInlineStackFramesInfo(location) - if (inlineStackFramesInfo.isEmpty()) { - return emptyList() - } + val framesInfo = method.getInlineStackFramesInfo(location) + if (framesInfo.isEmpty()) return emptyList() val allLocations = method.safeAllLineLocations() - if (allLocations.isEmpty()) { - return emptyList() - } + if (allLocations.isEmpty()) return emptyList() - inlineStackFramesInfo.fetchDepths() - val newFrameProxyLocation = inlineStackFramesInfo.fetchLocationsAndGetNewFrameProxyLocation(allLocations, location) - return createInlineStackFrames(inlineStackFramesInfo, frameProxy, newFrameProxyLocation) + fetchDepths(framesInfo) + val newFrameProxyLocation = fetchLocationsAndGetNewFrameProxyLocation(framesInfo, allLocations, location) + return createInlineStackFrames(framesInfo, frameProxy, newFrameProxyLocation) } private fun createInlineStackFrames( - inlineStackFramesInfo: List<InlineStackFrameInfo>, + framesInfo: List<InlineStackFrameInfo>, frameProxy: StackFrameProxyImpl, frameProxyLocation: Location ): MutableList<KotlinStackFrame> { val stackFrames = mutableListOf<KotlinStackFrame>() var variableHolder: InlineStackFrameVariableHolder? = InlineStackFrameVariableHolder.fromStackFrame(frameProxy) - for (info in inlineStackFramesInfo.asReversed()) { + for (info in framesInfo.asReversed()) { stackFrames.add( info.toInlineStackFrame( frameProxy, @@ -56,25 +53,25 @@ object InlineStackTraceCalculator { } private fun Method.getInlineStackFramesInfo(location: Location) = - getInlineFunctionInfos() + getInlineFunctionsInfo() .filter { it.contains(location) } .sortedBy { it.borders.start } .map { InlineStackFrameInfo(it, location, 0) } - private fun Method.getInlineFunctionInfos(): List<AbstractInlineFunctionInfo> { + private fun Method.getInlineFunctionsInfo(): List<AbstractInlineFunctionInfo> { val localVariables = safeVariables() ?: return emptyList() - val inlineFunctionInfos = mutableListOf<AbstractInlineFunctionInfo>() + val functionsInfo = mutableListOf<AbstractInlineFunctionInfo>() for (variable in localVariables) { val borders = variable.getBorders() ?: continue val variableName = variable.name() - if (variableName.startsWith(JvmAbi.LOCAL_VARIABLE_NAME_PREFIX_INLINE_FUNCTION)) { - inlineFunctionInfos.add(InlineFunctionInfo(variableName, borders)) - } else if (variableName.startsWith(JvmAbi.LOCAL_VARIABLE_NAME_PREFIX_INLINE_ARGUMENT)) { - inlineFunctionInfos.add(InlineLambdaInfo(variableName, borders)) + if (variableName.startsWith(INLINE_FUNCTION_PREFIX)) { + functionsInfo.add(InlineFunctionInfo(variableName, borders)) + } else if (variableName.startsWith(INLINE_ARGUMENT_PREFIX)) { + functionsInfo.add(InlineLambdaInfo(variableName, borders)) } } - return inlineFunctionInfos + return functionsInfo } // Consider the following example: @@ -91,67 +88,75 @@ object InlineStackTraceCalculator { // $i$a$-bar-MainKt$foo$1$iv -> 1 // $i$a$-foo-MainKt$main$1 -> 0 // baz -> 1 - private fun List<InlineStackFrameInfo>.fetchDepths() { + private fun fetchDepths(framesInfo: List<InlineStackFrameInfo>) { var currentDepth = 0 val depths = mutableMapOf<String, Int>() - for (inlineStackFrameInfo in this) { - val inlineFunctionInfo = inlineStackFrameInfo.inlineFunctionInfo + for (frame in framesInfo) { + val info = frame.inlineFunctionInfo val calculatedDepth = - if (inlineFunctionInfo is InlineLambdaInfo) { - inlineFunctionInfo.getDeclarationFunctionName() + if (info is InlineLambdaInfo) { + info.getDeclarationFunctionName() ?.let { depths[it] } ?: 0 // The lambda was declared in the top frame } else { currentDepth + 1 } - depths[inlineFunctionInfo.name] = calculatedDepth - inlineStackFrameInfo.depth = calculatedDepth + depths[info.name] = calculatedDepth + frame.depth = calculatedDepth currentDepth = calculatedDepth } } - private fun List<InlineStackFrameInfo>.fetchLocationsAndGetNewFrameProxyLocation( + private fun fetchLocationsAndGetNewFrameProxyLocation( + framesInfo: List<InlineStackFrameInfo>, allLocations: List<Location>, originalLocation: Location ): Location { - val iterator = allLocations.iterator() - val newFrameProxyLocation = - iterator.getInlineFunctionCallLocation(first().inlineFunctionInfo) - ?: originalLocation - var inlineStackFrameIndex = 1 - var prevLocation = originalLocation - for (location in iterator) { - if (inlineStackFrameIndex > lastIndex) { - break - } - if (this[inlineStackFrameIndex].inlineFunctionInfo.contains(location)) { - this[inlineStackFrameIndex - 1].location = prevLocation - inlineStackFrameIndex++ - } - prevLocation = location + if (framesInfo.isEmpty()) { + return originalLocation } - last().location = originalLocation - return newFrameProxyLocation - } + val firstInlineFunctionInfo = framesInfo.first().inlineFunctionInfo + val firstInlineCallLocationIndex = allLocations.indexOfFirst { firstInlineFunctionInfo.contains(it) } + if (firstInlineCallLocationIndex == -1) { + return originalLocation + } - private fun Iterator<Location>.getInlineFunctionCallLocation(inlineFunctionInfo: AbstractInlineFunctionInfo): Location? { - var prevLocation: Location? = null - for (location in this) { - if (inlineFunctionInfo.contains(location)) { - return prevLocation + var frameIndex = 1 + var prevLocation = originalLocation + for (locationIndex in firstInlineCallLocationIndex..allLocations.lastIndex) { + if (frameIndex > framesInfo.lastIndex) break + + val location = allLocations[locationIndex] + val currentFrame = framesInfo[frameIndex] + val previousFrame = framesInfo[frameIndex - 1] + + if (currentFrame.inlineFunctionInfo.contains(location)) { + previousFrame.location = prevLocation + frameIndex++ } + prevLocation = location } - - return null + framesInfo.last().location = originalLocation + + val newFrameProxyLocationIndex = + if (firstInlineCallLocationIndex > 0) + firstInlineCallLocationIndex - 1 + else + 0 + return allLocations[newFrameProxyLocationIndex] } private fun InlineStackFrameVariableHolder?.getVisibleVariables() = this?.visibleVariables.orEmpty() } -private data class InlineStackFrameInfo(val inlineFunctionInfo: AbstractInlineFunctionInfo, var location: Location, var depth: Int) { +private data class InlineStackFrameInfo( + val inlineFunctionInfo: AbstractInlineFunctionInfo, + var location: Location, + var depth: Int +) { fun toInlineStackFrame( frameProxy: StackFrameProxyImpl, visibleVariables: List<LocalVariableProxyImpl> @@ -175,17 +180,14 @@ private abstract class AbstractInlineFunctionInfo(val name: String, val borders: private class InlineFunctionInfo( name: String, borders: ClosedRange<Location> -) : AbstractInlineFunctionInfo( - name.substringAfter(JvmAbi.LOCAL_VARIABLE_NAME_PREFIX_INLINE_FUNCTION), - borders -) { +) : AbstractInlineFunctionInfo(name.substringAfter(INLINE_FUNCTION_PREFIX), borders) { override fun getDisplayName() = name } private class InlineLambdaNameWrapper(name: String) { companion object { private val inlineLambdaRegex = - "${JvmAbi.LOCAL_VARIABLE_NAME_PREFIX_INLINE_ARGUMENT.replace("$", "\\$")}-(.+)-[^\$]+\\$([^\$]+)\\$.*" + "${INLINE_ARGUMENT_PREFIX.replace("$", "\\$")}-(.+)-[^\$]+\\$([^\$]+)\\$.*" .toRegex() } @@ -201,9 +203,9 @@ private class InlineLambdaInfo(name: String, borders: ClosedRange<Location>) : A private val nameWrapper = InlineLambdaNameWrapper(name) override fun getDisplayName(): String { - if (!nameWrapper.isValid()) { + if (!nameWrapper.isValid()) return name - } + return "lambda '${nameWrapper.lambdaName}' in '${nameWrapper.declarationFunctionName}'" } diff --git a/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/IrKotlinEvaluateExpressionTestGenerated.java b/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/IrKotlinEvaluateExpressionTestGenerated.java index f20a49d5cec8..1f08cec9f380 100644 --- a/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/IrKotlinEvaluateExpressionTestGenerated.java +++ b/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/IrKotlinEvaluateExpressionTestGenerated.java @@ -1403,6 +1403,11 @@ public abstract class IrKotlinEvaluateExpressionTestGenerated extends AbstractIr runTest("testData/evaluation/multipleBreakpoints/inlineStackTrace.kt"); } + @TestMetadata("inlineStackTraceWithApply.kt") + public void testInlineStackTraceWithApply() throws Exception { + runTest("testData/evaluation/multipleBreakpoints/inlineStackTraceWithApply.kt"); + } + @TestMetadata("inlineStackTraceWithNestedLambdas.kt") public void testInlineStackTraceWithNestedLambdas() throws Exception { runTest("testData/evaluation/multipleBreakpoints/inlineStackTraceWithNestedLambdas.kt"); diff --git a/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/IrKotlinEvaluateExpressionWithIRFragmentCompilerTestGenerated.java b/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/IrKotlinEvaluateExpressionWithIRFragmentCompilerTestGenerated.java index 246144ea060a..806572a64c9b 100644 --- a/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/IrKotlinEvaluateExpressionWithIRFragmentCompilerTestGenerated.java +++ b/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/IrKotlinEvaluateExpressionWithIRFragmentCompilerTestGenerated.java @@ -1403,6 +1403,11 @@ public abstract class IrKotlinEvaluateExpressionWithIRFragmentCompilerTestGenera runTest("testData/evaluation/multipleBreakpoints/inlineStackTrace.kt"); } + @TestMetadata("inlineStackTraceWithApply.kt") + public void testInlineStackTraceWithApply() throws Exception { + runTest("testData/evaluation/multipleBreakpoints/inlineStackTraceWithApply.kt"); + } + @TestMetadata("inlineStackTraceWithNestedLambdas.kt") public void testInlineStackTraceWithNestedLambdas() throws Exception { runTest("testData/evaluation/multipleBreakpoints/inlineStackTraceWithNestedLambdas.kt"); diff --git a/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/KotlinEvaluateExpressionTestGenerated.java b/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/KotlinEvaluateExpressionTestGenerated.java index 750b9a819fad..793d426a55ef 100644 --- a/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/KotlinEvaluateExpressionTestGenerated.java +++ b/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/KotlinEvaluateExpressionTestGenerated.java @@ -1403,6 +1403,11 @@ public abstract class KotlinEvaluateExpressionTestGenerated extends AbstractKotl runTest("testData/evaluation/multipleBreakpoints/inlineStackTrace.kt"); } + @TestMetadata("inlineStackTraceWithApply.kt") + public void testInlineStackTraceWithApply() throws Exception { + runTest("testData/evaluation/multipleBreakpoints/inlineStackTraceWithApply.kt"); + } + @TestMetadata("inlineStackTraceWithNestedLambdas.kt") public void testInlineStackTraceWithNestedLambdas() throws Exception { runTest("testData/evaluation/multipleBreakpoints/inlineStackTraceWithNestedLambdas.kt"); diff --git a/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/KotlinEvaluateExpressionWithIRFragmentCompilerTestGenerated.java b/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/KotlinEvaluateExpressionWithIRFragmentCompilerTestGenerated.java index 9cf2ebc7b880..ab6d6e3220e1 100644 --- a/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/KotlinEvaluateExpressionWithIRFragmentCompilerTestGenerated.java +++ b/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/KotlinEvaluateExpressionWithIRFragmentCompilerTestGenerated.java @@ -1403,6 +1403,11 @@ public abstract class KotlinEvaluateExpressionWithIRFragmentCompilerTestGenerate runTest("testData/evaluation/multipleBreakpoints/inlineStackTrace.kt"); } + @TestMetadata("inlineStackTraceWithApply.kt") + public void testInlineStackTraceWithApply() throws Exception { + runTest("testData/evaluation/multipleBreakpoints/inlineStackTraceWithApply.kt"); + } + @TestMetadata("inlineStackTraceWithNestedLambdas.kt") public void testInlineStackTraceWithNestedLambdas() throws Exception { runTest("testData/evaluation/multipleBreakpoints/inlineStackTraceWithNestedLambdas.kt"); diff --git a/plugins/kotlin/jvm-debugger/test/testData/evaluation/multipleBreakpoints/inlineStackTraceWithApply.kt b/plugins/kotlin/jvm-debugger/test/testData/evaluation/multipleBreakpoints/inlineStackTraceWithApply.kt new file mode 100644 index 000000000000..52a73f404b6f --- /dev/null +++ b/plugins/kotlin/jvm-debugger/test/testData/evaluation/multipleBreakpoints/inlineStackTraceWithApply.kt @@ -0,0 +1,35 @@ +package inlineStackTraceWithAlso + +class Foo + +inline fun Foo.body() { + val x2 = 2 + //Breakpoint! + myAddChild() +} + +inline fun Foo.myAddChild() { + val x3 = 3 + //Breakpoint! + println() +} + +fun main() { + Foo().apply { + val x1 = 1 + //Breakpoint! + body() + } +} + +// PRINT_FRAME +// SHOW_KOTLIN_VARIABLES + +// EXPRESSION: x1 +// RESULT: 1: I + +// EXPRESSION: x2 +// RESULT: 2: I + +// EXPRESSION: x3 +// RESULT: 3: I diff --git a/plugins/kotlin/jvm-debugger/test/testData/evaluation/multipleBreakpoints/inlineStackTraceWithApply.out b/plugins/kotlin/jvm-debugger/test/testData/evaluation/multipleBreakpoints/inlineStackTraceWithApply.out new file mode 100644 index 000000000000..6a49263aacaa --- /dev/null +++ b/plugins/kotlin/jvm-debugger/test/testData/evaluation/multipleBreakpoints/inlineStackTraceWithApply.out @@ -0,0 +1,47 @@ +LineBreakpoint created at inlineStackTraceWithApply.kt:8 +LineBreakpoint created at inlineStackTraceWithApply.kt:14 +LineBreakpoint created at inlineStackTraceWithApply.kt:21 +Run Java +Connected to the target VM +inlineStackTraceWithApply.kt:21 +Compile bytecode for x1 +InlineStackFrame lambda 'apply' in 'main' (inlineStackTraceWithApply.kt:21) + JavaValue[local] this: inlineStackTraceWithAlso.Foo = inlineStackTraceWithAlso.Foo@hashCode + DummyMessageValueNode = Class has no properties + JavaValue[local] x1: int = 1 (inlineStackTraceWithApply.kt:19) +KotlinStackFrameWithProvidedVariables (inlineStackTraceWithApply.kt:18) + JavaValue[local] this: inlineStackTraceWithAlso.Foo = inlineStackTraceWithAlso.Foo@hashCode + DummyMessageValueNode = Class has no properties +inlineStackTraceWithApply.kt:8 +Compile bytecode for x2 +InlineStackFrame body (inlineStackTraceWithApply.kt:8) + JavaValue[local] this: inlineStackTraceWithAlso.Foo = inlineStackTraceWithAlso.Foo@hashCode + DummyMessageValueNode = Class has no properties + JavaValue[local] x2: int = 2 (inlineStackTraceWithApply.kt:6) +InlineStackFrame lambda 'apply' in 'main' (inlineStackTraceWithApply.kt:21) + JavaValue[local] this: inlineStackTraceWithAlso.Foo = inlineStackTraceWithAlso.Foo@hashCode + DummyMessageValueNode = Class has no properties + JavaValue[local] x1: int = 1 +KotlinStackFrameWithProvidedVariables (inlineStackTraceWithApply.kt:18) + JavaValue[local] this: inlineStackTraceWithAlso.Foo = inlineStackTraceWithAlso.Foo@hashCode + DummyMessageValueNode = Class has no properties +inlineStackTraceWithApply.kt:14 +Compile bytecode for x3 +InlineStackFrame myAddChild (inlineStackTraceWithApply.kt:14) + JavaValue[local] this: inlineStackTraceWithAlso.Foo = inlineStackTraceWithAlso.Foo@hashCode + DummyMessageValueNode = Class has no properties + JavaValue[local] x3: int = 3 (inlineStackTraceWithApply.kt:12) +InlineStackFrame body (inlineStackTraceWithApply.kt:8) + JavaValue[local] this: inlineStackTraceWithAlso.Foo = inlineStackTraceWithAlso.Foo@hashCode + DummyMessageValueNode = Class has no properties + JavaValue[local] x2: int = 2 +InlineStackFrame lambda 'apply' in 'main' (inlineStackTraceWithApply.kt:21) + JavaValue[local] this: inlineStackTraceWithAlso.Foo = inlineStackTraceWithAlso.Foo@hashCode + DummyMessageValueNode = Class has no properties + JavaValue[local] x1: int = 1 +KotlinStackFrameWithProvidedVariables (inlineStackTraceWithApply.kt:18) + JavaValue[local] this: inlineStackTraceWithAlso.Foo = inlineStackTraceWithAlso.Foo@hashCode + DummyMessageValueNode = Class has no properties +Disconnected from the target VM + +Process finished with exit code 0 diff --git a/plugins/kotlin/jvm-debugger/test/testData/evaluation/singleBreakpoint/frame/capturedValues2.out b/plugins/kotlin/jvm-debugger/test/testData/evaluation/singleBreakpoint/frame/capturedValues2.out index 8cd991baf98b..8f8143f77d0c 100644 --- a/plugins/kotlin/jvm-debugger/test/testData/evaluation/singleBreakpoint/frame/capturedValues2.out +++ b/plugins/kotlin/jvm-debugger/test/testData/evaluation/singleBreakpoint/frame/capturedValues2.out @@ -10,7 +10,7 @@ InlineStackFrame lambda 'block' in 'main' (capturedValues2.kt:14) InlineStackFrame block (capturedValues2.kt:23) InlineStackFrame lambda 'block' in 'main' (capturedValues2.kt:10) JavaValue[local] a: int = 2 (capturedValues2.kt:13) -InlineStackFrame block (capturedValues2.kt:16) +InlineStackFrame block (capturedValues2.kt:23) KotlinStackFrameWithProvidedVariables (capturedValues2.kt:6) JavaValue[local] a: int = 1 (capturedValues2.kt:13) Disconnected from the target VM diff --git a/plugins/kotlin/jvm-debugger/test/testData/evaluation/singleBreakpoint/frame/frameSharedVarLocalVar.out b/plugins/kotlin/jvm-debugger/test/testData/evaluation/singleBreakpoint/frame/frameSharedVarLocalVar.out index e19468ddfcfa..cd2af002bf2d 100644 --- a/plugins/kotlin/jvm-debugger/test/testData/evaluation/singleBreakpoint/frame/frameSharedVarLocalVar.out +++ b/plugins/kotlin/jvm-debugger/test/testData/evaluation/singleBreakpoint/frame/frameSharedVarLocalVar.out @@ -6,7 +6,7 @@ Compile bytecode for var1 InlineStackFrame lambda 'foo' in 'main' (frameSharedVarLocalVar.kt:7) JavaValue[local] args: java.lang.String[] = [] (frameSharedVarLocalVar.kt:3) JavaValue[local] var1: int = 1 (frameSharedVarLocalVar.kt:4) -InlineStackFrame foo (frameSharedVarLocalVar.kt:7) +InlineStackFrame foo (frameSharedVarLocalVar.kt:12) KotlinStackFrameWithProvidedVariables (frameSharedVarLocalVar.kt:5) JavaValue[local] args: java.lang.String[] = [] (frameSharedVarLocalVar.kt:3) JavaValue[local] var1: int = 1 (frameSharedVarLocalVar.kt:4) diff --git a/plugins/kotlin/plugin/resources/META-INF/highlighting.xml b/plugins/kotlin/plugin/resources/META-INF/highlighting.xml index 487e1982b3f5..47da6802185f 100644 --- a/plugins/kotlin/plugin/resources/META-INF/highlighting.xml +++ b/plugins/kotlin/plugin/resources/META-INF/highlighting.xml @@ -21,7 +21,7 @@ <syntaxHighlighter factoryClass="org.jetbrains.kotlin.idea.decompiler.builtIns.KotlinSyntaxHighlighterProviderForDecompiledBuiltIns"/> - <lang.braceMatcher language="kotlin" implementationClass="org.jetbrains.kotlin.idea.KotlinPairMatcher"/> + <lang.braceMatcher language="kotlin" implementationClass="org.jetbrains.kotlin.idea.KotlinPairedBraceMatcher"/> <lang.parserDefinition language="kotlin" implementationClass="org.jetbrains.kotlin.parsing.KotlinParserDefinition"/> diff --git a/plugins/kotlin/plugin/resources/META-INF/kotlin-core.xml b/plugins/kotlin/plugin/resources/META-INF/kotlin-core.xml index bec13677920e..ba1ff44317c1 100644 --- a/plugins/kotlin/plugin/resources/META-INF/kotlin-core.xml +++ b/plugins/kotlin/plugin/resources/META-INF/kotlin-core.xml @@ -53,6 +53,7 @@ <applicationService serviceInterface="org.jetbrains.kotlin.idea.references.ReadWriteAccessChecker" serviceImplementation="org.jetbrains.kotlin.idea.references.ReadWriteAccessCheckerDescriptorsImpl"/> + <applicationService serviceImplementation="org.jetbrains.kotlin.idea.macros.ApplicationWideKotlinBundledPathMacroCleaner" preload="true"/> <projectService serviceImplementation="org.jetbrains.kotlin.idea.PluginStartupService"/> <projectService serviceImplementation="org.jetbrains.kotlin.idea.core.KotlinPluginDisposable"/> @@ -96,7 +97,7 @@ <pathMacroExpandableProtocol protocol="kotlin-js-meta"/> - <pathMacroContributor implementation="org.jetbrains.kotlin.idea.KotlinPluginMacros"/> + <projectPathMacroContributor implementation="org.jetbrains.kotlin.idea.macros.KotlinBundledPathMacroContributor"/> <postStartupActivity implementation="org.jetbrains.kotlin.idea.PluginStartupActivity"/> <postStartupActivity implementation="org.jetbrains.kotlin.idea.versions.KotlinUpdatePluginStartupActivity"/> diff --git a/plugins/kotlin/plugin/resources/META-INF/plugin.xml b/plugins/kotlin/plugin/resources/META-INF/plugin.xml index 11afb9c1ea28..782764077cb0 100644 --- a/plugins/kotlin/plugin/resources/META-INF/plugin.xml +++ b/plugins/kotlin/plugin/resources/META-INF/plugin.xml @@ -18,22 +18,20 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio. <!--suppress PluginXmlValidity --> <change-notes><![CDATA[ - <h3>1.6.20-RC</h3> + <h3>1.6.20</h3> <ul> - <li>Stabilization of Kotlin 1.6.20-M1 features.</li> + <li>Language: prototype of context receivers, definitely non-nullable types</li> + <li>Kotlin/JVM: experimental parallel compilation of a single module, callable references to functional interface constructors, improved compatibility for default methods</li> + <li>Kotlin/Native: instantiation of annotation classes, improved interop with Swift async/await, better stack traces with libbacktrace, performance improvements</li> + <li>Multiplatform: hierarchical project structure by default</li> + <li>CocoaPods Gradle plugin: new tasks for generating a suitable podspec for XCFramework publishing, accepting the podspec version when configuring CocoaPods for Kotlin/Native</li> + <li>Kotlin/JS: IR compiler improvements (incremental compilation, lazy initialization of top-level properties, separate JS files for project modules), export improvements</li> + <li>Security: using relative paths in klibs, persisting yarn.lock for Kotlin/JS Gradle projects, installation of npm dependencies with --ignore-scripts by default</li> + <li>Gradle: compiler execution strategies, cleaning up deprecated properties and options</li> </ul> - Learn more in the <a href="https://github.com/JetBrains/kotlin/releases/tag/v1.6.20-RC">changelog</a>. - <br><br> - <h3>1.6.20-M1</h3> - <ul> - <li>Language: prototype of context receivers</li> - <li>Kotlin/JVM: experimental parallel compilation of a single module, deprecation of old `-Xjvm-default` modes, new `@JvmDefaultWithCompatibility` annotation</li> - <li>Kotlin/Native: concurrent sweep phase in the new memory manager, support for Xcode 13 SDKs, instantiation of annotation classes, support for resolving source locations with `libbacktrace`, improved "could not build module" cinterop report, performance improvements</li> - <li>CocoaPods Gradle plugin: customization of podspec properties, accepting version when configuring CocoaPods for Kotlin/Native, new task for generating a suitable podspec for a built XCFramework</li> - <li>Kotlin/JS: incremental compilation in the IR backend, lazy initialization of top-level properties by default, inline `Char` class, ability to use inline classes in external types, export improvements</li> - <li>Gradle: new flexible way of defining a Kotlin compiler execution strategy, removed `kotlin.parallel.tasks.in.project` build option, deprecated `kapt.use.worker.api` and `kotlin.coroutines` build options</li> - </ul> - Learn more in the <a href="https://github.com/JetBrains/kotlin/releases/tag/v1.6.20-M1">changelog</a>. + Learn more in the <a href="https://github.com/JetBrains/kotlin/releases/tag/v1.6.20">changelog</a>. + <br> + For more details, see [What’s New in Kotlin 1.6.20](https://kotlinlang.org/docs/whatsnew1620.html). <br><br> <h3>1.6.0</h3> <ul> diff --git a/plugins/kotlin/project-wizard/cli/test/org/jetbrains/kotlin/tools/projectWizard/cli/AbstractBuildFileGenerationTest.kt b/plugins/kotlin/project-wizard/cli/test/org/jetbrains/kotlin/tools/projectWizard/cli/AbstractBuildFileGenerationTest.kt index 577a6c5814fa..7087f891b3c6 100644 --- a/plugins/kotlin/project-wizard/cli/test/org/jetbrains/kotlin/tools/projectWizard/cli/AbstractBuildFileGenerationTest.kt +++ b/plugins/kotlin/project-wizard/cli/test/org/jetbrains/kotlin/tools/projectWizard/cli/AbstractBuildFileGenerationTest.kt @@ -17,6 +17,10 @@ abstract class AbstractBuildFileGenerationTest : UsefulTestCase() { abstract fun createWizard(directory: Path, buildSystem: BuildSystem, projectDirectory: Path): Wizard fun doTest(directoryPath: String) { + doTest(directoryPath, { _, _ -> }) + } + + fun doTest(directoryPath: String, additionalChecks: ((Path, Path) -> Unit)) { val directory = Paths.get(directoryPath) val testParameters = DefaultTestParameters.fromTestDataOrDefault(directory) @@ -28,11 +32,11 @@ abstract class AbstractBuildFileGenerationTest : UsefulTestCase() { ) for (buildSystem in buildSystemsToRunFor) { - doTest(directory, buildSystem, testParameters) + doTest(directory, buildSystem, testParameters, additionalChecks) } } - private fun doTest(directory: Path, buildSystem: BuildSystem, testParameters: DefaultTestParameters) { + private fun doTest(directory: Path, buildSystem: BuildSystem, testParameters: DefaultTestParameters, additionalChecks: ((Path, Path) -> Unit)) { val tempDirectory = Files.createTempDirectory(null) val wizard = createWizard(directory, buildSystem, tempDirectory) val result = wizard.apply(Services.IDEA_INDEPENDENT_SERVICES, GenerationPhase.ALL) @@ -62,6 +66,7 @@ abstract class AbstractBuildFileGenerationTest : UsefulTestCase() { ).replace("gradle-${Versions.GRADLE.text}-bin.zip", "gradle-GRADLE_VERSION-bin.zip") .replace("gradle-${Versions.GRADLE_VERSION_FOR_COMPOSE.text}-bin.zip", "gradle-GRADLE_VERSION_FOR_COMPOSE-bin.zip") } + additionalChecks(expectedDirectory, tempDirectory) } private fun Path.allBuildFiles(buildSystem: BuildSystem) = diff --git a/plugins/kotlin/project-wizard/cli/test/org/jetbrains/kotlin/tools/projectWizard/cli/testUtils.kt b/plugins/kotlin/project-wizard/cli/test/org/jetbrains/kotlin/tools/projectWizard/cli/testUtils.kt index 7e5e5959fd16..99dde8e893eb 100644 --- a/plugins/kotlin/project-wizard/cli/test/org/jetbrains/kotlin/tools/projectWizard/cli/testUtils.kt +++ b/plugins/kotlin/project-wizard/cli/test/org/jetbrains/kotlin/tools/projectWizard/cli/testUtils.kt @@ -14,14 +14,14 @@ import java.nio.file.Files import java.nio.file.Path import java.util.stream.Collectors -internal fun Path.readFile() = toFile().readText().trim() +fun Path.readFile() = toFile().readText().trim() -internal fun Path.listFiles(filter: (Path) -> Boolean) = +fun Path.listFiles(filter: (Path) -> Boolean) = Files.walk(this).filter { path -> Files.isRegularFile(path) && filter(path) }.collect(Collectors.toList()).sorted() -internal fun compareFilesAndGenerateMissing( +fun compareFilesAndGenerateMissing( expectedFiles: List<Path>, expectedDir: Path, actualFiles: List<Path>, actualDir: Path, readActualFile: (Path) -> String diff --git a/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/consoleApplication/pom.xml b/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/consoleApplication/pom.xml index b151d11a5925..9a711f8500a2 100644 --- a/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/consoleApplication/pom.xml +++ b/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/consoleApplication/pom.xml @@ -4,7 +4,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <artifactId>consoleApp</artifactId> + <artifactId>artifactId</artifactId> <groupId>me.user</groupId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> diff --git a/plugins/kotlin/project-wizard/core/resources/messages/KotlinNewProjectWizardBundle.properties b/plugins/kotlin/project-wizard/core/resources/messages/KotlinNewProjectWizardBundle.properties index b382714ccf41..9f7e4abce8e0 100644 --- a/plugins/kotlin/project-wizard/core/resources/messages/KotlinNewProjectWizardBundle.properties +++ b/plugins/kotlin/project-wizard/core/resources/messages/KotlinNewProjectWizardBundle.properties @@ -26,7 +26,6 @@ module.kind.mpp.module=MPP Module module.kind.target=Target plugin.buildsystem.setting.type=Build system -plugin.buildsystem.setting.type.tooltip=The build tool that will be used for managing dependencies, testing, packaging, automating the build process, and so on plugin.buildsystem.setting.type.error.wrong.project.kind={0} project cannot be generated using {1} plugin.kotlin.downloading.kotlin.versions=Downloading list of Kotlin versions @@ -54,7 +53,7 @@ plugin.structure.setting.artifact.id=Artifact ID plugin.structure.setting.artifact.id.tooltip=The unique name of the primary artifact for this project \u2013 not applicable for the IntelliJ build system plugin.structure.setting.version=Version plugin.structure.setting.version.tooltip=The version of the primary artifact generated by the project \u2013 not applicable for the IntelliJ build system -plugin.templates.setting.template=Project Template +plugin.templates.setting.template=Project template plugin.templates.setting.template.tooltip=Defines the initial project structure. Depending on your purpose, select one of the following templates: plugin.android.setting.sdk=Android SDK diff --git a/plugins/kotlin/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/ios/singleplatformCocoaPodsProject/Podfile b/plugins/kotlin/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/ios/singleplatformCocoaPodsProject/Podfile new file mode 100644 index 000000000000..aff9c517b203 --- /dev/null +++ b/plugins/kotlin/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/ios/singleplatformCocoaPodsProject/Podfile @@ -0,0 +1,5 @@ +target 'iosApp' do + use_frameworks! + platform :ios, '14.1' + pod 'shared', :path => '../shared' +end
\ No newline at end of file diff --git a/plugins/kotlin/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/ios/singleplatformCocoaPodsProject/appName.xcodeproj/project.pbxproj b/plugins/kotlin/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/ios/singleplatformCocoaPodsProject/appName.xcodeproj/project.pbxproj new file mode 100644 index 000000000000..2fd9121d3acc --- /dev/null +++ b/plugins/kotlin/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/ios/singleplatformCocoaPodsProject/appName.xcodeproj/project.pbxproj @@ -0,0 +1,319 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557BA273AAA24004C7B11 /* Assets.xcassets */; }; + 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */; }; + 2152FB042600AC8F00CF470E /* ${moduleName}.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2152FB032600AC8F00CF470E /* ${moduleName}.swift */; }; + 7555FF83242A565900829871 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7555FF82242A565900829871 /* ContentView.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 058557BA273AAA24004C7B11 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; + 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; }; + 2152FB032600AC8F00CF470E /* ${moduleName}.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ${moduleName}.swift; sourceTree = "<group>"; }; + 7555FF7B242A565900829871 /* ${moduleName}.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ${moduleName}.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 7555FF82242A565900829871 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; }; + 7555FF8C242A565B00829871 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; +/* End PBXFileReference section */ + +/* Begin PBXGroup section */ + 058557D7273AAEEB004C7B11 /* Preview Content */ = { + isa = PBXGroup; + children = ( + 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */, + ); + path = "Preview Content"; + sourceTree = "<group>"; + }; + 7555FF72242A565900829871 = { + isa = PBXGroup; + children = ( + 7555FF7D242A565900829871 /* ${moduleName} */, + 7555FF7C242A565900829871 /* Products */, + ); + sourceTree = "<group>"; + }; + 7555FF7C242A565900829871 /* Products */ = { + isa = PBXGroup; + children = ( + 7555FF7B242A565900829871 /* ${moduleName}.app */, + ); + name = Products; + sourceTree = "<group>"; + }; + 7555FF7D242A565900829871 /* ${moduleName} */ = { + isa = PBXGroup; + children = ( + 058557BA273AAA24004C7B11 /* Assets.xcassets */, + 7555FF82242A565900829871 /* ContentView.swift */, + 7555FF8C242A565B00829871 /* Info.plist */, + 2152FB032600AC8F00CF470E /* ${moduleName}.swift */, + 058557D7273AAEEB004C7B11 /* Preview Content */, + ); + path = ${moduleName}; + sourceTree = "<group>"; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 7555FF7A242A565900829871 /* ${moduleName} */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "${moduleName}" */; + buildPhases = ( + 7555FF77242A565900829871 /* Sources */, + 7555FF79242A565900829871 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ${moduleName}; + productName = ${moduleName}; + productReference = 7555FF7B242A565900829871 /* ${moduleName}.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 7555FF73242A565900829871 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1130; + LastUpgradeCheck = 1130; + ORGANIZATIONNAME = orgName; + TargetAttributes = { + 7555FF7A242A565900829871 = { + CreatedOnToolsVersion = 11.3.1; + }; + }; + }; + buildConfigurationList = 7555FF76242A565900829871 /* Build configuration list for PBXProject "${moduleName}" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 7555FF72242A565900829871; + productRefGroup = 7555FF7C242A565900829871 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 7555FF7A242A565900829871 /* ${moduleName} */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 7555FF79242A565900829871 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */, + 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 7555FF77242A565900829871 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2152FB042600AC8F00CF470E /* ${moduleName}.swift in Sources */, + 7555FF83242A565900829871 /* ContentView.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 7555FFA3242A565B00829871 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 14.1; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 7555FFA4242A565B00829871 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 14.1; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 7555FFA6242A565B00829871 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "\"${moduleName}/Preview Content\""; + ENABLE_PREVIEWS = YES; + INFOPLIST_FILE = ${moduleName}/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.1; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = orgIdentifier.${moduleName}; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 7555FFA7242A565B00829871 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "\"${moduleName}/Preview Content\""; + ENABLE_PREVIEWS = YES; + INFOPLIST_FILE = ${moduleName}/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.1; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = orgIdentifier.${moduleName}; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 7555FF76242A565900829871 /* Build configuration list for PBXProject "${moduleName}" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7555FFA3242A565B00829871 /* Debug */, + 7555FFA4242A565B00829871 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "${moduleName}" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7555FFA6242A565B00829871 /* Debug */, + 7555FFA7242A565B00829871 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 7555FF73242A565900829871 /* Project object */; +} diff --git a/plugins/kotlin/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/ios/singleplatformCocoaPodsProject/appName/Assets.xcassets/AccentColor.colorset/Contents.json b/plugins/kotlin/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/ios/singleplatformCocoaPodsProject/appName/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 000000000000..ee7e3ca03f87 --- /dev/null +++ b/plugins/kotlin/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/ios/singleplatformCocoaPodsProject/appName/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +}
\ No newline at end of file diff --git a/plugins/kotlin/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/ios/singleplatformCocoaPodsProject/appName/Assets.xcassets/AppIcon.appiconset/Contents.json b/plugins/kotlin/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/ios/singleplatformCocoaPodsProject/appName/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 000000000000..fb88a396bf38 --- /dev/null +++ b/plugins/kotlin/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/ios/singleplatformCocoaPodsProject/appName/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "20x20" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "29x29" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "40x40" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "76x76" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "76x76" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "83.5x83.5" + }, + { + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +}
\ No newline at end of file diff --git a/plugins/kotlin/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/ios/singleplatformCocoaPodsProject/appName/Assets.xcassets/Contents.json b/plugins/kotlin/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/ios/singleplatformCocoaPodsProject/appName/Assets.xcassets/Contents.json new file mode 100644 index 000000000000..4aa7c5350bfc --- /dev/null +++ b/plugins/kotlin/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/ios/singleplatformCocoaPodsProject/appName/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +}
\ No newline at end of file diff --git a/plugins/kotlin/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/ios/singleplatformCocoaPodsProject/appName/ContentView.swift.vm b/plugins/kotlin/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/ios/singleplatformCocoaPodsProject/appName/ContentView.swift.vm new file mode 100644 index 000000000000..8732b955fd78 --- /dev/null +++ b/plugins/kotlin/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/ios/singleplatformCocoaPodsProject/appName/ContentView.swift.vm @@ -0,0 +1,16 @@ +import SwiftUI +import ${sharedModuleName} + +struct ContentView: View { + let greet = Greeting().greeting() + + var body: some View { + Text(greet) + } +} + +struct ContentView_Previews: PreviewProvider { + static var previews: some View { + ContentView() + } +}
\ No newline at end of file diff --git a/plugins/kotlin/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/ios/singleplatformCocoaPodsProject/appName/Info.plist b/plugins/kotlin/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/ios/singleplatformCocoaPodsProject/appName/Info.plist new file mode 100644 index 000000000000..8044709cfa75 --- /dev/null +++ b/plugins/kotlin/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/ios/singleplatformCocoaPodsProject/appName/Info.plist @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>$(DEVELOPMENT_LANGUAGE)</string> + <key>CFBundleExecutable</key> + <string>$(EXECUTABLE_NAME)</string> + <key>CFBundleIdentifier</key> + <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>$(PRODUCT_NAME)</string> + <key>CFBundlePackageType</key> + <string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string> + <key>CFBundleShortVersionString</key> + <string>1.0</string> + <key>CFBundleVersion</key> + <string>1</string> + <key>LSRequiresIPhoneOS</key> + <true/> + <key>UIApplicationSceneManifest</key> + <dict> + <key>UIApplicationSupportsMultipleScenes</key> + <false/> + </dict> + <key>UIRequiredDeviceCapabilities</key> + <array> + <string>armv7</string> + </array> + <key>UISupportedInterfaceOrientations</key> + <array> + <string>UIInterfaceOrientationPortrait</string> + <string>UIInterfaceOrientationLandscapeLeft</string> + <string>UIInterfaceOrientationLandscapeRight</string> + </array> + <key>UISupportedInterfaceOrientations~ipad</key> + <array> + <string>UIInterfaceOrientationPortrait</string> + <string>UIInterfaceOrientationPortraitUpsideDown</string> + <string>UIInterfaceOrientationLandscapeLeft</string> + <string>UIInterfaceOrientationLandscapeRight</string> + </array> + <key>UILaunchScreen</key> + <dict/> +</dict> +</plist>
\ No newline at end of file diff --git a/plugins/kotlin/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/ios/singleplatformCocoaPodsProject/appName/Preview Content/Preview Assets.xcassets/Contents.json b/plugins/kotlin/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/ios/singleplatformCocoaPodsProject/appName/Preview Content/Preview Assets.xcassets/Contents.json new file mode 100644 index 000000000000..4aa7c5350bfc --- /dev/null +++ b/plugins/kotlin/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/ios/singleplatformCocoaPodsProject/appName/Preview Content/Preview Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +}
\ No newline at end of file diff --git a/plugins/kotlin/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/ios/singleplatformCocoaPodsProject/appName/appName.swift.vm b/plugins/kotlin/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/ios/singleplatformCocoaPodsProject/appName/appName.swift.vm new file mode 100644 index 000000000000..3e8c0f8afaf4 --- /dev/null +++ b/plugins/kotlin/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/ios/singleplatformCocoaPodsProject/appName/appName.swift.vm @@ -0,0 +1,10 @@ +import SwiftUI + +@main +struct ${moduleName}: App { + var body: some Scene { + WindowGroup { + ContentView() + } + } +}
\ No newline at end of file diff --git a/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/BuildSystemPluginIR.kt b/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/BuildSystemPluginIR.kt index 54f63975b1ec..efdaace5ba7a 100644 --- a/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/BuildSystemPluginIR.kt +++ b/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/BuildSystemPluginIR.kt @@ -92,6 +92,9 @@ data class KotlinBuildSystemPluginIR( @Suppress("EnumEntryName", "unused", "SpellCheckingInspection") enum class Type { - jvm, multiplatform, android, js + jvm, multiplatform, android, js, + nativeCocoapods { + override fun toString(): String = "native.cocoapods" + } } } diff --git a/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/IOSModuleConfigurator.kt b/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/IOSModuleConfigurator.kt index 11fcb9d8d0ab..e50ccea30d4c 100644 --- a/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/IOSModuleConfigurator.kt +++ b/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/IOSModuleConfigurator.kt @@ -21,6 +21,8 @@ object IOSSinglePlatformModuleConfigurator : IOSSinglePlatformModuleConfigurator ): TaskResult<Unit> = GradlePlugin.gradleProperties.addValues("xcodeproj" to "./${module.name}") + override val moduleTemplatePath: String get() = "singleplatformProject" + override fun ListBuilder<FileTemplate>.additionalTemplates(fileTemplate: (Path) -> FileTemplate) { +fileTemplate("$DEFAULT_APP_NAME.xcodeproj" / "project.pbxproj") @@ -32,6 +34,44 @@ object IOSSinglePlatformModuleConfigurator : IOSSinglePlatformModuleConfigurator } } +object IOSSinglePlatformCocoaPodsModuleConfigurator : IOSSinglePlatformModuleConfiguratorBase() { + override val moduleTemplatePath: String get() = "singleplatformCocoaPodsProject" + + override fun Writer.runArbitraryTask( + configurationData: ModulesToIrConversionData, + module: Module, + modulePath: Path + ): TaskResult<Unit> = compute { + GradlePlugin.gradleProperties.addValues("xcodeproj" to "./${module.name}") + GradlePlugin.gradleProperties.addValues("kotlin.native.cocoapods.generate.wrapper" to true) + } + + override fun Reader.createTemplates( + configurationData: ModulesToIrConversionData, + module: Module, + modulePath: Path + ): List<FileTemplate> { + val settings = createTemplatesSettingValues(module) + + fun fileTemplate(path: Path) = FileTemplate(descriptor(path, module.name), modulePath, settings) + + return buildList { + +fileTemplate(DEFAULT_APP_NAME / "$DEFAULT_APP_NAME.swift.vm") + +fileTemplate(DEFAULT_APP_NAME / "ContentView.swift.vm") + + +fileTemplate(DEFAULT_APP_NAME / "Assets.xcassets" / "Contents.json") + +fileTemplate(DEFAULT_APP_NAME / "Assets.xcassets" / "AppIcon.appiconset" / "Contents.json") + +fileTemplate(DEFAULT_APP_NAME / "Assets.xcassets" / "AccentColor.colorset" / "Contents.json") + +fileTemplate(DEFAULT_APP_NAME / "Preview Content" / "Preview Assets.xcassets" / "Contents.json") + + +fileTemplate("$DEFAULT_APP_NAME.xcodeproj" / "project.pbxproj") + +fileTemplate(DEFAULT_APP_NAME / "Info.plist") + + +fileTemplate("Podfile".asPath()) + } + } +} + abstract class IOSSinglePlatformModuleConfiguratorBase : SinglePlatformModuleConfigurator, ModuleConfiguratorSettings(), ModuleConfiguratorProperties, @@ -47,6 +87,7 @@ abstract class IOSSinglePlatformModuleConfiguratorBase : SinglePlatformModuleCon override val greyText = KotlinNewProjectWizardBundle.message("module.configurator.ios.requires.xcode") override val text = KotlinNewProjectWizardBundle.message("module.configurator.ios") + abstract val moduleTemplatePath: String? override val needCreateBuildFile: Boolean = false override val requiresRootBuildFile: Boolean = true @@ -79,7 +120,7 @@ abstract class IOSSinglePlatformModuleConfiguratorBase : SinglePlatformModuleCon open fun ListBuilder<FileTemplate>.additionalTemplates(fileTemplate: (Path) -> FileTemplate) { } - private fun Reader.createTemplatesSettingValues(module: Module): Map<String, Any?> { + protected fun Reader.createTemplatesSettingValues(module: Module): Map<String, Any?> { val dependentModule = inContextOfModuleConfigurator(module) { dependentModule.reference.propertyValue.module } @@ -92,7 +133,7 @@ abstract class IOSSinglePlatformModuleConfiguratorBase : SinglePlatformModuleCon protected open fun descriptor(path: Path, moduleName: String) = FileTemplateDescriptor( - "ios/singleplatformProject/$path", + "ios/$moduleTemplatePath/$path", path.toString() .removeSuffix(".vm") .replace(DEFAULT_APP_NAME, moduleName) diff --git a/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/NativeTargetConfigurator.kt b/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/NativeTargetConfigurator.kt index 3064c7c1aec4..22d7d747bf8c 100644 --- a/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/NativeTargetConfigurator.kt +++ b/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/NativeTargetConfigurator.kt @@ -7,6 +7,7 @@ import org.jetbrains.kotlin.tools.projectWizard.KotlinNewProjectWizardBundle import org.jetbrains.kotlin.tools.projectWizard.core.Reader import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.BuildSystemIR import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.* +import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.multiplatform.DefaultTargetConfigurationIR import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.multiplatform.NonDefaultTargetConfigurationIR import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemType import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.* @@ -31,7 +32,7 @@ class RealNativeTargetConfigurator private constructor( override fun createInnerTargetIrs(reader: Reader, module: Module): List<BuildSystemIR> = irsList { +super<SimpleTargetConfigurator>.createInnerTargetIrs(reader, module) - if (moduleSubType.isIOS) { + if (moduleSubType.isIOS && moduleSubType != ModuleSubType.iosCocoaPods) { "binaries" { "framework" { "baseName" assign const(module.parent!!.name) @@ -40,6 +41,24 @@ class RealNativeTargetConfigurator private constructor( } } + override fun Reader.createTargetIrs(module: Module): List<BuildSystemIR> = irsList { + +DefaultTargetConfigurationIR( + module.createTargetAccessIr(moduleSubType), + createInnerTargetIrs(this@createTargetIrs, module).toPersistentList() + ) + if (moduleSubType == ModuleSubType.iosCocoaPods) { + "cocoapods" { + "summary" assign const("Some description for the Shared Module") + "homepage" assign const("Link to the Shared Module homepage") + "ios.deploymentTarget" assign const("14.1") + "podfile" assign raw("project.file(\"../iosApp/Podfile\")") //TODO hardcoded name + "framework" { + "baseName" assign const(module.parent!!.name) + } + } + } + } + companion object { val configurators = ModuleSubType.values() diff --git a/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/TargetConfigurator.kt b/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/TargetConfigurator.kt index 9062df4a4c3a..12886ce89471 100644 --- a/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/TargetConfigurator.kt +++ b/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/TargetConfigurator.kt @@ -69,7 +69,7 @@ internal fun Module.createTargetAccessIr( ) = TargetAccessIR( moduleSubType, - name.takeIf { it != moduleSubType.name }, + name.takeIf { it != moduleSubType.toString() }, additionalParams.filterNotNull() ) diff --git a/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/BuildSystemPlugin.kt b/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/BuildSystemPlugin.kt index 19af2b86f2c2..a09af17f240f 100644 --- a/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/BuildSystemPlugin.kt +++ b/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/BuildSystemPlugin.kt @@ -1,7 +1,7 @@ // Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem - +import com.intellij.openapi.util.text.StringUtil import kotlinx.collections.immutable.toImmutableList import org.jetbrains.annotations.Nls import org.jetbrains.annotations.NonNls @@ -59,14 +59,12 @@ abstract class BuildSystemPlugin(context: Context) : Plugin(context) { ValidationResult.ValidationError( KotlinNewProjectWizardBundle.message( "plugin.buildsystem.setting.type.error.wrong.project.kind", - projectKind.shortName.capitalize(), + StringUtil.capitalize(projectKind.shortName), buildSystemType.fullText ) ) } } - - tooltipText = KotlinNewProjectWizardBundle.message("plugin.buildsystem.setting.type.tooltip") } val buildSystemData by property<List<BuildSystemData>>(emptyList()) @@ -195,7 +193,7 @@ enum class BuildSystemType( companion object { val ALL_GRADLE = setOf(GradleKotlinDsl, GradleGroovyDsl) - val ALL_BY_PRIORITY = setOf(GradleKotlinDsl, GradleGroovyDsl, Maven, Jps) + val ALL_BY_PRIORITY = setOf(GradleKotlinDsl, GradleGroovyDsl) } } @@ -228,7 +226,6 @@ fun BuildSystemType.getDefaultPluginRepositories(): List<DefaultRepository> = wh BuildSystemType.Jps -> emptyList() } - val Reader.buildSystemType: BuildSystemType get() = BuildSystemPlugin.type.settingValue diff --git a/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/ModuleType.kt b/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/ModuleType.kt index 2ef33369c4a5..73d65af9e055 100644 --- a/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/ModuleType.kt +++ b/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/ModuleType.kt @@ -28,6 +28,9 @@ enum class ModuleSubType(val moduleType: ModuleType) { androidNativeArm32(ModuleType.native), androidNativeArm64(ModuleType.native), iosArm32(ModuleType.native), iosArm64(ModuleType.native), iosX64(ModuleType.native), ios(ModuleType.native)/*TODO TEMPORARY TILL HMPP WIZARD PART IS MERGED*/, + iosCocoaPods(ModuleType.native) { + override fun toString(): String = "ios" + }, linuxArm32Hfp(ModuleType.native), linuxMips32(ModuleType.native), linuxMipsel32(ModuleType.native), linuxX64(ModuleType.native), macosX64(ModuleType.native), @@ -36,7 +39,8 @@ enum class ModuleSubType(val moduleType: ModuleType) { } val ModuleSubType.isIOS: Boolean - get() = this in EnumSet.of(ModuleSubType.iosX64, ModuleSubType.iosArm32, ModuleSubType.iosArm64, ModuleSubType.ios) + get() = this in EnumSet.of(ModuleSubType.iosX64, ModuleSubType.iosArm32, ModuleSubType.iosArm64, ModuleSubType.ios, + ModuleSubType.iosCocoaPods) val ModuleSubType.isNativeDesktop: Boolean get() = this in EnumSet.of( diff --git a/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/projectTemplates/ProjectTemplates.kt b/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/projectTemplates/ProjectTemplates.kt index bbe33f933cd2..a7bf15f9cb93 100644 --- a/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/projectTemplates/ProjectTemplates.kt +++ b/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/projectTemplates/ProjectTemplates.kt @@ -67,19 +67,18 @@ abstract class ProjectTemplate : DisplayableSettingItem { } } - companion object { val ALL = listOf( - ConsoleApplicationProjectTemplateWithSample, + FullStackWebApplicationProjectTemplate, MultiplatformLibraryProjectTemplate, NativeApplicationProjectTemplate, FrontendApplicationProjectTemplate, ReactApplicationProjectTemplate, - FullStackWebApplicationProjectTemplate, NodeJsApplicationProjectTemplate, ComposeDesktopApplicationProjectTemplate, ComposeMultiplatformApplicationProjectTemplate, - ComposeWebApplicationProjectTemplate + ComposeWebApplicationProjectTemplate, + ConsoleApplicationProjectTemplateWithSample ) fun byId(id: String): ProjectTemplate? = ALL.firstOrNull { @@ -94,7 +93,7 @@ private infix fun <V : Any, T : SettingType<V>> PluginSettingReference<V, T>.wit private inline infix fun <V : Any, reified T : SettingType<V>> PluginSetting<V, T>.withValue(value: V): SettingWithValue<V, T> = SettingWithValue(reference, value) -private fun createDefaultSourceSets() = +fun createDefaultSourceSets() = SourcesetType.values().map { sourceSetType -> Sourceset( sourceSetType, @@ -298,7 +297,7 @@ abstract class MultiplatformMobileApplicationProjectTemplateBase : ProjectTempla }, Module( "ios", - RealNativeTargetConfigurator.configuratorsByModuleType.getValue(ModuleSubType.ios), + sharedIosConfigurator, null, permittedTemplateIds = emptySet(), sourceSets = createDefaultSourceSets(), @@ -313,6 +312,8 @@ abstract class MultiplatformMobileApplicationProjectTemplateBase : ProjectTempla protected abstract fun iosAppModule(shared: Module): Module protected abstract fun androidAppModule(shared: Module): Module + + open val sharedIosConfigurator get() = RealNativeTargetConfigurator.configuratorsByModuleType.getValue(ModuleSubType.ios) } object NodeJsApplicationProjectTemplate : ProjectTemplate() { diff --git a/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/mpp/MobileMppTemplate.kt b/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/mpp/MobileMppTemplate.kt index 1593c40b0858..c160e4d4b509 100644 --- a/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/mpp/MobileMppTemplate.kt +++ b/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/mpp/MobileMppTemplate.kt @@ -7,11 +7,10 @@ import org.jetbrains.kotlin.tools.projectWizard.KotlinNewProjectWizardBundle import org.jetbrains.kotlin.tools.projectWizard.core.Reader import org.jetbrains.kotlin.tools.projectWizard.core.TaskResult import org.jetbrains.kotlin.tools.projectWizard.core.Writer -import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.BuildSystemIR -import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.ModuleIR -import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.RepositoryIR +import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.* import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.irsList import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.MppModuleConfigurator +import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.SimpleTargetConfigurator import org.jetbrains.kotlin.tools.projectWizard.mpp.applyMppStructure import org.jetbrains.kotlin.tools.projectWizard.mpp.mppSources import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleSubType @@ -37,6 +36,14 @@ class MobileMppTemplate : Template() { override fun Writer.getIrsToAddToBuildFile(module: ModuleIR): List<BuildSystemIR> = irsList { +RepositoryIR(DefaultRepository.JCENTER) + + val cocoaPods = module.originalModule.subModules.any { + (it.configurator as? SimpleTargetConfigurator)?.moduleSubType == ModuleSubType.iosCocoaPods + } + + if (cocoaPods) { + +KotlinBuildSystemPluginIR(KotlinBuildSystemPluginIR.Type.nativeCocoapods, null) + } } override fun Writer.runArbitratyTask(module: ModuleIR): TaskResult<Unit> { @@ -52,7 +59,7 @@ class MobileMppTemplate : Template() { ) actualFor( - ModuleSubType.iosArm64, ModuleSubType.iosX64, ModuleSubType.ios, + ModuleSubType.iosArm64, ModuleSubType.iosX64, ModuleSubType.ios, ModuleSubType.iosCocoaPods, actualBody = """actual val platform: String = UIDevice.currentDevice.systemName() + " " + UIDevice.currentDevice.systemVersion""" ) { @@ -69,7 +76,7 @@ class MobileMppTemplate : Template() { file(FileTemplateDescriptor("android/androidTest.kt.vm", relativePath = null), "androidTest.kt", SourcesetType.test) } - filesFor(ModuleSubType.iosArm64, ModuleSubType.iosX64, ModuleSubType.ios) { + filesFor(ModuleSubType.iosArm64, ModuleSubType.iosX64, ModuleSubType.ios, ModuleSubType.iosCocoaPods) { file(FileTemplateDescriptor("ios/iosTest.kt.vm", relativePath = null), "iosTest.kt", SourcesetType.test) } diff --git a/plugins/kotlin/project-wizard/gradle/src/org/jetbrains/kotlin/tools/projectWizard/gradle/GradleKotlinNewProjectWizard.kt b/plugins/kotlin/project-wizard/gradle/src/org/jetbrains/kotlin/tools/projectWizard/gradle/GradleKotlinNewProjectWizard.kt index ec0745c60df1..78bb3d866f05 100644 --- a/plugins/kotlin/project-wizard/gradle/src/org/jetbrains/kotlin/tools/projectWizard/gradle/GradleKotlinNewProjectWizard.kt +++ b/plugins/kotlin/project-wizard/gradle/src/org/jetbrains/kotlin/tools/projectWizard/gradle/GradleKotlinNewProjectWizard.kt @@ -9,6 +9,13 @@ import com.intellij.ide.projectWizard.NewProjectWizardCollector.BuildSystem.logP import com.intellij.ide.projectWizard.NewProjectWizardCollector.BuildSystem.logSdkChanged import com.intellij.ide.projectWizard.NewProjectWizardCollector.BuildSystem.logSdkFinished import com.intellij.ide.projectWizard.NewProjectWizardCollector.BuildSystem.logVersionChanged +import com.intellij.ide.projectWizard.generators.AssetsNewProjectWizardStep +import com.intellij.ide.starters.local.StandardAssetsProvider +import com.intellij.ide.wizard.GitNewProjectWizardData.Companion.gitData +import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.name +import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.path +import com.intellij.ide.wizard.NewProjectWizardStep +import com.intellij.ide.wizard.chain import com.intellij.openapi.project.Project import com.intellij.ui.UIBundle import com.intellij.ui.dsl.builder.Panel @@ -25,7 +32,7 @@ internal class GradleKotlinNewProjectWizard : BuildSystemKotlinNewProjectWizard override val name = "Gradle" - override fun createStep(parent: KotlinNewProjectWizard.Step) = Step(parent) + override fun createStep(parent: KotlinNewProjectWizard.Step) = Step(parent).chain(::AssetsStep) class Step(parent: KotlinNewProjectWizard.Step) : GradleNewProjectWizardStep<KotlinNewProjectWizard.Step>(parent), @@ -74,4 +81,14 @@ internal class GradleKotlinNewProjectWizard : BuildSystemKotlinNewProjectWizard versionProperty.afterChange { logVersionChanged() } } } + + private class AssetsStep(parent: NewProjectWizardStep) : AssetsNewProjectWizardStep(parent) { + override fun setupAssets(project: Project) { + outputDirectory = "$path/$name" + addAssets(StandardAssetsProvider().getGradlewAssets()) + if (gitData?.git == true) { + addAssets(StandardAssetsProvider().getGradleIgnoreAssets()) + } + } + } }
\ No newline at end of file diff --git a/plugins/kotlin/project-wizard/idea/resources/messages/KotlinNewProjectWizardUIBundle.properties b/plugins/kotlin/project-wizard/idea/resources/messages/KotlinNewProjectWizardUIBundle.properties index af8b6f49a318..c50296d700a6 100644 --- a/plugins/kotlin/project-wizard/idea/resources/messages/KotlinNewProjectWizardUIBundle.properties +++ b/plugins/kotlin/project-wizard/idea/resources/messages/KotlinNewProjectWizardUIBundle.properties @@ -6,13 +6,10 @@ project.preview=Project structure additional.buildsystem.settings.kotlin.advanced=Advanced Settings additional.buildsystem.settings.kotlin.runtime=Kotlin Runtime -additional.buildsystem.settings.project.jdk=Project JDK +additional.buildsystem.settings.project.jdk=JDK additional.buildsystem.settings.project.jdk.tooltip=The Java Development Kit (JDK) that will be used in the project (version 1.8 or later is recommended) <ul><li>If the JDK is installed on your computer but not defined in the IDE, select Add JDK and specify the path to the JDK home directory (for example, /Library/Java/JavaVirtualMachines/jdk-12.0.1.jdk).</li><li> If you don't have the necessary JDK on your machine, select Download JDK. In the next dialog, specify the JDK vendor, version, and change the installation path if required.</li></ul> additional.buildsystem.settings.artifact.coordinates=Artifact Coordinates -feedback.link.tooltip.text=<html><body>If anything is missing or seems confusing in the Kotlin New Project wizard, please create an issue\ - \ or feature request in the <a href="{0}">Kotlin issue tracker</a>.</body></html> - module.dependencies.module.dependencies=Module dependencies module.dependencies.module.dependencies.tooltip=Modules the current application depends on module.dependencies.add.module.dependency=Add Module Dependency diff --git a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/IntelliJKotlinNewProjectWizard.kt b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/IntelliJKotlinNewProjectWizard.kt index 8f15ef4e0df0..1a57fa23727a 100644 --- a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/IntelliJKotlinNewProjectWizard.kt +++ b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/IntelliJKotlinNewProjectWizard.kt @@ -2,7 +2,14 @@ package org.jetbrains.kotlin.tools.projectWizard import com.intellij.ide.JavaUiBundle +import com.intellij.ide.projectWizard.generators.AssetsNewProjectWizardStep +import com.intellij.ide.starters.local.StandardAssetsProvider import com.intellij.ide.wizard.AbstractNewProjectWizardStep +import com.intellij.ide.wizard.GitNewProjectWizardData.Companion.gitData +import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.name +import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.path +import com.intellij.ide.wizard.NewProjectWizardStep +import com.intellij.ide.wizard.chain import com.intellij.openapi.module.StdModuleTypes import com.intellij.openapi.project.Project import com.intellij.openapi.projectRoots.JavaSdkType @@ -18,7 +25,9 @@ internal class IntelliJKotlinNewProjectWizard : BuildSystemKotlinNewProjectWizar override val name = "IntelliJ" - override fun createStep(parent: KotlinNewProjectWizard.Step) = object : AbstractNewProjectWizardStep(parent) { + override fun createStep(parent: KotlinNewProjectWizard.Step) = Step(parent).chain(::AssetsStep) + + class Step(private val parent: KotlinNewProjectWizard.Step) : AbstractNewProjectWizardStep(parent) { private val sdkProperty = propertyGraph.property<Sdk?>(null) private val addSampleCodeProperty = propertyGraph.property(false) @@ -49,4 +58,13 @@ internal class IntelliJKotlinNewProjectWizard : BuildSystemKotlinNewProjectWizar addSampleCode = addSampleCode ) } + + private class AssetsStep(parent: NewProjectWizardStep) : AssetsNewProjectWizardStep(parent) { + override fun setupAssets(project: Project) { + outputDirectory = "$path/$name" + if (gitData?.git == true) { + addAssets(StandardAssetsProvider().getIntelliJIgnoreAssets()) + } + } + } }
\ No newline at end of file diff --git a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/BuildSystemTypeSettingComponent.kt b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/BuildSystemTypeSettingComponent.kt index 06812783c7dd..8c8986a9fd52 100644 --- a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/BuildSystemTypeSettingComponent.kt +++ b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/BuildSystemTypeSettingComponent.kt @@ -1,15 +1,11 @@ // Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package org.jetbrains.kotlin.tools.projectWizard.wizard.ui.firstStep -import com.intellij.icons.AllIcons import com.intellij.openapi.actionSystem.* import com.intellij.openapi.actionSystem.ex.ActionButtonLook import com.intellij.openapi.actionSystem.impl.ActionButton import com.intellij.openapi.actionSystem.impl.ActionButtonWithText import com.intellij.openapi.project.DumbAware -import icons.OpenapiIcons -import org.jetbrains.kotlin.idea.KotlinIcons -import org.jetbrains.kotlin.idea.extensions.gradle.KotlinGradleFacade import org.jetbrains.kotlin.tools.projectWizard.core.Context import org.jetbrains.kotlin.tools.projectWizard.core.entity.ValidationResult import org.jetbrains.kotlin.tools.projectWizard.core.entity.isSpecificError @@ -27,7 +23,6 @@ import java.awt.Dimension import java.awt.Insets import javax.swing.JComponent - class BuildSystemTypeSettingComponent( context: Context ) : SettingComponent<BuildSystemType, DropDownSettingType<BuildSystemType>>( @@ -64,7 +59,7 @@ class BuildSystemTypeSettingComponent( private inner class BuildSystemTypeAction( val buildSystemType: BuildSystemType - ) : ToggleAction(buildSystemType.text, null, buildSystemType.icon), DumbAware { + ) : ToggleAction(buildSystemType.text, null, null), DumbAware { override fun isSelected(e: AnActionEvent): Boolean = value == buildSystemType override fun setSelected(e: AnActionEvent, state: Boolean) { @@ -125,12 +120,4 @@ class BuildSystemTypeSettingComponent( private const val LEFT_RIGHT_PADDING = 6 private const val TOP_BOTTOM_PADDING = 2 } -} - -private val BuildSystemType.icon - get() = when (this) { - BuildSystemType.GradleKotlinDsl -> KotlinIcons.GRADLE_SCRIPT - BuildSystemType.GradleGroovyDsl -> KotlinGradleFacade.instance?.gradleIcon ?: KotlinIcons.GRADLE_SCRIPT - BuildSystemType.Maven -> OpenapiIcons.RepositoryLibraryLogo - BuildSystemType.Jps -> AllIcons.Nodes.Module - } +}
\ No newline at end of file diff --git a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/FirstWizardStepComponent.kt b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/FirstWizardStepComponent.kt index 6cfe43017b12..0f03591b2361 100644 --- a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/FirstWizardStepComponent.kt +++ b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/FirstWizardStepComponent.kt @@ -12,8 +12,11 @@ import com.intellij.openapi.roots.ui.configuration.JdkComboBox import com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectSdksModel import com.intellij.openapi.util.Condition import com.intellij.openapi.util.NlsContexts +import com.intellij.ui.IdeBorderFactory import com.intellij.ui.TitledSeparator -import com.intellij.ui.layout.* +import com.intellij.ui.dsl.builder.* +import com.intellij.ui.dsl.gridLayout.HorizontalAlign +import com.intellij.util.ui.JBInsets import com.intellij.util.ui.JBUI import com.intellij.util.ui.components.BorderLayoutPanel import org.jetbrains.kotlin.idea.projectWizard.WizardStatsService @@ -70,26 +73,29 @@ class ProjectSettingsComponent(ideWizard: IdeWizard) : DynamicComponent(ideWizar ), context, stretchY = true, - useBigYGap = true + useBigYGap = true, + xPadding = 0, + yPadding = 0 ).asSubComponent() override val component: JComponent by lazy(LazyThreadSafetyMode.NONE) { panel { row { - nameAndLocationComponent.component(growX) + cell(nameAndLocationComponent.component) + .horizontalAlign(HorizontalAlign.FILL) + .resizableColumn() + + bottomGap(BottomGap.SMALL) } + row { - buildSystemAdditionalSettingsComponent.component(growX) - }.largeGapAfter() - row { - comment( - KotlinNewProjectWizardUIBundle.message( - "feedback.link.tooltip.text", - "https://youtrack.jetbrains.com/newIssue?project=KTIJ&Type=Feature&Subsystems=IDE.Wizards" - ), 100 - ).constraints(pushY).withLargeLeftGap() + cell(buildSystemAdditionalSettingsComponent.component) + .horizontalAlign(HorizontalAlign.FILL) + .resizableColumn() + + bottomGap(BottomGap.SMALL) } - }.addBorder(JBUI.Borders.emptyRight(UIConstants.PADDING)) + }.addBorder(IdeBorderFactory.createEmptyBorder(JBInsets(20, 20, 20, 20))) } override fun onValueUpdated(reference: SettingReference<*, *>?) { @@ -209,7 +215,6 @@ private class JdkComponent(ideWizard: IdeWizard) : TitledComponent(ideWizard.con } override val title: String = KotlinNewProjectWizardUIBundle.message("additional.buildsystem.settings.project.jdk") - override val tooltipText: String = KotlinNewProjectWizardUIBundle.message("additional.buildsystem.settings.project.jdk.tooltip") override val component: JComponent = jdkComboBox } diff --git a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/ProjectTemplateSettingComponent.kt b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/ProjectTemplateSettingComponent.kt index bc92ba29b4f4..31d0fa01a96e 100644 --- a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/ProjectTemplateSettingComponent.kt +++ b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/ProjectTemplateSettingComponent.kt @@ -67,7 +67,6 @@ class ProjectTemplateSettingComponent( addToBottom(templateDescriptionComponent.component.addBorder(JBUI.Borders.empty(/*top*/8,/*left*/ 3, 0, 0))) } - private fun applySelectedTemplate() = modify { value?.let(::applyProjectTemplate) } @@ -76,10 +75,7 @@ class ProjectTemplateSettingComponent( super.onValueUpdated(reference) if (reference == ProjectTemplatesPlugin.template.reference) { applySelectedTemplate() - value?.let { template -> - list.setSelectedValue(template, true) - templateDescriptionComponent.setTemplate(template) - } + updateHint() } } @@ -89,6 +85,14 @@ class ProjectTemplateSettingComponent( list.selectedIndex = 0 value = setting.type.values.firstOrNull() applySelectedTemplate() + updateHint() + } + } + + private fun updateHint() { + value?.let { template -> + list.setSelectedValue(template, true) + templateDescriptionComponent.setTemplate(template) } } } diff --git a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/setting/TitledComponentsList.kt b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/setting/TitledComponentsList.kt index 0a56ab123f59..42c818cb9ecb 100644 --- a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/setting/TitledComponentsList.kt +++ b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/setting/TitledComponentsList.kt @@ -16,6 +16,8 @@ open class TitledComponentsList( private val stretchY: Boolean = false, private val globalMaxWidth: Int? = null, useBigYGap: Boolean = false, + var xPadding: Int = xPanelPadding, + var yPadding: Int = yPanelPadding ) : DynamicComponent(context) { private val ui = BorderLayoutPanel() @@ -80,7 +82,7 @@ open class TitledComponentsList( componentsWithLabels.forEach { (_, tooltipConst, component, _, _, componentMaxWidth) -> val maxWidth = componentMaxWidth ?: globalMaxWidth if (maxWidth == null) { - component[SpringLayout.EAST] = layout.getConstraint(SpringLayout.EAST, this) - xPanelPadding.asSpring() + component[SpringLayout.EAST] = layout.getConstraint(SpringLayout.EAST, this) - xPadding.asSpring() } else { component.width = maxWidth.asSpring() } @@ -93,7 +95,7 @@ open class TitledComponentsList( for (data in componentsWithLabels) { val (label, tooltip, component) = data - label.x = xPanelPadding.asSpring() + label.x = xPadding.asSpring() tooltip?.x = label[SpringLayout.EAST] + xGap component.x = maxLabelWidth + 2 * xGap if (tooltipWidth != null) @@ -105,9 +107,9 @@ open class TitledComponentsList( tooltip?.y = label.y component.y = constraint } else { - label.y = data.centerConstraint() + yPanelPadding + label.y = data.centerConstraint() + yPadding tooltip?.y = label.y - component.y = yPanelPadding.asSpring() + component.y = yPadding.asSpring() } lastLabel = label diff --git a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/ui.kt b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/ui.kt index b16d33ad1b14..4f424558428f 100644 --- a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/ui.kt +++ b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/ui.kt @@ -86,7 +86,8 @@ val ModuleSubType.icon: Icon ModuleSubType.jvm -> KotlinIcons.Wizard.JVM ModuleSubType.js -> KotlinIcons.Wizard.JS ModuleSubType.android, ModuleSubType.androidNativeArm32, ModuleSubType.androidNativeArm64 -> KotlinIcons.Wizard.ANDROID - ModuleSubType.iosArm32, ModuleSubType.iosArm64, ModuleSubType.iosX64, ModuleSubType.ios -> KotlinIcons.Wizard.IOS + ModuleSubType.iosArm32, ModuleSubType.iosArm64, ModuleSubType.iosX64, ModuleSubType.ios, ModuleSubType.iosCocoaPods -> + KotlinIcons.Wizard.IOS ModuleSubType.linuxArm32Hfp, ModuleSubType.linuxMips32, ModuleSubType.linuxMipsel32, ModuleSubType.linuxX64 -> KotlinIcons.Wizard.LINUX ModuleSubType.macosX64 -> KotlinIcons.Wizard.MAC_OS diff --git a/plugins/kotlin/project-wizard/maven/src/org/jetbrains/kotlin/tools/projectWizard/maven/MavenKotlinNewProjectWizard.kt b/plugins/kotlin/project-wizard/maven/src/org/jetbrains/kotlin/tools/projectWizard/maven/MavenKotlinNewProjectWizard.kt index cc21402d05f3..4b59525f6f4c 100644 --- a/plugins/kotlin/project-wizard/maven/src/org/jetbrains/kotlin/tools/projectWizard/maven/MavenKotlinNewProjectWizard.kt +++ b/plugins/kotlin/project-wizard/maven/src/org/jetbrains/kotlin/tools/projectWizard/maven/MavenKotlinNewProjectWizard.kt @@ -8,6 +8,13 @@ import com.intellij.ide.projectWizard.NewProjectWizardCollector.BuildSystem.logP import com.intellij.ide.projectWizard.NewProjectWizardCollector.BuildSystem.logSdkChanged import com.intellij.ide.projectWizard.NewProjectWizardCollector.BuildSystem.logSdkFinished import com.intellij.ide.projectWizard.NewProjectWizardCollector.BuildSystem.logVersionChanged +import com.intellij.ide.projectWizard.generators.AssetsNewProjectWizardStep +import com.intellij.ide.starters.local.StandardAssetsProvider +import com.intellij.ide.wizard.GitNewProjectWizardData.Companion.gitData +import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.name +import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.path +import com.intellij.ide.wizard.NewProjectWizardStep +import com.intellij.ide.wizard.chain import com.intellij.openapi.project.Project import com.intellij.ui.UIBundle import com.intellij.ui.dsl.builder.Panel @@ -23,7 +30,7 @@ internal class MavenKotlinNewProjectWizard : BuildSystemKotlinNewProjectWizard { override val name = "Maven" - override fun createStep(parent: KotlinNewProjectWizard.Step) = Step(parent) + override fun createStep(parent: KotlinNewProjectWizard.Step) = Step(parent).chain(::AssetsStep) class Step(parent: KotlinNewProjectWizard.Step) : MavenNewProjectWizardStep<KotlinNewProjectWizard.Step>(parent), @@ -67,4 +74,13 @@ internal class MavenKotlinNewProjectWizard : BuildSystemKotlinNewProjectWizard { versionProperty.afterChange { logVersionChanged() } } } + + private class AssetsStep(parent: NewProjectWizardStep) : AssetsNewProjectWizardStep(parent) { + override fun setupAssets(project: Project) { + outputDirectory = "$path/$name" + if (gitData?.git == true) { + addAssets(StandardAssetsProvider().getMavenIgnoreAssets()) + } + } + } } diff --git a/plugins/kotlin/util/project-model-updater/resources/model.properties b/plugins/kotlin/util/project-model-updater/resources/model.properties index 68261235425a..e064b05f3a66 100644 --- a/plugins/kotlin/util/project-model-updater/resources/model.properties +++ b/plugins/kotlin/util/project-model-updater/resources/model.properties @@ -1,2 +1,2 @@ -kotlincVersion=1.6.10-release-952 +kotlincVersion=1.6.20-release-285 kotlincArtifactsMode=MAVEN diff --git a/plugins/kotlin/util/project-model-updater/src/org/jetbrains/tools/model/updater/kotlincLibraries.kt b/plugins/kotlin/util/project-model-updater/src/org/jetbrains/tools/model/updater/kotlincLibraries.kt index 00a83fb9a2fc..a31f499c8aeb 100644 --- a/plugins/kotlin/util/project-model-updater/src/org/jetbrains/tools/model/updater/kotlincLibraries.kt +++ b/plugins/kotlin/util/project-model-updater/src/org/jetbrains/tools/model/updater/kotlincLibraries.kt @@ -36,10 +36,10 @@ fun generateKotlincLibraries(kotlincArtifactsMode: KotlincArtifactsMode, version kotlincForIdeWithStandardNaming("kotlinc.sam-with-receiver-compiler-plugin", version), singleJarMvnLib("kotlinc.kotlin-scripting-common", "$ktGroup:kotlin-scripting-common:$version", transitive = false), singleJarMvnLib("kotlinc.kotlin-scripting-compiler-impl", "$ktGroup:kotlin-scripting-compiler-impl:$version", transitive = false), - singleJarMvnLib("kotlinc.kotlin-scripting-compiler", "$ktGroup:kotlin-scripting-compiler:$version", transitive = false), singleJarMvnLib("kotlinc.kotlin-scripting-jvm", "$ktGroup:kotlin-scripting-jvm:$version", transitive = false), - singleJarMvnLib("kotlin-reflect", "$ktGroup:kotlin-reflect:$version", excludes = listOf(MavenId(ktGroup, "kotlin-stdlib"))), - singleJarMvnLib("kotlin-script-runtime", "$ktGroup:kotlin-script-runtime:$version"), + singleJarMvnLib("kotlinc.kotlin-reflect", "$ktGroup:kotlin-reflect:$version", excludes = listOf(MavenId(ktGroup, "kotlin-stdlib"))), + singleJarMvnLib("kotlinc.kotlin-jps-plugin-classpath", "$ktGroup:kotlin-jps-plugin-classpath:$version"), + singleJarMvnLib("kotlinc.kotlin-jps-common", "$ktGroup:kotlin-jps-common-for-ide:$version"), run { val mavenIds = listOf( MavenId.fromCoordinates("$ktGroup:kotlin-stdlib-jdk8:$version"), @@ -48,7 +48,7 @@ fun generateKotlincLibraries(kotlincArtifactsMode: KotlincArtifactsMode, version MavenId.fromCoordinates("$ktGroup:kotlin-stdlib-jdk7:$version") ) JpsLibrary( - "kotlin-stdlib-jdk8", + "kotlinc.kotlin-stdlib", JpsLibrary.Kind.Maven(mavenIds.first(), excludes = listOf(MavenId("org.jetbrains", "annotations"))), annotations = listOf(JpsUrl.File(JpsPath.ProjectDir("lib/annotations/kotlin", isCommunity))), classes = mavenIds.map { JpsUrl.Jar(JpsPath.MavenRepository(it)) }, diff --git a/plugins/markdown/core/resources/inlayProviders/MarkdownTableInlayProviderSettingsKey/preview.md b/plugins/markdown/core/resources/inlayProviders/MarkdownTableInlayProviderSettingsKey/preview.md new file mode 100644 index 000000000000..445071deab48 --- /dev/null +++ b/plugins/markdown/core/resources/inlayProviders/MarkdownTableInlayProviderSettingsKey/preview.md @@ -0,0 +1,5 @@ +| Column 1 | Column 2 | Column 3 | +|----------|----------|----------| +| Row 1 | Cell | Cell | +| Row 2 | Cell | Cell | +| Row 3 | Cell | Cell |
\ No newline at end of file diff --git a/plugins/maven/maven-server-api/src/org/jetbrains/idea/maven/server/MavenArtifactResolveResult.java b/plugins/maven/maven-server-api/src/org/jetbrains/idea/maven/server/MavenArtifactResolveResult.java new file mode 100644 index 000000000000..9478900b99d6 --- /dev/null +++ b/plugins/maven/maven-server-api/src/org/jetbrains/idea/maven/server/MavenArtifactResolveResult.java @@ -0,0 +1,34 @@ +/* + * Copyright 2000-2009 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jetbrains.idea.maven.server; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.jetbrains.idea.maven.model.MavenArtifact; +import org.jetbrains.idea.maven.model.MavenProjectProblem; + +import java.io.Serializable; +import java.util.List; + +public class MavenArtifactResolveResult implements Serializable { + @NotNull public final List<MavenArtifact> mavenResolvedArtifacts; + @Nullable public final MavenProjectProblem problem; + + public MavenArtifactResolveResult(@NotNull List<MavenArtifact> artifacts, @Nullable MavenProjectProblem problem) { + this.mavenResolvedArtifacts = artifacts; + this.problem = problem; + } +} diff --git a/plugins/maven/maven-server-api/src/org/jetbrains/idea/maven/server/MavenServerEmbedder.java b/plugins/maven/maven-server-api/src/org/jetbrains/idea/maven/server/MavenServerEmbedder.java index fb481fde34ad..ca897ce753c1 100644 --- a/plugins/maven/maven-server-api/src/org/jetbrains/idea/maven/server/MavenServerEmbedder.java +++ b/plugins/maven/maven-server-api/src/org/jetbrains/idea/maven/server/MavenServerEmbedder.java @@ -65,7 +65,10 @@ public interface MavenServerEmbedder extends Remote { MavenArtifact resolve(@NotNull MavenArtifactInfo info, @NotNull List<MavenRemoteRepository> remoteRepositories, MavenToken token) throws RemoteException, MavenServerProcessCanceledException; - + /** + * @deprecated use {@link Maven3XServerEmbedder#resolveArtifactTransitively()} + */ + @Deprecated @NotNull List<MavenArtifact> resolveTransitively(@NotNull List<MavenArtifactInfo> artifacts, @NotNull List<MavenRemoteRepository> remoteRepositories, MavenToken token) throws @@ -111,4 +114,10 @@ public interface MavenServerEmbedder extends Remote { Map<String, String> resolveAndGetArchetypeDescriptor(@NotNull String groupId, @NotNull String artifactId, @NotNull String version, @NotNull List<MavenRemoteRepository> repositories, @Nullable String url, MavenToken token) throws RemoteException; + + @NotNull + MavenArtifactResolveResult resolveArtifactTransitively( + @NotNull List<MavenArtifactInfo> artifacts, + @NotNull List<MavenRemoteRepository> remoteRepositories, + MavenToken token) throws RemoteException; } diff --git a/plugins/maven/maven2-server-impl/src/org/jetbrains/idea/maven/server/embedder/Maven2ServerEmbedderImpl.java b/plugins/maven/maven2-server-impl/src/org/jetbrains/idea/maven/server/embedder/Maven2ServerEmbedderImpl.java index bb4d965380b3..5aecd658197f 100644 --- a/plugins/maven/maven2-server-impl/src/org/jetbrains/idea/maven/server/embedder/Maven2ServerEmbedderImpl.java +++ b/plugins/maven/maven2-server-impl/src/org/jetbrains/idea/maven/server/embedder/Maven2ServerEmbedderImpl.java @@ -406,6 +406,35 @@ public final class Maven2ServerEmbedderImpl extends MavenRemoteObject implements } @NotNull + @Override + public MavenArtifactResolveResult resolveArtifactTransitively(@NotNull List<MavenArtifactInfo> artifacts, + @NotNull List<MavenRemoteRepository> remoteRepositories, + MavenToken token) throws RemoteException { + MavenServerUtil.checkToken(token); + try { + Set<Artifact> toResolve = new LinkedHashSet<Artifact>(); + for (MavenArtifactInfo each : artifacts) { + toResolve.add(createArtifact(each)); + } + + return new MavenArtifactResolveResult( + Maven2ModelConverter.convertArtifacts(myImpl.resolveTransitively(toResolve, convertRepositories(remoteRepositories)), + new HashMap<Artifact, MavenArtifact>(), getLocalRepositoryFile()) + , null); + } + catch (ArtifactResolutionException e) { + Maven2ServerGlobals.getLogger().info(e); + } + catch (ArtifactNotFoundException e) { + Maven2ServerGlobals.getLogger().info(e); + } + catch (Exception e) { + throw rethrowException(e); + } + return new MavenArtifactResolveResult(Collections.<MavenArtifact>emptyList(), null); + } + + @NotNull private MavenArtifact doResolve(MavenArtifactInfo info, List<MavenRemoteRepository> remoteRepositories) throws RemoteException { Artifact resolved = doResolve(createArtifact(info), convertRepositories(remoteRepositories)); return Maven2ModelConverter.convertArtifact(resolved, getLocalRepositoryFile()); diff --git a/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/Maven3XServerEmbedder.java b/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/Maven3XServerEmbedder.java index 63a227e23aad..9e8bede06fbe 100644 --- a/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/Maven3XServerEmbedder.java +++ b/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/Maven3XServerEmbedder.java @@ -1346,6 +1346,7 @@ public abstract class Maven3XServerEmbedder extends Maven3ServerEmbedder { return doResolve(info, remoteRepositories); } + @Deprecated @NotNull @Override public List<MavenArtifact> resolveTransitively(@NotNull final List<MavenArtifactInfo> artifacts, @@ -1372,6 +1373,46 @@ public abstract class Maven3XServerEmbedder extends Maven3ServerEmbedder { } @NotNull + @Override + public MavenArtifactResolveResult resolveArtifactTransitively( + @NotNull final List<MavenArtifactInfo> artifacts, + @NotNull final List<MavenRemoteRepository> remoteRepositories, + MavenToken token) throws RemoteException { + MavenServerUtil.checkToken(token); + + try { + final MavenExecutionRequest request = createRequest(null, null, null, null); + + final List<MavenArtifact>[] mavenArtifacts = new List[]{null}; + executeWithMavenSession(request, new Runnable() { + @Override + public void run() { + try { + mavenArtifacts[0] = Maven3XServerEmbedder.this.doResolveTransitivelyWithError(artifacts, remoteRepositories); + } + catch (Exception e) { + throw new RuntimeException(e); + } + } + }); + return new MavenArtifactResolveResult(mavenArtifacts[0], null); + } + catch (Exception e) { + Maven3ServerGlobals.getLogger().warn(e); + Artifact transferArtifact = getProblemTransferArtifact(e); + String message = getRootMessage(e); + MavenProjectProblem problem; + if (transferArtifact != null) { + MavenArtifact mavenArtifact = MavenModelConverter.convertArtifact(transferArtifact, getLocalRepositoryFile()); + problem = MavenProjectProblem.createArtifactTransferProblem("", message, true, mavenArtifact); + } else { + problem = MavenProjectProblem.createStructureProblem("", message); + } + return new MavenArtifactResolveResult(Collections.<MavenArtifact>emptyList(), problem); + } + } + + @NotNull private List<MavenArtifact> doResolveTransitively(@NotNull List<MavenArtifactInfo> artifacts, @NotNull List<MavenRemoteRepository> remoteRepositories) throws RemoteException { @@ -1395,6 +1436,24 @@ public abstract class Maven3XServerEmbedder extends Maven3ServerEmbedder { } } + @NotNull + private List<MavenArtifact> doResolveTransitivelyWithError(@NotNull List<MavenArtifactInfo> artifacts, + @NotNull List<MavenRemoteRepository> remoteRepositories) + throws RemoteException, ArtifactResolutionException, ArtifactNotFoundException { + Set<Artifact> toResolve = new LinkedHashSet<Artifact>(); + for (MavenArtifactInfo each : artifacts) { + toResolve.add(createArtifact(each)); + } + + Artifact project = getComponent(ArtifactFactory.class).createBuildArtifact("temp", "temp", "666", "pom"); + + Set<Artifact> res = getComponent(ArtifactResolver.class) + .resolveTransitively(toResolve, project, Collections.EMPTY_MAP, myLocalRepository, convertRepositories(remoteRepositories), + getComponent(ArtifactMetadataSource.class)).getArtifacts(); + + return MavenModelConverter.convertArtifacts(res, new HashMap<Artifact, MavenArtifact>(), getLocalRepositoryFile()); + } + @Override public Collection<MavenArtifact> resolvePlugin(@NotNull final MavenPlugin plugin, @NotNull final List<MavenRemoteRepository> repositories, diff --git a/plugins/maven/maven30-server-impl/src/org/jetbrains/idea/maven/server/Maven30ServerEmbedderImpl.java b/plugins/maven/maven30-server-impl/src/org/jetbrains/idea/maven/server/Maven30ServerEmbedderImpl.java index 5931fbde0aea..ec8d056ff64f 100644 --- a/plugins/maven/maven30-server-impl/src/org/jetbrains/idea/maven/server/Maven30ServerEmbedderImpl.java +++ b/plugins/maven/maven30-server-impl/src/org/jetbrains/idea/maven/server/Maven30ServerEmbedderImpl.java @@ -1028,6 +1028,14 @@ public class Maven30ServerEmbedderImpl extends Maven3ServerEmbedder { } } + @NotNull + @Override + public MavenArtifactResolveResult resolveArtifactTransitively(@NotNull List<MavenArtifactInfo> artifacts, + @NotNull List<MavenRemoteRepository> remoteRepositories, + MavenToken token) throws RemoteException { + return new MavenArtifactResolveResult(resolveTransitively(artifacts, remoteRepositories, token), null); + } + @Override public Collection<MavenArtifact> resolvePlugin(@NotNull final MavenPlugin plugin, @NotNull final List<MavenRemoteRepository> repositories, diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenCompilerAnnotationProcessorPathsImporter.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenCompilerAnnotationProcessorPathsImporter.java index 678a5d247c43..b7ba89c68583 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenCompilerAnnotationProcessorPathsImporter.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenCompilerAnnotationProcessorPathsImporter.java @@ -11,10 +11,10 @@ import com.intellij.util.containers.ContainerUtil; import org.jdom.Element; import org.jetbrains.annotations.NotNull; import org.jetbrains.idea.maven.execution.SyncBundle; -import org.jetbrains.idea.maven.model.MavenArtifact; import org.jetbrains.idea.maven.model.MavenArtifactInfo; import org.jetbrains.idea.maven.model.MavenId; import org.jetbrains.idea.maven.project.*; +import org.jetbrains.idea.maven.server.MavenArtifactResolveResult; import org.jetbrains.idea.maven.server.MavenEmbedderWrapper; import org.jetbrains.idea.maven.server.NativeMavenProjectHolder; import org.jetbrains.idea.maven.utils.MavenProcessCanceledException; @@ -105,8 +105,13 @@ public class MavenCompilerAnnotationProcessorPathsImporter extends MavenImporter } try { - List<MavenArtifact> annotationProcessors = embedder.resolveTransitively(externalArtifacts, mavenProject.getRemoteRepositories()); - mavenProject.addAnnotationProcessors(annotationProcessors); + MavenArtifactResolveResult annotationProcessors = embedder + .resolveArtifactTransitively(externalArtifacts, mavenProject.getRemoteRepositories()); + if (annotationProcessors.problem != null) { + MavenResolveResultProcessor.notifySyncForProblem(project, annotationProcessors.problem); + } else { + mavenProject.addAnnotationProcessors(annotationProcessors.mavenResolvedArtifacts); + } } catch (Exception e) { String message = e.getMessage() != null ? e.getMessage() : ExceptionUtil.getThrowableText(e); diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenProjectImporter.kt b/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenProjectImporter.kt index b4390180031c..5486990d0d61 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenProjectImporter.kt +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenProjectImporter.kt @@ -28,7 +28,7 @@ interface MavenProjectImporter { return MavenProjectImporterToWorkspaceModel(projectsTree, projectsToImportWithChanges, importingSettings, VirtualFileUrlManager.getInstance(project), project) } - if (isImportToTreeStructureEnabled()) { + if (isImportToTreeStructureEnabled(project)) { return MavenProjectTreeImporter(project, projectsTree, projectsToImportWithChanges, modelsProvider, importingSettings) } return MavenProjectImporterImpl(project, projectsTree, projectsToImportWithChanges, importModuleGroupsRequired, @@ -39,6 +39,9 @@ interface MavenProjectImporter { fun isImportToWorkspaceModelEnabled(): Boolean = Registry.`is`("maven.import.to.workspace.model") @JvmStatic - fun isImportToTreeStructureEnabled(): Boolean = Registry.`is`("maven.import.tree.structure") + fun isImportToTreeStructureEnabled(project: Project?): Boolean { + if (project == null) return true; + return MavenProjectsManager.getInstance(project).importingSettings.isImportToTreeStructure + } } }
\ No newline at end of file diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/configurers/MavenAnnotationProcessorConfigurer.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/configurers/MavenAnnotationProcessorConfigurer.java index e3d4299e5373..6768441e839f 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/configurers/MavenAnnotationProcessorConfigurer.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/configurers/MavenAnnotationProcessorConfigurer.java @@ -93,7 +93,7 @@ public class MavenAnnotationProcessorConfigurer extends MavenModuleConfigurer { } if (!moduleProfile.isEnabled()) return; - if (MavenProjectImporter.isImportToTreeStructureEnabled()) { + if (MavenProjectImporter.isImportToTreeStructureEnabled(project)) { moduleProfile.setOutputRelativeToContentRoot(false); } else { moduleProfile.setOutputRelativeToContentRoot(true); diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/tree/MavenProjectImportContextProvider.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/tree/MavenProjectImportContextProvider.java index 741689440368..9217f61b6a3e 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/tree/MavenProjectImportContextProvider.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/tree/MavenProjectImportContextProvider.java @@ -34,7 +34,7 @@ public class MavenProjectImportContextProvider { @NotNull private final MavenProjectsTree myProjectsTree; @NotNull - private final Map<MavenProject, MavenProjectChanges> myProjectsToImportWithChanges; + private final Map<MavenId, MavenProjectChanges> myProjectsToImportWithChanges; @NotNull private final ModuleModelProxy myModuleModel; @NotNull @@ -47,7 +47,8 @@ public class MavenProjectImportContextProvider { @NotNull MavenImportingSettings importingSettings) { myProject = project; myProjectsTree = projectsTree; - myProjectsToImportWithChanges = changes; + myProjectsToImportWithChanges = changes.entrySet().stream() + .collect(Collectors.toMap(e -> e.getKey().getMavenId(), e -> e.getValue(), (v1, v2) -> v1)); myModuleModel = moduleModel; myImportingSettings = importingSettings; } @@ -88,7 +89,7 @@ public class MavenProjectImportContextProvider { continue; } - MavenProjectChanges changes = myProjectsToImportWithChanges.get(project); + MavenProjectChanges changes = myProjectsToImportWithChanges.get(project.getMavenId()); MavenProjectImportData mavenProjectImportData = getModuleImportData(project, moduleName, moduleByName, changes); if (changes != null && changes.hasChanges()) { diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/indices/MavenArchetypeManager.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/indices/MavenArchetypeManager.java index 2d7eba202911..63be41950d12 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/indices/MavenArchetypeManager.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/indices/MavenArchetypeManager.java @@ -12,10 +12,13 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.idea.maven.indices.archetype.MavenCatalog; import org.jetbrains.idea.maven.model.MavenArchetype; +import org.jetbrains.idea.maven.model.MavenId; import org.jetbrains.idea.maven.project.MavenEmbeddersManager; +import org.jetbrains.idea.maven.project.MavenProject; import org.jetbrains.idea.maven.project.MavenProjectsManager; import org.jetbrains.idea.maven.server.MavenEmbedderWrapper; import org.jetbrains.idea.maven.utils.MavenLog; +import org.jetbrains.idea.maven.utils.MavenUtil; import java.io.IOException; import java.net.URL; @@ -116,15 +119,33 @@ public class MavenArchetypeManager { @Nullable public Map<String, String> resolveAndGetArchetypeDescriptor(@NotNull String groupId, @NotNull String artifactId, @NotNull String version, @Nullable String url) { - return executeWithMavenEmbedderWrapperNullable( + Map<String, String> map = executeWithMavenEmbedderWrapperNullable( wrapper -> wrapper.resolveAndGetArchetypeDescriptor(groupId, artifactId, version, Collections.emptyList(), url) ); + if (map != null) addToLocalIndex(groupId, artifactId, version); + return map; + } + + private void addToLocalIndex(@NotNull String groupId, @NotNull String artifactId, @NotNull String version) { + MavenId mavenId = new MavenId(groupId, artifactId, version); + MavenIndex localIndex = MavenIndicesManager.getInstance(myProject).getIndex().getLocalIndex(); + if (localIndex == null) return; + Path artifactPath = MavenUtil.getArtifactPath(Path.of(localIndex.getRepositoryPathOrUrl()), mavenId, "jar", null); + if (artifactPath != null && artifactPath.toFile().exists()) { + MavenIndicesManager.getInstance(myProject).addArtifactIndexAsync(mavenId, artifactPath.toFile()); + } } @NotNull private <R> R executeWithMavenEmbedderWrapper(Function<MavenEmbedderWrapper, R> function) { - MavenEmbeddersManager manager = MavenProjectsManager.getInstance(myProject).getEmbeddersManager(); - MavenEmbedderWrapper mavenEmbedderWrapper = manager.getEmbedder(FOR_POST_PROCESSING, EMPTY, EMPTY); + MavenProjectsManager projectsManager = MavenProjectsManager.getInstance(myProject); + MavenEmbeddersManager manager = projectsManager.getEmbeddersManager(); + String baseDir = EMPTY; + List<MavenProject> projects = projectsManager.getRootProjects(); + if (!projects.isEmpty()) { + baseDir = MavenUtil.getBaseDir(projects.get(0).getDirectoryFile()).toString(); + } + MavenEmbedderWrapper mavenEmbedderWrapper = manager.getEmbedder(FOR_POST_PROCESSING, baseDir, baseDir); try { return function.apply(mavenEmbedderWrapper); } diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/plugins/groovy/wizard/MavenGroovyNewProjectBuilder.kt b/plugins/maven/src/main/java/org/jetbrains/idea/maven/plugins/groovy/wizard/MavenGroovyNewProjectBuilder.kt index cc33cb97f5a4..192f5b2b4704 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/plugins/groovy/wizard/MavenGroovyNewProjectBuilder.kt +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/plugins/groovy/wizard/MavenGroovyNewProjectBuilder.kt @@ -4,6 +4,7 @@ package org.jetbrains.idea.maven.plugins.groovy.wizard import com.intellij.ide.util.EditorHelper import com.intellij.ide.util.projectWizard.ModuleWizardStep import com.intellij.ide.util.projectWizard.WizardContext +import com.intellij.openapi.GitSilentFileAdderProvider import com.intellij.openapi.application.ModalityState import com.intellij.openapi.command.WriteCommandAction import com.intellij.openapi.project.Project @@ -30,7 +31,7 @@ import kotlin.io.path.createDirectories /** * Currently used only for new project wizard, thus the functionality is rather limited */ -class MavenGroovyNewProjectBuilder(private val groovySdkVersion : String) : AbstractMavenModuleBuilder() { +class MavenGroovyNewProjectBuilder(private val groovySdkVersion: String) : AbstractMavenModuleBuilder() { var createSampleCode = false @@ -58,33 +59,42 @@ class MavenGroovyNewProjectBuilder(private val groovySdkVersion : String) : Abst } private fun setupMavenStructure(project: Project, root: VirtualFile) { - val pom = WriteCommandAction.writeCommandAction(project) - .withName(MavenWizardBundle.message("maven.new.project.wizard.groovy.creating.groovy.project")) - .compute<VirtualFile, RuntimeException> { - root.findChild(MavenConstants.POM_XML)?.delete(this) - val file = root.createChildData(this, MavenConstants.POM_XML) - val properties = Properties() - val conditions = Properties() - properties.setProperty("GROOVY_VERSION", groovySdkVersion) - properties.setProperty("GROOVY_REPOSITORY", GroovyConfigUtils.getMavenSdkRepository(groovySdkVersion)) - conditions.setProperty("NEED_POM", (GroovyConfigUtils.compareSdkVersions(groovySdkVersion, GroovyConfigUtils.GROOVY2_5) >= 0).toString()) - conditions.setProperty("CREATE_SAMPLE_CODE", "true") - MavenUtil.runOrApplyMavenProjectFileTemplate(project, file, projectId, null, null, properties, - conditions, MAVEN_GROOVY_XML_TEMPLATE, false) - file - } + val vcsFileAdder = GitSilentFileAdderProvider.create(project) + try { + val pom = WriteCommandAction.writeCommandAction(project) + .withName(MavenWizardBundle.message("maven.new.project.wizard.groovy.creating.groovy.project")) + .compute<VirtualFile, RuntimeException> { + root.findChild(MavenConstants.POM_XML)?.delete(this) + val file = root.createChildData(this, MavenConstants.POM_XML) + vcsFileAdder.markFileForAdding(file) + val properties = Properties() + val conditions = Properties() + properties.setProperty("GROOVY_VERSION", groovySdkVersion) + properties.setProperty("GROOVY_REPOSITORY", GroovyConfigUtils.getMavenSdkRepository(groovySdkVersion)) + conditions.setProperty("NEED_POM", + (GroovyConfigUtils.compareSdkVersions(groovySdkVersion, GroovyConfigUtils.GROOVY2_5) >= 0).toString()) + conditions.setProperty("CREATE_SAMPLE_CODE", "true") + MavenUtil.runOrApplyMavenProjectFileTemplate(project, file, projectId, null, null, properties, + conditions, MAVEN_GROOVY_XML_TEMPLATE, false) + file + } - val sourceDirectory = VfsUtil.createDirectories(root.path + "/src/main/groovy") - VfsUtil.createDirectories(root.path + "/src/main/resources") - VfsUtil.createDirectories(root.path + "/src/test/groovy") - if (createSampleCode) { - createSampleGroovyCodeFile(project, sourceDirectory) - } + val sourceDirectory = VfsUtil.createDirectories(root.path + "/src/main/groovy") + VfsUtil.createDirectories(root.path + "/src/main/resources") + VfsUtil.createDirectories(root.path + "/src/test/groovy") + if (createSampleCode) { + vcsFileAdder.markFileForAdding(sourceDirectory) + createSampleGroovyCodeFile(project, sourceDirectory) + } - MavenProjectsManager.getInstance(project).forceUpdateAllProjectsOrFindAllAvailablePomFiles() + MavenProjectsManager.getInstance(project).forceUpdateAllProjectsOrFindAllAvailablePomFiles() - MavenUtil.invokeLater(project, ModalityState.NON_MODAL) { - PsiManager.getInstance(project).findFile(pom)?.let(EditorHelper::openInEditor) + MavenUtil.invokeLater(project, ModalityState.NON_MODAL) { + PsiManager.getInstance(project).findFile(pom)?.let(EditorHelper::openInEditor) + } + } + finally { + vcsFileAdder.finish() } } } diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/plugins/groovy/wizard/MavenGroovyNewProjectWizard.kt b/plugins/maven/src/main/java/org/jetbrains/idea/maven/plugins/groovy/wizard/MavenGroovyNewProjectWizard.kt index bce6292522a3..82f60c7aad9b 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/plugins/groovy/wizard/MavenGroovyNewProjectWizard.kt +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/plugins/groovy/wizard/MavenGroovyNewProjectWizard.kt @@ -9,6 +9,13 @@ import com.intellij.ide.projectWizard.NewProjectWizardCollector.BuildSystem.logP import com.intellij.ide.projectWizard.NewProjectWizardCollector.BuildSystem.logSdkChanged import com.intellij.ide.projectWizard.NewProjectWizardCollector.BuildSystem.logSdkFinished import com.intellij.ide.projectWizard.NewProjectWizardCollector.BuildSystem.logVersionChanged +import com.intellij.ide.projectWizard.generators.AssetsNewProjectWizardStep +import com.intellij.ide.starters.local.StandardAssetsProvider +import com.intellij.ide.wizard.GitNewProjectWizardData.Companion.gitData +import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.name +import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.path +import com.intellij.ide.wizard.NewProjectWizardStep +import com.intellij.ide.wizard.chain import com.intellij.openapi.diagnostic.logger import com.intellij.openapi.externalSystem.service.project.manage.ExternalProjectsManagerImpl import com.intellij.openapi.observable.properties.ObservableMutableProperty @@ -35,7 +42,7 @@ class MavenGroovyNewProjectWizard : BuildSystemGroovyNewProjectWizard { override val ordinal: Int = 1 - override fun createStep(parent: GroovyNewProjectWizard.Step) = Step(parent) + override fun createStep(parent: GroovyNewProjectWizard.Step) = Step(parent).chain(::AssetsStep) class Step(parent: GroovyNewProjectWizard.Step) : MavenNewProjectWizardStep<GroovyNewProjectWizard.Step>(parent), @@ -127,6 +134,15 @@ class MavenGroovyNewProjectWizard : BuildSystemGroovyNewProjectWizard { @JvmField val MAVEN = MavenUtil.SYSTEM_ID.readableName } + + private class AssetsStep(parent: NewProjectWizardStep) : AssetsNewProjectWizardStep(parent) { + override fun setupAssets(project: Project) { + outputDirectory = "$path/$name" + if (gitData?.git == true) { + addAssets(StandardAssetsProvider().getMavenIgnoreAssets()) + } + } + } } private fun DistributionInfo?.getVersion() = when(this) { diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenImportingSettings.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenImportingSettings.java index 044796cc8e1f..393319c91b82 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenImportingSettings.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenImportingSettings.java @@ -26,6 +26,7 @@ import org.jetbrains.idea.maven.execution.MavenRunnerSettings; import java.util.LinkedHashSet; import java.util.List; +import java.util.Objects; import java.util.Set; public class MavenImportingSettings implements Cloneable { @@ -61,6 +62,7 @@ public class MavenImportingSettings implements Cloneable { private boolean downloadDocsAutomatically = false; private boolean downloadAnnotationsAutomatically = false; private boolean autoDetectCompiler = true; + private boolean importToTreeStructure = false; private GeneratedSourcesFolder generatedSourcesFolder = GeneratedSourcesFolder.AUTODETECT; @@ -235,6 +237,16 @@ public class MavenImportingSettings implements Cloneable { this.autoDetectCompiler = autoDetectCompiler; } + public boolean isImportToTreeStructure() { + return importToTreeStructure; + } + + public void setImportToTreeStructure(boolean importToTreeStructure) { + boolean changedValue = !Objects.equals(this.importToTreeStructure, importToTreeStructure); + this.importToTreeStructure = importToTreeStructure; + if (changedValue) fireUpdateAllProjectStructure(); + } + @Property @NotNull public GeneratedSourcesFolder getGeneratedSourcesFolder() { @@ -279,6 +291,7 @@ public class MavenImportingSettings implements Cloneable { if (downloadSourcesAutomatically != that.downloadSourcesAutomatically) return false; if (downloadAnnotationsAutomatically != that.downloadAnnotationsAutomatically) return false; if (autoDetectCompiler != that.autoDetectCompiler) return false; + if (importToTreeStructure != that.importToTreeStructure) return false; //if (lookForNested != that.lookForNested) return false; if (keepSourceFolders != that.keepSourceFolders) return false; if (excludeTargetFolder != that.excludeTargetFolder) return false; @@ -318,6 +331,8 @@ public class MavenImportingSettings implements Cloneable { result <<= 1; if (autoDetectCompiler) result++; result <<= 1; + if (importToTreeStructure) result++; + result <<= 1; result = 31 * result + (updateFoldersOnImportPhase != null ? updateFoldersOnImportPhase.hashCode() : 0); result = 31 * result + dedicatedModuleDir.hashCode(); @@ -359,10 +374,18 @@ public class MavenImportingSettings implements Cloneable { } } + private void fireUpdateAllProjectStructure() { + for (Listener each : myListeners) { + each.updateAllProjectStructure(); + } + } + public interface Listener { void createModuleGroupsChanged(); void createModuleForAggregatorsChanged(); + + void updateAllProjectStructure(); } } diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenImportingSettingsForm.form b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenImportingSettingsForm.form index 86e66197572e..abb65107ccfd 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenImportingSettingsForm.form +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenImportingSettingsForm.form @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> <form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="org.jetbrains.idea.maven.project.MavenImportingSettingsForm"> - <grid id="27dc6" binding="myPanel" layout-manager="GridLayoutManager" row-count="24" column-count="4" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1"> + <grid id="27dc6" binding="myPanel" layout-manager="GridLayoutManager" row-count="25" column-count="4" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1"> <margin top="0" left="0" bottom="0" right="0"/> <constraints> - <xy x="20" y="20" width="895" height="767"/> + <xy x="20" y="20" width="895" height="795"/> </constraints> <properties/> <border type="none"/> @@ -43,7 +43,7 @@ </component> <component id="22b1c" class="com.intellij.ui.components.JBLabel"> <constraints> - <grid row="13" column="0" row-span="1" col-span="3" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="3" use-parent-layout="false"/> + <grid row="14" column="0" row-span="1" col-span="3" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="3" use-parent-layout="false"/> </constraints> <properties> <componentStyle value="SMALL"/> @@ -54,7 +54,7 @@ <grid id="49dc8" layout-manager="GridLayoutManager" row-count="1" column-count="5" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1"> <margin top="10" left="0" bottom="0" right="0"/> <constraints> - <grid row="15" column="0" row-span="1" col-span="3" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/> + <grid row="16" column="0" row-span="1" col-span="3" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/> </constraints> <properties> <focusable value="true"/> @@ -111,7 +111,7 @@ <grid id="d7645" binding="myAdditionalSettingsPanel" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1"> <margin top="15" left="0" bottom="0" right="0"/> <constraints> - <grid row="22" column="0" row-span="1" col-span="3" vsize-policy="3" hsize-policy="3" anchor="8" fill="2" indent="0" use-parent-layout="false"/> + <grid row="23" column="0" row-span="1" col-span="3" vsize-policy="3" hsize-policy="3" anchor="8" fill="2" indent="0" use-parent-layout="false"/> </constraints> <properties/> <border type="none"/> @@ -119,7 +119,7 @@ </grid> <hspacer id="d45a7"> <constraints> - <grid row="15" column="3" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/> + <grid row="16" column="3" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/> </constraints> </hspacer> <grid id="eca06" layout-manager="GridLayoutManager" row-count="1" column-count="3" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1"> @@ -188,13 +188,13 @@ </grid> <vspacer id="5d738"> <constraints> - <grid row="23" column="0" row-span="1" col-span="3" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/> + <grid row="24" column="0" row-span="1" col-span="3" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/> </constraints> </vspacer> <grid id="34bc4" layout-manager="GridLayoutManager" row-count="1" column-count="3" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1"> <margin top="0" left="0" bottom="0" right="0"/> <constraints> - <grid row="12" column="0" row-span="1" col-span="3" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/> + <grid row="13" column="0" row-span="1" col-span="3" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/> </constraints> <properties/> <border type="none"/> @@ -223,7 +223,7 @@ </grid> <vspacer id="aa40b"> <constraints> - <grid row="11" column="0" row-span="1" col-span="3" vsize-policy="0" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"> + <grid row="12" column="0" row-span="1" col-span="3" vsize-policy="0" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"> <preferred-size width="-1" height="10"/> </grid> </constraints> @@ -238,7 +238,7 @@ <grid id="f9c12" layout-manager="GridLayoutManager" row-count="1" column-count="3" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1"> <margin top="0" left="0" bottom="0" right="0"/> <constraints> - <grid row="10" column="0" row-span="1" col-span="3" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/> + <grid row="11" column="0" row-span="1" col-span="3" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/> </constraints> <properties/> <border type="none"/> @@ -275,7 +275,7 @@ </component> <component id="2e377" class="javax.swing.JLabel"> <constraints> - <grid row="16" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/> + <grid row="17" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/> </constraints> <properties> <labelFor value="83bca"/> @@ -285,7 +285,7 @@ </component> <component id="83bca" class="javax.swing.JTextField" binding="myDependencyTypes"> <constraints> - <grid row="16" column="1" row-span="1" col-span="2" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false"> + <grid row="17" column="1" row-span="1" col-span="2" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false"> <preferred-size width="60" height="-1"/> </grid> </constraints> @@ -296,7 +296,7 @@ </component> <component id="d634c" class="com.intellij.ui.components.JBLabel"> <constraints> - <grid row="17" column="1" row-span="1" col-span="2" vsize-policy="0" hsize-policy="0" anchor="9" fill="0" indent="0" use-parent-layout="false"/> + <grid row="18" column="1" row-span="1" col-span="2" vsize-policy="0" hsize-policy="0" anchor="9" fill="0" indent="0" use-parent-layout="false"/> </constraints> <properties> <componentStyle value="SMALL"/> @@ -308,21 +308,21 @@ </component> <vspacer id="e1c6c"> <constraints> - <grid row="18" column="0" row-span="1" col-span="3" vsize-policy="0" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"> + <grid row="19" column="0" row-span="1" col-span="3" vsize-policy="0" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"> <preferred-size width="-1" height="10"/> </grid> </constraints> </vspacer> <vspacer id="9decb"> <constraints> - <grid row="14" column="0" row-span="1" col-span="3" vsize-policy="0" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"> + <grid row="15" column="0" row-span="1" col-span="3" vsize-policy="0" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"> <preferred-size width="-1" height="10"/> </grid> </constraints> </vspacer> <component id="eaeb7" class="com.intellij.ui.components.JBLabel"> <constraints> - <grid row="19" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/> + <grid row="20" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/> </constraints> <properties> <text resource-bundle="messages/MavenConfigurableBundle" key="maven.settings.importing.vm.options"/> @@ -330,13 +330,13 @@ </component> <component id="1e30e" class="com.intellij.ui.components.JBTextField" binding="myVMOptionsForImporter"> <constraints> - <grid row="19" column="1" row-span="1" col-span="2" vsize-policy="3" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/> + <grid row="20" column="1" row-span="1" col-span="2" vsize-policy="3" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/> </constraints> <properties/> </component> <component id="30c8a" class="com.intellij.ui.components.JBLabel"> <constraints> - <grid row="21" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/> + <grid row="22" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/> </constraints> <properties> <text resource-bundle="messages/MavenConfigurableBundle" key="maven.settings.importing.jdk"/> @@ -344,7 +344,7 @@ </component> <component id="89c29" class="com.intellij.openapi.externalSystem.service.ui.ExternalSystemJdkComboBox" binding="myJdkForImporterComboBox"> <constraints> - <grid row="21" column="1" row-span="1" col-span="2" vsize-policy="2" hsize-policy="2" anchor="0" fill="1" indent="0" use-parent-layout="false"/> + <grid row="22" column="1" row-span="1" col-span="2" vsize-policy="2" hsize-policy="2" anchor="0" fill="1" indent="0" use-parent-layout="false"/> </constraints> <properties> <model/> @@ -361,7 +361,7 @@ </component> <component id="6f594" class="com.intellij.ui.components.JBLabel"> <constraints> - <grid row="20" column="1" row-span="1" col-span="2" vsize-policy="0" hsize-policy="0" anchor="9" fill="0" indent="0" use-parent-layout="false"/> + <grid row="21" column="1" row-span="1" col-span="2" vsize-policy="0" hsize-policy="0" anchor="9" fill="0" indent="0" use-parent-layout="false"/> </constraints> <properties> <componentStyle value="SMALL"/> @@ -371,6 +371,15 @@ <text resource-bundle="messages/MavenConfigurableBundle" key="maven.settings.vm.options.tooltip"/> </properties> </component> + <component id="28031" class="javax.swing.JCheckBox" binding="myImportToTreeStructureCheckBox"> + <constraints> + <grid row="10" column="0" row-span="1" col-span="3" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/> + </constraints> + <properties> + <text resource-bundle="messages/MavenConfigurableBundle" key="maven.settings.importing.tree.structure"/> + <toolTipText resource-bundle="messages/MavenConfigurableBundle" key="maven.settings.importing.tree.structure.tooltip"/> + </properties> + </component> </children> </grid> <buttonGroups> diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenImportingSettingsForm.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenImportingSettingsForm.java index 660e5ded1007..9ca434e7b6e3 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenImportingSettingsForm.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenImportingSettingsForm.java @@ -42,6 +42,7 @@ public class MavenImportingSettingsForm { private JCheckBox myDownloadSourcesCheckBox; private JCheckBox myDownloadDocsCheckBox; private JCheckBox myDownloadAnnotationsCheckBox; + private JCheckBox myImportToTreeStructureCheckBox; private JPanel myAdditionalSettingsPanel; private JComboBox<MavenImportingSettings.GeneratedSourcesFolder> myGeneratedSourcesComboBox; @@ -108,6 +109,7 @@ public class MavenImportingSettingsForm { data.setCreateModulesForAggregators(myCreateModulesForAggregators.isSelected()); data.setCreateModuleGroups(myCreateGroupsCheckBox.isSelected()); + data.setImportToTreeStructure(myImportToTreeStructureCheckBox.isSelected()); data.setKeepSourceFolders(myKeepSourceFoldersCheckBox.isSelected()); data.setExcludeTargetFolder(myExcludeTargetFolderCheckBox.isSelected()); @@ -147,6 +149,7 @@ public class MavenImportingSettingsForm { } myExcludeTargetFolderCheckBox.setSelected(data.isExcludeTargetFolder()); myUseMavenOutputCheckBox.setSelected(data.isUseMavenOutput()); + myImportToTreeStructureCheckBox.setSelected(data.isImportToTreeStructure()); myUpdateFoldersOnImportPhaseComboBox.setSelectedItem(data.getUpdateFoldersOnImportPhase()); myGeneratedSourcesComboBox.setSelectedItem(data.getGeneratedSourcesFolder()); diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsManager.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsManager.java index 07a85d000ad4..1d3ff3009565 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsManager.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsManager.java @@ -409,6 +409,11 @@ public final class MavenProjectsManager extends MavenSimpleProjectComponent public void createModuleForAggregatorsChanged() { scheduleImportSettings(); } + + @Override + public void updateAllProjectStructure() { + scheduleAllProjectImport(); + } }); } @@ -1135,6 +1140,21 @@ public final class MavenProjectsManager extends MavenSimpleProjectComponent return result; } + private void scheduleAllProjectImport() { + runWhenFullyOpen(() -> myImportingQueue.queue(new Update(this) { + @Override + public void run() { + synchronized (myImportingDataLock) { + for (MavenProject project : getProjectsTree().getProjects()) { + myProjectsToImport.put(project, MavenProjectChanges.ALL); + } + } + importProjects(); + fireProjectImportCompleted(); + } + })); + } + @TestOnly public void scheduleImportInTests(List<VirtualFile> projectFiles) { List<Pair<MavenProject, MavenProjectChanges>> toImport = new ArrayList<>(); diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsManagerWatcher.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsManagerWatcher.java index 379598095457..b932e9fe668e 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsManagerWatcher.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsManagerWatcher.java @@ -210,7 +210,7 @@ public class MavenProjectsManagerWatcher { @Override public void moduleRemoved(@NotNull Project project, @NotNull Module module) { if (Registry.is("maven.modules.do.not.ignore.on.delete")) return; - if (MavenProjectImporter.isImportToTreeStructureEnabled()) return; + if (MavenProjectImporter.isImportToTreeStructureEnabled(project)) return; MavenProjectsManager projectsManager = MavenProjectsManager.getInstance(myProject); MavenProject mavenProject = projectsManager.findProject(module); diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenResolveResultProcessor.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenResolveResultProcessor.java index 006e8933803f..34431465fa9c 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenResolveResultProcessor.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenResolveResultProcessor.java @@ -6,6 +6,7 @@ import com.intellij.openapi.project.Project; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.idea.maven.buildtool.MavenSyncConsole; +import org.jetbrains.idea.maven.execution.SyncBundle; import org.jetbrains.idea.maven.externalSystemIntegration.output.importproject.quickfixes.RepositoryBlockedSyncIssue; import org.jetbrains.idea.maven.model.MavenArtifact; import org.jetbrains.idea.maven.model.MavenProjectProblem; @@ -36,6 +37,26 @@ public class MavenResolveResultProcessor { } } + public static void notifySyncForProblem(@NotNull Project project, @NotNull MavenProjectProblem problem) { + MavenSyncConsole syncConsole = MavenProjectsManager.getInstance(project).getSyncConsole(); + String message = problem.getDescription(); + if (message == null) return; + + if (message.contains(BLOCKED_MIRROR_FOR_REPOSITORIES)) { + BuildIssue buildIssue = RepositoryBlockedSyncIssue.getIssue(project, problem.getDescription()); + syncConsole.getListener(MavenServerProgressIndicator.ResolveType.DEPENDENCY) + .showBuildIssue(buildIssue.getTitle(), buildIssue); + } else if (problem.getMavenArtifact() == null) { + MavenProjectsManager.getInstance(project).getSyncConsole() + .addWarning(SyncBundle.message("maven.sync.annotation.processor.problem"), message); + } + + if (problem.getMavenArtifact() != null) { + syncConsole.getListener(MavenServerProgressIndicator.ResolveType.DEPENDENCY) + .showArtifactBuildIssue(problem.getMavenArtifact().getMavenId().getKey(), message); + } + } + public static void notifyMavenProblems(@NotNull Project project) { MavenProjectsManager projectsManager = MavenProjectsManager.getInstance(project); MavenSyncConsole syncConsole = projectsManager.getSyncConsole(); diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/DummyMavenServerConnector.kt b/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/DummyMavenServerConnector.kt index 59fff36e47b3..bf7cad1448e2 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/DummyMavenServerConnector.kt +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/DummyMavenServerConnector.kt @@ -216,6 +216,12 @@ class DummyEmbedder(val myProject: Project) : MavenServerEmbedder { return emptyList() } + override fun resolveArtifactTransitively(artifacts: MutableList<MavenArtifactInfo>, + remoteRepositories: MutableList<MavenRemoteRepository>, + token: MavenToken?): MavenArtifactResolveResult { + return MavenArtifactResolveResult(emptyList(), null) + } + override fun resolvePlugin(plugin: MavenPlugin, repositories: List<MavenRemoteRepository>, nativeMavenProjectId: Int, diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenEmbedderWrapper.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenEmbedderWrapper.java index d53314d4c5b7..1ef7cdcdd131 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenEmbedderWrapper.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenEmbedderWrapper.java @@ -227,6 +227,10 @@ public abstract class MavenEmbedderWrapper extends MavenRemoteObjectWrapper<Mave return performCancelable(() -> getOrCreateWrappee().resolve(info, remoteRepositories, ourToken)); } + /** + * @deprecated use {@link MavenEmbedderWrapper#resolveArtifactTransitively()} + */ + @Deprecated @NotNull public List<MavenArtifact> resolveTransitively( @NotNull final List<MavenArtifactInfo> artifacts, @@ -236,6 +240,13 @@ public abstract class MavenEmbedderWrapper extends MavenRemoteObjectWrapper<Mave } @NotNull + public MavenArtifactResolveResult resolveArtifactTransitively( + @NotNull final List<MavenArtifactInfo> artifacts, + @NotNull final List<MavenRemoteRepository> remoteRepositories) throws MavenProcessCanceledException { + return performCancelable(() -> getOrCreateWrappee().resolveArtifactTransitively(artifacts, remoteRepositories, ourToken)); + } + + @NotNull public List<String> retrieveVersions(@NotNull final String groupId, @NotNull final String artifactId, @NotNull final List<MavenRemoteRepository> remoteRepositories) throws MavenProcessCanceledException { diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/statistics/MavenSettingsCollector.kt b/plugins/maven/src/main/java/org/jetbrains/idea/maven/statistics/MavenSettingsCollector.kt index 4f1b19c127e0..bc8ca9394b4d 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/statistics/MavenSettingsCollector.kt +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/statistics/MavenSettingsCollector.kt @@ -11,6 +11,7 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.util.Version import org.jetbrains.idea.maven.execution.MavenExternalParameters.resolveMavenHome import org.jetbrains.idea.maven.execution.MavenRunner +import org.jetbrains.idea.maven.project.MavenGeneralSettings import org.jetbrains.idea.maven.project.MavenImportingSettings import org.jetbrains.idea.maven.project.MavenProjectsManager import org.jetbrains.idea.maven.server.MavenDistributionsCache @@ -43,7 +44,7 @@ class MavenSettingsCollector : ProjectUsagesCollector() { @Suppress("DEPRECATION") usages.add(newMetric("loggingLevel", generalSettings.loggingLevel)) try { - val mavenWrapperFile = getMavenWrapper(manager, project) + val mavenWrapperFile = getMavenWrapper(manager, generalSettings, project) var mavenVersion = MavenUtil.getMavenVersion(resolveMavenHome(generalSettings, project, null, mavenWrapperFile)) mavenVersion = mavenVersion?.let { Version.parseVersion(it)?.toCompactString() } ?: "unknown" usages.add(newMetric("mavenVersion", mavenVersion)) @@ -98,8 +99,9 @@ class MavenSettingsCollector : ProjectUsagesCollector() { } private fun getMavenWrapper(manager: MavenProjectsManager, + generalSettings: MavenGeneralSettings, project: Project): File? { - return if (manager.rootProjects.size == 1) + return if (MavenUtil.isWrapper(generalSettings) && manager.rootProjects.size == 1) MavenDistributionsCache.getInstance(project).getWrapper(manager.rootProjects.first().directory)?.mavenHome?.toFile() else null } } diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenTreeStructureProvider.kt b/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenTreeStructureProvider.kt index 1d839e22176c..e3ffe81b4b29 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenTreeStructureProvider.kt +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenTreeStructureProvider.kt @@ -43,7 +43,7 @@ class MavenTreeStructureProvider : TreeStructureProvider, DumbAware { } } - if (isImportToTreeStructureEnabled() && child is PsiDirectoryNode && parent is PsiDirectoryNode) { + if (isImportToTreeStructureEnabled(project) && child is PsiDirectoryNode && parent is PsiDirectoryNode) { childToAdd = getMavenModuleNode(project, child, settings) ?: child } modifiedChildren.add(childToAdd) diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.java index 98fb0ceb629c..ed7c8cdbb226 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.java @@ -1573,7 +1573,14 @@ public class MavenUtil { MavenProjectsManager projectsManager = MavenProjectsManager.getInstance(project); Set<MavenRemoteRepository> repositories = projectsManager.getRemoteRepositories(); MavenEmbeddersManager embeddersManager = projectsManager.getEmbeddersManager(); - MavenEmbedderWrapper embedderWrapper = embeddersManager.getEmbedder(MavenEmbeddersManager.FOR_POST_PROCESSING, EMPTY, EMPTY); + + String baseDir = EMPTY; + List<MavenProject> projects = projectsManager.getRootProjects(); + if (!projects.isEmpty()) { + baseDir = getBaseDir(projects.get(0).getDirectoryFile()).toString(); + } + + MavenEmbedderWrapper embedderWrapper = embeddersManager.getEmbedder(MavenEmbeddersManager.FOR_POST_PROCESSING, baseDir, baseDir); try { Set<MavenRemoteRepository> resolvedRepositories = embedderWrapper.resolveRepositories(repositories); return resolvedRepositories.isEmpty() ? repositories : resolvedRepositories; diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/AbstractMavenModuleBuilder.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/AbstractMavenModuleBuilder.java index 11110b1daedf..70d4d3cdc27c 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/AbstractMavenModuleBuilder.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/AbstractMavenModuleBuilder.java @@ -87,7 +87,7 @@ public abstract class AbstractMavenModuleBuilder extends ModuleBuilder implement private void setMavenModuleFilePath(@NotNull Project project, @NotNull String moduleName) { if (myParentProject == null) return; - if (!MavenProjectImporter.isImportToTreeStructureEnabled()) return; + if (!MavenProjectImporter.isImportToTreeStructureEnabled(project)) return; String parentModuleName = MavenProjectImportContextProvider.getModuleName(myParentProject, project); if (StringUtil.isNotEmpty(parentModuleName)) { String moduleFilePath = project.getBasePath() + File.separator + parentModuleName + "." + moduleName + ModuleFileType.DOT_DEFAULT_EXTENSION; diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/InternalMavenModuleBuilder.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/InternalMavenModuleBuilder.java index a8b3badd7a98..599d29ce3f12 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/InternalMavenModuleBuilder.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/InternalMavenModuleBuilder.java @@ -29,7 +29,8 @@ public final class InternalMavenModuleBuilder extends AbstractMavenModuleBuilder @Override protected void setupModule(Module module) throws ConfigurationException { super.setupModule(module); - if (MavenProjectImporter.isImportToWorkspaceModelEnabled() || MavenProjectImporter.isImportToTreeStructureEnabled()) { + if (MavenProjectImporter.isImportToWorkspaceModelEnabled() + || MavenProjectImporter.isImportToTreeStructureEnabled(module.getProject())) { //this is needed to ensure that dummy module created here will be correctly replaced by real ModuleEntity when import finishes ExternalSystemModulePropertyManager.getInstance(module).setMavenized(true); } diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/MavenModuleBuilderHelper.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/MavenModuleBuilderHelper.java index 0482b1210296..33ecd554c33b 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/MavenModuleBuilderHelper.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/MavenModuleBuilderHelper.java @@ -2,6 +2,8 @@ package org.jetbrains.idea.maven.wizards; import com.intellij.ide.util.EditorHelper; +import com.intellij.openapi.GitSilentFileAdder; +import com.intellij.openapi.GitSilentFileAdderProvider; import com.intellij.openapi.application.ModalityState; import com.intellij.openapi.command.WriteCommandAction; import com.intellij.openapi.editor.Document; @@ -81,11 +83,14 @@ public class MavenModuleBuilderHelper { ? new PsiFile[]{getPsiFile(project, myAggregatorProject.getFile())} : PsiFile.EMPTY_ARRAY; final VirtualFile pom = WriteCommandAction.writeCommandAction(project, psiFiles).withName(myCommandName).compute(() -> { - VirtualFile file = null; + GitSilentFileAdder vcsFileAdder = GitSilentFileAdderProvider.create(project); + VirtualFile file = null; + try { try { file = root.findChild(MavenConstants.POM_XML); if (file != null) file.delete(this); file = root.createChildData(this, MavenConstants.POM_XML); + vcsFileAdder.markFileForAdding(file); MavenUtil.runOrApplyMavenProjectFileTemplate(project, file, myProjectId, isInteractive); } catch (IOException e) { @@ -94,19 +99,23 @@ public class MavenModuleBuilderHelper { } updateProjectPom(project, file); + } + finally { + vcsFileAdder.finish(); + } - if (myAggregatorProject != null) { - VirtualFile aggregatorProjectFile = myAggregatorProject.getFile(); - MavenDomProjectModel model = MavenDomUtil.getMavenDomProjectModel(project, aggregatorProjectFile); - if (model != null) { - model.getPackaging().setStringValue("pom"); - MavenDomModule module = model.getModules().addModule(); - module.setValue(getPsiFile(project, file)); - unblockAndSaveDocuments(project, aggregatorProjectFile); - } + if (myAggregatorProject != null) { + VirtualFile aggregatorProjectFile = myAggregatorProject.getFile(); + MavenDomProjectModel model = MavenDomUtil.getMavenDomProjectModel(project, aggregatorProjectFile); + if (model != null) { + model.getPackaging().setStringValue("pom"); + MavenDomModule module = model.getModules().addModule(); + module.setValue(getPsiFile(project, file)); + unblockAndSaveDocuments(project, aggregatorProjectFile); } - return file; - }); + } + return file; + }); if (pom == null) return; @@ -219,23 +228,32 @@ public class MavenModuleBuilderHelper { @VisibleForTesting void copyGeneratedFiles(File workingDir, VirtualFile pom, Project project, String artifactId) { + GitSilentFileAdder vcsFileAdder = GitSilentFileAdderProvider.create(project); try { - artifactId = artifactId != null ? artifactId : myProjectId.getArtifactId(); - if (artifactId != null) { - FileUtil.copyDir(new File(workingDir, artifactId), new File(pom.getParent().getPath())); + try { + artifactId = artifactId != null ? artifactId : myProjectId.getArtifactId(); + if (artifactId != null) { + File sourceDir = new File(workingDir, artifactId); + File targetDir = new File(pom.getParent().getPath()); + vcsFileAdder.markFileForAdding(targetDir, true); // VFS is refreshed below + FileUtil.copyDir(sourceDir, targetDir); + } + FileUtil.delete(workingDir); + } + catch (Exception e) { + showError(project, e); + return; } - FileUtil.delete(workingDir); - } - catch (Exception e) { - showError(project, e); - return; - } - pom.getParent().refresh(false, false); - pom.refresh(false, false); - updateProjectPom(project, pom); + pom.getParent().refresh(false, false); + pom.refresh(false, false); + updateProjectPom(project, pom); - LocalFileSystem.getInstance().refreshWithoutFileWatcher(true); + LocalFileSystem.getInstance().refreshWithoutFileWatcher(true); + } + finally { + vcsFileAdder.finish(); + } } private static void showError(Project project, Throwable e) { diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/MavenProjectBuilder.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/MavenProjectBuilder.java index 51b03660d03e..51698c5d13e3 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/MavenProjectBuilder.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/MavenProjectBuilder.java @@ -253,7 +253,7 @@ public final class MavenProjectBuilder extends ProjectImportBuilder<MavenProject modifiableModel.addContentEntry(contentRoot); modifiableModel.commit(); renameModuleToProjectName(project, module, root); - if (MavenProjectImporter.isImportToWorkspaceModelEnabled() || MavenProjectImporter.isImportToTreeStructureEnabled()) { + if (MavenProjectImporter.isImportToWorkspaceModelEnabled() || MavenProjectImporter.isImportToTreeStructureEnabled(project)) { //this is needed to ensure that dummy module created here will be correctly replaced by real ModuleEntity when import finishes ExternalSystemModulePropertyManager.getInstance(module).setMavenized(true); } diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/archetype/MavenArchetypeNewProjectWizard.kt b/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/archetype/MavenArchetypeNewProjectWizard.kt index 0496a67d634c..09d85b16c554 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/archetype/MavenArchetypeNewProjectWizard.kt +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/archetype/MavenArchetypeNewProjectWizard.kt @@ -5,10 +5,11 @@ import com.intellij.codeInsight.lookup.impl.LookupCellRenderer.REGULAR_MATCHED_A import com.intellij.execution.util.setEmptyState import com.intellij.execution.util.setVisibleRowCount import com.intellij.icons.AllIcons -import com.intellij.ide.projectWizard.generators.BuildSystemJavaNewProjectWizardData.Companion.buildSystem import com.intellij.ide.projectWizard.generators.AssetsNewProjectWizardStep +import com.intellij.ide.projectWizard.generators.BuildSystemJavaNewProjectWizardData.Companion.buildSystem import com.intellij.ide.projectWizard.generators.JavaNewProjectWizard import com.intellij.ide.starters.local.StandardAssetsProvider +import com.intellij.ide.util.projectWizard.ModuleBuilder import com.intellij.ide.util.projectWizard.WizardContext import com.intellij.ide.wizard.* import com.intellij.ide.wizard.GitNewProjectWizardData.Companion.gitData @@ -47,6 +48,7 @@ import com.intellij.ui.layout.* import com.intellij.util.concurrency.AppExecutorUtil import com.intellij.util.containers.ContainerUtil.putIfNotNull import com.intellij.util.text.nullize +import com.intellij.util.ui.update.UiNotifyConnector import icons.OpenapiIcons import org.jetbrains.idea.maven.indices.MavenArchetypeManager import org.jetbrains.idea.maven.indices.archetype.MavenCatalog @@ -168,7 +170,7 @@ class MavenArchetypeNewProjectWizard : GeneratorNewProjectWizard { }.resizableRow() }.resizableRow() } - reloadCatalogs() + UiNotifyConnector.doWhenFirstShown(catalogComboBox) { reloadCatalogs() } } override fun setupAdvancedSettingsUI(builder: Panel) { @@ -452,7 +454,9 @@ class MavenArchetypeNewProjectWizard : GeneratorNewProjectWizard { } } - class Builder : GeneratorNewProjectWizardBuilderAdapter(MavenArchetypeNewProjectWizard()) + class Builder : GeneratorNewProjectWizardBuilderAdapter(MavenArchetypeNewProjectWizard()) { + override fun getWeight(): Int = JVM_WEIGHT + 100 + } private class AssetsStep(parent: NewProjectWizardStep) : AssetsNewProjectWizardStep(parent) { override fun setupAssets(project: Project) { diff --git a/plugins/maven/src/main/resources/META-INF/plugin.xml b/plugins/maven/src/main/resources/META-INF/plugin.xml index e091f5477b4b..356b6e570207 100644 --- a/plugins/maven/src/main/resources/META-INF/plugin.xml +++ b/plugins/maven/src/main/resources/META-INF/plugin.xml @@ -312,10 +312,6 @@ <registryKey key="maven.consumer.pom.support" defaultValue="false" description="Enable Maven consumer pom support"/> - <registryKey key="maven.import.tree.structure" defaultValue="false" - description="Enable experimental implementation of Maven import module tree structure with split main and test modules. See IDEA-85478 for details."/> - - <intentionAction> <className>org.jetbrains.idea.maven.dom.converters.MavenArtifactCoordinatesConverter$MyUpdateIndicesIntention</className> </intentionAction> diff --git a/plugins/maven/src/main/resources/messages/MavenConfigurableBundle.properties b/plugins/maven/src/main/resources/messages/MavenConfigurableBundle.properties index 45d768658712..996709939fde 100644 --- a/plugins/maven/src/main/resources/messages/MavenConfigurableBundle.properties +++ b/plugins/maven/src/main/resources/messages/MavenConfigurableBundle.properties @@ -35,6 +35,9 @@ maven.settings.importing.create.module.groups=Create module &groups for multi-mo maven.settings.importing.search.recursively=&Search for projects recursively maven.settings.importing.use.output.directories=Use Maven &output directories maven.settings.importing.use.output.directories.tooltip=IDEA compiler will use output directory defined in maven model (target/classes by default) +maven.settings.importing.tree.structure=Create separate &modules for production and test roots (experimental) +maven.settings.importing.tree.structure.tooltip=Create a tree structure of the project in 'Project structure...' \ + with separate test modules if necessary maven.settings.importing.generated.source.folders=Generated sources folders: maven.settings.importing.phase.for.source.updates=Phase to be used for folders &update: maven.settings.importing.phase.for.source.updates.notes=<html>IntelliJ IDEA needs to execute one of the listed phases in order to \ diff --git a/plugins/maven/src/main/resources/messages/MavenSyncBundle.properties b/plugins/maven/src/main/resources/messages/MavenSyncBundle.properties index a41092d177b8..67343dafd1d1 100644 --- a/plugins/maven/src/main/resources/messages/MavenSyncBundle.properties +++ b/plugins/maven/src/main/resources/messages/MavenSyncBundle.properties @@ -26,7 +26,7 @@ maven.sync.quickfixes.repository.blocked=Since Maven 3.8.1 http repositories are maven.sync.quickfixes.repository.blocked.show.settings= - Check that Maven <a href="{0}">settings.xml</a> does not contain http repositories maven.sync.quickfixes.repository.blocked.find.repository= - Check that Maven <a href="{0}">pom files</a> do not contain http repository {1} maven.sync.quickfixes.repository.blocked.add.mirror= - Add a mirror(s) for {0} that allows http url in the Maven <a href="{1}">settings.xml</a> -maven.sync.quickfixes.repository.blocked.downgrade= - Downgrade Maven to version before 3.8.1 in <a href="{0}">settings</a> +maven.sync.quickfixes.repository.blocked.downgrade= - Downgrade Maven to version 3.8.1 or earlier in <a href="{0}">settings</a> maven.sync.quickfixes.maven.jdk.version.title=Incompatible Maven JDK diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/tree/MavenProjectTreeImporterTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/tree/MavenProjectTreeImporterTest.java index 8ced256f2d0b..94267b80a8a7 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/tree/MavenProjectTreeImporterTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/tree/MavenProjectTreeImporterTest.java @@ -2,8 +2,8 @@ package org.jetbrains.idea.maven.importing.tree; import com.intellij.maven.testFramework.MavenMultiVersionImportingTestCase; -import com.intellij.openapi.util.registry.Registry; import com.intellij.util.containers.ContainerUtil; +import org.jetbrains.idea.maven.project.MavenProjectsManager; import org.junit.Assert; import org.junit.Test; @@ -15,13 +15,7 @@ public class MavenProjectTreeImporterTest extends MavenMultiVersionImportingTest @Override protected void setUp() throws Exception { super.setUp(); - Registry.get("maven.import.tree.structure").setValue(true); - } - - @Override - protected void tearDown() throws Exception { - super.tearDown(); - Registry.get("maven.import.tree.structure").setValue(false); + MavenProjectsManager.getInstance(myProject).getImportingSettings().setImportToTreeStructure(true); } @Test diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/MavenSettingsTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/MavenSettingsTest.java index 806c397299c2..c0b206b6dde2 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/MavenSettingsTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/MavenSettingsTest.java @@ -17,6 +17,7 @@ package org.jetbrains.idea.maven.project; import com.intellij.configurationStore.JdomSerializer; import com.intellij.configurationStore.XmlSerializer; +import com.intellij.maven.testFramework.MavenTestCase; import com.intellij.openapi.Disposable; import com.intellij.openapi.components.ComponentManager; import com.intellij.openapi.externalSystem.autoimport.AutoImportProjectTrackerSettings; @@ -28,7 +29,6 @@ import com.intellij.testFramework.ServiceContainerUtil; import com.intellij.util.xmlb.SkipDefaultsSerializationFilter; import org.jdom.Element; import org.jdom.output.XMLOutputter; -import com.intellij.maven.testFramework.MavenTestCase; import org.jetbrains.idea.maven.utils.MavenSettings; import static com.intellij.configurationStore.DefaultStateSerializerKt.deserializeState; @@ -65,6 +65,10 @@ public class MavenSettingsTest extends MavenTestCase { public void createModuleForAggregatorsChanged() { log[0] += "changed "; } + + @Override + public void updateAllProjectStructure() { + } }); s.setCreateModulesForAggregators(true); diff --git a/plugins/ui-designer/src/com/intellij/uiDesigner/palette/Palette.java b/plugins/ui-designer/src/com/intellij/uiDesigner/palette/Palette.java index 7a3bd922f6d4..007491214037 100644 --- a/plugins/ui-designer/src/com/intellij/uiDesigner/palette/Palette.java +++ b/plugins/ui-designer/src/com/intellij/uiDesigner/palette/Palette.java @@ -139,6 +139,16 @@ public final class Palette implements PersistentStateComponent<Element>, Disposa } } + @Override + public void noStateLoaded() { + try { + loadState(Objects.requireNonNull(loadDefaultPalette())); + } + catch (Exception e) { + LOG.error(e); + } + } + /** * Adds specified listener. */ @@ -156,7 +166,7 @@ public final class Palette implements PersistentStateComponent<Element>, Disposa private void upgradePalette() { // load new components from the predefined Palette2.xml try { - Element rootElement = JDOMUtil.load(getClass().getClassLoader().getResourceAsStream("Palette2.xml")); + Element rootElement = loadDefaultPalette(); for (Element groupElement : Objects.requireNonNull(rootElement).getChildren(ELEMENT_GROUP)) { for (GroupItem group : myGroups) { if (group.getName().equals(groupElement.getAttributeValue(ATTRIBUTE_NAME))) { @@ -171,6 +181,10 @@ public final class Palette implements PersistentStateComponent<Element>, Disposa } } + private @Nullable Element loadDefaultPalette() throws Exception { + return JDOMUtil.load(getClass().getClassLoader().getResourceAsStream("Palette2.xml")); + } + private void upgradeGroup(final GroupItem group, final Element groupElement) { for (Element itemElement : groupElement.getChildren(ELEMENT_ITEM)) { if (itemElement.getAttributeValue(ATTRIBUTE_SINCE_VERSION, "").equals("2")) { diff --git a/python/build/testSrc/org/jetbrains/intellij/build/pycharm/PyCharmCommunityBuildTest.kt b/python/build/testSrc/org/jetbrains/intellij/build/pycharm/PyCharmCommunityBuildTest.kt index f7eb7ef0f6c9..abf2719b332d 100644 --- a/python/build/testSrc/org/jetbrains/intellij/build/pycharm/PyCharmCommunityBuildTest.kt +++ b/python/build/testSrc/org/jetbrains/intellij/build/pycharm/PyCharmCommunityBuildTest.kt @@ -1,9 +1,8 @@ -// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package org.jetbrains.intellij.build.pycharm import com.intellij.openapi.application.PathManager import org.jetbrains.intellij.build.BuildOptions -import org.jetbrains.intellij.build.ProprietaryBuildTools import org.jetbrains.intellij.build.testFramework.runTestBuild import org.junit.Test @@ -13,9 +12,9 @@ class PyCharmCommunityBuildTest { val homePath = PathManager.getHomePathFor(javaClass)!! val communityHomePath = "$homePath/community" runTestBuild( - homePath = communityHomePath, communityHomePath = communityHomePath, + homePath = communityHomePath, + communityHomePath = communityHomePath, productProperties = PyCharmCommunityProperties(communityHomePath), - buildTools = ProprietaryBuildTools.DUMMY ) { it.projectClassesOutputDirectory = System.getProperty(BuildOptions.PROJECT_CLASSES_OUTPUT_DIRECTORY_PROPERTY) ?: "$homePath/out/classes" diff --git a/python/helpers/pydev/_pydev_bundle/pydev_console_utils.py b/python/helpers/pydev/_pydev_bundle/pydev_console_utils.py index 86e139047044..55a5bd66070a 100644 --- a/python/helpers/pydev/_pydev_bundle/pydev_console_utils.py +++ b/python/helpers/pydev/_pydev_bundle/pydev_console_utils.py @@ -375,7 +375,7 @@ class BaseInterpreterInterface(BaseCodeExecutor): from _pydevd_bundle.pydevd_constants import set_thread_id from _pydev_bundle import pydev_localhost - set_thread_id(threading.currentThread(), "console_main") + set_thread_id(threading.current_thread(), "console_main") self.orig_find_frame = pydevd_vars.find_frame pydevd_vars.find_frame = self._findFrame diff --git a/python/helpers/pydev/_pydev_bundle/pydev_log.py b/python/helpers/pydev/_pydev_bundle/pydev_log.py index 40b562deb39a..089e16d38198 100644 --- a/python/helpers/pydev/_pydev_bundle/pydev_log.py +++ b/python/helpers/pydev/_pydev_bundle/pydev_log.py @@ -1,7 +1,7 @@ import sys from _pydevd_bundle.pydevd_constants import DebugInfoHolder from _pydev_imps._pydev_saved_modules import threading -currentThread = threading.currentThread +currentThread = threading.current_thread import traceback diff --git a/python/helpers/pydev/_pydev_bundle/pydev_monkey.py b/python/helpers/pydev/_pydev_bundle/pydev_monkey.py index 31fb55cde3f6..d7e563465564 100644 --- a/python/helpers/pydev/_pydev_bundle/pydev_monkey.py +++ b/python/helpers/pydev/_pydev_bundle/pydev_monkey.py @@ -773,12 +773,12 @@ class _NewThreadStartupWithTrace: # Note: if this is a thread from threading.py, we're too early in the boostrap process (because we mocked # the start_new_thread internal machinery and thread._bootstrap has not finished), so, the code below needs # to make sure that we use the current thread bound to the original function and not use - # threading.currentThread() unless we're sure it's a dummy thread. + # threading.current_thread() unless we're sure it's a dummy thread. t = getattr(self.original_func, '__self__', getattr(self.original_func, 'im_self', None)) if not isinstance(t, threading.Thread): # This is not a threading.Thread but a Dummy thread (so, get it as a dummy thread using # currentThread). - t = threading.currentThread() + t = threading.current_thread() if not getattr(t, 'is_pydev_daemon_thread', False): thread_id = get_current_thread_id(t) diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_additional_thread_info_regular.py b/python/helpers/pydev/_pydevd_bundle/pydevd_additional_thread_info_regular.py index 0cffd4f249a9..4e8a00142fca 100644 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_additional_thread_info_regular.py +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_additional_thread_info_regular.py @@ -7,7 +7,7 @@ from _pydev_bundle import pydev_log from _pydevd_bundle.pydevd_frame import PyDBFrame # ENDIF -version = 33 +version = 34 if not hasattr(sys, '_current_frames'): diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_breakpoints.py b/python/helpers/pydev/_pydevd_bundle/pydevd_breakpoints.py index 5b7d60f4e8bf..b0a6d0ff4038 100644 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_breakpoints.py +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_breakpoints.py @@ -170,7 +170,7 @@ def _fallback_excepthook(exctype, value, tb): try: debugger = get_global_debugger() if debugger and debugger.break_on_uncaught_exceptions: - thread = threading.currentThread() + thread = threading.current_thread() additional_info = getattr(thread, 'additional_info', None) if not thread or additional_info is None: return diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_comm.py b/python/helpers/pydev/_pydevd_bundle/pydevd_comm.py index 4f492c80059a..533dca219028 100644 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_comm.py +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_comm.py @@ -206,7 +206,7 @@ class PyDBDaemonThread(threading.Thread): created_pydb_daemon[self] = 1 try: try: - if IS_JYTHON and not isinstance(threading.currentThread(), threading._MainThread): + if IS_JYTHON and not isinstance(threading.current_thread(), threading._MainThread): # we shouldn't update sys.modules for the main thread, cause it leads to the second importing 'threading' # module, and the new instance of main thread is created import org.python.core as PyCore #@UnresolvedImport @@ -267,7 +267,7 @@ class ReaderThread(PyDBDaemonThread): def __init__(self, sock): PyDBDaemonThread.__init__(self) self.sock = sock - self.setName("pydevd.Reader") + self.name = "pydevd.Reader" from _pydevd_bundle.pydevd_process_net_command import process_net_command self.process_net_command = process_net_command self.global_debugger_holder = GlobalDebuggerHolder @@ -345,7 +345,7 @@ class WriterThread(PyDBDaemonThread): def __init__(self, sock): PyDBDaemonThread.__init__(self) self.sock = sock - self.setName("pydevd.Writer") + self.name = "pydevd.Writer" self.cmdQueue = _queue.Queue() if pydevd_vm_type.get_vm_type() == 'python': self.timeout = 0 @@ -571,7 +571,7 @@ class NetCommandFactory: def _thread_to_xml(self, thread): """ thread information as XML """ - name = pydevd_xml.make_valid_xml_value(thread.getName()) + name = pydevd_xml.make_valid_xml_value(thread.name) cmdText = '<thread name="%s" id="%s" />' % (quote(name), get_thread_id(thread)) return cmdText diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_console_integration.py b/python/helpers/pydev/_pydevd_bundle/pydevd_console_integration.py index 5d420c117dcd..e9eaee7811e5 100644 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_console_integration.py +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_console_integration.py @@ -222,8 +222,6 @@ def console_exec(thread_id, frame_id, expression, dbg): # because it contains globals and locals in the right precedence. # See: https://stackoverflow.com/questions/15866398/why-is-a-python-generator-confusing-its-scope-with-global-in-an-execd-script. Exec(code, updated_globals, updated_globals) - except SystemExit: - raise except: interpreter.showtraceback() exception_occurred = True diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_custom_frames.py b/python/helpers/pydev/_pydevd_bundle/pydevd_custom_frames.py index ef587989ec5f..47519f320497 100644 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_custom_frames.py +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_custom_frames.py @@ -63,7 +63,7 @@ class CustomFrame: def add_custom_frame(frame, name, thread_id): CustomFramesContainer.custom_frames_lock.acquire() try: - curr_thread_id = get_current_thread_id(threading.currentThread()) + curr_thread_id = get_current_thread_id(threading.current_thread()) next_id = CustomFramesContainer._next_frame_id = CustomFramesContainer._next_frame_id + 1 # Note: the frame id kept contains an id and thread information on the thread where the frame was added diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_cython.c b/python/helpers/pydev/_pydevd_bundle/pydevd_cython.c index 244c7d78ef0a..f151b5fec2a3 100644 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_cython.c +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_cython.c @@ -897,7 +897,7 @@ struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PydevSmartStepContext { }; -/* "_pydevd_bundle/pydevd_cython.pyx":278 +/* "_pydevd_bundle/pydevd_cython.pyx":277 * #======================================================================================================================= * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * cdef class PyDBFrame: # <<<<<<<<<<<<<< @@ -914,7 +914,7 @@ struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame { }; -/* "_pydevd_bundle/pydevd_cython.pyx":1171 +/* "_pydevd_bundle/pydevd_cython.pyx":1170 * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * cdef class SafeCallWrapper: # <<<<<<<<<<<<<< @@ -927,7 +927,7 @@ struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper { }; -/* "_pydevd_bundle/pydevd_cython.pyx":1334 +/* "_pydevd_bundle/pydevd_cython.pyx":1333 * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * cdef class TopLevelThreadTracerOnlyUnhandledExceptions: # <<<<<<<<<<<<<< @@ -940,7 +940,7 @@ struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerOnlyUnhand }; -/* "_pydevd_bundle/pydevd_cython.pyx":1368 +/* "_pydevd_bundle/pydevd_cython.pyx":1367 * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * cdef class TopLevelThreadTracerNoBackFrame: # <<<<<<<<<<<<<< @@ -958,7 +958,7 @@ struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerNoBackFram }; -/* "_pydevd_bundle/pydevd_cython.pyx":1475 +/* "_pydevd_bundle/pydevd_cython.pyx":1474 * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * cdef class ThreadTracer: # <<<<<<<<<<<<<< @@ -972,7 +972,7 @@ struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_ThreadTracer { -/* "_pydevd_bundle/pydevd_cython.pyx":278 +/* "_pydevd_bundle/pydevd_cython.pyx":277 * #======================================================================================================================= * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * cdef class PyDBFrame: # <<<<<<<<<<<<<< @@ -1915,7 +1915,6 @@ static const char __pyx_k_IS_IRONPYTHON[] = "IS_IRONPYTHON"; static const char __pyx_k_STATE_SUSPEND[] = "STATE_SUSPEND"; static const char __pyx_k_cmd_step_into[] = "cmd_step_into"; static const char __pyx_k_cmd_step_over[] = "cmd_step_over"; -static const char __pyx_k_currentThread[] = "currentThread"; static const char __pyx_k_extract_stack[] = "extract_stack"; static const char __pyx_k_get_file_type[] = "get_file_type"; static const char __pyx_k_get_func_name[] = "get_func_name"; @@ -1933,6 +1932,7 @@ static const char __pyx_k_PYTHON_SUSPEND[] = "PYTHON_SUSPEND"; static const char __pyx_k_TRACE_PROPERTY[] = "TRACE_PROPERTY"; static const char __pyx_k_co_firstlineno[] = "co_firstlineno"; static const char __pyx_k_current_frames[] = "_current_frames"; +static const char __pyx_k_current_thread[] = "current_thread"; static const char __pyx_k_enable_tracing[] = "enable_tracing"; static const char __pyx_k_get_breakpoint[] = "get_breakpoint"; static const char __pyx_k_pydev_step_cmd[] = "pydev_step_cmd"; @@ -2209,8 +2209,8 @@ static PyObject *__pyx_n_s_collect_try_except_info; static PyObject *__pyx_n_s_compile; static PyObject *__pyx_n_s_condition; static PyObject *__pyx_n_s_conditional_breakpoint_exception; -static PyObject *__pyx_n_s_currentThread; static PyObject *__pyx_n_s_current_frames; +static PyObject *__pyx_n_s_current_thread; static PyObject *__pyx_n_s_debug; static PyObject *__pyx_n_s_dict; static PyObject *__pyx_n_s_dict_iter_values; @@ -2628,7 +2628,7 @@ static PyObject *__pyx_tp_new_14_pydevd_bundle_13pydevd_cython_ThreadTracer(PyTy static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_get = {0, &__pyx_n_s_get, 0, 0, 0}; static PyObject *__pyx_int_0; static PyObject *__pyx_int_1; -static PyObject *__pyx_int_33; +static PyObject *__pyx_int_34; static PyObject *__pyx_int_160; static PyObject *__pyx_int_19394913; static PyObject *__pyx_int_64458794; @@ -6789,8 +6789,8 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_4set_additional_threa * thread.additional_info = additional_info * * return additional_info # <<<<<<<<<<<<<< - * import dis * import linecache + * import os.path */ __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_additional_info)) { __Pyx_RaiseUnboundLocalError("additional_info"); __PYX_ERR(0, 173, __pyx_L1_error) } @@ -6824,7 +6824,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_4set_additional_threa return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":208 +/* "_pydevd_bundle/pydevd_cython.pyx":207 * from _pydevd_bundle.pydevd_signature import send_signature_call_trace, send_signature_return_trace * except ImportError: * def send_signature_call_trace(*args, **kwargs): # <<<<<<<<<<<<<< @@ -6865,7 +6865,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_6send_signature_call_ return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":220 +/* "_pydevd_bundle/pydevd_cython.pyx":219 * * * def handle_breakpoint_condition(py_db, info, breakpoint, new_frame): # <<<<<<<<<<<<<< @@ -6914,23 +6914,23 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9handle_breakpoint_co case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_info)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("handle_breakpoint_condition", 1, 4, 4, 1); __PYX_ERR(0, 220, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("handle_breakpoint_condition", 1, 4, 4, 1); __PYX_ERR(0, 219, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_breakpoint)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("handle_breakpoint_condition", 1, 4, 4, 2); __PYX_ERR(0, 220, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("handle_breakpoint_condition", 1, 4, 4, 2); __PYX_ERR(0, 219, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_new_frame)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("handle_breakpoint_condition", 1, 4, 4, 3); __PYX_ERR(0, 220, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("handle_breakpoint_condition", 1, 4, 4, 3); __PYX_ERR(0, 219, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "handle_breakpoint_condition") < 0)) __PYX_ERR(0, 220, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "handle_breakpoint_condition") < 0)) __PYX_ERR(0, 219, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { goto __pyx_L5_argtuple_error; @@ -6947,7 +6947,7 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9handle_breakpoint_co } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("handle_breakpoint_condition", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 220, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("handle_breakpoint_condition", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 219, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.handle_breakpoint_condition", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -6996,19 +6996,19 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co int __pyx_clineno = 0; __Pyx_RefNannySetupContext("handle_breakpoint_condition", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":221 + /* "_pydevd_bundle/pydevd_cython.pyx":220 * * def handle_breakpoint_condition(py_db, info, breakpoint, new_frame): * condition = breakpoint.condition # <<<<<<<<<<<<<< * try: * if breakpoint.handle_hit_condition(new_frame): */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_breakpoint, __pyx_n_s_condition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 221, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_breakpoint, __pyx_n_s_condition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_condition = __pyx_t_1; __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":222 + /* "_pydevd_bundle/pydevd_cython.pyx":221 * def handle_breakpoint_condition(py_db, info, breakpoint, new_frame): * condition = breakpoint.condition * try: # <<<<<<<<<<<<<< @@ -7025,14 +7025,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":223 + /* "_pydevd_bundle/pydevd_cython.pyx":222 * condition = breakpoint.condition * try: * if breakpoint.handle_hit_condition(new_frame): # <<<<<<<<<<<<<< * return True * */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_breakpoint, __pyx_n_s_handle_hit_condition); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 223, __pyx_L6_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_breakpoint, __pyx_n_s_handle_hit_condition); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 222, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { @@ -7046,14 +7046,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co } __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_v_new_frame) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_new_frame); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 223, __pyx_L6_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 222, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 223, __pyx_L6_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 222, __pyx_L6_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_7) { - /* "_pydevd_bundle/pydevd_cython.pyx":224 + /* "_pydevd_bundle/pydevd_cython.pyx":223 * try: * if breakpoint.handle_hit_condition(new_frame): * return True # <<<<<<<<<<<<<< @@ -7065,7 +7065,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co __pyx_r = Py_True; goto __pyx_L10_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":223 + /* "_pydevd_bundle/pydevd_cython.pyx":222 * condition = breakpoint.condition * try: * if breakpoint.handle_hit_condition(new_frame): # <<<<<<<<<<<<<< @@ -7074,7 +7074,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co */ } - /* "_pydevd_bundle/pydevd_cython.pyx":226 + /* "_pydevd_bundle/pydevd_cython.pyx":225 * return True * * if condition is None: # <<<<<<<<<<<<<< @@ -7085,7 +7085,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co __pyx_t_8 = (__pyx_t_7 != 0); if (__pyx_t_8) { - /* "_pydevd_bundle/pydevd_cython.pyx":227 + /* "_pydevd_bundle/pydevd_cython.pyx":226 * * if condition is None: * return False # <<<<<<<<<<<<<< @@ -7097,7 +7097,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co __pyx_r = Py_False; goto __pyx_L10_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":226 + /* "_pydevd_bundle/pydevd_cython.pyx":225 * return True * * if condition is None: # <<<<<<<<<<<<<< @@ -7106,7 +7106,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co */ } - /* "_pydevd_bundle/pydevd_cython.pyx":229 + /* "_pydevd_bundle/pydevd_cython.pyx":228 * return False * * return eval(condition, new_frame.f_globals, new_frame.f_locals) # <<<<<<<<<<<<<< @@ -7114,11 +7114,11 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co * if IS_PY2: */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_new_frame, __pyx_n_s_f_globals); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 229, __pyx_L6_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_new_frame, __pyx_n_s_f_globals); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 228, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_new_frame, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 229, __pyx_L6_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_new_frame, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 228, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 229, __pyx_L6_error) + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 228, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_v_condition); __Pyx_GIVEREF(__pyx_v_condition); @@ -7129,14 +7129,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5); __pyx_t_1 = 0; __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_eval, __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 229, __pyx_L6_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_eval, __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 228, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L10_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":222 + /* "_pydevd_bundle/pydevd_cython.pyx":221 * def handle_breakpoint_condition(py_db, info, breakpoint, new_frame): * condition = breakpoint.condition * try: # <<<<<<<<<<<<<< @@ -7149,7 +7149,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":230 + /* "_pydevd_bundle/pydevd_cython.pyx":229 * * return eval(condition, new_frame.f_globals, new_frame.f_locals) * except Exception as e: # <<<<<<<<<<<<<< @@ -7159,27 +7159,27 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_9) { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.handle_breakpoint_condition", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_1) < 0) __PYX_ERR(0, 230, __pyx_L8_except_error) + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_1) < 0) __PYX_ERR(0, 229, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_6); __pyx_v_e = __pyx_t_6; - /* "_pydevd_bundle/pydevd_cython.pyx":231 + /* "_pydevd_bundle/pydevd_cython.pyx":230 * return eval(condition, new_frame.f_globals, new_frame.f_locals) * except Exception as e: * if IS_PY2: # <<<<<<<<<<<<<< * # Must be bytes on py2. * if isinstance(condition, unicode): */ - __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_IS_PY2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 231, __pyx_L8_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_IS_PY2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 230, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 231, __pyx_L8_except_error) + __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 230, __pyx_L8_except_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (__pyx_t_8) { - /* "_pydevd_bundle/pydevd_cython.pyx":233 + /* "_pydevd_bundle/pydevd_cython.pyx":232 * if IS_PY2: * # Must be bytes on py2. * if isinstance(condition, unicode): # <<<<<<<<<<<<<< @@ -7190,14 +7190,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co __pyx_t_7 = (__pyx_t_8 != 0); if (__pyx_t_7) { - /* "_pydevd_bundle/pydevd_cython.pyx":234 + /* "_pydevd_bundle/pydevd_cython.pyx":233 * # Must be bytes on py2. * if isinstance(condition, unicode): * condition = condition.encode('utf-8') # <<<<<<<<<<<<<< * * if not isinstance(e, py_db.skip_print_breakpoint_exception): */ - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_condition, __pyx_n_s_encode); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 234, __pyx_L8_except_error) + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_condition, __pyx_n_s_encode); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 233, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) { @@ -7211,13 +7211,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co } __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s_utf_8) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s_utf_8); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 234, __pyx_L8_except_error) + if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 233, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF_SET(__pyx_v_condition, __pyx_t_10); __pyx_t_10 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":233 + /* "_pydevd_bundle/pydevd_cython.pyx":232 * if IS_PY2: * # Must be bytes on py2. * if isinstance(condition, unicode): # <<<<<<<<<<<<<< @@ -7226,7 +7226,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co */ } - /* "_pydevd_bundle/pydevd_cython.pyx":231 + /* "_pydevd_bundle/pydevd_cython.pyx":230 * return eval(condition, new_frame.f_globals, new_frame.f_locals) * except Exception as e: * if IS_PY2: # <<<<<<<<<<<<<< @@ -7235,41 +7235,41 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co */ } - /* "_pydevd_bundle/pydevd_cython.pyx":236 + /* "_pydevd_bundle/pydevd_cython.pyx":235 * condition = condition.encode('utf-8') * * if not isinstance(e, py_db.skip_print_breakpoint_exception): # <<<<<<<<<<<<<< * sys.stderr.write('Error while evaluating expression: %s\n' % (condition,)) * */ - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_skip_print_breakpoint_exception); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 236, __pyx_L8_except_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_skip_print_breakpoint_exception); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 235, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_7 = PyObject_IsInstance(__pyx_v_e, __pyx_t_10); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 236, __pyx_L8_except_error) + __pyx_t_7 = PyObject_IsInstance(__pyx_v_e, __pyx_t_10); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 235, __pyx_L8_except_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_8 = ((!(__pyx_t_7 != 0)) != 0); if (__pyx_t_8) { - /* "_pydevd_bundle/pydevd_cython.pyx":237 + /* "_pydevd_bundle/pydevd_cython.pyx":236 * * if not isinstance(e, py_db.skip_print_breakpoint_exception): * sys.stderr.write('Error while evaluating expression: %s\n' % (condition,)) # <<<<<<<<<<<<<< * * etype, value, tb = sys.exc_info() */ - __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_sys); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 237, __pyx_L8_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_sys); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 236, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_stderr); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 237, __pyx_L8_except_error) + __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_stderr); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 236, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_write); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 237, __pyx_L8_except_error) + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_write); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 236, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 237, __pyx_L8_except_error) + __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 236, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_INCREF(__pyx_v_condition); __Pyx_GIVEREF(__pyx_v_condition); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_v_condition); - __pyx_t_13 = __Pyx_PyString_Format(__pyx_kp_s_Error_while_evaluating_expressio, __pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 237, __pyx_L8_except_error) + __pyx_t_13 = __Pyx_PyString_Format(__pyx_kp_s_Error_while_evaluating_expressio, __pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 236, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = NULL; @@ -7285,21 +7285,21 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_t_13) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_13); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 237, __pyx_L8_except_error) + if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 236, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":239 + /* "_pydevd_bundle/pydevd_cython.pyx":238 * sys.stderr.write('Error while evaluating expression: %s\n' % (condition,)) * * etype, value, tb = sys.exc_info() # <<<<<<<<<<<<<< * traceback.print_exception(etype, value, tb.tb_next) * */ - __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_sys); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 239, __pyx_L8_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_sys); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 238, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_exc_info); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 239, __pyx_L8_except_error) + __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_exc_info); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 238, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; @@ -7314,7 +7314,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co } __pyx_t_10 = (__pyx_t_11) ? __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_t_11) : __Pyx_PyObject_CallNoArg(__pyx_t_13); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 239, __pyx_L8_except_error) + if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 238, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_10))) || (PyList_CheckExact(__pyx_t_10))) { @@ -7323,7 +7323,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 239, __pyx_L8_except_error) + __PYX_ERR(0, 238, __pyx_L8_except_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -7339,17 +7339,17 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(__pyx_t_12); #else - __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 239, __pyx_L8_except_error) + __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 238, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_11 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 239, __pyx_L8_except_error) + __pyx_t_11 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 238, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_12 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 239, __pyx_L8_except_error) + __pyx_t_12 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 238, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_12); #endif __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else { Py_ssize_t index = -1; - __pyx_t_14 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 239, __pyx_L8_except_error) + __pyx_t_14 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 238, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_15 = Py_TYPE(__pyx_t_14)->tp_iternext; @@ -7359,7 +7359,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co __Pyx_GOTREF(__pyx_t_11); index = 2; __pyx_t_12 = __pyx_t_15(__pyx_t_14); if (unlikely(!__pyx_t_12)) goto __pyx_L19_unpacking_failed; __Pyx_GOTREF(__pyx_t_12); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_14), 3) < 0) __PYX_ERR(0, 239, __pyx_L8_except_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_14), 3) < 0) __PYX_ERR(0, 238, __pyx_L8_except_error) __pyx_t_15 = NULL; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; goto __pyx_L20_unpacking_done; @@ -7367,7 +7367,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_15 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 239, __pyx_L8_except_error) + __PYX_ERR(0, 238, __pyx_L8_except_error) __pyx_L20_unpacking_done:; } __pyx_v_etype = __pyx_t_13; @@ -7377,19 +7377,19 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co __pyx_v_tb = __pyx_t_12; __pyx_t_12 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":240 + /* "_pydevd_bundle/pydevd_cython.pyx":239 * * etype, value, tb = sys.exc_info() * traceback.print_exception(etype, value, tb.tb_next) # <<<<<<<<<<<<<< * * if not isinstance(e, py_db.skip_suspend_on_breakpoint_exception): */ - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_traceback); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 240, __pyx_L8_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_traceback); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 239, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_print_exception); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 240, __pyx_L8_except_error) + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_print_exception); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 239, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_tb, __pyx_n_s_tb_next); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 240, __pyx_L8_except_error) + __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_tb, __pyx_n_s_tb_next); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 239, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_13 = NULL; __pyx_t_9 = 0; @@ -7406,7 +7406,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_11)) { PyObject *__pyx_temp[4] = {__pyx_t_13, __pyx_v_etype, __pyx_v_value, __pyx_t_12}; - __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 240, __pyx_L8_except_error) + __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 239, __pyx_L8_except_error) __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; @@ -7415,14 +7415,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_11)) { PyObject *__pyx_temp[4] = {__pyx_t_13, __pyx_v_etype, __pyx_v_value, __pyx_t_12}; - __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 240, __pyx_L8_except_error) + __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 239, __pyx_L8_except_error) __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif { - __pyx_t_14 = PyTuple_New(3+__pyx_t_9); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 240, __pyx_L8_except_error) + __pyx_t_14 = PyTuple_New(3+__pyx_t_9); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 239, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_14); if (__pyx_t_13) { __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_13); __pyx_t_13 = NULL; @@ -7436,14 +7436,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_9, __pyx_t_12); __pyx_t_12 = 0; - __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_14, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 240, __pyx_L8_except_error) + __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_14, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 239, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":236 + /* "_pydevd_bundle/pydevd_cython.pyx":235 * condition = condition.encode('utf-8') * * if not isinstance(e, py_db.skip_print_breakpoint_exception): # <<<<<<<<<<<<<< @@ -7452,21 +7452,21 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co */ } - /* "_pydevd_bundle/pydevd_cython.pyx":242 + /* "_pydevd_bundle/pydevd_cython.pyx":241 * traceback.print_exception(etype, value, tb.tb_next) * * if not isinstance(e, py_db.skip_suspend_on_breakpoint_exception): # <<<<<<<<<<<<<< * try: * # add exception_type and stacktrace into thread additional info */ - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_skip_suspend_on_breakpoint_excep); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 242, __pyx_L8_except_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_skip_suspend_on_breakpoint_excep); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 241, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_8 = PyObject_IsInstance(__pyx_v_e, __pyx_t_10); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 242, __pyx_L8_except_error) + __pyx_t_8 = PyObject_IsInstance(__pyx_v_e, __pyx_t_10); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 241, __pyx_L8_except_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_7 = ((!(__pyx_t_8 != 0)) != 0); if (__pyx_t_7) { - /* "_pydevd_bundle/pydevd_cython.pyx":243 + /* "_pydevd_bundle/pydevd_cython.pyx":242 * * if not isinstance(e, py_db.skip_suspend_on_breakpoint_exception): * try: # <<<<<<<<<<<<<< @@ -7482,16 +7482,16 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co __Pyx_XGOTREF(__pyx_t_18); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":245 + /* "_pydevd_bundle/pydevd_cython.pyx":244 * try: * # add exception_type and stacktrace into thread additional info * etype, value, tb = sys.exc_info() # <<<<<<<<<<<<<< * error = ''.join(traceback.format_exception_only(etype, value)) * stack = traceback.extract_stack(f=tb.tb_frame.f_back) */ - __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_sys); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 245, __pyx_L22_error) + __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_sys); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 244, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_exc_info); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 245, __pyx_L22_error) + __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_exc_info); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 244, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; @@ -7506,7 +7506,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co } __pyx_t_10 = (__pyx_t_11) ? __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_11) : __Pyx_PyObject_CallNoArg(__pyx_t_14); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 245, __pyx_L22_error) + if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 244, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_10))) || (PyList_CheckExact(__pyx_t_10))) { @@ -7515,7 +7515,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 245, __pyx_L22_error) + __PYX_ERR(0, 244, __pyx_L22_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -7531,17 +7531,17 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(__pyx_t_12); #else - __pyx_t_14 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 245, __pyx_L22_error) + __pyx_t_14 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 244, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_14); - __pyx_t_11 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 245, __pyx_L22_error) + __pyx_t_11 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 244, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_12 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 245, __pyx_L22_error) + __pyx_t_12 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 244, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); #endif __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else { Py_ssize_t index = -1; - __pyx_t_13 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 245, __pyx_L22_error) + __pyx_t_13 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 244, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_15 = Py_TYPE(__pyx_t_13)->tp_iternext; @@ -7551,7 +7551,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co __Pyx_GOTREF(__pyx_t_11); index = 2; __pyx_t_12 = __pyx_t_15(__pyx_t_13); if (unlikely(!__pyx_t_12)) goto __pyx_L30_unpacking_failed; __Pyx_GOTREF(__pyx_t_12); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_13), 3) < 0) __PYX_ERR(0, 245, __pyx_L22_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_13), 3) < 0) __PYX_ERR(0, 244, __pyx_L22_error) __pyx_t_15 = NULL; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; goto __pyx_L31_unpacking_done; @@ -7559,7 +7559,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_15 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 245, __pyx_L22_error) + __PYX_ERR(0, 244, __pyx_L22_error) __pyx_L31_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_etype, __pyx_t_14); @@ -7569,16 +7569,16 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co __Pyx_XDECREF_SET(__pyx_v_tb, __pyx_t_12); __pyx_t_12 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":246 + /* "_pydevd_bundle/pydevd_cython.pyx":245 * # add exception_type and stacktrace into thread additional info * etype, value, tb = sys.exc_info() * error = ''.join(traceback.format_exception_only(etype, value)) # <<<<<<<<<<<<<< * stack = traceback.extract_stack(f=tb.tb_frame.f_back) * */ - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_traceback); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 246, __pyx_L22_error) + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_traceback); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 245, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_format_exception_only); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 246, __pyx_L22_error) + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_format_exception_only); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 245, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = NULL; @@ -7596,7 +7596,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_11)) { PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_v_etype, __pyx_v_value}; - __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 246, __pyx_L22_error) + __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 245, __pyx_L22_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_10); } else @@ -7604,13 +7604,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_11)) { PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_v_etype, __pyx_v_value}; - __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 246, __pyx_L22_error) + __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 245, __pyx_L22_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_10); } else #endif { - __pyx_t_14 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 246, __pyx_L22_error) + __pyx_t_14 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 245, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_14); if (__pyx_t_12) { __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_12); __pyx_t_12 = NULL; @@ -7621,61 +7621,61 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_9, __pyx_v_value); - __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_14, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 246, __pyx_L22_error) + __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_14, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 245, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_PyString_Join(__pyx_kp_s_, __pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 246, __pyx_L22_error) + __pyx_t_11 = __Pyx_PyString_Join(__pyx_kp_s_, __pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 245, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_v_error = ((PyObject*)__pyx_t_11); __pyx_t_11 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":247 + /* "_pydevd_bundle/pydevd_cython.pyx":246 * etype, value, tb = sys.exc_info() * error = ''.join(traceback.format_exception_only(etype, value)) * stack = traceback.extract_stack(f=tb.tb_frame.f_back) # <<<<<<<<<<<<<< * * # On self.set_suspend(thread, CMD_SET_BREAK) this info will be */ - __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_traceback); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 247, __pyx_L22_error) + __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_traceback); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 246, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_extract_stack); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 247, __pyx_L22_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_extract_stack); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 246, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 247, __pyx_L22_error) + __pyx_t_11 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 246, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_tb, __pyx_n_s_tb_frame); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 247, __pyx_L22_error) + __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_tb, __pyx_n_s_tb_frame); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 246, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_14); - __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_f_back); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 247, __pyx_L22_error) + __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_f_back); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 246, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_f, __pyx_t_12) < 0) __PYX_ERR(0, 247, __pyx_L22_error) + if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_f, __pyx_t_12) < 0) __PYX_ERR(0, 246, __pyx_L22_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_empty_tuple, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 247, __pyx_L22_error) + __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_empty_tuple, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 246, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_v_stack = __pyx_t_12; __pyx_t_12 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":252 + /* "_pydevd_bundle/pydevd_cython.pyx":251 * # sent to the client. * info.conditional_breakpoint_exception = \ * ('Condition:\n' + condition + '\n\nError:\n' + error, stack) # <<<<<<<<<<<<<< * except: * traceback.print_exc() */ - __pyx_t_12 = PyNumber_Add(__pyx_kp_s_Condition, __pyx_v_condition); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 252, __pyx_L22_error) + __pyx_t_12 = PyNumber_Add(__pyx_kp_s_Condition, __pyx_v_condition); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 251, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_11 = PyNumber_Add(__pyx_t_12, __pyx_kp_s_Error); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 252, __pyx_L22_error) + __pyx_t_11 = PyNumber_Add(__pyx_t_12, __pyx_kp_s_Error); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 251, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = PyNumber_Add(__pyx_t_11, __pyx_v_error); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 252, __pyx_L22_error) + __pyx_t_12 = PyNumber_Add(__pyx_t_11, __pyx_v_error); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 251, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 252, __pyx_L22_error) + __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 251, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12); @@ -7684,17 +7684,17 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_v_stack); __pyx_t_12 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":251 + /* "_pydevd_bundle/pydevd_cython.pyx":250 * # On self.set_suspend(thread, CMD_SET_BREAK) this info will be * # sent to the client. * info.conditional_breakpoint_exception = \ # <<<<<<<<<<<<<< * ('Condition:\n' + condition + '\n\nError:\n' + error, stack) * except: */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_info, __pyx_n_s_conditional_breakpoint_exception, __pyx_t_11) < 0) __PYX_ERR(0, 251, __pyx_L22_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_info, __pyx_n_s_conditional_breakpoint_exception, __pyx_t_11) < 0) __PYX_ERR(0, 250, __pyx_L22_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":243 + /* "_pydevd_bundle/pydevd_cython.pyx":242 * * if not isinstance(e, py_db.skip_suspend_on_breakpoint_exception): * try: # <<<<<<<<<<<<<< @@ -7713,7 +7713,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":253 + /* "_pydevd_bundle/pydevd_cython.pyx":252 * info.conditional_breakpoint_exception = \ * ('Condition:\n' + condition + '\n\nError:\n' + error, stack) * except: # <<<<<<<<<<<<<< @@ -7722,21 +7722,21 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.handle_breakpoint_condition", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_12, &__pyx_t_10) < 0) __PYX_ERR(0, 253, __pyx_L24_except_error) + if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_12, &__pyx_t_10) < 0) __PYX_ERR(0, 252, __pyx_L24_except_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_GOTREF(__pyx_t_12); __Pyx_GOTREF(__pyx_t_10); - /* "_pydevd_bundle/pydevd_cython.pyx":254 + /* "_pydevd_bundle/pydevd_cython.pyx":253 * ('Condition:\n' + condition + '\n\nError:\n' + error, stack) * except: * traceback.print_exc() # <<<<<<<<<<<<<< * return True * */ - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_traceback); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 254, __pyx_L24_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_traceback); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 253, __pyx_L24_except_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 254, __pyx_L24_except_error) + __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 253, __pyx_L24_except_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = NULL; @@ -7751,7 +7751,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co } __pyx_t_14 = (__pyx_t_13) ? __Pyx_PyObject_CallOneArg(__pyx_t_19, __pyx_t_13) : __Pyx_PyObject_CallNoArg(__pyx_t_19); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 254, __pyx_L24_except_error) + if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 253, __pyx_L24_except_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; @@ -7762,7 +7762,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co } __pyx_L24_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":243 + /* "_pydevd_bundle/pydevd_cython.pyx":242 * * if not isinstance(e, py_db.skip_suspend_on_breakpoint_exception): * try: # <<<<<<<<<<<<<< @@ -7782,7 +7782,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co __pyx_L29_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":255 + /* "_pydevd_bundle/pydevd_cython.pyx":254 * except: * traceback.print_exc() * return True # <<<<<<<<<<<<<< @@ -7797,7 +7797,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L9_except_return; - /* "_pydevd_bundle/pydevd_cython.pyx":242 + /* "_pydevd_bundle/pydevd_cython.pyx":241 * traceback.print_exception(etype, value, tb.tb_next) * * if not isinstance(e, py_db.skip_suspend_on_breakpoint_exception): # <<<<<<<<<<<<<< @@ -7806,7 +7806,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co */ } - /* "_pydevd_bundle/pydevd_cython.pyx":257 + /* "_pydevd_bundle/pydevd_cython.pyx":256 * return True * * return False # <<<<<<<<<<<<<< @@ -7824,7 +7824,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co goto __pyx_L8_except_error; __pyx_L8_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":222 + /* "_pydevd_bundle/pydevd_cython.pyx":221 * def handle_breakpoint_condition(py_db, info, breakpoint, new_frame): * condition = breakpoint.condition * try: # <<<<<<<<<<<<<< @@ -7851,7 +7851,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co } } - /* "_pydevd_bundle/pydevd_cython.pyx":260 + /* "_pydevd_bundle/pydevd_cython.pyx":259 * * finally: * etype, value, tb = None, None, None # <<<<<<<<<<<<<< @@ -7931,7 +7931,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co } } - /* "_pydevd_bundle/pydevd_cython.pyx":220 + /* "_pydevd_bundle/pydevd_cython.pyx":219 * * * def handle_breakpoint_condition(py_db, info, breakpoint, new_frame): # <<<<<<<<<<<<<< @@ -7965,7 +7965,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_8handle_breakpoint_co return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":263 +/* "_pydevd_bundle/pydevd_cython.pyx":262 * * * def handle_breakpoint_expression(breakpoint, info, new_frame): # <<<<<<<<<<<<<< @@ -8011,17 +8011,17 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_11handle_breakpoint_e case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_info)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("handle_breakpoint_expression", 1, 3, 3, 1); __PYX_ERR(0, 263, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("handle_breakpoint_expression", 1, 3, 3, 1); __PYX_ERR(0, 262, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_new_frame)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("handle_breakpoint_expression", 1, 3, 3, 2); __PYX_ERR(0, 263, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("handle_breakpoint_expression", 1, 3, 3, 2); __PYX_ERR(0, 262, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "handle_breakpoint_expression") < 0)) __PYX_ERR(0, 263, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "handle_breakpoint_expression") < 0)) __PYX_ERR(0, 262, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; @@ -8036,7 +8036,7 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_11handle_breakpoint_e } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("handle_breakpoint_expression", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 263, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("handle_breakpoint_expression", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 262, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.handle_breakpoint_expression", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -8075,7 +8075,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_10handle_breakpoint_e int __pyx_clineno = 0; __Pyx_RefNannySetupContext("handle_breakpoint_expression", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":264 + /* "_pydevd_bundle/pydevd_cython.pyx":263 * * def handle_breakpoint_expression(breakpoint, info, new_frame): * try: # <<<<<<<<<<<<<< @@ -8084,7 +8084,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_10handle_breakpoint_e */ /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":265 + /* "_pydevd_bundle/pydevd_cython.pyx":264 * def handle_breakpoint_expression(breakpoint, info, new_frame): * try: * try: # <<<<<<<<<<<<<< @@ -8100,20 +8100,20 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_10handle_breakpoint_e __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":266 + /* "_pydevd_bundle/pydevd_cython.pyx":265 * try: * try: * val = eval(breakpoint.expression, new_frame.f_globals, new_frame.f_locals) # <<<<<<<<<<<<<< * except: * val = sys.exc_info()[1] */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_breakpoint, __pyx_n_s_expression); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 266, __pyx_L6_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_breakpoint, __pyx_n_s_expression); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 265, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_new_frame, __pyx_n_s_f_globals); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 266, __pyx_L6_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_new_frame, __pyx_n_s_f_globals); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 265, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_new_frame, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 266, __pyx_L6_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_new_frame, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 265, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 266, __pyx_L6_error) + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 265, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); @@ -8124,13 +8124,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_10handle_breakpoint_e __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_eval, __pyx_t_7, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 266, __pyx_L6_error) + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_eval, __pyx_t_7, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 265, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_val = __pyx_t_6; __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":265 + /* "_pydevd_bundle/pydevd_cython.pyx":264 * def handle_breakpoint_expression(breakpoint, info, new_frame): * try: * try: # <<<<<<<<<<<<<< @@ -8148,7 +8148,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_10handle_breakpoint_e __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":267 + /* "_pydevd_bundle/pydevd_cython.pyx":266 * try: * val = eval(breakpoint.expression, new_frame.f_globals, new_frame.f_locals) * except: # <<<<<<<<<<<<<< @@ -8157,21 +8157,21 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_10handle_breakpoint_e */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.handle_breakpoint_expression", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_5) < 0) __PYX_ERR(0, 267, __pyx_L8_except_error) + if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_5) < 0) __PYX_ERR(0, 266, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); __Pyx_GOTREF(__pyx_t_5); - /* "_pydevd_bundle/pydevd_cython.pyx":268 + /* "_pydevd_bundle/pydevd_cython.pyx":267 * val = eval(breakpoint.expression, new_frame.f_globals, new_frame.f_locals) * except: * val = sys.exc_info()[1] # <<<<<<<<<<<<<< * finally: * if val is not None: */ - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_sys); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 268, __pyx_L8_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_sys); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 267, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_exc_info); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 268, __pyx_L8_except_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_exc_info); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 267, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; @@ -8186,10 +8186,10 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_10handle_breakpoint_e } __pyx_t_4 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_9); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 268, __pyx_L8_except_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 267, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_4, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 268, __pyx_L8_except_error) + __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_4, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 267, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF_SET(__pyx_v_val, __pyx_t_9); @@ -8201,7 +8201,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_10handle_breakpoint_e } __pyx_L8_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":265 + /* "_pydevd_bundle/pydevd_cython.pyx":264 * def handle_breakpoint_expression(breakpoint, info, new_frame): * try: * try: # <<<<<<<<<<<<<< @@ -8222,7 +8222,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_10handle_breakpoint_e } } - /* "_pydevd_bundle/pydevd_cython.pyx":270 + /* "_pydevd_bundle/pydevd_cython.pyx":269 * val = sys.exc_info()[1] * finally: * if val is not None: # <<<<<<<<<<<<<< @@ -8235,19 +8235,19 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_10handle_breakpoint_e __pyx_t_11 = (__pyx_t_10 != 0); if (__pyx_t_11) { - /* "_pydevd_bundle/pydevd_cython.pyx":271 + /* "_pydevd_bundle/pydevd_cython.pyx":270 * finally: * if val is not None: * info.pydev_message = str(val) # <<<<<<<<<<<<<< * * */ - __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_v_val); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 271, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_v_val); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_info, __pyx_n_s_pydev_message, __pyx_t_5) < 0) __PYX_ERR(0, 271, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_info, __pyx_n_s_pydev_message, __pyx_t_5) < 0) __PYX_ERR(0, 270, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":270 + /* "_pydevd_bundle/pydevd_cython.pyx":269 * val = sys.exc_info()[1] * finally: * if val is not None: # <<<<<<<<<<<<<< @@ -8278,25 +8278,25 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_10handle_breakpoint_e __Pyx_XGOTREF(__pyx_t_17); __pyx_t_12 = __pyx_lineno; __pyx_t_13 = __pyx_clineno; __pyx_t_14 = __pyx_filename; { - if (unlikely(!__pyx_v_val)) { __Pyx_RaiseUnboundLocalError("val"); __PYX_ERR(0, 270, __pyx_L16_error) } + if (unlikely(!__pyx_v_val)) { __Pyx_RaiseUnboundLocalError("val"); __PYX_ERR(0, 269, __pyx_L16_error) } __pyx_t_11 = (__pyx_v_val != Py_None); __pyx_t_10 = (__pyx_t_11 != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":271 + /* "_pydevd_bundle/pydevd_cython.pyx":270 * finally: * if val is not None: * info.pydev_message = str(val) # <<<<<<<<<<<<<< * * */ - if (unlikely(!__pyx_v_val)) { __Pyx_RaiseUnboundLocalError("val"); __PYX_ERR(0, 271, __pyx_L16_error) } - __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_v_val); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 271, __pyx_L16_error) + if (unlikely(!__pyx_v_val)) { __Pyx_RaiseUnboundLocalError("val"); __PYX_ERR(0, 270, __pyx_L16_error) } + __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_v_val); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 270, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_5); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_info, __pyx_n_s_pydev_message, __pyx_t_5) < 0) __PYX_ERR(0, 271, __pyx_L16_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_info, __pyx_n_s_pydev_message, __pyx_t_5) < 0) __PYX_ERR(0, 270, __pyx_L16_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":270 + /* "_pydevd_bundle/pydevd_cython.pyx":269 * val = sys.exc_info()[1] * finally: * if val is not None: # <<<<<<<<<<<<<< @@ -8334,7 +8334,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_10handle_breakpoint_e __pyx_L5:; } - /* "_pydevd_bundle/pydevd_cython.pyx":263 + /* "_pydevd_bundle/pydevd_cython.pyx":262 * * * def handle_breakpoint_expression(breakpoint, info, new_frame): # <<<<<<<<<<<<<< @@ -8361,7 +8361,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_10handle_breakpoint_e return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":299 +/* "_pydevd_bundle/pydevd_cython.pyx":298 * cdef int _bytecode_offset * cdef list _instructions * def __init__(self, tuple args): # <<<<<<<<<<<<<< @@ -8398,7 +8398,7 @@ static int __pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_1__init__(PyObje else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 299, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 298, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; @@ -8409,13 +8409,13 @@ static int __pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_1__init__(PyObje } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 299, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 298, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(0, 299, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(0, 298, __pyx_L1_error) __pyx_r = __pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame___init__(((struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *)__pyx_v_self), __pyx_v_args); /* function exit code */ @@ -8432,7 +8432,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame___init__(struct __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":300 + /* "_pydevd_bundle/pydevd_cython.pyx":299 * cdef list _instructions * def __init__(self, tuple args): * self._args = args # In the cython version we don't need to pass the frame # <<<<<<<<<<<<<< @@ -8445,7 +8445,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame___init__(struct __Pyx_DECREF(__pyx_v_self->_args); __pyx_v_self->_args = __pyx_v_args; - /* "_pydevd_bundle/pydevd_cython.pyx":301 + /* "_pydevd_bundle/pydevd_cython.pyx":300 * def __init__(self, tuple args): * self._args = args # In the cython version we don't need to pass the frame * self.should_skip = -1 # On cythonized version, put in instance. # <<<<<<<<<<<<<< @@ -8454,7 +8454,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame___init__(struct */ __pyx_v_self->should_skip = -1; - /* "_pydevd_bundle/pydevd_cython.pyx":302 + /* "_pydevd_bundle/pydevd_cython.pyx":301 * self._args = args # In the cython version we don't need to pass the frame * self.should_skip = -1 # On cythonized version, put in instance. * self._bytecode_offset = 0 # <<<<<<<<<<<<<< @@ -8463,7 +8463,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame___init__(struct */ __pyx_v_self->_bytecode_offset = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":303 + /* "_pydevd_bundle/pydevd_cython.pyx":302 * self.should_skip = -1 # On cythonized version, put in instance. * self._bytecode_offset = 0 * self._instructions = None # <<<<<<<<<<<<<< @@ -8476,7 +8476,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame___init__(struct __Pyx_DECREF(__pyx_v_self->_instructions); __pyx_v_self->_instructions = ((PyObject*)Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":299 + /* "_pydevd_bundle/pydevd_cython.pyx":298 * cdef int _bytecode_offset * cdef list _instructions * def __init__(self, tuple args): # <<<<<<<<<<<<<< @@ -8490,7 +8490,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame___init__(struct return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":314 +/* "_pydevd_bundle/pydevd_cython.pyx":313 * # ENDIF * * def set_suspend(self, *args, **kwargs): # <<<<<<<<<<<<<< @@ -8531,7 +8531,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_2set_suspe int __pyx_clineno = 0; __Pyx_RefNannySetupContext("set_suspend", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":315 + /* "_pydevd_bundle/pydevd_cython.pyx":314 * * def set_suspend(self, *args, **kwargs): * self._args[0].set_suspend(*args, **kwargs) # <<<<<<<<<<<<<< @@ -8540,22 +8540,22 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_2set_suspe */ if (unlikely(__pyx_v_self->_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 315, __pyx_L1_error) + __PYX_ERR(0, 314, __pyx_L1_error) } - __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_self->_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 315, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_self->_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_set_suspend); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 315, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_set_suspend); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 315, __pyx_L1_error) + __pyx_t_1 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_v_args, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 315, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_v_args, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":314 + /* "_pydevd_bundle/pydevd_cython.pyx":313 * # ENDIF * * def set_suspend(self, *args, **kwargs): # <<<<<<<<<<<<<< @@ -8578,7 +8578,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_2set_suspe return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":317 +/* "_pydevd_bundle/pydevd_cython.pyx":316 * self._args[0].set_suspend(*args, **kwargs) * * def do_wait_suspend(self, *args, **kwargs): # <<<<<<<<<<<<<< @@ -8619,7 +8619,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_4do_wait_s int __pyx_clineno = 0; __Pyx_RefNannySetupContext("do_wait_suspend", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":318 + /* "_pydevd_bundle/pydevd_cython.pyx":317 * * def do_wait_suspend(self, *args, **kwargs): * self._args[0].do_wait_suspend(*args, **kwargs) # <<<<<<<<<<<<<< @@ -8628,22 +8628,22 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_4do_wait_s */ if (unlikely(__pyx_v_self->_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 318, __pyx_L1_error) + __PYX_ERR(0, 317, __pyx_L1_error) } - __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_self->_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 318, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_self->_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_do_wait_suspend); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 318, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_do_wait_suspend); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 318, __pyx_L1_error) + __pyx_t_1 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_v_args, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 318, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_v_args, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":317 + /* "_pydevd_bundle/pydevd_cython.pyx":316 * self._args[0].set_suspend(*args, **kwargs) * * def do_wait_suspend(self, *args, **kwargs): # <<<<<<<<<<<<<< @@ -8666,7 +8666,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_4do_wait_s return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":321 +/* "_pydevd_bundle/pydevd_cython.pyx":320 * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * def trace_exception(self, frame, str event, arg): # <<<<<<<<<<<<<< @@ -8711,17 +8711,17 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_7trace_exc case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("trace_exception", 1, 3, 3, 1); __PYX_ERR(0, 321, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("trace_exception", 1, 3, 3, 1); __PYX_ERR(0, 320, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("trace_exception", 1, 3, 3, 2); __PYX_ERR(0, 321, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("trace_exception", 1, 3, 3, 2); __PYX_ERR(0, 320, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "trace_exception") < 0)) __PYX_ERR(0, 321, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "trace_exception") < 0)) __PYX_ERR(0, 320, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; @@ -8736,13 +8736,13 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_7trace_exc } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("trace_exception", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 321, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("trace_exception", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 320, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.trace_exception", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_event), (&PyString_Type), 1, "event", 1))) __PYX_ERR(0, 321, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_event), (&PyString_Type), 1, "event", 1))) __PYX_ERR(0, 320, __pyx_L1_error) __pyx_r = __pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_6trace_exception(((struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *)__pyx_v_self), __pyx_v_frame, __pyx_v_event, __pyx_v_arg); /* function exit code */ @@ -8772,25 +8772,25 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_6trace_exc __Pyx_RefNannySetupContext("trace_exception", 0); __Pyx_INCREF(__pyx_v_frame); - /* "_pydevd_bundle/pydevd_cython.pyx":326 + /* "_pydevd_bundle/pydevd_cython.pyx":325 * # def trace_exception(self, frame, event, arg): * # ENDIF * if event == 'exception': # <<<<<<<<<<<<<< * should_stop, frame = self.should_stop_on_exception(frame, event, arg) * */ - __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_exception, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 326, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_exception, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 325, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":327 + /* "_pydevd_bundle/pydevd_cython.pyx":326 * # ENDIF * if event == 'exception': * should_stop, frame = self.should_stop_on_exception(frame, event, arg) # <<<<<<<<<<<<<< * * if should_stop: */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_should_stop_on_exception); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 327, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_should_stop_on_exception); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_6 = 0; @@ -8807,7 +8807,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_6trace_exc #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 327, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 326, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_3); } else @@ -8815,13 +8815,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_6trace_exc #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 327, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 326, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_3); } else #endif { - __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 327, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; @@ -8835,7 +8835,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_6trace_exc __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_arg); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 327, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } @@ -8846,7 +8846,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_6trace_exc if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 327, __pyx_L1_error) + __PYX_ERR(0, 326, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -8859,15 +8859,15 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_6trace_exc __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_7); #else - __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 327, __pyx_L1_error) + __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 327, __pyx_L1_error) + __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { Py_ssize_t index = -1; - __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 327, __pyx_L1_error) + __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_8 = Py_TYPE(__pyx_t_5)->tp_iternext; @@ -8875,7 +8875,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_6trace_exc __Pyx_GOTREF(__pyx_t_4); index = 1; __pyx_t_7 = __pyx_t_8(__pyx_t_5); if (unlikely(!__pyx_t_7)) goto __pyx_L4_unpacking_failed; __Pyx_GOTREF(__pyx_t_7); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_5), 2) < 0) __PYX_ERR(0, 327, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_5), 2) < 0) __PYX_ERR(0, 326, __pyx_L1_error) __pyx_t_8 = NULL; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L5_unpacking_done; @@ -8883,16 +8883,16 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_6trace_exc __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_8 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 327, __pyx_L1_error) + __PYX_ERR(0, 326, __pyx_L1_error) __pyx_L5_unpacking_done:; } - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 327, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 326, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_should_stop = __pyx_t_2; __Pyx_DECREF_SET(__pyx_v_frame, __pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":329 + /* "_pydevd_bundle/pydevd_cython.pyx":328 * should_stop, frame = self.should_stop_on_exception(frame, event, arg) * * if should_stop: # <<<<<<<<<<<<<< @@ -8902,14 +8902,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_6trace_exc __pyx_t_2 = (__pyx_v_should_stop != 0); if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":330 + /* "_pydevd_bundle/pydevd_cython.pyx":329 * * if should_stop: * self.handle_exception(frame, event, arg) # <<<<<<<<<<<<<< * return self.trace_dispatch * */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_handle_exception); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 330, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_handle_exception); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = NULL; __pyx_t_6 = 0; @@ -8926,7 +8926,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_6trace_exc #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 330, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 329, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_3); } else @@ -8934,13 +8934,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_6trace_exc #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 330, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 329, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_3); } else #endif { - __pyx_t_5 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 330, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -8954,14 +8954,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_6trace_exc __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_6, __pyx_v_arg); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 330, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":331 + /* "_pydevd_bundle/pydevd_cython.pyx":330 * if should_stop: * self.handle_exception(frame, event, arg) * return self.trace_dispatch # <<<<<<<<<<<<<< @@ -8969,13 +8969,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_6trace_exc * return self.trace_exception */ __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 331, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":329 + /* "_pydevd_bundle/pydevd_cython.pyx":328 * should_stop, frame = self.should_stop_on_exception(frame, event, arg) * * if should_stop: # <<<<<<<<<<<<<< @@ -8984,7 +8984,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_6trace_exc */ } - /* "_pydevd_bundle/pydevd_cython.pyx":326 + /* "_pydevd_bundle/pydevd_cython.pyx":325 * # def trace_exception(self, frame, event, arg): * # ENDIF * if event == 'exception': # <<<<<<<<<<<<<< @@ -8993,7 +8993,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_6trace_exc */ } - /* "_pydevd_bundle/pydevd_cython.pyx":333 + /* "_pydevd_bundle/pydevd_cython.pyx":332 * return self.trace_dispatch * * return self.trace_exception # <<<<<<<<<<<<<< @@ -9001,13 +9001,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_6trace_exc * def trace_return(self, frame, event, arg): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_exception); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 333, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_exception); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":321 + /* "_pydevd_bundle/pydevd_cython.pyx":320 * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * def trace_exception(self, frame, str event, arg): # <<<<<<<<<<<<<< @@ -9030,7 +9030,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_6trace_exc return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":335 +/* "_pydevd_bundle/pydevd_cython.pyx":334 * return self.trace_exception * * def trace_return(self, frame, event, arg): # <<<<<<<<<<<<<< @@ -9075,17 +9075,17 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_9trace_ret case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("trace_return", 1, 3, 3, 1); __PYX_ERR(0, 335, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("trace_return", 1, 3, 3, 1); __PYX_ERR(0, 334, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("trace_return", 1, 3, 3, 2); __PYX_ERR(0, 335, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("trace_return", 1, 3, 3, 2); __PYX_ERR(0, 334, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "trace_return") < 0)) __PYX_ERR(0, 335, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "trace_return") < 0)) __PYX_ERR(0, 334, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; @@ -9100,7 +9100,7 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_9trace_ret } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("trace_return", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 335, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("trace_return", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 334, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.trace_return", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -9129,17 +9129,17 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_8trace_ret int __pyx_clineno = 0; __Pyx_RefNannySetupContext("trace_return", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":336 + /* "_pydevd_bundle/pydevd_cython.pyx":335 * * def trace_return(self, frame, event, arg): * if event == 'return': # <<<<<<<<<<<<<< * main_debugger, filename = self._args[0], self._args[1] * send_signature_return_trace(main_debugger, frame, filename, arg) */ - __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_return, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 336, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_return, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 335, __pyx_L1_error) if (__pyx_t_1) { - /* "_pydevd_bundle/pydevd_cython.pyx":337 + /* "_pydevd_bundle/pydevd_cython.pyx":336 * def trace_return(self, frame, event, arg): * if event == 'return': * main_debugger, filename = self._args[0], self._args[1] # <<<<<<<<<<<<<< @@ -9148,29 +9148,29 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_8trace_ret */ if (unlikely(__pyx_v_self->_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 337, __pyx_L1_error) + __PYX_ERR(0, 336, __pyx_L1_error) } - __pyx_t_2 = __Pyx_GetItemInt_Tuple(__pyx_v_self->_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 337, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt_Tuple(__pyx_v_self->_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_self->_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 337, __pyx_L1_error) + __PYX_ERR(0, 336, __pyx_L1_error) } - __pyx_t_3 = __Pyx_GetItemInt_Tuple(__pyx_v_self->_args, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 337, __pyx_L1_error) + __pyx_t_3 = __Pyx_GetItemInt_Tuple(__pyx_v_self->_args, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_main_debugger = __pyx_t_2; __pyx_t_2 = 0; __pyx_v_filename = __pyx_t_3; __pyx_t_3 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":338 + /* "_pydevd_bundle/pydevd_cython.pyx":337 * if event == 'return': * main_debugger, filename = self._args[0], self._args[1] * send_signature_return_trace(main_debugger, frame, filename, arg) # <<<<<<<<<<<<<< * return self.trace_return * */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_send_signature_return_trace); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 338, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_send_signature_return_trace); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -9187,7 +9187,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_8trace_ret #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_v_main_debugger, __pyx_v_frame, __pyx_v_filename, __pyx_v_arg}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 338, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 337, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_3); } else @@ -9195,13 +9195,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_8trace_ret #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_v_main_debugger, __pyx_v_frame, __pyx_v_filename, __pyx_v_arg}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 338, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 337, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_3); } else #endif { - __pyx_t_6 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 338, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -9218,14 +9218,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_8trace_ret __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_5, __pyx_v_arg); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 338, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":336 + /* "_pydevd_bundle/pydevd_cython.pyx":335 * * def trace_return(self, frame, event, arg): * if event == 'return': # <<<<<<<<<<<<<< @@ -9234,7 +9234,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_8trace_ret */ } - /* "_pydevd_bundle/pydevd_cython.pyx":339 + /* "_pydevd_bundle/pydevd_cython.pyx":338 * main_debugger, filename = self._args[0], self._args[1] * send_signature_return_trace(main_debugger, frame, filename, arg) * return self.trace_return # <<<<<<<<<<<<<< @@ -9242,13 +9242,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_8trace_ret * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) */ __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_return); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 339, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_return); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":335 + /* "_pydevd_bundle/pydevd_cython.pyx":334 * return self.trace_exception * * def trace_return(self, frame, event, arg): # <<<<<<<<<<<<<< @@ -9272,7 +9272,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_8trace_ret return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":342 +/* "_pydevd_bundle/pydevd_cython.pyx":341 * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * def should_stop_on_exception(self, frame, str event, arg): # <<<<<<<<<<<<<< @@ -9317,17 +9317,17 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_11should_s case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("should_stop_on_exception", 1, 3, 3, 1); __PYX_ERR(0, 342, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("should_stop_on_exception", 1, 3, 3, 1); __PYX_ERR(0, 341, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("should_stop_on_exception", 1, 3, 3, 2); __PYX_ERR(0, 342, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("should_stop_on_exception", 1, 3, 3, 2); __PYX_ERR(0, 341, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "should_stop_on_exception") < 0)) __PYX_ERR(0, 342, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "should_stop_on_exception") < 0)) __PYX_ERR(0, 341, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; @@ -9342,13 +9342,13 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_11should_s } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("should_stop_on_exception", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 342, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("should_stop_on_exception", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 341, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.should_stop_on_exception", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_event), (&PyString_Type), 1, "event", 1))) __PYX_ERR(0, 342, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_event), (&PyString_Type), 1, "event", 1))) __PYX_ERR(0, 341, __pyx_L1_error) __pyx_r = __pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_stop_on_exception(((struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *)__pyx_v_self), __pyx_v_frame, __pyx_v_event, __pyx_v_arg); /* function exit code */ @@ -9393,7 +9393,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __Pyx_RefNannySetupContext("should_stop_on_exception", 0); __Pyx_INCREF(__pyx_v_frame); - /* "_pydevd_bundle/pydevd_cython.pyx":350 + /* "_pydevd_bundle/pydevd_cython.pyx":349 * * # main_debugger, _filename, info, _thread = self._args * main_debugger = self._args[0] # <<<<<<<<<<<<<< @@ -9402,14 +9402,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s */ if (unlikely(__pyx_v_self->_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 350, __pyx_L1_error) + __PYX_ERR(0, 349, __pyx_L1_error) } - __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_self->_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 350, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_self->_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_main_debugger = __pyx_t_1; __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":351 + /* "_pydevd_bundle/pydevd_cython.pyx":350 * # main_debugger, _filename, info, _thread = self._args * main_debugger = self._args[0] * info = self._args[2] # <<<<<<<<<<<<<< @@ -9418,15 +9418,15 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s */ if (unlikely(__pyx_v_self->_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 351, __pyx_L1_error) + __PYX_ERR(0, 350, __pyx_L1_error) } - __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_self->_args, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 351, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_self->_args, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo))))) __PYX_ERR(0, 351, __pyx_L1_error) + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo))))) __PYX_ERR(0, 350, __pyx_L1_error) __pyx_v_info = ((struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo *)__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":352 + /* "_pydevd_bundle/pydevd_cython.pyx":351 * main_debugger = self._args[0] * info = self._args[2] * should_stop = False # <<<<<<<<<<<<<< @@ -9436,7 +9436,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __Pyx_INCREF(Py_False); __pyx_v_should_stop = Py_False; - /* "_pydevd_bundle/pydevd_cython.pyx":355 + /* "_pydevd_bundle/pydevd_cython.pyx":354 * * # STATE_SUSPEND = 2 * if info.pydev_state != 2: # and breakpoint is not None: # <<<<<<<<<<<<<< @@ -9446,7 +9446,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __pyx_t_2 = ((__pyx_v_info->pydev_state != 2) != 0); if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":356 + /* "_pydevd_bundle/pydevd_cython.pyx":355 * # STATE_SUSPEND = 2 * if info.pydev_state != 2: # and breakpoint is not None: * exception, value, trace = arg # <<<<<<<<<<<<<< @@ -9459,7 +9459,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 356, __pyx_L1_error) + __PYX_ERR(0, 355, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -9475,16 +9475,16 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); #else - __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 356, __pyx_L1_error) + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 356, __pyx_L1_error) + __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 356, __pyx_L1_error) + __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { Py_ssize_t index = -1; - __pyx_t_5 = PyObject_GetIter(__pyx_v_arg); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 356, __pyx_L1_error) + __pyx_t_5 = PyObject_GetIter(__pyx_v_arg); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext; index = 0; __pyx_t_1 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_1)) goto __pyx_L4_unpacking_failed; @@ -9493,7 +9493,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __Pyx_GOTREF(__pyx_t_3); index = 2; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L4_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 3) < 0) __PYX_ERR(0, 356, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 3) < 0) __PYX_ERR(0, 355, __pyx_L1_error) __pyx_t_6 = NULL; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L5_unpacking_done; @@ -9501,7 +9501,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 356, __pyx_L1_error) + __PYX_ERR(0, 355, __pyx_L1_error) __pyx_L5_unpacking_done:; } __pyx_v_exception = __pyx_t_1; @@ -9511,7 +9511,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __pyx_v_trace = __pyx_t_4; __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":358 + /* "_pydevd_bundle/pydevd_cython.pyx":357 * exception, value, trace = arg * * if trace is not None and hasattr(trace, 'tb_next'): # <<<<<<<<<<<<<< @@ -9525,30 +9525,30 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __pyx_t_2 = __pyx_t_8; goto __pyx_L7_bool_binop_done; } - __pyx_t_8 = __Pyx_HasAttr(__pyx_v_trace, __pyx_n_s_tb_next); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 358, __pyx_L1_error) + __pyx_t_8 = __Pyx_HasAttr(__pyx_v_trace, __pyx_n_s_tb_next); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 357, __pyx_L1_error) __pyx_t_7 = (__pyx_t_8 != 0); __pyx_t_2 = __pyx_t_7; __pyx_L7_bool_binop_done:; if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":361 + /* "_pydevd_bundle/pydevd_cython.pyx":360 * # on jython trace is None on the first event and it may not have a tb_next. * * exception_breakpoint = get_exception_breakpoint( # <<<<<<<<<<<<<< * exception, main_debugger.break_on_caught_exceptions) * */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_get_exception_breakpoint); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 361, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_get_exception_breakpoint); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 360, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - /* "_pydevd_bundle/pydevd_cython.pyx":362 + /* "_pydevd_bundle/pydevd_cython.pyx":361 * * exception_breakpoint = get_exception_breakpoint( * exception, main_debugger.break_on_caught_exceptions) # <<<<<<<<<<<<<< * * if exception_breakpoint is not None: */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_break_on_caught_exceptions); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 362, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_break_on_caught_exceptions); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 361, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = NULL; __pyx_t_9 = 0; @@ -9565,7 +9565,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_exception, __pyx_t_1}; - __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 361, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 360, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -9574,14 +9574,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_exception, __pyx_t_1}; - __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 361, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 360, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { - __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 361, __pyx_L1_error) + __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 360, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_5); __pyx_t_5 = NULL; @@ -9592,7 +9592,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_10, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 361, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_10, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 360, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } @@ -9600,7 +9600,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __pyx_v_exception_breakpoint = __pyx_t_4; __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":364 + /* "_pydevd_bundle/pydevd_cython.pyx":363 * exception, main_debugger.break_on_caught_exceptions) * * if exception_breakpoint is not None: # <<<<<<<<<<<<<< @@ -9611,30 +9611,30 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __pyx_t_7 = (__pyx_t_2 != 0); if (__pyx_t_7) { - /* "_pydevd_bundle/pydevd_cython.pyx":365 + /* "_pydevd_bundle/pydevd_cython.pyx":364 * * if exception_breakpoint is not None: * if exception_breakpoint.condition is not None: # <<<<<<<<<<<<<< * # Always add exception to frame (must remove later after we proceed). * add_exception_to_frame(frame, (exception, value, trace)) */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_condition); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 365, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_condition); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = (__pyx_t_4 != Py_None); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = (__pyx_t_7 != 0); if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":367 + /* "_pydevd_bundle/pydevd_cython.pyx":366 * if exception_breakpoint.condition is not None: * # Always add exception to frame (must remove later after we proceed). * add_exception_to_frame(frame, (exception, value, trace)) # <<<<<<<<<<<<<< * eval_result = handle_breakpoint_condition(main_debugger, info, exception_breakpoint, frame) * remove_exception_from_frame(frame) */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_add_exception_to_frame); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 367, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_add_exception_to_frame); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 367, __pyx_L1_error) + __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_INCREF(__pyx_v_exception); __Pyx_GIVEREF(__pyx_v_exception); @@ -9660,7 +9660,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_frame, __pyx_t_10}; - __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 367, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 366, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; @@ -9669,14 +9669,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_frame, __pyx_t_10}; - __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 367, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 366, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else #endif { - __pyx_t_5 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 367, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL; @@ -9687,21 +9687,21 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_9, __pyx_t_10); __pyx_t_10 = 0; - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 367, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":368 + /* "_pydevd_bundle/pydevd_cython.pyx":367 * # Always add exception to frame (must remove later after we proceed). * add_exception_to_frame(frame, (exception, value, trace)) * eval_result = handle_breakpoint_condition(main_debugger, info, exception_breakpoint, frame) # <<<<<<<<<<<<<< * remove_exception_from_frame(frame) * if not eval_result: */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_handle_breakpoint_condition); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 368, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_handle_breakpoint_condition); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = NULL; __pyx_t_9 = 0; @@ -9718,7 +9718,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_main_debugger, ((PyObject *)__pyx_v_info), __pyx_v_exception_breakpoint, __pyx_v_frame}; - __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 368, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 367, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_4); } else @@ -9726,13 +9726,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_main_debugger, ((PyObject *)__pyx_v_info), __pyx_v_exception_breakpoint, __pyx_v_frame}; - __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 368, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 367, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif { - __pyx_t_10 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 368, __pyx_L1_error) + __pyx_t_10 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_5); __pyx_t_5 = NULL; @@ -9749,7 +9749,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __Pyx_INCREF(__pyx_v_frame); __Pyx_GIVEREF(__pyx_v_frame); PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_9, __pyx_v_frame); - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_10, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 368, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_10, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } @@ -9757,14 +9757,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __pyx_v_eval_result = __pyx_t_4; __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":369 + /* "_pydevd_bundle/pydevd_cython.pyx":368 * add_exception_to_frame(frame, (exception, value, trace)) * eval_result = handle_breakpoint_condition(main_debugger, info, exception_breakpoint, frame) * remove_exception_from_frame(frame) # <<<<<<<<<<<<<< * if not eval_result: * return False, frame */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_remove_exception_from_frame); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 369, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_remove_exception_from_frame); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { @@ -9778,23 +9778,23 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s } __pyx_t_4 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_10, __pyx_v_frame) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_frame); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 369, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":370 + /* "_pydevd_bundle/pydevd_cython.pyx":369 * eval_result = handle_breakpoint_condition(main_debugger, info, exception_breakpoint, frame) * remove_exception_from_frame(frame) * if not eval_result: # <<<<<<<<<<<<<< * return False, frame * */ - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_eval_result); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 370, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_eval_result); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 369, __pyx_L1_error) __pyx_t_7 = ((!__pyx_t_2) != 0); if (__pyx_t_7) { - /* "_pydevd_bundle/pydevd_cython.pyx":371 + /* "_pydevd_bundle/pydevd_cython.pyx":370 * remove_exception_from_frame(frame) * if not eval_result: * return False, frame # <<<<<<<<<<<<<< @@ -9802,7 +9802,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s * if exception_breakpoint.ignore_libraries: */ __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 371, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); @@ -9814,7 +9814,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __pyx_t_4 = 0; goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":370 + /* "_pydevd_bundle/pydevd_cython.pyx":369 * eval_result = handle_breakpoint_condition(main_debugger, info, exception_breakpoint, frame) * remove_exception_from_frame(frame) * if not eval_result: # <<<<<<<<<<<<<< @@ -9823,7 +9823,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s */ } - /* "_pydevd_bundle/pydevd_cython.pyx":365 + /* "_pydevd_bundle/pydevd_cython.pyx":364 * * if exception_breakpoint is not None: * if exception_breakpoint.condition is not None: # <<<<<<<<<<<<<< @@ -9832,27 +9832,27 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s */ } - /* "_pydevd_bundle/pydevd_cython.pyx":373 + /* "_pydevd_bundle/pydevd_cython.pyx":372 * return False, frame * * if exception_breakpoint.ignore_libraries: # <<<<<<<<<<<<<< * if not main_debugger.is_exception_trace_in_project_scope(trace): * return False, frame */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_ignore_libraries); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 373, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_ignore_libraries); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 373, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 372, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_7) { - /* "_pydevd_bundle/pydevd_cython.pyx":374 + /* "_pydevd_bundle/pydevd_cython.pyx":373 * * if exception_breakpoint.ignore_libraries: * if not main_debugger.is_exception_trace_in_project_scope(trace): # <<<<<<<<<<<<<< * return False, frame * */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_is_exception_trace_in_project_sc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 374, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_is_exception_trace_in_project_sc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { @@ -9866,15 +9866,15 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s } __pyx_t_4 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_10, __pyx_v_trace) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_trace); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 374, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 374, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 373, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = ((!__pyx_t_7) != 0); if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":375 + /* "_pydevd_bundle/pydevd_cython.pyx":374 * if exception_breakpoint.ignore_libraries: * if not main_debugger.is_exception_trace_in_project_scope(trace): * return False, frame # <<<<<<<<<<<<<< @@ -9882,7 +9882,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s * if ignore_exception_trace(trace): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 375, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); @@ -9894,7 +9894,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __pyx_t_4 = 0; goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":374 + /* "_pydevd_bundle/pydevd_cython.pyx":373 * * if exception_breakpoint.ignore_libraries: * if not main_debugger.is_exception_trace_in_project_scope(trace): # <<<<<<<<<<<<<< @@ -9903,7 +9903,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s */ } - /* "_pydevd_bundle/pydevd_cython.pyx":373 + /* "_pydevd_bundle/pydevd_cython.pyx":372 * return False, frame * * if exception_breakpoint.ignore_libraries: # <<<<<<<<<<<<<< @@ -9912,14 +9912,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s */ } - /* "_pydevd_bundle/pydevd_cython.pyx":377 + /* "_pydevd_bundle/pydevd_cython.pyx":376 * return False, frame * * if ignore_exception_trace(trace): # <<<<<<<<<<<<<< * return False, frame * */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ignore_exception_trace); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 377, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ignore_exception_trace); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { @@ -9933,14 +9933,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s } __pyx_t_4 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_10, __pyx_v_trace) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_trace); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 377, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 377, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 376, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":378 + /* "_pydevd_bundle/pydevd_cython.pyx":377 * * if ignore_exception_trace(trace): * return False, frame # <<<<<<<<<<<<<< @@ -9948,7 +9948,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s * was_just_raised = just_raised(trace) */ __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 378, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); @@ -9960,7 +9960,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __pyx_t_4 = 0; goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":377 + /* "_pydevd_bundle/pydevd_cython.pyx":376 * return False, frame * * if ignore_exception_trace(trace): # <<<<<<<<<<<<<< @@ -9969,14 +9969,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s */ } - /* "_pydevd_bundle/pydevd_cython.pyx":380 + /* "_pydevd_bundle/pydevd_cython.pyx":379 * return False, frame * * was_just_raised = just_raised(trace) # <<<<<<<<<<<<<< * if was_just_raised: * */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_just_raised); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 380, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_just_raised); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { @@ -9990,36 +9990,36 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s } __pyx_t_4 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_10, __pyx_v_trace) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_trace); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 380, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_was_just_raised = __pyx_t_4; __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":381 + /* "_pydevd_bundle/pydevd_cython.pyx":380 * * was_just_raised = just_raised(trace) * if was_just_raised: # <<<<<<<<<<<<<< * * if main_debugger.skip_on_exceptions_thrown_in_same_context: */ - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_was_just_raised); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 381, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_was_just_raised); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 380, __pyx_L1_error) if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":383 + /* "_pydevd_bundle/pydevd_cython.pyx":382 * if was_just_raised: * * if main_debugger.skip_on_exceptions_thrown_in_same_context: # <<<<<<<<<<<<<< * # Option: Don't break if an exception is caught in the same function from which it is thrown * return False, frame */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_skip_on_exceptions_thrown_in_sam); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 383, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_skip_on_exceptions_thrown_in_sam); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 383, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 382, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":385 + /* "_pydevd_bundle/pydevd_cython.pyx":384 * if main_debugger.skip_on_exceptions_thrown_in_same_context: * # Option: Don't break if an exception is caught in the same function from which it is thrown * return False, frame # <<<<<<<<<<<<<< @@ -10027,7 +10027,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s * if exception_breakpoint.notify_on_first_raise_only: */ __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 385, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); @@ -10039,7 +10039,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __pyx_t_4 = 0; goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":383 + /* "_pydevd_bundle/pydevd_cython.pyx":382 * if was_just_raised: * * if main_debugger.skip_on_exceptions_thrown_in_same_context: # <<<<<<<<<<<<<< @@ -10048,7 +10048,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s */ } - /* "_pydevd_bundle/pydevd_cython.pyx":381 + /* "_pydevd_bundle/pydevd_cython.pyx":380 * * was_just_raised = just_raised(trace) * if was_just_raised: # <<<<<<<<<<<<<< @@ -10057,49 +10057,49 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s */ } - /* "_pydevd_bundle/pydevd_cython.pyx":387 + /* "_pydevd_bundle/pydevd_cython.pyx":386 * return False, frame * * if exception_breakpoint.notify_on_first_raise_only: # <<<<<<<<<<<<<< * if main_debugger.skip_on_exceptions_thrown_in_same_context: * # In this case we never stop if it was just raised, so, to know if it was the first we */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_notify_on_first_raise_only); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 387, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_notify_on_first_raise_only); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 387, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 386, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":388 + /* "_pydevd_bundle/pydevd_cython.pyx":387 * * if exception_breakpoint.notify_on_first_raise_only: * if main_debugger.skip_on_exceptions_thrown_in_same_context: # <<<<<<<<<<<<<< * # In this case we never stop if it was just raised, so, to know if it was the first we * # need to check if we're in the 2nd method. */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_skip_on_exceptions_thrown_in_sam); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 388, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_skip_on_exceptions_thrown_in_sam); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 387, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 388, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 387, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":391 + /* "_pydevd_bundle/pydevd_cython.pyx":390 * # In this case we never stop if it was just raised, so, to know if it was the first we * # need to check if we're in the 2nd method. * if not was_just_raised and not just_raised(trace.tb_next): # <<<<<<<<<<<<<< * return False, frame # I.e.: we stop only when we're at the caller of a method that throws an exception * */ - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_was_just_raised); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 391, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_was_just_raised); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 390, __pyx_L1_error) __pyx_t_8 = ((!__pyx_t_7) != 0); if (__pyx_t_8) { } else { __pyx_t_2 = __pyx_t_8; goto __pyx_L20_bool_binop_done; } - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_just_raised); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 391, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_just_raised); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 390, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_trace, __pyx_n_s_tb_next); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 391, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_trace, __pyx_n_s_tb_next); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 390, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { @@ -10114,17 +10114,17 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_10); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 391, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 390, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 391, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 390, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_7 = ((!__pyx_t_8) != 0); __pyx_t_2 = __pyx_t_7; __pyx_L20_bool_binop_done:; if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":392 + /* "_pydevd_bundle/pydevd_cython.pyx":391 * # need to check if we're in the 2nd method. * if not was_just_raised and not just_raised(trace.tb_next): * return False, frame # I.e.: we stop only when we're at the caller of a method that throws an exception # <<<<<<<<<<<<<< @@ -10132,7 +10132,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s * else: */ __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 392, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 391, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); @@ -10144,7 +10144,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __pyx_t_4 = 0; goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":391 + /* "_pydevd_bundle/pydevd_cython.pyx":390 * # In this case we never stop if it was just raised, so, to know if it was the first we * # need to check if we're in the 2nd method. * if not was_just_raised and not just_raised(trace.tb_next): # <<<<<<<<<<<<<< @@ -10153,7 +10153,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s */ } - /* "_pydevd_bundle/pydevd_cython.pyx":388 + /* "_pydevd_bundle/pydevd_cython.pyx":387 * * if exception_breakpoint.notify_on_first_raise_only: * if main_debugger.skip_on_exceptions_thrown_in_same_context: # <<<<<<<<<<<<<< @@ -10163,7 +10163,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s goto __pyx_L18; } - /* "_pydevd_bundle/pydevd_cython.pyx":395 + /* "_pydevd_bundle/pydevd_cython.pyx":394 * * else: * if not was_just_raised and not main_debugger.is_top_level_trace_in_project_scope(trace): # <<<<<<<<<<<<<< @@ -10171,14 +10171,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s * */ /*else*/ { - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_was_just_raised); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 395, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_was_just_raised); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 394, __pyx_L1_error) __pyx_t_8 = ((!__pyx_t_7) != 0); if (__pyx_t_8) { } else { __pyx_t_2 = __pyx_t_8; goto __pyx_L23_bool_binop_done; } - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_is_top_level_trace_in_project_sc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 395, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_is_top_level_trace_in_project_sc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { @@ -10192,17 +10192,17 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s } __pyx_t_4 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_10, __pyx_v_trace) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_trace); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 395, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 395, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 394, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_7 = ((!__pyx_t_8) != 0); __pyx_t_2 = __pyx_t_7; __pyx_L23_bool_binop_done:; if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":396 + /* "_pydevd_bundle/pydevd_cython.pyx":395 * else: * if not was_just_raised and not main_debugger.is_top_level_trace_in_project_scope(trace): * return False, frame # I.e.: we stop only when it was just raised # <<<<<<<<<<<<<< @@ -10210,7 +10210,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s * # If it got here we should stop. */ __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 396, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); @@ -10222,7 +10222,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __pyx_t_4 = 0; goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":395 + /* "_pydevd_bundle/pydevd_cython.pyx":394 * * else: * if not was_just_raised and not main_debugger.is_top_level_trace_in_project_scope(trace): # <<<<<<<<<<<<<< @@ -10233,7 +10233,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s } __pyx_L18:; - /* "_pydevd_bundle/pydevd_cython.pyx":387 + /* "_pydevd_bundle/pydevd_cython.pyx":386 * return False, frame * * if exception_breakpoint.notify_on_first_raise_only: # <<<<<<<<<<<<<< @@ -10242,7 +10242,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s */ } - /* "_pydevd_bundle/pydevd_cython.pyx":399 + /* "_pydevd_bundle/pydevd_cython.pyx":398 * * # If it got here we should stop. * should_stop = True # <<<<<<<<<<<<<< @@ -10252,7 +10252,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __Pyx_INCREF(Py_True); __Pyx_DECREF_SET(__pyx_v_should_stop, Py_True); - /* "_pydevd_bundle/pydevd_cython.pyx":400 + /* "_pydevd_bundle/pydevd_cython.pyx":399 * # If it got here we should stop. * should_stop = True * try: # <<<<<<<<<<<<<< @@ -10268,23 +10268,23 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __Pyx_XGOTREF(__pyx_t_13); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":401 + /* "_pydevd_bundle/pydevd_cython.pyx":400 * should_stop = True * try: * info.pydev_message = exception_breakpoint.qname # <<<<<<<<<<<<<< * except: * info.pydev_message = exception_breakpoint.qname.encode('utf-8') */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_qname); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 401, __pyx_L25_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_qname); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 400, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_4); - if (!(likely(PyString_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(0, 401, __pyx_L25_error) + if (!(likely(PyString_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(0, 400, __pyx_L25_error) __Pyx_GIVEREF(__pyx_t_4); __Pyx_GOTREF(__pyx_v_info->pydev_message); __Pyx_DECREF(__pyx_v_info->pydev_message); __pyx_v_info->pydev_message = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":400 + /* "_pydevd_bundle/pydevd_cython.pyx":399 * # If it got here we should stop. * should_stop = True * try: # <<<<<<<<<<<<<< @@ -10303,7 +10303,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":402 + /* "_pydevd_bundle/pydevd_cython.pyx":401 * try: * info.pydev_message = exception_breakpoint.qname * except: # <<<<<<<<<<<<<< @@ -10312,21 +10312,21 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.should_stop_on_exception", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_3, &__pyx_t_10) < 0) __PYX_ERR(0, 402, __pyx_L27_except_error) + if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_3, &__pyx_t_10) < 0) __PYX_ERR(0, 401, __pyx_L27_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_3); __Pyx_GOTREF(__pyx_t_10); - /* "_pydevd_bundle/pydevd_cython.pyx":403 + /* "_pydevd_bundle/pydevd_cython.pyx":402 * info.pydev_message = exception_breakpoint.qname * except: * info.pydev_message = exception_breakpoint.qname.encode('utf-8') # <<<<<<<<<<<<<< * * # Always add exception to frame (must remove later after we proceed). */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_qname); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 403, __pyx_L27_except_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_qname); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 402, __pyx_L27_except_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_encode); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 403, __pyx_L27_except_error) + __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_encode); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 402, __pyx_L27_except_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; @@ -10341,10 +10341,10 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s } __pyx_t_5 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_1, __pyx_kp_s_utf_8) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_kp_s_utf_8); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 403, __pyx_L27_except_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 402, __pyx_L27_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (!(likely(PyString_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(0, 403, __pyx_L27_except_error) + if (!(likely(PyString_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(0, 402, __pyx_L27_except_error) __Pyx_GIVEREF(__pyx_t_5); __Pyx_GOTREF(__pyx_v_info->pydev_message); __Pyx_DECREF(__pyx_v_info->pydev_message); @@ -10357,7 +10357,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s } __pyx_L27_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":400 + /* "_pydevd_bundle/pydevd_cython.pyx":399 * # If it got here we should stop. * should_stop = True * try: # <<<<<<<<<<<<<< @@ -10377,16 +10377,16 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __pyx_L30_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":406 + /* "_pydevd_bundle/pydevd_cython.pyx":405 * * # Always add exception to frame (must remove later after we proceed). * add_exception_to_frame(frame, (exception, value, trace)) # <<<<<<<<<<<<<< * * info.pydev_message = "python-%s" % info.pydev_message */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_add_exception_to_frame); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 406, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_add_exception_to_frame); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 406, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_exception); __Pyx_GIVEREF(__pyx_v_exception); @@ -10412,7 +10412,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_frame, __pyx_t_4}; - __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 406, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 405, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -10421,14 +10421,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_frame, __pyx_t_4}; - __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 406, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 405, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { - __pyx_t_14 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 406, __pyx_L1_error) + __pyx_t_14 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_5); __pyx_t_5 = NULL; @@ -10439,21 +10439,21 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_9, __pyx_t_4); __pyx_t_4 = 0; - __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_14, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 406, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_14, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":408 + /* "_pydevd_bundle/pydevd_cython.pyx":407 * add_exception_to_frame(frame, (exception, value, trace)) * * info.pydev_message = "python-%s" % info.pydev_message # <<<<<<<<<<<<<< * * else: */ - __pyx_t_10 = __Pyx_PyString_Format(__pyx_kp_s_python_s, __pyx_v_info->pydev_message); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 408, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyString_Format(__pyx_kp_s_python_s, __pyx_v_info->pydev_message); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); __Pyx_GOTREF(__pyx_v_info->pydev_message); @@ -10461,7 +10461,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __pyx_v_info->pydev_message = ((PyObject*)__pyx_t_10); __pyx_t_10 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":364 + /* "_pydevd_bundle/pydevd_cython.pyx":363 * exception, main_debugger.break_on_caught_exceptions) * * if exception_breakpoint is not None: # <<<<<<<<<<<<<< @@ -10471,7 +10471,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s goto __pyx_L9; } - /* "_pydevd_bundle/pydevd_cython.pyx":412 + /* "_pydevd_bundle/pydevd_cython.pyx":411 * else: * # No regular exception breakpoint, let's see if some plugin handles it or if it is a test assertion error. * try: # <<<<<<<<<<<<<< @@ -10488,30 +10488,30 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __Pyx_XGOTREF(__pyx_t_11); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":413 + /* "_pydevd_bundle/pydevd_cython.pyx":412 * # No regular exception breakpoint, let's see if some plugin handles it or if it is a test assertion error. * try: * if main_debugger.plugin is not None: # <<<<<<<<<<<<<< * result = main_debugger.plugin.exception_break(main_debugger, self, frame, self._args, arg) * if result: */ - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_plugin); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 413, __pyx_L33_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_plugin); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 412, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_2 = (__pyx_t_10 != Py_None); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_7 = (__pyx_t_2 != 0); if (__pyx_t_7) { - /* "_pydevd_bundle/pydevd_cython.pyx":414 + /* "_pydevd_bundle/pydevd_cython.pyx":413 * try: * if main_debugger.plugin is not None: * result = main_debugger.plugin.exception_break(main_debugger, self, frame, self._args, arg) # <<<<<<<<<<<<<< * if result: * should_stop, frame = result */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_plugin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 414, __pyx_L33_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_plugin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 413, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_exception_break); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 414, __pyx_L33_error) + __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_exception_break); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 413, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; @@ -10529,7 +10529,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_14)) { PyObject *__pyx_temp[6] = {__pyx_t_3, __pyx_v_main_debugger, ((PyObject *)__pyx_v_self), __pyx_v_frame, __pyx_v_self->_args, __pyx_v_arg}; - __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_9, 5+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 414, __pyx_L33_error) + __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_9, 5+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 413, __pyx_L33_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_10); } else @@ -10537,13 +10537,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) { PyObject *__pyx_temp[6] = {__pyx_t_3, __pyx_v_main_debugger, ((PyObject *)__pyx_v_self), __pyx_v_frame, __pyx_v_self->_args, __pyx_v_arg}; - __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_9, 5+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 414, __pyx_L33_error) + __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_9, 5+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 413, __pyx_L33_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_10); } else #endif { - __pyx_t_4 = PyTuple_New(5+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 414, __pyx_L33_error) + __pyx_t_4 = PyTuple_New(5+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 413, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; @@ -10563,7 +10563,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); PyTuple_SET_ITEM(__pyx_t_4, 4+__pyx_t_9, __pyx_v_arg); - __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_4, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 414, __pyx_L33_error) + __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_4, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 413, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } @@ -10571,17 +10571,17 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __pyx_v_result = __pyx_t_10; __pyx_t_10 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":415 + /* "_pydevd_bundle/pydevd_cython.pyx":414 * if main_debugger.plugin is not None: * result = main_debugger.plugin.exception_break(main_debugger, self, frame, self._args, arg) * if result: # <<<<<<<<<<<<<< * should_stop, frame = result * if main_debugger.stop_on_failed_tests and main_debugger.is_test_item_or_set_up_caller(trace) \ */ - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_result); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 415, __pyx_L33_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_result); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 414, __pyx_L33_error) if (__pyx_t_7) { - /* "_pydevd_bundle/pydevd_cython.pyx":416 + /* "_pydevd_bundle/pydevd_cython.pyx":415 * result = main_debugger.plugin.exception_break(main_debugger, self, frame, self._args, arg) * if result: * should_stop, frame = result # <<<<<<<<<<<<<< @@ -10594,7 +10594,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 416, __pyx_L33_error) + __PYX_ERR(0, 415, __pyx_L33_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -10607,21 +10607,21 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(__pyx_t_14); #else - __pyx_t_10 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 416, __pyx_L33_error) + __pyx_t_10 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 415, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 416, __pyx_L33_error) + __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 415, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_14); #endif } else { Py_ssize_t index = -1; - __pyx_t_4 = PyObject_GetIter(__pyx_v_result); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 416, __pyx_L33_error) + __pyx_t_4 = PyObject_GetIter(__pyx_v_result); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 415, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; index = 0; __pyx_t_10 = __pyx_t_6(__pyx_t_4); if (unlikely(!__pyx_t_10)) goto __pyx_L41_unpacking_failed; __Pyx_GOTREF(__pyx_t_10); index = 1; __pyx_t_14 = __pyx_t_6(__pyx_t_4); if (unlikely(!__pyx_t_14)) goto __pyx_L41_unpacking_failed; __Pyx_GOTREF(__pyx_t_14); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_4), 2) < 0) __PYX_ERR(0, 416, __pyx_L33_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_4), 2) < 0) __PYX_ERR(0, 415, __pyx_L33_error) __pyx_t_6 = NULL; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L42_unpacking_done; @@ -10629,7 +10629,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 416, __pyx_L33_error) + __PYX_ERR(0, 415, __pyx_L33_error) __pyx_L42_unpacking_done:; } __Pyx_DECREF_SET(__pyx_v_should_stop, __pyx_t_10); @@ -10637,7 +10637,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __Pyx_DECREF_SET(__pyx_v_frame, __pyx_t_14); __pyx_t_14 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":415 + /* "_pydevd_bundle/pydevd_cython.pyx":414 * if main_debugger.plugin is not None: * result = main_debugger.plugin.exception_break(main_debugger, self, frame, self._args, arg) * if result: # <<<<<<<<<<<<<< @@ -10646,7 +10646,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s */ } - /* "_pydevd_bundle/pydevd_cython.pyx":413 + /* "_pydevd_bundle/pydevd_cython.pyx":412 * # No regular exception breakpoint, let's see if some plugin handles it or if it is a test assertion error. * try: * if main_debugger.plugin is not None: # <<<<<<<<<<<<<< @@ -10655,16 +10655,16 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s */ } - /* "_pydevd_bundle/pydevd_cython.pyx":417 + /* "_pydevd_bundle/pydevd_cython.pyx":416 * if result: * should_stop, frame = result * if main_debugger.stop_on_failed_tests and main_debugger.is_test_item_or_set_up_caller(trace) \ # <<<<<<<<<<<<<< * and not is_exception_in_test_unit_can_be_ignored(exception): * should_stop, frame = should_stop_on_failed_test(arg), frame */ - __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_stop_on_failed_tests); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 417, __pyx_L33_error) + __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_stop_on_failed_tests); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 416, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_14); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 417, __pyx_L33_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 416, __pyx_L33_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (__pyx_t_2) { } else { @@ -10672,17 +10672,17 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s goto __pyx_L44_bool_binop_done; } - /* "_pydevd_bundle/pydevd_cython.pyx":418 + /* "_pydevd_bundle/pydevd_cython.pyx":417 * should_stop, frame = result * if main_debugger.stop_on_failed_tests and main_debugger.is_test_item_or_set_up_caller(trace) \ * and not is_exception_in_test_unit_can_be_ignored(exception): # <<<<<<<<<<<<<< * should_stop, frame = should_stop_on_failed_test(arg), frame * info.pydev_message = "python-AssertionError" */ - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_is_test_item_or_set_up_caller); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 417, __pyx_L33_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_is_test_item_or_set_up_caller); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 416, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_10); - /* "_pydevd_bundle/pydevd_cython.pyx":417 + /* "_pydevd_bundle/pydevd_cython.pyx":416 * if result: * should_stop, frame = result * if main_debugger.stop_on_failed_tests and main_debugger.is_test_item_or_set_up_caller(trace) \ # <<<<<<<<<<<<<< @@ -10701,10 +10701,10 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s } __pyx_t_14 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_4, __pyx_v_trace) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_trace); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 417, __pyx_L33_error) + if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 416, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 417, __pyx_L33_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 416, __pyx_L33_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (__pyx_t_2) { } else { @@ -10712,14 +10712,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s goto __pyx_L44_bool_binop_done; } - /* "_pydevd_bundle/pydevd_cython.pyx":418 + /* "_pydevd_bundle/pydevd_cython.pyx":417 * should_stop, frame = result * if main_debugger.stop_on_failed_tests and main_debugger.is_test_item_or_set_up_caller(trace) \ * and not is_exception_in_test_unit_can_be_ignored(exception): # <<<<<<<<<<<<<< * should_stop, frame = should_stop_on_failed_test(arg), frame * info.pydev_message = "python-AssertionError" */ - __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_is_exception_in_test_unit_can_be); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 418, __pyx_L33_error) + __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_is_exception_in_test_unit_can_be); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 417, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { @@ -10733,16 +10733,16 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s } __pyx_t_14 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_4, __pyx_v_exception) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_exception); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 418, __pyx_L33_error) + if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 417, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 418, __pyx_L33_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 417, __pyx_L33_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_8 = ((!__pyx_t_2) != 0); __pyx_t_7 = __pyx_t_8; __pyx_L44_bool_binop_done:; - /* "_pydevd_bundle/pydevd_cython.pyx":417 + /* "_pydevd_bundle/pydevd_cython.pyx":416 * if result: * should_stop, frame = result * if main_debugger.stop_on_failed_tests and main_debugger.is_test_item_or_set_up_caller(trace) \ # <<<<<<<<<<<<<< @@ -10751,14 +10751,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s */ if (__pyx_t_7) { - /* "_pydevd_bundle/pydevd_cython.pyx":419 + /* "_pydevd_bundle/pydevd_cython.pyx":418 * if main_debugger.stop_on_failed_tests and main_debugger.is_test_item_or_set_up_caller(trace) \ * and not is_exception_in_test_unit_can_be_ignored(exception): * should_stop, frame = should_stop_on_failed_test(arg), frame # <<<<<<<<<<<<<< * info.pydev_message = "python-AssertionError" * except: */ - __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_should_stop_on_failed_test); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 419, __pyx_L33_error) + __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_should_stop_on_failed_test); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 418, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { @@ -10772,7 +10772,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s } __pyx_t_14 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_4, __pyx_v_arg) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_arg); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 419, __pyx_L33_error) + if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 418, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __pyx_v_frame; @@ -10782,7 +10782,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __Pyx_DECREF_SET(__pyx_v_frame, __pyx_t_10); __pyx_t_10 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":420 + /* "_pydevd_bundle/pydevd_cython.pyx":419 * and not is_exception_in_test_unit_can_be_ignored(exception): * should_stop, frame = should_stop_on_failed_test(arg), frame * info.pydev_message = "python-AssertionError" # <<<<<<<<<<<<<< @@ -10795,7 +10795,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __Pyx_DECREF(__pyx_v_info->pydev_message); __pyx_v_info->pydev_message = __pyx_kp_s_python_AssertionError; - /* "_pydevd_bundle/pydevd_cython.pyx":417 + /* "_pydevd_bundle/pydevd_cython.pyx":416 * if result: * should_stop, frame = result * if main_debugger.stop_on_failed_tests and main_debugger.is_test_item_or_set_up_caller(trace) \ # <<<<<<<<<<<<<< @@ -10804,7 +10804,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s */ } - /* "_pydevd_bundle/pydevd_cython.pyx":412 + /* "_pydevd_bundle/pydevd_cython.pyx":411 * else: * # No regular exception breakpoint, let's see if some plugin handles it or if it is a test assertion error. * try: # <<<<<<<<<<<<<< @@ -10824,7 +10824,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":421 + /* "_pydevd_bundle/pydevd_cython.pyx":420 * should_stop, frame = should_stop_on_failed_test(arg), frame * info.pydev_message = "python-AssertionError" * except: # <<<<<<<<<<<<<< @@ -10833,12 +10833,12 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.should_stop_on_exception", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_10, &__pyx_t_14, &__pyx_t_4) < 0) __PYX_ERR(0, 421, __pyx_L35_except_error) + if (__Pyx_GetException(&__pyx_t_10, &__pyx_t_14, &__pyx_t_4) < 0) __PYX_ERR(0, 420, __pyx_L35_except_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GOTREF(__pyx_t_14); __Pyx_GOTREF(__pyx_t_4); - /* "_pydevd_bundle/pydevd_cython.pyx":422 + /* "_pydevd_bundle/pydevd_cython.pyx":421 * info.pydev_message = "python-AssertionError" * except: * should_stop = False # <<<<<<<<<<<<<< @@ -10854,7 +10854,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s } __pyx_L35_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":412 + /* "_pydevd_bundle/pydevd_cython.pyx":411 * else: * # No regular exception breakpoint, let's see if some plugin handles it or if it is a test assertion error. * try: # <<<<<<<<<<<<<< @@ -10876,17 +10876,17 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s } __pyx_L9:; - /* "_pydevd_bundle/pydevd_cython.pyx":424 + /* "_pydevd_bundle/pydevd_cython.pyx":423 * should_stop = False * * if should_stop: # <<<<<<<<<<<<<< * if exception_breakpoint is not None and exception_breakpoint.expression is not None: * handle_breakpoint_expression(exception_breakpoint, info, frame) */ - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_should_stop); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 424, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_should_stop); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 423, __pyx_L1_error) if (__pyx_t_7) { - /* "_pydevd_bundle/pydevd_cython.pyx":425 + /* "_pydevd_bundle/pydevd_cython.pyx":424 * * if should_stop: * if exception_breakpoint is not None and exception_breakpoint.expression is not None: # <<<<<<<<<<<<<< @@ -10900,7 +10900,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __pyx_t_7 = __pyx_t_2; goto __pyx_L51_bool_binop_done; } - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_expression); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 425, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_expression); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = (__pyx_t_4 != Py_None); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -10909,14 +10909,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __pyx_L51_bool_binop_done:; if (__pyx_t_7) { - /* "_pydevd_bundle/pydevd_cython.pyx":426 + /* "_pydevd_bundle/pydevd_cython.pyx":425 * if should_stop: * if exception_breakpoint is not None and exception_breakpoint.expression is not None: * handle_breakpoint_expression(exception_breakpoint, info, frame) # <<<<<<<<<<<<<< * * return should_stop, frame */ - __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_handle_breakpoint_expression); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 426, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_handle_breakpoint_expression); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_10 = NULL; __pyx_t_9 = 0; @@ -10933,7 +10933,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_14)) { PyObject *__pyx_temp[4] = {__pyx_t_10, __pyx_v_exception_breakpoint, ((PyObject *)__pyx_v_info), __pyx_v_frame}; - __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 426, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 425, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_4); } else @@ -10941,13 +10941,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) { PyObject *__pyx_temp[4] = {__pyx_t_10, __pyx_v_exception_breakpoint, ((PyObject *)__pyx_v_info), __pyx_v_frame}; - __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 426, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 425, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif { - __pyx_t_3 = PyTuple_New(3+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 426, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(3+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_10) { __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_10); __pyx_t_10 = NULL; @@ -10961,14 +10961,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __Pyx_INCREF(__pyx_v_frame); __Pyx_GIVEREF(__pyx_v_frame); PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_9, __pyx_v_frame); - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 426, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":425 + /* "_pydevd_bundle/pydevd_cython.pyx":424 * * if should_stop: * if exception_breakpoint is not None and exception_breakpoint.expression is not None: # <<<<<<<<<<<<<< @@ -10977,7 +10977,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s */ } - /* "_pydevd_bundle/pydevd_cython.pyx":424 + /* "_pydevd_bundle/pydevd_cython.pyx":423 * should_stop = False * * if should_stop: # <<<<<<<<<<<<<< @@ -10986,7 +10986,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s */ } - /* "_pydevd_bundle/pydevd_cython.pyx":358 + /* "_pydevd_bundle/pydevd_cython.pyx":357 * exception, value, trace = arg * * if trace is not None and hasattr(trace, 'tb_next'): # <<<<<<<<<<<<<< @@ -10995,7 +10995,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s */ } - /* "_pydevd_bundle/pydevd_cython.pyx":355 + /* "_pydevd_bundle/pydevd_cython.pyx":354 * * # STATE_SUSPEND = 2 * if info.pydev_state != 2: # and breakpoint is not None: # <<<<<<<<<<<<<< @@ -11004,7 +11004,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s */ } - /* "_pydevd_bundle/pydevd_cython.pyx":428 + /* "_pydevd_bundle/pydevd_cython.pyx":427 * handle_breakpoint_expression(exception_breakpoint, info, frame) * * return should_stop, frame # <<<<<<<<<<<<<< @@ -11012,7 +11012,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s * def handle_exception(self, frame, event, arg): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 428, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_should_stop); __Pyx_GIVEREF(__pyx_v_should_stop); @@ -11024,7 +11024,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s __pyx_t_4 = 0; goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":342 + /* "_pydevd_bundle/pydevd_cython.pyx":341 * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * def should_stop_on_exception(self, frame, str event, arg): # <<<<<<<<<<<<<< @@ -11059,7 +11059,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_10should_s return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":430 +/* "_pydevd_bundle/pydevd_cython.pyx":429 * return should_stop, frame * * def handle_exception(self, frame, event, arg): # <<<<<<<<<<<<<< @@ -11104,17 +11104,17 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_13handle_e case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("handle_exception", 1, 3, 3, 1); __PYX_ERR(0, 430, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("handle_exception", 1, 3, 3, 1); __PYX_ERR(0, 429, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("handle_exception", 1, 3, 3, 2); __PYX_ERR(0, 430, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("handle_exception", 1, 3, 3, 2); __PYX_ERR(0, 429, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "handle_exception") < 0)) __PYX_ERR(0, 430, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "handle_exception") < 0)) __PYX_ERR(0, 429, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; @@ -11129,7 +11129,7 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_13handle_e } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("handle_exception", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 430, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("handle_exception", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 429, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.handle_exception", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -11197,7 +11197,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_RefNannySetupContext("handle_exception", 0); __Pyx_INCREF(__pyx_v_frame); - /* "_pydevd_bundle/pydevd_cython.pyx":431 + /* "_pydevd_bundle/pydevd_cython.pyx":430 * * def handle_exception(self, frame, event, arg): * try: # <<<<<<<<<<<<<< @@ -11206,19 +11206,19 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e */ /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":433 + /* "_pydevd_bundle/pydevd_cython.pyx":432 * try: * # We have 3 things in arg: exception type, description, traceback object * trace_obj = arg[2] # <<<<<<<<<<<<<< * main_debugger = self._args[0] * */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_arg, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 433, __pyx_L4_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_arg, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 432, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_trace_obj = __pyx_t_1; __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":434 + /* "_pydevd_bundle/pydevd_cython.pyx":433 * # We have 3 things in arg: exception type, description, traceback object * trace_obj = arg[2] * main_debugger = self._args[0] # <<<<<<<<<<<<<< @@ -11227,14 +11227,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e */ if (unlikely(__pyx_v_self->_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 434, __pyx_L4_error) + __PYX_ERR(0, 433, __pyx_L4_error) } - __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_self->_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 434, __pyx_L4_error) + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_self->_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 433, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_main_debugger = __pyx_t_1; __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":436 + /* "_pydevd_bundle/pydevd_cython.pyx":435 * main_debugger = self._args[0] * * initial_trace_obj = trace_obj # <<<<<<<<<<<<<< @@ -11244,14 +11244,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(__pyx_v_trace_obj); __pyx_v_initial_trace_obj = __pyx_v_trace_obj; - /* "_pydevd_bundle/pydevd_cython.pyx":437 + /* "_pydevd_bundle/pydevd_cython.pyx":436 * * initial_trace_obj = trace_obj * if trace_obj.tb_next is None and trace_obj.tb_frame is frame: # <<<<<<<<<<<<<< * # I.e.: tb_next should be only None in the context it was thrown (trace_obj.tb_frame is frame is just a double check). * pass */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_trace_obj, __pyx_n_s_tb_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 437, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_trace_obj, __pyx_n_s_tb_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 436, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = (__pyx_t_1 == Py_None); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -11261,7 +11261,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __pyx_t_2 = __pyx_t_4; goto __pyx_L7_bool_binop_done; } - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_trace_obj, __pyx_n_s_tb_frame); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 437, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_trace_obj, __pyx_n_s_tb_frame); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 436, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = (__pyx_t_1 == __pyx_v_frame); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -11272,7 +11272,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e goto __pyx_L6; } - /* "_pydevd_bundle/pydevd_cython.pyx":442 + /* "_pydevd_bundle/pydevd_cython.pyx":441 * else: * # Get the trace_obj from where the exception was raised... * while trace_obj.tb_next is not None: # <<<<<<<<<<<<<< @@ -11281,21 +11281,21 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e */ /*else*/ { while (1) { - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_trace_obj, __pyx_n_s_tb_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 442, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_trace_obj, __pyx_n_s_tb_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 441, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (__pyx_t_1 != Py_None); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_t_2 != 0); if (!__pyx_t_3) break; - /* "_pydevd_bundle/pydevd_cython.pyx":443 + /* "_pydevd_bundle/pydevd_cython.pyx":442 * # Get the trace_obj from where the exception was raised... * while trace_obj.tb_next is not None: * trace_obj = trace_obj.tb_next # <<<<<<<<<<<<<< * * if main_debugger.ignore_exceptions_thrown_in_lines_with_ignore_exception \ */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_trace_obj, __pyx_n_s_tb_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 443, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_trace_obj, __pyx_n_s_tb_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 442, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_trace_obj, __pyx_t_1); __pyx_t_1 = 0; @@ -11303,16 +11303,16 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __pyx_L6:; - /* "_pydevd_bundle/pydevd_cython.pyx":445 + /* "_pydevd_bundle/pydevd_cython.pyx":444 * trace_obj = trace_obj.tb_next * * if main_debugger.ignore_exceptions_thrown_in_lines_with_ignore_exception \ # <<<<<<<<<<<<<< * and not main_debugger.stop_on_failed_tests: * for check_trace_obj in (initial_trace_obj, trace_obj): */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_ignore_exceptions_thrown_in_line); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 445, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_ignore_exceptions_thrown_in_line); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 444, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 445, __pyx_L4_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 444, __pyx_L4_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { } else { @@ -11320,22 +11320,22 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e goto __pyx_L12_bool_binop_done; } - /* "_pydevd_bundle/pydevd_cython.pyx":446 + /* "_pydevd_bundle/pydevd_cython.pyx":445 * * if main_debugger.ignore_exceptions_thrown_in_lines_with_ignore_exception \ * and not main_debugger.stop_on_failed_tests: # <<<<<<<<<<<<<< * for check_trace_obj in (initial_trace_obj, trace_obj): * filename = get_abs_path_real_path_and_base_from_frame(check_trace_obj.tb_frame)[1] */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_stop_on_failed_tests); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 446, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_stop_on_failed_tests); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 445, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 446, __pyx_L4_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 445, __pyx_L4_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = ((!__pyx_t_2) != 0); __pyx_t_3 = __pyx_t_4; __pyx_L12_bool_binop_done:; - /* "_pydevd_bundle/pydevd_cython.pyx":445 + /* "_pydevd_bundle/pydevd_cython.pyx":444 * trace_obj = trace_obj.tb_next * * if main_debugger.ignore_exceptions_thrown_in_lines_with_ignore_exception \ # <<<<<<<<<<<<<< @@ -11344,14 +11344,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e */ if (__pyx_t_3) { - /* "_pydevd_bundle/pydevd_cython.pyx":447 + /* "_pydevd_bundle/pydevd_cython.pyx":446 * if main_debugger.ignore_exceptions_thrown_in_lines_with_ignore_exception \ * and not main_debugger.stop_on_failed_tests: * for check_trace_obj in (initial_trace_obj, trace_obj): # <<<<<<<<<<<<<< * filename = get_abs_path_real_path_and_base_from_frame(check_trace_obj.tb_frame)[1] * */ - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 447, __pyx_L4_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 446, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_initial_trace_obj); __Pyx_GIVEREF(__pyx_v_initial_trace_obj); @@ -11364,24 +11364,24 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e for (;;) { if (__pyx_t_6 >= 2) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 447, __pyx_L4_error) + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 446, __pyx_L4_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 447, __pyx_L4_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 446, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); #endif __Pyx_XDECREF_SET(__pyx_v_check_trace_obj, __pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":448 + /* "_pydevd_bundle/pydevd_cython.pyx":447 * and not main_debugger.stop_on_failed_tests: * for check_trace_obj in (initial_trace_obj, trace_obj): * filename = get_abs_path_real_path_and_base_from_frame(check_trace_obj.tb_frame)[1] # <<<<<<<<<<<<<< * * filename_to_lines_where_exceptions_are_ignored = self.filename_to_lines_where_exceptions_are_ignored */ - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_get_abs_path_real_path_and_base); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 448, __pyx_L4_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_get_abs_path_real_path_and_base); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 447, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_check_trace_obj, __pyx_n_s_tb_frame); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 448, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_check_trace_obj, __pyx_n_s_tb_frame); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 447, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { @@ -11396,35 +11396,35 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_9, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 448, __pyx_L4_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 447, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 448, __pyx_L4_error) + __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 447, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF_SET(__pyx_v_filename, __pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":450 + /* "_pydevd_bundle/pydevd_cython.pyx":449 * filename = get_abs_path_real_path_and_base_from_frame(check_trace_obj.tb_frame)[1] * * filename_to_lines_where_exceptions_are_ignored = self.filename_to_lines_where_exceptions_are_ignored # <<<<<<<<<<<<<< * * lines_ignored = filename_to_lines_where_exceptions_are_ignored.get(filename) */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_filename_to_lines_where_exceptio); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 450, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_filename_to_lines_where_exceptio); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 449, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_XDECREF_SET(__pyx_v_filename_to_lines_where_exceptions_are_ignored, __pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":452 + /* "_pydevd_bundle/pydevd_cython.pyx":451 * filename_to_lines_where_exceptions_are_ignored = self.filename_to_lines_where_exceptions_are_ignored * * lines_ignored = filename_to_lines_where_exceptions_are_ignored.get(filename) # <<<<<<<<<<<<<< * if lines_ignored is None: * lines_ignored = filename_to_lines_where_exceptions_are_ignored[filename] = {} */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_filename_to_lines_where_exceptions_are_ignored, __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 452, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_filename_to_lines_where_exceptions_are_ignored, __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 451, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { @@ -11438,13 +11438,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __pyx_t_7 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_8, __pyx_v_filename) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_filename); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 452, __pyx_L4_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 451, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF_SET(__pyx_v_lines_ignored, __pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":453 + /* "_pydevd_bundle/pydevd_cython.pyx":452 * * lines_ignored = filename_to_lines_where_exceptions_are_ignored.get(filename) * if lines_ignored is None: # <<<<<<<<<<<<<< @@ -11455,21 +11455,21 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __pyx_t_4 = (__pyx_t_3 != 0); if (__pyx_t_4) { - /* "_pydevd_bundle/pydevd_cython.pyx":454 + /* "_pydevd_bundle/pydevd_cython.pyx":453 * lines_ignored = filename_to_lines_where_exceptions_are_ignored.get(filename) * if lines_ignored is None: * lines_ignored = filename_to_lines_where_exceptions_are_ignored[filename] = {} # <<<<<<<<<<<<<< * * try: */ - __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 454, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 453, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_7); __Pyx_DECREF_SET(__pyx_v_lines_ignored, __pyx_t_7); - if (unlikely(PyObject_SetItem(__pyx_v_filename_to_lines_where_exceptions_are_ignored, __pyx_v_filename, __pyx_t_7) < 0)) __PYX_ERR(0, 454, __pyx_L4_error) + if (unlikely(PyObject_SetItem(__pyx_v_filename_to_lines_where_exceptions_are_ignored, __pyx_v_filename, __pyx_t_7) < 0)) __PYX_ERR(0, 453, __pyx_L4_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":453 + /* "_pydevd_bundle/pydevd_cython.pyx":452 * * lines_ignored = filename_to_lines_where_exceptions_are_ignored.get(filename) * if lines_ignored is None: # <<<<<<<<<<<<<< @@ -11478,7 +11478,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e */ } - /* "_pydevd_bundle/pydevd_cython.pyx":456 + /* "_pydevd_bundle/pydevd_cython.pyx":455 * lines_ignored = filename_to_lines_where_exceptions_are_ignored[filename] = {} * * try: # <<<<<<<<<<<<<< @@ -11494,16 +11494,16 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_XGOTREF(__pyx_t_12); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":457 + /* "_pydevd_bundle/pydevd_cython.pyx":456 * * try: * curr_stat = os.stat(filename) # <<<<<<<<<<<<<< * curr_stat = (curr_stat.st_size, curr_stat.st_mtime) * except: */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 457, __pyx_L17_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 456, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_stat); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 457, __pyx_L17_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_stat); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 456, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; @@ -11518,24 +11518,24 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __pyx_t_7 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_1, __pyx_v_filename) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_filename); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 457, __pyx_L17_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 456, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF_SET(__pyx_v_curr_stat, __pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":458 + /* "_pydevd_bundle/pydevd_cython.pyx":457 * try: * curr_stat = os.stat(filename) * curr_stat = (curr_stat.st_size, curr_stat.st_mtime) # <<<<<<<<<<<<<< * except: * curr_stat = None */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_curr_stat, __pyx_n_s_st_size); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 458, __pyx_L17_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_curr_stat, __pyx_n_s_st_size); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 457, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_curr_stat, __pyx_n_s_st_mtime); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 458, __pyx_L17_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_curr_stat, __pyx_n_s_st_mtime); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 457, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 458, __pyx_L17_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 457, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7); @@ -11546,7 +11546,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_DECREF_SET(__pyx_v_curr_stat, __pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":456 + /* "_pydevd_bundle/pydevd_cython.pyx":455 * lines_ignored = filename_to_lines_where_exceptions_are_ignored[filename] = {} * * try: # <<<<<<<<<<<<<< @@ -11564,7 +11564,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":459 + /* "_pydevd_bundle/pydevd_cython.pyx":458 * curr_stat = os.stat(filename) * curr_stat = (curr_stat.st_size, curr_stat.st_mtime) * except: # <<<<<<<<<<<<<< @@ -11573,12 +11573,12 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.handle_exception", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_8, &__pyx_t_7) < 0) __PYX_ERR(0, 459, __pyx_L19_except_error) + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_8, &__pyx_t_7) < 0) __PYX_ERR(0, 458, __pyx_L19_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_7); - /* "_pydevd_bundle/pydevd_cython.pyx":460 + /* "_pydevd_bundle/pydevd_cython.pyx":459 * curr_stat = (curr_stat.st_size, curr_stat.st_mtime) * except: * curr_stat = None # <<<<<<<<<<<<<< @@ -11594,7 +11594,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __pyx_L19_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":456 + /* "_pydevd_bundle/pydevd_cython.pyx":455 * lines_ignored = filename_to_lines_where_exceptions_are_ignored[filename] = {} * * try: # <<<<<<<<<<<<<< @@ -11614,16 +11614,16 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __pyx_L24_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":462 + /* "_pydevd_bundle/pydevd_cython.pyx":461 * curr_stat = None * * last_stat = self.filename_to_stat_info.get(filename) # <<<<<<<<<<<<<< * if last_stat != curr_stat: * self.filename_to_stat_info[filename] = curr_stat */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_filename_to_stat_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 462, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_filename_to_stat_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 461, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 462, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 461, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; @@ -11638,44 +11638,44 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __pyx_t_7 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_8, __pyx_v_filename) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_filename); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 462, __pyx_L4_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 461, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF_SET(__pyx_v_last_stat, __pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":463 + /* "_pydevd_bundle/pydevd_cython.pyx":462 * * last_stat = self.filename_to_stat_info.get(filename) * if last_stat != curr_stat: # <<<<<<<<<<<<<< * self.filename_to_stat_info[filename] = curr_stat * lines_ignored.clear() */ - __pyx_t_7 = PyObject_RichCompare(__pyx_v_last_stat, __pyx_v_curr_stat, Py_NE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 463, __pyx_L4_error) - __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 463, __pyx_L4_error) + __pyx_t_7 = PyObject_RichCompare(__pyx_v_last_stat, __pyx_v_curr_stat, Py_NE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 462, __pyx_L4_error) + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 462, __pyx_L4_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_4) { - /* "_pydevd_bundle/pydevd_cython.pyx":464 + /* "_pydevd_bundle/pydevd_cython.pyx":463 * last_stat = self.filename_to_stat_info.get(filename) * if last_stat != curr_stat: * self.filename_to_stat_info[filename] = curr_stat # <<<<<<<<<<<<<< * lines_ignored.clear() * try: */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_filename_to_stat_info); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 464, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_filename_to_stat_info); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 463, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); - if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_v_filename, __pyx_v_curr_stat) < 0)) __PYX_ERR(0, 464, __pyx_L4_error) + if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_v_filename, __pyx_v_curr_stat) < 0)) __PYX_ERR(0, 463, __pyx_L4_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":465 + /* "_pydevd_bundle/pydevd_cython.pyx":464 * if last_stat != curr_stat: * self.filename_to_stat_info[filename] = curr_stat * lines_ignored.clear() # <<<<<<<<<<<<<< * try: * linecache.checkcache(filename) */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_lines_ignored, __pyx_n_s_clear); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 465, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_lines_ignored, __pyx_n_s_clear); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 464, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { @@ -11689,12 +11689,12 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __pyx_t_7 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 465, __pyx_L4_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 464, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":466 + /* "_pydevd_bundle/pydevd_cython.pyx":465 * self.filename_to_stat_info[filename] = curr_stat * lines_ignored.clear() * try: # <<<<<<<<<<<<<< @@ -11710,16 +11710,16 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_XGOTREF(__pyx_t_10); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":467 + /* "_pydevd_bundle/pydevd_cython.pyx":466 * lines_ignored.clear() * try: * linecache.checkcache(filename) # <<<<<<<<<<<<<< * except: * # Jython 2.1 */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_linecache); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 467, __pyx_L28_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_linecache); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 466, __pyx_L28_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_checkcache); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 467, __pyx_L28_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_checkcache); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 466, __pyx_L28_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; @@ -11734,12 +11734,12 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __pyx_t_7 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_1, __pyx_v_filename) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_filename); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 467, __pyx_L28_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 466, __pyx_L28_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":466 + /* "_pydevd_bundle/pydevd_cython.pyx":465 * self.filename_to_stat_info[filename] = curr_stat * lines_ignored.clear() * try: # <<<<<<<<<<<<<< @@ -11757,7 +11757,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":468 + /* "_pydevd_bundle/pydevd_cython.pyx":467 * try: * linecache.checkcache(filename) * except: # <<<<<<<<<<<<<< @@ -11766,21 +11766,21 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.handle_exception", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_1) < 0) __PYX_ERR(0, 468, __pyx_L30_except_error) + if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_1) < 0) __PYX_ERR(0, 467, __pyx_L30_except_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_1); - /* "_pydevd_bundle/pydevd_cython.pyx":470 + /* "_pydevd_bundle/pydevd_cython.pyx":469 * except: * # Jython 2.1 * linecache.checkcache() # <<<<<<<<<<<<<< * * from_user_input = main_debugger.filename_to_lines_where_exceptions_are_ignored.get(filename) */ - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_linecache); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 470, __pyx_L30_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_linecache); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 469, __pyx_L30_except_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_checkcache); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 470, __pyx_L30_except_error) + __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_checkcache); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 469, __pyx_L30_except_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = NULL; @@ -11795,7 +11795,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __pyx_t_9 = (__pyx_t_13) ? __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_13) : __Pyx_PyObject_CallNoArg(__pyx_t_14); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 470, __pyx_L30_except_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 469, __pyx_L30_except_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; @@ -11806,7 +11806,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __pyx_L30_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":466 + /* "_pydevd_bundle/pydevd_cython.pyx":465 * self.filename_to_stat_info[filename] = curr_stat * lines_ignored.clear() * try: # <<<<<<<<<<<<<< @@ -11826,7 +11826,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __pyx_L35_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":463 + /* "_pydevd_bundle/pydevd_cython.pyx":462 * * last_stat = self.filename_to_stat_info.get(filename) * if last_stat != curr_stat: # <<<<<<<<<<<<<< @@ -11835,16 +11835,16 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e */ } - /* "_pydevd_bundle/pydevd_cython.pyx":472 + /* "_pydevd_bundle/pydevd_cython.pyx":471 * linecache.checkcache() * * from_user_input = main_debugger.filename_to_lines_where_exceptions_are_ignored.get(filename) # <<<<<<<<<<<<<< * if from_user_input: * merged = {} */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_filename_to_lines_where_exceptio); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 472, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_filename_to_lines_where_exceptio); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 471, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_get); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 472, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_get); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 471, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; @@ -11859,42 +11859,42 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_v_filename) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_filename); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 472, __pyx_L4_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 471, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF_SET(__pyx_v_from_user_input, __pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":473 + /* "_pydevd_bundle/pydevd_cython.pyx":472 * * from_user_input = main_debugger.filename_to_lines_where_exceptions_are_ignored.get(filename) * if from_user_input: # <<<<<<<<<<<<<< * merged = {} * merged.update(lines_ignored) */ - __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_from_user_input); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 473, __pyx_L4_error) + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_from_user_input); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 472, __pyx_L4_error) if (__pyx_t_4) { - /* "_pydevd_bundle/pydevd_cython.pyx":474 + /* "_pydevd_bundle/pydevd_cython.pyx":473 * from_user_input = main_debugger.filename_to_lines_where_exceptions_are_ignored.get(filename) * if from_user_input: * merged = {} # <<<<<<<<<<<<<< * merged.update(lines_ignored) * # Override what we have with the related entries that the user entered */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 474, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 473, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_merged, __pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":475 + /* "_pydevd_bundle/pydevd_cython.pyx":474 * if from_user_input: * merged = {} * merged.update(lines_ignored) # <<<<<<<<<<<<<< * # Override what we have with the related entries that the user entered * merged.update(from_user_input) */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_merged, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 475, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_merged, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 474, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { @@ -11908,19 +11908,19 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_v_lines_ignored) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_lines_ignored); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 475, __pyx_L4_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 474, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":477 + /* "_pydevd_bundle/pydevd_cython.pyx":476 * merged.update(lines_ignored) * # Override what we have with the related entries that the user entered * merged.update(from_user_input) # <<<<<<<<<<<<<< * else: * merged = lines_ignored */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_merged, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 477, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_merged, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 476, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { @@ -11934,12 +11934,12 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_v_from_user_input) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_from_user_input); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 477, __pyx_L4_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 476, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":473 + /* "_pydevd_bundle/pydevd_cython.pyx":472 * * from_user_input = main_debugger.filename_to_lines_where_exceptions_are_ignored.get(filename) * if from_user_input: # <<<<<<<<<<<<<< @@ -11949,7 +11949,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e goto __pyx_L38; } - /* "_pydevd_bundle/pydevd_cython.pyx":479 + /* "_pydevd_bundle/pydevd_cython.pyx":478 * merged.update(from_user_input) * else: * merged = lines_ignored # <<<<<<<<<<<<<< @@ -11962,30 +11962,30 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __pyx_L38:; - /* "_pydevd_bundle/pydevd_cython.pyx":481 + /* "_pydevd_bundle/pydevd_cython.pyx":480 * merged = lines_ignored * * exc_lineno = check_trace_obj.tb_lineno # <<<<<<<<<<<<<< * * # print ('lines ignored', lines_ignored) */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_check_trace_obj, __pyx_n_s_tb_lineno); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 481, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_check_trace_obj, __pyx_n_s_tb_lineno); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 480, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_exc_lineno, __pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":487 + /* "_pydevd_bundle/pydevd_cython.pyx":486 * # print ('merged', merged, 'curr', exc_lineno) * * if exc_lineno not in merged: # Note: check on merged but update lines_ignored. # <<<<<<<<<<<<<< * try: * line = linecache.getline(filename, exc_lineno, check_trace_obj.tb_frame.f_globals) */ - __pyx_t_4 = (__Pyx_PySequence_ContainsTF(__pyx_v_exc_lineno, __pyx_v_merged, Py_NE)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 487, __pyx_L4_error) + __pyx_t_4 = (__Pyx_PySequence_ContainsTF(__pyx_v_exc_lineno, __pyx_v_merged, Py_NE)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 486, __pyx_L4_error) __pyx_t_3 = (__pyx_t_4 != 0); if (__pyx_t_3) { - /* "_pydevd_bundle/pydevd_cython.pyx":488 + /* "_pydevd_bundle/pydevd_cython.pyx":487 * * if exc_lineno not in merged: # Note: check on merged but update lines_ignored. * try: # <<<<<<<<<<<<<< @@ -12001,21 +12001,21 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_XGOTREF(__pyx_t_12); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":489 + /* "_pydevd_bundle/pydevd_cython.pyx":488 * if exc_lineno not in merged: # Note: check on merged but update lines_ignored. * try: * line = linecache.getline(filename, exc_lineno, check_trace_obj.tb_frame.f_globals) # <<<<<<<<<<<<<< * except: * # Jython 2.1 */ - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_linecache); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 489, __pyx_L40_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_linecache); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 488, __pyx_L40_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_getline); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 489, __pyx_L40_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_getline); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 488, __pyx_L40_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_check_trace_obj, __pyx_n_s_tb_frame); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 489, __pyx_L40_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_check_trace_obj, __pyx_n_s_tb_frame); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 488, __pyx_L40_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_f_globals); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 489, __pyx_L40_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_f_globals); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 488, __pyx_L40_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; @@ -12033,7 +12033,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_filename, __pyx_v_exc_lineno, __pyx_t_9}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_15, 3+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 489, __pyx_L40_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_15, 3+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 488, __pyx_L40_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; @@ -12042,14 +12042,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_filename, __pyx_v_exc_lineno, __pyx_t_9}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_15, 3+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 489, __pyx_L40_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_15, 3+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 488, __pyx_L40_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif { - __pyx_t_14 = PyTuple_New(3+__pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 489, __pyx_L40_error) + __pyx_t_14 = PyTuple_New(3+__pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 488, __pyx_L40_error) __Pyx_GOTREF(__pyx_t_14); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7); __pyx_t_7 = NULL; @@ -12063,7 +12063,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_15, __pyx_t_9); __pyx_t_9 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_14, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 489, __pyx_L40_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_14, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 488, __pyx_L40_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } @@ -12071,7 +12071,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_XDECREF_SET(__pyx_v_line, __pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":488 + /* "_pydevd_bundle/pydevd_cython.pyx":487 * * if exc_lineno not in merged: # Note: check on merged but update lines_ignored. * try: # <<<<<<<<<<<<<< @@ -12091,7 +12091,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":490 + /* "_pydevd_bundle/pydevd_cython.pyx":489 * try: * line = linecache.getline(filename, exc_lineno, check_trace_obj.tb_frame.f_globals) * except: # <<<<<<<<<<<<<< @@ -12100,21 +12100,21 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.handle_exception", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_8, &__pyx_t_14) < 0) __PYX_ERR(0, 490, __pyx_L42_except_error) + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_8, &__pyx_t_14) < 0) __PYX_ERR(0, 489, __pyx_L42_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_14); - /* "_pydevd_bundle/pydevd_cython.pyx":492 + /* "_pydevd_bundle/pydevd_cython.pyx":491 * except: * # Jython 2.1 * line = linecache.getline(filename, exc_lineno) # <<<<<<<<<<<<<< * * if IGNORE_EXCEPTION_TAG.match(line) is not None: */ - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_linecache); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 492, __pyx_L42_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_linecache); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 491, __pyx_L42_except_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_getline); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 492, __pyx_L42_except_error) + __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_getline); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 491, __pyx_L42_except_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; @@ -12132,7 +12132,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_13)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_filename, __pyx_v_exc_lineno}; - __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 492, __pyx_L42_except_error) + __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 491, __pyx_L42_except_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_9); } else @@ -12140,13 +12140,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_filename, __pyx_v_exc_lineno}; - __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 492, __pyx_L42_except_error) + __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 491, __pyx_L42_except_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_9); } else #endif { - __pyx_t_16 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 492, __pyx_L42_except_error) + __pyx_t_16 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 491, __pyx_L42_except_error) __Pyx_GOTREF(__pyx_t_16); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_7); __pyx_t_7 = NULL; @@ -12157,7 +12157,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(__pyx_v_exc_lineno); __Pyx_GIVEREF(__pyx_v_exc_lineno); PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_15, __pyx_v_exc_lineno); - __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_16, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 492, __pyx_L42_except_error) + __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_16, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 491, __pyx_L42_except_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; } @@ -12171,7 +12171,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __pyx_L42_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":488 + /* "_pydevd_bundle/pydevd_cython.pyx":487 * * if exc_lineno not in merged: # Note: check on merged but update lines_ignored. * try: # <<<<<<<<<<<<<< @@ -12191,16 +12191,16 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __pyx_L47_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":494 + /* "_pydevd_bundle/pydevd_cython.pyx":493 * line = linecache.getline(filename, exc_lineno) * * if IGNORE_EXCEPTION_TAG.match(line) is not None: # <<<<<<<<<<<<<< * lines_ignored[exc_lineno] = 1 * return */ - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_IGNORE_EXCEPTION_TAG); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 494, __pyx_L4_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_IGNORE_EXCEPTION_TAG); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 493, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_match); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 494, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_match); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 493, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; @@ -12215,7 +12215,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __pyx_t_14 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_8, __pyx_v_line) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_line); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 494, __pyx_L4_error) + if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 493, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_t_14 != Py_None); @@ -12223,16 +12223,16 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __pyx_t_4 = (__pyx_t_3 != 0); if (__pyx_t_4) { - /* "_pydevd_bundle/pydevd_cython.pyx":495 + /* "_pydevd_bundle/pydevd_cython.pyx":494 * * if IGNORE_EXCEPTION_TAG.match(line) is not None: * lines_ignored[exc_lineno] = 1 # <<<<<<<<<<<<<< * return * else: */ - if (unlikely(PyObject_SetItem(__pyx_v_lines_ignored, __pyx_v_exc_lineno, __pyx_int_1) < 0)) __PYX_ERR(0, 495, __pyx_L4_error) + if (unlikely(PyObject_SetItem(__pyx_v_lines_ignored, __pyx_v_exc_lineno, __pyx_int_1) < 0)) __PYX_ERR(0, 494, __pyx_L4_error) - /* "_pydevd_bundle/pydevd_cython.pyx":496 + /* "_pydevd_bundle/pydevd_cython.pyx":495 * if IGNORE_EXCEPTION_TAG.match(line) is not None: * lines_ignored[exc_lineno] = 1 * return # <<<<<<<<<<<<<< @@ -12244,7 +12244,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L3_return; - /* "_pydevd_bundle/pydevd_cython.pyx":494 + /* "_pydevd_bundle/pydevd_cython.pyx":493 * line = linecache.getline(filename, exc_lineno) * * if IGNORE_EXCEPTION_TAG.match(line) is not None: # <<<<<<<<<<<<<< @@ -12253,7 +12253,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e */ } - /* "_pydevd_bundle/pydevd_cython.pyx":499 + /* "_pydevd_bundle/pydevd_cython.pyx":498 * else: * # Put in the cache saying not to ignore * lines_ignored[exc_lineno] = 0 # <<<<<<<<<<<<<< @@ -12261,10 +12261,10 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e * # Ok, dict has it already cached, so, let's check it... */ /*else*/ { - if (unlikely(PyObject_SetItem(__pyx_v_lines_ignored, __pyx_v_exc_lineno, __pyx_int_0) < 0)) __PYX_ERR(0, 499, __pyx_L4_error) + if (unlikely(PyObject_SetItem(__pyx_v_lines_ignored, __pyx_v_exc_lineno, __pyx_int_0) < 0)) __PYX_ERR(0, 498, __pyx_L4_error) } - /* "_pydevd_bundle/pydevd_cython.pyx":487 + /* "_pydevd_bundle/pydevd_cython.pyx":486 * # print ('merged', merged, 'curr', exc_lineno) * * if exc_lineno not in merged: # Note: check on merged but update lines_ignored. # <<<<<<<<<<<<<< @@ -12274,7 +12274,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e goto __pyx_L39; } - /* "_pydevd_bundle/pydevd_cython.pyx":502 + /* "_pydevd_bundle/pydevd_cython.pyx":501 * else: * # Ok, dict has it already cached, so, let's check it... * if merged.get(exc_lineno, 0): # <<<<<<<<<<<<<< @@ -12282,7 +12282,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e * */ /*else*/ { - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_merged, __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 502, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_merged, __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 501, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = NULL; __pyx_t_15 = 0; @@ -12299,7 +12299,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_exc_lineno, __pyx_int_0}; - __pyx_t_14 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 502, __pyx_L4_error) + __pyx_t_14 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 501, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_14); } else @@ -12307,13 +12307,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_exc_lineno, __pyx_int_0}; - __pyx_t_14 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 502, __pyx_L4_error) + __pyx_t_14 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 501, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_14); } else #endif { - __pyx_t_9 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 502, __pyx_L4_error) + __pyx_t_9 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 501, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; @@ -12324,16 +12324,16 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_15, __pyx_int_0); - __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 502, __pyx_L4_error) + __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 501, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 502, __pyx_L4_error) + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 501, __pyx_L4_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (__pyx_t_4) { - /* "_pydevd_bundle/pydevd_cython.pyx":503 + /* "_pydevd_bundle/pydevd_cython.pyx":502 * # Ok, dict has it already cached, so, let's check it... * if merged.get(exc_lineno, 0): * return # <<<<<<<<<<<<<< @@ -12345,7 +12345,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L3_return; - /* "_pydevd_bundle/pydevd_cython.pyx":502 + /* "_pydevd_bundle/pydevd_cython.pyx":501 * else: * # Ok, dict has it already cached, so, let's check it... * if merged.get(exc_lineno, 0): # <<<<<<<<<<<<<< @@ -12356,7 +12356,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __pyx_L39:; - /* "_pydevd_bundle/pydevd_cython.pyx":447 + /* "_pydevd_bundle/pydevd_cython.pyx":446 * if main_debugger.ignore_exceptions_thrown_in_lines_with_ignore_exception \ * and not main_debugger.stop_on_failed_tests: * for check_trace_obj in (initial_trace_obj, trace_obj): # <<<<<<<<<<<<<< @@ -12366,7 +12366,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":445 + /* "_pydevd_bundle/pydevd_cython.pyx":444 * trace_obj = trace_obj.tb_next * * if main_debugger.ignore_exceptions_thrown_in_lines_with_ignore_exception \ # <<<<<<<<<<<<<< @@ -12375,7 +12375,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e */ } - /* "_pydevd_bundle/pydevd_cython.pyx":505 + /* "_pydevd_bundle/pydevd_cython.pyx":504 * return * * thread = self._args[3] # <<<<<<<<<<<<<< @@ -12384,14 +12384,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e */ if (unlikely(__pyx_v_self->_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 505, __pyx_L4_error) + __PYX_ERR(0, 504, __pyx_L4_error) } - __pyx_t_5 = __Pyx_GetItemInt_Tuple(__pyx_v_self->_args, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 505, __pyx_L4_error) + __pyx_t_5 = __Pyx_GetItemInt_Tuple(__pyx_v_self->_args, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 504, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); __pyx_v_thread = __pyx_t_5; __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":507 + /* "_pydevd_bundle/pydevd_cython.pyx":506 * thread = self._args[3] * * try: # <<<<<<<<<<<<<< @@ -12407,43 +12407,43 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_XGOTREF(__pyx_t_10); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":508 + /* "_pydevd_bundle/pydevd_cython.pyx":507 * * try: * frame_id_to_frame = {} # <<<<<<<<<<<<<< * frame_id_to_frame[id(frame)] = frame * f = trace_obj.tb_frame */ - __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 508, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 507, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_5); __pyx_v_frame_id_to_frame = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":509 + /* "_pydevd_bundle/pydevd_cython.pyx":508 * try: * frame_id_to_frame = {} * frame_id_to_frame[id(frame)] = frame # <<<<<<<<<<<<<< * f = trace_obj.tb_frame * while f is not None: */ - __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, __pyx_v_frame); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 509, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, __pyx_v_frame); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 508, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_5); - if (unlikely(PyDict_SetItem(__pyx_v_frame_id_to_frame, __pyx_t_5, __pyx_v_frame) < 0)) __PYX_ERR(0, 509, __pyx_L52_error) + if (unlikely(PyDict_SetItem(__pyx_v_frame_id_to_frame, __pyx_t_5, __pyx_v_frame) < 0)) __PYX_ERR(0, 508, __pyx_L52_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":510 + /* "_pydevd_bundle/pydevd_cython.pyx":509 * frame_id_to_frame = {} * frame_id_to_frame[id(frame)] = frame * f = trace_obj.tb_frame # <<<<<<<<<<<<<< * while f is not None: * frame_id_to_frame[id(f)] = f */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_trace_obj, __pyx_n_s_tb_frame); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 510, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_trace_obj, __pyx_n_s_tb_frame); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 509, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_5); __pyx_v_f = __pyx_t_5; __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":511 + /* "_pydevd_bundle/pydevd_cython.pyx":510 * frame_id_to_frame[id(frame)] = frame * f = trace_obj.tb_frame * while f is not None: # <<<<<<<<<<<<<< @@ -12455,32 +12455,32 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __pyx_t_3 = (__pyx_t_4 != 0); if (!__pyx_t_3) break; - /* "_pydevd_bundle/pydevd_cython.pyx":512 + /* "_pydevd_bundle/pydevd_cython.pyx":511 * f = trace_obj.tb_frame * while f is not None: * frame_id_to_frame[id(f)] = f # <<<<<<<<<<<<<< * f = f.f_back * f = None */ - __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, __pyx_v_f); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 512, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, __pyx_v_f); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 511, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_5); - if (unlikely(PyDict_SetItem(__pyx_v_frame_id_to_frame, __pyx_t_5, __pyx_v_f) < 0)) __PYX_ERR(0, 512, __pyx_L52_error) + if (unlikely(PyDict_SetItem(__pyx_v_frame_id_to_frame, __pyx_t_5, __pyx_v_f) < 0)) __PYX_ERR(0, 511, __pyx_L52_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":513 + /* "_pydevd_bundle/pydevd_cython.pyx":512 * while f is not None: * frame_id_to_frame[id(f)] = f * f = f.f_back # <<<<<<<<<<<<<< * f = None * */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s_f_back); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 513, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s_f_back); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 512, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF_SET(__pyx_v_f, __pyx_t_5); __pyx_t_5 = 0; } - /* "_pydevd_bundle/pydevd_cython.pyx":514 + /* "_pydevd_bundle/pydevd_cython.pyx":513 * frame_id_to_frame[id(f)] = f * f = f.f_back * f = None # <<<<<<<<<<<<<< @@ -12490,14 +12490,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(Py_None); __Pyx_DECREF_SET(__pyx_v_f, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":516 + /* "_pydevd_bundle/pydevd_cython.pyx":515 * f = None * * thread_id = get_current_thread_id(thread) # <<<<<<<<<<<<<< * * if main_debugger.stop_on_failed_tests: */ - __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_get_current_thread_id); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 516, __pyx_L52_error) + __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_get_current_thread_id); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 515, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) { @@ -12511,38 +12511,38 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __pyx_t_5 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_1, __pyx_v_thread) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_v_thread); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 516, __pyx_L52_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 515, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_v_thread_id = __pyx_t_5; __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":518 + /* "_pydevd_bundle/pydevd_cython.pyx":517 * thread_id = get_current_thread_id(thread) * * if main_debugger.stop_on_failed_tests: # <<<<<<<<<<<<<< * # Our goal is to find the deepest frame in stack that still belongs to the project and stop there. * f = trace_obj.tb_frame */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_stop_on_failed_tests); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 518, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_stop_on_failed_tests); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 517, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 518, __pyx_L52_error) + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 517, __pyx_L52_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_3) { - /* "_pydevd_bundle/pydevd_cython.pyx":520 + /* "_pydevd_bundle/pydevd_cython.pyx":519 * if main_debugger.stop_on_failed_tests: * # Our goal is to find the deepest frame in stack that still belongs to the project and stop there. * f = trace_obj.tb_frame # <<<<<<<<<<<<<< * while f: * abs_path, _, _ = get_abs_path_real_path_and_base_from_frame(f) */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_trace_obj, __pyx_n_s_tb_frame); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 520, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_trace_obj, __pyx_n_s_tb_frame); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 519, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF_SET(__pyx_v_f, __pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":521 + /* "_pydevd_bundle/pydevd_cython.pyx":520 * # Our goal is to find the deepest frame in stack that still belongs to the project and stop there. * f = trace_obj.tb_frame * while f: # <<<<<<<<<<<<<< @@ -12550,17 +12550,17 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e * if main_debugger.in_project_scope(abs_path): */ while (1) { - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_f); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 521, __pyx_L52_error) + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_f); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 520, __pyx_L52_error) if (!__pyx_t_3) break; - /* "_pydevd_bundle/pydevd_cython.pyx":522 + /* "_pydevd_bundle/pydevd_cython.pyx":521 * f = trace_obj.tb_frame * while f: * abs_path, _, _ = get_abs_path_real_path_and_base_from_frame(f) # <<<<<<<<<<<<<< * if main_debugger.in_project_scope(abs_path): * frame = f */ - __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_get_abs_path_real_path_and_base); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 522, __pyx_L52_error) + __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_get_abs_path_real_path_and_base); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 521, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) { @@ -12574,7 +12574,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __pyx_t_5 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_1, __pyx_v_f) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_v_f); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 522, __pyx_L52_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 521, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) { @@ -12583,7 +12583,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 522, __pyx_L52_error) + __PYX_ERR(0, 521, __pyx_L52_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -12599,17 +12599,17 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_9); #else - __pyx_t_14 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 522, __pyx_L52_error) + __pyx_t_14 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 521, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_14); - __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 522, __pyx_L52_error) + __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 521, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_9 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 522, __pyx_L52_error) + __pyx_t_9 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 521, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_9); #endif __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else { Py_ssize_t index = -1; - __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 522, __pyx_L52_error) + __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 521, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_17 = Py_TYPE(__pyx_t_8)->tp_iternext; @@ -12619,7 +12619,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_GOTREF(__pyx_t_1); index = 2; __pyx_t_9 = __pyx_t_17(__pyx_t_8); if (unlikely(!__pyx_t_9)) goto __pyx_L63_unpacking_failed; __Pyx_GOTREF(__pyx_t_9); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_8), 3) < 0) __PYX_ERR(0, 522, __pyx_L52_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_8), 3) < 0) __PYX_ERR(0, 521, __pyx_L52_error) __pyx_t_17 = NULL; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L64_unpacking_done; @@ -12627,7 +12627,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_17 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 522, __pyx_L52_error) + __PYX_ERR(0, 521, __pyx_L52_error) __pyx_L64_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_abs_path, __pyx_t_14); @@ -12637,14 +12637,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_DECREF_SET(__pyx_v__, __pyx_t_9); __pyx_t_9 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":523 + /* "_pydevd_bundle/pydevd_cython.pyx":522 * while f: * abs_path, _, _ = get_abs_path_real_path_and_base_from_frame(f) * if main_debugger.in_project_scope(abs_path): # <<<<<<<<<<<<<< * frame = f * break */ - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_in_project_scope); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 523, __pyx_L52_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_in_project_scope); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 522, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { @@ -12658,14 +12658,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __pyx_t_5 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_1, __pyx_v_abs_path) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_v_abs_path); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 523, __pyx_L52_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 522, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 523, __pyx_L52_error) + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 522, __pyx_L52_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_3) { - /* "_pydevd_bundle/pydevd_cython.pyx":524 + /* "_pydevd_bundle/pydevd_cython.pyx":523 * abs_path, _, _ = get_abs_path_real_path_and_base_from_frame(f) * if main_debugger.in_project_scope(abs_path): * frame = f # <<<<<<<<<<<<<< @@ -12675,7 +12675,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(__pyx_v_f); __Pyx_DECREF_SET(__pyx_v_frame, __pyx_v_f); - /* "_pydevd_bundle/pydevd_cython.pyx":525 + /* "_pydevd_bundle/pydevd_cython.pyx":524 * if main_debugger.in_project_scope(abs_path): * frame = f * break # <<<<<<<<<<<<<< @@ -12684,7 +12684,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e */ goto __pyx_L62_break; - /* "_pydevd_bundle/pydevd_cython.pyx":523 + /* "_pydevd_bundle/pydevd_cython.pyx":522 * while f: * abs_path, _, _ = get_abs_path_real_path_and_base_from_frame(f) * if main_debugger.in_project_scope(abs_path): # <<<<<<<<<<<<<< @@ -12693,21 +12693,21 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e */ } - /* "_pydevd_bundle/pydevd_cython.pyx":526 + /* "_pydevd_bundle/pydevd_cython.pyx":525 * frame = f * break * f = f.f_back # <<<<<<<<<<<<<< * f = None * */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s_f_back); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 526, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s_f_back); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 525, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF_SET(__pyx_v_f, __pyx_t_5); __pyx_t_5 = 0; } __pyx_L62_break:; - /* "_pydevd_bundle/pydevd_cython.pyx":527 + /* "_pydevd_bundle/pydevd_cython.pyx":526 * break * f = f.f_back * f = None # <<<<<<<<<<<<<< @@ -12717,7 +12717,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(Py_None); __Pyx_DECREF_SET(__pyx_v_f, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":529 + /* "_pydevd_bundle/pydevd_cython.pyx":528 * f = None * * trace_obj = initial_trace_obj # <<<<<<<<<<<<<< @@ -12727,7 +12727,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(__pyx_v_initial_trace_obj); __Pyx_DECREF_SET(__pyx_v_trace_obj, __pyx_v_initial_trace_obj); - /* "_pydevd_bundle/pydevd_cython.pyx":530 + /* "_pydevd_bundle/pydevd_cython.pyx":529 * * trace_obj = initial_trace_obj * while trace_obj: # <<<<<<<<<<<<<< @@ -12735,24 +12735,24 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e * break */ while (1) { - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_trace_obj); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 530, __pyx_L52_error) + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_trace_obj); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 529, __pyx_L52_error) if (!__pyx_t_3) break; - /* "_pydevd_bundle/pydevd_cython.pyx":531 + /* "_pydevd_bundle/pydevd_cython.pyx":530 * trace_obj = initial_trace_obj * while trace_obj: * if trace_obj.tb_frame is frame: # <<<<<<<<<<<<<< * break * trace_obj = trace_obj.tb_next */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_trace_obj, __pyx_n_s_tb_frame); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 531, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_trace_obj, __pyx_n_s_tb_frame); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 530, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = (__pyx_t_5 == __pyx_v_frame); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_4 = (__pyx_t_3 != 0); if (__pyx_t_4) { - /* "_pydevd_bundle/pydevd_cython.pyx":532 + /* "_pydevd_bundle/pydevd_cython.pyx":531 * while trace_obj: * if trace_obj.tb_frame is frame: * break # <<<<<<<<<<<<<< @@ -12761,7 +12761,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e */ goto __pyx_L67_break; - /* "_pydevd_bundle/pydevd_cython.pyx":531 + /* "_pydevd_bundle/pydevd_cython.pyx":530 * trace_obj = initial_trace_obj * while trace_obj: * if trace_obj.tb_frame is frame: # <<<<<<<<<<<<<< @@ -12770,34 +12770,34 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e */ } - /* "_pydevd_bundle/pydevd_cython.pyx":533 + /* "_pydevd_bundle/pydevd_cython.pyx":532 * if trace_obj.tb_frame is frame: * break * trace_obj = trace_obj.tb_next # <<<<<<<<<<<<<< * * add_exception_to_frame(frame, (arg[0], arg[1], trace_obj)) */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_trace_obj, __pyx_n_s_tb_next); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 533, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_trace_obj, __pyx_n_s_tb_next); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 532, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF_SET(__pyx_v_trace_obj, __pyx_t_5); __pyx_t_5 = 0; } __pyx_L67_break:; - /* "_pydevd_bundle/pydevd_cython.pyx":535 + /* "_pydevd_bundle/pydevd_cython.pyx":534 * trace_obj = trace_obj.tb_next * * add_exception_to_frame(frame, (arg[0], arg[1], trace_obj)) # <<<<<<<<<<<<<< * * pydevd_vars.add_additional_frame_by_id(thread_id, frame_id_to_frame) */ - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_add_exception_to_frame); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 535, __pyx_L52_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_add_exception_to_frame); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 534, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_arg, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 535, __pyx_L52_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_arg, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 534, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_14 = __Pyx_GetItemInt(__pyx_v_arg, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 535, __pyx_L52_error) + __pyx_t_14 = __Pyx_GetItemInt(__pyx_v_arg, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 534, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_14); - __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 535, __pyx_L52_error) + __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 534, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1); @@ -12823,7 +12823,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_v_frame, __pyx_t_8}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 535, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 534, __pyx_L52_error) __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; @@ -12832,14 +12832,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_v_frame, __pyx_t_8}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 535, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 534, __pyx_L52_error) __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif { - __pyx_t_1 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 535, __pyx_L52_error) + __pyx_t_1 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 534, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_14) { __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_14); __pyx_t_14 = NULL; @@ -12850,14 +12850,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_15, __pyx_t_8); __pyx_t_8 = 0; - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 535, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 534, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":518 + /* "_pydevd_bundle/pydevd_cython.pyx":517 * thread_id = get_current_thread_id(thread) * * if main_debugger.stop_on_failed_tests: # <<<<<<<<<<<<<< @@ -12866,16 +12866,16 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e */ } - /* "_pydevd_bundle/pydevd_cython.pyx":537 + /* "_pydevd_bundle/pydevd_cython.pyx":536 * add_exception_to_frame(frame, (arg[0], arg[1], trace_obj)) * * pydevd_vars.add_additional_frame_by_id(thread_id, frame_id_to_frame) # <<<<<<<<<<<<<< * * try: */ - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_pydevd_vars); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 537, __pyx_L52_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_pydevd_vars); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 536, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_add_additional_frame_by_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 537, __pyx_L52_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_add_additional_frame_by_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 536, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; @@ -12893,7 +12893,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_v_thread_id, __pyx_v_frame_id_to_frame}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 537, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 536, __pyx_L52_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_5); } else @@ -12901,13 +12901,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_v_thread_id, __pyx_v_frame_id_to_frame}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 537, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 536, __pyx_L52_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif { - __pyx_t_8 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 537, __pyx_L52_error) + __pyx_t_8 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 536, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_9); __pyx_t_9 = NULL; @@ -12918,14 +12918,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(__pyx_v_frame_id_to_frame); __Pyx_GIVEREF(__pyx_v_frame_id_to_frame); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_15, __pyx_v_frame_id_to_frame); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 537, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 536, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":539 + /* "_pydevd_bundle/pydevd_cython.pyx":538 * pydevd_vars.add_additional_frame_by_id(thread_id, frame_id_to_frame) * * try: # <<<<<<<<<<<<<< @@ -12934,16 +12934,16 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e */ /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":540 + /* "_pydevd_bundle/pydevd_cython.pyx":539 * * try: * main_debugger.send_caught_exception_stack(thread, arg, id(frame)) # <<<<<<<<<<<<<< * self.set_suspend(thread, CMD_STEP_CAUGHT_EXCEPTION) * self.do_wait_suspend(thread, frame, event, arg) */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_send_caught_exception_stack); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 540, __pyx_L70_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_send_caught_exception_stack); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 539, __pyx_L70_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, __pyx_v_frame); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 540, __pyx_L70_error) + __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, __pyx_v_frame); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 539, __pyx_L70_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = NULL; __pyx_t_15 = 0; @@ -12960,7 +12960,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_v_thread, __pyx_v_arg, __pyx_t_8}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_15, 3+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 540, __pyx_L70_error) + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_15, 3+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 539, __pyx_L70_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; @@ -12969,14 +12969,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_v_thread, __pyx_v_arg, __pyx_t_8}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_15, 3+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 540, __pyx_L70_error) + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_15, 3+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 539, __pyx_L70_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif { - __pyx_t_14 = PyTuple_New(3+__pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 540, __pyx_L70_error) + __pyx_t_14 = PyTuple_New(3+__pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 539, __pyx_L70_error) __Pyx_GOTREF(__pyx_t_14); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_9); __pyx_t_9 = NULL; @@ -12990,23 +12990,23 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_15, __pyx_t_8); __pyx_t_8 = 0; - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 540, __pyx_L70_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 539, __pyx_L70_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":541 + /* "_pydevd_bundle/pydevd_cython.pyx":540 * try: * main_debugger.send_caught_exception_stack(thread, arg, id(frame)) * self.set_suspend(thread, CMD_STEP_CAUGHT_EXCEPTION) # <<<<<<<<<<<<<< * self.do_wait_suspend(thread, frame, event, arg) * main_debugger.send_caught_exception_stack_proceeded(thread) */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_suspend); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 541, __pyx_L70_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_suspend); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 540, __pyx_L70_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_CMD_STEP_CAUGHT_EXCEPTION); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 541, __pyx_L70_error) + __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_CMD_STEP_CAUGHT_EXCEPTION); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 540, __pyx_L70_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_8 = NULL; __pyx_t_15 = 0; @@ -13023,7 +13023,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_thread, __pyx_t_14}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 541, __pyx_L70_error) + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 540, __pyx_L70_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; @@ -13032,14 +13032,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_thread, __pyx_t_14}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 541, __pyx_L70_error) + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 540, __pyx_L70_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } else #endif { - __pyx_t_9 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 541, __pyx_L70_error) + __pyx_t_9 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 540, __pyx_L70_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; @@ -13050,21 +13050,21 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_15, __pyx_t_14); __pyx_t_14 = 0; - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 541, __pyx_L70_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 540, __pyx_L70_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":542 + /* "_pydevd_bundle/pydevd_cython.pyx":541 * main_debugger.send_caught_exception_stack(thread, arg, id(frame)) * self.set_suspend(thread, CMD_STEP_CAUGHT_EXCEPTION) * self.do_wait_suspend(thread, frame, event, arg) # <<<<<<<<<<<<<< * main_debugger.send_caught_exception_stack_proceeded(thread) * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_do_wait_suspend); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 542, __pyx_L70_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_do_wait_suspend); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 541, __pyx_L70_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = NULL; __pyx_t_15 = 0; @@ -13081,7 +13081,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[5] = {__pyx_t_9, __pyx_v_thread, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_15, 4+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 542, __pyx_L70_error) + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_15, 4+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 541, __pyx_L70_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_5); } else @@ -13089,13 +13089,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[5] = {__pyx_t_9, __pyx_v_thread, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_15, 4+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 542, __pyx_L70_error) + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_15, 4+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 541, __pyx_L70_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif { - __pyx_t_14 = PyTuple_New(4+__pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 542, __pyx_L70_error) + __pyx_t_14 = PyTuple_New(4+__pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 541, __pyx_L70_error) __Pyx_GOTREF(__pyx_t_14); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_9); __pyx_t_9 = NULL; @@ -13112,21 +13112,21 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_15, __pyx_v_arg); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 542, __pyx_L70_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 541, __pyx_L70_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":543 + /* "_pydevd_bundle/pydevd_cython.pyx":542 * self.set_suspend(thread, CMD_STEP_CAUGHT_EXCEPTION) * self.do_wait_suspend(thread, frame, event, arg) * main_debugger.send_caught_exception_stack_proceeded(thread) # <<<<<<<<<<<<<< * * finally: */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_send_caught_exception_stack_proc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 543, __pyx_L70_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_send_caught_exception_stack_proc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 542, __pyx_L70_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { @@ -13140,13 +13140,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __pyx_t_5 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_14, __pyx_v_thread) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_thread); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 543, __pyx_L70_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 542, __pyx_L70_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } - /* "_pydevd_bundle/pydevd_cython.pyx":546 + /* "_pydevd_bundle/pydevd_cython.pyx":545 * * finally: * pydevd_vars.remove_additional_frame_by_id(thread_id) # <<<<<<<<<<<<<< @@ -13155,9 +13155,9 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e */ /*finally:*/ { /*normal exit:*/{ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pydevd_vars); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 546, __pyx_L52_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pydevd_vars); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 545, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_remove_additional_frame_by_id); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 546, __pyx_L52_error) + __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_remove_additional_frame_by_id); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 545, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; @@ -13172,7 +13172,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __pyx_t_5 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_1, __pyx_v_thread_id) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_v_thread_id); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 546, __pyx_L52_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 545, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -13201,9 +13201,9 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_XGOTREF(__pyx_t_25); __pyx_t_15 = __pyx_lineno; __pyx_t_18 = __pyx_clineno; __pyx_t_19 = __pyx_filename; { - __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_pydevd_vars); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 546, __pyx_L73_error) + __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_pydevd_vars); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 545, __pyx_L73_error) __Pyx_GOTREF(__pyx_t_14); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_remove_additional_frame_by_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 546, __pyx_L73_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_remove_additional_frame_by_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 545, __pyx_L73_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = NULL; @@ -13218,7 +13218,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __pyx_t_5 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_14, __pyx_v_thread_id) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_thread_id); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 546, __pyx_L73_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 545, __pyx_L73_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -13252,7 +13252,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __pyx_L71:; } - /* "_pydevd_bundle/pydevd_cython.pyx":507 + /* "_pydevd_bundle/pydevd_cython.pyx":506 * thread = self._args[3] * * try: # <<<<<<<<<<<<<< @@ -13274,7 +13274,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":547 + /* "_pydevd_bundle/pydevd_cython.pyx":546 * finally: * pydevd_vars.remove_additional_frame_by_id(thread_id) * except KeyboardInterrupt as e: # <<<<<<<<<<<<<< @@ -13284,14 +13284,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __pyx_t_18 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyboardInterrupt); if (__pyx_t_18) { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.handle_exception", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_14) < 0) __PYX_ERR(0, 547, __pyx_L54_except_error) + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_14) < 0) __PYX_ERR(0, 546, __pyx_L54_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF(__pyx_t_1); __pyx_v_e = __pyx_t_1; - /* "_pydevd_bundle/pydevd_cython.pyx":548 + /* "_pydevd_bundle/pydevd_cython.pyx":547 * pydevd_vars.remove_additional_frame_by_id(thread_id) * except KeyboardInterrupt as e: * raise e # <<<<<<<<<<<<<< @@ -13299,10 +13299,10 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e * traceback.print_exc() */ __Pyx_Raise(__pyx_v_e, 0, 0, 0); - __PYX_ERR(0, 548, __pyx_L54_except_error) + __PYX_ERR(0, 547, __pyx_L54_except_error) } - /* "_pydevd_bundle/pydevd_cython.pyx":549 + /* "_pydevd_bundle/pydevd_cython.pyx":548 * except KeyboardInterrupt as e: * raise e * except: # <<<<<<<<<<<<<< @@ -13311,21 +13311,21 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.handle_exception", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_14, &__pyx_t_1, &__pyx_t_5) < 0) __PYX_ERR(0, 549, __pyx_L54_except_error) + if (__Pyx_GetException(&__pyx_t_14, &__pyx_t_1, &__pyx_t_5) < 0) __PYX_ERR(0, 548, __pyx_L54_except_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_5); - /* "_pydevd_bundle/pydevd_cython.pyx":550 + /* "_pydevd_bundle/pydevd_cython.pyx":549 * raise e * except: * traceback.print_exc() # <<<<<<<<<<<<<< * * main_debugger.set_trace_for_frame_and_parents(frame) */ - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_traceback); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 550, __pyx_L54_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_traceback); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 549, __pyx_L54_except_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 550, __pyx_L54_except_error) + __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 549, __pyx_L54_except_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; @@ -13340,7 +13340,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __pyx_t_9 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_13); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 550, __pyx_L54_except_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 549, __pyx_L54_except_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; @@ -13351,7 +13351,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __pyx_L54_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":507 + /* "_pydevd_bundle/pydevd_cython.pyx":506 * thread = self._args[3] * * try: # <<<<<<<<<<<<<< @@ -13371,14 +13371,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __pyx_L57_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":552 + /* "_pydevd_bundle/pydevd_cython.pyx":551 * traceback.print_exc() * * main_debugger.set_trace_for_frame_and_parents(frame) # <<<<<<<<<<<<<< * finally: * # Make sure the user cannot see the '__exception__' we added after we leave the suspend state. */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_set_trace_for_frame_and_parents); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 552, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_set_trace_for_frame_and_parents); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 551, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { @@ -13392,13 +13392,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __pyx_t_5 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_14, __pyx_v_frame) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_frame); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 552, __pyx_L4_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 551, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } - /* "_pydevd_bundle/pydevd_cython.pyx":555 + /* "_pydevd_bundle/pydevd_cython.pyx":554 * finally: * # Make sure the user cannot see the '__exception__' we added after we leave the suspend state. * remove_exception_from_frame(frame) # <<<<<<<<<<<<<< @@ -13407,7 +13407,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e */ /*finally:*/ { /*normal exit:*/{ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_remove_exception_from_frame); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 555, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_remove_exception_from_frame); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { @@ -13421,12 +13421,12 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __pyx_t_5 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_14, __pyx_v_frame) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_frame); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 555, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":557 + /* "_pydevd_bundle/pydevd_cython.pyx":556 * remove_exception_from_frame(frame) * # Clear some local variables... * frame = None # <<<<<<<<<<<<<< @@ -13436,7 +13436,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(Py_None); __Pyx_DECREF_SET(__pyx_v_frame, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":558 + /* "_pydevd_bundle/pydevd_cython.pyx":557 * # Clear some local variables... * frame = None * trace_obj = None # <<<<<<<<<<<<<< @@ -13446,7 +13446,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(Py_None); __Pyx_DECREF_SET(__pyx_v_trace_obj, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":559 + /* "_pydevd_bundle/pydevd_cython.pyx":558 * frame = None * trace_obj = None * initial_trace_obj = None # <<<<<<<<<<<<<< @@ -13456,7 +13456,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(Py_None); __Pyx_DECREF_SET(__pyx_v_initial_trace_obj, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":560 + /* "_pydevd_bundle/pydevd_cython.pyx":559 * trace_obj = None * initial_trace_obj = None * check_trace_obj = None # <<<<<<<<<<<<<< @@ -13466,7 +13466,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_check_trace_obj, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":561 + /* "_pydevd_bundle/pydevd_cython.pyx":560 * initial_trace_obj = None * check_trace_obj = None * f = None # <<<<<<<<<<<<<< @@ -13476,7 +13476,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_f, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":562 + /* "_pydevd_bundle/pydevd_cython.pyx":561 * check_trace_obj = None * f = None * frame_id_to_frame = None # <<<<<<<<<<<<<< @@ -13486,7 +13486,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_frame_id_to_frame, ((PyObject*)Py_None)); - /* "_pydevd_bundle/pydevd_cython.pyx":563 + /* "_pydevd_bundle/pydevd_cython.pyx":562 * f = None * frame_id_to_frame = None * main_debugger = None # <<<<<<<<<<<<<< @@ -13496,7 +13496,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(Py_None); __Pyx_DECREF_SET(__pyx_v_main_debugger, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":564 + /* "_pydevd_bundle/pydevd_cython.pyx":563 * frame_id_to_frame = None * main_debugger = None * thread = None # <<<<<<<<<<<<<< @@ -13531,14 +13531,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __pyx_t_18 = __pyx_lineno; __pyx_t_15 = __pyx_clineno; __pyx_t_26 = __pyx_filename; { - /* "_pydevd_bundle/pydevd_cython.pyx":555 + /* "_pydevd_bundle/pydevd_cython.pyx":554 * finally: * # Make sure the user cannot see the '__exception__' we added after we leave the suspend state. * remove_exception_from_frame(frame) # <<<<<<<<<<<<<< * # Clear some local variables... * frame = None */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_remove_exception_from_frame); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 555, __pyx_L79_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_remove_exception_from_frame); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 554, __pyx_L79_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { @@ -13552,12 +13552,12 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __pyx_t_5 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_14, __pyx_v_frame) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_frame); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 555, __pyx_L79_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 554, __pyx_L79_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":557 + /* "_pydevd_bundle/pydevd_cython.pyx":556 * remove_exception_from_frame(frame) * # Clear some local variables... * frame = None # <<<<<<<<<<<<<< @@ -13567,7 +13567,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(Py_None); __Pyx_DECREF_SET(__pyx_v_frame, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":558 + /* "_pydevd_bundle/pydevd_cython.pyx":557 * # Clear some local variables... * frame = None * trace_obj = None # <<<<<<<<<<<<<< @@ -13577,7 +13577,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_trace_obj, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":559 + /* "_pydevd_bundle/pydevd_cython.pyx":558 * frame = None * trace_obj = None * initial_trace_obj = None # <<<<<<<<<<<<<< @@ -13587,7 +13587,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_initial_trace_obj, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":560 + /* "_pydevd_bundle/pydevd_cython.pyx":559 * trace_obj = None * initial_trace_obj = None * check_trace_obj = None # <<<<<<<<<<<<<< @@ -13597,7 +13597,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_check_trace_obj, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":561 + /* "_pydevd_bundle/pydevd_cython.pyx":560 * initial_trace_obj = None * check_trace_obj = None * f = None # <<<<<<<<<<<<<< @@ -13607,7 +13607,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_f, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":562 + /* "_pydevd_bundle/pydevd_cython.pyx":561 * check_trace_obj = None * f = None * frame_id_to_frame = None # <<<<<<<<<<<<<< @@ -13617,7 +13617,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_frame_id_to_frame, ((PyObject*)Py_None)); - /* "_pydevd_bundle/pydevd_cython.pyx":563 + /* "_pydevd_bundle/pydevd_cython.pyx":562 * f = None * frame_id_to_frame = None * main_debugger = None # <<<<<<<<<<<<<< @@ -13627,7 +13627,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_main_debugger, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":564 + /* "_pydevd_bundle/pydevd_cython.pyx":563 * frame_id_to_frame = None * main_debugger = None * thread = None # <<<<<<<<<<<<<< @@ -13667,14 +13667,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __pyx_t_23 = __pyx_r; __pyx_r = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":555 + /* "_pydevd_bundle/pydevd_cython.pyx":554 * finally: * # Make sure the user cannot see the '__exception__' we added after we leave the suspend state. * remove_exception_from_frame(frame) # <<<<<<<<<<<<<< * # Clear some local variables... * frame = None */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_remove_exception_from_frame); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 555, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_remove_exception_from_frame); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { @@ -13688,12 +13688,12 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e } __pyx_t_5 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_14, __pyx_v_frame) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_frame); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 555, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":557 + /* "_pydevd_bundle/pydevd_cython.pyx":556 * remove_exception_from_frame(frame) * # Clear some local variables... * frame = None # <<<<<<<<<<<<<< @@ -13703,7 +13703,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(Py_None); __Pyx_DECREF_SET(__pyx_v_frame, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":558 + /* "_pydevd_bundle/pydevd_cython.pyx":557 * # Clear some local variables... * frame = None * trace_obj = None # <<<<<<<<<<<<<< @@ -13713,7 +13713,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(Py_None); __Pyx_DECREF_SET(__pyx_v_trace_obj, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":559 + /* "_pydevd_bundle/pydevd_cython.pyx":558 * frame = None * trace_obj = None * initial_trace_obj = None # <<<<<<<<<<<<<< @@ -13723,7 +13723,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(Py_None); __Pyx_DECREF_SET(__pyx_v_initial_trace_obj, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":560 + /* "_pydevd_bundle/pydevd_cython.pyx":559 * trace_obj = None * initial_trace_obj = None * check_trace_obj = None # <<<<<<<<<<<<<< @@ -13733,7 +13733,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_check_trace_obj, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":561 + /* "_pydevd_bundle/pydevd_cython.pyx":560 * initial_trace_obj = None * check_trace_obj = None * f = None # <<<<<<<<<<<<<< @@ -13743,7 +13743,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_f, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":562 + /* "_pydevd_bundle/pydevd_cython.pyx":561 * check_trace_obj = None * f = None * frame_id_to_frame = None # <<<<<<<<<<<<<< @@ -13753,7 +13753,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_frame_id_to_frame, ((PyObject*)Py_None)); - /* "_pydevd_bundle/pydevd_cython.pyx":563 + /* "_pydevd_bundle/pydevd_cython.pyx":562 * f = None * frame_id_to_frame = None * main_debugger = None # <<<<<<<<<<<<<< @@ -13763,7 +13763,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __Pyx_INCREF(Py_None); __Pyx_DECREF_SET(__pyx_v_main_debugger, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":564 + /* "_pydevd_bundle/pydevd_cython.pyx":563 * frame_id_to_frame = None * main_debugger = None * thread = None # <<<<<<<<<<<<<< @@ -13779,7 +13779,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e __pyx_L5:; } - /* "_pydevd_bundle/pydevd_cython.pyx":430 + /* "_pydevd_bundle/pydevd_cython.pyx":429 * return should_stop, frame * * def handle_exception(self, frame, event, arg): # <<<<<<<<<<<<<< @@ -13828,7 +13828,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_12handle_e return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":566 +/* "_pydevd_bundle/pydevd_cython.pyx":565 * thread = None * * def get_func_name(self, frame): # <<<<<<<<<<<<<< @@ -13872,31 +13872,31 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_14get_func int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_func_name", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":567 + /* "_pydevd_bundle/pydevd_cython.pyx":566 * * def get_func_name(self, frame): * code_obj = frame.f_code # <<<<<<<<<<<<<< * func_name = code_obj.co_name * try: */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 567, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 566, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_code_obj = __pyx_t_1; __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":568 + /* "_pydevd_bundle/pydevd_cython.pyx":567 * def get_func_name(self, frame): * code_obj = frame.f_code * func_name = code_obj.co_name # <<<<<<<<<<<<<< * try: * cls_name = get_clsname_for_code(code_obj, frame) */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_code_obj, __pyx_n_s_co_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 568, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_code_obj, __pyx_n_s_co_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 567, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_func_name = __pyx_t_1; __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":569 + /* "_pydevd_bundle/pydevd_cython.pyx":568 * code_obj = frame.f_code * func_name = code_obj.co_name * try: # <<<<<<<<<<<<<< @@ -13912,14 +13912,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_14get_func __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":570 + /* "_pydevd_bundle/pydevd_cython.pyx":569 * func_name = code_obj.co_name * try: * cls_name = get_clsname_for_code(code_obj, frame) # <<<<<<<<<<<<<< * if cls_name is not None: * return "%s.%s" % (cls_name, func_name) */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_get_clsname_for_code); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 570, __pyx_L3_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_get_clsname_for_code); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 569, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; __pyx_t_7 = 0; @@ -13936,7 +13936,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_14get_func #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_code_obj, __pyx_v_frame}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 570, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 569, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); } else @@ -13944,13 +13944,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_14get_func #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_code_obj, __pyx_v_frame}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 570, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 569, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { - __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 570, __pyx_L3_error) + __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 569, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL; @@ -13961,7 +13961,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_14get_func __Pyx_INCREF(__pyx_v_frame); __Pyx_GIVEREF(__pyx_v_frame); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_frame); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 570, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 569, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } @@ -13969,7 +13969,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_14get_func __pyx_v_cls_name = __pyx_t_1; __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":571 + /* "_pydevd_bundle/pydevd_cython.pyx":570 * try: * cls_name = get_clsname_for_code(code_obj, frame) * if cls_name is not None: # <<<<<<<<<<<<<< @@ -13980,7 +13980,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_14get_func __pyx_t_10 = (__pyx_t_9 != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":572 + /* "_pydevd_bundle/pydevd_cython.pyx":571 * cls_name = get_clsname_for_code(code_obj, frame) * if cls_name is not None: * return "%s.%s" % (cls_name, func_name) # <<<<<<<<<<<<<< @@ -13988,7 +13988,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_14get_func * return func_name */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 572, __pyx_L3_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 571, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_cls_name); __Pyx_GIVEREF(__pyx_v_cls_name); @@ -13996,14 +13996,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_14get_func __Pyx_INCREF(__pyx_v_func_name); __Pyx_GIVEREF(__pyx_v_func_name); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_func_name); - __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_s_s, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 572, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_s_s, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 571, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L7_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":571 + /* "_pydevd_bundle/pydevd_cython.pyx":570 * try: * cls_name = get_clsname_for_code(code_obj, frame) * if cls_name is not None: # <<<<<<<<<<<<<< @@ -14012,7 +14012,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_14get_func */ } - /* "_pydevd_bundle/pydevd_cython.pyx":574 + /* "_pydevd_bundle/pydevd_cython.pyx":573 * return "%s.%s" % (cls_name, func_name) * else: * return func_name # <<<<<<<<<<<<<< @@ -14026,7 +14026,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_14get_func goto __pyx_L7_try_return; } - /* "_pydevd_bundle/pydevd_cython.pyx":569 + /* "_pydevd_bundle/pydevd_cython.pyx":568 * code_obj = frame.f_code * func_name = code_obj.co_name * try: # <<<<<<<<<<<<<< @@ -14040,7 +14040,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_14get_func __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":575 + /* "_pydevd_bundle/pydevd_cython.pyx":574 * else: * return func_name * except: # <<<<<<<<<<<<<< @@ -14049,21 +14049,21 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_14get_func */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.get_func_name", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_8) < 0) __PYX_ERR(0, 575, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_8) < 0) __PYX_ERR(0, 574, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_8); - /* "_pydevd_bundle/pydevd_cython.pyx":576 + /* "_pydevd_bundle/pydevd_cython.pyx":575 * return func_name * except: * traceback.print_exc() # <<<<<<<<<<<<<< * return func_name * */ - __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_traceback); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 576, __pyx_L5_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_traceback); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 575, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 576, __pyx_L5_except_error) + __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 575, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; @@ -14078,12 +14078,12 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_14get_func } __pyx_t_6 = (__pyx_t_11) ? __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_11) : __Pyx_PyObject_CallNoArg(__pyx_t_12); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 576, __pyx_L5_except_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 575, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":577 + /* "_pydevd_bundle/pydevd_cython.pyx":576 * except: * traceback.print_exc() * return func_name # <<<<<<<<<<<<<< @@ -14100,7 +14100,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_14get_func } __pyx_L5_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":569 + /* "_pydevd_bundle/pydevd_cython.pyx":568 * code_obj = frame.f_code * func_name = code_obj.co_name * try: # <<<<<<<<<<<<<< @@ -14126,7 +14126,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_14get_func goto __pyx_L0; } - /* "_pydevd_bundle/pydevd_cython.pyx":566 + /* "_pydevd_bundle/pydevd_cython.pyx":565 * thread = None * * def get_func_name(self, frame): # <<<<<<<<<<<<<< @@ -14153,7 +14153,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_14get_func return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":579 +/* "_pydevd_bundle/pydevd_cython.pyx":578 * return func_name * * def manage_return_values(self, main_debugger, frame, event, arg): # <<<<<<<<<<<<<< @@ -14201,23 +14201,23 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_17manage_r case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_frame)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("manage_return_values", 1, 4, 4, 1); __PYX_ERR(0, 579, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("manage_return_values", 1, 4, 4, 1); __PYX_ERR(0, 578, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("manage_return_values", 1, 4, 4, 2); __PYX_ERR(0, 579, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("manage_return_values", 1, 4, 4, 2); __PYX_ERR(0, 578, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("manage_return_values", 1, 4, 4, 3); __PYX_ERR(0, 579, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("manage_return_values", 1, 4, 4, 3); __PYX_ERR(0, 578, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "manage_return_values") < 0)) __PYX_ERR(0, 579, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "manage_return_values") < 0)) __PYX_ERR(0, 578, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { goto __pyx_L5_argtuple_error; @@ -14234,7 +14234,7 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_17manage_r } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("manage_return_values", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 579, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("manage_return_values", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 578, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.manage_return_values", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -14247,7 +14247,7 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_17manage_r return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":581 +/* "_pydevd_bundle/pydevd_cython.pyx":580 * def manage_return_values(self, main_debugger, frame, event, arg): * * def get_func_name(frame): # <<<<<<<<<<<<<< @@ -14292,31 +14292,31 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20manage_r int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_func_name", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":582 + /* "_pydevd_bundle/pydevd_cython.pyx":581 * * def get_func_name(frame): * code_obj = frame.f_code # <<<<<<<<<<<<<< * func_name = code_obj.co_name * try: */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 582, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 581, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_code_obj = __pyx_t_1; __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":583 + /* "_pydevd_bundle/pydevd_cython.pyx":582 * def get_func_name(frame): * code_obj = frame.f_code * func_name = code_obj.co_name # <<<<<<<<<<<<<< * try: * cls_name = get_clsname_for_code(code_obj, frame) */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_code_obj, __pyx_n_s_co_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 583, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_code_obj, __pyx_n_s_co_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 582, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_func_name = __pyx_t_1; __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":584 + /* "_pydevd_bundle/pydevd_cython.pyx":583 * code_obj = frame.f_code * func_name = code_obj.co_name * try: # <<<<<<<<<<<<<< @@ -14332,14 +14332,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20manage_r __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":585 + /* "_pydevd_bundle/pydevd_cython.pyx":584 * func_name = code_obj.co_name * try: * cls_name = get_clsname_for_code(code_obj, frame) # <<<<<<<<<<<<<< * if cls_name is not None: * return "%s.%s" % (cls_name, func_name) */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_get_clsname_for_code); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 585, __pyx_L3_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_get_clsname_for_code); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 584, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; __pyx_t_7 = 0; @@ -14356,7 +14356,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20manage_r #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_code_obj, __pyx_v_frame}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 585, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 584, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); } else @@ -14364,13 +14364,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20manage_r #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_code_obj, __pyx_v_frame}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 585, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 584, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { - __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 585, __pyx_L3_error) + __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL; @@ -14381,7 +14381,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20manage_r __Pyx_INCREF(__pyx_v_frame); __Pyx_GIVEREF(__pyx_v_frame); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_frame); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 585, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 584, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } @@ -14389,7 +14389,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20manage_r __pyx_v_cls_name = __pyx_t_1; __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":586 + /* "_pydevd_bundle/pydevd_cython.pyx":585 * try: * cls_name = get_clsname_for_code(code_obj, frame) * if cls_name is not None: # <<<<<<<<<<<<<< @@ -14400,7 +14400,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20manage_r __pyx_t_10 = (__pyx_t_9 != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":587 + /* "_pydevd_bundle/pydevd_cython.pyx":586 * cls_name = get_clsname_for_code(code_obj, frame) * if cls_name is not None: * return "%s.%s" % (cls_name, func_name) # <<<<<<<<<<<<<< @@ -14408,7 +14408,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20manage_r * return func_name */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 587, __pyx_L3_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 586, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_cls_name); __Pyx_GIVEREF(__pyx_v_cls_name); @@ -14416,14 +14416,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20manage_r __Pyx_INCREF(__pyx_v_func_name); __Pyx_GIVEREF(__pyx_v_func_name); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_func_name); - __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_s_s, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 587, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_s_s, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 586, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L7_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":586 + /* "_pydevd_bundle/pydevd_cython.pyx":585 * try: * cls_name = get_clsname_for_code(code_obj, frame) * if cls_name is not None: # <<<<<<<<<<<<<< @@ -14432,7 +14432,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20manage_r */ } - /* "_pydevd_bundle/pydevd_cython.pyx":589 + /* "_pydevd_bundle/pydevd_cython.pyx":588 * return "%s.%s" % (cls_name, func_name) * else: * return func_name # <<<<<<<<<<<<<< @@ -14446,7 +14446,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20manage_r goto __pyx_L7_try_return; } - /* "_pydevd_bundle/pydevd_cython.pyx":584 + /* "_pydevd_bundle/pydevd_cython.pyx":583 * code_obj = frame.f_code * func_name = code_obj.co_name * try: # <<<<<<<<<<<<<< @@ -14460,7 +14460,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20manage_r __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":590 + /* "_pydevd_bundle/pydevd_cython.pyx":589 * else: * return func_name * except: # <<<<<<<<<<<<<< @@ -14469,21 +14469,21 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20manage_r */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.manage_return_values.get_func_name", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_8) < 0) __PYX_ERR(0, 590, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_8) < 0) __PYX_ERR(0, 589, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_8); - /* "_pydevd_bundle/pydevd_cython.pyx":591 + /* "_pydevd_bundle/pydevd_cython.pyx":590 * return func_name * except: * traceback.print_exc() # <<<<<<<<<<<<<< * return func_name * */ - __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_traceback); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 591, __pyx_L5_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_traceback); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 590, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 591, __pyx_L5_except_error) + __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 590, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; @@ -14498,12 +14498,12 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20manage_r } __pyx_t_6 = (__pyx_t_11) ? __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_11) : __Pyx_PyObject_CallNoArg(__pyx_t_12); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 591, __pyx_L5_except_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 590, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":592 + /* "_pydevd_bundle/pydevd_cython.pyx":591 * except: * traceback.print_exc() * return func_name # <<<<<<<<<<<<<< @@ -14520,7 +14520,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20manage_r } __pyx_L5_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":584 + /* "_pydevd_bundle/pydevd_cython.pyx":583 * code_obj = frame.f_code * func_name = code_obj.co_name * try: # <<<<<<<<<<<<<< @@ -14546,7 +14546,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20manage_r goto __pyx_L0; } - /* "_pydevd_bundle/pydevd_cython.pyx":581 + /* "_pydevd_bundle/pydevd_cython.pyx":580 * def manage_return_values(self, main_debugger, frame, event, arg): * * def get_func_name(frame): # <<<<<<<<<<<<<< @@ -14573,7 +14573,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20manage_r return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":579 +/* "_pydevd_bundle/pydevd_cython.pyx":578 * return func_name * * def manage_return_values(self, main_debugger, frame, event, arg): # <<<<<<<<<<<<<< @@ -14603,19 +14603,19 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_16manage_r int __pyx_clineno = 0; __Pyx_RefNannySetupContext("manage_return_values", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":581 + /* "_pydevd_bundle/pydevd_cython.pyx":580 * def manage_return_values(self, main_debugger, frame, event, arg): * * def get_func_name(frame): # <<<<<<<<<<<<<< * code_obj = frame.f_code * func_name = code_obj.co_name */ - __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20manage_return_values_1get_func_name, 0, __pyx_n_s_manage_return_values_locals_get, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython, __pyx_d, ((PyObject *)__pyx_codeobj__4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 581, __pyx_L1_error) + __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20manage_return_values_1get_func_name, 0, __pyx_n_s_manage_return_values_locals_get, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython, __pyx_d, ((PyObject *)__pyx_codeobj__4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_get_func_name = __pyx_t_1; __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":594 + /* "_pydevd_bundle/pydevd_cython.pyx":593 * return func_name * * try: # <<<<<<<<<<<<<< @@ -14631,85 +14631,85 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_16manage_r __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":595 + /* "_pydevd_bundle/pydevd_cython.pyx":594 * * try: * if main_debugger.show_return_values: # <<<<<<<<<<<<<< * if event == "return" and hasattr(frame, "f_code") and hasattr(frame.f_code, "co_name"): * if hasattr(frame, "f_back") and hasattr(frame.f_back, "f_locals"): */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_show_return_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 595, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_show_return_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 594, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 595, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 594, __pyx_L3_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_5) { - /* "_pydevd_bundle/pydevd_cython.pyx":596 + /* "_pydevd_bundle/pydevd_cython.pyx":595 * try: * if main_debugger.show_return_values: * if event == "return" and hasattr(frame, "f_code") and hasattr(frame.f_code, "co_name"): # <<<<<<<<<<<<<< * if hasattr(frame, "f_back") and hasattr(frame.f_back, "f_locals"): * if RETURN_VALUES_DICT not in dict_keys(frame.f_back.f_locals): */ - __pyx_t_6 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_return, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 596, __pyx_L3_error) + __pyx_t_6 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_return, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 595, __pyx_L3_error) if (__pyx_t_6) { } else { __pyx_t_5 = __pyx_t_6; goto __pyx_L11_bool_binop_done; } - __pyx_t_6 = __Pyx_HasAttr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 596, __pyx_L3_error) + __pyx_t_6 = __Pyx_HasAttr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 595, __pyx_L3_error) __pyx_t_7 = (__pyx_t_6 != 0); if (__pyx_t_7) { } else { __pyx_t_5 = __pyx_t_7; goto __pyx_L11_bool_binop_done; } - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 596, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 595, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_HasAttr(__pyx_t_1, __pyx_n_s_co_name); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 596, __pyx_L3_error) + __pyx_t_7 = __Pyx_HasAttr(__pyx_t_1, __pyx_n_s_co_name); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 595, __pyx_L3_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = (__pyx_t_7 != 0); __pyx_t_5 = __pyx_t_6; __pyx_L11_bool_binop_done:; if (__pyx_t_5) { - /* "_pydevd_bundle/pydevd_cython.pyx":597 + /* "_pydevd_bundle/pydevd_cython.pyx":596 * if main_debugger.show_return_values: * if event == "return" and hasattr(frame, "f_code") and hasattr(frame.f_code, "co_name"): * if hasattr(frame, "f_back") and hasattr(frame.f_back, "f_locals"): # <<<<<<<<<<<<<< * if RETURN_VALUES_DICT not in dict_keys(frame.f_back.f_locals): * frame.f_back.f_locals[RETURN_VALUES_DICT] = {} */ - __pyx_t_6 = __Pyx_HasAttr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 597, __pyx_L3_error) + __pyx_t_6 = __Pyx_HasAttr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 596, __pyx_L3_error) __pyx_t_7 = (__pyx_t_6 != 0); if (__pyx_t_7) { } else { __pyx_t_5 = __pyx_t_7; goto __pyx_L15_bool_binop_done; } - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 597, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 596, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_HasAttr(__pyx_t_1, __pyx_n_s_f_locals); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 597, __pyx_L3_error) + __pyx_t_7 = __Pyx_HasAttr(__pyx_t_1, __pyx_n_s_f_locals); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 596, __pyx_L3_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = (__pyx_t_7 != 0); __pyx_t_5 = __pyx_t_6; __pyx_L15_bool_binop_done:; if (__pyx_t_5) { - /* "_pydevd_bundle/pydevd_cython.pyx":598 + /* "_pydevd_bundle/pydevd_cython.pyx":597 * if event == "return" and hasattr(frame, "f_code") and hasattr(frame.f_code, "co_name"): * if hasattr(frame, "f_back") and hasattr(frame.f_back, "f_locals"): * if RETURN_VALUES_DICT not in dict_keys(frame.f_back.f_locals): # <<<<<<<<<<<<<< * frame.f_back.f_locals[RETURN_VALUES_DICT] = {} * name = get_func_name(frame) */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 598, __pyx_L3_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 597, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_dict_keys); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 598, __pyx_L3_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_dict_keys); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 597, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 598, __pyx_L3_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 597, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 598, __pyx_L3_error) + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 597, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; @@ -14725,37 +14725,37 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_16manage_r __pyx_t_8 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_10, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_11); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 598, __pyx_L3_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 597, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_t_8, Py_NE)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 598, __pyx_L3_error) + __pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_t_8, Py_NE)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 597, __pyx_L3_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { - /* "_pydevd_bundle/pydevd_cython.pyx":599 + /* "_pydevd_bundle/pydevd_cython.pyx":598 * if hasattr(frame, "f_back") and hasattr(frame.f_back, "f_locals"): * if RETURN_VALUES_DICT not in dict_keys(frame.f_back.f_locals): * frame.f_back.f_locals[RETURN_VALUES_DICT] = {} # <<<<<<<<<<<<<< * name = get_func_name(frame) * frame.f_back.f_locals[RETURN_VALUES_DICT][name] = arg */ - __pyx_t_8 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 599, __pyx_L3_error) + __pyx_t_8 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 598, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 599, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 598, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 599, __pyx_L3_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 598, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 599, __pyx_L3_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 598, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); - if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_t_1, __pyx_t_8) < 0)) __PYX_ERR(0, 599, __pyx_L3_error) + if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_t_1, __pyx_t_8) < 0)) __PYX_ERR(0, 598, __pyx_L3_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":598 + /* "_pydevd_bundle/pydevd_cython.pyx":597 * if event == "return" and hasattr(frame, "f_code") and hasattr(frame.f_code, "co_name"): * if hasattr(frame, "f_back") and hasattr(frame.f_back, "f_locals"): * if RETURN_VALUES_DICT not in dict_keys(frame.f_back.f_locals): # <<<<<<<<<<<<<< @@ -14764,40 +14764,40 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_16manage_r */ } - /* "_pydevd_bundle/pydevd_cython.pyx":600 + /* "_pydevd_bundle/pydevd_cython.pyx":599 * if RETURN_VALUES_DICT not in dict_keys(frame.f_back.f_locals): * frame.f_back.f_locals[RETURN_VALUES_DICT] = {} * name = get_func_name(frame) # <<<<<<<<<<<<<< * frame.f_back.f_locals[RETURN_VALUES_DICT][name] = arg * if main_debugger.remove_return_values_flag: */ - __pyx_t_8 = __pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20manage_return_values_get_func_name(__pyx_v_get_func_name, __pyx_v_frame); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 600, __pyx_L3_error) + __pyx_t_8 = __pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20manage_return_values_get_func_name(__pyx_v_get_func_name, __pyx_v_frame); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 599, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __pyx_v_name = __pyx_t_8; __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":601 + /* "_pydevd_bundle/pydevd_cython.pyx":600 * frame.f_back.f_locals[RETURN_VALUES_DICT] = {} * name = get_func_name(frame) * frame.f_back.f_locals[RETURN_VALUES_DICT][name] = arg # <<<<<<<<<<<<<< * if main_debugger.remove_return_values_flag: * # Showing return values was turned off, we should remove them from locals dict. */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 601, __pyx_L3_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 600, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 601, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 600, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 601, __pyx_L3_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 600, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 601, __pyx_L3_error) + __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 600, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_v_name, __pyx_v_arg) < 0)) __PYX_ERR(0, 601, __pyx_L3_error) + if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_v_name, __pyx_v_arg) < 0)) __PYX_ERR(0, 600, __pyx_L3_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":597 + /* "_pydevd_bundle/pydevd_cython.pyx":596 * if main_debugger.show_return_values: * if event == "return" and hasattr(frame, "f_code") and hasattr(frame.f_code, "co_name"): * if hasattr(frame, "f_back") and hasattr(frame.f_back, "f_locals"): # <<<<<<<<<<<<<< @@ -14806,7 +14806,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_16manage_r */ } - /* "_pydevd_bundle/pydevd_cython.pyx":596 + /* "_pydevd_bundle/pydevd_cython.pyx":595 * try: * if main_debugger.show_return_values: * if event == "return" and hasattr(frame, "f_code") and hasattr(frame.f_code, "co_name"): # <<<<<<<<<<<<<< @@ -14815,7 +14815,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_16manage_r */ } - /* "_pydevd_bundle/pydevd_cython.pyx":595 + /* "_pydevd_bundle/pydevd_cython.pyx":594 * * try: * if main_debugger.show_return_values: # <<<<<<<<<<<<<< @@ -14824,31 +14824,31 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_16manage_r */ } - /* "_pydevd_bundle/pydevd_cython.pyx":602 + /* "_pydevd_bundle/pydevd_cython.pyx":601 * name = get_func_name(frame) * frame.f_back.f_locals[RETURN_VALUES_DICT][name] = arg * if main_debugger.remove_return_values_flag: # <<<<<<<<<<<<<< * # Showing return values was turned off, we should remove them from locals dict. * # The values can be in the current frame or in the back one */ - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_remove_return_values_flag); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 602, __pyx_L3_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_remove_return_values_flag); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 601, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 602, __pyx_L3_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 601, __pyx_L3_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (__pyx_t_6) { - /* "_pydevd_bundle/pydevd_cython.pyx":605 + /* "_pydevd_bundle/pydevd_cython.pyx":604 * # Showing return values was turned off, we should remove them from locals dict. * # The values can be in the current frame or in the back one * if RETURN_VALUES_DICT in dict_keys(frame.f_locals): # <<<<<<<<<<<<<< * frame.f_locals.pop(RETURN_VALUES_DICT) * if hasattr(frame, "f_back") and hasattr(frame.f_back, "f_locals"): */ - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 605, __pyx_L3_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 604, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_dict_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 605, __pyx_L3_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_dict_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 604, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 605, __pyx_L3_error) + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 604, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { @@ -14863,28 +14863,28 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_16manage_r __pyx_t_8 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_10, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_11); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 605, __pyx_L3_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 604, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, __pyx_t_8, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 605, __pyx_L3_error) + __pyx_t_6 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, __pyx_t_8, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 604, __pyx_L3_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_5 = (__pyx_t_6 != 0); if (__pyx_t_5) { - /* "_pydevd_bundle/pydevd_cython.pyx":606 + /* "_pydevd_bundle/pydevd_cython.pyx":605 * # The values can be in the current frame or in the back one * if RETURN_VALUES_DICT in dict_keys(frame.f_locals): * frame.f_locals.pop(RETURN_VALUES_DICT) # <<<<<<<<<<<<<< * if hasattr(frame, "f_back") and hasattr(frame.f_back, "f_locals"): * if RETURN_VALUES_DICT in dict_keys(frame.f_back.f_locals): */ - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 606, __pyx_L3_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 605, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_pop); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 606, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_pop); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 605, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 606, __pyx_L3_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 605, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { @@ -14899,12 +14899,12 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_16manage_r __pyx_t_8 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_11, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_9); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 606, __pyx_L3_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 605, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":605 + /* "_pydevd_bundle/pydevd_cython.pyx":604 * # Showing return values was turned off, we should remove them from locals dict. * # The values can be in the current frame or in the back one * if RETURN_VALUES_DICT in dict_keys(frame.f_locals): # <<<<<<<<<<<<<< @@ -14913,43 +14913,43 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_16manage_r */ } - /* "_pydevd_bundle/pydevd_cython.pyx":607 + /* "_pydevd_bundle/pydevd_cython.pyx":606 * if RETURN_VALUES_DICT in dict_keys(frame.f_locals): * frame.f_locals.pop(RETURN_VALUES_DICT) * if hasattr(frame, "f_back") and hasattr(frame.f_back, "f_locals"): # <<<<<<<<<<<<<< * if RETURN_VALUES_DICT in dict_keys(frame.f_back.f_locals): * frame.f_back.f_locals.pop(RETURN_VALUES_DICT) */ - __pyx_t_6 = __Pyx_HasAttr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 607, __pyx_L3_error) + __pyx_t_6 = __Pyx_HasAttr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 606, __pyx_L3_error) __pyx_t_7 = (__pyx_t_6 != 0); if (__pyx_t_7) { } else { __pyx_t_5 = __pyx_t_7; goto __pyx_L21_bool_binop_done; } - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 607, __pyx_L3_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 606, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_HasAttr(__pyx_t_8, __pyx_n_s_f_locals); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 607, __pyx_L3_error) + __pyx_t_7 = __Pyx_HasAttr(__pyx_t_8, __pyx_n_s_f_locals); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 606, __pyx_L3_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_6 = (__pyx_t_7 != 0); __pyx_t_5 = __pyx_t_6; __pyx_L21_bool_binop_done:; if (__pyx_t_5) { - /* "_pydevd_bundle/pydevd_cython.pyx":608 + /* "_pydevd_bundle/pydevd_cython.pyx":607 * frame.f_locals.pop(RETURN_VALUES_DICT) * if hasattr(frame, "f_back") and hasattr(frame.f_back, "f_locals"): * if RETURN_VALUES_DICT in dict_keys(frame.f_back.f_locals): # <<<<<<<<<<<<<< * frame.f_back.f_locals.pop(RETURN_VALUES_DICT) * main_debugger.remove_return_values_flag = False */ - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 608, __pyx_L3_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 607, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_dict_keys); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 608, __pyx_L3_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_dict_keys); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 607, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 608, __pyx_L3_error) + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 607, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 608, __pyx_L3_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 607, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; @@ -14965,31 +14965,31 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_16manage_r __pyx_t_1 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_11, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 608, __pyx_L3_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 607, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_t_8, __pyx_t_1, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 608, __pyx_L3_error) + __pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_t_8, __pyx_t_1, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 607, __pyx_L3_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { - /* "_pydevd_bundle/pydevd_cython.pyx":609 + /* "_pydevd_bundle/pydevd_cython.pyx":608 * if hasattr(frame, "f_back") and hasattr(frame.f_back, "f_locals"): * if RETURN_VALUES_DICT in dict_keys(frame.f_back.f_locals): * frame.f_back.f_locals.pop(RETURN_VALUES_DICT) # <<<<<<<<<<<<<< * main_debugger.remove_return_values_flag = False * except: */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 609, __pyx_L3_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 608, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 609, __pyx_L3_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 608, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_pop); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 609, __pyx_L3_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_pop); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 608, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 609, __pyx_L3_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 608, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { @@ -15004,12 +15004,12 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_16manage_r __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_10, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 609, __pyx_L3_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 608, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":608 + /* "_pydevd_bundle/pydevd_cython.pyx":607 * frame.f_locals.pop(RETURN_VALUES_DICT) * if hasattr(frame, "f_back") and hasattr(frame.f_back, "f_locals"): * if RETURN_VALUES_DICT in dict_keys(frame.f_back.f_locals): # <<<<<<<<<<<<<< @@ -15018,7 +15018,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_16manage_r */ } - /* "_pydevd_bundle/pydevd_cython.pyx":607 + /* "_pydevd_bundle/pydevd_cython.pyx":606 * if RETURN_VALUES_DICT in dict_keys(frame.f_locals): * frame.f_locals.pop(RETURN_VALUES_DICT) * if hasattr(frame, "f_back") and hasattr(frame.f_back, "f_locals"): # <<<<<<<<<<<<<< @@ -15027,16 +15027,16 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_16manage_r */ } - /* "_pydevd_bundle/pydevd_cython.pyx":610 + /* "_pydevd_bundle/pydevd_cython.pyx":609 * if RETURN_VALUES_DICT in dict_keys(frame.f_back.f_locals): * frame.f_back.f_locals.pop(RETURN_VALUES_DICT) * main_debugger.remove_return_values_flag = False # <<<<<<<<<<<<<< * except: * main_debugger.remove_return_values_flag = False */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_main_debugger, __pyx_n_s_remove_return_values_flag, Py_False) < 0) __PYX_ERR(0, 610, __pyx_L3_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_main_debugger, __pyx_n_s_remove_return_values_flag, Py_False) < 0) __PYX_ERR(0, 609, __pyx_L3_error) - /* "_pydevd_bundle/pydevd_cython.pyx":602 + /* "_pydevd_bundle/pydevd_cython.pyx":601 * name = get_func_name(frame) * frame.f_back.f_locals[RETURN_VALUES_DICT][name] = arg * if main_debugger.remove_return_values_flag: # <<<<<<<<<<<<<< @@ -15045,7 +15045,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_16manage_r */ } - /* "_pydevd_bundle/pydevd_cython.pyx":594 + /* "_pydevd_bundle/pydevd_cython.pyx":593 * return func_name * * try: # <<<<<<<<<<<<<< @@ -15064,7 +15064,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_16manage_r __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":611 + /* "_pydevd_bundle/pydevd_cython.pyx":610 * frame.f_back.f_locals.pop(RETURN_VALUES_DICT) * main_debugger.remove_return_values_flag = False * except: # <<<<<<<<<<<<<< @@ -15073,30 +15073,30 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_16manage_r */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.manage_return_values", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_8, &__pyx_t_9) < 0) __PYX_ERR(0, 611, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_8, &__pyx_t_9) < 0) __PYX_ERR(0, 610, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_9); - /* "_pydevd_bundle/pydevd_cython.pyx":612 + /* "_pydevd_bundle/pydevd_cython.pyx":611 * main_debugger.remove_return_values_flag = False * except: * main_debugger.remove_return_values_flag = False # <<<<<<<<<<<<<< * traceback.print_exc() * */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_main_debugger, __pyx_n_s_remove_return_values_flag, Py_False) < 0) __PYX_ERR(0, 612, __pyx_L5_except_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_main_debugger, __pyx_n_s_remove_return_values_flag, Py_False) < 0) __PYX_ERR(0, 611, __pyx_L5_except_error) - /* "_pydevd_bundle/pydevd_cython.pyx":613 + /* "_pydevd_bundle/pydevd_cython.pyx":612 * except: * main_debugger.remove_return_values_flag = False * traceback.print_exc() # <<<<<<<<<<<<<< * * def clear_run_state(self, info): */ - __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_traceback); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 613, __pyx_L5_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_traceback); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 612, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 613, __pyx_L5_except_error) + __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 612, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; @@ -15111,7 +15111,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_16manage_r } __pyx_t_10 = (__pyx_t_11) ? __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_11) : __Pyx_PyObject_CallNoArg(__pyx_t_12); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 613, __pyx_L5_except_error) + if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 612, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; @@ -15122,7 +15122,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_16manage_r } __pyx_L5_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":594 + /* "_pydevd_bundle/pydevd_cython.pyx":593 * return func_name * * try: # <<<<<<<<<<<<<< @@ -15142,7 +15142,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_16manage_r __pyx_L8_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":579 + /* "_pydevd_bundle/pydevd_cython.pyx":578 * return func_name * * def manage_return_values(self, main_debugger, frame, event, arg): # <<<<<<<<<<<<<< @@ -15170,7 +15170,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_16manage_r return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":615 +/* "_pydevd_bundle/pydevd_cython.pyx":614 * traceback.print_exc() * * def clear_run_state(self, info): # <<<<<<<<<<<<<< @@ -15200,37 +15200,37 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_18clear_ru int __pyx_clineno = 0; __Pyx_RefNannySetupContext("clear_run_state", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":616 + /* "_pydevd_bundle/pydevd_cython.pyx":615 * * def clear_run_state(self, info): * info.pydev_step_stop = None # <<<<<<<<<<<<<< * info.pydev_step_cmd = -1 * info.pydev_state = STATE_RUN */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_info, __pyx_n_s_pydev_step_stop, Py_None) < 0) __PYX_ERR(0, 616, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_info, __pyx_n_s_pydev_step_stop, Py_None) < 0) __PYX_ERR(0, 615, __pyx_L1_error) - /* "_pydevd_bundle/pydevd_cython.pyx":617 + /* "_pydevd_bundle/pydevd_cython.pyx":616 * def clear_run_state(self, info): * info.pydev_step_stop = None * info.pydev_step_cmd = -1 # <<<<<<<<<<<<<< * info.pydev_state = STATE_RUN * */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_info, __pyx_n_s_pydev_step_cmd, __pyx_int_neg_1) < 0) __PYX_ERR(0, 617, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_info, __pyx_n_s_pydev_step_cmd, __pyx_int_neg_1) < 0) __PYX_ERR(0, 616, __pyx_L1_error) - /* "_pydevd_bundle/pydevd_cython.pyx":618 + /* "_pydevd_bundle/pydevd_cython.pyx":617 * info.pydev_step_stop = None * info.pydev_step_cmd = -1 * info.pydev_state = STATE_RUN # <<<<<<<<<<<<<< * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_STATE_RUN); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 618, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_STATE_RUN); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_info, __pyx_n_s_pydev_state, __pyx_t_1) < 0) __PYX_ERR(0, 618, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_info, __pyx_n_s_pydev_state, __pyx_t_1) < 0) __PYX_ERR(0, 617, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":615 + /* "_pydevd_bundle/pydevd_cython.pyx":614 * traceback.print_exc() * * def clear_run_state(self, info): # <<<<<<<<<<<<<< @@ -15251,7 +15251,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_18clear_ru return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":621 +/* "_pydevd_bundle/pydevd_cython.pyx":620 * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * cpdef trace_dispatch(self, frame, str event, arg): # <<<<<<<<<<<<<< @@ -15358,7 +15358,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 621, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_21trace_dispatch)) { __Pyx_XDECREF(__pyx_r); @@ -15378,7 +15378,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 621, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 620, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -15386,13 +15386,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 621, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 620, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_6 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 621, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -15406,7 +15406,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_5, __pyx_v_arg); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 621, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -15429,7 +15429,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #endif } - /* "_pydevd_bundle/pydevd_cython.pyx":647 + /* "_pydevd_bundle/pydevd_cython.pyx":646 * # ENDIF * * main_debugger, filename, info, thread, frame_skips_cache, frame_cache_key = self._args # <<<<<<<<<<<<<< @@ -15444,7 +15444,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa if (unlikely(size != 6)) { if (size > 6) __Pyx_RaiseTooManyValuesError(6); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 647, __pyx_L1_error) + __PYX_ERR(0, 646, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); @@ -15464,7 +15464,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa Py_ssize_t i; PyObject** temps[6] = {&__pyx_t_2,&__pyx_t_3,&__pyx_t_6,&__pyx_t_4,&__pyx_t_7,&__pyx_t_8}; for (i=0; i < 6; i++) { - PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 647, __pyx_L1_error) + PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 646, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } @@ -15472,12 +15472,12 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { - __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 647, __pyx_L1_error) + __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 646, __pyx_L1_error) } - if (!(likely(PyString_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 647, __pyx_L1_error) - if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo))))) __PYX_ERR(0, 647, __pyx_L1_error) - if (!(likely(PyDict_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_7)->tp_name), 0))) __PYX_ERR(0, 647, __pyx_L1_error) - if (!(likely(PyTuple_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_8)->tp_name), 0))) __PYX_ERR(0, 647, __pyx_L1_error) + if (!(likely(PyString_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 646, __pyx_L1_error) + if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo))))) __PYX_ERR(0, 646, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_7)->tp_name), 0))) __PYX_ERR(0, 646, __pyx_L1_error) + if (!(likely(PyTuple_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_8)->tp_name), 0))) __PYX_ERR(0, 646, __pyx_L1_error) __pyx_v_main_debugger = __pyx_t_2; __pyx_t_2 = 0; __pyx_v_filename = ((PyObject*)__pyx_t_3); @@ -15491,7 +15491,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_v_frame_cache_key = ((PyObject*)__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":652 + /* "_pydevd_bundle/pydevd_cython.pyx":651 * * # The thread can be already suspended by another function, e.g. built-in breakpoint hook. * if info.is_tracing: # <<<<<<<<<<<<<< @@ -15501,7 +15501,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_9 = (__pyx_v_info->is_tracing != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":653 + /* "_pydevd_bundle/pydevd_cython.pyx":652 * # The thread can be already suspended by another function, e.g. built-in breakpoint hook. * if info.is_tracing: * return None # <<<<<<<<<<<<<< @@ -15512,7 +15512,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":652 + /* "_pydevd_bundle/pydevd_cython.pyx":651 * * # The thread can be already suspended by another function, e.g. built-in breakpoint hook. * if info.is_tracing: # <<<<<<<<<<<<<< @@ -15521,7 +15521,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":655 + /* "_pydevd_bundle/pydevd_cython.pyx":654 * return None * * try: # <<<<<<<<<<<<<< @@ -15530,7 +15530,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":656 + /* "_pydevd_bundle/pydevd_cython.pyx":655 * * try: * info.is_tracing = True # <<<<<<<<<<<<<< @@ -15539,29 +15539,29 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ __pyx_v_info->is_tracing = 1; - /* "_pydevd_bundle/pydevd_cython.pyx":657 + /* "_pydevd_bundle/pydevd_cython.pyx":656 * try: * info.is_tracing = True * line = frame.f_lineno # <<<<<<<<<<<<<< * line_cache_key = (frame_cache_key, line) * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_lineno); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 657, __pyx_L5_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_lineno); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 656, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 657, __pyx_L5_error) + __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 656, __pyx_L5_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_line = __pyx_t_5; - /* "_pydevd_bundle/pydevd_cython.pyx":658 + /* "_pydevd_bundle/pydevd_cython.pyx":657 * info.is_tracing = True * line = frame.f_lineno * line_cache_key = (frame_cache_key, line) # <<<<<<<<<<<<<< * * if main_debugger._finish_debugging_session: */ - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_line); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 658, __pyx_L5_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_line); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 657, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 658, __pyx_L5_error) + __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 657, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_v_frame_cache_key); __Pyx_GIVEREF(__pyx_v_frame_cache_key); @@ -15572,36 +15572,36 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_v_line_cache_key = ((PyObject*)__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":660 + /* "_pydevd_bundle/pydevd_cython.pyx":659 * line_cache_key = (frame_cache_key, line) * * if main_debugger._finish_debugging_session: # <<<<<<<<<<<<<< * if event != 'call': frame.f_trace = NO_FTRACE * return None */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_finish_debugging_session); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 660, __pyx_L5_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_finish_debugging_session); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 659, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 660, __pyx_L5_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 659, __pyx_L5_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":661 + /* "_pydevd_bundle/pydevd_cython.pyx":660 * * if main_debugger._finish_debugging_session: * if event != 'call': frame.f_trace = NO_FTRACE # <<<<<<<<<<<<<< * return None * */ - __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_NE)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 661, __pyx_L5_error) + __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_NE)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 660, __pyx_L5_error) __pyx_t_10 = (__pyx_t_9 != 0); if (__pyx_t_10) { - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 661, __pyx_L5_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 660, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_8) < 0) __PYX_ERR(0, 661, __pyx_L5_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_8) < 0) __PYX_ERR(0, 660, __pyx_L5_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } - /* "_pydevd_bundle/pydevd_cython.pyx":662 + /* "_pydevd_bundle/pydevd_cython.pyx":661 * if main_debugger._finish_debugging_session: * if event != 'call': frame.f_trace = NO_FTRACE * return None # <<<<<<<<<<<<<< @@ -15612,7 +15612,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L4_return; - /* "_pydevd_bundle/pydevd_cython.pyx":660 + /* "_pydevd_bundle/pydevd_cython.pyx":659 * line_cache_key = (frame_cache_key, line) * * if main_debugger._finish_debugging_session: # <<<<<<<<<<<<<< @@ -15621,30 +15621,30 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":665 + /* "_pydevd_bundle/pydevd_cython.pyx":664 * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * if event == 'opcode': # <<<<<<<<<<<<<< * instructions = self._get_instructions(frame) * for i, inst in enumerate(instructions): */ - __pyx_t_10 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_opcode, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 665, __pyx_L5_error) + __pyx_t_10 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_opcode, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 664, __pyx_L5_error) __pyx_t_9 = (__pyx_t_10 != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":666 + /* "_pydevd_bundle/pydevd_cython.pyx":665 * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * if event == 'opcode': * instructions = self._get_instructions(frame) # <<<<<<<<<<<<<< * for i, inst in enumerate(instructions): * if inst.offset == frame.f_lasti: */ - __pyx_t_8 = ((struct __pyx_vtabstruct_14_pydevd_bundle_13pydevd_cython_PyDBFrame *)__pyx_v_self->__pyx_vtab)->_get_instructions(__pyx_v_self, __pyx_v_frame); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 666, __pyx_L5_error) + __pyx_t_8 = ((struct __pyx_vtabstruct_14_pydevd_bundle_13pydevd_cython_PyDBFrame *)__pyx_v_self->__pyx_vtab)->_get_instructions(__pyx_v_self, __pyx_v_frame); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 665, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); __pyx_v_instructions = __pyx_t_8; __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":667 + /* "_pydevd_bundle/pydevd_cython.pyx":666 * if event == 'opcode': * instructions = self._get_instructions(frame) * for i, inst in enumerate(instructions): # <<<<<<<<<<<<<< @@ -15657,26 +15657,26 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_1 = __pyx_v_instructions; __Pyx_INCREF(__pyx_t_1); __pyx_t_11 = 0; __pyx_t_12 = NULL; } else { - __pyx_t_11 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_instructions); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 667, __pyx_L5_error) + __pyx_t_11 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_instructions); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 666, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_12 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 667, __pyx_L5_error) + __pyx_t_12 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 666, __pyx_L5_error) } for (;;) { if (likely(!__pyx_t_12)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 667, __pyx_L5_error) + __pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 666, __pyx_L5_error) #else - __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 667, __pyx_L5_error) + __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 666, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); #endif } else { if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 667, __pyx_L5_error) + __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 666, __pyx_L5_error) #else - __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 667, __pyx_L5_error) + __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 666, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); #endif } @@ -15686,7 +15686,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 667, __pyx_L5_error) + else __PYX_ERR(0, 666, __pyx_L5_error) } break; } @@ -15696,44 +15696,44 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_7 = 0; __Pyx_INCREF(__pyx_t_8); __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_8); - __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_t_8, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 667, __pyx_L5_error) + __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_t_8, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 666, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = __pyx_t_7; __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":668 + /* "_pydevd_bundle/pydevd_cython.pyx":667 * instructions = self._get_instructions(frame) * for i, inst in enumerate(instructions): * if inst.offset == frame.f_lasti: # <<<<<<<<<<<<<< * opname, arg, argval = inst.opname, inst.arg, str(inst.argval) * print('frame trace_dispatch %s %s %s %s %s %s %s %s' % (frame.f_lineno, frame.f_lasti, frame.f_code.co_name, */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_inst, __pyx_n_s_offset); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 668, __pyx_L5_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_inst, __pyx_n_s_offset); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 667, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_lasti); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 668, __pyx_L5_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_lasti); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 667, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = PyObject_RichCompare(__pyx_t_7, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 668, __pyx_L5_error) + __pyx_t_6 = PyObject_RichCompare(__pyx_t_7, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 667, __pyx_L5_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 668, __pyx_L5_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 667, __pyx_L5_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":669 + /* "_pydevd_bundle/pydevd_cython.pyx":668 * for i, inst in enumerate(instructions): * if inst.offset == frame.f_lasti: * opname, arg, argval = inst.opname, inst.arg, str(inst.argval) # <<<<<<<<<<<<<< * print('frame trace_dispatch %s %s %s %s %s %s %s %s' % (frame.f_lineno, frame.f_lasti, frame.f_code.co_name, * frame.f_code.co_filename, event, opname, arg, argval)) */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_inst, __pyx_n_s_opname); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 669, __pyx_L5_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_inst, __pyx_n_s_opname); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 668, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_inst, __pyx_n_s_arg); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 669, __pyx_L5_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_inst, __pyx_n_s_arg); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 668, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_inst, __pyx_n_s_argval); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 669, __pyx_L5_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_inst, __pyx_n_s_argval); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 668, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 669, __pyx_L5_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 668, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF_SET(__pyx_v_opname, __pyx_t_6); @@ -15743,44 +15743,44 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_XDECREF_SET(__pyx_v_argval, __pyx_t_3); __pyx_t_3 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":670 + /* "_pydevd_bundle/pydevd_cython.pyx":669 * if inst.offset == frame.f_lasti: * opname, arg, argval = inst.opname, inst.arg, str(inst.argval) * print('frame trace_dispatch %s %s %s %s %s %s %s %s' % (frame.f_lineno, frame.f_lasti, frame.f_code.co_name, # <<<<<<<<<<<<<< * frame.f_code.co_filename, event, opname, arg, argval)) * try: */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_lineno); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 670, __pyx_L5_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_lineno); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 669, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_lasti); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 670, __pyx_L5_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_lasti); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 669, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 670, __pyx_L5_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 669, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_co_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 670, __pyx_L5_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_co_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 669, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":671 + /* "_pydevd_bundle/pydevd_cython.pyx":670 * opname, arg, argval = inst.opname, inst.arg, str(inst.argval) * print('frame trace_dispatch %s %s %s %s %s %s %s %s' % (frame.f_lineno, frame.f_lasti, frame.f_code.co_name, * frame.f_code.co_filename, event, opname, arg, argval)) # <<<<<<<<<<<<<< * try: * self._bytecode_offset = instructions[i + 1].offset */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 671, __pyx_L5_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 670, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 671, __pyx_L5_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 670, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":670 + /* "_pydevd_bundle/pydevd_cython.pyx":669 * if inst.offset == frame.f_lasti: * opname, arg, argval = inst.opname, inst.arg, str(inst.argval) * print('frame trace_dispatch %s %s %s %s %s %s %s %s' % (frame.f_lineno, frame.f_lasti, frame.f_code.co_name, # <<<<<<<<<<<<<< * frame.f_code.co_filename, event, opname, arg, argval)) * try: */ - __pyx_t_6 = PyTuple_New(8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 670, __pyx_L5_error) + __pyx_t_6 = PyTuple_New(8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 669, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); @@ -15806,15 +15806,15 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_4 = 0; __pyx_t_7 = 0; __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_frame_trace_dispatch_s_s_s_s_s_s, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 670, __pyx_L5_error) + __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_frame_trace_dispatch_s_s_s_s_s_s, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 669, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_print, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 670, __pyx_L5_error) + __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_print, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 669, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":672 + /* "_pydevd_bundle/pydevd_cython.pyx":671 * print('frame trace_dispatch %s %s %s %s %s %s %s %s' % (frame.f_lineno, frame.f_lasti, frame.f_code.co_name, * frame.f_code.co_filename, event, opname, arg, argval)) * try: # <<<<<<<<<<<<<< @@ -15830,26 +15830,26 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_XGOTREF(__pyx_t_15); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":673 + /* "_pydevd_bundle/pydevd_cython.pyx":672 * frame.f_code.co_filename, event, opname, arg, argval)) * try: * self._bytecode_offset = instructions[i + 1].offset # <<<<<<<<<<<<<< * except IndexError: * break */ - __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_v_i, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 673, __pyx_L13_error) + __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_v_i, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 672, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_instructions, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 673, __pyx_L13_error) + __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_instructions, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 672, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_offset); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 673, __pyx_L13_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_offset); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 672, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_6); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 673, __pyx_L13_error) + __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_6); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 672, __pyx_L13_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_self->_bytecode_offset = __pyx_t_5; - /* "_pydevd_bundle/pydevd_cython.pyx":672 + /* "_pydevd_bundle/pydevd_cython.pyx":671 * print('frame trace_dispatch %s %s %s %s %s %s %s %s' % (frame.f_lineno, frame.f_lasti, frame.f_code.co_name, * frame.f_code.co_filename, event, opname, arg, argval)) * try: # <<<<<<<<<<<<<< @@ -15868,7 +15868,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":674 + /* "_pydevd_bundle/pydevd_cython.pyx":673 * try: * self._bytecode_offset = instructions[i + 1].offset * except IndexError: # <<<<<<<<<<<<<< @@ -15878,12 +15878,12 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_IndexError); if (__pyx_t_5) { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.trace_dispatch", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_2, &__pyx_t_7) < 0) __PYX_ERR(0, 674, __pyx_L15_except_error) + if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_2, &__pyx_t_7) < 0) __PYX_ERR(0, 673, __pyx_L15_except_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_2); __Pyx_GOTREF(__pyx_t_7); - /* "_pydevd_bundle/pydevd_cython.pyx":675 + /* "_pydevd_bundle/pydevd_cython.pyx":674 * self._bytecode_offset = instructions[i + 1].offset * except IndexError: * break # <<<<<<<<<<<<<< @@ -15900,7 +15900,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L15_except_error; __pyx_L15_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":672 + /* "_pydevd_bundle/pydevd_cython.pyx":671 * print('frame trace_dispatch %s %s %s %s %s %s %s %s' % (frame.f_lineno, frame.f_lasti, frame.f_code.co_name, * frame.f_code.co_filename, event, opname, arg, argval)) * try: # <<<<<<<<<<<<<< @@ -15921,7 +15921,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_L20_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":668 + /* "_pydevd_bundle/pydevd_cython.pyx":667 * instructions = self._get_instructions(frame) * for i, inst in enumerate(instructions): * if inst.offset == frame.f_lasti: # <<<<<<<<<<<<<< @@ -15930,7 +15930,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":667 + /* "_pydevd_bundle/pydevd_cython.pyx":666 * if event == 'opcode': * instructions = self._get_instructions(frame) * for i, inst in enumerate(instructions): # <<<<<<<<<<<<<< @@ -15942,7 +15942,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":676 + /* "_pydevd_bundle/pydevd_cython.pyx":675 * except IndexError: * break * return self.trace_dispatch # <<<<<<<<<<<<<< @@ -15950,13 +15950,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 676, __pyx_L5_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 675, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); __pyx_r = __pyx_t_8; __pyx_t_8 = 0; goto __pyx_L4_return; - /* "_pydevd_bundle/pydevd_cython.pyx":665 + /* "_pydevd_bundle/pydevd_cython.pyx":664 * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * if event == 'opcode': # <<<<<<<<<<<<<< @@ -15965,38 +15965,38 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":679 + /* "_pydevd_bundle/pydevd_cython.pyx":678 * # ENDIF * * plugin_manager = main_debugger.plugin # <<<<<<<<<<<<<< * * is_exception_event = event == 'exception' */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_plugin); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 679, __pyx_L5_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_plugin); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 678, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); __pyx_v_plugin_manager = __pyx_t_8; __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":681 + /* "_pydevd_bundle/pydevd_cython.pyx":680 * plugin_manager = main_debugger.plugin * * is_exception_event = event == 'exception' # <<<<<<<<<<<<<< * has_exception_breakpoints = main_debugger.break_on_caught_exceptions or main_debugger.has_plugin_exception_breaks \ * or main_debugger.stop_on_failed_tests */ - __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_exception, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 681, __pyx_L5_error) + __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_exception, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 680, __pyx_L5_error) __pyx_v_is_exception_event = __pyx_t_9; - /* "_pydevd_bundle/pydevd_cython.pyx":682 + /* "_pydevd_bundle/pydevd_cython.pyx":681 * * is_exception_event = event == 'exception' * has_exception_breakpoints = main_debugger.break_on_caught_exceptions or main_debugger.has_plugin_exception_breaks \ # <<<<<<<<<<<<<< * or main_debugger.stop_on_failed_tests * */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_break_on_caught_exceptions); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 682, __pyx_L5_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_break_on_caught_exceptions); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 681, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 682, __pyx_L5_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 681, __pyx_L5_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (!__pyx_t_10) { } else { @@ -16004,24 +16004,24 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L23_bool_binop_done; } - /* "_pydevd_bundle/pydevd_cython.pyx":683 + /* "_pydevd_bundle/pydevd_cython.pyx":682 * is_exception_event = event == 'exception' * has_exception_breakpoints = main_debugger.break_on_caught_exceptions or main_debugger.has_plugin_exception_breaks \ * or main_debugger.stop_on_failed_tests # <<<<<<<<<<<<<< * * if is_exception_event: */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_has_plugin_exception_breaks); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 682, __pyx_L5_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_has_plugin_exception_breaks); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 681, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); - /* "_pydevd_bundle/pydevd_cython.pyx":682 + /* "_pydevd_bundle/pydevd_cython.pyx":681 * * is_exception_event = event == 'exception' * has_exception_breakpoints = main_debugger.break_on_caught_exceptions or main_debugger.has_plugin_exception_breaks \ # <<<<<<<<<<<<<< * or main_debugger.stop_on_failed_tests * */ - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 682, __pyx_L5_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 681, __pyx_L5_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (!__pyx_t_10) { } else { @@ -16029,22 +16029,22 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L23_bool_binop_done; } - /* "_pydevd_bundle/pydevd_cython.pyx":683 + /* "_pydevd_bundle/pydevd_cython.pyx":682 * is_exception_event = event == 'exception' * has_exception_breakpoints = main_debugger.break_on_caught_exceptions or main_debugger.has_plugin_exception_breaks \ * or main_debugger.stop_on_failed_tests # <<<<<<<<<<<<<< * * if is_exception_event: */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_stop_on_failed_tests); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 683, __pyx_L5_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_stop_on_failed_tests); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 682, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 683, __pyx_L5_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 682, __pyx_L5_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_9 = __pyx_t_10; __pyx_L23_bool_binop_done:; __pyx_v_has_exception_breakpoints = __pyx_t_9; - /* "_pydevd_bundle/pydevd_cython.pyx":685 + /* "_pydevd_bundle/pydevd_cython.pyx":684 * or main_debugger.stop_on_failed_tests * * if is_exception_event: # <<<<<<<<<<<<<< @@ -16054,7 +16054,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_9 = (__pyx_v_is_exception_event != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":686 + /* "_pydevd_bundle/pydevd_cython.pyx":685 * * if is_exception_event: * if has_exception_breakpoints: # <<<<<<<<<<<<<< @@ -16064,14 +16064,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_9 = (__pyx_v_has_exception_breakpoints != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":687 + /* "_pydevd_bundle/pydevd_cython.pyx":686 * if is_exception_event: * if has_exception_breakpoints: * should_stop, frame = self.should_stop_on_exception(frame, event, arg) # <<<<<<<<<<<<<< * if should_stop: * self.handle_exception(frame, event, arg) */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_should_stop_on_exception); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 687, __pyx_L5_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_should_stop_on_exception); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 686, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = NULL; __pyx_t_5 = 0; @@ -16088,7 +16088,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L5_error) + __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 686, __pyx_L5_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_8); } else @@ -16096,13 +16096,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L5_error) + __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 686, __pyx_L5_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_8); } else #endif { - __pyx_t_2 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 687, __pyx_L5_error) + __pyx_t_2 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 686, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_7); __pyx_t_7 = NULL; @@ -16116,7 +16116,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); PyTuple_SET_ITEM(__pyx_t_2, 2+__pyx_t_5, __pyx_v_arg); - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L5_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 686, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } @@ -16127,7 +16127,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 687, __pyx_L5_error) + __PYX_ERR(0, 686, __pyx_L5_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -16140,15 +16140,15 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_2); #else - __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 687, __pyx_L5_error) + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 686, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 687, __pyx_L5_error) + __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 686, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); #endif __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else { Py_ssize_t index = -1; - __pyx_t_7 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L5_error) + __pyx_t_7 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 686, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_16 = Py_TYPE(__pyx_t_7)->tp_iternext; @@ -16156,7 +16156,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_GOTREF(__pyx_t_1); index = 1; __pyx_t_2 = __pyx_t_16(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L28_unpacking_failed; __Pyx_GOTREF(__pyx_t_2); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_7), 2) < 0) __PYX_ERR(0, 687, __pyx_L5_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_7), 2) < 0) __PYX_ERR(0, 686, __pyx_L5_error) __pyx_t_16 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L29_unpacking_done; @@ -16164,16 +16164,16 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_16 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 687, __pyx_L5_error) + __PYX_ERR(0, 686, __pyx_L5_error) __pyx_L29_unpacking_done:; } - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 687, __pyx_L5_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 686, __pyx_L5_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_should_stop = __pyx_t_9; __Pyx_DECREF_SET(__pyx_v_frame, __pyx_t_2); __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":688 + /* "_pydevd_bundle/pydevd_cython.pyx":687 * if has_exception_breakpoints: * should_stop, frame = self.should_stop_on_exception(frame, event, arg) * if should_stop: # <<<<<<<<<<<<<< @@ -16183,14 +16183,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_9 = (__pyx_v_should_stop != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":689 + /* "_pydevd_bundle/pydevd_cython.pyx":688 * should_stop, frame = self.should_stop_on_exception(frame, event, arg) * if should_stop: * self.handle_exception(frame, event, arg) # <<<<<<<<<<<<<< * # No need to reset frame.f_trace to keep the same trace function. * return self.trace_dispatch */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_handle_exception); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 689, __pyx_L5_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_handle_exception); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 688, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = NULL; __pyx_t_5 = 0; @@ -16207,7 +16207,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 689, __pyx_L5_error) + __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L5_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_8); } else @@ -16215,13 +16215,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 689, __pyx_L5_error) + __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L5_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_8); } else #endif { - __pyx_t_7 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 689, __pyx_L5_error) + __pyx_t_7 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1); __pyx_t_1 = NULL; @@ -16235,14 +16235,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_5, __pyx_v_arg); - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 689, __pyx_L5_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":691 + /* "_pydevd_bundle/pydevd_cython.pyx":690 * self.handle_exception(frame, event, arg) * # No need to reset frame.f_trace to keep the same trace function. * return self.trace_dispatch # <<<<<<<<<<<<<< @@ -16250,13 +16250,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa * is_return = False */ __Pyx_XDECREF(__pyx_r); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 691, __pyx_L5_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 690, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); __pyx_r = __pyx_t_8; __pyx_t_8 = 0; goto __pyx_L4_return; - /* "_pydevd_bundle/pydevd_cython.pyx":688 + /* "_pydevd_bundle/pydevd_cython.pyx":687 * if has_exception_breakpoints: * should_stop, frame = self.should_stop_on_exception(frame, event, arg) * if should_stop: # <<<<<<<<<<<<<< @@ -16265,7 +16265,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":686 + /* "_pydevd_bundle/pydevd_cython.pyx":685 * * if is_exception_event: * if has_exception_breakpoints: # <<<<<<<<<<<<<< @@ -16274,7 +16274,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":692 + /* "_pydevd_bundle/pydevd_cython.pyx":691 * # No need to reset frame.f_trace to keep the same trace function. * return self.trace_dispatch * is_line = False # <<<<<<<<<<<<<< @@ -16283,7 +16283,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ __pyx_v_is_line = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":693 + /* "_pydevd_bundle/pydevd_cython.pyx":692 * return self.trace_dispatch * is_line = False * is_return = False # <<<<<<<<<<<<<< @@ -16292,7 +16292,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ __pyx_v_is_return = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":694 + /* "_pydevd_bundle/pydevd_cython.pyx":693 * is_line = False * is_return = False * is_call = False # <<<<<<<<<<<<<< @@ -16301,7 +16301,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ __pyx_v_is_call = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":685 + /* "_pydevd_bundle/pydevd_cython.pyx":684 * or main_debugger.stop_on_failed_tests * * if is_exception_event: # <<<<<<<<<<<<<< @@ -16311,7 +16311,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L26; } - /* "_pydevd_bundle/pydevd_cython.pyx":696 + /* "_pydevd_bundle/pydevd_cython.pyx":695 * is_call = False * else: * is_line = event == 'line' # <<<<<<<<<<<<<< @@ -16319,30 +16319,30 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa * is_call = event == 'call' */ /*else*/ { - __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_line, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 696, __pyx_L5_error) + __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_line, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 695, __pyx_L5_error) __pyx_v_is_line = __pyx_t_9; - /* "_pydevd_bundle/pydevd_cython.pyx":697 + /* "_pydevd_bundle/pydevd_cython.pyx":696 * else: * is_line = event == 'line' * is_return = event == 'return' # <<<<<<<<<<<<<< * is_call = event == 'call' * if not is_line and not is_return and not is_call: */ - __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_return, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 697, __pyx_L5_error) + __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_return, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 696, __pyx_L5_error) __pyx_v_is_return = __pyx_t_9; - /* "_pydevd_bundle/pydevd_cython.pyx":698 + /* "_pydevd_bundle/pydevd_cython.pyx":697 * is_line = event == 'line' * is_return = event == 'return' * is_call = event == 'call' # <<<<<<<<<<<<<< * if not is_line and not is_return and not is_call: * # Unexpected: just keep the same trace func. */ - __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 698, __pyx_L5_error) + __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 697, __pyx_L5_error) __pyx_v_is_call = __pyx_t_9; - /* "_pydevd_bundle/pydevd_cython.pyx":699 + /* "_pydevd_bundle/pydevd_cython.pyx":698 * is_return = event == 'return' * is_call = event == 'call' * if not is_line and not is_return and not is_call: # <<<<<<<<<<<<<< @@ -16366,7 +16366,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_L32_bool_binop_done:; if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":702 + /* "_pydevd_bundle/pydevd_cython.pyx":701 * # Unexpected: just keep the same trace func. * # No need to reset frame.f_trace to keep the same trace function. * return self.trace_dispatch # <<<<<<<<<<<<<< @@ -16374,13 +16374,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa * need_signature_trace_return = False */ __Pyx_XDECREF(__pyx_r); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L5_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); __pyx_r = __pyx_t_8; __pyx_t_8 = 0; goto __pyx_L4_return; - /* "_pydevd_bundle/pydevd_cython.pyx":699 + /* "_pydevd_bundle/pydevd_cython.pyx":698 * is_return = event == 'return' * is_call = event == 'call' * if not is_line and not is_return and not is_call: # <<<<<<<<<<<<<< @@ -16391,7 +16391,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_L26:; - /* "_pydevd_bundle/pydevd_cython.pyx":704 + /* "_pydevd_bundle/pydevd_cython.pyx":703 * return self.trace_dispatch * * need_signature_trace_return = False # <<<<<<<<<<<<<< @@ -16401,21 +16401,21 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(Py_False); __pyx_v_need_signature_trace_return = Py_False; - /* "_pydevd_bundle/pydevd_cython.pyx":705 + /* "_pydevd_bundle/pydevd_cython.pyx":704 * * need_signature_trace_return = False * if main_debugger.signature_factory is not None: # <<<<<<<<<<<<<< * if is_call: * need_signature_trace_return = send_signature_call_trace(main_debugger, frame, filename) */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_signature_factory); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 705, __pyx_L5_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_signature_factory); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 704, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = (__pyx_t_8 != Py_None); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_10 = (__pyx_t_9 != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":706 + /* "_pydevd_bundle/pydevd_cython.pyx":705 * need_signature_trace_return = False * if main_debugger.signature_factory is not None: * if is_call: # <<<<<<<<<<<<<< @@ -16425,14 +16425,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_10 = (__pyx_v_is_call != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":707 + /* "_pydevd_bundle/pydevd_cython.pyx":706 * if main_debugger.signature_factory is not None: * if is_call: * need_signature_trace_return = send_signature_call_trace(main_debugger, frame, filename) # <<<<<<<<<<<<<< * elif is_return: * send_signature_return_trace(main_debugger, frame, filename, arg) */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_send_signature_call_trace); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 707, __pyx_L5_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_send_signature_call_trace); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 706, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = NULL; __pyx_t_5 = 0; @@ -16449,7 +16449,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_main_debugger, __pyx_v_frame, __pyx_v_filename}; - __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L5_error) + __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 706, __pyx_L5_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_8); } else @@ -16457,13 +16457,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_main_debugger, __pyx_v_frame, __pyx_v_filename}; - __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L5_error) + __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 706, __pyx_L5_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_8); } else #endif { - __pyx_t_1 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 707, __pyx_L5_error) + __pyx_t_1 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 706, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7); __pyx_t_7 = NULL; @@ -16477,7 +16477,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(__pyx_v_filename); __Pyx_GIVEREF(__pyx_v_filename); PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_5, __pyx_v_filename); - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L5_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 706, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } @@ -16485,7 +16485,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_DECREF_SET(__pyx_v_need_signature_trace_return, __pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":706 + /* "_pydevd_bundle/pydevd_cython.pyx":705 * need_signature_trace_return = False * if main_debugger.signature_factory is not None: * if is_call: # <<<<<<<<<<<<<< @@ -16495,7 +16495,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L36; } - /* "_pydevd_bundle/pydevd_cython.pyx":708 + /* "_pydevd_bundle/pydevd_cython.pyx":707 * if is_call: * need_signature_trace_return = send_signature_call_trace(main_debugger, frame, filename) * elif is_return: # <<<<<<<<<<<<<< @@ -16505,14 +16505,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_10 = (__pyx_v_is_return != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":709 + /* "_pydevd_bundle/pydevd_cython.pyx":708 * need_signature_trace_return = send_signature_call_trace(main_debugger, frame, filename) * elif is_return: * send_signature_return_trace(main_debugger, frame, filename, arg) # <<<<<<<<<<<<<< * * stop_frame = info.pydev_step_stop */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_send_signature_return_trace); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 709, __pyx_L5_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_send_signature_return_trace); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 708, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = NULL; __pyx_t_5 = 0; @@ -16529,7 +16529,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_v_main_debugger, __pyx_v_frame, __pyx_v_filename, __pyx_v_arg}; - __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 709, __pyx_L5_error) + __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 708, __pyx_L5_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_8); } else @@ -16537,13 +16537,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_v_main_debugger, __pyx_v_frame, __pyx_v_filename, __pyx_v_arg}; - __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 709, __pyx_L5_error) + __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 708, __pyx_L5_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_8); } else #endif { - __pyx_t_7 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 709, __pyx_L5_error) + __pyx_t_7 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 708, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1); __pyx_t_1 = NULL; @@ -16560,14 +16560,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_5, __pyx_v_arg); - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 709, __pyx_L5_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 708, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":708 + /* "_pydevd_bundle/pydevd_cython.pyx":707 * if is_call: * need_signature_trace_return = send_signature_call_trace(main_debugger, frame, filename) * elif is_return: # <<<<<<<<<<<<<< @@ -16577,7 +16577,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_L36:; - /* "_pydevd_bundle/pydevd_cython.pyx":705 + /* "_pydevd_bundle/pydevd_cython.pyx":704 * * need_signature_trace_return = False * if main_debugger.signature_factory is not None: # <<<<<<<<<<<<<< @@ -16586,7 +16586,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":711 + /* "_pydevd_bundle/pydevd_cython.pyx":710 * send_signature_return_trace(main_debugger, frame, filename, arg) * * stop_frame = info.pydev_step_stop # <<<<<<<<<<<<<< @@ -16598,7 +16598,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_v_stop_frame = __pyx_t_8; __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":712 + /* "_pydevd_bundle/pydevd_cython.pyx":711 * * stop_frame = info.pydev_step_stop * step_cmd = info.pydev_step_cmd # <<<<<<<<<<<<<< @@ -16608,34 +16608,34 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_5 = __pyx_v_info->pydev_step_cmd; __pyx_v_step_cmd = __pyx_t_5; - /* "_pydevd_bundle/pydevd_cython.pyx":713 + /* "_pydevd_bundle/pydevd_cython.pyx":712 * stop_frame = info.pydev_step_stop * step_cmd = info.pydev_step_cmd * is_generator_or_coroutime = frame.f_code.co_flags & 0xa0 # 0xa0 == CO_GENERATOR = 0x20 | CO_COROUTINE = 0x80 # <<<<<<<<<<<<<< * * breakpoints_for_file = main_debugger.breakpoints.get(filename) */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 713, __pyx_L5_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_co_flags); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 713, __pyx_L5_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_co_flags); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 712, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyInt_AndObjC(__pyx_t_2, __pyx_int_160, 0xa0, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 713, __pyx_L5_error) + __pyx_t_8 = __Pyx_PyInt_AndObjC(__pyx_t_2, __pyx_int_160, 0xa0, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_is_generator_or_coroutime = __pyx_t_8; __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":715 + /* "_pydevd_bundle/pydevd_cython.pyx":714 * is_generator_or_coroutime = frame.f_code.co_flags & 0xa0 # 0xa0 == CO_GENERATOR = 0x20 | CO_COROUTINE = 0x80 * * breakpoints_for_file = main_debugger.breakpoints.get(filename) # <<<<<<<<<<<<<< * * if not is_exception_event: */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_breakpoints); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 715, __pyx_L5_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_breakpoints); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 714, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_get); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 715, __pyx_L5_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_get); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 714, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; @@ -16650,14 +16650,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_t_8 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_2, __pyx_v_filename) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_filename); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 715, __pyx_L5_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 714, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (!(likely(PyDict_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_8)->tp_name), 0))) __PYX_ERR(0, 715, __pyx_L5_error) + if (!(likely(PyDict_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_8)->tp_name), 0))) __PYX_ERR(0, 714, __pyx_L5_error) __pyx_v_breakpoints_for_file = ((PyObject*)__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":717 + /* "_pydevd_bundle/pydevd_cython.pyx":716 * breakpoints_for_file = main_debugger.breakpoints.get(filename) * * if not is_exception_event: # <<<<<<<<<<<<<< @@ -16667,17 +16667,17 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_10 = ((!(__pyx_v_is_exception_event != 0)) != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":718 + /* "_pydevd_bundle/pydevd_cython.pyx":717 * * if not is_exception_event: * if is_generator_or_coroutime: # <<<<<<<<<<<<<< * if is_return: * # Dealing with coroutines and generators: */ - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_is_generator_or_coroutime); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 718, __pyx_L5_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_is_generator_or_coroutime); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 717, __pyx_L5_error) if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":719 + /* "_pydevd_bundle/pydevd_cython.pyx":718 * if not is_exception_event: * if is_generator_or_coroutime: * if is_return: # <<<<<<<<<<<<<< @@ -16687,14 +16687,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_10 = (__pyx_v_is_return != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":723 + /* "_pydevd_bundle/pydevd_cython.pyx":722 * # When in a coroutine we change the perceived event to the debugger because * # a call, StopIteration exception and return are usually just pausing/unpausing it. * returns_cache_key = (frame_cache_key, 'returns') # <<<<<<<<<<<<<< * return_lines = frame_skips_cache.get(returns_cache_key) * if return_lines is None: */ - __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 723, __pyx_L5_error) + __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 722, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_v_frame_cache_key); __Pyx_GIVEREF(__pyx_v_frame_cache_key); @@ -16705,7 +16705,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_v_returns_cache_key = ((PyObject*)__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":724 + /* "_pydevd_bundle/pydevd_cython.pyx":723 * # a call, StopIteration exception and return are usually just pausing/unpausing it. * returns_cache_key = (frame_cache_key, 'returns') * return_lines = frame_skips_cache.get(returns_cache_key) # <<<<<<<<<<<<<< @@ -16714,14 +16714,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ if (unlikely(__pyx_v_frame_skips_cache == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 724, __pyx_L5_error) + __PYX_ERR(0, 723, __pyx_L5_error) } - __pyx_t_8 = __Pyx_PyDict_GetItemDefault(__pyx_v_frame_skips_cache, __pyx_v_returns_cache_key, Py_None); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 724, __pyx_L5_error) + __pyx_t_8 = __Pyx_PyDict_GetItemDefault(__pyx_v_frame_skips_cache, __pyx_v_returns_cache_key, Py_None); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 723, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); __pyx_v_return_lines = __pyx_t_8; __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":725 + /* "_pydevd_bundle/pydevd_cython.pyx":724 * returns_cache_key = (frame_cache_key, 'returns') * return_lines = frame_skips_cache.get(returns_cache_key) * if return_lines is None: # <<<<<<<<<<<<<< @@ -16732,28 +16732,28 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_9 = (__pyx_t_10 != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":730 + /* "_pydevd_bundle/pydevd_cython.pyx":729 * # it doesn't give any clear indication when a coroutine or generator is * # finishing or just pausing. * return_lines = set() # <<<<<<<<<<<<<< * for x in main_debugger.collect_return_info(frame.f_code): * # Note: cython does not support closures in cpdefs (so we can't use */ - __pyx_t_8 = PySet_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 730, __pyx_L5_error) + __pyx_t_8 = PySet_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 729, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF_SET(__pyx_v_return_lines, __pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":731 + /* "_pydevd_bundle/pydevd_cython.pyx":730 * # finishing or just pausing. * return_lines = set() * for x in main_debugger.collect_return_info(frame.f_code): # <<<<<<<<<<<<<< * # Note: cython does not support closures in cpdefs (so we can't use * # a list comprehension). */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_collect_return_info); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 731, __pyx_L5_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_collect_return_info); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 730, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 731, __pyx_L5_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 730, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { @@ -16768,16 +16768,16 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_8 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_1, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_2); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 731, __pyx_L5_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 730, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) { __pyx_t_7 = __pyx_t_8; __Pyx_INCREF(__pyx_t_7); __pyx_t_11 = 0; __pyx_t_12 = NULL; } else { - __pyx_t_11 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 731, __pyx_L5_error) + __pyx_t_11 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 730, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_12 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 731, __pyx_L5_error) + __pyx_t_12 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 730, __pyx_L5_error) } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; for (;;) { @@ -16785,17 +16785,17 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa if (likely(PyList_CheckExact(__pyx_t_7))) { if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_7)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_8 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_11); __Pyx_INCREF(__pyx_t_8); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 731, __pyx_L5_error) + __pyx_t_8 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_11); __Pyx_INCREF(__pyx_t_8); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 730, __pyx_L5_error) #else - __pyx_t_8 = PySequence_ITEM(__pyx_t_7, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 731, __pyx_L5_error) + __pyx_t_8 = PySequence_ITEM(__pyx_t_7, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 730, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); #endif } else { if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_7)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_11); __Pyx_INCREF(__pyx_t_8); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 731, __pyx_L5_error) + __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_11); __Pyx_INCREF(__pyx_t_8); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 730, __pyx_L5_error) #else - __pyx_t_8 = PySequence_ITEM(__pyx_t_7, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 731, __pyx_L5_error) + __pyx_t_8 = PySequence_ITEM(__pyx_t_7, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 730, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); #endif } @@ -16805,7 +16805,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 731, __pyx_L5_error) + else __PYX_ERR(0, 730, __pyx_L5_error) } break; } @@ -16814,16 +16814,16 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":734 + /* "_pydevd_bundle/pydevd_cython.pyx":733 * # Note: cython does not support closures in cpdefs (so we can't use * # a list comprehension). * return_lines.add(x.return_line) # <<<<<<<<<<<<<< * * frame_skips_cache[returns_cache_key] = return_lines */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_return_lines, __pyx_n_s_add); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 734, __pyx_L5_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_return_lines, __pyx_n_s_add); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 733, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_return_line); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 734, __pyx_L5_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_return_line); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 733, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -16838,12 +16838,12 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_8 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 734, __pyx_L5_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 733, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":731 + /* "_pydevd_bundle/pydevd_cython.pyx":730 * # finishing or just pausing. * return_lines = set() * for x in main_debugger.collect_return_info(frame.f_code): # <<<<<<<<<<<<<< @@ -16853,7 +16853,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":736 + /* "_pydevd_bundle/pydevd_cython.pyx":735 * return_lines.add(x.return_line) * * frame_skips_cache[returns_cache_key] = return_lines # <<<<<<<<<<<<<< @@ -16862,11 +16862,11 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ if (unlikely(__pyx_v_frame_skips_cache == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 736, __pyx_L5_error) + __PYX_ERR(0, 735, __pyx_L5_error) } - if (unlikely(PyDict_SetItem(__pyx_v_frame_skips_cache, __pyx_v_returns_cache_key, __pyx_v_return_lines) < 0)) __PYX_ERR(0, 736, __pyx_L5_error) + if (unlikely(PyDict_SetItem(__pyx_v_frame_skips_cache, __pyx_v_returns_cache_key, __pyx_v_return_lines) < 0)) __PYX_ERR(0, 735, __pyx_L5_error) - /* "_pydevd_bundle/pydevd_cython.pyx":725 + /* "_pydevd_bundle/pydevd_cython.pyx":724 * returns_cache_key = (frame_cache_key, 'returns') * return_lines = frame_skips_cache.get(returns_cache_key) * if return_lines is None: # <<<<<<<<<<<<<< @@ -16875,21 +16875,21 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":738 + /* "_pydevd_bundle/pydevd_cython.pyx":737 * frame_skips_cache[returns_cache_key] = return_lines * * if line not in return_lines: # <<<<<<<<<<<<<< * # Not really a return (coroutine/generator paused). * return self.trace_dispatch */ - __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_line); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 738, __pyx_L5_error) + __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_line); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 737, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_9 = (__Pyx_PySequence_ContainsTF(__pyx_t_7, __pyx_v_return_lines, Py_NE)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 738, __pyx_L5_error) + __pyx_t_9 = (__Pyx_PySequence_ContainsTF(__pyx_t_7, __pyx_v_return_lines, Py_NE)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 737, __pyx_L5_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_10 = (__pyx_t_9 != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":740 + /* "_pydevd_bundle/pydevd_cython.pyx":739 * if line not in return_lines: * # Not really a return (coroutine/generator paused). * return self.trace_dispatch # <<<<<<<<<<<<<< @@ -16897,13 +16897,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa * # Don't stop when calling coroutines, we will on other event anyway if necessary. */ __Pyx_XDECREF(__pyx_r); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 740, __pyx_L5_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 739, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); __pyx_r = __pyx_t_7; __pyx_t_7 = 0; goto __pyx_L4_return; - /* "_pydevd_bundle/pydevd_cython.pyx":738 + /* "_pydevd_bundle/pydevd_cython.pyx":737 * frame_skips_cache[returns_cache_key] = return_lines * * if line not in return_lines: # <<<<<<<<<<<<<< @@ -16912,7 +16912,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":719 + /* "_pydevd_bundle/pydevd_cython.pyx":718 * if not is_exception_event: * if is_generator_or_coroutime: * if is_return: # <<<<<<<<<<<<<< @@ -16922,7 +16922,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L39; } - /* "_pydevd_bundle/pydevd_cython.pyx":741 + /* "_pydevd_bundle/pydevd_cython.pyx":740 * # Not really a return (coroutine/generator paused). * return self.trace_dispatch * elif is_call: # <<<<<<<<<<<<<< @@ -16932,7 +16932,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_10 = (__pyx_v_is_call != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":743 + /* "_pydevd_bundle/pydevd_cython.pyx":742 * elif is_call: * # Don't stop when calling coroutines, we will on other event anyway if necessary. * return self.trace_dispatch # <<<<<<<<<<<<<< @@ -16940,13 +16940,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa * can_skip = False */ __Pyx_XDECREF(__pyx_r); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 743, __pyx_L5_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 742, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); __pyx_r = __pyx_t_7; __pyx_t_7 = 0; goto __pyx_L4_return; - /* "_pydevd_bundle/pydevd_cython.pyx":741 + /* "_pydevd_bundle/pydevd_cython.pyx":740 * # Not really a return (coroutine/generator paused). * return self.trace_dispatch * elif is_call: # <<<<<<<<<<<<<< @@ -16956,7 +16956,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_L39:; - /* "_pydevd_bundle/pydevd_cython.pyx":718 + /* "_pydevd_bundle/pydevd_cython.pyx":717 * * if not is_exception_event: * if is_generator_or_coroutime: # <<<<<<<<<<<<<< @@ -16965,7 +16965,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":745 + /* "_pydevd_bundle/pydevd_cython.pyx":744 * return self.trace_dispatch * * can_skip = False # <<<<<<<<<<<<<< @@ -16974,7 +16974,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ __pyx_v_can_skip = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":747 + /* "_pydevd_bundle/pydevd_cython.pyx":746 * can_skip = False * * if info.pydev_state == 1: # STATE_RUN = 1 # <<<<<<<<<<<<<< @@ -16984,7 +16984,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_10 = ((__pyx_v_info->pydev_state == 1) != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":752 + /* "_pydevd_bundle/pydevd_cython.pyx":751 * # - we should make a step return/step over and we're not in the current frame * # CMD_STEP_RETURN = 109, CMD_STEP_OVER = 108 * can_skip = (step_cmd == -1 and stop_frame is None) \ # <<<<<<<<<<<<<< @@ -17005,7 +17005,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_L46_next_or:; - /* "_pydevd_bundle/pydevd_cython.pyx":753 + /* "_pydevd_bundle/pydevd_cython.pyx":752 * # CMD_STEP_RETURN = 109, CMD_STEP_OVER = 108 * can_skip = (step_cmd == -1 and stop_frame is None) \ * or (step_cmd in (109, 108) and stop_frame is not frame) # <<<<<<<<<<<<<< @@ -17033,7 +17033,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_L45_bool_binop_done:; __pyx_v_can_skip = __pyx_t_10; - /* "_pydevd_bundle/pydevd_cython.pyx":755 + /* "_pydevd_bundle/pydevd_cython.pyx":754 * or (step_cmd in (109, 108) and stop_frame is not frame) * * if can_skip: # <<<<<<<<<<<<<< @@ -17043,7 +17043,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_10 = (__pyx_v_can_skip != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":756 + /* "_pydevd_bundle/pydevd_cython.pyx":755 * * if can_skip: * if plugin_manager is not None and main_debugger.has_plugin_line_breaks: # <<<<<<<<<<<<<< @@ -17057,22 +17057,22 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_10 = __pyx_t_9; goto __pyx_L51_bool_binop_done; } - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_has_plugin_line_breaks); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L5_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_has_plugin_line_breaks); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 755, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 756, __pyx_L5_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 755, __pyx_L5_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_10 = __pyx_t_9; __pyx_L51_bool_binop_done:; if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":757 + /* "_pydevd_bundle/pydevd_cython.pyx":756 * if can_skip: * if plugin_manager is not None and main_debugger.has_plugin_line_breaks: * can_skip = not plugin_manager.can_not_skip(main_debugger, self, frame, info) # <<<<<<<<<<<<<< * * # CMD_STEP_OVER = 108 */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin_manager, __pyx_n_s_can_not_skip); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L5_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin_manager, __pyx_n_s_can_not_skip); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = NULL; __pyx_t_5 = 0; @@ -17089,7 +17089,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[5] = {__pyx_t_2, __pyx_v_main_debugger, ((PyObject *)__pyx_v_self), __pyx_v_frame, ((PyObject *)__pyx_v_info)}; - __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L5_error) + __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L5_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_7); } else @@ -17097,13 +17097,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[5] = {__pyx_t_2, __pyx_v_main_debugger, ((PyObject *)__pyx_v_self), __pyx_v_frame, ((PyObject *)__pyx_v_info)}; - __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L5_error) + __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L5_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_7); } else #endif { - __pyx_t_1 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 757, __pyx_L5_error) + __pyx_t_1 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 756, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __pyx_t_2 = NULL; @@ -17120,16 +17120,16 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(((PyObject *)__pyx_v_info)); __Pyx_GIVEREF(((PyObject *)__pyx_v_info)); PyTuple_SET_ITEM(__pyx_t_1, 3+__pyx_t_5, ((PyObject *)__pyx_v_info)); - __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L5_error) + __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 757, __pyx_L5_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 756, __pyx_L5_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_can_skip = (!__pyx_t_10); - /* "_pydevd_bundle/pydevd_cython.pyx":756 + /* "_pydevd_bundle/pydevd_cython.pyx":755 * * if can_skip: * if plugin_manager is not None and main_debugger.has_plugin_line_breaks: # <<<<<<<<<<<<<< @@ -17138,7 +17138,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":760 + /* "_pydevd_bundle/pydevd_cython.pyx":759 * * # CMD_STEP_OVER = 108 * if can_skip and main_debugger.show_return_values and info.pydev_step_cmd == 108 and frame.f_back is info.pydev_step_stop: # <<<<<<<<<<<<<< @@ -17151,9 +17151,9 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_10 = __pyx_t_9; goto __pyx_L54_bool_binop_done; } - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_show_return_values); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 760, __pyx_L5_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_show_return_values); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 759, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 760, __pyx_L5_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 759, __pyx_L5_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_9) { } else { @@ -17166,7 +17166,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_10 = __pyx_t_9; goto __pyx_L54_bool_binop_done; } - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 760, __pyx_L5_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 759, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_9 = (__pyx_t_7 == __pyx_v_info->pydev_step_stop); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; @@ -17175,7 +17175,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_L54_bool_binop_done:; if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":762 + /* "_pydevd_bundle/pydevd_cython.pyx":761 * if can_skip and main_debugger.show_return_values and info.pydev_step_cmd == 108 and frame.f_back is info.pydev_step_stop: * # trace function for showing return values after step over * can_skip = False # <<<<<<<<<<<<<< @@ -17184,7 +17184,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ __pyx_v_can_skip = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":760 + /* "_pydevd_bundle/pydevd_cython.pyx":759 * * # CMD_STEP_OVER = 108 * if can_skip and main_debugger.show_return_values and info.pydev_step_cmd == 108 and frame.f_back is info.pydev_step_stop: # <<<<<<<<<<<<<< @@ -17193,7 +17193,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":755 + /* "_pydevd_bundle/pydevd_cython.pyx":754 * or (step_cmd in (109, 108) and stop_frame is not frame) * * if can_skip: # <<<<<<<<<<<<<< @@ -17202,7 +17202,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":747 + /* "_pydevd_bundle/pydevd_cython.pyx":746 * can_skip = False * * if info.pydev_state == 1: # STATE_RUN = 1 # <<<<<<<<<<<<<< @@ -17211,18 +17211,18 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":768 + /* "_pydevd_bundle/pydevd_cython.pyx":767 * # also, after we hit a breakpoint and go to some other debugging state, we have to force the set trace anyway, * # so, that's why the additional checks are there. * if not breakpoints_for_file: # <<<<<<<<<<<<<< * if can_skip: * if has_exception_breakpoints: */ - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_breakpoints_for_file); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 768, __pyx_L5_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_breakpoints_for_file); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 767, __pyx_L5_error) __pyx_t_17 = ((!__pyx_t_10) != 0); if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":769 + /* "_pydevd_bundle/pydevd_cython.pyx":768 * # so, that's why the additional checks are there. * if not breakpoints_for_file: * if can_skip: # <<<<<<<<<<<<<< @@ -17232,7 +17232,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_17 = (__pyx_v_can_skip != 0); if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":770 + /* "_pydevd_bundle/pydevd_cython.pyx":769 * if not breakpoints_for_file: * if can_skip: * if has_exception_breakpoints: # <<<<<<<<<<<<<< @@ -17242,19 +17242,19 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_17 = (__pyx_v_has_exception_breakpoints != 0); if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":771 + /* "_pydevd_bundle/pydevd_cython.pyx":770 * if can_skip: * if has_exception_breakpoints: * frame.f_trace = self.trace_exception # <<<<<<<<<<<<<< * return self.trace_exception * else: */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_exception); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L5_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_exception); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_7) < 0) __PYX_ERR(0, 771, __pyx_L5_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_7) < 0) __PYX_ERR(0, 770, __pyx_L5_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":772 + /* "_pydevd_bundle/pydevd_cython.pyx":771 * if has_exception_breakpoints: * frame.f_trace = self.trace_exception * return self.trace_exception # <<<<<<<<<<<<<< @@ -17262,13 +17262,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa * if need_signature_trace_return: */ __Pyx_XDECREF(__pyx_r); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_exception); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 772, __pyx_L5_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_exception); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); __pyx_r = __pyx_t_7; __pyx_t_7 = 0; goto __pyx_L4_return; - /* "_pydevd_bundle/pydevd_cython.pyx":770 + /* "_pydevd_bundle/pydevd_cython.pyx":769 * if not breakpoints_for_file: * if can_skip: * if has_exception_breakpoints: # <<<<<<<<<<<<<< @@ -17277,7 +17277,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":774 + /* "_pydevd_bundle/pydevd_cython.pyx":773 * return self.trace_exception * else: * if need_signature_trace_return: # <<<<<<<<<<<<<< @@ -17285,22 +17285,22 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa * return self.trace_return */ /*else*/ { - __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_v_need_signature_trace_return); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 774, __pyx_L5_error) + __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_v_need_signature_trace_return); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 773, __pyx_L5_error) if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":775 + /* "_pydevd_bundle/pydevd_cython.pyx":774 * else: * if need_signature_trace_return: * frame.f_trace = self.trace_return # <<<<<<<<<<<<<< * return self.trace_return * else: */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_return); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 775, __pyx_L5_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_return); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 774, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_7) < 0) __PYX_ERR(0, 775, __pyx_L5_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_7) < 0) __PYX_ERR(0, 774, __pyx_L5_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":776 + /* "_pydevd_bundle/pydevd_cython.pyx":775 * if need_signature_trace_return: * frame.f_trace = self.trace_return * return self.trace_return # <<<<<<<<<<<<<< @@ -17308,13 +17308,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa * if not is_call: frame.f_trace = NO_FTRACE */ __Pyx_XDECREF(__pyx_r); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_return); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 776, __pyx_L5_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_return); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 775, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); __pyx_r = __pyx_t_7; __pyx_t_7 = 0; goto __pyx_L4_return; - /* "_pydevd_bundle/pydevd_cython.pyx":774 + /* "_pydevd_bundle/pydevd_cython.pyx":773 * return self.trace_exception * else: * if need_signature_trace_return: # <<<<<<<<<<<<<< @@ -17323,7 +17323,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":778 + /* "_pydevd_bundle/pydevd_cython.pyx":777 * return self.trace_return * else: * if not is_call: frame.f_trace = NO_FTRACE # <<<<<<<<<<<<<< @@ -17333,13 +17333,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa /*else*/ { __pyx_t_17 = ((!(__pyx_v_is_call != 0)) != 0); if (__pyx_t_17) { - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 778, __pyx_L5_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 777, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_7) < 0) __PYX_ERR(0, 778, __pyx_L5_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_7) < 0) __PYX_ERR(0, 777, __pyx_L5_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } - /* "_pydevd_bundle/pydevd_cython.pyx":779 + /* "_pydevd_bundle/pydevd_cython.pyx":778 * else: * if not is_call: frame.f_trace = NO_FTRACE * return None # <<<<<<<<<<<<<< @@ -17352,7 +17352,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } } - /* "_pydevd_bundle/pydevd_cython.pyx":769 + /* "_pydevd_bundle/pydevd_cython.pyx":768 * # so, that's why the additional checks are there. * if not breakpoints_for_file: * if can_skip: # <<<<<<<<<<<<<< @@ -17361,7 +17361,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":768 + /* "_pydevd_bundle/pydevd_cython.pyx":767 * # also, after we hit a breakpoint and go to some other debugging state, we have to force the set trace anyway, * # so, that's why the additional checks are there. * if not breakpoints_for_file: # <<<<<<<<<<<<<< @@ -17371,7 +17371,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L58; } - /* "_pydevd_bundle/pydevd_cython.pyx":783 + /* "_pydevd_bundle/pydevd_cython.pyx":782 * else: * # When cached, 0 means we don't have a breakpoint and 1 means we have. * if can_skip: # <<<<<<<<<<<<<< @@ -17382,7 +17382,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_17 = (__pyx_v_can_skip != 0); if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":784 + /* "_pydevd_bundle/pydevd_cython.pyx":783 * # When cached, 0 means we don't have a breakpoint and 1 means we have. * if can_skip: * breakpoints_in_line_cache = frame_skips_cache.get(line_cache_key, -1) # <<<<<<<<<<<<<< @@ -17391,15 +17391,15 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ if (unlikely(__pyx_v_frame_skips_cache == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 784, __pyx_L5_error) + __PYX_ERR(0, 783, __pyx_L5_error) } - __pyx_t_7 = __Pyx_PyDict_GetItemDefault(__pyx_v_frame_skips_cache, __pyx_v_line_cache_key, __pyx_int_neg_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 784, __pyx_L5_error) + __pyx_t_7 = __Pyx_PyDict_GetItemDefault(__pyx_v_frame_skips_cache, __pyx_v_line_cache_key, __pyx_int_neg_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 783, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 784, __pyx_L5_error) + __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 783, __pyx_L5_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_breakpoints_in_line_cache = __pyx_t_5; - /* "_pydevd_bundle/pydevd_cython.pyx":785 + /* "_pydevd_bundle/pydevd_cython.pyx":784 * if can_skip: * breakpoints_in_line_cache = frame_skips_cache.get(line_cache_key, -1) * if breakpoints_in_line_cache == 0: # <<<<<<<<<<<<<< @@ -17409,7 +17409,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_17 = ((__pyx_v_breakpoints_in_line_cache == 0) != 0); if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":787 + /* "_pydevd_bundle/pydevd_cython.pyx":786 * if breakpoints_in_line_cache == 0: * # No need to reset frame.f_trace to keep the same trace function. * return self.trace_dispatch # <<<<<<<<<<<<<< @@ -17417,13 +17417,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa * breakpoints_in_frame_cache = frame_skips_cache.get(frame_cache_key, -1) */ __Pyx_XDECREF(__pyx_r); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 787, __pyx_L5_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 786, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); __pyx_r = __pyx_t_7; __pyx_t_7 = 0; goto __pyx_L4_return; - /* "_pydevd_bundle/pydevd_cython.pyx":785 + /* "_pydevd_bundle/pydevd_cython.pyx":784 * if can_skip: * breakpoints_in_line_cache = frame_skips_cache.get(line_cache_key, -1) * if breakpoints_in_line_cache == 0: # <<<<<<<<<<<<<< @@ -17432,7 +17432,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":783 + /* "_pydevd_bundle/pydevd_cython.pyx":782 * else: * # When cached, 0 means we don't have a breakpoint and 1 means we have. * if can_skip: # <<<<<<<<<<<<<< @@ -17441,7 +17441,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":789 + /* "_pydevd_bundle/pydevd_cython.pyx":788 * return self.trace_dispatch * * breakpoints_in_frame_cache = frame_skips_cache.get(frame_cache_key, -1) # <<<<<<<<<<<<<< @@ -17450,15 +17450,15 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ if (unlikely(__pyx_v_frame_skips_cache == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 789, __pyx_L5_error) + __PYX_ERR(0, 788, __pyx_L5_error) } - __pyx_t_7 = __Pyx_PyDict_GetItemDefault(__pyx_v_frame_skips_cache, __pyx_v_frame_cache_key, __pyx_int_neg_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 789, __pyx_L5_error) + __pyx_t_7 = __Pyx_PyDict_GetItemDefault(__pyx_v_frame_skips_cache, __pyx_v_frame_cache_key, __pyx_int_neg_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 788, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 789, __pyx_L5_error) + __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 788, __pyx_L5_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_breakpoints_in_frame_cache = __pyx_t_5; - /* "_pydevd_bundle/pydevd_cython.pyx":790 + /* "_pydevd_bundle/pydevd_cython.pyx":789 * * breakpoints_in_frame_cache = frame_skips_cache.get(frame_cache_key, -1) * if breakpoints_in_frame_cache != -1: # <<<<<<<<<<<<<< @@ -17468,7 +17468,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_17 = ((__pyx_v_breakpoints_in_frame_cache != -1L) != 0); if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":792 + /* "_pydevd_bundle/pydevd_cython.pyx":791 * if breakpoints_in_frame_cache != -1: * # Gotten from cache. * has_breakpoint_in_frame = breakpoints_in_frame_cache == 1 # <<<<<<<<<<<<<< @@ -17477,7 +17477,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ __pyx_v_has_breakpoint_in_frame = (__pyx_v_breakpoints_in_frame_cache == 1); - /* "_pydevd_bundle/pydevd_cython.pyx":790 + /* "_pydevd_bundle/pydevd_cython.pyx":789 * * breakpoints_in_frame_cache = frame_skips_cache.get(frame_cache_key, -1) * if breakpoints_in_frame_cache != -1: # <<<<<<<<<<<<<< @@ -17487,7 +17487,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L65; } - /* "_pydevd_bundle/pydevd_cython.pyx":795 + /* "_pydevd_bundle/pydevd_cython.pyx":794 * * else: * has_breakpoint_in_frame = False # <<<<<<<<<<<<<< @@ -17497,23 +17497,23 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa /*else*/ { __pyx_v_has_breakpoint_in_frame = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":797 + /* "_pydevd_bundle/pydevd_cython.pyx":796 * has_breakpoint_in_frame = False * # Checks the breakpoint to see if there is a context match in some function * curr_func_name = frame.f_code.co_name # <<<<<<<<<<<<<< * * # global context is set with an empty name */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 797, __pyx_L5_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 796, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_co_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 797, __pyx_L5_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_co_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 796, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (!(likely(PyString_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_8)->tp_name), 0))) __PYX_ERR(0, 797, __pyx_L5_error) + if (!(likely(PyString_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_8)->tp_name), 0))) __PYX_ERR(0, 796, __pyx_L5_error) __pyx_v_curr_func_name = ((PyObject*)__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":800 + /* "_pydevd_bundle/pydevd_cython.pyx":799 * * # global context is set with an empty name * if curr_func_name in ('?', '<module>', '<lambda>'): # <<<<<<<<<<<<<< @@ -17522,21 +17522,21 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ __Pyx_INCREF(__pyx_v_curr_func_name); __pyx_t_18 = __pyx_v_curr_func_name; - __pyx_t_10 = (__Pyx_PyString_Equals(__pyx_t_18, __pyx_kp_s__5, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 800, __pyx_L5_error) + __pyx_t_10 = (__Pyx_PyString_Equals(__pyx_t_18, __pyx_kp_s__5, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 799, __pyx_L5_error) __pyx_t_9 = (__pyx_t_10 != 0); if (!__pyx_t_9) { } else { __pyx_t_17 = __pyx_t_9; goto __pyx_L67_bool_binop_done; } - __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_t_18, __pyx_kp_s_module, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 800, __pyx_L5_error) + __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_t_18, __pyx_kp_s_module, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 799, __pyx_L5_error) __pyx_t_10 = (__pyx_t_9 != 0); if (!__pyx_t_10) { } else { __pyx_t_17 = __pyx_t_10; goto __pyx_L67_bool_binop_done; } - __pyx_t_10 = (__Pyx_PyString_Equals(__pyx_t_18, __pyx_kp_s_lambda, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 800, __pyx_L5_error) + __pyx_t_10 = (__Pyx_PyString_Equals(__pyx_t_18, __pyx_kp_s_lambda, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 799, __pyx_L5_error) __pyx_t_9 = (__pyx_t_10 != 0); __pyx_t_17 = __pyx_t_9; __pyx_L67_bool_binop_done:; @@ -17544,7 +17544,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_9 = (__pyx_t_17 != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":801 + /* "_pydevd_bundle/pydevd_cython.pyx":800 * # global context is set with an empty name * if curr_func_name in ('?', '<module>', '<lambda>'): * curr_func_name = '' # <<<<<<<<<<<<<< @@ -17554,7 +17554,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(__pyx_kp_s_); __Pyx_DECREF_SET(__pyx_v_curr_func_name, __pyx_kp_s_); - /* "_pydevd_bundle/pydevd_cython.pyx":800 + /* "_pydevd_bundle/pydevd_cython.pyx":799 * * # global context is set with an empty name * if curr_func_name in ('?', '<module>', '<lambda>'): # <<<<<<<<<<<<<< @@ -17563,14 +17563,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":803 + /* "_pydevd_bundle/pydevd_cython.pyx":802 * curr_func_name = '' * * for breakpoint in dict_iter_values(breakpoints_for_file): # jython does not support itervalues() # <<<<<<<<<<<<<< * # will match either global or some function * if breakpoint.func_name in ('None', curr_func_name): */ - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_dict_iter_values); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 803, __pyx_L5_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_dict_iter_values); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 802, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { @@ -17584,16 +17584,16 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_t_8 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_1, __pyx_v_breakpoints_for_file) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_breakpoints_for_file); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 803, __pyx_L5_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 802, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) { __pyx_t_7 = __pyx_t_8; __Pyx_INCREF(__pyx_t_7); __pyx_t_11 = 0; __pyx_t_12 = NULL; } else { - __pyx_t_11 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 803, __pyx_L5_error) + __pyx_t_11 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 802, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_12 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 803, __pyx_L5_error) + __pyx_t_12 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 802, __pyx_L5_error) } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; for (;;) { @@ -17601,17 +17601,17 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa if (likely(PyList_CheckExact(__pyx_t_7))) { if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_7)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_8 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_11); __Pyx_INCREF(__pyx_t_8); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 803, __pyx_L5_error) + __pyx_t_8 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_11); __Pyx_INCREF(__pyx_t_8); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 802, __pyx_L5_error) #else - __pyx_t_8 = PySequence_ITEM(__pyx_t_7, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 803, __pyx_L5_error) + __pyx_t_8 = PySequence_ITEM(__pyx_t_7, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 802, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); #endif } else { if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_7)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_11); __Pyx_INCREF(__pyx_t_8); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 803, __pyx_L5_error) + __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_11); __Pyx_INCREF(__pyx_t_8); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 802, __pyx_L5_error) #else - __pyx_t_8 = PySequence_ITEM(__pyx_t_7, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 803, __pyx_L5_error) + __pyx_t_8 = PySequence_ITEM(__pyx_t_7, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 802, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); #endif } @@ -17621,7 +17621,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 803, __pyx_L5_error) + else __PYX_ERR(0, 802, __pyx_L5_error) } break; } @@ -17630,29 +17630,29 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_XDECREF_SET(__pyx_v_breakpoint, __pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":805 + /* "_pydevd_bundle/pydevd_cython.pyx":804 * for breakpoint in dict_iter_values(breakpoints_for_file): # jython does not support itervalues() * # will match either global or some function * if breakpoint.func_name in ('None', curr_func_name): # <<<<<<<<<<<<<< * has_breakpoint_in_frame = True * break */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_breakpoint, __pyx_n_s_func_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 805, __pyx_L5_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_breakpoint, __pyx_n_s_func_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 804, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_17 = (__Pyx_PyString_Equals(__pyx_t_8, __pyx_n_s_None, Py_EQ)); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 805, __pyx_L5_error) + __pyx_t_17 = (__Pyx_PyString_Equals(__pyx_t_8, __pyx_n_s_None, Py_EQ)); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 804, __pyx_L5_error) if (!__pyx_t_17) { } else { __pyx_t_9 = __pyx_t_17; goto __pyx_L73_bool_binop_done; } - __pyx_t_17 = (__Pyx_PyString_Equals(__pyx_t_8, __pyx_v_curr_func_name, Py_EQ)); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 805, __pyx_L5_error) + __pyx_t_17 = (__Pyx_PyString_Equals(__pyx_t_8, __pyx_v_curr_func_name, Py_EQ)); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 804, __pyx_L5_error) __pyx_t_9 = __pyx_t_17; __pyx_L73_bool_binop_done:; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_17 = (__pyx_t_9 != 0); if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":806 + /* "_pydevd_bundle/pydevd_cython.pyx":805 * # will match either global or some function * if breakpoint.func_name in ('None', curr_func_name): * has_breakpoint_in_frame = True # <<<<<<<<<<<<<< @@ -17661,7 +17661,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ __pyx_v_has_breakpoint_in_frame = 1; - /* "_pydevd_bundle/pydevd_cython.pyx":807 + /* "_pydevd_bundle/pydevd_cython.pyx":806 * if breakpoint.func_name in ('None', curr_func_name): * has_breakpoint_in_frame = True * break # <<<<<<<<<<<<<< @@ -17670,7 +17670,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ goto __pyx_L71_break; - /* "_pydevd_bundle/pydevd_cython.pyx":805 + /* "_pydevd_bundle/pydevd_cython.pyx":804 * for breakpoint in dict_iter_values(breakpoints_for_file): # jython does not support itervalues() * # will match either global or some function * if breakpoint.func_name in ('None', curr_func_name): # <<<<<<<<<<<<<< @@ -17679,7 +17679,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":803 + /* "_pydevd_bundle/pydevd_cython.pyx":802 * curr_func_name = '' * * for breakpoint in dict_iter_values(breakpoints_for_file): # jython does not support itervalues() # <<<<<<<<<<<<<< @@ -17690,7 +17690,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_L71_break:; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":810 + /* "_pydevd_bundle/pydevd_cython.pyx":809 * * # Cache the value (1 or 0 or -1 for default because of cython). * if has_breakpoint_in_frame: # <<<<<<<<<<<<<< @@ -17700,7 +17700,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_17 = (__pyx_v_has_breakpoint_in_frame != 0); if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":811 + /* "_pydevd_bundle/pydevd_cython.pyx":810 * # Cache the value (1 or 0 or -1 for default because of cython). * if has_breakpoint_in_frame: * frame_skips_cache[frame_cache_key] = 1 # <<<<<<<<<<<<<< @@ -17709,11 +17709,11 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ if (unlikely(__pyx_v_frame_skips_cache == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 811, __pyx_L5_error) + __PYX_ERR(0, 810, __pyx_L5_error) } - if (unlikely(PyDict_SetItem(__pyx_v_frame_skips_cache, __pyx_v_frame_cache_key, __pyx_int_1) < 0)) __PYX_ERR(0, 811, __pyx_L5_error) + if (unlikely(PyDict_SetItem(__pyx_v_frame_skips_cache, __pyx_v_frame_cache_key, __pyx_int_1) < 0)) __PYX_ERR(0, 810, __pyx_L5_error) - /* "_pydevd_bundle/pydevd_cython.pyx":810 + /* "_pydevd_bundle/pydevd_cython.pyx":809 * * # Cache the value (1 or 0 or -1 for default because of cython). * if has_breakpoint_in_frame: # <<<<<<<<<<<<<< @@ -17723,7 +17723,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L75; } - /* "_pydevd_bundle/pydevd_cython.pyx":813 + /* "_pydevd_bundle/pydevd_cython.pyx":812 * frame_skips_cache[frame_cache_key] = 1 * else: * frame_skips_cache[frame_cache_key] = 0 # <<<<<<<<<<<<<< @@ -17733,15 +17733,15 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa /*else*/ { if (unlikely(__pyx_v_frame_skips_cache == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 813, __pyx_L5_error) + __PYX_ERR(0, 812, __pyx_L5_error) } - if (unlikely(PyDict_SetItem(__pyx_v_frame_skips_cache, __pyx_v_frame_cache_key, __pyx_int_0) < 0)) __PYX_ERR(0, 813, __pyx_L5_error) + if (unlikely(PyDict_SetItem(__pyx_v_frame_skips_cache, __pyx_v_frame_cache_key, __pyx_int_0) < 0)) __PYX_ERR(0, 812, __pyx_L5_error) } __pyx_L75:; } __pyx_L65:; - /* "_pydevd_bundle/pydevd_cython.pyx":815 + /* "_pydevd_bundle/pydevd_cython.pyx":814 * frame_skips_cache[frame_cache_key] = 0 * * if can_skip and not has_breakpoint_in_frame: # <<<<<<<<<<<<<< @@ -17759,7 +17759,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_L77_bool_binop_done:; if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":816 + /* "_pydevd_bundle/pydevd_cython.pyx":815 * * if can_skip and not has_breakpoint_in_frame: * if has_exception_breakpoints: # <<<<<<<<<<<<<< @@ -17769,19 +17769,19 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_17 = (__pyx_v_has_exception_breakpoints != 0); if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":817 + /* "_pydevd_bundle/pydevd_cython.pyx":816 * if can_skip and not has_breakpoint_in_frame: * if has_exception_breakpoints: * frame.f_trace = self.trace_exception # <<<<<<<<<<<<<< * return self.trace_exception * else: */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_exception); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 817, __pyx_L5_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_exception); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 816, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_7) < 0) __PYX_ERR(0, 817, __pyx_L5_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_7) < 0) __PYX_ERR(0, 816, __pyx_L5_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":818 + /* "_pydevd_bundle/pydevd_cython.pyx":817 * if has_exception_breakpoints: * frame.f_trace = self.trace_exception * return self.trace_exception # <<<<<<<<<<<<<< @@ -17789,13 +17789,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa * if need_signature_trace_return: */ __Pyx_XDECREF(__pyx_r); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_exception); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 818, __pyx_L5_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_exception); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 817, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); __pyx_r = __pyx_t_7; __pyx_t_7 = 0; goto __pyx_L4_return; - /* "_pydevd_bundle/pydevd_cython.pyx":816 + /* "_pydevd_bundle/pydevd_cython.pyx":815 * * if can_skip and not has_breakpoint_in_frame: * if has_exception_breakpoints: # <<<<<<<<<<<<<< @@ -17804,7 +17804,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":820 + /* "_pydevd_bundle/pydevd_cython.pyx":819 * return self.trace_exception * else: * if need_signature_trace_return: # <<<<<<<<<<<<<< @@ -17812,22 +17812,22 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa * return self.trace_return */ /*else*/ { - __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_v_need_signature_trace_return); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 820, __pyx_L5_error) + __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_v_need_signature_trace_return); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 819, __pyx_L5_error) if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":821 + /* "_pydevd_bundle/pydevd_cython.pyx":820 * else: * if need_signature_trace_return: * frame.f_trace = self.trace_return # <<<<<<<<<<<<<< * return self.trace_return * else: */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_return); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 821, __pyx_L5_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_return); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 820, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_7) < 0) __PYX_ERR(0, 821, __pyx_L5_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_7) < 0) __PYX_ERR(0, 820, __pyx_L5_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":822 + /* "_pydevd_bundle/pydevd_cython.pyx":821 * if need_signature_trace_return: * frame.f_trace = self.trace_return * return self.trace_return # <<<<<<<<<<<<<< @@ -17835,13 +17835,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa * if not is_call: frame.f_trace = NO_FTRACE */ __Pyx_XDECREF(__pyx_r); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_return); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 822, __pyx_L5_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_return); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 821, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); __pyx_r = __pyx_t_7; __pyx_t_7 = 0; goto __pyx_L4_return; - /* "_pydevd_bundle/pydevd_cython.pyx":820 + /* "_pydevd_bundle/pydevd_cython.pyx":819 * return self.trace_exception * else: * if need_signature_trace_return: # <<<<<<<<<<<<<< @@ -17850,7 +17850,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":824 + /* "_pydevd_bundle/pydevd_cython.pyx":823 * return self.trace_return * else: * if not is_call: frame.f_trace = NO_FTRACE # <<<<<<<<<<<<<< @@ -17860,13 +17860,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa /*else*/ { __pyx_t_17 = ((!(__pyx_v_is_call != 0)) != 0); if (__pyx_t_17) { - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 824, __pyx_L5_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 823, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_7) < 0) __PYX_ERR(0, 824, __pyx_L5_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_7) < 0) __PYX_ERR(0, 823, __pyx_L5_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } - /* "_pydevd_bundle/pydevd_cython.pyx":825 + /* "_pydevd_bundle/pydevd_cython.pyx":824 * else: * if not is_call: frame.f_trace = NO_FTRACE * return None # <<<<<<<<<<<<<< @@ -17879,7 +17879,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } } - /* "_pydevd_bundle/pydevd_cython.pyx":815 + /* "_pydevd_bundle/pydevd_cython.pyx":814 * frame_skips_cache[frame_cache_key] = 0 * * if can_skip and not has_breakpoint_in_frame: # <<<<<<<<<<<<<< @@ -17890,7 +17890,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_L58:; - /* "_pydevd_bundle/pydevd_cython.pyx":717 + /* "_pydevd_bundle/pydevd_cython.pyx":716 * breakpoints_for_file = main_debugger.breakpoints.get(filename) * * if not is_exception_event: # <<<<<<<<<<<<<< @@ -17899,7 +17899,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":829 + /* "_pydevd_bundle/pydevd_cython.pyx":828 * # We may have hit a breakpoint or we are already in step mode. Either way, let's check what we should do in this frame * # print('NOT skipped: %s %s %s %s' % (frame.f_lineno, frame.f_code.co_name, event, frame.__class__.__name__)) * try: # <<<<<<<<<<<<<< @@ -17915,7 +17915,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_XGOTREF(__pyx_t_13); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":830 + /* "_pydevd_bundle/pydevd_cython.pyx":829 * # print('NOT skipped: %s %s %s %s' % (frame.f_lineno, frame.f_code.co_name, event, frame.__class__.__name__)) * try: * flag = False # <<<<<<<<<<<<<< @@ -17925,19 +17925,19 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(Py_False); __pyx_v_flag = Py_False; - /* "_pydevd_bundle/pydevd_cython.pyx":834 + /* "_pydevd_bundle/pydevd_cython.pyx":833 * # (one for the line and the other for the return). * * stop_info = {} # <<<<<<<<<<<<<< * breakpoint = None * exist_result = False */ - __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 834, __pyx_L82_error) + __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 833, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_7); __pyx_v_stop_info = ((PyObject*)__pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":835 + /* "_pydevd_bundle/pydevd_cython.pyx":834 * * stop_info = {} * breakpoint = None # <<<<<<<<<<<<<< @@ -17947,7 +17947,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_breakpoint, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":836 + /* "_pydevd_bundle/pydevd_cython.pyx":835 * stop_info = {} * breakpoint = None * exist_result = False # <<<<<<<<<<<<<< @@ -17956,7 +17956,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ __pyx_v_exist_result = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":837 + /* "_pydevd_bundle/pydevd_cython.pyx":836 * breakpoint = None * exist_result = False * stop = False # <<<<<<<<<<<<<< @@ -17966,7 +17966,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(Py_False); __pyx_v_stop = Py_False; - /* "_pydevd_bundle/pydevd_cython.pyx":838 + /* "_pydevd_bundle/pydevd_cython.pyx":837 * exist_result = False * stop = False * bp_type = None # <<<<<<<<<<<<<< @@ -17976,7 +17976,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(Py_None); __pyx_v_bp_type = Py_None; - /* "_pydevd_bundle/pydevd_cython.pyx":839 + /* "_pydevd_bundle/pydevd_cython.pyx":838 * stop = False * bp_type = None * smart_stop_frame = info.pydev_smart_step_context.smart_step_stop # <<<<<<<<<<<<<< @@ -17988,7 +17988,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_v_smart_stop_frame = __pyx_t_7; __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":840 + /* "_pydevd_bundle/pydevd_cython.pyx":839 * bp_type = None * smart_stop_frame = info.pydev_smart_step_context.smart_step_stop * context_start_line = info.pydev_smart_step_context.start_line # <<<<<<<<<<<<<< @@ -17998,7 +17998,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_5 = __pyx_v_info->pydev_smart_step_context->start_line; __pyx_v_context_start_line = __pyx_t_5; - /* "_pydevd_bundle/pydevd_cython.pyx":841 + /* "_pydevd_bundle/pydevd_cython.pyx":840 * smart_stop_frame = info.pydev_smart_step_context.smart_step_stop * context_start_line = info.pydev_smart_step_context.start_line * context_end_line = info.pydev_smart_step_context.end_line # <<<<<<<<<<<<<< @@ -18008,7 +18008,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_5 = __pyx_v_info->pydev_smart_step_context->end_line; __pyx_v_context_end_line = __pyx_t_5; - /* "_pydevd_bundle/pydevd_cython.pyx":842 + /* "_pydevd_bundle/pydevd_cython.pyx":841 * context_start_line = info.pydev_smart_step_context.start_line * context_end_line = info.pydev_smart_step_context.end_line * is_within_context = context_start_line <= line <= context_end_line # <<<<<<<<<<<<<< @@ -18019,12 +18019,12 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa if (__pyx_t_17) { __pyx_t_17 = (__pyx_v_line <= __pyx_v_context_end_line); } - __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_t_17); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 842, __pyx_L82_error) + __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_t_17); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 841, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_7); __pyx_v_is_within_context = __pyx_t_7; __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":844 + /* "_pydevd_bundle/pydevd_cython.pyx":843 * is_within_context = context_start_line <= line <= context_end_line * * if not is_return and info.pydev_state != STATE_SUSPEND and breakpoints_for_file is not None and line in breakpoints_for_file: # <<<<<<<<<<<<<< @@ -18037,14 +18037,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_17 = __pyx_t_9; goto __pyx_L89_bool_binop_done; } - __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_info->pydev_state); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 844, __pyx_L82_error) + __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_info->pydev_state); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 843, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_7); - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_STATE_SUSPEND); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 844, __pyx_L82_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_STATE_SUSPEND); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 843, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_1 = PyObject_RichCompare(__pyx_t_7, __pyx_t_8, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 844, __pyx_L82_error) + __pyx_t_1 = PyObject_RichCompare(__pyx_t_7, __pyx_t_8, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 843, __pyx_L82_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 844, __pyx_L82_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 843, __pyx_L82_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_9) { } else { @@ -18058,20 +18058,20 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_17 = __pyx_t_10; goto __pyx_L89_bool_binop_done; } - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_line); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 844, __pyx_L82_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_line); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 843, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_breakpoints_for_file == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 844, __pyx_L82_error) + __PYX_ERR(0, 843, __pyx_L82_error) } - __pyx_t_10 = (__Pyx_PyDict_ContainsTF(__pyx_t_1, __pyx_v_breakpoints_for_file, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 844, __pyx_L82_error) + __pyx_t_10 = (__Pyx_PyDict_ContainsTF(__pyx_t_1, __pyx_v_breakpoints_for_file, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 843, __pyx_L82_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_9 = (__pyx_t_10 != 0); __pyx_t_17 = __pyx_t_9; __pyx_L89_bool_binop_done:; if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":845 + /* "_pydevd_bundle/pydevd_cython.pyx":844 * * if not is_return and info.pydev_state != STATE_SUSPEND and breakpoints_for_file is not None and line in breakpoints_for_file: * breakpoint = breakpoints_for_file[line] # <<<<<<<<<<<<<< @@ -18080,17 +18080,17 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ if (unlikely(__pyx_v_breakpoints_for_file == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 845, __pyx_L82_error) + __PYX_ERR(0, 844, __pyx_L82_error) } - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_line); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 845, __pyx_L82_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_line); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 844, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_breakpoints_for_file, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 845, __pyx_L82_error) + __pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_breakpoints_for_file, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 844, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_breakpoint, __pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":846 + /* "_pydevd_bundle/pydevd_cython.pyx":845 * if not is_return and info.pydev_state != STATE_SUSPEND and breakpoints_for_file is not None and line in breakpoints_for_file: * breakpoint = breakpoints_for_file[line] * new_frame = frame # <<<<<<<<<<<<<< @@ -18100,7 +18100,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(__pyx_v_frame); __pyx_v_new_frame = __pyx_v_frame; - /* "_pydevd_bundle/pydevd_cython.pyx":847 + /* "_pydevd_bundle/pydevd_cython.pyx":846 * breakpoint = breakpoints_for_file[line] * new_frame = frame * stop = True # <<<<<<<<<<<<<< @@ -18110,25 +18110,25 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(Py_True); __Pyx_DECREF_SET(__pyx_v_stop, Py_True); - /* "_pydevd_bundle/pydevd_cython.pyx":848 + /* "_pydevd_bundle/pydevd_cython.pyx":847 * new_frame = frame * stop = True * if step_cmd == CMD_STEP_OVER: # <<<<<<<<<<<<<< * if stop_frame is frame and (is_line or is_return): * stop = False # we don't stop on breakpoint if we have to stop by step-over (it will be processed later) */ - __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 848, __pyx_L82_error) + __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 847, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_8); - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CMD_STEP_OVER); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 848, __pyx_L82_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CMD_STEP_OVER); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 847, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = PyObject_RichCompare(__pyx_t_8, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 848, __pyx_L82_error) + __pyx_t_7 = PyObject_RichCompare(__pyx_t_8, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 847, __pyx_L82_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 848, __pyx_L82_error) + __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 847, __pyx_L82_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":849 + /* "_pydevd_bundle/pydevd_cython.pyx":848 * stop = True * if step_cmd == CMD_STEP_OVER: * if stop_frame is frame and (is_line or is_return): # <<<<<<<<<<<<<< @@ -18153,7 +18153,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_L95_bool_binop_done:; if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":850 + /* "_pydevd_bundle/pydevd_cython.pyx":849 * if step_cmd == CMD_STEP_OVER: * if stop_frame is frame and (is_line or is_return): * stop = False # we don't stop on breakpoint if we have to stop by step-over (it will be processed later) # <<<<<<<<<<<<<< @@ -18163,7 +18163,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(Py_False); __Pyx_DECREF_SET(__pyx_v_stop, Py_False); - /* "_pydevd_bundle/pydevd_cython.pyx":849 + /* "_pydevd_bundle/pydevd_cython.pyx":848 * stop = True * if step_cmd == CMD_STEP_OVER: * if stop_frame is frame and (is_line or is_return): # <<<<<<<<<<<<<< @@ -18173,29 +18173,29 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L94; } - /* "_pydevd_bundle/pydevd_cython.pyx":851 + /* "_pydevd_bundle/pydevd_cython.pyx":850 * if stop_frame is frame and (is_line or is_return): * stop = False # we don't stop on breakpoint if we have to stop by step-over (it will be processed later) * elif is_generator_or_coroutime and frame.f_back and frame.f_back is stop_frame: # <<<<<<<<<<<<<< * stop = False # we don't stop on breakpoint if stepping is active and we enter a `genexpr` or coroutine context * elif step_cmd == CMD_SMART_STEP_INTO and (frame.f_back is smart_stop_frame and is_within_context): */ - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_is_generator_or_coroutime); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 851, __pyx_L82_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_is_generator_or_coroutime); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 850, __pyx_L82_error) if (__pyx_t_10) { } else { __pyx_t_17 = __pyx_t_10; goto __pyx_L98_bool_binop_done; } - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 851, __pyx_L82_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 850, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 851, __pyx_L82_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 850, __pyx_L82_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_10) { } else { __pyx_t_17 = __pyx_t_10; goto __pyx_L98_bool_binop_done; } - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 851, __pyx_L82_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 850, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = (__pyx_t_7 == __pyx_v_stop_frame); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; @@ -18204,7 +18204,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_L98_bool_binop_done:; if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":852 + /* "_pydevd_bundle/pydevd_cython.pyx":851 * stop = False # we don't stop on breakpoint if we have to stop by step-over (it will be processed later) * elif is_generator_or_coroutime and frame.f_back and frame.f_back is stop_frame: * stop = False # we don't stop on breakpoint if stepping is active and we enter a `genexpr` or coroutine context # <<<<<<<<<<<<<< @@ -18214,7 +18214,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(Py_False); __Pyx_DECREF_SET(__pyx_v_stop, Py_False); - /* "_pydevd_bundle/pydevd_cython.pyx":851 + /* "_pydevd_bundle/pydevd_cython.pyx":850 * if stop_frame is frame and (is_line or is_return): * stop = False # we don't stop on breakpoint if we have to stop by step-over (it will be processed later) * elif is_generator_or_coroutime and frame.f_back and frame.f_back is stop_frame: # <<<<<<<<<<<<<< @@ -18224,7 +18224,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_L94:; - /* "_pydevd_bundle/pydevd_cython.pyx":848 + /* "_pydevd_bundle/pydevd_cython.pyx":847 * new_frame = frame * stop = True * if step_cmd == CMD_STEP_OVER: # <<<<<<<<<<<<<< @@ -18234,28 +18234,28 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L93; } - /* "_pydevd_bundle/pydevd_cython.pyx":853 + /* "_pydevd_bundle/pydevd_cython.pyx":852 * elif is_generator_or_coroutime and frame.f_back and frame.f_back is stop_frame: * stop = False # we don't stop on breakpoint if stepping is active and we enter a `genexpr` or coroutine context * elif step_cmd == CMD_SMART_STEP_INTO and (frame.f_back is smart_stop_frame and is_within_context): # <<<<<<<<<<<<<< * stop = False * elif plugin_manager is not None and main_debugger.has_plugin_line_breaks: */ - __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 853, __pyx_L82_error) + __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 852, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_7); - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CMD_SMART_STEP_INTO); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 853, __pyx_L82_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CMD_SMART_STEP_INTO); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 852, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = PyObject_RichCompare(__pyx_t_7, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 853, __pyx_L82_error) + __pyx_t_8 = PyObject_RichCompare(__pyx_t_7, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 852, __pyx_L82_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 853, __pyx_L82_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 852, __pyx_L82_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_9) { } else { __pyx_t_17 = __pyx_t_9; goto __pyx_L101_bool_binop_done; } - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 853, __pyx_L82_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 852, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = (__pyx_t_8 == __pyx_v_smart_stop_frame); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; @@ -18265,12 +18265,12 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_17 = __pyx_t_10; goto __pyx_L101_bool_binop_done; } - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_is_within_context); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 853, __pyx_L82_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_is_within_context); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 852, __pyx_L82_error) __pyx_t_17 = __pyx_t_10; __pyx_L101_bool_binop_done:; if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":854 + /* "_pydevd_bundle/pydevd_cython.pyx":853 * stop = False # we don't stop on breakpoint if stepping is active and we enter a `genexpr` or coroutine context * elif step_cmd == CMD_SMART_STEP_INTO and (frame.f_back is smart_stop_frame and is_within_context): * stop = False # <<<<<<<<<<<<<< @@ -18280,7 +18280,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(Py_False); __Pyx_DECREF_SET(__pyx_v_stop, Py_False); - /* "_pydevd_bundle/pydevd_cython.pyx":853 + /* "_pydevd_bundle/pydevd_cython.pyx":852 * elif is_generator_or_coroutime and frame.f_back and frame.f_back is stop_frame: * stop = False # we don't stop on breakpoint if stepping is active and we enter a `genexpr` or coroutine context * elif step_cmd == CMD_SMART_STEP_INTO and (frame.f_back is smart_stop_frame and is_within_context): # <<<<<<<<<<<<<< @@ -18290,7 +18290,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_L93:; - /* "_pydevd_bundle/pydevd_cython.pyx":844 + /* "_pydevd_bundle/pydevd_cython.pyx":843 * is_within_context = context_start_line <= line <= context_end_line * * if not is_return and info.pydev_state != STATE_SUSPEND and breakpoints_for_file is not None and line in breakpoints_for_file: # <<<<<<<<<<<<<< @@ -18300,7 +18300,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L88; } - /* "_pydevd_bundle/pydevd_cython.pyx":855 + /* "_pydevd_bundle/pydevd_cython.pyx":854 * elif step_cmd == CMD_SMART_STEP_INTO and (frame.f_back is smart_stop_frame and is_within_context): * stop = False * elif plugin_manager is not None and main_debugger.has_plugin_line_breaks: # <<<<<<<<<<<<<< @@ -18314,22 +18314,22 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_17 = __pyx_t_9; goto __pyx_L104_bool_binop_done; } - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_has_plugin_line_breaks); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 855, __pyx_L82_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_has_plugin_line_breaks); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 854, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 855, __pyx_L82_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 854, __pyx_L82_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_17 = __pyx_t_9; __pyx_L104_bool_binop_done:; if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":856 + /* "_pydevd_bundle/pydevd_cython.pyx":855 * stop = False * elif plugin_manager is not None and main_debugger.has_plugin_line_breaks: * result = plugin_manager.get_breakpoint(main_debugger, self, frame, event, self._args) # <<<<<<<<<<<<<< * if result: * exist_result = True */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin_manager, __pyx_n_s_get_breakpoint); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 856, __pyx_L82_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin_manager, __pyx_n_s_get_breakpoint); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = NULL; __pyx_t_5 = 0; @@ -18346,7 +18346,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[6] = {__pyx_t_7, __pyx_v_main_debugger, ((PyObject *)__pyx_v_self), __pyx_v_frame, __pyx_v_event, __pyx_v_self->_args}; - __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 5+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 856, __pyx_L82_error) + __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 5+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 855, __pyx_L82_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_8); } else @@ -18354,13 +18354,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[6] = {__pyx_t_7, __pyx_v_main_debugger, ((PyObject *)__pyx_v_self), __pyx_v_frame, __pyx_v_event, __pyx_v_self->_args}; - __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 5+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 856, __pyx_L82_error) + __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 5+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 855, __pyx_L82_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_8); } else #endif { - __pyx_t_2 = PyTuple_New(5+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 856, __pyx_L82_error) + __pyx_t_2 = PyTuple_New(5+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 855, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_2); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_7); __pyx_t_7 = NULL; @@ -18380,7 +18380,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(__pyx_v_self->_args); __Pyx_GIVEREF(__pyx_v_self->_args); PyTuple_SET_ITEM(__pyx_t_2, 4+__pyx_t_5, __pyx_v_self->_args); - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 856, __pyx_L82_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 855, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } @@ -18388,17 +18388,17 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_v_result = __pyx_t_8; __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":857 + /* "_pydevd_bundle/pydevd_cython.pyx":856 * elif plugin_manager is not None and main_debugger.has_plugin_line_breaks: * result = plugin_manager.get_breakpoint(main_debugger, self, frame, event, self._args) * if result: # <<<<<<<<<<<<<< * exist_result = True * flag, breakpoint, new_frame, bp_type = result */ - __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_v_result); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 857, __pyx_L82_error) + __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_v_result); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 856, __pyx_L82_error) if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":858 + /* "_pydevd_bundle/pydevd_cython.pyx":857 * result = plugin_manager.get_breakpoint(main_debugger, self, frame, event, self._args) * if result: * exist_result = True # <<<<<<<<<<<<<< @@ -18407,7 +18407,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ __pyx_v_exist_result = 1; - /* "_pydevd_bundle/pydevd_cython.pyx":859 + /* "_pydevd_bundle/pydevd_cython.pyx":858 * if result: * exist_result = True * flag, breakpoint, new_frame, bp_type = result # <<<<<<<<<<<<<< @@ -18420,7 +18420,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 859, __pyx_L82_error) + __PYX_ERR(0, 858, __pyx_L82_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -18443,7 +18443,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_8,&__pyx_t_1,&__pyx_t_2,&__pyx_t_7}; for (i=0; i < 4; i++) { - PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 859, __pyx_L82_error) + PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 858, __pyx_L82_error) __Pyx_GOTREF(item); *(temps[i]) = item; } @@ -18452,7 +18452,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_8,&__pyx_t_1,&__pyx_t_2,&__pyx_t_7}; - __pyx_t_6 = PyObject_GetIter(__pyx_v_result); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 859, __pyx_L82_error) + __pyx_t_6 = PyObject_GetIter(__pyx_v_result); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 858, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_16 = Py_TYPE(__pyx_t_6)->tp_iternext; for (index=0; index < 4; index++) { @@ -18460,7 +18460,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_GOTREF(item); *(temps[index]) = item; } - if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_6), 4) < 0) __PYX_ERR(0, 859, __pyx_L82_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_6), 4) < 0) __PYX_ERR(0, 858, __pyx_L82_error) __pyx_t_16 = NULL; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L108_unpacking_done; @@ -18468,7 +18468,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_16 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 859, __pyx_L82_error) + __PYX_ERR(0, 858, __pyx_L82_error) __pyx_L108_unpacking_done:; } __Pyx_DECREF_SET(__pyx_v_flag, __pyx_t_8); @@ -18480,7 +18480,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_DECREF_SET(__pyx_v_bp_type, __pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":857 + /* "_pydevd_bundle/pydevd_cython.pyx":856 * elif plugin_manager is not None and main_debugger.has_plugin_line_breaks: * result = plugin_manager.get_breakpoint(main_debugger, self, frame, event, self._args) * if result: # <<<<<<<<<<<<<< @@ -18489,7 +18489,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":855 + /* "_pydevd_bundle/pydevd_cython.pyx":854 * elif step_cmd == CMD_SMART_STEP_INTO and (frame.f_back is smart_stop_frame and is_within_context): * stop = False * elif plugin_manager is not None and main_debugger.has_plugin_line_breaks: # <<<<<<<<<<<<<< @@ -18499,24 +18499,24 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_L88:; - /* "_pydevd_bundle/pydevd_cython.pyx":861 + /* "_pydevd_bundle/pydevd_cython.pyx":860 * flag, breakpoint, new_frame, bp_type = result * * if breakpoint: # <<<<<<<<<<<<<< * # ok, hit breakpoint, now, we have to discover if it is a conditional breakpoint * # lets do the conditional stuff here */ - __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_v_breakpoint); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 861, __pyx_L82_error) + __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_v_breakpoint); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 860, __pyx_L82_error) if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":864 + /* "_pydevd_bundle/pydevd_cython.pyx":863 * # ok, hit breakpoint, now, we have to discover if it is a conditional breakpoint * # lets do the conditional stuff here * if stop or exist_result: # <<<<<<<<<<<<<< * eval_result = False * if breakpoint.has_condition: */ - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_stop); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 864, __pyx_L82_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_stop); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 863, __pyx_L82_error) if (!__pyx_t_9) { } else { __pyx_t_17 = __pyx_t_9; @@ -18527,7 +18527,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_L111_bool_binop_done:; if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":865 + /* "_pydevd_bundle/pydevd_cython.pyx":864 * # lets do the conditional stuff here * if stop or exist_result: * eval_result = False # <<<<<<<<<<<<<< @@ -18537,29 +18537,29 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(Py_False); __pyx_v_eval_result = Py_False; - /* "_pydevd_bundle/pydevd_cython.pyx":866 + /* "_pydevd_bundle/pydevd_cython.pyx":865 * if stop or exist_result: * eval_result = False * if breakpoint.has_condition: # <<<<<<<<<<<<<< * eval_result = handle_breakpoint_condition(main_debugger, info, breakpoint, new_frame) * */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_breakpoint, __pyx_n_s_has_condition); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 866, __pyx_L82_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_breakpoint, __pyx_n_s_has_condition); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 865, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 866, __pyx_L82_error) + __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 865, __pyx_L82_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":867 + /* "_pydevd_bundle/pydevd_cython.pyx":866 * eval_result = False * if breakpoint.has_condition: * eval_result = handle_breakpoint_condition(main_debugger, info, breakpoint, new_frame) # <<<<<<<<<<<<<< * * if breakpoint.expression is not None: */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_handle_breakpoint_condition); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 867, __pyx_L82_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_handle_breakpoint_condition); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 866, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_2); - if (unlikely(!__pyx_v_new_frame)) { __Pyx_RaiseUnboundLocalError("new_frame"); __PYX_ERR(0, 867, __pyx_L82_error) } + if (unlikely(!__pyx_v_new_frame)) { __Pyx_RaiseUnboundLocalError("new_frame"); __PYX_ERR(0, 866, __pyx_L82_error) } __pyx_t_1 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { @@ -18575,7 +18575,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_v_main_debugger, ((PyObject *)__pyx_v_info), __pyx_v_breakpoint, __pyx_v_new_frame}; - __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 867, __pyx_L82_error) + __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 866, __pyx_L82_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_7); } else @@ -18583,13 +18583,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_v_main_debugger, ((PyObject *)__pyx_v_info), __pyx_v_breakpoint, __pyx_v_new_frame}; - __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 867, __pyx_L82_error) + __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 866, __pyx_L82_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_7); } else #endif { - __pyx_t_8 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 867, __pyx_L82_error) + __pyx_t_8 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 866, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1); __pyx_t_1 = NULL; @@ -18606,7 +18606,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(__pyx_v_new_frame); __Pyx_GIVEREF(__pyx_v_new_frame); PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_5, __pyx_v_new_frame); - __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 867, __pyx_L82_error) + __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 866, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } @@ -18614,7 +18614,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_DECREF_SET(__pyx_v_eval_result, __pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":866 + /* "_pydevd_bundle/pydevd_cython.pyx":865 * if stop or exist_result: * eval_result = False * if breakpoint.has_condition: # <<<<<<<<<<<<<< @@ -18623,30 +18623,30 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":869 + /* "_pydevd_bundle/pydevd_cython.pyx":868 * eval_result = handle_breakpoint_condition(main_debugger, info, breakpoint, new_frame) * * if breakpoint.expression is not None: # <<<<<<<<<<<<<< * handle_breakpoint_expression(breakpoint, info, new_frame) * if breakpoint.is_logpoint and info.pydev_message is not None and len(info.pydev_message) > 0: */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_breakpoint, __pyx_n_s_expression); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 869, __pyx_L82_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_breakpoint, __pyx_n_s_expression); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 868, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_17 = (__pyx_t_7 != Py_None); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_9 = (__pyx_t_17 != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":870 + /* "_pydevd_bundle/pydevd_cython.pyx":869 * * if breakpoint.expression is not None: * handle_breakpoint_expression(breakpoint, info, new_frame) # <<<<<<<<<<<<<< * if breakpoint.is_logpoint and info.pydev_message is not None and len(info.pydev_message) > 0: * cmd = main_debugger.cmd_factory.make_io_message(info.pydev_message + os.linesep, '1') */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_handle_breakpoint_expression); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 870, __pyx_L82_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_handle_breakpoint_expression); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 869, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_2); - if (unlikely(!__pyx_v_new_frame)) { __Pyx_RaiseUnboundLocalError("new_frame"); __PYX_ERR(0, 870, __pyx_L82_error) } + if (unlikely(!__pyx_v_new_frame)) { __Pyx_RaiseUnboundLocalError("new_frame"); __PYX_ERR(0, 869, __pyx_L82_error) } __pyx_t_8 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { @@ -18662,7 +18662,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_v_breakpoint, ((PyObject *)__pyx_v_info), __pyx_v_new_frame}; - __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 870, __pyx_L82_error) + __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 869, __pyx_L82_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_7); } else @@ -18670,13 +18670,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_v_breakpoint, ((PyObject *)__pyx_v_info), __pyx_v_new_frame}; - __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 870, __pyx_L82_error) + __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 869, __pyx_L82_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_7); } else #endif { - __pyx_t_1 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 870, __pyx_L82_error) + __pyx_t_1 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 869, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8); __pyx_t_8 = NULL; @@ -18690,23 +18690,23 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(__pyx_v_new_frame); __Pyx_GIVEREF(__pyx_v_new_frame); PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_5, __pyx_v_new_frame); - __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 870, __pyx_L82_error) + __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 869, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":871 + /* "_pydevd_bundle/pydevd_cython.pyx":870 * if breakpoint.expression is not None: * handle_breakpoint_expression(breakpoint, info, new_frame) * if breakpoint.is_logpoint and info.pydev_message is not None and len(info.pydev_message) > 0: # <<<<<<<<<<<<<< * cmd = main_debugger.cmd_factory.make_io_message(info.pydev_message + os.linesep, '1') * main_debugger.writer.add_command(cmd) */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_breakpoint, __pyx_n_s_is_logpoint); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 871, __pyx_L82_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_breakpoint, __pyx_n_s_is_logpoint); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 870, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 871, __pyx_L82_error) + __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 870, __pyx_L82_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_17) { } else { @@ -18722,31 +18722,31 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_t_7 = __pyx_v_info->pydev_message; __Pyx_INCREF(__pyx_t_7); - __pyx_t_11 = PyObject_Length(__pyx_t_7); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(0, 871, __pyx_L82_error) + __pyx_t_11 = PyObject_Length(__pyx_t_7); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(0, 870, __pyx_L82_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_10 = ((__pyx_t_11 > 0) != 0); __pyx_t_9 = __pyx_t_10; __pyx_L116_bool_binop_done:; if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":872 + /* "_pydevd_bundle/pydevd_cython.pyx":871 * handle_breakpoint_expression(breakpoint, info, new_frame) * if breakpoint.is_logpoint and info.pydev_message is not None and len(info.pydev_message) > 0: * cmd = main_debugger.cmd_factory.make_io_message(info.pydev_message + os.linesep, '1') # <<<<<<<<<<<<<< * main_debugger.writer.add_command(cmd) * */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_cmd_factory); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 872, __pyx_L82_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_cmd_factory); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 871, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_make_io_message); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 872, __pyx_L82_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_make_io_message); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 871, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 872, __pyx_L82_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 871, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_linesep); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 872, __pyx_L82_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_linesep); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 871, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyNumber_Add(__pyx_v_info->pydev_message, __pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 872, __pyx_L82_error) + __pyx_t_2 = PyNumber_Add(__pyx_v_info->pydev_message, __pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 871, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; @@ -18764,7 +18764,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_2, __pyx_kp_s_1}; - __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 872, __pyx_L82_error) + __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 871, __pyx_L82_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -18773,14 +18773,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_2, __pyx_kp_s_1}; - __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 872, __pyx_L82_error) + __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 871, __pyx_L82_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif { - __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 872, __pyx_L82_error) + __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 871, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_8); __pyx_t_8 = NULL; @@ -18791,7 +18791,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_GIVEREF(__pyx_kp_s_1); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_kp_s_1); __pyx_t_2 = 0; - __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 872, __pyx_L82_error) + __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 871, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -18799,16 +18799,16 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_v_cmd = __pyx_t_7; __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":873 + /* "_pydevd_bundle/pydevd_cython.pyx":872 * if breakpoint.is_logpoint and info.pydev_message is not None and len(info.pydev_message) > 0: * cmd = main_debugger.cmd_factory.make_io_message(info.pydev_message + os.linesep, '1') * main_debugger.writer.add_command(cmd) # <<<<<<<<<<<<<< * * if breakpoint.has_condition and not eval_result: */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_writer); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 873, __pyx_L82_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_writer); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 872, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_add_command); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 873, __pyx_L82_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_add_command); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 872, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; @@ -18823,12 +18823,12 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_t_7 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_1, __pyx_v_cmd) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_cmd); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 873, __pyx_L82_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 872, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":871 + /* "_pydevd_bundle/pydevd_cython.pyx":870 * if breakpoint.expression is not None: * handle_breakpoint_expression(breakpoint, info, new_frame) * if breakpoint.is_logpoint and info.pydev_message is not None and len(info.pydev_message) > 0: # <<<<<<<<<<<<<< @@ -18837,7 +18837,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":869 + /* "_pydevd_bundle/pydevd_cython.pyx":868 * eval_result = handle_breakpoint_condition(main_debugger, info, breakpoint, new_frame) * * if breakpoint.expression is not None: # <<<<<<<<<<<<<< @@ -18846,29 +18846,29 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":875 + /* "_pydevd_bundle/pydevd_cython.pyx":874 * main_debugger.writer.add_command(cmd) * * if breakpoint.has_condition and not eval_result: # <<<<<<<<<<<<<< * # No need to reset frame.f_trace to keep the same trace function. * return self.trace_dispatch */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_breakpoint, __pyx_n_s_has_condition); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 875, __pyx_L82_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_breakpoint, __pyx_n_s_has_condition); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 874, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 875, __pyx_L82_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 874, __pyx_L82_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_10) { } else { __pyx_t_9 = __pyx_t_10; goto __pyx_L120_bool_binop_done; } - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_eval_result); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 875, __pyx_L82_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_eval_result); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 874, __pyx_L82_error) __pyx_t_17 = ((!__pyx_t_10) != 0); __pyx_t_9 = __pyx_t_17; __pyx_L120_bool_binop_done:; if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":877 + /* "_pydevd_bundle/pydevd_cython.pyx":876 * if breakpoint.has_condition and not eval_result: * # No need to reset frame.f_trace to keep the same trace function. * return self.trace_dispatch # <<<<<<<<<<<<<< @@ -18876,13 +18876,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa * if is_call and frame.f_code.co_name in ('<module>', '<lambda>'): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 877, __pyx_L82_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 876, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_7); __pyx_r = __pyx_t_7; __pyx_t_7 = 0; goto __pyx_L86_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":875 + /* "_pydevd_bundle/pydevd_cython.pyx":874 * main_debugger.writer.add_command(cmd) * * if breakpoint.has_condition and not eval_result: # <<<<<<<<<<<<<< @@ -18891,7 +18891,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":864 + /* "_pydevd_bundle/pydevd_cython.pyx":863 * # ok, hit breakpoint, now, we have to discover if it is a conditional breakpoint * # lets do the conditional stuff here * if stop or exist_result: # <<<<<<<<<<<<<< @@ -18900,7 +18900,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":879 + /* "_pydevd_bundle/pydevd_cython.pyx":878 * return self.trace_dispatch * * if is_call and frame.f_code.co_name in ('<module>', '<lambda>'): # <<<<<<<<<<<<<< @@ -18913,18 +18913,18 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_9 = __pyx_t_17; goto __pyx_L123_bool_binop_done; } - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 879, __pyx_L82_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 878, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_co_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 879, __pyx_L82_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_co_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 878, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_10 = (__Pyx_PyString_Equals(__pyx_t_6, __pyx_kp_s_module, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 879, __pyx_L82_error) + __pyx_t_10 = (__Pyx_PyString_Equals(__pyx_t_6, __pyx_kp_s_module, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 878, __pyx_L82_error) if (!__pyx_t_10) { } else { __pyx_t_17 = __pyx_t_10; goto __pyx_L125_bool_binop_done; } - __pyx_t_10 = (__Pyx_PyString_Equals(__pyx_t_6, __pyx_kp_s_lambda, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 879, __pyx_L82_error) + __pyx_t_10 = (__Pyx_PyString_Equals(__pyx_t_6, __pyx_kp_s_lambda, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 878, __pyx_L82_error) __pyx_t_17 = __pyx_t_10; __pyx_L125_bool_binop_done:; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; @@ -18933,7 +18933,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_L123_bool_binop_done:; if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":889 + /* "_pydevd_bundle/pydevd_cython.pyx":888 * * # No need to reset frame.f_trace to keep the same trace function. * return self.trace_dispatch # <<<<<<<<<<<<<< @@ -18941,13 +18941,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa * else: */ __Pyx_XDECREF(__pyx_r); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 889, __pyx_L82_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 888, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_6); __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L86_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":879 + /* "_pydevd_bundle/pydevd_cython.pyx":878 * return self.trace_dispatch * * if is_call and frame.f_code.co_name in ('<module>', '<lambda>'): # <<<<<<<<<<<<<< @@ -18956,7 +18956,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":861 + /* "_pydevd_bundle/pydevd_cython.pyx":860 * flag, breakpoint, new_frame, bp_type = result * * if breakpoint: # <<<<<<<<<<<<<< @@ -18966,7 +18966,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L109; } - /* "_pydevd_bundle/pydevd_cython.pyx":894 + /* "_pydevd_bundle/pydevd_cython.pyx":893 * # if the frame is traced after breakpoint stop, * # but the file should be ignored while stepping because of filters * if step_cmd != -1: # <<<<<<<<<<<<<< @@ -18977,23 +18977,23 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_9 = ((__pyx_v_step_cmd != -1L) != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":895 + /* "_pydevd_bundle/pydevd_cython.pyx":894 * # but the file should be ignored while stepping because of filters * if step_cmd != -1: * if main_debugger.is_filter_enabled and main_debugger.is_ignored_by_filters(filename): # <<<<<<<<<<<<<< * # ignore files matching stepping filters * # No need to reset frame.f_trace to keep the same trace function. */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_is_filter_enabled); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 895, __pyx_L82_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_is_filter_enabled); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 894, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 895, __pyx_L82_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 894, __pyx_L82_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_10) { } else { __pyx_t_9 = __pyx_t_10; goto __pyx_L129_bool_binop_done; } - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_is_ignored_by_filters); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 895, __pyx_L82_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_is_ignored_by_filters); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 894, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { @@ -19007,16 +19007,16 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_t_6 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_1, __pyx_v_filename) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_filename); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 895, __pyx_L82_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 894, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 895, __pyx_L82_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 894, __pyx_L82_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_9 = __pyx_t_10; __pyx_L129_bool_binop_done:; if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":898 + /* "_pydevd_bundle/pydevd_cython.pyx":897 * # ignore files matching stepping filters * # No need to reset frame.f_trace to keep the same trace function. * return self.trace_dispatch # <<<<<<<<<<<<<< @@ -19024,13 +19024,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa * # ignore library files while stepping */ __Pyx_XDECREF(__pyx_r); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 898, __pyx_L82_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 897, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_6); __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L86_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":895 + /* "_pydevd_bundle/pydevd_cython.pyx":894 * # but the file should be ignored while stepping because of filters * if step_cmd != -1: * if main_debugger.is_filter_enabled and main_debugger.is_ignored_by_filters(filename): # <<<<<<<<<<<<<< @@ -19039,23 +19039,23 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":899 + /* "_pydevd_bundle/pydevd_cython.pyx":898 * # No need to reset frame.f_trace to keep the same trace function. * return self.trace_dispatch * if main_debugger.is_filter_libraries and not main_debugger.in_project_scope(filename): # <<<<<<<<<<<<<< * # ignore library files while stepping * # No need to reset frame.f_trace to keep the same trace function. */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_is_filter_libraries); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 899, __pyx_L82_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_is_filter_libraries); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 898, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 899, __pyx_L82_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 898, __pyx_L82_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_10) { } else { __pyx_t_9 = __pyx_t_10; goto __pyx_L132_bool_binop_done; } - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_in_project_scope); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 899, __pyx_L82_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_in_project_scope); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 898, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { @@ -19069,17 +19069,17 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_t_6 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_1, __pyx_v_filename) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_filename); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 899, __pyx_L82_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 898, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 899, __pyx_L82_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 898, __pyx_L82_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_17 = ((!__pyx_t_10) != 0); __pyx_t_9 = __pyx_t_17; __pyx_L132_bool_binop_done:; if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":902 + /* "_pydevd_bundle/pydevd_cython.pyx":901 * # ignore library files while stepping * # No need to reset frame.f_trace to keep the same trace function. * return self.trace_dispatch # <<<<<<<<<<<<<< @@ -19087,13 +19087,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa * if main_debugger.show_return_values or main_debugger.remove_return_values_flag: */ __Pyx_XDECREF(__pyx_r); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 902, __pyx_L82_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 901, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_6); __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L86_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":899 + /* "_pydevd_bundle/pydevd_cython.pyx":898 * # No need to reset frame.f_trace to keep the same trace function. * return self.trace_dispatch * if main_debugger.is_filter_libraries and not main_debugger.in_project_scope(filename): # <<<<<<<<<<<<<< @@ -19102,7 +19102,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":894 + /* "_pydevd_bundle/pydevd_cython.pyx":893 * # if the frame is traced after breakpoint stop, * # but the file should be ignored while stepping because of filters * if step_cmd != -1: # <<<<<<<<<<<<<< @@ -19113,38 +19113,38 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_L109:; - /* "_pydevd_bundle/pydevd_cython.pyx":904 + /* "_pydevd_bundle/pydevd_cython.pyx":903 * return self.trace_dispatch * * if main_debugger.show_return_values or main_debugger.remove_return_values_flag: # <<<<<<<<<<<<<< * self.manage_return_values(main_debugger, frame, event, arg) * */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_show_return_values); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 904, __pyx_L82_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_show_return_values); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 903, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 904, __pyx_L82_error) + __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 903, __pyx_L82_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!__pyx_t_17) { } else { __pyx_t_9 = __pyx_t_17; goto __pyx_L135_bool_binop_done; } - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_remove_return_values_flag); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 904, __pyx_L82_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_remove_return_values_flag); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 903, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 904, __pyx_L82_error) + __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 903, __pyx_L82_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_9 = __pyx_t_17; __pyx_L135_bool_binop_done:; if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":905 + /* "_pydevd_bundle/pydevd_cython.pyx":904 * * if main_debugger.show_return_values or main_debugger.remove_return_values_flag: * self.manage_return_values(main_debugger, frame, event, arg) # <<<<<<<<<<<<<< * * if stop: */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_manage_return_values); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 905, __pyx_L82_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_manage_return_values); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 904, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = NULL; __pyx_t_5 = 0; @@ -19161,7 +19161,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_v_main_debugger, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 905, __pyx_L82_error) + __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 904, __pyx_L82_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_6); } else @@ -19169,13 +19169,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_v_main_debugger, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 905, __pyx_L82_error) + __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 904, __pyx_L82_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_6); } else #endif { - __pyx_t_2 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 905, __pyx_L82_error) + __pyx_t_2 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 904, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_2); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = NULL; @@ -19192,14 +19192,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); PyTuple_SET_ITEM(__pyx_t_2, 3+__pyx_t_5, __pyx_v_arg); - __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_2, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 905, __pyx_L82_error) + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_2, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 904, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":904 + /* "_pydevd_bundle/pydevd_cython.pyx":903 * return self.trace_dispatch * * if main_debugger.show_return_values or main_debugger.remove_return_values_flag: # <<<<<<<<<<<<<< @@ -19208,44 +19208,44 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":907 + /* "_pydevd_bundle/pydevd_cython.pyx":906 * self.manage_return_values(main_debugger, frame, event, arg) * * if stop: # <<<<<<<<<<<<<< * self.set_suspend( * thread, */ - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_stop); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 907, __pyx_L82_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_stop); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 906, __pyx_L82_error) if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":908 + /* "_pydevd_bundle/pydevd_cython.pyx":907 * * if stop: * self.set_suspend( # <<<<<<<<<<<<<< * thread, * CMD_SET_BREAK, */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_suspend); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 908, __pyx_L82_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_suspend); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 907, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_6); - /* "_pydevd_bundle/pydevd_cython.pyx":910 + /* "_pydevd_bundle/pydevd_cython.pyx":909 * self.set_suspend( * thread, * CMD_SET_BREAK, # <<<<<<<<<<<<<< * suspend_other_threads=breakpoint and breakpoint.suspend_policy == "ALL", * ) */ - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_CMD_SET_BREAK); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 910, __pyx_L82_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_CMD_SET_BREAK); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 909, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_7); - /* "_pydevd_bundle/pydevd_cython.pyx":908 + /* "_pydevd_bundle/pydevd_cython.pyx":907 * * if stop: * self.set_suspend( # <<<<<<<<<<<<<< * thread, * CMD_SET_BREAK, */ - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 908, __pyx_L82_error) + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 907, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_thread); __Pyx_GIVEREF(__pyx_v_thread); @@ -19254,48 +19254,48 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":911 + /* "_pydevd_bundle/pydevd_cython.pyx":910 * thread, * CMD_SET_BREAK, * suspend_other_threads=breakpoint and breakpoint.suspend_policy == "ALL", # <<<<<<<<<<<<<< * ) * */ - __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 911, __pyx_L82_error) + __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 910, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_breakpoint); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 911, __pyx_L82_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_breakpoint); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 910, __pyx_L82_error) if (__pyx_t_9) { } else { __Pyx_INCREF(__pyx_v_breakpoint); __pyx_t_1 = __pyx_v_breakpoint; goto __pyx_L138_bool_binop_done; } - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_breakpoint, __pyx_n_s_suspend_policy); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 911, __pyx_L82_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_breakpoint, __pyx_n_s_suspend_policy); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 910, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_4 = PyObject_RichCompare(__pyx_t_8, __pyx_n_s_ALL, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 911, __pyx_L82_error) + __pyx_t_4 = PyObject_RichCompare(__pyx_t_8, __pyx_n_s_ALL, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 910, __pyx_L82_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_INCREF(__pyx_t_4); __pyx_t_1 = __pyx_t_4; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_L138_bool_binop_done:; - if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_suspend_other_threads, __pyx_t_1) < 0) __PYX_ERR(0, 911, __pyx_L82_error) + if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_suspend_other_threads, __pyx_t_1) < 0) __PYX_ERR(0, 910, __pyx_L82_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":908 + /* "_pydevd_bundle/pydevd_cython.pyx":907 * * if stop: * self.set_suspend( # <<<<<<<<<<<<<< * thread, * CMD_SET_BREAK, */ - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 908, __pyx_L82_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":907 + /* "_pydevd_bundle/pydevd_cython.pyx":906 * self.manage_return_values(main_debugger, frame, event, arg) * * if stop: # <<<<<<<<<<<<<< @@ -19305,14 +19305,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L137; } - /* "_pydevd_bundle/pydevd_cython.pyx":914 + /* "_pydevd_bundle/pydevd_cython.pyx":913 * ) * * elif flag and plugin_manager is not None: # <<<<<<<<<<<<<< * result = plugin_manager.suspend(main_debugger, thread, frame, bp_type) * if result: */ - __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_v_flag); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 914, __pyx_L82_error) + __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_v_flag); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 913, __pyx_L82_error) if (__pyx_t_17) { } else { __pyx_t_9 = __pyx_t_17; @@ -19324,14 +19324,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_L140_bool_binop_done:; if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":915 + /* "_pydevd_bundle/pydevd_cython.pyx":914 * * elif flag and plugin_manager is not None: * result = plugin_manager.suspend(main_debugger, thread, frame, bp_type) # <<<<<<<<<<<<<< * if result: * frame = result */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin_manager, __pyx_n_s_suspend); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 915, __pyx_L82_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin_manager, __pyx_n_s_suspend); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 914, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = NULL; __pyx_t_5 = 0; @@ -19348,7 +19348,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[5] = {__pyx_t_2, __pyx_v_main_debugger, __pyx_v_thread, __pyx_v_frame, __pyx_v_bp_type}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 915, __pyx_L82_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 914, __pyx_L82_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else @@ -19356,13 +19356,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[5] = {__pyx_t_2, __pyx_v_main_debugger, __pyx_v_thread, __pyx_v_frame, __pyx_v_bp_type}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 915, __pyx_L82_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 914, __pyx_L82_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { - __pyx_t_6 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 915, __pyx_L82_error) + __pyx_t_6 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 914, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __pyx_t_2 = NULL; @@ -19379,7 +19379,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(__pyx_v_bp_type); __Pyx_GIVEREF(__pyx_v_bp_type); PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_5, __pyx_v_bp_type); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 915, __pyx_L82_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 914, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -19387,17 +19387,17 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_XDECREF_SET(__pyx_v_result, __pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":916 + /* "_pydevd_bundle/pydevd_cython.pyx":915 * elif flag and plugin_manager is not None: * result = plugin_manager.suspend(main_debugger, thread, frame, bp_type) * if result: # <<<<<<<<<<<<<< * frame = result * */ - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_result); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 916, __pyx_L82_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_result); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 915, __pyx_L82_error) if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":917 + /* "_pydevd_bundle/pydevd_cython.pyx":916 * result = plugin_manager.suspend(main_debugger, thread, frame, bp_type) * if result: * frame = result # <<<<<<<<<<<<<< @@ -19407,7 +19407,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(__pyx_v_result); __Pyx_DECREF_SET(__pyx_v_frame, __pyx_v_result); - /* "_pydevd_bundle/pydevd_cython.pyx":916 + /* "_pydevd_bundle/pydevd_cython.pyx":915 * elif flag and plugin_manager is not None: * result = plugin_manager.suspend(main_debugger, thread, frame, bp_type) * if result: # <<<<<<<<<<<<<< @@ -19416,7 +19416,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":914 + /* "_pydevd_bundle/pydevd_cython.pyx":913 * ) * * elif flag and plugin_manager is not None: # <<<<<<<<<<<<<< @@ -19426,32 +19426,32 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_L137:; - /* "_pydevd_bundle/pydevd_cython.pyx":920 + /* "_pydevd_bundle/pydevd_cython.pyx":919 * * # if thread has a suspend flag, we suspend with a busy wait * if info.pydev_state == STATE_SUSPEND: # <<<<<<<<<<<<<< * self.do_wait_suspend(thread, frame, event, arg) * # No need to reset frame.f_trace to keep the same trace function. */ - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_info->pydev_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 920, __pyx_L82_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_info->pydev_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 919, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_STATE_SUSPEND); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 920, __pyx_L82_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_STATE_SUSPEND); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 919, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 920, __pyx_L82_error) + __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 919, __pyx_L82_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 920, __pyx_L82_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 919, __pyx_L82_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":921 + /* "_pydevd_bundle/pydevd_cython.pyx":920 * # if thread has a suspend flag, we suspend with a busy wait * if info.pydev_state == STATE_SUSPEND: * self.do_wait_suspend(thread, frame, event, arg) # <<<<<<<<<<<<<< * # No need to reset frame.f_trace to keep the same trace function. * return self.trace_dispatch */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_do_wait_suspend); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 921, __pyx_L82_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_do_wait_suspend); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 920, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = NULL; __pyx_t_5 = 0; @@ -19468,7 +19468,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_v_thread, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 921, __pyx_L82_error) + __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 920, __pyx_L82_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_6); } else @@ -19476,13 +19476,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_v_thread, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 921, __pyx_L82_error) + __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 920, __pyx_L82_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_6); } else #endif { - __pyx_t_2 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 921, __pyx_L82_error) + __pyx_t_2 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 920, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_2); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = NULL; @@ -19499,14 +19499,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); PyTuple_SET_ITEM(__pyx_t_2, 3+__pyx_t_5, __pyx_v_arg); - __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_2, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 921, __pyx_L82_error) + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_2, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 920, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":923 + /* "_pydevd_bundle/pydevd_cython.pyx":922 * self.do_wait_suspend(thread, frame, event, arg) * # No need to reset frame.f_trace to keep the same trace function. * return self.trace_dispatch # <<<<<<<<<<<<<< @@ -19514,13 +19514,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa * if not breakpoint and is_line: */ __Pyx_XDECREF(__pyx_r); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 923, __pyx_L82_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 922, __pyx_L82_error) __Pyx_GOTREF(__pyx_t_6); __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L86_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":920 + /* "_pydevd_bundle/pydevd_cython.pyx":919 * * # if thread has a suspend flag, we suspend with a busy wait * if info.pydev_state == STATE_SUSPEND: # <<<<<<<<<<<<<< @@ -19529,7 +19529,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":925 + /* "_pydevd_bundle/pydevd_cython.pyx":924 * return self.trace_dispatch * else: * if not breakpoint and is_line: # <<<<<<<<<<<<<< @@ -19537,7 +19537,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa * frame_skips_cache[line_cache_key] = 0 */ /*else*/ { - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_breakpoint); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 925, __pyx_L82_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_breakpoint); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 924, __pyx_L82_error) __pyx_t_17 = ((!__pyx_t_10) != 0); if (__pyx_t_17) { } else { @@ -19549,7 +19549,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_L145_bool_binop_done:; if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":927 + /* "_pydevd_bundle/pydevd_cython.pyx":926 * if not breakpoint and is_line: * # No stop from anyone and no breakpoint found in line (cache that). * frame_skips_cache[line_cache_key] = 0 # <<<<<<<<<<<<<< @@ -19558,11 +19558,11 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ if (unlikely(__pyx_v_frame_skips_cache == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 927, __pyx_L82_error) + __PYX_ERR(0, 926, __pyx_L82_error) } - if (unlikely(PyDict_SetItem(__pyx_v_frame_skips_cache, __pyx_v_line_cache_key, __pyx_int_0) < 0)) __PYX_ERR(0, 927, __pyx_L82_error) + if (unlikely(PyDict_SetItem(__pyx_v_frame_skips_cache, __pyx_v_line_cache_key, __pyx_int_0) < 0)) __PYX_ERR(0, 926, __pyx_L82_error) - /* "_pydevd_bundle/pydevd_cython.pyx":925 + /* "_pydevd_bundle/pydevd_cython.pyx":924 * return self.trace_dispatch * else: * if not breakpoint and is_line: # <<<<<<<<<<<<<< @@ -19572,7 +19572,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } } - /* "_pydevd_bundle/pydevd_cython.pyx":829 + /* "_pydevd_bundle/pydevd_cython.pyx":828 * # We may have hit a breakpoint or we are already in step mode. Either way, let's check what we should do in this frame * # print('NOT skipped: %s %s %s %s' % (frame.f_lineno, frame.f_code.co_name, event, frame.__class__.__name__)) * try: # <<<<<<<<<<<<<< @@ -19594,7 +19594,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":928 + /* "_pydevd_bundle/pydevd_cython.pyx":927 * # No stop from anyone and no breakpoint found in line (cache that). * frame_skips_cache[line_cache_key] = 0 * except KeyboardInterrupt: # <<<<<<<<<<<<<< @@ -19604,19 +19604,19 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyboardInterrupt); if (__pyx_t_5) { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.trace_dispatch", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_2) < 0) __PYX_ERR(0, 928, __pyx_L84_except_error) + if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_2) < 0) __PYX_ERR(0, 927, __pyx_L84_except_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); __Pyx_GOTREF(__pyx_t_2); - /* "_pydevd_bundle/pydevd_cython.pyx":929 + /* "_pydevd_bundle/pydevd_cython.pyx":928 * frame_skips_cache[line_cache_key] = 0 * except KeyboardInterrupt: * self.clear_run_state(info) # <<<<<<<<<<<<<< * raise * except: */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_clear_run_state); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 929, __pyx_L84_except_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_clear_run_state); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 928, __pyx_L84_except_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { @@ -19630,12 +19630,12 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_8, ((PyObject *)__pyx_v_info)) : __Pyx_PyObject_CallOneArg(__pyx_t_4, ((PyObject *)__pyx_v_info)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 929, __pyx_L84_except_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 928, __pyx_L84_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":930 + /* "_pydevd_bundle/pydevd_cython.pyx":929 * except KeyboardInterrupt: * self.clear_run_state(info) * raise # <<<<<<<<<<<<<< @@ -19647,10 +19647,10 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_XGIVEREF(__pyx_t_2); __Pyx_ErrRestoreWithState(__pyx_t_6, __pyx_t_7, __pyx_t_2); __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_2 = 0; - __PYX_ERR(0, 930, __pyx_L84_except_error) + __PYX_ERR(0, 929, __pyx_L84_except_error) } - /* "_pydevd_bundle/pydevd_cython.pyx":931 + /* "_pydevd_bundle/pydevd_cython.pyx":930 * self.clear_run_state(info) * raise * except: # <<<<<<<<<<<<<< @@ -19659,21 +19659,21 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.trace_dispatch", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_7, &__pyx_t_6) < 0) __PYX_ERR(0, 931, __pyx_L84_except_error) + if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_7, &__pyx_t_6) < 0) __PYX_ERR(0, 930, __pyx_L84_except_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GOTREF(__pyx_t_7); __Pyx_GOTREF(__pyx_t_6); - /* "_pydevd_bundle/pydevd_cython.pyx":932 + /* "_pydevd_bundle/pydevd_cython.pyx":931 * raise * except: * traceback.print_exc() # <<<<<<<<<<<<<< * raise * */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_traceback); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 932, __pyx_L84_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_traceback); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 931, __pyx_L84_except_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 932, __pyx_L84_except_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 931, __pyx_L84_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; @@ -19688,12 +19688,12 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_8); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 932, __pyx_L84_except_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 931, __pyx_L84_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":933 + /* "_pydevd_bundle/pydevd_cython.pyx":932 * except: * traceback.print_exc() * raise # <<<<<<<<<<<<<< @@ -19705,11 +19705,11 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_XGIVEREF(__pyx_t_6); __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_7, __pyx_t_6); __pyx_t_2 = 0; __pyx_t_7 = 0; __pyx_t_6 = 0; - __PYX_ERR(0, 933, __pyx_L84_except_error) + __PYX_ERR(0, 932, __pyx_L84_except_error) } __pyx_L84_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":829 + /* "_pydevd_bundle/pydevd_cython.pyx":828 * # We may have hit a breakpoint or we are already in step mode. Either way, let's check what we should do in this frame * # print('NOT skipped: %s %s %s %s' % (frame.f_lineno, frame.f_code.co_name, event, frame.__class__.__name__)) * try: # <<<<<<<<<<<<<< @@ -19730,7 +19730,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_L87_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":936 + /* "_pydevd_bundle/pydevd_cython.pyx":935 * * # step handling. We stop when we hit the right frame * try: # <<<<<<<<<<<<<< @@ -19746,7 +19746,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_XGOTREF(__pyx_t_15); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":937 + /* "_pydevd_bundle/pydevd_cython.pyx":936 * # step handling. We stop when we hit the right frame * try: * should_skip = 0 # <<<<<<<<<<<<<< @@ -19755,16 +19755,16 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ __pyx_v_should_skip = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":939 + /* "_pydevd_bundle/pydevd_cython.pyx":938 * should_skip = 0 * * if pydevd_dont_trace.should_trace_hook is not None: # <<<<<<<<<<<<<< * if self.should_skip == -1: * # I.e.: cache the result on self.should_skip (no need to evaluate the same frame multiple times). */ - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pydevd_dont_trace); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 939, __pyx_L151_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pydevd_dont_trace); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 938, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_should_trace_hook); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 939, __pyx_L151_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_should_trace_hook); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 938, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_9 = (__pyx_t_7 != Py_None); @@ -19772,7 +19772,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_17 = (__pyx_t_9 != 0); if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":940 + /* "_pydevd_bundle/pydevd_cython.pyx":939 * * if pydevd_dont_trace.should_trace_hook is not None: * if self.should_skip == -1: # <<<<<<<<<<<<<< @@ -19782,16 +19782,16 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_17 = ((__pyx_v_self->should_skip == -1L) != 0); if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":944 + /* "_pydevd_bundle/pydevd_cython.pyx":943 * # Note that on a code reload, we won't re-evaluate this because in practice, the frame.f_code * # Which will be handled by this frame is read-only, so, we can cache it safely. * if not pydevd_dont_trace.should_trace_hook(frame, filename): # <<<<<<<<<<<<<< * # -1, 0, 1 to be Cython-friendly * should_skip = self.should_skip = 1 */ - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pydevd_dont_trace); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 944, __pyx_L151_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pydevd_dont_trace); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 943, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_should_trace_hook); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 944, __pyx_L151_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_should_trace_hook); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 943, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -19809,7 +19809,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_frame, __pyx_v_filename}; - __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 944, __pyx_L151_error) + __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 943, __pyx_L151_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_7); } else @@ -19817,13 +19817,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_frame, __pyx_v_filename}; - __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 944, __pyx_L151_error) + __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 943, __pyx_L151_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_7); } else #endif { - __pyx_t_1 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 944, __pyx_L151_error) + __pyx_t_1 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 943, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6); __pyx_t_6 = NULL; @@ -19834,17 +19834,17 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(__pyx_v_filename); __Pyx_GIVEREF(__pyx_v_filename); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_5, __pyx_v_filename); - __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 944, __pyx_L151_error) + __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 943, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 944, __pyx_L151_error) + __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 943, __pyx_L151_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_9 = ((!__pyx_t_17) != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":946 + /* "_pydevd_bundle/pydevd_cython.pyx":945 * if not pydevd_dont_trace.should_trace_hook(frame, filename): * # -1, 0, 1 to be Cython-friendly * should_skip = self.should_skip = 1 # <<<<<<<<<<<<<< @@ -19854,7 +19854,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_v_should_skip = 1; __pyx_v_self->should_skip = 1; - /* "_pydevd_bundle/pydevd_cython.pyx":944 + /* "_pydevd_bundle/pydevd_cython.pyx":943 * # Note that on a code reload, we won't re-evaluate this because in practice, the frame.f_code * # Which will be handled by this frame is read-only, so, we can cache it safely. * if not pydevd_dont_trace.should_trace_hook(frame, filename): # <<<<<<<<<<<<<< @@ -19864,7 +19864,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L159; } - /* "_pydevd_bundle/pydevd_cython.pyx":948 + /* "_pydevd_bundle/pydevd_cython.pyx":947 * should_skip = self.should_skip = 1 * else: * should_skip = self.should_skip = 0 # <<<<<<<<<<<<<< @@ -19877,7 +19877,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_L159:; - /* "_pydevd_bundle/pydevd_cython.pyx":940 + /* "_pydevd_bundle/pydevd_cython.pyx":939 * * if pydevd_dont_trace.should_trace_hook is not None: * if self.should_skip == -1: # <<<<<<<<<<<<<< @@ -19887,7 +19887,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L158; } - /* "_pydevd_bundle/pydevd_cython.pyx":950 + /* "_pydevd_bundle/pydevd_cython.pyx":949 * should_skip = self.should_skip = 0 * else: * should_skip = self.should_skip # <<<<<<<<<<<<<< @@ -19900,7 +19900,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_L158:; - /* "_pydevd_bundle/pydevd_cython.pyx":939 + /* "_pydevd_bundle/pydevd_cython.pyx":938 * should_skip = 0 * * if pydevd_dont_trace.should_trace_hook is not None: # <<<<<<<<<<<<<< @@ -19909,7 +19909,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":952 + /* "_pydevd_bundle/pydevd_cython.pyx":951 * should_skip = self.should_skip * * plugin_stop = False # <<<<<<<<<<<<<< @@ -19919,7 +19919,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(Py_False); __pyx_v_plugin_stop = Py_False; - /* "_pydevd_bundle/pydevd_cython.pyx":953 + /* "_pydevd_bundle/pydevd_cython.pyx":952 * * plugin_stop = False * if should_skip: # <<<<<<<<<<<<<< @@ -19929,7 +19929,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_9 = (__pyx_v_should_skip != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":954 + /* "_pydevd_bundle/pydevd_cython.pyx":953 * plugin_stop = False * if should_skip: * stop = False # <<<<<<<<<<<<<< @@ -19939,7 +19939,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(Py_False); __Pyx_DECREF_SET(__pyx_v_stop, Py_False); - /* "_pydevd_bundle/pydevd_cython.pyx":953 + /* "_pydevd_bundle/pydevd_cython.pyx":952 * * plugin_stop = False * if should_skip: # <<<<<<<<<<<<<< @@ -19949,25 +19949,25 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L160; } - /* "_pydevd_bundle/pydevd_cython.pyx":956 + /* "_pydevd_bundle/pydevd_cython.pyx":955 * stop = False * * elif step_cmd == CMD_SMART_STEP_INTO: # <<<<<<<<<<<<<< * stop = False * if smart_stop_frame is frame: */ - __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 956, __pyx_L151_error) + __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 955, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_7); - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CMD_SMART_STEP_INTO); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 956, __pyx_L151_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CMD_SMART_STEP_INTO); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 955, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = PyObject_RichCompare(__pyx_t_7, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 956, __pyx_L151_error) + __pyx_t_1 = PyObject_RichCompare(__pyx_t_7, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 955, __pyx_L151_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 956, __pyx_L151_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 955, __pyx_L151_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":957 + /* "_pydevd_bundle/pydevd_cython.pyx":956 * * elif step_cmd == CMD_SMART_STEP_INTO: * stop = False # <<<<<<<<<<<<<< @@ -19977,7 +19977,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(Py_False); __Pyx_DECREF_SET(__pyx_v_stop, Py_False); - /* "_pydevd_bundle/pydevd_cython.pyx":958 + /* "_pydevd_bundle/pydevd_cython.pyx":957 * elif step_cmd == CMD_SMART_STEP_INTO: * stop = False * if smart_stop_frame is frame: # <<<<<<<<<<<<<< @@ -19988,30 +19988,30 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_17 = (__pyx_t_9 != 0); if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":959 + /* "_pydevd_bundle/pydevd_cython.pyx":958 * stop = False * if smart_stop_frame is frame: * if not is_within_context or not IS_CPYTHON: # <<<<<<<<<<<<<< * # We don't stop on jumps in multiline statements, which the Python interpreter does in some cases, * # if we they happen in smart step into context. */ - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_is_within_context); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 959, __pyx_L151_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_is_within_context); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 958, __pyx_L151_error) __pyx_t_10 = ((!__pyx_t_9) != 0); if (!__pyx_t_10) { } else { __pyx_t_17 = __pyx_t_10; goto __pyx_L163_bool_binop_done; } - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_IS_CPYTHON); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 959, __pyx_L151_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_IS_CPYTHON); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 958, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 959, __pyx_L151_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 958, __pyx_L151_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_9 = ((!__pyx_t_10) != 0); __pyx_t_17 = __pyx_t_9; __pyx_L163_bool_binop_done:; if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":962 + /* "_pydevd_bundle/pydevd_cython.pyx":961 * # We don't stop on jumps in multiline statements, which the Python interpreter does in some cases, * # if we they happen in smart step into context. * info.pydev_func_name = '.invalid.' # Must match the type in cython # <<<<<<<<<<<<<< @@ -20024,7 +20024,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_DECREF(__pyx_v_info->pydev_func_name); __pyx_v_info->pydev_func_name = __pyx_kp_s_invalid; - /* "_pydevd_bundle/pydevd_cython.pyx":963 + /* "_pydevd_bundle/pydevd_cython.pyx":962 * # if we they happen in smart step into context. * info.pydev_func_name = '.invalid.' # Must match the type in cython * stop = True # act as if we did a step into # <<<<<<<<<<<<<< @@ -20034,7 +20034,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(Py_True); __Pyx_DECREF_SET(__pyx_v_stop, Py_True); - /* "_pydevd_bundle/pydevd_cython.pyx":959 + /* "_pydevd_bundle/pydevd_cython.pyx":958 * stop = False * if smart_stop_frame is frame: * if not is_within_context or not IS_CPYTHON: # <<<<<<<<<<<<<< @@ -20043,7 +20043,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":958 + /* "_pydevd_bundle/pydevd_cython.pyx":957 * elif step_cmd == CMD_SMART_STEP_INTO: * stop = False * if smart_stop_frame is frame: # <<<<<<<<<<<<<< @@ -20052,7 +20052,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":965 + /* "_pydevd_bundle/pydevd_cython.pyx":964 * stop = True # act as if we did a step into * * if is_line or is_exception_event: # <<<<<<<<<<<<<< @@ -20070,23 +20070,23 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_L166_bool_binop_done:; if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":966 + /* "_pydevd_bundle/pydevd_cython.pyx":965 * * if is_line or is_exception_event: * curr_func_name = frame.f_code.co_name # <<<<<<<<<<<<<< * * # global context is set with an empty name */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 966, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 965, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_co_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 966, __pyx_L151_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_co_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 965, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!(likely(PyString_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(0, 966, __pyx_L151_error) + if (!(likely(PyString_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(0, 965, __pyx_L151_error) __Pyx_XDECREF_SET(__pyx_v_curr_func_name, ((PyObject*)__pyx_t_2)); __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":969 + /* "_pydevd_bundle/pydevd_cython.pyx":968 * * # global context is set with an empty name * if curr_func_name in ('?', '<module>') or curr_func_name is None: # <<<<<<<<<<<<<< @@ -20095,14 +20095,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ __Pyx_INCREF(__pyx_v_curr_func_name); __pyx_t_18 = __pyx_v_curr_func_name; - __pyx_t_10 = (__Pyx_PyString_Equals(__pyx_t_18, __pyx_kp_s__5, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 969, __pyx_L151_error) + __pyx_t_10 = (__Pyx_PyString_Equals(__pyx_t_18, __pyx_kp_s__5, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 968, __pyx_L151_error) __pyx_t_19 = (__pyx_t_10 != 0); if (!__pyx_t_19) { } else { __pyx_t_9 = __pyx_t_19; goto __pyx_L171_bool_binop_done; } - __pyx_t_19 = (__Pyx_PyString_Equals(__pyx_t_18, __pyx_kp_s_module, Py_EQ)); if (unlikely(__pyx_t_19 < 0)) __PYX_ERR(0, 969, __pyx_L151_error) + __pyx_t_19 = (__Pyx_PyString_Equals(__pyx_t_18, __pyx_kp_s_module, Py_EQ)); if (unlikely(__pyx_t_19 < 0)) __PYX_ERR(0, 968, __pyx_L151_error) __pyx_t_10 = (__pyx_t_19 != 0); __pyx_t_9 = __pyx_t_10; __pyx_L171_bool_binop_done:; @@ -20119,7 +20119,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_L169_bool_binop_done:; if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":970 + /* "_pydevd_bundle/pydevd_cython.pyx":969 * # global context is set with an empty name * if curr_func_name in ('?', '<module>') or curr_func_name is None: * curr_func_name = '' # <<<<<<<<<<<<<< @@ -20129,7 +20129,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(__pyx_kp_s_); __Pyx_DECREF_SET(__pyx_v_curr_func_name, __pyx_kp_s_); - /* "_pydevd_bundle/pydevd_cython.pyx":969 + /* "_pydevd_bundle/pydevd_cython.pyx":968 * * # global context is set with an empty name * if curr_func_name in ('?', '<module>') or curr_func_name is None: # <<<<<<<<<<<<<< @@ -20138,20 +20138,20 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":972 + /* "_pydevd_bundle/pydevd_cython.pyx":971 * curr_func_name = '' * * if smart_stop_frame and smart_stop_frame is frame.f_back: # <<<<<<<<<<<<<< * if curr_func_name == info.pydev_func_name and not IS_CPYTHON: * # for implementations other than CPython we don't perform any additional checks */ - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_smart_stop_frame); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 972, __pyx_L151_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_smart_stop_frame); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 971, __pyx_L151_error) if (__pyx_t_9) { } else { __pyx_t_17 = __pyx_t_9; goto __pyx_L174_bool_binop_done; } - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 972, __pyx_L151_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 971, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = (__pyx_v_smart_stop_frame == __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -20160,30 +20160,30 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_L174_bool_binop_done:; if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":973 + /* "_pydevd_bundle/pydevd_cython.pyx":972 * * if smart_stop_frame and smart_stop_frame is frame.f_back: * if curr_func_name == info.pydev_func_name and not IS_CPYTHON: # <<<<<<<<<<<<<< * # for implementations other than CPython we don't perform any additional checks * stop = True */ - __pyx_t_10 = (__Pyx_PyString_Equals(__pyx_v_curr_func_name, __pyx_v_info->pydev_func_name, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 973, __pyx_L151_error) + __pyx_t_10 = (__Pyx_PyString_Equals(__pyx_v_curr_func_name, __pyx_v_info->pydev_func_name, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 972, __pyx_L151_error) __pyx_t_9 = (__pyx_t_10 != 0); if (__pyx_t_9) { } else { __pyx_t_17 = __pyx_t_9; goto __pyx_L177_bool_binop_done; } - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_IS_CPYTHON); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 973, __pyx_L151_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_IS_CPYTHON); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 972, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 973, __pyx_L151_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 972, __pyx_L151_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_10 = ((!__pyx_t_9) != 0); __pyx_t_17 = __pyx_t_10; __pyx_L177_bool_binop_done:; if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":975 + /* "_pydevd_bundle/pydevd_cython.pyx":974 * if curr_func_name == info.pydev_func_name and not IS_CPYTHON: * # for implementations other than CPython we don't perform any additional checks * stop = True # <<<<<<<<<<<<<< @@ -20193,7 +20193,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(Py_True); __Pyx_DECREF_SET(__pyx_v_stop, Py_True); - /* "_pydevd_bundle/pydevd_cython.pyx":973 + /* "_pydevd_bundle/pydevd_cython.pyx":972 * * if smart_stop_frame and smart_stop_frame is frame.f_back: * if curr_func_name == info.pydev_func_name and not IS_CPYTHON: # <<<<<<<<<<<<<< @@ -20203,7 +20203,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L176; } - /* "_pydevd_bundle/pydevd_cython.pyx":977 + /* "_pydevd_bundle/pydevd_cython.pyx":976 * stop = True * else: * try: # <<<<<<<<<<<<<< @@ -20220,38 +20220,38 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_XGOTREF(__pyx_t_22); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":978 + /* "_pydevd_bundle/pydevd_cython.pyx":977 * else: * try: * if curr_func_name != info.pydev_func_name and frame.f_back: # <<<<<<<<<<<<<< * # try to find function call name using bytecode analysis * curr_func_name = find_last_call_name(frame.f_back) */ - __pyx_t_10 = (__Pyx_PyString_Equals(__pyx_v_curr_func_name, __pyx_v_info->pydev_func_name, Py_NE)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 978, __pyx_L179_error) + __pyx_t_10 = (__Pyx_PyString_Equals(__pyx_v_curr_func_name, __pyx_v_info->pydev_func_name, Py_NE)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 977, __pyx_L179_error) __pyx_t_9 = (__pyx_t_10 != 0); if (__pyx_t_9) { } else { __pyx_t_17 = __pyx_t_9; goto __pyx_L186_bool_binop_done; } - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 978, __pyx_L179_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 977, __pyx_L179_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 978, __pyx_L179_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 977, __pyx_L179_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_17 = __pyx_t_9; __pyx_L186_bool_binop_done:; if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":980 + /* "_pydevd_bundle/pydevd_cython.pyx":979 * if curr_func_name != info.pydev_func_name and frame.f_back: * # try to find function call name using bytecode analysis * curr_func_name = find_last_call_name(frame.f_back) # <<<<<<<<<<<<<< * if curr_func_name == info.pydev_func_name: * stop = find_last_func_call_order(frame.f_back, context_start_line) \ */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_find_last_call_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 980, __pyx_L179_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_find_last_call_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 979, __pyx_L179_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 980, __pyx_L179_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 979, __pyx_L179_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { @@ -20266,14 +20266,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_7); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 980, __pyx_L179_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 979, __pyx_L179_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!(likely(PyString_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(0, 980, __pyx_L179_error) + if (!(likely(PyString_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(0, 979, __pyx_L179_error) __Pyx_DECREF_SET(__pyx_v_curr_func_name, ((PyObject*)__pyx_t_2)); __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":978 + /* "_pydevd_bundle/pydevd_cython.pyx":977 * else: * try: * if curr_func_name != info.pydev_func_name and frame.f_back: # <<<<<<<<<<<<<< @@ -20282,29 +20282,29 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":981 + /* "_pydevd_bundle/pydevd_cython.pyx":980 * # try to find function call name using bytecode analysis * curr_func_name = find_last_call_name(frame.f_back) * if curr_func_name == info.pydev_func_name: # <<<<<<<<<<<<<< * stop = find_last_func_call_order(frame.f_back, context_start_line) \ * == info.pydev_smart_step_context.call_order */ - __pyx_t_17 = (__Pyx_PyString_Equals(__pyx_v_curr_func_name, __pyx_v_info->pydev_func_name, Py_EQ)); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 981, __pyx_L179_error) + __pyx_t_17 = (__Pyx_PyString_Equals(__pyx_v_curr_func_name, __pyx_v_info->pydev_func_name, Py_EQ)); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 980, __pyx_L179_error) __pyx_t_9 = (__pyx_t_17 != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":982 + /* "_pydevd_bundle/pydevd_cython.pyx":981 * curr_func_name = find_last_call_name(frame.f_back) * if curr_func_name == info.pydev_func_name: * stop = find_last_func_call_order(frame.f_back, context_start_line) \ # <<<<<<<<<<<<<< * == info.pydev_smart_step_context.call_order * except: */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_find_last_func_call_order); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 982, __pyx_L179_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_find_last_func_call_order); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 981, __pyx_L179_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 982, __pyx_L179_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 981, __pyx_L179_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_context_start_line); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 982, __pyx_L179_error) + __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_context_start_line); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 981, __pyx_L179_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = NULL; __pyx_t_5 = 0; @@ -20321,7 +20321,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_7, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 982, __pyx_L179_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 981, __pyx_L179_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; @@ -20331,7 +20331,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_7, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 982, __pyx_L179_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 981, __pyx_L179_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; @@ -20339,7 +20339,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } else #endif { - __pyx_t_4 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 982, __pyx_L179_error) + __pyx_t_4 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 981, __pyx_L179_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_8); __pyx_t_8 = NULL; @@ -20350,28 +20350,28 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_5, __pyx_t_6); __pyx_t_7 = 0; __pyx_t_6 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 982, __pyx_L179_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 981, __pyx_L179_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":983 + /* "_pydevd_bundle/pydevd_cython.pyx":982 * if curr_func_name == info.pydev_func_name: * stop = find_last_func_call_order(frame.f_back, context_start_line) \ * == info.pydev_smart_step_context.call_order # <<<<<<<<<<<<<< * except: * pydev_log.debug("Exception while handling smart step into in frame tracer, step into will be performed instead.") */ - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_info->pydev_smart_step_context->call_order); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 983, __pyx_L179_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_info->pydev_smart_step_context->call_order); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 982, __pyx_L179_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 983, __pyx_L179_error) + __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 982, __pyx_L179_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_stop, __pyx_t_4); __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":981 + /* "_pydevd_bundle/pydevd_cython.pyx":980 * # try to find function call name using bytecode analysis * curr_func_name = find_last_call_name(frame.f_back) * if curr_func_name == info.pydev_func_name: # <<<<<<<<<<<<<< @@ -20380,7 +20380,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":977 + /* "_pydevd_bundle/pydevd_cython.pyx":976 * stop = True * else: * try: # <<<<<<<<<<<<<< @@ -20402,7 +20402,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":984 + /* "_pydevd_bundle/pydevd_cython.pyx":983 * stop = find_last_func_call_order(frame.f_back, context_start_line) \ * == info.pydev_smart_step_context.call_order * except: # <<<<<<<<<<<<<< @@ -20411,21 +20411,21 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.trace_dispatch", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(0, 984, __pyx_L181_except_error) + if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(0, 983, __pyx_L181_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_2); - /* "_pydevd_bundle/pydevd_cython.pyx":985 + /* "_pydevd_bundle/pydevd_cython.pyx":984 * == info.pydev_smart_step_context.call_order * except: * pydev_log.debug("Exception while handling smart step into in frame tracer, step into will be performed instead.") # <<<<<<<<<<<<<< * info.pydev_smart_step_context.reset() * stop = True # act as if we did a step into */ - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_pydev_log); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 985, __pyx_L181_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_pydev_log); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 984, __pyx_L181_except_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_debug); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 985, __pyx_L181_except_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_debug); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 984, __pyx_L181_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; @@ -20440,19 +20440,19 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_t_6 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_7, __pyx_kp_s_Exception_while_handling_smart_s) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_kp_s_Exception_while_handling_smart_s); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 985, __pyx_L181_except_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 984, __pyx_L181_except_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":986 + /* "_pydevd_bundle/pydevd_cython.pyx":985 * except: * pydev_log.debug("Exception while handling smart step into in frame tracer, step into will be performed instead.") * info.pydev_smart_step_context.reset() # <<<<<<<<<<<<<< * stop = True # act as if we did a step into * */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_info->pydev_smart_step_context), __pyx_n_s_reset); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 986, __pyx_L181_except_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_info->pydev_smart_step_context), __pyx_n_s_reset); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 985, __pyx_L181_except_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { @@ -20466,12 +20466,12 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_t_6 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_8); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 986, __pyx_L181_except_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 985, __pyx_L181_except_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":987 + /* "_pydevd_bundle/pydevd_cython.pyx":986 * pydev_log.debug("Exception while handling smart step into in frame tracer, step into will be performed instead.") * info.pydev_smart_step_context.reset() * stop = True # act as if we did a step into # <<<<<<<<<<<<<< @@ -20487,7 +20487,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_L181_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":977 + /* "_pydevd_bundle/pydevd_cython.pyx":976 * stop = True * else: * try: # <<<<<<<<<<<<<< @@ -20509,7 +20509,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_L176:; - /* "_pydevd_bundle/pydevd_cython.pyx":972 + /* "_pydevd_bundle/pydevd_cython.pyx":971 * curr_func_name = '' * * if smart_stop_frame and smart_stop_frame is frame.f_back: # <<<<<<<<<<<<<< @@ -20518,7 +20518,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":965 + /* "_pydevd_bundle/pydevd_cython.pyx":964 * stop = True # act as if we did a step into * * if is_line or is_exception_event: # <<<<<<<<<<<<<< @@ -20527,7 +20527,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":991 + /* "_pydevd_bundle/pydevd_cython.pyx":990 * # we have to check this case for situations when a user has tried to step into a native function or method, * # e.g. `len()`, `list.append()`, etc and this was the only call in a return statement * if smart_stop_frame is frame and is_return: # <<<<<<<<<<<<<< @@ -20546,7 +20546,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_L192_bool_binop_done:; if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":992 + /* "_pydevd_bundle/pydevd_cython.pyx":991 * # e.g. `len()`, `list.append()`, etc and this was the only call in a return statement * if smart_stop_frame is frame and is_return: * stop = True # <<<<<<<<<<<<<< @@ -20556,7 +20556,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(Py_True); __Pyx_DECREF_SET(__pyx_v_stop, Py_True); - /* "_pydevd_bundle/pydevd_cython.pyx":991 + /* "_pydevd_bundle/pydevd_cython.pyx":990 * # we have to check this case for situations when a user has tried to step into a native function or method, * # e.g. `len()`, `list.append()`, etc and this was the only call in a return statement * if smart_stop_frame is frame and is_return: # <<<<<<<<<<<<<< @@ -20565,7 +20565,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":956 + /* "_pydevd_bundle/pydevd_cython.pyx":955 * stop = False * * elif step_cmd == CMD_SMART_STEP_INTO: # <<<<<<<<<<<<<< @@ -20575,25 +20575,25 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L160; } - /* "_pydevd_bundle/pydevd_cython.pyx":994 + /* "_pydevd_bundle/pydevd_cython.pyx":993 * stop = True * * elif step_cmd == CMD_STEP_INTO: # <<<<<<<<<<<<<< * stop = is_line or is_return * if plugin_manager is not None: */ - __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 994, __pyx_L151_error) + __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 993, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CMD_STEP_INTO); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 994, __pyx_L151_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CMD_STEP_INTO); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 993, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 994, __pyx_L151_error) + __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 993, __pyx_L151_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 994, __pyx_L151_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 993, __pyx_L151_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":995 + /* "_pydevd_bundle/pydevd_cython.pyx":994 * * elif step_cmd == CMD_STEP_INTO: * stop = is_line or is_return # <<<<<<<<<<<<<< @@ -20602,13 +20602,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ if (!__pyx_v_is_line) { } else { - __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_is_line); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 995, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_is_line); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 994, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L194_bool_binop_done; } - __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_is_return); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 995, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_is_return); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 994, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __pyx_t_1; __pyx_t_1 = 0; @@ -20616,7 +20616,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_DECREF_SET(__pyx_v_stop, __pyx_t_4); __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":996 + /* "_pydevd_bundle/pydevd_cython.pyx":995 * elif step_cmd == CMD_STEP_INTO: * stop = is_line or is_return * if plugin_manager is not None: # <<<<<<<<<<<<<< @@ -20627,14 +20627,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_10 = (__pyx_t_9 != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":997 + /* "_pydevd_bundle/pydevd_cython.pyx":996 * stop = is_line or is_return * if plugin_manager is not None: * result = plugin_manager.cmd_step_into(main_debugger, frame, event, self._args, stop_info, stop) # <<<<<<<<<<<<<< * if result: * stop, plugin_stop = result */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin_manager, __pyx_n_s_cmd_step_into); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 997, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin_manager, __pyx_n_s_cmd_step_into); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 996, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = NULL; __pyx_t_5 = 0; @@ -20651,7 +20651,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[7] = {__pyx_t_2, __pyx_v_main_debugger, __pyx_v_frame, __pyx_v_event, __pyx_v_self->_args, __pyx_v_stop_info, __pyx_v_stop}; - __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 6+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 997, __pyx_L151_error) + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 6+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 996, __pyx_L151_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_4); } else @@ -20659,13 +20659,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[7] = {__pyx_t_2, __pyx_v_main_debugger, __pyx_v_frame, __pyx_v_event, __pyx_v_self->_args, __pyx_v_stop_info, __pyx_v_stop}; - __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 6+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 997, __pyx_L151_error) + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 6+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 996, __pyx_L151_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif { - __pyx_t_6 = PyTuple_New(6+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 997, __pyx_L151_error) + __pyx_t_6 = PyTuple_New(6+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 996, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __pyx_t_2 = NULL; @@ -20688,7 +20688,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(__pyx_v_stop); __Pyx_GIVEREF(__pyx_v_stop); PyTuple_SET_ITEM(__pyx_t_6, 5+__pyx_t_5, __pyx_v_stop); - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 997, __pyx_L151_error) + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 996, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -20696,17 +20696,17 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_XDECREF_SET(__pyx_v_result, __pyx_t_4); __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":998 + /* "_pydevd_bundle/pydevd_cython.pyx":997 * if plugin_manager is not None: * result = plugin_manager.cmd_step_into(main_debugger, frame, event, self._args, stop_info, stop) * if result: # <<<<<<<<<<<<<< * stop, plugin_stop = result * */ - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_result); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 998, __pyx_L151_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_result); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 997, __pyx_L151_error) if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":999 + /* "_pydevd_bundle/pydevd_cython.pyx":998 * result = plugin_manager.cmd_step_into(main_debugger, frame, event, self._args, stop_info, stop) * if result: * stop, plugin_stop = result # <<<<<<<<<<<<<< @@ -20719,7 +20719,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 999, __pyx_L151_error) + __PYX_ERR(0, 998, __pyx_L151_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -20732,21 +20732,21 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); #else - __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 999, __pyx_L151_error) + __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 998, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 999, __pyx_L151_error) + __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 998, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { Py_ssize_t index = -1; - __pyx_t_6 = PyObject_GetIter(__pyx_v_result); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 999, __pyx_L151_error) + __pyx_t_6 = PyObject_GetIter(__pyx_v_result); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 998, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_16 = Py_TYPE(__pyx_t_6)->tp_iternext; index = 0; __pyx_t_4 = __pyx_t_16(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L198_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); index = 1; __pyx_t_1 = __pyx_t_16(__pyx_t_6); if (unlikely(!__pyx_t_1)) goto __pyx_L198_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_6), 2) < 0) __PYX_ERR(0, 999, __pyx_L151_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_6), 2) < 0) __PYX_ERR(0, 998, __pyx_L151_error) __pyx_t_16 = NULL; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L199_unpacking_done; @@ -20754,7 +20754,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_16 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 999, __pyx_L151_error) + __PYX_ERR(0, 998, __pyx_L151_error) __pyx_L199_unpacking_done:; } __Pyx_DECREF_SET(__pyx_v_stop, __pyx_t_4); @@ -20762,7 +20762,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_DECREF_SET(__pyx_v_plugin_stop, __pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":998 + /* "_pydevd_bundle/pydevd_cython.pyx":997 * if plugin_manager is not None: * result = plugin_manager.cmd_step_into(main_debugger, frame, event, self._args, stop_info, stop) * if result: # <<<<<<<<<<<<<< @@ -20771,7 +20771,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":996 + /* "_pydevd_bundle/pydevd_cython.pyx":995 * elif step_cmd == CMD_STEP_INTO: * stop = is_line or is_return * if plugin_manager is not None: # <<<<<<<<<<<<<< @@ -20780,7 +20780,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":994 + /* "_pydevd_bundle/pydevd_cython.pyx":993 * stop = True * * elif step_cmd == CMD_STEP_INTO: # <<<<<<<<<<<<<< @@ -20790,36 +20790,36 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L160; } - /* "_pydevd_bundle/pydevd_cython.pyx":1001 + /* "_pydevd_bundle/pydevd_cython.pyx":1000 * stop, plugin_stop = result * * elif step_cmd == CMD_STEP_INTO_MY_CODE: # <<<<<<<<<<<<<< * if main_debugger.in_project_scope(frame.f_code.co_filename): * stop = is_line */ - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1001, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1000, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CMD_STEP_INTO_MY_CODE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1001, __pyx_L151_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CMD_STEP_INTO_MY_CODE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1000, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1001, __pyx_L151_error) + __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1000, __pyx_L151_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 1001, __pyx_L151_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 1000, __pyx_L151_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":1002 + /* "_pydevd_bundle/pydevd_cython.pyx":1001 * * elif step_cmd == CMD_STEP_INTO_MY_CODE: * if main_debugger.in_project_scope(frame.f_code.co_filename): # <<<<<<<<<<<<<< * stop = is_line * */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_in_project_scope); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1002, __pyx_L151_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_in_project_scope); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1001, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1002, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1001, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1002, __pyx_L151_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1001, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; @@ -20835,26 +20835,26 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_6 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_1, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_2); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1002, __pyx_L151_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1001, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 1002, __pyx_L151_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 1001, __pyx_L151_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":1003 + /* "_pydevd_bundle/pydevd_cython.pyx":1002 * elif step_cmd == CMD_STEP_INTO_MY_CODE: * if main_debugger.in_project_scope(frame.f_code.co_filename): * stop = is_line # <<<<<<<<<<<<<< * * elif step_cmd in (CMD_STEP_OVER, CMD_STEP_INTO_COROUTINE): */ - __pyx_t_6 = __Pyx_PyBool_FromLong(__pyx_v_is_line); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1003, __pyx_L151_error) + __pyx_t_6 = __Pyx_PyBool_FromLong(__pyx_v_is_line); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1002, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF_SET(__pyx_v_stop, __pyx_t_6); __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1002 + /* "_pydevd_bundle/pydevd_cython.pyx":1001 * * elif step_cmd == CMD_STEP_INTO_MY_CODE: * if main_debugger.in_project_scope(frame.f_code.co_filename): # <<<<<<<<<<<<<< @@ -20863,7 +20863,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1001 + /* "_pydevd_bundle/pydevd_cython.pyx":1000 * stop, plugin_stop = result * * elif step_cmd == CMD_STEP_INTO_MY_CODE: # <<<<<<<<<<<<<< @@ -20873,7 +20873,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L160; } - /* "_pydevd_bundle/pydevd_cython.pyx":1005 + /* "_pydevd_bundle/pydevd_cython.pyx":1004 * stop = is_line * * elif step_cmd in (CMD_STEP_OVER, CMD_STEP_INTO_COROUTINE): # <<<<<<<<<<<<<< @@ -20881,35 +20881,35 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa * if stop: */ __pyx_t_5 = __pyx_v_step_cmd; - __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1005, __pyx_L151_error) + __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1004, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_6); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CMD_STEP_OVER); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1005, __pyx_L151_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CMD_STEP_OVER); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1004, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = PyObject_RichCompare(__pyx_t_6, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1005, __pyx_L151_error) + __pyx_t_2 = PyObject_RichCompare(__pyx_t_6, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1004, __pyx_L151_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1005, __pyx_L151_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1004, __pyx_L151_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!__pyx_t_9) { } else { __pyx_t_10 = __pyx_t_9; goto __pyx_L201_bool_binop_done; } - __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1005, __pyx_L151_error) + __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1004, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CMD_STEP_INTO_COROUTINE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1005, __pyx_L151_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CMD_STEP_INTO_COROUTINE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1004, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1005, __pyx_L151_error) + __pyx_t_6 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1004, __pyx_L151_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1005, __pyx_L151_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1004, __pyx_L151_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_10 = __pyx_t_9; __pyx_L201_bool_binop_done:; __pyx_t_9 = (__pyx_t_10 != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":1006 + /* "_pydevd_bundle/pydevd_cython.pyx":1005 * * elif step_cmd in (CMD_STEP_OVER, CMD_STEP_INTO_COROUTINE): * stop = stop_frame is frame # <<<<<<<<<<<<<< @@ -20917,22 +20917,22 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa * if is_line: */ __pyx_t_9 = (__pyx_v_stop_frame == __pyx_v_frame); - __pyx_t_6 = __Pyx_PyBool_FromLong(__pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1006, __pyx_L151_error) + __pyx_t_6 = __Pyx_PyBool_FromLong(__pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1005, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF_SET(__pyx_v_stop, __pyx_t_6); __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1007 + /* "_pydevd_bundle/pydevd_cython.pyx":1006 * elif step_cmd in (CMD_STEP_OVER, CMD_STEP_INTO_COROUTINE): * stop = stop_frame is frame * if stop: # <<<<<<<<<<<<<< * if is_line: * # the only case we shouldn't stop on a line, is when we traversing though asynchronous framework machinery */ - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_stop); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1007, __pyx_L151_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_stop); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1006, __pyx_L151_error) if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":1008 + /* "_pydevd_bundle/pydevd_cython.pyx":1007 * stop = stop_frame is frame * if stop: * if is_line: # <<<<<<<<<<<<<< @@ -20942,36 +20942,36 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_9 = (__pyx_v_is_line != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":1010 + /* "_pydevd_bundle/pydevd_cython.pyx":1009 * if is_line: * # the only case we shouldn't stop on a line, is when we traversing though asynchronous framework machinery * if step_cmd == CMD_STEP_INTO_COROUTINE: # <<<<<<<<<<<<<< * stop = main_debugger.in_project_scope(frame.f_code.co_filename) * elif is_return: */ - __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1010, __pyx_L151_error) + __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1009, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_6); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CMD_STEP_INTO_COROUTINE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1010, __pyx_L151_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CMD_STEP_INTO_COROUTINE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1009, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = PyObject_RichCompare(__pyx_t_6, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1010, __pyx_L151_error) + __pyx_t_2 = PyObject_RichCompare(__pyx_t_6, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1009, __pyx_L151_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1010, __pyx_L151_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1009, __pyx_L151_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":1011 + /* "_pydevd_bundle/pydevd_cython.pyx":1010 * # the only case we shouldn't stop on a line, is when we traversing though asynchronous framework machinery * if step_cmd == CMD_STEP_INTO_COROUTINE: * stop = main_debugger.in_project_scope(frame.f_code.co_filename) # <<<<<<<<<<<<<< * elif is_return: * stop = frame.f_back and main_debugger.in_project_scope(frame.f_back.f_code.co_filename) */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_in_project_scope); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1011, __pyx_L151_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_in_project_scope); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1010, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1011, __pyx_L151_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1010, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1011, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1010, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -20987,13 +20987,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1011, __pyx_L151_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1010, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_stop, __pyx_t_2); __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1010 + /* "_pydevd_bundle/pydevd_cython.pyx":1009 * if is_line: * # the only case we shouldn't stop on a line, is when we traversing though asynchronous framework machinery * if step_cmd == CMD_STEP_INTO_COROUTINE: # <<<<<<<<<<<<<< @@ -21002,7 +21002,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1008 + /* "_pydevd_bundle/pydevd_cython.pyx":1007 * stop = stop_frame is frame * if stop: * if is_line: # <<<<<<<<<<<<<< @@ -21012,7 +21012,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L204; } - /* "_pydevd_bundle/pydevd_cython.pyx":1012 + /* "_pydevd_bundle/pydevd_cython.pyx":1011 * if step_cmd == CMD_STEP_INTO_COROUTINE: * stop = main_debugger.in_project_scope(frame.f_code.co_filename) * elif is_return: # <<<<<<<<<<<<<< @@ -21022,16 +21022,16 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_9 = (__pyx_v_is_return != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":1013 + /* "_pydevd_bundle/pydevd_cython.pyx":1012 * stop = main_debugger.in_project_scope(frame.f_code.co_filename) * elif is_return: * stop = frame.f_back and main_debugger.in_project_scope(frame.f_back.f_code.co_filename) # <<<<<<<<<<<<<< * if not stop: * back = frame.f_back */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1013, __pyx_L151_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1012, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1013, __pyx_L151_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1012, __pyx_L151_error) if (__pyx_t_9) { __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else { @@ -21040,14 +21040,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L206_bool_binop_done; } - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_in_project_scope); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1013, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_in_project_scope); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1012, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1013, __pyx_L151_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1012, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_f_code); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1013, __pyx_L151_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_f_code); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1012, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1013, __pyx_L151_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1012, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; @@ -21063,7 +21063,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_4 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_8, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1013, __pyx_L151_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1012, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_INCREF(__pyx_t_4); @@ -21073,40 +21073,40 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_DECREF_SET(__pyx_v_stop, __pyx_t_2); __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1014 + /* "_pydevd_bundle/pydevd_cython.pyx":1013 * elif is_return: * stop = frame.f_back and main_debugger.in_project_scope(frame.f_back.f_code.co_filename) * if not stop: # <<<<<<<<<<<<<< * back = frame.f_back * if back: */ - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_stop); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1014, __pyx_L151_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_stop); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1013, __pyx_L151_error) __pyx_t_10 = ((!__pyx_t_9) != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":1015 + /* "_pydevd_bundle/pydevd_cython.pyx":1014 * stop = frame.f_back and main_debugger.in_project_scope(frame.f_back.f_code.co_filename) * if not stop: * back = frame.f_back # <<<<<<<<<<<<<< * if back: * info.pydev_step_stop = back */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1015, __pyx_L151_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1014, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_back = __pyx_t_2; __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1016 + /* "_pydevd_bundle/pydevd_cython.pyx":1015 * if not stop: * back = frame.f_back * if back: # <<<<<<<<<<<<<< * info.pydev_step_stop = back * if main_debugger.in_project_scope(frame.f_code.co_filename): */ - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_back); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 1016, __pyx_L151_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_back); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 1015, __pyx_L151_error) if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":1017 + /* "_pydevd_bundle/pydevd_cython.pyx":1016 * back = frame.f_back * if back: * info.pydev_step_stop = back # <<<<<<<<<<<<<< @@ -21119,18 +21119,18 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_DECREF(__pyx_v_info->pydev_step_stop); __pyx_v_info->pydev_step_stop = __pyx_v_back; - /* "_pydevd_bundle/pydevd_cython.pyx":1018 + /* "_pydevd_bundle/pydevd_cython.pyx":1017 * if back: * info.pydev_step_stop = back * if main_debugger.in_project_scope(frame.f_code.co_filename): # <<<<<<<<<<<<<< * # we are returning from the project scope, step over should always lead to the project scope * if is_generator_or_coroutime and step_cmd == CMD_STEP_OVER: */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_in_project_scope); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1018, __pyx_L151_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_in_project_scope); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1017, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1018, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1017, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1018, __pyx_L151_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1017, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; @@ -21146,53 +21146,53 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_1, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_6); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1018, __pyx_L151_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1017, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 1018, __pyx_L151_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 1017, __pyx_L151_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":1020 + /* "_pydevd_bundle/pydevd_cython.pyx":1019 * if main_debugger.in_project_scope(frame.f_code.co_filename): * # we are returning from the project scope, step over should always lead to the project scope * if is_generator_or_coroutime and step_cmd == CMD_STEP_OVER: # <<<<<<<<<<<<<< * # setting ad hoc command to ensure we will skip line stops in an asynchronous framework * info.pydev_step_cmd = CMD_STEP_INTO_COROUTINE */ - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_is_generator_or_coroutime); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1020, __pyx_L151_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_is_generator_or_coroutime); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1019, __pyx_L151_error) if (__pyx_t_9) { } else { __pyx_t_10 = __pyx_t_9; goto __pyx_L212_bool_binop_done; } - __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1020, __pyx_L151_error) + __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1019, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CMD_STEP_OVER); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1020, __pyx_L151_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CMD_STEP_OVER); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1019, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1020, __pyx_L151_error) + __pyx_t_6 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1019, __pyx_L151_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1020, __pyx_L151_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1019, __pyx_L151_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_10 = __pyx_t_9; __pyx_L212_bool_binop_done:; if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":1022 + /* "_pydevd_bundle/pydevd_cython.pyx":1021 * if is_generator_or_coroutime and step_cmd == CMD_STEP_OVER: * # setting ad hoc command to ensure we will skip line stops in an asynchronous framework * info.pydev_step_cmd = CMD_STEP_INTO_COROUTINE # <<<<<<<<<<<<<< * else: * # we were already outside the project scope because of step into or breakpoint, it's ok to stop */ - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_CMD_STEP_INTO_COROUTINE); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1022, __pyx_L151_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_CMD_STEP_INTO_COROUTINE); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1021, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_6); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1022, __pyx_L151_error) + __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_6); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1021, __pyx_L151_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_info->pydev_step_cmd = __pyx_t_5; - /* "_pydevd_bundle/pydevd_cython.pyx":1020 + /* "_pydevd_bundle/pydevd_cython.pyx":1019 * if main_debugger.in_project_scope(frame.f_code.co_filename): * # we are returning from the project scope, step over should always lead to the project scope * if is_generator_or_coroutime and step_cmd == CMD_STEP_OVER: # <<<<<<<<<<<<<< @@ -21201,7 +21201,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1018 + /* "_pydevd_bundle/pydevd_cython.pyx":1017 * if back: * info.pydev_step_stop = back * if main_debugger.in_project_scope(frame.f_code.co_filename): # <<<<<<<<<<<<<< @@ -21211,7 +21211,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L210; } - /* "_pydevd_bundle/pydevd_cython.pyx":1026 + /* "_pydevd_bundle/pydevd_cython.pyx":1025 * # we were already outside the project scope because of step into or breakpoint, it's ok to stop * # if we are not chopping a way through an asynchronous framework * stop = not step_cmd == CMD_STEP_INTO_COROUTINE # <<<<<<<<<<<<<< @@ -21219,23 +21219,23 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa * # if there's no back frame, we just stop as soon as possible */ /*else*/ { - __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1026, __pyx_L151_error) + __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1025, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_6); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CMD_STEP_INTO_COROUTINE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1026, __pyx_L151_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CMD_STEP_INTO_COROUTINE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1025, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = PyObject_RichCompare(__pyx_t_6, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1026, __pyx_L151_error) + __pyx_t_2 = PyObject_RichCompare(__pyx_t_6, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1025, __pyx_L151_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 1026, __pyx_L151_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 1025, __pyx_L151_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyBool_FromLong((!__pyx_t_10)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1026, __pyx_L151_error) + __pyx_t_2 = __Pyx_PyBool_FromLong((!__pyx_t_10)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1025, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF_SET(__pyx_v_stop, __pyx_t_2); __pyx_t_2 = 0; } __pyx_L210:; - /* "_pydevd_bundle/pydevd_cython.pyx":1016 + /* "_pydevd_bundle/pydevd_cython.pyx":1015 * if not stop: * back = frame.f_back * if back: # <<<<<<<<<<<<<< @@ -21245,7 +21245,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L209; } - /* "_pydevd_bundle/pydevd_cython.pyx":1029 + /* "_pydevd_bundle/pydevd_cython.pyx":1028 * else: * # if there's no back frame, we just stop as soon as possible * info.pydev_step_cmd = CMD_STEP_INTO # <<<<<<<<<<<<<< @@ -21253,13 +21253,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa * else: */ /*else*/ { - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CMD_STEP_INTO); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1029, __pyx_L151_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CMD_STEP_INTO); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1028, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1029, __pyx_L151_error) + __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1028, __pyx_L151_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_info->pydev_step_cmd = __pyx_t_5; - /* "_pydevd_bundle/pydevd_cython.pyx":1030 + /* "_pydevd_bundle/pydevd_cython.pyx":1029 * # if there's no back frame, we just stop as soon as possible * info.pydev_step_cmd = CMD_STEP_INTO * info.pydev_step_stop = None # <<<<<<<<<<<<<< @@ -21274,7 +21274,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_L209:; - /* "_pydevd_bundle/pydevd_cython.pyx":1014 + /* "_pydevd_bundle/pydevd_cython.pyx":1013 * elif is_return: * stop = frame.f_back and main_debugger.in_project_scope(frame.f_back.f_code.co_filename) * if not stop: # <<<<<<<<<<<<<< @@ -21283,7 +21283,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1012 + /* "_pydevd_bundle/pydevd_cython.pyx":1011 * if step_cmd == CMD_STEP_INTO_COROUTINE: * stop = main_debugger.in_project_scope(frame.f_code.co_filename) * elif is_return: # <<<<<<<<<<<<<< @@ -21293,7 +21293,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L204; } - /* "_pydevd_bundle/pydevd_cython.pyx":1032 + /* "_pydevd_bundle/pydevd_cython.pyx":1031 * info.pydev_step_stop = None * else: * stop = False # <<<<<<<<<<<<<< @@ -21306,7 +21306,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_L204:; - /* "_pydevd_bundle/pydevd_cython.pyx":1007 + /* "_pydevd_bundle/pydevd_cython.pyx":1006 * elif step_cmd in (CMD_STEP_OVER, CMD_STEP_INTO_COROUTINE): * stop = stop_frame is frame * if stop: # <<<<<<<<<<<<<< @@ -21315,16 +21315,16 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1034 + /* "_pydevd_bundle/pydevd_cython.pyx":1033 * stop = False * * if CMD_STEP_OVER and plugin_manager is not None: # <<<<<<<<<<<<<< * result = plugin_manager.cmd_step_over(main_debugger, frame, event, self._args, stop_info, stop) * if result: */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CMD_STEP_OVER); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1034, __pyx_L151_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CMD_STEP_OVER); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1033, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1034, __pyx_L151_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1033, __pyx_L151_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_9) { } else { @@ -21337,14 +21337,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_L215_bool_binop_done:; if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":1035 + /* "_pydevd_bundle/pydevd_cython.pyx":1034 * * if CMD_STEP_OVER and plugin_manager is not None: * result = plugin_manager.cmd_step_over(main_debugger, frame, event, self._args, stop_info, stop) # <<<<<<<<<<<<<< * if result: * stop, plugin_stop = result */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin_manager, __pyx_n_s_cmd_step_over); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1035, __pyx_L151_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin_manager, __pyx_n_s_cmd_step_over); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1034, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = NULL; __pyx_t_5 = 0; @@ -21361,7 +21361,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[7] = {__pyx_t_6, __pyx_v_main_debugger, __pyx_v_frame, __pyx_v_event, __pyx_v_self->_args, __pyx_v_stop_info, __pyx_v_stop}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 6+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1035, __pyx_L151_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 6+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1034, __pyx_L151_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -21369,13 +21369,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[7] = {__pyx_t_6, __pyx_v_main_debugger, __pyx_v_frame, __pyx_v_event, __pyx_v_self->_args, __pyx_v_stop_info, __pyx_v_stop}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 6+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1035, __pyx_L151_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 6+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1034, __pyx_L151_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_1 = PyTuple_New(6+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1035, __pyx_L151_error) + __pyx_t_1 = PyTuple_New(6+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1034, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6); __pyx_t_6 = NULL; @@ -21398,7 +21398,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(__pyx_v_stop); __Pyx_GIVEREF(__pyx_v_stop); PyTuple_SET_ITEM(__pyx_t_1, 5+__pyx_t_5, __pyx_v_stop); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1035, __pyx_L151_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1034, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } @@ -21406,17 +21406,17 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_XDECREF_SET(__pyx_v_result, __pyx_t_2); __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1036 + /* "_pydevd_bundle/pydevd_cython.pyx":1035 * if CMD_STEP_OVER and plugin_manager is not None: * result = plugin_manager.cmd_step_over(main_debugger, frame, event, self._args, stop_info, stop) * if result: # <<<<<<<<<<<<<< * stop, plugin_stop = result * */ - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_result); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 1036, __pyx_L151_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_result); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 1035, __pyx_L151_error) if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":1037 + /* "_pydevd_bundle/pydevd_cython.pyx":1036 * result = plugin_manager.cmd_step_over(main_debugger, frame, event, self._args, stop_info, stop) * if result: * stop, plugin_stop = result # <<<<<<<<<<<<<< @@ -21429,7 +21429,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 1037, __pyx_L151_error) + __PYX_ERR(0, 1036, __pyx_L151_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -21442,21 +21442,21 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); #else - __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1037, __pyx_L151_error) + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1036, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1037, __pyx_L151_error) + __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1036, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { Py_ssize_t index = -1; - __pyx_t_1 = PyObject_GetIter(__pyx_v_result); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1037, __pyx_L151_error) + __pyx_t_1 = PyObject_GetIter(__pyx_v_result); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1036, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_16 = Py_TYPE(__pyx_t_1)->tp_iternext; index = 0; __pyx_t_2 = __pyx_t_16(__pyx_t_1); if (unlikely(!__pyx_t_2)) goto __pyx_L218_unpacking_failed; __Pyx_GOTREF(__pyx_t_2); index = 1; __pyx_t_4 = __pyx_t_16(__pyx_t_1); if (unlikely(!__pyx_t_4)) goto __pyx_L218_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_1), 2) < 0) __PYX_ERR(0, 1037, __pyx_L151_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_1), 2) < 0) __PYX_ERR(0, 1036, __pyx_L151_error) __pyx_t_16 = NULL; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L219_unpacking_done; @@ -21464,7 +21464,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_16 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 1037, __pyx_L151_error) + __PYX_ERR(0, 1036, __pyx_L151_error) __pyx_L219_unpacking_done:; } __Pyx_DECREF_SET(__pyx_v_stop, __pyx_t_2); @@ -21472,7 +21472,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_DECREF_SET(__pyx_v_plugin_stop, __pyx_t_4); __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1036 + /* "_pydevd_bundle/pydevd_cython.pyx":1035 * if CMD_STEP_OVER and plugin_manager is not None: * result = plugin_manager.cmd_step_over(main_debugger, frame, event, self._args, stop_info, stop) * if result: # <<<<<<<<<<<<<< @@ -21481,7 +21481,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1034 + /* "_pydevd_bundle/pydevd_cython.pyx":1033 * stop = False * * if CMD_STEP_OVER and plugin_manager is not None: # <<<<<<<<<<<<<< @@ -21490,7 +21490,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1005 + /* "_pydevd_bundle/pydevd_cython.pyx":1004 * stop = is_line * * elif step_cmd in (CMD_STEP_OVER, CMD_STEP_INTO_COROUTINE): # <<<<<<<<<<<<<< @@ -21500,25 +21500,25 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L160; } - /* "_pydevd_bundle/pydevd_cython.pyx":1039 + /* "_pydevd_bundle/pydevd_cython.pyx":1038 * stop, plugin_stop = result * * elif step_cmd == CMD_STEP_RETURN: # <<<<<<<<<<<<<< * stop = is_return and stop_frame is frame * */ - __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1039, __pyx_L151_error) + __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1038, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CMD_STEP_RETURN); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1039, __pyx_L151_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CMD_STEP_RETURN); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1038, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1039, __pyx_L151_error) + __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1038, __pyx_L151_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 1039, __pyx_L151_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 1038, __pyx_L151_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":1040 + /* "_pydevd_bundle/pydevd_cython.pyx":1039 * * elif step_cmd == CMD_STEP_RETURN: * stop = is_return and stop_frame is frame # <<<<<<<<<<<<<< @@ -21527,14 +21527,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ if (__pyx_v_is_return) { } else { - __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_is_return); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1040, __pyx_L151_error) + __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_is_return); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1039, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L220_bool_binop_done; } __pyx_t_10 = (__pyx_v_stop_frame == __pyx_v_frame); - __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1040, __pyx_L151_error) + __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1039, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __pyx_t_2; __pyx_t_2 = 0; @@ -21542,7 +21542,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_DECREF_SET(__pyx_v_stop, __pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1039 + /* "_pydevd_bundle/pydevd_cython.pyx":1038 * stop, plugin_stop = result * * elif step_cmd == CMD_STEP_RETURN: # <<<<<<<<<<<<<< @@ -21552,7 +21552,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L160; } - /* "_pydevd_bundle/pydevd_cython.pyx":1043 + /* "_pydevd_bundle/pydevd_cython.pyx":1042 * * else: * stop = False # <<<<<<<<<<<<<< @@ -21565,14 +21565,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_L160:; - /* "_pydevd_bundle/pydevd_cython.pyx":1045 + /* "_pydevd_bundle/pydevd_cython.pyx":1044 * stop = False * * if stop and step_cmd != -1 and is_return and IS_PY3K and hasattr(frame, "f_back"): # <<<<<<<<<<<<<< * f_code = getattr(frame.f_back, 'f_code', None) * if f_code is not None: */ - __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_v_stop); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1045, __pyx_L151_error) + __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_v_stop); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1044, __pyx_L151_error) if (__pyx_t_17) { } else { __pyx_t_10 = __pyx_t_17; @@ -21590,37 +21590,37 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_10 = __pyx_t_17; goto __pyx_L223_bool_binop_done; } - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_IS_PY3K); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1045, __pyx_L151_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_IS_PY3K); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1044, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1045, __pyx_L151_error) + __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1044, __pyx_L151_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_17) { } else { __pyx_t_10 = __pyx_t_17; goto __pyx_L223_bool_binop_done; } - __pyx_t_17 = __Pyx_HasAttr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 1045, __pyx_L151_error) + __pyx_t_17 = __Pyx_HasAttr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 1044, __pyx_L151_error) __pyx_t_9 = (__pyx_t_17 != 0); __pyx_t_10 = __pyx_t_9; __pyx_L223_bool_binop_done:; if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":1046 + /* "_pydevd_bundle/pydevd_cython.pyx":1045 * * if stop and step_cmd != -1 and is_return and IS_PY3K and hasattr(frame, "f_back"): * f_code = getattr(frame.f_back, 'f_code', None) # <<<<<<<<<<<<<< * if f_code is not None: * back_filename = os.path.basename(f_code.co_filename) */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1046, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1045, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_GetAttr3(__pyx_t_1, __pyx_n_s_f_code, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1046, __pyx_L151_error) + __pyx_t_2 = __Pyx_GetAttr3(__pyx_t_1, __pyx_n_s_f_code, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1045, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_f_code = __pyx_t_2; __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1047 + /* "_pydevd_bundle/pydevd_cython.pyx":1046 * if stop and step_cmd != -1 and is_return and IS_PY3K and hasattr(frame, "f_back"): * f_code = getattr(frame.f_back, 'f_code', None) * if f_code is not None: # <<<<<<<<<<<<<< @@ -21631,22 +21631,22 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_9 = (__pyx_t_10 != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":1048 + /* "_pydevd_bundle/pydevd_cython.pyx":1047 * f_code = getattr(frame.f_back, 'f_code', None) * if f_code is not None: * back_filename = os.path.basename(f_code.co_filename) # <<<<<<<<<<<<<< * file_type = get_file_type(back_filename) * if file_type == PYDEV_FILE: */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1048, __pyx_L151_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1047, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_path); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1048, __pyx_L151_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_path); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1047, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_basename); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1048, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_basename); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1047, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_f_code, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1048, __pyx_L151_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_f_code, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1047, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { @@ -21661,20 +21661,20 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1048, __pyx_L151_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1047, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_back_filename = __pyx_t_2; __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1049 + /* "_pydevd_bundle/pydevd_cython.pyx":1048 * if f_code is not None: * back_filename = os.path.basename(f_code.co_filename) * file_type = get_file_type(back_filename) # <<<<<<<<<<<<<< * if file_type == PYDEV_FILE: * stop = False */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_get_file_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1049, __pyx_L151_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_get_file_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1048, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { @@ -21688,28 +21688,28 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_4, __pyx_v_back_filename) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_back_filename); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1049, __pyx_L151_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1048, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_file_type = __pyx_t_2; __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1050 + /* "_pydevd_bundle/pydevd_cython.pyx":1049 * back_filename = os.path.basename(f_code.co_filename) * file_type = get_file_type(back_filename) * if file_type == PYDEV_FILE: # <<<<<<<<<<<<<< * stop = False * */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_PYDEV_FILE); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1050, __pyx_L151_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_PYDEV_FILE); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1049, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = PyObject_RichCompare(__pyx_v_file_type, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1050, __pyx_L151_error) + __pyx_t_1 = PyObject_RichCompare(__pyx_v_file_type, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1049, __pyx_L151_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1050, __pyx_L151_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1049, __pyx_L151_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":1051 + /* "_pydevd_bundle/pydevd_cython.pyx":1050 * file_type = get_file_type(back_filename) * if file_type == PYDEV_FILE: * stop = False # <<<<<<<<<<<<<< @@ -21719,7 +21719,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(Py_False); __Pyx_DECREF_SET(__pyx_v_stop, Py_False); - /* "_pydevd_bundle/pydevd_cython.pyx":1050 + /* "_pydevd_bundle/pydevd_cython.pyx":1049 * back_filename = os.path.basename(f_code.co_filename) * file_type = get_file_type(back_filename) * if file_type == PYDEV_FILE: # <<<<<<<<<<<<<< @@ -21728,7 +21728,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1047 + /* "_pydevd_bundle/pydevd_cython.pyx":1046 * if stop and step_cmd != -1 and is_return and IS_PY3K and hasattr(frame, "f_back"): * f_code = getattr(frame.f_back, 'f_code', None) * if f_code is not None: # <<<<<<<<<<<<<< @@ -21737,7 +21737,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1045 + /* "_pydevd_bundle/pydevd_cython.pyx":1044 * stop = False * * if stop and step_cmd != -1 and is_return and IS_PY3K and hasattr(frame, "f_back"): # <<<<<<<<<<<<<< @@ -21746,26 +21746,26 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1053 + /* "_pydevd_bundle/pydevd_cython.pyx":1052 * stop = False * * if plugin_stop: # <<<<<<<<<<<<<< * stopped_on_plugin = plugin_manager.stop(main_debugger, frame, event, self._args, stop_info, arg, step_cmd) * elif stop: */ - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_plugin_stop); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1053, __pyx_L151_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_plugin_stop); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1052, __pyx_L151_error) if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":1054 + /* "_pydevd_bundle/pydevd_cython.pyx":1053 * * if plugin_stop: * stopped_on_plugin = plugin_manager.stop(main_debugger, frame, event, self._args, stop_info, arg, step_cmd) # <<<<<<<<<<<<<< * elif stop: * if is_line: */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin_manager, __pyx_n_s_stop); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1054, __pyx_L151_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin_manager, __pyx_n_s_stop); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1053, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1054, __pyx_L151_error) + __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1053, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = NULL; __pyx_t_5 = 0; @@ -21782,7 +21782,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[8] = {__pyx_t_6, __pyx_v_main_debugger, __pyx_v_frame, __pyx_v_event, __pyx_v_self->_args, __pyx_v_stop_info, __pyx_v_arg, __pyx_t_4}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 7+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1054, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 7+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1053, __pyx_L151_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -21791,14 +21791,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[8] = {__pyx_t_6, __pyx_v_main_debugger, __pyx_v_frame, __pyx_v_event, __pyx_v_self->_args, __pyx_v_stop_info, __pyx_v_arg, __pyx_t_4}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 7+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1054, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 7+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1053, __pyx_L151_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { - __pyx_t_8 = PyTuple_New(7+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1054, __pyx_L151_error) + __pyx_t_8 = PyTuple_New(7+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1053, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL; @@ -21824,7 +21824,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_8, 6+__pyx_t_5, __pyx_t_4); __pyx_t_4 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1054, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1053, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } @@ -21832,7 +21832,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_v_stopped_on_plugin = __pyx_t_1; __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1053 + /* "_pydevd_bundle/pydevd_cython.pyx":1052 * stop = False * * if plugin_stop: # <<<<<<<<<<<<<< @@ -21842,17 +21842,17 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L230; } - /* "_pydevd_bundle/pydevd_cython.pyx":1055 + /* "_pydevd_bundle/pydevd_cython.pyx":1054 * if plugin_stop: * stopped_on_plugin = plugin_manager.stop(main_debugger, frame, event, self._args, stop_info, arg, step_cmd) * elif stop: # <<<<<<<<<<<<<< * if is_line: * self.set_suspend(thread, step_cmd) */ - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_stop); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1055, __pyx_L151_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_stop); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1054, __pyx_L151_error) if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":1056 + /* "_pydevd_bundle/pydevd_cython.pyx":1055 * stopped_on_plugin = plugin_manager.stop(main_debugger, frame, event, self._args, stop_info, arg, step_cmd) * elif stop: * if is_line: # <<<<<<<<<<<<<< @@ -21862,16 +21862,16 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_9 = (__pyx_v_is_line != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":1057 + /* "_pydevd_bundle/pydevd_cython.pyx":1056 * elif stop: * if is_line: * self.set_suspend(thread, step_cmd) # <<<<<<<<<<<<<< * self.do_wait_suspend(thread, frame, event, arg) * else: # return event */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_suspend); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1057, __pyx_L151_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_suspend); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1056, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1057, __pyx_L151_error) + __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1056, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -21888,7 +21888,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_thread, __pyx_t_8}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1057, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1056, __pyx_L151_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; @@ -21897,14 +21897,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_thread, __pyx_t_8}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1057, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1056, __pyx_L151_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif { - __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1057, __pyx_L151_error) + __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1056, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -21915,21 +21915,21 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_t_8); __pyx_t_8 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1057, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1056, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1058 + /* "_pydevd_bundle/pydevd_cython.pyx":1057 * if is_line: * self.set_suspend(thread, step_cmd) * self.do_wait_suspend(thread, frame, event, arg) # <<<<<<<<<<<<<< * else: # return event * back = frame.f_back */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_do_wait_suspend); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1058, __pyx_L151_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_do_wait_suspend); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1057, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = NULL; __pyx_t_5 = 0; @@ -21946,7 +21946,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[5] = {__pyx_t_6, __pyx_v_thread, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1058, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1057, __pyx_L151_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); } else @@ -21954,13 +21954,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[5] = {__pyx_t_6, __pyx_v_thread, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1058, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1057, __pyx_L151_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { - __pyx_t_8 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1058, __pyx_L151_error) + __pyx_t_8 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1057, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL; @@ -21977,14 +21977,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_5, __pyx_v_arg); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1058, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1057, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1056 + /* "_pydevd_bundle/pydevd_cython.pyx":1055 * stopped_on_plugin = plugin_manager.stop(main_debugger, frame, event, self._args, stop_info, arg, step_cmd) * elif stop: * if is_line: # <<<<<<<<<<<<<< @@ -21994,7 +21994,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L231; } - /* "_pydevd_bundle/pydevd_cython.pyx":1060 + /* "_pydevd_bundle/pydevd_cython.pyx":1059 * self.do_wait_suspend(thread, frame, event, arg) * else: # return event * back = frame.f_back # <<<<<<<<<<<<<< @@ -22002,12 +22002,12 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa * # When we get to the pydevd run function, the debugging has actually finished for the main thread */ /*else*/ { - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1060, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1059, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_back, __pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1061 + /* "_pydevd_bundle/pydevd_cython.pyx":1060 * else: # return event * back = frame.f_back * if back is not None: # <<<<<<<<<<<<<< @@ -22018,14 +22018,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_10 = (__pyx_t_9 != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":1065 + /* "_pydevd_bundle/pydevd_cython.pyx":1064 * # (note that it can still go on for other threads, but for this one, we just make it finish) * # So, just setting it to None should be OK * _, back_filename, base = get_abs_path_real_path_and_base_from_frame(back) # <<<<<<<<<<<<<< * if (base, back.f_code.co_name) in (DEBUG_START, DEBUG_START_PY3K): * back = None */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_get_abs_path_real_path_and_base); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1065, __pyx_L151_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_get_abs_path_real_path_and_base); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1064, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { @@ -22039,7 +22039,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_8, __pyx_v_back) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_back); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1065, __pyx_L151_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1064, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { @@ -22048,7 +22048,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 1065, __pyx_L151_error) + __PYX_ERR(0, 1064, __pyx_L151_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -22064,17 +22064,17 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_6); #else - __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1065, __pyx_L151_error) + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1064, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1065, __pyx_L151_error) + __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1064, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1065, __pyx_L151_error) + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1064, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_6); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; - __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1065, __pyx_L151_error) + __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1064, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_16 = Py_TYPE(__pyx_t_4)->tp_iternext; @@ -22084,7 +22084,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_GOTREF(__pyx_t_8); index = 2; __pyx_t_6 = __pyx_t_16(__pyx_t_4); if (unlikely(!__pyx_t_6)) goto __pyx_L233_unpacking_failed; __Pyx_GOTREF(__pyx_t_6); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_4), 3) < 0) __PYX_ERR(0, 1065, __pyx_L151_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_4), 3) < 0) __PYX_ERR(0, 1064, __pyx_L151_error) __pyx_t_16 = NULL; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L234_unpacking_done; @@ -22092,7 +22092,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_16 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 1065, __pyx_L151_error) + __PYX_ERR(0, 1064, __pyx_L151_error) __pyx_L234_unpacking_done:; } __pyx_v__ = __pyx_t_2; @@ -22102,19 +22102,19 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_v_base = __pyx_t_6; __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1066 + /* "_pydevd_bundle/pydevd_cython.pyx":1065 * # So, just setting it to None should be OK * _, back_filename, base = get_abs_path_real_path_and_base_from_frame(back) * if (base, back.f_code.co_name) in (DEBUG_START, DEBUG_START_PY3K): # <<<<<<<<<<<<<< * back = None * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_back, __pyx_n_s_f_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1066, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_back, __pyx_n_s_f_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1065, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_co_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1066, __pyx_L151_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_co_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1065, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1066, __pyx_L151_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1065, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_base); __Pyx_GIVEREF(__pyx_v_base); @@ -22122,22 +22122,22 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6); __pyx_t_6 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_DEBUG_START); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1066, __pyx_L151_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_DEBUG_START); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1065, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_8 = PyObject_RichCompare(__pyx_t_1, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1066, __pyx_L151_error) + __pyx_t_8 = PyObject_RichCompare(__pyx_t_1, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1065, __pyx_L151_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1066, __pyx_L151_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1065, __pyx_L151_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (!__pyx_t_9) { } else { __pyx_t_10 = __pyx_t_9; goto __pyx_L236_bool_binop_done; } - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_DEBUG_START_PY3K); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1066, __pyx_L151_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_DEBUG_START_PY3K); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1065, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1066, __pyx_L151_error) + __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1065, __pyx_L151_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1066, __pyx_L151_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1065, __pyx_L151_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_10 = __pyx_t_9; __pyx_L236_bool_binop_done:; @@ -22145,7 +22145,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_9 = (__pyx_t_10 != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":1067 + /* "_pydevd_bundle/pydevd_cython.pyx":1066 * _, back_filename, base = get_abs_path_real_path_and_base_from_frame(back) * if (base, back.f_code.co_name) in (DEBUG_START, DEBUG_START_PY3K): * back = None # <<<<<<<<<<<<<< @@ -22155,7 +22155,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(Py_None); __Pyx_DECREF_SET(__pyx_v_back, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":1066 + /* "_pydevd_bundle/pydevd_cython.pyx":1065 * # So, just setting it to None should be OK * _, back_filename, base = get_abs_path_real_path_and_base_from_frame(back) * if (base, back.f_code.co_name) in (DEBUG_START, DEBUG_START_PY3K): # <<<<<<<<<<<<<< @@ -22165,22 +22165,22 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L235; } - /* "_pydevd_bundle/pydevd_cython.pyx":1069 + /* "_pydevd_bundle/pydevd_cython.pyx":1068 * back = None * * elif base == TRACE_PROPERTY: # <<<<<<<<<<<<<< * # We dont want to trace the return event of pydevd_traceproperty (custom property for debugging) * # if we're in a return, we want it to appear to the user in the previous frame! */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_TRACE_PROPERTY); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L151_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_TRACE_PROPERTY); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1068, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_6 = PyObject_RichCompare(__pyx_v_base, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1069, __pyx_L151_error) + __pyx_t_6 = PyObject_RichCompare(__pyx_v_base, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1068, __pyx_L151_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1069, __pyx_L151_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1068, __pyx_L151_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":1072 + /* "_pydevd_bundle/pydevd_cython.pyx":1071 * # We dont want to trace the return event of pydevd_traceproperty (custom property for debugging) * # if we're in a return, we want it to appear to the user in the previous frame! * if not is_call: frame.f_trace = NO_FTRACE # <<<<<<<<<<<<<< @@ -22189,13 +22189,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ __pyx_t_9 = ((!(__pyx_v_is_call != 0)) != 0); if (__pyx_t_9) { - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1072, __pyx_L151_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1071, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_6); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_6) < 0) __PYX_ERR(0, 1072, __pyx_L151_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_6) < 0) __PYX_ERR(0, 1071, __pyx_L151_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } - /* "_pydevd_bundle/pydevd_cython.pyx":1073 + /* "_pydevd_bundle/pydevd_cython.pyx":1072 * # if we're in a return, we want it to appear to the user in the previous frame! * if not is_call: frame.f_trace = NO_FTRACE * return None # <<<<<<<<<<<<<< @@ -22206,7 +22206,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L155_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":1069 + /* "_pydevd_bundle/pydevd_cython.pyx":1068 * back = None * * elif base == TRACE_PROPERTY: # <<<<<<<<<<<<<< @@ -22215,16 +22215,16 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1075 + /* "_pydevd_bundle/pydevd_cython.pyx":1074 * return None * * elif pydevd_dont_trace.should_trace_hook is not None: # <<<<<<<<<<<<<< * if not pydevd_dont_trace.should_trace_hook(back, back_filename): * # In this case, we'll have to skip the previous one because it shouldn't be traced. */ - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pydevd_dont_trace); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1075, __pyx_L151_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pydevd_dont_trace); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1074, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_should_trace_hook); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1075, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_should_trace_hook); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1074, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_9 = (__pyx_t_1 != Py_None); @@ -22232,16 +22232,16 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_10 = (__pyx_t_9 != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":1076 + /* "_pydevd_bundle/pydevd_cython.pyx":1075 * * elif pydevd_dont_trace.should_trace_hook is not None: * if not pydevd_dont_trace.should_trace_hook(back, back_filename): # <<<<<<<<<<<<<< * # In this case, we'll have to skip the previous one because it shouldn't be traced. * # Also, we have to reset the tracing, because if the parent's parent (or some */ - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pydevd_dont_trace); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1076, __pyx_L151_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pydevd_dont_trace); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1075, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_should_trace_hook); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1076, __pyx_L151_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_should_trace_hook); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1075, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -22259,7 +22259,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_back, __pyx_v_back_filename}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1076, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1075, __pyx_L151_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); } else @@ -22267,13 +22267,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_back, __pyx_v_back_filename}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1076, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1075, __pyx_L151_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { - __pyx_t_2 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1076, __pyx_L151_error) + __pyx_t_2 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1075, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_6); __pyx_t_6 = NULL; @@ -22284,24 +22284,24 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(__pyx_v_back_filename); __Pyx_GIVEREF(__pyx_v_back_filename); PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_5, __pyx_v_back_filename); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1076, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1075, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 1076, __pyx_L151_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 1075, __pyx_L151_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_9 = ((!__pyx_t_10) != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":1082 + /* "_pydevd_bundle/pydevd_cython.pyx":1081 * # we should anymore (so, a step in/over/return may not stop anywhere if no parent is traced). * # Related test: _debugger_case17a.py * main_debugger.set_trace_for_frame_and_parents(back) # <<<<<<<<<<<<<< * if not is_call: frame.f_trace = NO_FTRACE * return None */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_set_trace_for_frame_and_parents); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1082, __pyx_L151_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_set_trace_for_frame_and_parents); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1081, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { @@ -22315,12 +22315,12 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_2, __pyx_v_back) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_back); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1082, __pyx_L151_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1081, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1083 + /* "_pydevd_bundle/pydevd_cython.pyx":1082 * # Related test: _debugger_case17a.py * main_debugger.set_trace_for_frame_and_parents(back) * if not is_call: frame.f_trace = NO_FTRACE # <<<<<<<<<<<<<< @@ -22329,13 +22329,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ __pyx_t_9 = ((!(__pyx_v_is_call != 0)) != 0); if (__pyx_t_9) { - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1083, __pyx_L151_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1082, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_1) < 0) __PYX_ERR(0, 1083, __pyx_L151_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_1) < 0) __PYX_ERR(0, 1082, __pyx_L151_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - /* "_pydevd_bundle/pydevd_cython.pyx":1084 + /* "_pydevd_bundle/pydevd_cython.pyx":1083 * main_debugger.set_trace_for_frame_and_parents(back) * if not is_call: frame.f_trace = NO_FTRACE * return None # <<<<<<<<<<<<<< @@ -22346,7 +22346,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L155_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":1076 + /* "_pydevd_bundle/pydevd_cython.pyx":1075 * * elif pydevd_dont_trace.should_trace_hook is not None: * if not pydevd_dont_trace.should_trace_hook(back, back_filename): # <<<<<<<<<<<<<< @@ -22355,7 +22355,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1075 + /* "_pydevd_bundle/pydevd_cython.pyx":1074 * return None * * elif pydevd_dont_trace.should_trace_hook is not None: # <<<<<<<<<<<<<< @@ -22365,7 +22365,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_L235:; - /* "_pydevd_bundle/pydevd_cython.pyx":1061 + /* "_pydevd_bundle/pydevd_cython.pyx":1060 * else: # return event * back = frame.f_back * if back is not None: # <<<<<<<<<<<<<< @@ -22374,7 +22374,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1086 + /* "_pydevd_bundle/pydevd_cython.pyx":1085 * return None * * if back is not None: # <<<<<<<<<<<<<< @@ -22385,16 +22385,16 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_10 = (__pyx_t_9 != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":1088 + /* "_pydevd_bundle/pydevd_cython.pyx":1087 * if back is not None: * # if we're in a return, we want it to appear to the user in the previous frame! * self.set_suspend(thread, step_cmd) # <<<<<<<<<<<<<< * self.do_wait_suspend(thread, back, event, arg) * else: */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_suspend); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1088, __pyx_L151_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_suspend); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1087, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1088, __pyx_L151_error) + __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1087, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = NULL; __pyx_t_5 = 0; @@ -22411,7 +22411,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_thread, __pyx_t_2}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1088, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1087, __pyx_L151_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -22420,14 +22420,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_thread, __pyx_t_2}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1088, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1087, __pyx_L151_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif { - __pyx_t_4 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1088, __pyx_L151_error) + __pyx_t_4 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1087, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __pyx_t_6 = NULL; @@ -22438,21 +22438,21 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_5, __pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1088, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1087, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1089 + /* "_pydevd_bundle/pydevd_cython.pyx":1088 * # if we're in a return, we want it to appear to the user in the previous frame! * self.set_suspend(thread, step_cmd) * self.do_wait_suspend(thread, back, event, arg) # <<<<<<<<<<<<<< * else: * # in jython we may not have a back frame */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_do_wait_suspend); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1089, __pyx_L151_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_do_wait_suspend); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1088, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -22469,7 +22469,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_v_thread, __pyx_v_back, __pyx_v_event, __pyx_v_arg}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1089, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1088, __pyx_L151_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_1); } else @@ -22477,13 +22477,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_v_thread, __pyx_v_back, __pyx_v_event, __pyx_v_arg}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1089, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1088, __pyx_L151_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { - __pyx_t_2 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1089, __pyx_L151_error) + __pyx_t_2 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1088, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_2); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -22500,14 +22500,14 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); PyTuple_SET_ITEM(__pyx_t_2, 3+__pyx_t_5, __pyx_v_arg); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1089, __pyx_L151_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1088, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1086 + /* "_pydevd_bundle/pydevd_cython.pyx":1085 * return None * * if back is not None: # <<<<<<<<<<<<<< @@ -22517,7 +22517,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa goto __pyx_L241; } - /* "_pydevd_bundle/pydevd_cython.pyx":1092 + /* "_pydevd_bundle/pydevd_cython.pyx":1091 * else: * # in jython we may not have a back frame * self.clear_run_state(info) # <<<<<<<<<<<<<< @@ -22525,7 +22525,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa * except KeyboardInterrupt: */ /*else*/ { - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_clear_run_state); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1092, __pyx_L151_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_clear_run_state); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1091, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { @@ -22539,7 +22539,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_2, ((PyObject *)__pyx_v_info)) : __Pyx_PyObject_CallOneArg(__pyx_t_8, ((PyObject *)__pyx_v_info)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1092, __pyx_L151_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1091, __pyx_L151_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -22548,7 +22548,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_L231:; - /* "_pydevd_bundle/pydevd_cython.pyx":1055 + /* "_pydevd_bundle/pydevd_cython.pyx":1054 * if plugin_stop: * stopped_on_plugin = plugin_manager.stop(main_debugger, frame, event, self._args, stop_info, arg, step_cmd) * elif stop: # <<<<<<<<<<<<<< @@ -22558,7 +22558,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_L230:; - /* "_pydevd_bundle/pydevd_cython.pyx":936 + /* "_pydevd_bundle/pydevd_cython.pyx":935 * * # step handling. We stop when we hit the right frame * try: # <<<<<<<<<<<<<< @@ -22580,7 +22580,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1094 + /* "_pydevd_bundle/pydevd_cython.pyx":1093 * self.clear_run_state(info) * * except KeyboardInterrupt: # <<<<<<<<<<<<<< @@ -22590,19 +22590,19 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyboardInterrupt); if (__pyx_t_5) { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.trace_dispatch", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_8, &__pyx_t_2) < 0) __PYX_ERR(0, 1094, __pyx_L153_except_error) + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_8, &__pyx_t_2) < 0) __PYX_ERR(0, 1093, __pyx_L153_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_2); - /* "_pydevd_bundle/pydevd_cython.pyx":1095 + /* "_pydevd_bundle/pydevd_cython.pyx":1094 * * except KeyboardInterrupt: * self.clear_run_state(info) # <<<<<<<<<<<<<< * raise * except: */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_clear_run_state); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1095, __pyx_L153_except_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_clear_run_state); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1094, __pyx_L153_except_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { @@ -22616,12 +22616,12 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, ((PyObject *)__pyx_v_info)) : __Pyx_PyObject_CallOneArg(__pyx_t_6, ((PyObject *)__pyx_v_info)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1095, __pyx_L153_except_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1094, __pyx_L153_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1096 + /* "_pydevd_bundle/pydevd_cython.pyx":1095 * except KeyboardInterrupt: * self.clear_run_state(info) * raise # <<<<<<<<<<<<<< @@ -22633,10 +22633,10 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_XGIVEREF(__pyx_t_2); __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_8, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_8 = 0; __pyx_t_2 = 0; - __PYX_ERR(0, 1096, __pyx_L153_except_error) + __PYX_ERR(0, 1095, __pyx_L153_except_error) } - /* "_pydevd_bundle/pydevd_cython.pyx":1097 + /* "_pydevd_bundle/pydevd_cython.pyx":1096 * self.clear_run_state(info) * raise * except: # <<<<<<<<<<<<<< @@ -22645,12 +22645,12 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.trace_dispatch", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_8, &__pyx_t_1) < 0) __PYX_ERR(0, 1097, __pyx_L153_except_error) + if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_8, &__pyx_t_1) < 0) __PYX_ERR(0, 1096, __pyx_L153_except_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_1); - /* "_pydevd_bundle/pydevd_cython.pyx":1098 + /* "_pydevd_bundle/pydevd_cython.pyx":1097 * raise * except: * try: # <<<<<<<<<<<<<< @@ -22666,16 +22666,16 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_XGOTREF(__pyx_t_20); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":1099 + /* "_pydevd_bundle/pydevd_cython.pyx":1098 * except: * try: * traceback.print_exc() # <<<<<<<<<<<<<< * info.pydev_step_cmd = -1 * except: */ - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_traceback); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1099, __pyx_L246_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_traceback); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1098, __pyx_L246_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1099, __pyx_L246_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1098, __pyx_L246_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -22690,12 +22690,12 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_7); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1099, __pyx_L246_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1098, __pyx_L246_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1100 + /* "_pydevd_bundle/pydevd_cython.pyx":1099 * try: * traceback.print_exc() * info.pydev_step_cmd = -1 # <<<<<<<<<<<<<< @@ -22704,7 +22704,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ __pyx_v_info->pydev_step_cmd = -1; - /* "_pydevd_bundle/pydevd_cython.pyx":1098 + /* "_pydevd_bundle/pydevd_cython.pyx":1097 * raise * except: * try: # <<<<<<<<<<<<<< @@ -22723,7 +22723,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1101 + /* "_pydevd_bundle/pydevd_cython.pyx":1100 * traceback.print_exc() * info.pydev_step_cmd = -1 * except: # <<<<<<<<<<<<<< @@ -22732,12 +22732,12 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.trace_dispatch", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_7, &__pyx_t_6) < 0) __PYX_ERR(0, 1101, __pyx_L248_except_error) + if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_7, &__pyx_t_6) < 0) __PYX_ERR(0, 1100, __pyx_L248_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_7); __Pyx_GOTREF(__pyx_t_6); - /* "_pydevd_bundle/pydevd_cython.pyx":1102 + /* "_pydevd_bundle/pydevd_cython.pyx":1101 * info.pydev_step_cmd = -1 * except: * if not is_call: frame.f_trace = NO_FTRACE # <<<<<<<<<<<<<< @@ -22746,13 +22746,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ __pyx_t_10 = ((!(__pyx_v_is_call != 0)) != 0); if (__pyx_t_10) { - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1102, __pyx_L248_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1101, __pyx_L248_except_error) __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_3) < 0) __PYX_ERR(0, 1102, __pyx_L248_except_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_3) < 0) __PYX_ERR(0, 1101, __pyx_L248_except_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - /* "_pydevd_bundle/pydevd_cython.pyx":1103 + /* "_pydevd_bundle/pydevd_cython.pyx":1102 * except: * if not is_call: frame.f_trace = NO_FTRACE * return None # <<<<<<<<<<<<<< @@ -22771,7 +22771,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_L248_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":1098 + /* "_pydevd_bundle/pydevd_cython.pyx":1097 * raise * except: * try: # <<<<<<<<<<<<<< @@ -22798,7 +22798,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } __pyx_L153_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":936 + /* "_pydevd_bundle/pydevd_cython.pyx":935 * * # step handling. We stop when we hit the right frame * try: # <<<<<<<<<<<<<< @@ -22830,21 +22830,21 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa __pyx_L156_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":1106 + /* "_pydevd_bundle/pydevd_cython.pyx":1105 * * # if we are quitting, let's stop the tracing * if not main_debugger.quitting: # <<<<<<<<<<<<<< * # No need to reset frame.f_trace to keep the same trace function. * return self.trace_dispatch */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_quitting); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1106, __pyx_L5_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_quitting); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1105, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 1106, __pyx_L5_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 1105, __pyx_L5_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_9 = ((!__pyx_t_10) != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":1108 + /* "_pydevd_bundle/pydevd_cython.pyx":1107 * if not main_debugger.quitting: * # No need to reset frame.f_trace to keep the same trace function. * return self.trace_dispatch # <<<<<<<<<<<<<< @@ -22852,13 +22852,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa * if not is_call: frame.f_trace = NO_FTRACE */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1108, __pyx_L5_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1107, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L4_return; - /* "_pydevd_bundle/pydevd_cython.pyx":1106 + /* "_pydevd_bundle/pydevd_cython.pyx":1105 * * # if we are quitting, let's stop the tracing * if not main_debugger.quitting: # <<<<<<<<<<<<<< @@ -22867,7 +22867,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1110 + /* "_pydevd_bundle/pydevd_cython.pyx":1109 * return self.trace_dispatch * else: * if not is_call: frame.f_trace = NO_FTRACE # <<<<<<<<<<<<<< @@ -22877,13 +22877,13 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa /*else*/ { __pyx_t_9 = ((!(__pyx_v_is_call != 0)) != 0); if (__pyx_t_9) { - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1110, __pyx_L5_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1109, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_1) < 0) __PYX_ERR(0, 1110, __pyx_L5_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_1) < 0) __PYX_ERR(0, 1109, __pyx_L5_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - /* "_pydevd_bundle/pydevd_cython.pyx":1111 + /* "_pydevd_bundle/pydevd_cython.pyx":1110 * else: * if not is_call: frame.f_trace = NO_FTRACE * return None # <<<<<<<<<<<<<< @@ -22896,7 +22896,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } } - /* "_pydevd_bundle/pydevd_cython.pyx":1113 + /* "_pydevd_bundle/pydevd_cython.pyx":1112 * return None * finally: * info.is_tracing = False # <<<<<<<<<<<<<< @@ -22953,7 +22953,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispa } } - /* "_pydevd_bundle/pydevd_cython.pyx":621 + /* "_pydevd_bundle/pydevd_cython.pyx":620 * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * cpdef trace_dispatch(self, frame, str event, arg): # <<<<<<<<<<<<<< @@ -23058,17 +23058,17 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_21trace_di case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("trace_dispatch", 1, 3, 3, 1); __PYX_ERR(0, 621, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("trace_dispatch", 1, 3, 3, 1); __PYX_ERR(0, 620, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("trace_dispatch", 1, 3, 3, 2); __PYX_ERR(0, 621, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("trace_dispatch", 1, 3, 3, 2); __PYX_ERR(0, 620, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "trace_dispatch") < 0)) __PYX_ERR(0, 621, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "trace_dispatch") < 0)) __PYX_ERR(0, 620, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; @@ -23083,13 +23083,13 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_21trace_di } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("trace_dispatch", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 621, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("trace_dispatch", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 620, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.trace_dispatch", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_event), (&PyString_Type), 1, "event", 1))) __PYX_ERR(0, 621, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_event), (&PyString_Type), 1, "event", 1))) __PYX_ERR(0, 620, __pyx_L1_error) __pyx_r = __pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20trace_dispatch(((struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *)__pyx_v_self), __pyx_v_frame, __pyx_v_event, __pyx_v_arg); /* function exit code */ @@ -23110,7 +23110,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20trace_di int __pyx_clineno = 0; __Pyx_RefNannySetupContext("trace_dispatch", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispatch(__pyx_v_self, __pyx_v_frame, __pyx_v_event, __pyx_v_arg, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 621, __pyx_L1_error) + __pyx_t_1 = __pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispatch(__pyx_v_self, __pyx_v_frame, __pyx_v_event, __pyx_v_arg, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -23127,7 +23127,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20trace_di return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":1118 +/* "_pydevd_bundle/pydevd_cython.pyx":1117 * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * cdef _get_instructions(self, frame): # <<<<<<<<<<<<<< @@ -23149,7 +23149,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame__get_instru int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_get_instructions", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":1119 + /* "_pydevd_bundle/pydevd_cython.pyx":1118 * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * cdef _get_instructions(self, frame): * if self._instructions is None: # <<<<<<<<<<<<<< @@ -23160,19 +23160,19 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame__get_instru __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":1120 + /* "_pydevd_bundle/pydevd_cython.pyx":1119 * cdef _get_instructions(self, frame): * if self._instructions is None: * self._instructions = list(dis.get_instructions(frame.f_code)) # <<<<<<<<<<<<<< * return self._instructions * # ENDIF */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_dis); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1120, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_dis); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_get_instructions); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1120, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_get_instructions); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1120, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { @@ -23187,10 +23187,10 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame__get_instru __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1120, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = PySequence_List(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1120, __pyx_L1_error) + __pyx_t_5 = PySequence_List(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GIVEREF(__pyx_t_5); @@ -23199,7 +23199,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame__get_instru __pyx_v_self->_instructions = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1119 + /* "_pydevd_bundle/pydevd_cython.pyx":1118 * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * cdef _get_instructions(self, frame): * if self._instructions is None: # <<<<<<<<<<<<<< @@ -23208,7 +23208,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame__get_instru */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1121 + /* "_pydevd_bundle/pydevd_cython.pyx":1120 * if self._instructions is None: * self._instructions = list(dis.get_instructions(frame.f_code)) * return self._instructions # <<<<<<<<<<<<<< @@ -23220,7 +23220,7 @@ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame__get_instru __pyx_r = __pyx_v_self->_instructions; goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":1118 + /* "_pydevd_bundle/pydevd_cython.pyx":1117 * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * cdef _get_instructions(self, frame): # <<<<<<<<<<<<<< @@ -23559,7 +23559,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_24__setsta return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":1173 +/* "_pydevd_bundle/pydevd_cython.pyx":1172 * cdef class SafeCallWrapper: * cdef method_object * def __init__(self, method_object): # <<<<<<<<<<<<<< @@ -23596,7 +23596,7 @@ static int __pyx_pw_14_pydevd_bundle_13pydevd_cython_15SafeCallWrapper_1__init__ else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 1173, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 1172, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; @@ -23607,7 +23607,7 @@ static int __pyx_pw_14_pydevd_bundle_13pydevd_cython_15SafeCallWrapper_1__init__ } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1173, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1172, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.SafeCallWrapper.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -23625,7 +23625,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_15SafeCallWrapper___init__( __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":1174 + /* "_pydevd_bundle/pydevd_cython.pyx":1173 * cdef method_object * def __init__(self, method_object): * self.method_object = method_object # <<<<<<<<<<<<<< @@ -23638,7 +23638,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_15SafeCallWrapper___init__( __Pyx_DECREF(__pyx_v_self->method_object); __pyx_v_self->method_object = __pyx_v_method_object; - /* "_pydevd_bundle/pydevd_cython.pyx":1173 + /* "_pydevd_bundle/pydevd_cython.pyx":1172 * cdef class SafeCallWrapper: * cdef method_object * def __init__(self, method_object): # <<<<<<<<<<<<<< @@ -23652,7 +23652,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_15SafeCallWrapper___init__( return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":1175 +/* "_pydevd_bundle/pydevd_cython.pyx":1174 * def __init__(self, method_object): * self.method_object = method_object * def __call__(self, *args): # <<<<<<<<<<<<<< @@ -23691,7 +23691,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_15SafeCallWrapper_2__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__call__", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":1178 + /* "_pydevd_bundle/pydevd_cython.pyx":1177 * #Cannot use 'self' once inside the delegate call since we are borrowing the self reference f_trace field * #in the frame, and that reference might get destroyed by set trace on frame and parents * cdef PyObject* method_obj = <PyObject*> self.method_object # <<<<<<<<<<<<<< @@ -23700,7 +23700,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_15SafeCallWrapper_2__ */ __pyx_v_method_obj = ((PyObject *)__pyx_v_self->method_object); - /* "_pydevd_bundle/pydevd_cython.pyx":1179 + /* "_pydevd_bundle/pydevd_cython.pyx":1178 * #in the frame, and that reference might get destroyed by set trace on frame and parents * cdef PyObject* method_obj = <PyObject*> self.method_object * Py_INCREF(<object>method_obj) # <<<<<<<<<<<<<< @@ -23709,19 +23709,19 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_15SafeCallWrapper_2__ */ Py_INCREF(((PyObject *)__pyx_v_method_obj)); - /* "_pydevd_bundle/pydevd_cython.pyx":1180 + /* "_pydevd_bundle/pydevd_cython.pyx":1179 * cdef PyObject* method_obj = <PyObject*> self.method_object * Py_INCREF(<object>method_obj) * ret = (<object>method_obj)(*args) # <<<<<<<<<<<<<< * Py_XDECREF (method_obj) * return SafeCallWrapper(ret) if ret is not None else None */ - __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_method_obj), __pyx_v_args, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1180, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_method_obj), __pyx_v_args, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_ret = __pyx_t_1; __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1181 + /* "_pydevd_bundle/pydevd_cython.pyx":1180 * Py_INCREF(<object>method_obj) * ret = (<object>method_obj)(*args) * Py_XDECREF (method_obj) # <<<<<<<<<<<<<< @@ -23730,7 +23730,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_15SafeCallWrapper_2__ */ Py_XDECREF(__pyx_v_method_obj); - /* "_pydevd_bundle/pydevd_cython.pyx":1182 + /* "_pydevd_bundle/pydevd_cython.pyx":1181 * ret = (<object>method_obj)(*args) * Py_XDECREF (method_obj) * return SafeCallWrapper(ret) if ret is not None else None # <<<<<<<<<<<<<< @@ -23740,7 +23740,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_15SafeCallWrapper_2__ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = (__pyx_v_ret != Py_None); if ((__pyx_t_2 != 0)) { - __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper), __pyx_v_ret); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1182, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper), __pyx_v_ret); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __pyx_t_3; __pyx_t_3 = 0; @@ -23752,7 +23752,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_15SafeCallWrapper_2__ __pyx_t_1 = 0; goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":1175 + /* "_pydevd_bundle/pydevd_cython.pyx":1174 * def __init__(self, method_object): * self.method_object = method_object * def __call__(self, *args): # <<<<<<<<<<<<<< @@ -24066,7 +24066,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_15SafeCallWrapper_6__ return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":1187 +/* "_pydevd_bundle/pydevd_cython.pyx":1186 * * * def fix_top_level_trace_and_get_trace_func(py_db, frame): # <<<<<<<<<<<<<< @@ -24109,11 +24109,11 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_13fix_top_level_trace case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_frame)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("fix_top_level_trace_and_get_trace_func", 1, 2, 2, 1); __PYX_ERR(0, 1187, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("fix_top_level_trace_and_get_trace_func", 1, 2, 2, 1); __PYX_ERR(0, 1186, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fix_top_level_trace_and_get_trace_func") < 0)) __PYX_ERR(0, 1187, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fix_top_level_trace_and_get_trace_func") < 0)) __PYX_ERR(0, 1186, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -24126,7 +24126,7 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_13fix_top_level_trace } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("fix_top_level_trace_and_get_trace_func", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1187, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("fix_top_level_trace_and_get_trace_func", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1186, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.fix_top_level_trace_and_get_trace_func", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -24170,7 +24170,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fix_top_level_trace_and_get_trace_func", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":1198 + /* "_pydevd_bundle/pydevd_cython.pyx":1197 * # where more information is cached (and will also setup the tracing for * # frames where we should deal with unhandled exceptions). * thread = None # <<<<<<<<<<<<<< @@ -24180,7 +24180,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace __Pyx_INCREF(Py_None); __pyx_v_thread = Py_None; - /* "_pydevd_bundle/pydevd_cython.pyx":1202 + /* "_pydevd_bundle/pydevd_cython.pyx":1201 * # (i.e.: thread entry-points). * * f_unhandled = frame # <<<<<<<<<<<<<< @@ -24190,7 +24190,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace __Pyx_INCREF(__pyx_v_frame); __pyx_v_f_unhandled = __pyx_v_frame; - /* "_pydevd_bundle/pydevd_cython.pyx":1204 + /* "_pydevd_bundle/pydevd_cython.pyx":1203 * f_unhandled = frame * # print('called at', f_unhandled.f_code.co_name, f_unhandled.f_code.co_filename, f_unhandled.f_code.co_firstlineno) * force_only_unhandled_tracer = False # <<<<<<<<<<<<<< @@ -24199,7 +24199,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace */ __pyx_v_force_only_unhandled_tracer = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1205 + /* "_pydevd_bundle/pydevd_cython.pyx":1204 * # print('called at', f_unhandled.f_code.co_name, f_unhandled.f_code.co_filename, f_unhandled.f_code.co_firstlineno) * force_only_unhandled_tracer = False * while f_unhandled is not None: # <<<<<<<<<<<<<< @@ -24211,32 +24211,32 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace __pyx_t_2 = (__pyx_t_1 != 0); if (!__pyx_t_2) break; - /* "_pydevd_bundle/pydevd_cython.pyx":1206 + /* "_pydevd_bundle/pydevd_cython.pyx":1205 * force_only_unhandled_tracer = False * while f_unhandled is not None: * filename = f_unhandled.f_code.co_filename # <<<<<<<<<<<<<< * name = splitext(basename(filename))[0] * if name == 'threading': */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_f_unhandled, __pyx_n_s_f_code); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1206, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_f_unhandled, __pyx_n_s_f_code); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1206, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (!(likely(PyString_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(0, 1206, __pyx_L1_error) + if (!(likely(PyString_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(0, 1205, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_filename, ((PyObject*)__pyx_t_4)); __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1207 + /* "_pydevd_bundle/pydevd_cython.pyx":1206 * while f_unhandled is not None: * filename = f_unhandled.f_code.co_filename * name = splitext(basename(filename))[0] # <<<<<<<<<<<<<< * if name == 'threading': * if f_unhandled.f_code.co_name in ('__bootstrap', '_bootstrap'): */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_splitext); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1207, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_splitext); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_basename); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1207, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_basename); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { @@ -24250,7 +24250,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace } __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_v_filename) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_filename); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1207, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -24266,53 +24266,53 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1207, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1207, __pyx_L1_error) + __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!(likely(PyString_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 1207, __pyx_L1_error) + if (!(likely(PyString_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 1206, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_name, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1208 + /* "_pydevd_bundle/pydevd_cython.pyx":1207 * filename = f_unhandled.f_code.co_filename * name = splitext(basename(filename))[0] * if name == 'threading': # <<<<<<<<<<<<<< * if f_unhandled.f_code.co_name in ('__bootstrap', '_bootstrap'): * # We need __bootstrap_inner, not __bootstrap. */ - __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_name, __pyx_n_s_threading, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1208, __pyx_L1_error) + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_name, __pyx_n_s_threading, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1207, __pyx_L1_error) __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { - /* "_pydevd_bundle/pydevd_cython.pyx":1209 + /* "_pydevd_bundle/pydevd_cython.pyx":1208 * name = splitext(basename(filename))[0] * if name == 'threading': * if f_unhandled.f_code.co_name in ('__bootstrap', '_bootstrap'): # <<<<<<<<<<<<<< * # We need __bootstrap_inner, not __bootstrap. * return None, False */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_f_unhandled, __pyx_n_s_f_code); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1209, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_f_unhandled, __pyx_n_s_f_code); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_co_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1209, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_co_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_4, __pyx_n_s_bootstrap, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1209, __pyx_L1_error) + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_4, __pyx_n_s_bootstrap, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1208, __pyx_L1_error) if (!__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L7_bool_binop_done; } - __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_4, __pyx_n_s_bootstrap_2, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1209, __pyx_L1_error) + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_4, __pyx_n_s_bootstrap_2, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1208, __pyx_L1_error) __pyx_t_1 = __pyx_t_2; __pyx_L7_bool_binop_done:; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":1211 + /* "_pydevd_bundle/pydevd_cython.pyx":1210 * if f_unhandled.f_code.co_name in ('__bootstrap', '_bootstrap'): * # We need __bootstrap_inner, not __bootstrap. * return None, False # <<<<<<<<<<<<<< @@ -24324,7 +24324,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace __pyx_r = __pyx_tuple__6; goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":1209 + /* "_pydevd_bundle/pydevd_cython.pyx":1208 * name = splitext(basename(filename))[0] * if name == 'threading': * if f_unhandled.f_code.co_name in ('__bootstrap', '_bootstrap'): # <<<<<<<<<<<<<< @@ -24333,41 +24333,41 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1213 + /* "_pydevd_bundle/pydevd_cython.pyx":1212 * return None, False * * elif f_unhandled.f_code.co_name in ('__bootstrap_inner', '_bootstrap_inner'): # <<<<<<<<<<<<<< - * # Note: be careful not to use threading.currentThread to avoid creating a dummy thread. + * # Note: be careful not to use threading.current_thread to avoid creating a dummy thread. * t = f_unhandled.f_locals.get('self') */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_f_unhandled, __pyx_n_s_f_code); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1213, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_f_unhandled, __pyx_n_s_f_code); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_co_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1213, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_co_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_bootstrap_inner, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1213, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_bootstrap_inner, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1212, __pyx_L1_error) if (!__pyx_t_1) { } else { __pyx_t_2 = __pyx_t_1; goto __pyx_L9_bool_binop_done; } - __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_bootstrap_inner_2, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1213, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_bootstrap_inner_2, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1212, __pyx_L1_error) __pyx_t_2 = __pyx_t_1; __pyx_L9_bool_binop_done:; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { - /* "_pydevd_bundle/pydevd_cython.pyx":1215 + /* "_pydevd_bundle/pydevd_cython.pyx":1214 * elif f_unhandled.f_code.co_name in ('__bootstrap_inner', '_bootstrap_inner'): - * # Note: be careful not to use threading.currentThread to avoid creating a dummy thread. + * # Note: be careful not to use threading.current_thread to avoid creating a dummy thread. * t = f_unhandled.f_locals.get('self') # <<<<<<<<<<<<<< * force_only_unhandled_tracer = True * if t is not None and isinstance(t, threading.Thread): */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_f_unhandled, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1215, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_f_unhandled, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_get); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1215, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_get); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; @@ -24382,14 +24382,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_n_s_self) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_n_s_self); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1215, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_3); __pyx_t_3 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1216 - * # Note: be careful not to use threading.currentThread to avoid creating a dummy thread. + /* "_pydevd_bundle/pydevd_cython.pyx":1215 + * # Note: be careful not to use threading.current_thread to avoid creating a dummy thread. * t = f_unhandled.f_locals.get('self') * force_only_unhandled_tracer = True # <<<<<<<<<<<<<< * if t is not None and isinstance(t, threading.Thread): @@ -24397,7 +24397,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace */ __pyx_v_force_only_unhandled_tracer = 1; - /* "_pydevd_bundle/pydevd_cython.pyx":1217 + /* "_pydevd_bundle/pydevd_cython.pyx":1216 * t = f_unhandled.f_locals.get('self') * force_only_unhandled_tracer = True * if t is not None and isinstance(t, threading.Thread): # <<<<<<<<<<<<<< @@ -24411,19 +24411,19 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace __pyx_t_1 = __pyx_t_8; goto __pyx_L12_bool_binop_done; } - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_threading); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1217, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_threading); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_Thread); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1217, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_Thread); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_8 = PyObject_IsInstance(__pyx_v_t, __pyx_t_5); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 1217, __pyx_L1_error) + __pyx_t_8 = PyObject_IsInstance(__pyx_v_t, __pyx_t_5); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 1216, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_2 = (__pyx_t_8 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L12_bool_binop_done:; if (__pyx_t_1) { - /* "_pydevd_bundle/pydevd_cython.pyx":1218 + /* "_pydevd_bundle/pydevd_cython.pyx":1217 * force_only_unhandled_tracer = True * if t is not None and isinstance(t, threading.Thread): * thread = t # <<<<<<<<<<<<<< @@ -24433,7 +24433,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace __Pyx_INCREF(__pyx_v_t); __Pyx_DECREF_SET(__pyx_v_thread, __pyx_v_t); - /* "_pydevd_bundle/pydevd_cython.pyx":1219 + /* "_pydevd_bundle/pydevd_cython.pyx":1218 * if t is not None and isinstance(t, threading.Thread): * thread = t * break # <<<<<<<<<<<<<< @@ -24442,7 +24442,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace */ goto __pyx_L4_break; - /* "_pydevd_bundle/pydevd_cython.pyx":1217 + /* "_pydevd_bundle/pydevd_cython.pyx":1216 * t = f_unhandled.f_locals.get('self') * force_only_unhandled_tracer = True * if t is not None and isinstance(t, threading.Thread): # <<<<<<<<<<<<<< @@ -24451,16 +24451,16 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1213 + /* "_pydevd_bundle/pydevd_cython.pyx":1212 * return None, False * * elif f_unhandled.f_code.co_name in ('__bootstrap_inner', '_bootstrap_inner'): # <<<<<<<<<<<<<< - * # Note: be careful not to use threading.currentThread to avoid creating a dummy thread. + * # Note: be careful not to use threading.current_thread to avoid creating a dummy thread. * t = f_unhandled.f_locals.get('self') */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1208 + /* "_pydevd_bundle/pydevd_cython.pyx":1207 * filename = f_unhandled.f_code.co_filename * name = splitext(basename(filename))[0] * if name == 'threading': # <<<<<<<<<<<<<< @@ -24470,34 +24470,34 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace goto __pyx_L5; } - /* "_pydevd_bundle/pydevd_cython.pyx":1221 + /* "_pydevd_bundle/pydevd_cython.pyx":1220 * break * * elif name == 'pydev_monkey': # <<<<<<<<<<<<<< * if f_unhandled.f_code.co_name == '__call__': * force_only_unhandled_tracer = True */ - __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_name, __pyx_n_s_pydev_monkey, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1221, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_name, __pyx_n_s_pydev_monkey, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1220, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":1222 + /* "_pydevd_bundle/pydevd_cython.pyx":1221 * * elif name == 'pydev_monkey': * if f_unhandled.f_code.co_name == '__call__': # <<<<<<<<<<<<<< * force_only_unhandled_tracer = True * break */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_f_unhandled, __pyx_n_s_f_code); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1222, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_f_unhandled, __pyx_n_s_f_code); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_co_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1222, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_co_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_call_2, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1222, __pyx_L1_error) + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_call_2, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1221, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":1223 + /* "_pydevd_bundle/pydevd_cython.pyx":1222 * elif name == 'pydev_monkey': * if f_unhandled.f_code.co_name == '__call__': * force_only_unhandled_tracer = True # <<<<<<<<<<<<<< @@ -24506,7 +24506,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace */ __pyx_v_force_only_unhandled_tracer = 1; - /* "_pydevd_bundle/pydevd_cython.pyx":1224 + /* "_pydevd_bundle/pydevd_cython.pyx":1223 * if f_unhandled.f_code.co_name == '__call__': * force_only_unhandled_tracer = True * break # <<<<<<<<<<<<<< @@ -24515,7 +24515,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace */ goto __pyx_L4_break; - /* "_pydevd_bundle/pydevd_cython.pyx":1222 + /* "_pydevd_bundle/pydevd_cython.pyx":1221 * * elif name == 'pydev_monkey': * if f_unhandled.f_code.co_name == '__call__': # <<<<<<<<<<<<<< @@ -24524,7 +24524,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1221 + /* "_pydevd_bundle/pydevd_cython.pyx":1220 * break * * elif name == 'pydev_monkey': # <<<<<<<<<<<<<< @@ -24534,43 +24534,43 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace goto __pyx_L5; } - /* "_pydevd_bundle/pydevd_cython.pyx":1226 + /* "_pydevd_bundle/pydevd_cython.pyx":1225 * break * * elif name == 'pydevd': # <<<<<<<<<<<<<< * if f_unhandled.f_code.co_name in ('run', 'main'): * # We need to get to _exec */ - __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_name, __pyx_n_s_pydevd, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1226, __pyx_L1_error) + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_name, __pyx_n_s_pydevd, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1225, __pyx_L1_error) __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { - /* "_pydevd_bundle/pydevd_cython.pyx":1227 + /* "_pydevd_bundle/pydevd_cython.pyx":1226 * * elif name == 'pydevd': * if f_unhandled.f_code.co_name in ('run', 'main'): # <<<<<<<<<<<<<< * # We need to get to _exec * return None, False */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_f_unhandled, __pyx_n_s_f_code); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1227, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_f_unhandled, __pyx_n_s_f_code); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_co_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1227, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_co_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_5, __pyx_n_s_run, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1227, __pyx_L1_error) + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_5, __pyx_n_s_run, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1226, __pyx_L1_error) if (!__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L16_bool_binop_done; } - __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_5, __pyx_n_s_main, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1227, __pyx_L1_error) + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_5, __pyx_n_s_main, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1226, __pyx_L1_error) __pyx_t_1 = __pyx_t_2; __pyx_L16_bool_binop_done:; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":1229 + /* "_pydevd_bundle/pydevd_cython.pyx":1228 * if f_unhandled.f_code.co_name in ('run', 'main'): * # We need to get to _exec * return None, False # <<<<<<<<<<<<<< @@ -24582,7 +24582,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace __pyx_r = __pyx_tuple__6; goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":1227 + /* "_pydevd_bundle/pydevd_cython.pyx":1226 * * elif name == 'pydevd': * if f_unhandled.f_code.co_name in ('run', 'main'): # <<<<<<<<<<<<<< @@ -24591,23 +24591,23 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1231 + /* "_pydevd_bundle/pydevd_cython.pyx":1230 * return None, False * * if f_unhandled.f_code.co_name == '_exec': # <<<<<<<<<<<<<< * force_only_unhandled_tracer = True * break */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_f_unhandled, __pyx_n_s_f_code); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1231, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_f_unhandled, __pyx_n_s_f_code); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_co_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1231, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_co_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_exec, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1231, __pyx_L1_error) + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_exec, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1230, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":1232 + /* "_pydevd_bundle/pydevd_cython.pyx":1231 * * if f_unhandled.f_code.co_name == '_exec': * force_only_unhandled_tracer = True # <<<<<<<<<<<<<< @@ -24616,7 +24616,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace */ __pyx_v_force_only_unhandled_tracer = 1; - /* "_pydevd_bundle/pydevd_cython.pyx":1233 + /* "_pydevd_bundle/pydevd_cython.pyx":1232 * if f_unhandled.f_code.co_name == '_exec': * force_only_unhandled_tracer = True * break # <<<<<<<<<<<<<< @@ -24625,7 +24625,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace */ goto __pyx_L4_break; - /* "_pydevd_bundle/pydevd_cython.pyx":1231 + /* "_pydevd_bundle/pydevd_cython.pyx":1230 * return None, False * * if f_unhandled.f_code.co_name == '_exec': # <<<<<<<<<<<<<< @@ -24634,7 +24634,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1226 + /* "_pydevd_bundle/pydevd_cython.pyx":1225 * break * * elif name == 'pydevd': # <<<<<<<<<<<<<< @@ -24644,21 +24644,21 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace goto __pyx_L5; } - /* "_pydevd_bundle/pydevd_cython.pyx":1235 + /* "_pydevd_bundle/pydevd_cython.pyx":1234 * break * * elif f_unhandled.f_back is None: # <<<<<<<<<<<<<< * break * */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_f_unhandled, __pyx_n_s_f_back); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1235, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_f_unhandled, __pyx_n_s_f_back); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = (__pyx_t_3 == Py_None); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { - /* "_pydevd_bundle/pydevd_cython.pyx":1236 + /* "_pydevd_bundle/pydevd_cython.pyx":1235 * * elif f_unhandled.f_back is None: * break # <<<<<<<<<<<<<< @@ -24667,7 +24667,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace */ goto __pyx_L4_break; - /* "_pydevd_bundle/pydevd_cython.pyx":1235 + /* "_pydevd_bundle/pydevd_cython.pyx":1234 * break * * elif f_unhandled.f_back is None: # <<<<<<<<<<<<<< @@ -24677,21 +24677,21 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace } __pyx_L5:; - /* "_pydevd_bundle/pydevd_cython.pyx":1238 + /* "_pydevd_bundle/pydevd_cython.pyx":1237 * break * * f_unhandled = f_unhandled.f_back # <<<<<<<<<<<<<< * * if thread is None: */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_f_unhandled, __pyx_n_s_f_back); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1238, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_f_unhandled, __pyx_n_s_f_back); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF_SET(__pyx_v_f_unhandled, __pyx_t_3); __pyx_t_3 = 0; } __pyx_L4_break:; - /* "_pydevd_bundle/pydevd_cython.pyx":1240 + /* "_pydevd_bundle/pydevd_cython.pyx":1239 * f_unhandled = f_unhandled.f_back * * if thread is None: # <<<<<<<<<<<<<< @@ -24702,36 +24702,36 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":1243 + /* "_pydevd_bundle/pydevd_cython.pyx":1242 * # Important: don't call threadingCurrentThread if we're in the threading module * # to avoid creating dummy threads. * if threading_get_ident is not None: # <<<<<<<<<<<<<< * thread = threading._active.get(threading_get_ident()) * if thread is None: */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_threading_get_ident); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1243, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_threading_get_ident); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = (__pyx_t_3 != Py_None); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { - /* "_pydevd_bundle/pydevd_cython.pyx":1244 + /* "_pydevd_bundle/pydevd_cython.pyx":1243 * # to avoid creating dummy threads. * if threading_get_ident is not None: * thread = threading._active.get(threading_get_ident()) # <<<<<<<<<<<<<< * if thread is None: * if IS_WINDOWS and f_unhandled and not f_unhandled.f_code.co_filename.startswith('threading'): */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_threading); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1244, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_threading); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_active); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1244, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_active); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_get); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1244, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_get); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_threading_get_ident); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1244, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_threading_get_ident); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { @@ -24745,7 +24745,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace } __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1244, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -24761,13 +24761,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1244, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF_SET(__pyx_v_thread, __pyx_t_3); __pyx_t_3 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1245 + /* "_pydevd_bundle/pydevd_cython.pyx":1244 * if threading_get_ident is not None: * thread = threading._active.get(threading_get_ident()) * if thread is None: # <<<<<<<<<<<<<< @@ -24778,34 +24778,34 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":1246 + /* "_pydevd_bundle/pydevd_cython.pyx":1245 * thread = threading._active.get(threading_get_ident()) * if thread is None: * if IS_WINDOWS and f_unhandled and not f_unhandled.f_code.co_filename.startswith('threading'): # <<<<<<<<<<<<<< * # When attaching to a process on Windows, its main thread ID may not be in `threading._active` * # unless the module imports `threading` by its own. */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_IS_WINDOWS); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1246, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_IS_WINDOWS); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1246, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1245, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_1) { } else { __pyx_t_2 = __pyx_t_1; goto __pyx_L23_bool_binop_done; } - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_f_unhandled); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1246, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_f_unhandled); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1245, __pyx_L1_error) if (__pyx_t_1) { } else { __pyx_t_2 = __pyx_t_1; goto __pyx_L23_bool_binop_done; } - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_f_unhandled, __pyx_n_s_f_code); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1246, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_f_unhandled, __pyx_n_s_f_code); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1246, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_startswith); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1246, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_startswith); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; @@ -24820,24 +24820,24 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_n_s_threading) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_n_s_threading); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1246, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1246, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1245, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_8 = ((!__pyx_t_1) != 0); __pyx_t_2 = __pyx_t_8; __pyx_L23_bool_binop_done:; if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":1249 + /* "_pydevd_bundle/pydevd_cython.pyx":1248 * # When attaching to a process on Windows, its main thread ID may not be in `threading._active` * # unless the module imports `threading` by its own. * thread = threadingCurrentThread() # <<<<<<<<<<<<<< * else: * return None, False */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_threadingCurrentThread); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1249, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_threadingCurrentThread); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { @@ -24851,13 +24851,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1249, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF_SET(__pyx_v_thread, __pyx_t_3); __pyx_t_3 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1246 + /* "_pydevd_bundle/pydevd_cython.pyx":1245 * thread = threading._active.get(threading_get_ident()) * if thread is None: * if IS_WINDOWS and f_unhandled and not f_unhandled.f_code.co_filename.startswith('threading'): # <<<<<<<<<<<<<< @@ -24867,7 +24867,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace goto __pyx_L22; } - /* "_pydevd_bundle/pydevd_cython.pyx":1251 + /* "_pydevd_bundle/pydevd_cython.pyx":1250 * thread = threadingCurrentThread() * else: * return None, False # <<<<<<<<<<<<<< @@ -24882,7 +24882,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace } __pyx_L22:; - /* "_pydevd_bundle/pydevd_cython.pyx":1245 + /* "_pydevd_bundle/pydevd_cython.pyx":1244 * if threading_get_ident is not None: * thread = threading._active.get(threading_get_ident()) * if thread is None: # <<<<<<<<<<<<<< @@ -24891,7 +24891,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1243 + /* "_pydevd_bundle/pydevd_cython.pyx":1242 * # Important: don't call threadingCurrentThread if we're in the threading module * # to avoid creating dummy threads. * if threading_get_ident is not None: # <<<<<<<<<<<<<< @@ -24901,7 +24901,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace goto __pyx_L20; } - /* "_pydevd_bundle/pydevd_cython.pyx":1254 + /* "_pydevd_bundle/pydevd_cython.pyx":1253 * else: * # Jython does not have threading.get_ident(). * thread = threadingCurrentThread() # <<<<<<<<<<<<<< @@ -24909,7 +24909,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace * if getattr(thread, 'pydev_do_not_trace', None): */ /*else*/ { - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_threadingCurrentThread); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1254, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_threadingCurrentThread); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { @@ -24923,7 +24923,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1254, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF_SET(__pyx_v_thread, __pyx_t_3); @@ -24931,7 +24931,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace } __pyx_L20:; - /* "_pydevd_bundle/pydevd_cython.pyx":1240 + /* "_pydevd_bundle/pydevd_cython.pyx":1239 * f_unhandled = f_unhandled.f_back * * if thread is None: # <<<<<<<<<<<<<< @@ -24940,27 +24940,27 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1256 + /* "_pydevd_bundle/pydevd_cython.pyx":1255 * thread = threadingCurrentThread() * * if getattr(thread, 'pydev_do_not_trace', None): # <<<<<<<<<<<<<< * SetTrace(None) * return None, False */ - __pyx_t_3 = __Pyx_GetAttr3(__pyx_v_thread, __pyx_n_s_pydev_do_not_trace, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1256, __pyx_L1_error) + __pyx_t_3 = __Pyx_GetAttr3(__pyx_v_thread, __pyx_n_s_pydev_do_not_trace, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1256, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1255, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":1257 + /* "_pydevd_bundle/pydevd_cython.pyx":1256 * * if getattr(thread, 'pydev_do_not_trace', None): * SetTrace(None) # <<<<<<<<<<<<<< * return None, False * */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_SetTrace); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1257, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_SetTrace); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { @@ -24974,12 +24974,12 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, Py_None) : __Pyx_PyObject_CallOneArg(__pyx_t_5, Py_None); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1257, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1258 + /* "_pydevd_bundle/pydevd_cython.pyx":1257 * if getattr(thread, 'pydev_do_not_trace', None): * SetTrace(None) * return None, False # <<<<<<<<<<<<<< @@ -24991,7 +24991,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace __pyx_r = __pyx_tuple__6; goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":1256 + /* "_pydevd_bundle/pydevd_cython.pyx":1255 * thread = threadingCurrentThread() * * if getattr(thread, 'pydev_do_not_trace', None): # <<<<<<<<<<<<<< @@ -25000,7 +25000,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1260 + /* "_pydevd_bundle/pydevd_cython.pyx":1259 * return None, False * * try: # <<<<<<<<<<<<<< @@ -25016,19 +25016,19 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace __Pyx_XGOTREF(__pyx_t_11); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":1261 + /* "_pydevd_bundle/pydevd_cython.pyx":1260 * * try: * additional_info = thread.additional_info # <<<<<<<<<<<<<< * if additional_info is None: * raise AttributeError() */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_thread, __pyx_n_s_additional_info); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1261, __pyx_L27_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_thread, __pyx_n_s_additional_info); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1260, __pyx_L27_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_additional_info = __pyx_t_3; __pyx_t_3 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1262 + /* "_pydevd_bundle/pydevd_cython.pyx":1261 * try: * additional_info = thread.additional_info * if additional_info is None: # <<<<<<<<<<<<<< @@ -25039,20 +25039,20 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace __pyx_t_8 = (__pyx_t_2 != 0); if (unlikely(__pyx_t_8)) { - /* "_pydevd_bundle/pydevd_cython.pyx":1263 + /* "_pydevd_bundle/pydevd_cython.pyx":1262 * additional_info = thread.additional_info * if additional_info is None: * raise AttributeError() # <<<<<<<<<<<<<< * except: * additional_info = set_additional_thread_info(thread) */ - __pyx_t_3 = __Pyx_PyObject_CallNoArg(__pyx_builtin_AttributeError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1263, __pyx_L27_error) + __pyx_t_3 = __Pyx_PyObject_CallNoArg(__pyx_builtin_AttributeError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1262, __pyx_L27_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 1263, __pyx_L27_error) + __PYX_ERR(0, 1262, __pyx_L27_error) - /* "_pydevd_bundle/pydevd_cython.pyx":1262 + /* "_pydevd_bundle/pydevd_cython.pyx":1261 * try: * additional_info = thread.additional_info * if additional_info is None: # <<<<<<<<<<<<<< @@ -25061,7 +25061,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1260 + /* "_pydevd_bundle/pydevd_cython.pyx":1259 * return None, False * * try: # <<<<<<<<<<<<<< @@ -25080,7 +25080,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1264 + /* "_pydevd_bundle/pydevd_cython.pyx":1263 * if additional_info is None: * raise AttributeError() * except: # <<<<<<<<<<<<<< @@ -25089,19 +25089,19 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.fix_top_level_trace_and_get_trace_func", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_5, &__pyx_t_4) < 0) __PYX_ERR(0, 1264, __pyx_L29_except_error) + if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_5, &__pyx_t_4) < 0) __PYX_ERR(0, 1263, __pyx_L29_except_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_4); - /* "_pydevd_bundle/pydevd_cython.pyx":1265 + /* "_pydevd_bundle/pydevd_cython.pyx":1264 * raise AttributeError() * except: * additional_info = set_additional_thread_info(thread) # <<<<<<<<<<<<<< * * # print('enter thread tracer', thread, get_current_thread_id(thread)) */ - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_set_additional_thread_info); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1265, __pyx_L29_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_set_additional_thread_info); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1264, __pyx_L29_except_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { @@ -25115,7 +25115,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace } __pyx_t_6 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_12, __pyx_v_thread) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_thread); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1265, __pyx_L29_except_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1264, __pyx_L29_except_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF_SET(__pyx_v_additional_info, __pyx_t_6); @@ -25127,7 +25127,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace } __pyx_L29_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":1260 + /* "_pydevd_bundle/pydevd_cython.pyx":1259 * return None, False * * try: # <<<<<<<<<<<<<< @@ -25147,18 +25147,18 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace __pyx_L32_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":1268 + /* "_pydevd_bundle/pydevd_cython.pyx":1267 * * # print('enter thread tracer', thread, get_current_thread_id(thread)) * args = (py_db, thread, additional_info, global_cache_skips, global_cache_frame_skips) # <<<<<<<<<<<<<< * * if f_unhandled is not None: */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_global_cache_skips); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1268, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_global_cache_skips); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_global_cache_frame_skips); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1268, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_global_cache_frame_skips); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = PyTuple_New(5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1268, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_py_db); __Pyx_GIVEREF(__pyx_v_py_db); @@ -25178,7 +25178,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace __pyx_v_args = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1270 + /* "_pydevd_bundle/pydevd_cython.pyx":1269 * args = (py_db, thread, additional_info, global_cache_skips, global_cache_frame_skips) * * if f_unhandled is not None: # <<<<<<<<<<<<<< @@ -25189,14 +25189,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace __pyx_t_2 = (__pyx_t_8 != 0); if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":1271 + /* "_pydevd_bundle/pydevd_cython.pyx":1270 * * if f_unhandled is not None: * if f_unhandled.f_back is None and not force_only_unhandled_tracer: # <<<<<<<<<<<<<< * # Happens when we attach to a running program. * top_level_thread_tracer = TopLevelThreadTracerNoBackFrame(ThreadTracer(args), args) */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_f_unhandled, __pyx_n_s_f_back); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1271, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_f_unhandled, __pyx_n_s_f_back); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = (__pyx_t_3 == Py_None); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -25211,16 +25211,16 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace __pyx_L38_bool_binop_done:; if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":1273 + /* "_pydevd_bundle/pydevd_cython.pyx":1272 * if f_unhandled.f_back is None and not force_only_unhandled_tracer: * # Happens when we attach to a running program. * top_level_thread_tracer = TopLevelThreadTracerNoBackFrame(ThreadTracer(args), args) # <<<<<<<<<<<<<< * else: * # Stop in some internal place to report about unhandled exceptions */ - __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_ThreadTracer), __pyx_v_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1273, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_ThreadTracer), __pyx_v_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1273, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); @@ -25228,13 +25228,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace __Pyx_GIVEREF(__pyx_v_args); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_args); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerNoBackFrame), __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1273, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerNoBackFrame), __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_top_level_thread_tracer = __pyx_t_3; __pyx_t_3 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1271 + /* "_pydevd_bundle/pydevd_cython.pyx":1270 * * if f_unhandled is not None: * if f_unhandled.f_back is None and not force_only_unhandled_tracer: # <<<<<<<<<<<<<< @@ -25244,7 +25244,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace goto __pyx_L37; } - /* "_pydevd_bundle/pydevd_cython.pyx":1276 + /* "_pydevd_bundle/pydevd_cython.pyx":1275 * else: * # Stop in some internal place to report about unhandled exceptions * top_level_thread_tracer = TopLevelThreadTracerOnlyUnhandledExceptions(args) # <<<<<<<<<<<<<< @@ -25252,30 +25252,30 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace * thread._top_level_thread_tracer = top_level_thread_tracer # Hack for cython to keep it alive while the thread is alive (just the method in the SetTrace is not enough). */ /*else*/ { - __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerOnlyUnhandledExceptions), __pyx_v_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1276, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerOnlyUnhandledExceptions), __pyx_v_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_top_level_thread_tracer = __pyx_t_3; __pyx_t_3 = 0; } __pyx_L37:; - /* "_pydevd_bundle/pydevd_cython.pyx":1278 + /* "_pydevd_bundle/pydevd_cython.pyx":1277 * top_level_thread_tracer = TopLevelThreadTracerOnlyUnhandledExceptions(args) * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * thread._top_level_thread_tracer = top_level_thread_tracer # Hack for cython to keep it alive while the thread is alive (just the method in the SetTrace is not enough). # <<<<<<<<<<<<<< * # ELSE * # ENDIF */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_thread, __pyx_n_s_top_level_thread_tracer, __pyx_v_top_level_thread_tracer) < 0) __PYX_ERR(0, 1278, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_thread, __pyx_n_s_top_level_thread_tracer, __pyx_v_top_level_thread_tracer) < 0) __PYX_ERR(0, 1277, __pyx_L1_error) - /* "_pydevd_bundle/pydevd_cython.pyx":1282 + /* "_pydevd_bundle/pydevd_cython.pyx":1281 * # ENDIF * # print(' --> found to trace unhandled', f_unhandled.f_code.co_name, f_unhandled.f_code.co_filename, f_unhandled.f_code.co_firstlineno) * f_trace = top_level_thread_tracer.get_trace_dispatch_func() # <<<<<<<<<<<<<< * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * f_unhandled.f_trace = SafeCallWrapper(f_trace) */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_top_level_thread_tracer, __pyx_n_s_get_trace_dispatch_func); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1282, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_top_level_thread_tracer, __pyx_n_s_get_trace_dispatch_func); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { @@ -25289,25 +25289,25 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1282, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_f_trace = __pyx_t_3; __pyx_t_3 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1284 + /* "_pydevd_bundle/pydevd_cython.pyx":1283 * f_trace = top_level_thread_tracer.get_trace_dispatch_func() * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * f_unhandled.f_trace = SafeCallWrapper(f_trace) # <<<<<<<<<<<<<< * # ELSE * # f_unhandled.f_trace = f_trace */ - __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper), __pyx_v_f_trace); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1284, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper), __pyx_v_f_trace); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_f_unhandled, __pyx_n_s_f_trace, __pyx_t_3) < 0) __PYX_ERR(0, 1284, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_f_unhandled, __pyx_n_s_f_trace, __pyx_t_3) < 0) __PYX_ERR(0, 1283, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1289 + /* "_pydevd_bundle/pydevd_cython.pyx":1288 * # ENDIF * * if frame is f_unhandled: # <<<<<<<<<<<<<< @@ -25318,7 +25318,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { - /* "_pydevd_bundle/pydevd_cython.pyx":1290 + /* "_pydevd_bundle/pydevd_cython.pyx":1289 * * if frame is f_unhandled: * return f_unhandled.f_trace, False # <<<<<<<<<<<<<< @@ -25326,9 +25326,9 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace * thread_tracer = ThreadTracer(args) */ __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_f_unhandled, __pyx_n_s_f_trace); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1290, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_f_unhandled, __pyx_n_s_f_trace); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1290, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); @@ -25340,7 +25340,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace __pyx_t_5 = 0; goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":1289 + /* "_pydevd_bundle/pydevd_cython.pyx":1288 * # ENDIF * * if frame is f_unhandled: # <<<<<<<<<<<<<< @@ -25349,7 +25349,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1270 + /* "_pydevd_bundle/pydevd_cython.pyx":1269 * args = (py_db, thread, additional_info, global_cache_skips, global_cache_frame_skips) * * if f_unhandled is not None: # <<<<<<<<<<<<<< @@ -25358,28 +25358,28 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1292 + /* "_pydevd_bundle/pydevd_cython.pyx":1291 * return f_unhandled.f_trace, False * * thread_tracer = ThreadTracer(args) # <<<<<<<<<<<<<< * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * thread._tracer = thread_tracer # Hack for cython to keep it alive while the thread is alive (just the method in the SetTrace is not enough). */ - __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_ThreadTracer), __pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1292, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_ThreadTracer), __pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_v_thread_tracer = ((struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_ThreadTracer *)__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1294 + /* "_pydevd_bundle/pydevd_cython.pyx":1293 * thread_tracer = ThreadTracer(args) * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * thread._tracer = thread_tracer # Hack for cython to keep it alive while the thread is alive (just the method in the SetTrace is not enough). # <<<<<<<<<<<<<< * # ELSE * # ENDIF */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_thread, __pyx_n_s_tracer, ((PyObject *)__pyx_v_thread_tracer)) < 0) __PYX_ERR(0, 1294, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_thread, __pyx_n_s_tracer, ((PyObject *)__pyx_v_thread_tracer)) < 0) __PYX_ERR(0, 1293, __pyx_L1_error) - /* "_pydevd_bundle/pydevd_cython.pyx":1297 + /* "_pydevd_bundle/pydevd_cython.pyx":1296 * # ELSE * # ENDIF * return thread_tracer, True # <<<<<<<<<<<<<< @@ -25387,7 +25387,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1297, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(((PyObject *)__pyx_v_thread_tracer)); __Pyx_GIVEREF(((PyObject *)__pyx_v_thread_tracer)); @@ -25399,7 +25399,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace __pyx_t_5 = 0; goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":1187 + /* "_pydevd_bundle/pydevd_cython.pyx":1186 * * * def fix_top_level_trace_and_get_trace_func(py_db, frame): # <<<<<<<<<<<<<< @@ -25433,7 +25433,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12fix_top_level_trace return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":1301 +/* "_pydevd_bundle/pydevd_cython.pyx":1300 * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * def trace_dispatch(py_db, frame, str event, arg): # <<<<<<<<<<<<<< @@ -25482,23 +25482,23 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_15trace_dispatch(PyOb case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_frame)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("trace_dispatch", 1, 4, 4, 1); __PYX_ERR(0, 1301, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("trace_dispatch", 1, 4, 4, 1); __PYX_ERR(0, 1300, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("trace_dispatch", 1, 4, 4, 2); __PYX_ERR(0, 1301, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("trace_dispatch", 1, 4, 4, 2); __PYX_ERR(0, 1300, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("trace_dispatch", 1, 4, 4, 3); __PYX_ERR(0, 1301, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("trace_dispatch", 1, 4, 4, 3); __PYX_ERR(0, 1300, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "trace_dispatch") < 0)) __PYX_ERR(0, 1301, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "trace_dispatch") < 0)) __PYX_ERR(0, 1300, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { goto __pyx_L5_argtuple_error; @@ -25515,13 +25515,13 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_15trace_dispatch(PyOb } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("trace_dispatch", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1301, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("trace_dispatch", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1300, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.trace_dispatch", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_event), (&PyString_Type), 1, "event", 1))) __PYX_ERR(0, 1301, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_event), (&PyString_Type), 1, "event", 1))) __PYX_ERR(0, 1300, __pyx_L1_error) __pyx_r = __pyx_pf_14_pydevd_bundle_13pydevd_cython_14trace_dispatch(__pyx_self, __pyx_v_py_db, __pyx_v_frame, __pyx_v_event, __pyx_v_arg); /* function exit code */ @@ -25552,14 +25552,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_14trace_dispatch(CYTH int __pyx_clineno = 0; __Pyx_RefNannySetupContext("trace_dispatch", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":1305 + /* "_pydevd_bundle/pydevd_cython.pyx":1304 * # def trace_dispatch(py_db, frame, event, arg): * # ENDIF * if fix_top_level_trace_and_get_trace_func is None or threadingCurrentThread is None or splitext is None: # <<<<<<<<<<<<<< * # When the application is being exited with live daemon threads, it's possible that some * # of the names we require are already None, so, check that tokens we need are there. */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fix_top_level_trace_and_get_trac); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1305, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fix_top_level_trace_and_get_trac); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = (__pyx_t_2 == Py_None); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -25569,7 +25569,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_14trace_dispatch(CYTH __pyx_t_1 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_threadingCurrentThread); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1305, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_threadingCurrentThread); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = (__pyx_t_2 == Py_None); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -25579,7 +25579,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_14trace_dispatch(CYTH __pyx_t_1 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_splitext); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1305, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_splitext); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = (__pyx_t_2 == Py_None); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -25588,7 +25588,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_14trace_dispatch(CYTH __pyx_L4_bool_binop_done:; if (__pyx_t_1) { - /* "_pydevd_bundle/pydevd_cython.pyx":1323 + /* "_pydevd_bundle/pydevd_cython.pyx":1322 * # frame = frame.f_back * # print(msg) * return None # <<<<<<<<<<<<<< @@ -25599,7 +25599,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_14trace_dispatch(CYTH __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":1305 + /* "_pydevd_bundle/pydevd_cython.pyx":1304 * # def trace_dispatch(py_db, frame, event, arg): * # ENDIF * if fix_top_level_trace_and_get_trace_func is None or threadingCurrentThread is None or splitext is None: # <<<<<<<<<<<<<< @@ -25608,14 +25608,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_14trace_dispatch(CYTH */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1324 + /* "_pydevd_bundle/pydevd_cython.pyx":1323 * # print(msg) * return None * thread_trace_func, apply_to_settrace = fix_top_level_trace_and_get_trace_func(py_db, frame) # <<<<<<<<<<<<<< * if thread_trace_func is None: * if event != 'call': frame.f_trace = NO_FTRACE */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_fix_top_level_trace_and_get_trac); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1324, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_fix_top_level_trace_and_get_trac); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; __pyx_t_7 = 0; @@ -25632,7 +25632,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_14trace_dispatch(CYTH #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_py_db, __pyx_v_frame}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1324, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1323, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -25640,13 +25640,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_14trace_dispatch(CYTH #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_py_db, __pyx_v_frame}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1324, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1323, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1324, __pyx_L1_error) + __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL; @@ -25657,7 +25657,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_14trace_dispatch(CYTH __Pyx_INCREF(__pyx_v_frame); __Pyx_GIVEREF(__pyx_v_frame); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_frame); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1324, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } @@ -25668,7 +25668,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_14trace_dispatch(CYTH if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 1324, __pyx_L1_error) + __PYX_ERR(0, 1323, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -25681,15 +25681,15 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_14trace_dispatch(CYTH __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_8); #else - __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1324, __pyx_L1_error) + __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1324, __pyx_L1_error) + __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; - __pyx_t_6 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1324, __pyx_L1_error) + __pyx_t_6 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_9 = Py_TYPE(__pyx_t_6)->tp_iternext; @@ -25697,7 +25697,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_14trace_dispatch(CYTH __Pyx_GOTREF(__pyx_t_5); index = 1; __pyx_t_8 = __pyx_t_9(__pyx_t_6); if (unlikely(!__pyx_t_8)) goto __pyx_L7_unpacking_failed; __Pyx_GOTREF(__pyx_t_8); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_6), 2) < 0) __PYX_ERR(0, 1324, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_6), 2) < 0) __PYX_ERR(0, 1323, __pyx_L1_error) __pyx_t_9 = NULL; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L8_unpacking_done; @@ -25705,7 +25705,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_14trace_dispatch(CYTH __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_9 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 1324, __pyx_L1_error) + __PYX_ERR(0, 1323, __pyx_L1_error) __pyx_L8_unpacking_done:; } __pyx_v_thread_trace_func = __pyx_t_5; @@ -25713,7 +25713,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_14trace_dispatch(CYTH __pyx_v_apply_to_settrace = __pyx_t_8; __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1325 + /* "_pydevd_bundle/pydevd_cython.pyx":1324 * return None * thread_trace_func, apply_to_settrace = fix_top_level_trace_and_get_trace_func(py_db, frame) * if thread_trace_func is None: # <<<<<<<<<<<<<< @@ -25724,23 +25724,23 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_14trace_dispatch(CYTH __pyx_t_4 = (__pyx_t_1 != 0); if (__pyx_t_4) { - /* "_pydevd_bundle/pydevd_cython.pyx":1326 + /* "_pydevd_bundle/pydevd_cython.pyx":1325 * thread_trace_func, apply_to_settrace = fix_top_level_trace_and_get_trace_func(py_db, frame) * if thread_trace_func is None: * if event != 'call': frame.f_trace = NO_FTRACE # <<<<<<<<<<<<<< * return None * if apply_to_settrace: */ - __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_NE)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1326, __pyx_L1_error) + __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_NE)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1325, __pyx_L1_error) __pyx_t_1 = (__pyx_t_4 != 0); if (__pyx_t_1) { - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1326, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_2) < 0) __PYX_ERR(0, 1326, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_2) < 0) __PYX_ERR(0, 1325, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - /* "_pydevd_bundle/pydevd_cython.pyx":1327 + /* "_pydevd_bundle/pydevd_cython.pyx":1326 * if thread_trace_func is None: * if event != 'call': frame.f_trace = NO_FTRACE * return None # <<<<<<<<<<<<<< @@ -25751,7 +25751,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_14trace_dispatch(CYTH __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":1325 + /* "_pydevd_bundle/pydevd_cython.pyx":1324 * return None * thread_trace_func, apply_to_settrace = fix_top_level_trace_and_get_trace_func(py_db, frame) * if thread_trace_func is None: # <<<<<<<<<<<<<< @@ -25760,24 +25760,24 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_14trace_dispatch(CYTH */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1328 + /* "_pydevd_bundle/pydevd_cython.pyx":1327 * if event != 'call': frame.f_trace = NO_FTRACE * return None * if apply_to_settrace: # <<<<<<<<<<<<<< * py_db.enable_tracing(thread_trace_func) * return thread_trace_func(frame, event, arg) */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_apply_to_settrace); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1328, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_apply_to_settrace); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1327, __pyx_L1_error) if (__pyx_t_1) { - /* "_pydevd_bundle/pydevd_cython.pyx":1329 + /* "_pydevd_bundle/pydevd_cython.pyx":1328 * return None * if apply_to_settrace: * py_db.enable_tracing(thread_trace_func) # <<<<<<<<<<<<<< * return thread_trace_func(frame, event, arg) * */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_enable_tracing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1329, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_enable_tracing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { @@ -25791,12 +25791,12 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_14trace_dispatch(CYTH } __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_v_thread_trace_func) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_thread_trace_func); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1329, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1328 + /* "_pydevd_bundle/pydevd_cython.pyx":1327 * if event != 'call': frame.f_trace = NO_FTRACE * return None * if apply_to_settrace: # <<<<<<<<<<<<<< @@ -25805,7 +25805,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_14trace_dispatch(CYTH */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1330 + /* "_pydevd_bundle/pydevd_cython.pyx":1329 * if apply_to_settrace: * py_db.enable_tracing(thread_trace_func) * return thread_trace_func(frame, event, arg) # <<<<<<<<<<<<<< @@ -25829,7 +25829,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_14trace_dispatch(CYTH #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1330, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1329, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -25837,13 +25837,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_14trace_dispatch(CYTH #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1330, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1329, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_6 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1330, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; @@ -25857,7 +25857,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_14trace_dispatch(CYTH __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_7, __pyx_v_arg); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1330, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -25866,7 +25866,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_14trace_dispatch(CYTH __pyx_t_2 = 0; goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":1301 + /* "_pydevd_bundle/pydevd_cython.pyx":1300 * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * def trace_dispatch(py_db, frame, str event, arg): # <<<<<<<<<<<<<< @@ -25890,7 +25890,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_14trace_dispatch(CYTH return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":1336 +/* "_pydevd_bundle/pydevd_cython.pyx":1335 * cdef class TopLevelThreadTracerOnlyUnhandledExceptions: * cdef public tuple _args; * def __init__(self, tuple args): # <<<<<<<<<<<<<< @@ -25927,7 +25927,7 @@ static int __pyx_pw_14_pydevd_bundle_13pydevd_cython_43TopLevelThreadTracerOnlyU else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 1336, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 1335, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; @@ -25938,13 +25938,13 @@ static int __pyx_pw_14_pydevd_bundle_13pydevd_cython_43TopLevelThreadTracerOnlyU } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1336, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1335, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.TopLevelThreadTracerOnlyUnhandledExceptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(0, 1336, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(0, 1335, __pyx_L1_error) __pyx_r = __pyx_pf_14_pydevd_bundle_13pydevd_cython_43TopLevelThreadTracerOnlyUnhandledExceptions___init__(((struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerOnlyUnhandledExceptions *)__pyx_v_self), __pyx_v_args); /* function exit code */ @@ -25961,7 +25961,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_43TopLevelThreadTracerOnlyU __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":1337 + /* "_pydevd_bundle/pydevd_cython.pyx":1336 * cdef public tuple _args; * def __init__(self, tuple args): * self._args = args # <<<<<<<<<<<<<< @@ -25974,7 +25974,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_43TopLevelThreadTracerOnlyU __Pyx_DECREF(__pyx_v_self->_args); __pyx_v_self->_args = __pyx_v_args; - /* "_pydevd_bundle/pydevd_cython.pyx":1336 + /* "_pydevd_bundle/pydevd_cython.pyx":1335 * cdef class TopLevelThreadTracerOnlyUnhandledExceptions: * cdef public tuple _args; * def __init__(self, tuple args): # <<<<<<<<<<<<<< @@ -25988,7 +25988,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_43TopLevelThreadTracerOnlyU return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":1345 +/* "_pydevd_bundle/pydevd_cython.pyx":1344 * # ENDIF * * def trace_unhandled_exceptions(self, frame, event, arg): # <<<<<<<<<<<<<< @@ -26033,17 +26033,17 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_43TopLevelThreadTrace case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("trace_unhandled_exceptions", 1, 3, 3, 1); __PYX_ERR(0, 1345, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("trace_unhandled_exceptions", 1, 3, 3, 1); __PYX_ERR(0, 1344, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("trace_unhandled_exceptions", 1, 3, 3, 2); __PYX_ERR(0, 1345, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("trace_unhandled_exceptions", 1, 3, 3, 2); __PYX_ERR(0, 1344, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "trace_unhandled_exceptions") < 0)) __PYX_ERR(0, 1345, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "trace_unhandled_exceptions") < 0)) __PYX_ERR(0, 1344, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; @@ -26058,7 +26058,7 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_43TopLevelThreadTrace } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("trace_unhandled_exceptions", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1345, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("trace_unhandled_exceptions", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1344, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.TopLevelThreadTracerOnlyUnhandledExceptions.trace_unhandled_exceptions", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -26090,14 +26090,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_43TopLevelThreadTrace int __pyx_clineno = 0; __Pyx_RefNannySetupContext("trace_unhandled_exceptions", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":1348 + /* "_pydevd_bundle/pydevd_cython.pyx":1347 * # Note that we ignore the frame as this tracing method should only be put in topmost frames already. * # print('trace_unhandled_exceptions', event, frame.f_code.co_name, frame.f_code.co_filename, frame.f_code.co_firstlineno) * if event == 'exception' and arg is not None: # <<<<<<<<<<<<<< * py_db, t, additional_info = self._args[0:3] * if arg is not None: */ - __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_exception, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1348, __pyx_L1_error) + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_exception, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1347, __pyx_L1_error) if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; @@ -26109,7 +26109,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_43TopLevelThreadTrace __pyx_L4_bool_binop_done:; if (__pyx_t_1) { - /* "_pydevd_bundle/pydevd_cython.pyx":1349 + /* "_pydevd_bundle/pydevd_cython.pyx":1348 * # print('trace_unhandled_exceptions', event, frame.f_code.co_name, frame.f_code.co_filename, frame.f_code.co_firstlineno) * if event == 'exception' and arg is not None: * py_db, t, additional_info = self._args[0:3] # <<<<<<<<<<<<<< @@ -26118,9 +26118,9 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_43TopLevelThreadTrace */ if (unlikely(__pyx_v_self->_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1349, __pyx_L1_error) + __PYX_ERR(0, 1348, __pyx_L1_error) } - __pyx_t_4 = __Pyx_PyTuple_GetSlice(__pyx_v_self->_args, 0, 3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1349, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyTuple_GetSlice(__pyx_v_self->_args, 0, 3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (1) { PyObject* sequence = __pyx_t_4; @@ -26128,7 +26128,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_43TopLevelThreadTrace if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 1349, __pyx_L1_error) + __PYX_ERR(0, 1348, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); @@ -26138,11 +26138,11 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_43TopLevelThreadTrace __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); #else - __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1349, __pyx_L1_error) + __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1349, __pyx_L1_error) + __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1349, __pyx_L1_error) + __pyx_t_7 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -26154,7 +26154,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_43TopLevelThreadTrace __pyx_v_additional_info = __pyx_t_7; __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1350 + /* "_pydevd_bundle/pydevd_cython.pyx":1349 * if event == 'exception' and arg is not None: * py_db, t, additional_info = self._args[0:3] * if arg is not None: # <<<<<<<<<<<<<< @@ -26165,37 +26165,37 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_43TopLevelThreadTrace __pyx_t_3 = (__pyx_t_1 != 0); if (__pyx_t_3) { - /* "_pydevd_bundle/pydevd_cython.pyx":1351 + /* "_pydevd_bundle/pydevd_cython.pyx":1350 * py_db, t, additional_info = self._args[0:3] * if arg is not None: * if not additional_info.suspended_at_unhandled: # <<<<<<<<<<<<<< * additional_info.suspended_at_unhandled = True * */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_additional_info, __pyx_n_s_suspended_at_unhandled); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1351, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_additional_info, __pyx_n_s_suspended_at_unhandled); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1351, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1350, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = ((!__pyx_t_3) != 0); if (__pyx_t_1) { - /* "_pydevd_bundle/pydevd_cython.pyx":1352 + /* "_pydevd_bundle/pydevd_cython.pyx":1351 * if arg is not None: * if not additional_info.suspended_at_unhandled: * additional_info.suspended_at_unhandled = True # <<<<<<<<<<<<<< * * stop_on_unhandled_exception(py_db, t, additional_info, arg) */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_additional_info, __pyx_n_s_suspended_at_unhandled, Py_True) < 0) __PYX_ERR(0, 1352, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_additional_info, __pyx_n_s_suspended_at_unhandled, Py_True) < 0) __PYX_ERR(0, 1351, __pyx_L1_error) - /* "_pydevd_bundle/pydevd_cython.pyx":1354 + /* "_pydevd_bundle/pydevd_cython.pyx":1353 * additional_info.suspended_at_unhandled = True * * stop_on_unhandled_exception(py_db, t, additional_info, arg) # <<<<<<<<<<<<<< * * # No need to reset frame.f_trace to keep the same trace function. */ - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_stop_on_unhandled_exception); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1354, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_stop_on_unhandled_exception); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = NULL; __pyx_t_8 = 0; @@ -26212,7 +26212,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_43TopLevelThreadTrace #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[5] = {__pyx_t_6, __pyx_v_py_db, __pyx_v_t, __pyx_v_additional_info, __pyx_v_arg}; - __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1354, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1353, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_4); } else @@ -26220,13 +26220,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_43TopLevelThreadTrace #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[5] = {__pyx_t_6, __pyx_v_py_db, __pyx_v_t, __pyx_v_additional_info, __pyx_v_arg}; - __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1354, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1353, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif { - __pyx_t_5 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1354, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = NULL; @@ -26243,14 +26243,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_43TopLevelThreadTrace __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); PyTuple_SET_ITEM(__pyx_t_5, 3+__pyx_t_8, __pyx_v_arg); - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1354, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1351 + /* "_pydevd_bundle/pydevd_cython.pyx":1350 * py_db, t, additional_info = self._args[0:3] * if arg is not None: * if not additional_info.suspended_at_unhandled: # <<<<<<<<<<<<<< @@ -26259,7 +26259,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_43TopLevelThreadTrace */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1350 + /* "_pydevd_bundle/pydevd_cython.pyx":1349 * if event == 'exception' and arg is not None: * py_db, t, additional_info = self._args[0:3] * if arg is not None: # <<<<<<<<<<<<<< @@ -26268,7 +26268,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_43TopLevelThreadTrace */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1348 + /* "_pydevd_bundle/pydevd_cython.pyx":1347 * # Note that we ignore the frame as this tracing method should only be put in topmost frames already. * # print('trace_unhandled_exceptions', event, frame.f_code.co_name, frame.f_code.co_filename, frame.f_code.co_firstlineno) * if event == 'exception' and arg is not None: # <<<<<<<<<<<<<< @@ -26277,7 +26277,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_43TopLevelThreadTrace */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1358 + /* "_pydevd_bundle/pydevd_cython.pyx":1357 * # No need to reset frame.f_trace to keep the same trace function. * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * return SafeCallWrapper(self.trace_unhandled_exceptions) # <<<<<<<<<<<<<< @@ -26285,16 +26285,16 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_43TopLevelThreadTrace * # return self.trace_unhandled_exceptions */ __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_unhandled_exceptions); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1358, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_unhandled_exceptions); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper), __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1358, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper), __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_7; __pyx_t_7 = 0; goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":1345 + /* "_pydevd_bundle/pydevd_cython.pyx":1344 * # ENDIF * * def trace_unhandled_exceptions(self, frame, event, arg): # <<<<<<<<<<<<<< @@ -26319,7 +26319,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_43TopLevelThreadTrace return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":1363 +/* "_pydevd_bundle/pydevd_cython.pyx":1362 * # ENDIF * * def get_trace_dispatch_func(self): # <<<<<<<<<<<<<< @@ -26349,7 +26349,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_43TopLevelThreadTrace int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_trace_dispatch_func", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":1364 + /* "_pydevd_bundle/pydevd_cython.pyx":1363 * * def get_trace_dispatch_func(self): * return self.trace_unhandled_exceptions # <<<<<<<<<<<<<< @@ -26357,13 +26357,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_43TopLevelThreadTrace * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_unhandled_exceptions); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1364, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_unhandled_exceptions); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":1363 + /* "_pydevd_bundle/pydevd_cython.pyx":1362 * # ENDIF * * def get_trace_dispatch_func(self): # <<<<<<<<<<<<<< @@ -26382,7 +26382,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_43TopLevelThreadTrace return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":1335 +/* "_pydevd_bundle/pydevd_cython.pyx":1334 * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * cdef class TopLevelThreadTracerOnlyUnhandledExceptions: * cdef public tuple _args; # <<<<<<<<<<<<<< @@ -26440,7 +26440,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_43TopLevelThreadTracerOnlyU const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); - if (!(likely(PyTuple_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(0, 1335, __pyx_L1_error) + if (!(likely(PyTuple_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(0, 1334, __pyx_L1_error) __pyx_t_1 = __pyx_v_value; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); @@ -26783,7 +26783,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_43TopLevelThreadTrace return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":1375 +/* "_pydevd_bundle/pydevd_cython.pyx":1374 * cdef public set _raise_lines; * cdef public int _last_raise_line; * def __init__(self, frame_trace_dispatch, tuple args): # <<<<<<<<<<<<<< @@ -26825,11 +26825,11 @@ static int __pyx_pw_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTracerNoBac case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(0, 1375, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(0, 1374, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 1375, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 1374, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -26842,13 +26842,13 @@ static int __pyx_pw_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTracerNoBac } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1375, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1374, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.TopLevelThreadTracerNoBackFrame.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(0, 1375, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(0, 1374, __pyx_L1_error) __pyx_r = __pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTracerNoBackFrame___init__(((struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerNoBackFrame *)__pyx_v_self), __pyx_v_frame_trace_dispatch, __pyx_v_args); /* function exit code */ @@ -26869,7 +26869,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTracerNoBac int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":1376 + /* "_pydevd_bundle/pydevd_cython.pyx":1375 * cdef public int _last_raise_line; * def __init__(self, frame_trace_dispatch, tuple args): * self._frame_trace_dispatch = frame_trace_dispatch # <<<<<<<<<<<<<< @@ -26882,7 +26882,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTracerNoBac __Pyx_DECREF(__pyx_v_self->_frame_trace_dispatch); __pyx_v_self->_frame_trace_dispatch = __pyx_v_frame_trace_dispatch; - /* "_pydevd_bundle/pydevd_cython.pyx":1377 + /* "_pydevd_bundle/pydevd_cython.pyx":1376 * def __init__(self, frame_trace_dispatch, tuple args): * self._frame_trace_dispatch = frame_trace_dispatch * self._args = args # <<<<<<<<<<<<<< @@ -26895,7 +26895,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTracerNoBac __Pyx_DECREF(__pyx_v_self->_args); __pyx_v_self->_args = __pyx_v_args; - /* "_pydevd_bundle/pydevd_cython.pyx":1378 + /* "_pydevd_bundle/pydevd_cython.pyx":1377 * self._frame_trace_dispatch = frame_trace_dispatch * self._args = args * self._try_except_info = None # <<<<<<<<<<<<<< @@ -26908,7 +26908,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTracerNoBac __Pyx_DECREF(__pyx_v_self->_try_except_info); __pyx_v_self->_try_except_info = Py_None; - /* "_pydevd_bundle/pydevd_cython.pyx":1379 + /* "_pydevd_bundle/pydevd_cython.pyx":1378 * self._args = args * self._try_except_info = None * self._last_exc_arg = None # <<<<<<<<<<<<<< @@ -26921,14 +26921,14 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTracerNoBac __Pyx_DECREF(__pyx_v_self->_last_exc_arg); __pyx_v_self->_last_exc_arg = Py_None; - /* "_pydevd_bundle/pydevd_cython.pyx":1380 + /* "_pydevd_bundle/pydevd_cython.pyx":1379 * self._try_except_info = None * self._last_exc_arg = None * self._raise_lines = set() # <<<<<<<<<<<<<< * self._last_raise_line = -1 * # ELSE */ - __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1380, __pyx_L1_error) + __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->_raise_lines); @@ -26936,7 +26936,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTracerNoBac __pyx_v_self->_raise_lines = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1381 + /* "_pydevd_bundle/pydevd_cython.pyx":1380 * self._last_exc_arg = None * self._raise_lines = set() * self._last_raise_line = -1 # <<<<<<<<<<<<<< @@ -26945,7 +26945,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTracerNoBac */ __pyx_v_self->_last_raise_line = -1; - /* "_pydevd_bundle/pydevd_cython.pyx":1375 + /* "_pydevd_bundle/pydevd_cython.pyx":1374 * cdef public set _raise_lines; * cdef public int _last_raise_line; * def __init__(self, frame_trace_dispatch, tuple args): # <<<<<<<<<<<<<< @@ -26965,7 +26965,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTracerNoBac return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":1405 +/* "_pydevd_bundle/pydevd_cython.pyx":1404 * # ENDIF * * def trace_dispatch_and_unhandled_exceptions(self, frame, event, arg): # <<<<<<<<<<<<<< @@ -27010,17 +27010,17 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("trace_dispatch_and_unhandled_exceptions", 1, 3, 3, 1); __PYX_ERR(0, 1405, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("trace_dispatch_and_unhandled_exceptions", 1, 3, 3, 1); __PYX_ERR(0, 1404, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("trace_dispatch_and_unhandled_exceptions", 1, 3, 3, 2); __PYX_ERR(0, 1405, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("trace_dispatch_and_unhandled_exceptions", 1, 3, 3, 2); __PYX_ERR(0, 1404, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "trace_dispatch_and_unhandled_exceptions") < 0)) __PYX_ERR(0, 1405, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "trace_dispatch_and_unhandled_exceptions") < 0)) __PYX_ERR(0, 1404, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; @@ -27035,7 +27035,7 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("trace_dispatch_and_unhandled_exceptions", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1405, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("trace_dispatch_and_unhandled_exceptions", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1404, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.TopLevelThreadTracerNoBackFrame.trace_dispatch_and_unhandled_exceptions", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -27082,7 +27082,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace int __pyx_clineno = 0; __Pyx_RefNannySetupContext("trace_dispatch_and_unhandled_exceptions", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":1407 + /* "_pydevd_bundle/pydevd_cython.pyx":1406 * def trace_dispatch_and_unhandled_exceptions(self, frame, event, arg): * # print('trace_dispatch_and_unhandled_exceptions', event, frame.f_code.co_name, frame.f_code.co_filename, frame.f_code.co_firstlineno) * if self._frame_trace_dispatch is not None: # <<<<<<<<<<<<<< @@ -27093,7 +27093,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":1408 + /* "_pydevd_bundle/pydevd_cython.pyx":1407 * # print('trace_dispatch_and_unhandled_exceptions', event, frame.f_code.co_name, frame.f_code.co_filename, frame.f_code.co_firstlineno) * if self._frame_trace_dispatch is not None: * self._frame_trace_dispatch = self._frame_trace_dispatch(frame, event, arg) # <<<<<<<<<<<<<< @@ -27116,7 +27116,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1408, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1407, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_3); } else @@ -27124,13 +27124,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1408, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1407, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_3); } else #endif { - __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1408, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; @@ -27144,7 +27144,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_arg); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1408, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } @@ -27155,7 +27155,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace __pyx_v_self->_frame_trace_dispatch = __pyx_t_3; __pyx_t_3 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1407 + /* "_pydevd_bundle/pydevd_cython.pyx":1406 * def trace_dispatch_and_unhandled_exceptions(self, frame, event, arg): * # print('trace_dispatch_and_unhandled_exceptions', event, frame.f_code.co_name, frame.f_code.co_filename, frame.f_code.co_firstlineno) * if self._frame_trace_dispatch is not None: # <<<<<<<<<<<<<< @@ -27164,17 +27164,17 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1410 + /* "_pydevd_bundle/pydevd_cython.pyx":1409 * self._frame_trace_dispatch = self._frame_trace_dispatch(frame, event, arg) * * if event == 'exception': # <<<<<<<<<<<<<< * self._last_exc_arg = arg * self._raise_lines.add(frame.f_lineno) */ - __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_exception, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1410, __pyx_L1_error) + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_exception, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1409, __pyx_L1_error) if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":1411 + /* "_pydevd_bundle/pydevd_cython.pyx":1410 * * if event == 'exception': * self._last_exc_arg = arg # <<<<<<<<<<<<<< @@ -27187,7 +27187,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace __Pyx_DECREF(__pyx_v_self->_last_exc_arg); __pyx_v_self->_last_exc_arg = __pyx_v_arg; - /* "_pydevd_bundle/pydevd_cython.pyx":1412 + /* "_pydevd_bundle/pydevd_cython.pyx":1411 * if event == 'exception': * self._last_exc_arg = arg * self._raise_lines.add(frame.f_lineno) # <<<<<<<<<<<<<< @@ -27196,27 +27196,27 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace */ if (unlikely(__pyx_v_self->_raise_lines == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add"); - __PYX_ERR(0, 1412, __pyx_L1_error) + __PYX_ERR(0, 1411, __pyx_L1_error) } - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_lineno); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1412, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_lineno); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_8 = PySet_Add(__pyx_v_self->_raise_lines, __pyx_t_3); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 1412, __pyx_L1_error) + __pyx_t_8 = PySet_Add(__pyx_v_self->_raise_lines, __pyx_t_3); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 1411, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1413 + /* "_pydevd_bundle/pydevd_cython.pyx":1412 * self._last_exc_arg = arg * self._raise_lines.add(frame.f_lineno) * self._last_raise_line = frame.f_lineno # <<<<<<<<<<<<<< * * elif event == 'return' and self._last_exc_arg is not None: */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_lineno); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1413, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_lineno); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1413, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1412, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_self->_last_raise_line = __pyx_t_6; - /* "_pydevd_bundle/pydevd_cython.pyx":1410 + /* "_pydevd_bundle/pydevd_cython.pyx":1409 * self._frame_trace_dispatch = self._frame_trace_dispatch(frame, event, arg) * * if event == 'exception': # <<<<<<<<<<<<<< @@ -27226,14 +27226,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace goto __pyx_L4; } - /* "_pydevd_bundle/pydevd_cython.pyx":1415 + /* "_pydevd_bundle/pydevd_cython.pyx":1414 * self._last_raise_line = frame.f_lineno * * elif event == 'return' and self._last_exc_arg is not None: # <<<<<<<<<<<<<< * # For unhandled exceptions we actually track the return when at the topmost level. * try: */ - __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_return, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1415, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_return, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1414, __pyx_L1_error) if (__pyx_t_1) { } else { __pyx_t_2 = __pyx_t_1; @@ -27245,7 +27245,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace __pyx_L5_bool_binop_done:; if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":1417 + /* "_pydevd_bundle/pydevd_cython.pyx":1416 * elif event == 'return' and self._last_exc_arg is not None: * # For unhandled exceptions we actually track the return when at the topmost level. * try: # <<<<<<<<<<<<<< @@ -27254,7 +27254,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace */ /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":1418 + /* "_pydevd_bundle/pydevd_cython.pyx":1417 * # For unhandled exceptions we actually track the return when at the topmost level. * try: * py_db, t, additional_info = self._args[0:3] # <<<<<<<<<<<<<< @@ -27263,9 +27263,9 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace */ if (unlikely(__pyx_v_self->_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1418, __pyx_L8_error) + __PYX_ERR(0, 1417, __pyx_L8_error) } - __pyx_t_3 = __Pyx_PyTuple_GetSlice(__pyx_v_self->_args, 0, 3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1418, __pyx_L8_error) + __pyx_t_3 = __Pyx_PyTuple_GetSlice(__pyx_v_self->_args, 0, 3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1417, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); if (1) { PyObject* sequence = __pyx_t_3; @@ -27273,7 +27273,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 1418, __pyx_L8_error) + __PYX_ERR(0, 1417, __pyx_L8_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); @@ -27283,11 +27283,11 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_5); #else - __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1418, __pyx_L8_error) + __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1417, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1418, __pyx_L8_error) + __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1417, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_5 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1418, __pyx_L8_error) + __pyx_t_5 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1417, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -27299,46 +27299,46 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace __pyx_v_additional_info = __pyx_t_5; __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1419 + /* "_pydevd_bundle/pydevd_cython.pyx":1418 * try: * py_db, t, additional_info = self._args[0:3] * if not additional_info.suspended_at_unhandled: # Note: only check it here, don't set. # <<<<<<<<<<<<<< * if frame.f_lineno in self._raise_lines: * stop_on_unhandled_exception(py_db, t, additional_info, self._last_exc_arg) */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_additional_info, __pyx_n_s_suspended_at_unhandled); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1419, __pyx_L8_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_additional_info, __pyx_n_s_suspended_at_unhandled); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1418, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1419, __pyx_L8_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1418, __pyx_L8_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_9 = ((!__pyx_t_2) != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":1420 + /* "_pydevd_bundle/pydevd_cython.pyx":1419 * py_db, t, additional_info = self._args[0:3] * if not additional_info.suspended_at_unhandled: # Note: only check it here, don't set. * if frame.f_lineno in self._raise_lines: # <<<<<<<<<<<<<< * stop_on_unhandled_exception(py_db, t, additional_info, self._last_exc_arg) * */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_lineno); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1420, __pyx_L8_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_lineno); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1419, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__pyx_v_self->_raise_lines == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 1420, __pyx_L8_error) + __PYX_ERR(0, 1419, __pyx_L8_error) } - __pyx_t_9 = (__Pyx_PySet_ContainsTF(__pyx_t_3, __pyx_v_self->_raise_lines, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1420, __pyx_L8_error) + __pyx_t_9 = (__Pyx_PySet_ContainsTF(__pyx_t_3, __pyx_v_self->_raise_lines, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1419, __pyx_L8_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = (__pyx_t_9 != 0); if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":1421 + /* "_pydevd_bundle/pydevd_cython.pyx":1420 * if not additional_info.suspended_at_unhandled: # Note: only check it here, don't set. * if frame.f_lineno in self._raise_lines: * stop_on_unhandled_exception(py_db, t, additional_info, self._last_exc_arg) # <<<<<<<<<<<<<< * * else: */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_stop_on_unhandled_exception); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1421, __pyx_L8_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_stop_on_unhandled_exception); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1420, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = NULL; __pyx_t_6 = 0; @@ -27355,7 +27355,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[5] = {__pyx_t_7, __pyx_v_py_db, __pyx_v_t, __pyx_v_additional_info, __pyx_v_self->_last_exc_arg}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1421, __pyx_L8_error) + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1420, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_3); } else @@ -27363,13 +27363,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[5] = {__pyx_t_7, __pyx_v_py_db, __pyx_v_t, __pyx_v_additional_info, __pyx_v_self->_last_exc_arg}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1421, __pyx_L8_error) + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1420, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_3); } else #endif { - __pyx_t_4 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1421, __pyx_L8_error) + __pyx_t_4 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1420, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7); __pyx_t_7 = NULL; @@ -27386,14 +27386,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace __Pyx_INCREF(__pyx_v_self->_last_exc_arg); __Pyx_GIVEREF(__pyx_v_self->_last_exc_arg); PyTuple_SET_ITEM(__pyx_t_4, 3+__pyx_t_6, __pyx_v_self->_last_exc_arg); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1421, __pyx_L8_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1420, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1420 + /* "_pydevd_bundle/pydevd_cython.pyx":1419 * py_db, t, additional_info = self._args[0:3] * if not additional_info.suspended_at_unhandled: # Note: only check it here, don't set. * if frame.f_lineno in self._raise_lines: # <<<<<<<<<<<<<< @@ -27403,7 +27403,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace goto __pyx_L11; } - /* "_pydevd_bundle/pydevd_cython.pyx":1424 + /* "_pydevd_bundle/pydevd_cython.pyx":1423 * * else: * if self._try_except_info is None: # <<<<<<<<<<<<<< @@ -27415,16 +27415,16 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace __pyx_t_9 = (__pyx_t_2 != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":1425 + /* "_pydevd_bundle/pydevd_cython.pyx":1424 * else: * if self._try_except_info is None: * self._try_except_info = collect_try_except_info(frame.f_code) # <<<<<<<<<<<<<< * if not self._try_except_info: * # Consider the last exception as unhandled because there's no try..except in it. */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_collect_try_except_info); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1425, __pyx_L8_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_collect_try_except_info); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1424, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1425, __pyx_L8_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1424, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { @@ -27439,7 +27439,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace __pyx_t_3 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1425, __pyx_L8_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1424, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GIVEREF(__pyx_t_3); @@ -27448,7 +27448,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace __pyx_v_self->_try_except_info = __pyx_t_3; __pyx_t_3 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1424 + /* "_pydevd_bundle/pydevd_cython.pyx":1423 * * else: * if self._try_except_info is None: # <<<<<<<<<<<<<< @@ -27457,25 +27457,25 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1426 + /* "_pydevd_bundle/pydevd_cython.pyx":1425 * if self._try_except_info is None: * self._try_except_info = collect_try_except_info(frame.f_code) * if not self._try_except_info: # <<<<<<<<<<<<<< * # Consider the last exception as unhandled because there's no try..except in it. * stop_on_unhandled_exception(py_db, t, additional_info, self._last_exc_arg) */ - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_self->_try_except_info); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1426, __pyx_L8_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_self->_try_except_info); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1425, __pyx_L8_error) __pyx_t_2 = ((!__pyx_t_9) != 0); if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":1428 + /* "_pydevd_bundle/pydevd_cython.pyx":1427 * if not self._try_except_info: * # Consider the last exception as unhandled because there's no try..except in it. * stop_on_unhandled_exception(py_db, t, additional_info, self._last_exc_arg) # <<<<<<<<<<<<<< * else: * # Now, consider only the try..except for the raise */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_stop_on_unhandled_exception); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1428, __pyx_L8_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_stop_on_unhandled_exception); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1427, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = NULL; __pyx_t_6 = 0; @@ -27492,7 +27492,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_v_py_db, __pyx_v_t, __pyx_v_additional_info, __pyx_v_self->_last_exc_arg}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1428, __pyx_L8_error) + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1427, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_3); } else @@ -27500,13 +27500,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_v_py_db, __pyx_v_t, __pyx_v_additional_info, __pyx_v_self->_last_exc_arg}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1428, __pyx_L8_error) + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1427, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_3); } else #endif { - __pyx_t_7 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1428, __pyx_L8_error) + __pyx_t_7 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1427, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -27523,14 +27523,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace __Pyx_INCREF(__pyx_v_self->_last_exc_arg); __Pyx_GIVEREF(__pyx_v_self->_last_exc_arg); PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_6, __pyx_v_self->_last_exc_arg); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1428, __pyx_L8_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1427, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1426 + /* "_pydevd_bundle/pydevd_cython.pyx":1425 * if self._try_except_info is None: * self._try_except_info = collect_try_except_info(frame.f_code) * if not self._try_except_info: # <<<<<<<<<<<<<< @@ -27540,7 +27540,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace goto __pyx_L13; } - /* "_pydevd_bundle/pydevd_cython.pyx":1431 + /* "_pydevd_bundle/pydevd_cython.pyx":1430 * else: * # Now, consider only the try..except for the raise * valid_try_except_infos = [] # <<<<<<<<<<<<<< @@ -27548,12 +27548,12 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace * if try_except_info.is_line_in_try_block(self._last_raise_line): */ /*else*/ { - __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1431, __pyx_L8_error) + __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1430, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_valid_try_except_infos = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1432 + /* "_pydevd_bundle/pydevd_cython.pyx":1431 * # Now, consider only the try..except for the raise * valid_try_except_infos = [] * for try_except_info in self._try_except_info: # <<<<<<<<<<<<<< @@ -27564,26 +27564,26 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace __pyx_t_3 = __pyx_v_self->_try_except_info; __Pyx_INCREF(__pyx_t_3); __pyx_t_10 = 0; __pyx_t_11 = NULL; } else { - __pyx_t_10 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_self->_try_except_info); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1432, __pyx_L8_error) + __pyx_t_10 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_self->_try_except_info); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1431, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_11 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1432, __pyx_L8_error) + __pyx_t_11 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1431, __pyx_L8_error) } for (;;) { if (likely(!__pyx_t_11)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1432, __pyx_L8_error) + __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1431, __pyx_L8_error) #else - __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1432, __pyx_L8_error) + __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1431, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); #endif } else { if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1432, __pyx_L8_error) + __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1431, __pyx_L8_error) #else - __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1432, __pyx_L8_error) + __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1431, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); #endif } @@ -27593,7 +27593,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 1432, __pyx_L8_error) + else __PYX_ERR(0, 1431, __pyx_L8_error) } break; } @@ -27602,16 +27602,16 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace __Pyx_XDECREF_SET(__pyx_v_try_except_info, __pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1433 + /* "_pydevd_bundle/pydevd_cython.pyx":1432 * valid_try_except_infos = [] * for try_except_info in self._try_except_info: * if try_except_info.is_line_in_try_block(self._last_raise_line): # <<<<<<<<<<<<<< * valid_try_except_infos.append(try_except_info) * */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_try_except_info, __pyx_n_s_is_line_in_try_block); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1433, __pyx_L8_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_try_except_info, __pyx_n_s_is_line_in_try_block); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1432, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_self->_last_raise_line); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1433, __pyx_L8_error) + __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_self->_last_raise_line); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1432, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { @@ -27626,23 +27626,23 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace __pyx_t_5 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_12, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_4); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1433, __pyx_L8_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1432, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1433, __pyx_L8_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1432, __pyx_L8_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":1434 + /* "_pydevd_bundle/pydevd_cython.pyx":1433 * for try_except_info in self._try_except_info: * if try_except_info.is_line_in_try_block(self._last_raise_line): * valid_try_except_infos.append(try_except_info) # <<<<<<<<<<<<<< * * if not valid_try_except_infos: */ - __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_valid_try_except_infos, __pyx_v_try_except_info); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 1434, __pyx_L8_error) + __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_valid_try_except_infos, __pyx_v_try_except_info); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 1433, __pyx_L8_error) - /* "_pydevd_bundle/pydevd_cython.pyx":1433 + /* "_pydevd_bundle/pydevd_cython.pyx":1432 * valid_try_except_infos = [] * for try_except_info in self._try_except_info: * if try_except_info.is_line_in_try_block(self._last_raise_line): # <<<<<<<<<<<<<< @@ -27651,7 +27651,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1432 + /* "_pydevd_bundle/pydevd_cython.pyx":1431 * # Now, consider only the try..except for the raise * valid_try_except_infos = [] * for try_except_info in self._try_except_info: # <<<<<<<<<<<<<< @@ -27661,7 +27661,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1436 + /* "_pydevd_bundle/pydevd_cython.pyx":1435 * valid_try_except_infos.append(try_except_info) * * if not valid_try_except_infos: # <<<<<<<<<<<<<< @@ -27672,14 +27672,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace __pyx_t_9 = ((!__pyx_t_2) != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":1437 + /* "_pydevd_bundle/pydevd_cython.pyx":1436 * * if not valid_try_except_infos: * stop_on_unhandled_exception(py_db, t, additional_info, self._last_exc_arg) # <<<<<<<<<<<<<< * * else: */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_stop_on_unhandled_exception); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1437, __pyx_L8_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_stop_on_unhandled_exception); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1436, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = NULL; __pyx_t_6 = 0; @@ -27696,7 +27696,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[5] = {__pyx_t_7, __pyx_v_py_db, __pyx_v_t, __pyx_v_additional_info, __pyx_v_self->_last_exc_arg}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1437, __pyx_L8_error) + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1436, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_3); } else @@ -27704,13 +27704,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[5] = {__pyx_t_7, __pyx_v_py_db, __pyx_v_t, __pyx_v_additional_info, __pyx_v_self->_last_exc_arg}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1437, __pyx_L8_error) + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1436, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_3); } else #endif { - __pyx_t_4 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1437, __pyx_L8_error) + __pyx_t_4 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1436, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7); __pyx_t_7 = NULL; @@ -27727,14 +27727,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace __Pyx_INCREF(__pyx_v_self->_last_exc_arg); __Pyx_GIVEREF(__pyx_v_self->_last_exc_arg); PyTuple_SET_ITEM(__pyx_t_4, 3+__pyx_t_6, __pyx_v_self->_last_exc_arg); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1437, __pyx_L8_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1436, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1436 + /* "_pydevd_bundle/pydevd_cython.pyx":1435 * valid_try_except_infos.append(try_except_info) * * if not valid_try_except_infos: # <<<<<<<<<<<<<< @@ -27744,7 +27744,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace goto __pyx_L17; } - /* "_pydevd_bundle/pydevd_cython.pyx":1444 + /* "_pydevd_bundle/pydevd_cython.pyx":1443 * # where one try..except is inside the other with only a raise * # and it's gotten in the except line. * for try_except_info in self._try_except_info: # <<<<<<<<<<<<<< @@ -27756,26 +27756,26 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace __pyx_t_3 = __pyx_v_self->_try_except_info; __Pyx_INCREF(__pyx_t_3); __pyx_t_10 = 0; __pyx_t_11 = NULL; } else { - __pyx_t_10 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_self->_try_except_info); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1444, __pyx_L8_error) + __pyx_t_10 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_self->_try_except_info); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1443, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_11 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1444, __pyx_L8_error) + __pyx_t_11 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1443, __pyx_L8_error) } for (;;) { if (likely(!__pyx_t_11)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1444, __pyx_L8_error) + __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1443, __pyx_L8_error) #else - __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1444, __pyx_L8_error) + __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1443, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); #endif } else { if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1444, __pyx_L8_error) + __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1443, __pyx_L8_error) #else - __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1444, __pyx_L8_error) + __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1443, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); #endif } @@ -27785,7 +27785,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 1444, __pyx_L8_error) + else __PYX_ERR(0, 1443, __pyx_L8_error) } break; } @@ -27794,16 +27794,16 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace __Pyx_XDECREF_SET(__pyx_v_try_except_info, __pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1445 + /* "_pydevd_bundle/pydevd_cython.pyx":1444 * # and it's gotten in the except line. * for try_except_info in self._try_except_info: * if try_except_info.is_line_in_except_block(frame.f_lineno): # <<<<<<<<<<<<<< * if ( * frame.f_lineno == try_except_info.except_line or */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_try_except_info, __pyx_n_s_is_line_in_except_block); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1445, __pyx_L8_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_try_except_info, __pyx_n_s_is_line_in_except_block); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1444, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_lineno); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1445, __pyx_L8_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_lineno); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1444, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { @@ -27818,28 +27818,28 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace __pyx_t_5 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_12, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1445, __pyx_L8_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1444, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1445, __pyx_L8_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1444, __pyx_L8_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":1447 + /* "_pydevd_bundle/pydevd_cython.pyx":1446 * if try_except_info.is_line_in_except_block(frame.f_lineno): * if ( * frame.f_lineno == try_except_info.except_line or # <<<<<<<<<<<<<< * frame.f_lineno in try_except_info.raise_lines_in_except * ): */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_lineno); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1447, __pyx_L8_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_lineno); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1446, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_try_except_info, __pyx_n_s_except_line); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1447, __pyx_L8_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_try_except_info, __pyx_n_s_except_line); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1446, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = PyObject_RichCompare(__pyx_t_5, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1447, __pyx_L8_error) + __pyx_t_7 = PyObject_RichCompare(__pyx_t_5, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1446, __pyx_L8_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1447, __pyx_L8_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1446, __pyx_L8_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (!__pyx_t_2) { } else { @@ -27847,25 +27847,25 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace goto __pyx_L22_bool_binop_done; } - /* "_pydevd_bundle/pydevd_cython.pyx":1448 + /* "_pydevd_bundle/pydevd_cython.pyx":1447 * if ( * frame.f_lineno == try_except_info.except_line or * frame.f_lineno in try_except_info.raise_lines_in_except # <<<<<<<<<<<<<< * ): * # In a raise inside a try..except block or some except which doesn't */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_lineno); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1448, __pyx_L8_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_lineno); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1447, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_try_except_info, __pyx_n_s_raise_lines_in_except); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1448, __pyx_L8_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_try_except_info, __pyx_n_s_raise_lines_in_except); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1447, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_7, __pyx_t_4, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1448, __pyx_L8_error) + __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_7, __pyx_t_4, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1447, __pyx_L8_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = (__pyx_t_2 != 0); __pyx_t_9 = __pyx_t_1; __pyx_L22_bool_binop_done:; - /* "_pydevd_bundle/pydevd_cython.pyx":1446 + /* "_pydevd_bundle/pydevd_cython.pyx":1445 * for try_except_info in self._try_except_info: * if try_except_info.is_line_in_except_block(frame.f_lineno): * if ( # <<<<<<<<<<<<<< @@ -27874,14 +27874,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace */ if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":1452 + /* "_pydevd_bundle/pydevd_cython.pyx":1451 * # In a raise inside a try..except block or some except which doesn't * # match the raised exception. * stop_on_unhandled_exception(py_db, t, additional_info, self._last_exc_arg) # <<<<<<<<<<<<<< * break * else: */ - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_stop_on_unhandled_exception); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1452, __pyx_L8_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_stop_on_unhandled_exception); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1451, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = NULL; __pyx_t_6 = 0; @@ -27898,7 +27898,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_py_db, __pyx_v_t, __pyx_v_additional_info, __pyx_v_self->_last_exc_arg}; - __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1452, __pyx_L8_error) + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1451, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_4); } else @@ -27906,13 +27906,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_py_db, __pyx_v_t, __pyx_v_additional_info, __pyx_v_self->_last_exc_arg}; - __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1452, __pyx_L8_error) + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1451, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif { - __pyx_t_12 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1452, __pyx_L8_error) + __pyx_t_12 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1451, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_12); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_5); __pyx_t_5 = NULL; @@ -27929,14 +27929,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace __Pyx_INCREF(__pyx_v_self->_last_exc_arg); __Pyx_GIVEREF(__pyx_v_self->_last_exc_arg); PyTuple_SET_ITEM(__pyx_t_12, 3+__pyx_t_6, __pyx_v_self->_last_exc_arg); - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_12, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1452, __pyx_L8_error) + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_12, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1451, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1453 + /* "_pydevd_bundle/pydevd_cython.pyx":1452 * # match the raised exception. * stop_on_unhandled_exception(py_db, t, additional_info, self._last_exc_arg) * break # <<<<<<<<<<<<<< @@ -27945,7 +27945,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace */ goto __pyx_L19_break; - /* "_pydevd_bundle/pydevd_cython.pyx":1446 + /* "_pydevd_bundle/pydevd_cython.pyx":1445 * for try_except_info in self._try_except_info: * if try_except_info.is_line_in_except_block(frame.f_lineno): * if ( # <<<<<<<<<<<<<< @@ -27954,7 +27954,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1455 + /* "_pydevd_bundle/pydevd_cython.pyx":1454 * break * else: * break # exited during the except block (no exception raised) # <<<<<<<<<<<<<< @@ -27965,7 +27965,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace goto __pyx_L19_break; } - /* "_pydevd_bundle/pydevd_cython.pyx":1445 + /* "_pydevd_bundle/pydevd_cython.pyx":1444 * # and it's gotten in the except line. * for try_except_info in self._try_except_info: * if try_except_info.is_line_in_except_block(frame.f_lineno): # <<<<<<<<<<<<<< @@ -27974,7 +27974,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1444 + /* "_pydevd_bundle/pydevd_cython.pyx":1443 * # where one try..except is inside the other with only a raise * # and it's gotten in the except line. * for try_except_info in self._try_except_info: # <<<<<<<<<<<<<< @@ -27991,7 +27991,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace } __pyx_L11:; - /* "_pydevd_bundle/pydevd_cython.pyx":1419 + /* "_pydevd_bundle/pydevd_cython.pyx":1418 * try: * py_db, t, additional_info = self._args[0:3] * if not additional_info.suspended_at_unhandled: # Note: only check it here, don't set. # <<<<<<<<<<<<<< @@ -28001,7 +28001,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace } } - /* "_pydevd_bundle/pydevd_cython.pyx":1458 + /* "_pydevd_bundle/pydevd_cython.pyx":1457 * finally: * # Remove reference to exception after handling it. * self._last_exc_arg = None # <<<<<<<<<<<<<< @@ -28060,7 +28060,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace __pyx_L9:; } - /* "_pydevd_bundle/pydevd_cython.pyx":1415 + /* "_pydevd_bundle/pydevd_cython.pyx":1414 * self._last_raise_line = frame.f_lineno * * elif event == 'return' and self._last_exc_arg is not None: # <<<<<<<<<<<<<< @@ -28070,31 +28070,31 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace } __pyx_L4:; - /* "_pydevd_bundle/pydevd_cython.pyx":1461 + /* "_pydevd_bundle/pydevd_cython.pyx":1460 * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * ret = SafeCallWrapper(self.trace_dispatch_and_unhandled_exceptions) # <<<<<<<<<<<<<< * # ELSE * # ret = self.trace_dispatch_and_unhandled_exceptions */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch_and_unhandled_exc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1461, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch_and_unhandled_exc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1461, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_ret = ((struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper *)__pyx_t_4); __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1467 + /* "_pydevd_bundle/pydevd_cython.pyx":1466 * * # Need to reset (the call to _frame_trace_dispatch may have changed it). * frame.f_trace = ret # <<<<<<<<<<<<<< * return ret * */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, ((PyObject *)__pyx_v_ret)) < 0) __PYX_ERR(0, 1467, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, ((PyObject *)__pyx_v_ret)) < 0) __PYX_ERR(0, 1466, __pyx_L1_error) - /* "_pydevd_bundle/pydevd_cython.pyx":1468 + /* "_pydevd_bundle/pydevd_cython.pyx":1467 * # Need to reset (the call to _frame_trace_dispatch may have changed it). * frame.f_trace = ret * return ret # <<<<<<<<<<<<<< @@ -28106,7 +28106,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace __pyx_r = ((PyObject *)__pyx_v_ret); goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":1405 + /* "_pydevd_bundle/pydevd_cython.pyx":1404 * # ENDIF * * def trace_dispatch_and_unhandled_exceptions(self, frame, event, arg): # <<<<<<<<<<<<<< @@ -28135,7 +28135,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":1470 +/* "_pydevd_bundle/pydevd_cython.pyx":1469 * return ret * * def get_trace_dispatch_func(self): # <<<<<<<<<<<<<< @@ -28165,7 +28165,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_trace_dispatch_func", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":1471 + /* "_pydevd_bundle/pydevd_cython.pyx":1470 * * def get_trace_dispatch_func(self): * return self.trace_dispatch_and_unhandled_exceptions # <<<<<<<<<<<<<< @@ -28173,13 +28173,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch_and_unhandled_exc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1471, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch_and_unhandled_exc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":1470 + /* "_pydevd_bundle/pydevd_cython.pyx":1469 * return ret * * def get_trace_dispatch_func(self): # <<<<<<<<<<<<<< @@ -28198,7 +28198,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":1369 +/* "_pydevd_bundle/pydevd_cython.pyx":1368 * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * cdef class TopLevelThreadTracerNoBackFrame: * cdef public object _frame_trace_dispatch; # <<<<<<<<<<<<<< @@ -28293,7 +28293,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTracerNoBac return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":1370 +/* "_pydevd_bundle/pydevd_cython.pyx":1369 * cdef class TopLevelThreadTracerNoBackFrame: * cdef public object _frame_trace_dispatch; * cdef public tuple _args; # <<<<<<<<<<<<<< @@ -28351,7 +28351,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTracerNoBac const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); - if (!(likely(PyTuple_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(0, 1370, __pyx_L1_error) + if (!(likely(PyTuple_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(0, 1369, __pyx_L1_error) __pyx_t_1 = __pyx_v_value; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); @@ -28401,7 +28401,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTracerNoBac return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":1371 +/* "_pydevd_bundle/pydevd_cython.pyx":1370 * cdef public object _frame_trace_dispatch; * cdef public tuple _args; * cdef public object _try_except_info; # <<<<<<<<<<<<<< @@ -28496,7 +28496,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTracerNoBac return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":1372 +/* "_pydevd_bundle/pydevd_cython.pyx":1371 * cdef public tuple _args; * cdef public object _try_except_info; * cdef public object _last_exc_arg; # <<<<<<<<<<<<<< @@ -28591,7 +28591,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTracerNoBac return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":1373 +/* "_pydevd_bundle/pydevd_cython.pyx":1372 * cdef public object _try_except_info; * cdef public object _last_exc_arg; * cdef public set _raise_lines; # <<<<<<<<<<<<<< @@ -28649,7 +28649,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTracerNoBac const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); - if (!(likely(PySet_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "set", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(0, 1373, __pyx_L1_error) + if (!(likely(PySet_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "set", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(0, 1372, __pyx_L1_error) __pyx_t_1 = __pyx_v_value; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); @@ -28699,7 +28699,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTracerNoBac return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":1374 +/* "_pydevd_bundle/pydevd_cython.pyx":1373 * cdef public object _last_exc_arg; * cdef public set _raise_lines; * cdef public int _last_raise_line; # <<<<<<<<<<<<<< @@ -28729,7 +28729,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->_last_raise_line); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1374, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->_last_raise_line); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -28767,7 +28767,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTracerNoBac const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); - __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1374, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1373, __pyx_L1_error) __pyx_v_self->_last_raise_line = __pyx_t_1; /* function exit code */ @@ -29123,7 +29123,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_31TopLevelThreadTrace return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":1477 +/* "_pydevd_bundle/pydevd_cython.pyx":1476 * cdef class ThreadTracer: * cdef public tuple _args; * def __init__(self, tuple args): # <<<<<<<<<<<<<< @@ -29160,7 +29160,7 @@ static int __pyx_pw_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_1__init__(Py else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 1477, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 1476, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; @@ -29171,13 +29171,13 @@ static int __pyx_pw_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_1__init__(Py } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1477, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1476, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.ThreadTracer.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(0, 1477, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(0, 1476, __pyx_L1_error) __pyx_r = __pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer___init__(((struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_ThreadTracer *)__pyx_v_self), __pyx_v_args); /* function exit code */ @@ -29194,7 +29194,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer___init__(str __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":1478 + /* "_pydevd_bundle/pydevd_cython.pyx":1477 * cdef public tuple _args; * def __init__(self, tuple args): * self._args = args # <<<<<<<<<<<<<< @@ -29207,7 +29207,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer___init__(str __Pyx_DECREF(__pyx_v_self->_args); __pyx_v_self->_args = __pyx_v_args; - /* "_pydevd_bundle/pydevd_cython.pyx":1477 + /* "_pydevd_bundle/pydevd_cython.pyx":1476 * cdef class ThreadTracer: * cdef public tuple _args; * def __init__(self, tuple args): # <<<<<<<<<<<<<< @@ -29221,7 +29221,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer___init__(str return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":1486 +/* "_pydevd_bundle/pydevd_cython.pyx":1485 * # ENDIF * * def __call__(self, frame, event, arg): # <<<<<<<<<<<<<< @@ -29270,17 +29270,17 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_3__cal case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__call__", 1, 3, 3, 1); __PYX_ERR(0, 1486, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__call__", 1, 3, 3, 1); __PYX_ERR(0, 1485, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__call__", 1, 3, 3, 2); __PYX_ERR(0, 1486, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__call__", 1, 3, 3, 2); __PYX_ERR(0, 1485, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__call__") < 0)) __PYX_ERR(0, 1486, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__call__") < 0)) __PYX_ERR(0, 1485, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; @@ -29295,7 +29295,7 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_3__cal } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__call__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1486, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__call__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1485, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.ThreadTracer.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -29344,7 +29344,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__call__", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":1510 + /* "_pydevd_bundle/pydevd_cython.pyx":1509 * # ENDIF * # print('ENTER: trace_dispatch', frame.f_code.co_filename, frame.f_lineno, event, frame.f_code.co_name) * py_db, t, additional_info, cache_skips, frame_skips_cache = self._args # <<<<<<<<<<<<<< @@ -29359,7 +29359,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal if (unlikely(size != 5)) { if (size > 5) __Pyx_RaiseTooManyValuesError(5); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 1510, __pyx_L1_error) + __PYX_ERR(0, 1509, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); @@ -29377,7 +29377,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal Py_ssize_t i; PyObject** temps[5] = {&__pyx_t_2,&__pyx_t_3,&__pyx_t_4,&__pyx_t_5,&__pyx_t_6}; for (i=0; i < 5; i++) { - PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 1510, __pyx_L1_error) + PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 1509, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } @@ -29385,10 +29385,10 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { - __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 1510, __pyx_L1_error) + __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 1509, __pyx_L1_error) } - if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo))))) __PYX_ERR(0, 1510, __pyx_L1_error) - if (!(likely(PyDict_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(0, 1510, __pyx_L1_error) + if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo))))) __PYX_ERR(0, 1509, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(0, 1509, __pyx_L1_error) __pyx_v_py_db = __pyx_t_2; __pyx_t_2 = 0; __pyx_v_t = __pyx_t_3; @@ -29400,7 +29400,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __pyx_v_frame_skips_cache = __pyx_t_6; __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1511 + /* "_pydevd_bundle/pydevd_cython.pyx":1510 * # print('ENTER: trace_dispatch', frame.f_code.co_filename, frame.f_lineno, event, frame.f_code.co_name) * py_db, t, additional_info, cache_skips, frame_skips_cache = self._args * pydev_step_cmd = additional_info.pydev_step_cmd # <<<<<<<<<<<<<< @@ -29410,7 +29410,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __pyx_t_7 = __pyx_v_additional_info->pydev_step_cmd; __pyx_v_pydev_step_cmd = __pyx_t_7; - /* "_pydevd_bundle/pydevd_cython.pyx":1512 + /* "_pydevd_bundle/pydevd_cython.pyx":1511 * py_db, t, additional_info, cache_skips, frame_skips_cache = self._args * pydev_step_cmd = additional_info.pydev_step_cmd * is_stepping = pydev_step_cmd != -1 # <<<<<<<<<<<<<< @@ -29419,7 +29419,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal */ __pyx_v_is_stepping = (__pyx_v_pydev_step_cmd != -1L); - /* "_pydevd_bundle/pydevd_cython.pyx":1514 + /* "_pydevd_bundle/pydevd_cython.pyx":1513 * is_stepping = pydev_step_cmd != -1 * * try: # <<<<<<<<<<<<<< @@ -29435,34 +29435,34 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __Pyx_XGOTREF(__pyx_t_10); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":1515 + /* "_pydevd_bundle/pydevd_cython.pyx":1514 * * try: * if py_db._finish_debugging_session: # <<<<<<<<<<<<<< * if not py_db._termination_event_set: * # that was not working very well because jython gave some socket errors */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_finish_debugging_session); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1515, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_finish_debugging_session); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1514, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1515, __pyx_L3_error) + __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1514, __pyx_L3_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_11) { - /* "_pydevd_bundle/pydevd_cython.pyx":1516 + /* "_pydevd_bundle/pydevd_cython.pyx":1515 * try: * if py_db._finish_debugging_session: * if not py_db._termination_event_set: # <<<<<<<<<<<<<< * # that was not working very well because jython gave some socket errors * try: */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_termination_event_set); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1516, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_termination_event_set); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1515, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1516, __pyx_L3_error) + __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1515, __pyx_L3_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_12 = ((!__pyx_t_11) != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":1518 + /* "_pydevd_bundle/pydevd_cython.pyx":1517 * if not py_db._termination_event_set: * # that was not working very well because jython gave some socket errors * try: # <<<<<<<<<<<<<< @@ -29478,28 +29478,28 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __Pyx_XGOTREF(__pyx_t_15); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":1519 + /* "_pydevd_bundle/pydevd_cython.pyx":1518 * # that was not working very well because jython gave some socket errors * try: * if py_db.output_checker_thread is None: # <<<<<<<<<<<<<< * kill_all_pydev_threads() * except: */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_output_checker_thread); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1519, __pyx_L11_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_output_checker_thread); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1518, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = (__pyx_t_1 == Py_None); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_11 = (__pyx_t_12 != 0); if (__pyx_t_11) { - /* "_pydevd_bundle/pydevd_cython.pyx":1520 + /* "_pydevd_bundle/pydevd_cython.pyx":1519 * try: * if py_db.output_checker_thread is None: * kill_all_pydev_threads() # <<<<<<<<<<<<<< * except: * traceback.print_exc() */ - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_kill_all_pydev_threads); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1520, __pyx_L11_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_kill_all_pydev_threads); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1519, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { @@ -29513,12 +29513,12 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_6); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1520, __pyx_L11_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1519, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1519 + /* "_pydevd_bundle/pydevd_cython.pyx":1518 * # that was not working very well because jython gave some socket errors * try: * if py_db.output_checker_thread is None: # <<<<<<<<<<<<<< @@ -29527,7 +29527,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1518 + /* "_pydevd_bundle/pydevd_cython.pyx":1517 * if not py_db._termination_event_set: * # that was not working very well because jython gave some socket errors * try: # <<<<<<<<<<<<<< @@ -29547,7 +29547,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1521 + /* "_pydevd_bundle/pydevd_cython.pyx":1520 * if py_db.output_checker_thread is None: * kill_all_pydev_threads() * except: # <<<<<<<<<<<<<< @@ -29556,21 +29556,21 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.ThreadTracer.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_6, &__pyx_t_5) < 0) __PYX_ERR(0, 1521, __pyx_L13_except_error) + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_6, &__pyx_t_5) < 0) __PYX_ERR(0, 1520, __pyx_L13_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_5); - /* "_pydevd_bundle/pydevd_cython.pyx":1522 + /* "_pydevd_bundle/pydevd_cython.pyx":1521 * kill_all_pydev_threads() * except: * traceback.print_exc() # <<<<<<<<<<<<<< * py_db._termination_event_set = True * if event != 'call': frame.f_trace = NO_FTRACE */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_traceback); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1522, __pyx_L13_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_traceback); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1521, __pyx_L13_except_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1522, __pyx_L13_except_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1521, __pyx_L13_except_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; @@ -29585,7 +29585,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal } __pyx_t_4 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1522, __pyx_L13_except_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1521, __pyx_L13_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -29596,7 +29596,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal } __pyx_L13_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":1518 + /* "_pydevd_bundle/pydevd_cython.pyx":1517 * if not py_db._termination_event_set: * # that was not working very well because jython gave some socket errors * try: # <<<<<<<<<<<<<< @@ -29616,16 +29616,16 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __pyx_L16_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":1523 + /* "_pydevd_bundle/pydevd_cython.pyx":1522 * except: * traceback.print_exc() * py_db._termination_event_set = True # <<<<<<<<<<<<<< * if event != 'call': frame.f_trace = NO_FTRACE * return None */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_py_db, __pyx_n_s_termination_event_set, Py_True) < 0) __PYX_ERR(0, 1523, __pyx_L3_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_py_db, __pyx_n_s_termination_event_set, Py_True) < 0) __PYX_ERR(0, 1522, __pyx_L3_error) - /* "_pydevd_bundle/pydevd_cython.pyx":1516 + /* "_pydevd_bundle/pydevd_cython.pyx":1515 * try: * if py_db._finish_debugging_session: * if not py_db._termination_event_set: # <<<<<<<<<<<<<< @@ -29634,22 +29634,22 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1524 + /* "_pydevd_bundle/pydevd_cython.pyx":1523 * traceback.print_exc() * py_db._termination_event_set = True * if event != 'call': frame.f_trace = NO_FTRACE # <<<<<<<<<<<<<< * return None * */ - __pyx_t_11 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_NE)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1524, __pyx_L3_error) + __pyx_t_11 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_NE)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1523, __pyx_L3_error) if (__pyx_t_11) { - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1524, __pyx_L3_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1523, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_5) < 0) __PYX_ERR(0, 1524, __pyx_L3_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_5) < 0) __PYX_ERR(0, 1523, __pyx_L3_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } - /* "_pydevd_bundle/pydevd_cython.pyx":1525 + /* "_pydevd_bundle/pydevd_cython.pyx":1524 * py_db._termination_event_set = True * if event != 'call': frame.f_trace = NO_FTRACE * return None # <<<<<<<<<<<<<< @@ -29660,7 +29660,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L7_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":1515 + /* "_pydevd_bundle/pydevd_cython.pyx":1514 * * try: * if py_db._finish_debugging_session: # <<<<<<<<<<<<<< @@ -29669,14 +29669,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1528 + /* "_pydevd_bundle/pydevd_cython.pyx":1527 * * # if thread is not alive, cancel trace_dispatch processing * if not is_thread_alive(t): # <<<<<<<<<<<<<< * py_db.notify_thread_not_alive(get_current_thread_id(t)) * if event != 'call': frame.f_trace = NO_FTRACE */ - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_is_thread_alive); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1528, __pyx_L3_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_is_thread_alive); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1527, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { @@ -29690,24 +29690,24 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal } __pyx_t_5 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_1, __pyx_v_t) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_t); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1528, __pyx_L3_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1527, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1528, __pyx_L3_error) + __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1527, __pyx_L3_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_12 = ((!__pyx_t_11) != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":1529 + /* "_pydevd_bundle/pydevd_cython.pyx":1528 * # if thread is not alive, cancel trace_dispatch processing * if not is_thread_alive(t): * py_db.notify_thread_not_alive(get_current_thread_id(t)) # <<<<<<<<<<<<<< * if event != 'call': frame.f_trace = NO_FTRACE * return None # suspend tracing */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_notify_thread_not_alive); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1529, __pyx_L3_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_notify_thread_not_alive); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1528, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_get_current_thread_id); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1529, __pyx_L3_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_get_current_thread_id); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1528, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -29721,7 +29721,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_2, __pyx_v_t) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_t); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1529, __pyx_L3_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1528, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; @@ -29737,27 +29737,27 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __pyx_t_5 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_4, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1529, __pyx_L3_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1528, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1530 + /* "_pydevd_bundle/pydevd_cython.pyx":1529 * if not is_thread_alive(t): * py_db.notify_thread_not_alive(get_current_thread_id(t)) * if event != 'call': frame.f_trace = NO_FTRACE # <<<<<<<<<<<<<< * return None # suspend tracing * */ - __pyx_t_12 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_NE)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1530, __pyx_L3_error) + __pyx_t_12 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_NE)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1529, __pyx_L3_error) if (__pyx_t_12) { - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1530, __pyx_L3_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1529, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_5) < 0) __PYX_ERR(0, 1530, __pyx_L3_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_5) < 0) __PYX_ERR(0, 1529, __pyx_L3_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } - /* "_pydevd_bundle/pydevd_cython.pyx":1531 + /* "_pydevd_bundle/pydevd_cython.pyx":1530 * py_db.notify_thread_not_alive(get_current_thread_id(t)) * if event != 'call': frame.f_trace = NO_FTRACE * return None # suspend tracing # <<<<<<<<<<<<<< @@ -29768,7 +29768,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L7_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":1528 + /* "_pydevd_bundle/pydevd_cython.pyx":1527 * * # if thread is not alive, cancel trace_dispatch processing * if not is_thread_alive(t): # <<<<<<<<<<<<<< @@ -29777,30 +29777,30 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1533 + /* "_pydevd_bundle/pydevd_cython.pyx":1532 * return None # suspend tracing * * if py_db.thread_analyser is not None: # <<<<<<<<<<<<<< * py_db.thread_analyser.log_event(frame) * */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_thread_analyser); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1533, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_thread_analyser); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1532, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_12 = (__pyx_t_5 != Py_None); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_11 = (__pyx_t_12 != 0); if (__pyx_t_11) { - /* "_pydevd_bundle/pydevd_cython.pyx":1534 + /* "_pydevd_bundle/pydevd_cython.pyx":1533 * * if py_db.thread_analyser is not None: * py_db.thread_analyser.log_event(frame) # <<<<<<<<<<<<<< * * if py_db.asyncio_analyser is not None: */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_thread_analyser); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1534, __pyx_L3_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_thread_analyser); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1533, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_log_event); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1534, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_log_event); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1533, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -29815,12 +29815,12 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal } __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_v_frame) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_frame); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1534, __pyx_L3_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1533, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1533 + /* "_pydevd_bundle/pydevd_cython.pyx":1532 * return None # suspend tracing * * if py_db.thread_analyser is not None: # <<<<<<<<<<<<<< @@ -29829,30 +29829,30 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1536 + /* "_pydevd_bundle/pydevd_cython.pyx":1535 * py_db.thread_analyser.log_event(frame) * * if py_db.asyncio_analyser is not None: # <<<<<<<<<<<<<< * py_db.asyncio_analyser.log_event(frame) * */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_asyncio_analyser); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1536, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_asyncio_analyser); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1535, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_11 = (__pyx_t_5 != Py_None); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_12 = (__pyx_t_11 != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":1537 + /* "_pydevd_bundle/pydevd_cython.pyx":1536 * * if py_db.asyncio_analyser is not None: * py_db.asyncio_analyser.log_event(frame) # <<<<<<<<<<<<<< * * # Note: it's important that the context name is also given because we may hit something once */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_asyncio_analyser); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1537, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_asyncio_analyser); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1536, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_log_event); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1537, __pyx_L3_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_log_event); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1536, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; @@ -29867,12 +29867,12 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal } __pyx_t_5 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_1, __pyx_v_frame) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_frame); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1537, __pyx_L3_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1536, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1536 + /* "_pydevd_bundle/pydevd_cython.pyx":1535 * py_db.thread_analyser.log_event(frame) * * if py_db.asyncio_analyser is not None: # <<<<<<<<<<<<<< @@ -29881,29 +29881,29 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1541 + /* "_pydevd_bundle/pydevd_cython.pyx":1540 * # Note: it's important that the context name is also given because we may hit something once * # in the global context and another in the local context. * frame_cache_key = (frame.f_code.co_firstlineno, frame.f_code.co_name, frame.f_code.co_filename) # <<<<<<<<<<<<<< * if not is_stepping and frame_cache_key in cache_skips: * # print('skipped: trace_dispatch (cache hit)', frame_cache_key, frame.f_lineno, event, frame.f_code.co_name) */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1541, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1540, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_co_firstlineno); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1541, __pyx_L3_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_co_firstlineno); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1540, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1541, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1540, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_co_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1541, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_co_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1540, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1541, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1540, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1541, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1540, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1541, __pyx_L3_error) + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1540, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); @@ -29917,7 +29917,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __pyx_v_frame_cache_key = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1542 + /* "_pydevd_bundle/pydevd_cython.pyx":1541 * # in the global context and another in the local context. * frame_cache_key = (frame.f_code.co_firstlineno, frame.f_code.co_name, frame.f_code.co_filename) * if not is_stepping and frame_cache_key in cache_skips: # <<<<<<<<<<<<<< @@ -29932,30 +29932,30 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal } if (unlikely(__pyx_v_cache_skips == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 1542, __pyx_L3_error) + __PYX_ERR(0, 1541, __pyx_L3_error) } - __pyx_t_11 = (__Pyx_PyDict_ContainsTF(__pyx_v_frame_cache_key, __pyx_v_cache_skips, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1542, __pyx_L3_error) + __pyx_t_11 = (__Pyx_PyDict_ContainsTF(__pyx_v_frame_cache_key, __pyx_v_cache_skips, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1541, __pyx_L3_error) __pyx_t_16 = (__pyx_t_11 != 0); __pyx_t_12 = __pyx_t_16; __pyx_L26_bool_binop_done:; if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":1544 + /* "_pydevd_bundle/pydevd_cython.pyx":1543 * if not is_stepping and frame_cache_key in cache_skips: * # print('skipped: trace_dispatch (cache hit)', frame_cache_key, frame.f_lineno, event, frame.f_code.co_name) * if event != 'call': frame.f_trace = NO_FTRACE # <<<<<<<<<<<<<< * return None * */ - __pyx_t_12 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_NE)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1544, __pyx_L3_error) + __pyx_t_12 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_NE)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1543, __pyx_L3_error) if (__pyx_t_12) { - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1544, __pyx_L3_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1543, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_5) < 0) __PYX_ERR(0, 1544, __pyx_L3_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_5) < 0) __PYX_ERR(0, 1543, __pyx_L3_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } - /* "_pydevd_bundle/pydevd_cython.pyx":1545 + /* "_pydevd_bundle/pydevd_cython.pyx":1544 * # print('skipped: trace_dispatch (cache hit)', frame_cache_key, frame.f_lineno, event, frame.f_code.co_name) * if event != 'call': frame.f_trace = NO_FTRACE * return None # <<<<<<<<<<<<<< @@ -29966,7 +29966,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L7_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":1542 + /* "_pydevd_bundle/pydevd_cython.pyx":1541 * # in the global context and another in the local context. * frame_cache_key = (frame.f_code.co_firstlineno, frame.f_code.co_name, frame.f_code.co_filename) * if not is_stepping and frame_cache_key in cache_skips: # <<<<<<<<<<<<<< @@ -29975,7 +29975,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1547 + /* "_pydevd_bundle/pydevd_cython.pyx":1546 * return None * * try: # <<<<<<<<<<<<<< @@ -29991,29 +29991,29 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __Pyx_XGOTREF(__pyx_t_13); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":1549 + /* "_pydevd_bundle/pydevd_cython.pyx":1548 * try: * # Make fast path faster! * abs_path_real_path_and_base = NORM_PATHS_AND_BASE_CONTAINER[frame.f_code.co_filename] # <<<<<<<<<<<<<< * except: * abs_path_real_path_and_base = get_abs_path_real_path_and_base_from_frame(frame) */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NORM_PATHS_AND_BASE_CONTAINER); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1549, __pyx_L29_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NORM_PATHS_AND_BASE_CONTAINER); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1548, __pyx_L29_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1549, __pyx_L29_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1548, __pyx_L29_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1549, __pyx_L29_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1548, __pyx_L29_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1549, __pyx_L29_error) + __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1548, __pyx_L29_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!(likely(PyTuple_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(0, 1549, __pyx_L29_error) + if (!(likely(PyTuple_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(0, 1548, __pyx_L29_error) __pyx_v_abs_path_real_path_and_base = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1547 + /* "_pydevd_bundle/pydevd_cython.pyx":1546 * return None * * try: # <<<<<<<<<<<<<< @@ -30033,7 +30033,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1550 + /* "_pydevd_bundle/pydevd_cython.pyx":1549 * # Make fast path faster! * abs_path_real_path_and_base = NORM_PATHS_AND_BASE_CONTAINER[frame.f_code.co_filename] * except: # <<<<<<<<<<<<<< @@ -30042,19 +30042,19 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.ThreadTracer.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_1, &__pyx_t_5) < 0) __PYX_ERR(0, 1550, __pyx_L31_except_error) + if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_1, &__pyx_t_5) < 0) __PYX_ERR(0, 1549, __pyx_L31_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_5); - /* "_pydevd_bundle/pydevd_cython.pyx":1551 + /* "_pydevd_bundle/pydevd_cython.pyx":1550 * abs_path_real_path_and_base = NORM_PATHS_AND_BASE_CONTAINER[frame.f_code.co_filename] * except: * abs_path_real_path_and_base = get_abs_path_real_path_and_base_from_frame(frame) # <<<<<<<<<<<<<< * * filename = abs_path_real_path_and_base[1] */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_get_abs_path_real_path_and_base); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1551, __pyx_L31_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_get_abs_path_real_path_and_base); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1550, __pyx_L31_except_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { @@ -30068,10 +30068,10 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal } __pyx_t_6 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_frame) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_frame); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1551, __pyx_L31_except_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1550, __pyx_L31_except_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (!(likely(PyTuple_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(0, 1551, __pyx_L31_except_error) + if (!(likely(PyTuple_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(0, 1550, __pyx_L31_except_error) __Pyx_XDECREF_SET(__pyx_v_abs_path_real_path_and_base, ((PyObject*)__pyx_t_6)); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -30081,7 +30081,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal } __pyx_L31_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":1547 + /* "_pydevd_bundle/pydevd_cython.pyx":1546 * return None * * try: # <<<<<<<<<<<<<< @@ -30101,7 +30101,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __pyx_L34_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":1553 + /* "_pydevd_bundle/pydevd_cython.pyx":1552 * abs_path_real_path_and_base = get_abs_path_real_path_and_base_from_frame(frame) * * filename = abs_path_real_path_and_base[1] # <<<<<<<<<<<<<< @@ -30110,28 +30110,28 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal */ if (unlikely(__pyx_v_abs_path_real_path_and_base == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1553, __pyx_L3_error) + __PYX_ERR(0, 1552, __pyx_L3_error) } - __pyx_t_5 = __Pyx_GetItemInt_Tuple(__pyx_v_abs_path_real_path_and_base, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1553, __pyx_L3_error) + __pyx_t_5 = __Pyx_GetItemInt_Tuple(__pyx_v_abs_path_real_path_and_base, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1552, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); - if (!(likely(PyString_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(0, 1553, __pyx_L3_error) + if (!(likely(PyString_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(0, 1552, __pyx_L3_error) __pyx_v_filename = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1554 + /* "_pydevd_bundle/pydevd_cython.pyx":1553 * * filename = abs_path_real_path_and_base[1] * file_type = get_file_type(abs_path_real_path_and_base[-1]) # we don't want to debug threading or anything related to pydevd # <<<<<<<<<<<<<< * * if file_type is not None: */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_get_file_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1554, __pyx_L3_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_get_file_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1553, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_abs_path_real_path_and_base == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1554, __pyx_L3_error) + __PYX_ERR(0, 1553, __pyx_L3_error) } - __pyx_t_4 = __Pyx_GetItemInt_Tuple(__pyx_v_abs_path_real_path_and_base, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1554, __pyx_L3_error) + __pyx_t_4 = __Pyx_GetItemInt_Tuple(__pyx_v_abs_path_real_path_and_base, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1553, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { @@ -30146,13 +30146,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1554, __pyx_L3_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1553, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_file_type = __pyx_t_5; __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1556 + /* "_pydevd_bundle/pydevd_cython.pyx":1555 * file_type = get_file_type(abs_path_real_path_and_base[-1]) # we don't want to debug threading or anything related to pydevd * * if file_type is not None: # <<<<<<<<<<<<<< @@ -30163,27 +30163,27 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __pyx_t_16 = (__pyx_t_12 != 0); if (__pyx_t_16) { - /* "_pydevd_bundle/pydevd_cython.pyx":1557 + /* "_pydevd_bundle/pydevd_cython.pyx":1556 * * if file_type is not None: * if file_type == 1: # inlining LIB_FILE = 1 # <<<<<<<<<<<<<< * if not py_db.in_project_scope(filename): * # print('skipped: trace_dispatch (not in scope)', abs_path_real_path_and_base[-1], frame.f_lineno, event, frame.f_code.co_name, file_type) */ - __pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_v_file_type, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1557, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_v_file_type, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1556, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1557, __pyx_L3_error) + __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1556, __pyx_L3_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_16) { - /* "_pydevd_bundle/pydevd_cython.pyx":1558 + /* "_pydevd_bundle/pydevd_cython.pyx":1557 * if file_type is not None: * if file_type == 1: # inlining LIB_FILE = 1 * if not py_db.in_project_scope(filename): # <<<<<<<<<<<<<< * # print('skipped: trace_dispatch (not in scope)', abs_path_real_path_and_base[-1], frame.f_lineno, event, frame.f_code.co_name, file_type) * cache_skips[frame_cache_key] = 1 */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_in_project_scope); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1558, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_in_project_scope); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1557, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { @@ -30197,15 +30197,15 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal } __pyx_t_5 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_4, __pyx_v_filename) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_filename); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1558, __pyx_L3_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1557, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1558, __pyx_L3_error) + __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1557, __pyx_L3_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_12 = ((!__pyx_t_16) != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":1560 + /* "_pydevd_bundle/pydevd_cython.pyx":1559 * if not py_db.in_project_scope(filename): * # print('skipped: trace_dispatch (not in scope)', abs_path_real_path_and_base[-1], frame.f_lineno, event, frame.f_code.co_name, file_type) * cache_skips[frame_cache_key] = 1 # <<<<<<<<<<<<<< @@ -30214,26 +30214,26 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal */ if (unlikely(__pyx_v_cache_skips == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1560, __pyx_L3_error) + __PYX_ERR(0, 1559, __pyx_L3_error) } - if (unlikely(PyDict_SetItem(__pyx_v_cache_skips, __pyx_v_frame_cache_key, __pyx_int_1) < 0)) __PYX_ERR(0, 1560, __pyx_L3_error) + if (unlikely(PyDict_SetItem(__pyx_v_cache_skips, __pyx_v_frame_cache_key, __pyx_int_1) < 0)) __PYX_ERR(0, 1559, __pyx_L3_error) - /* "_pydevd_bundle/pydevd_cython.pyx":1561 + /* "_pydevd_bundle/pydevd_cython.pyx":1560 * # print('skipped: trace_dispatch (not in scope)', abs_path_real_path_and_base[-1], frame.f_lineno, event, frame.f_code.co_name, file_type) * cache_skips[frame_cache_key] = 1 * if event != 'call': frame.f_trace = NO_FTRACE # <<<<<<<<<<<<<< * return None * else: */ - __pyx_t_12 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_NE)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1561, __pyx_L3_error) + __pyx_t_12 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_NE)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1560, __pyx_L3_error) if (__pyx_t_12) { - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1561, __pyx_L3_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1560, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_5) < 0) __PYX_ERR(0, 1561, __pyx_L3_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_5) < 0) __PYX_ERR(0, 1560, __pyx_L3_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } - /* "_pydevd_bundle/pydevd_cython.pyx":1562 + /* "_pydevd_bundle/pydevd_cython.pyx":1561 * cache_skips[frame_cache_key] = 1 * if event != 'call': frame.f_trace = NO_FTRACE * return None # <<<<<<<<<<<<<< @@ -30244,7 +30244,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L7_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":1558 + /* "_pydevd_bundle/pydevd_cython.pyx":1557 * if file_type is not None: * if file_type == 1: # inlining LIB_FILE = 1 * if not py_db.in_project_scope(filename): # <<<<<<<<<<<<<< @@ -30253,7 +30253,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1557 + /* "_pydevd_bundle/pydevd_cython.pyx":1556 * * if file_type is not None: * if file_type == 1: # inlining LIB_FILE = 1 # <<<<<<<<<<<<<< @@ -30263,7 +30263,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal goto __pyx_L38; } - /* "_pydevd_bundle/pydevd_cython.pyx":1565 + /* "_pydevd_bundle/pydevd_cython.pyx":1564 * else: * # print('skipped: trace_dispatch', abs_path_real_path_and_base[-1], frame.f_lineno, event, frame.f_code.co_name, file_type) * cache_skips[frame_cache_key] = 1 # <<<<<<<<<<<<<< @@ -30273,26 +30273,26 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal /*else*/ { if (unlikely(__pyx_v_cache_skips == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1565, __pyx_L3_error) + __PYX_ERR(0, 1564, __pyx_L3_error) } - if (unlikely(PyDict_SetItem(__pyx_v_cache_skips, __pyx_v_frame_cache_key, __pyx_int_1) < 0)) __PYX_ERR(0, 1565, __pyx_L3_error) + if (unlikely(PyDict_SetItem(__pyx_v_cache_skips, __pyx_v_frame_cache_key, __pyx_int_1) < 0)) __PYX_ERR(0, 1564, __pyx_L3_error) - /* "_pydevd_bundle/pydevd_cython.pyx":1566 + /* "_pydevd_bundle/pydevd_cython.pyx":1565 * # print('skipped: trace_dispatch', abs_path_real_path_and_base[-1], frame.f_lineno, event, frame.f_code.co_name, file_type) * cache_skips[frame_cache_key] = 1 * if event != 'call': frame.f_trace = NO_FTRACE # <<<<<<<<<<<<<< * return None * */ - __pyx_t_12 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_NE)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1566, __pyx_L3_error) + __pyx_t_12 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_NE)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1565, __pyx_L3_error) if (__pyx_t_12) { - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1566, __pyx_L3_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1565, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_5) < 0) __PYX_ERR(0, 1566, __pyx_L3_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_5) < 0) __PYX_ERR(0, 1565, __pyx_L3_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } - /* "_pydevd_bundle/pydevd_cython.pyx":1567 + /* "_pydevd_bundle/pydevd_cython.pyx":1566 * cache_skips[frame_cache_key] = 1 * if event != 'call': frame.f_trace = NO_FTRACE * return None # <<<<<<<<<<<<<< @@ -30305,7 +30305,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal } __pyx_L38:; - /* "_pydevd_bundle/pydevd_cython.pyx":1556 + /* "_pydevd_bundle/pydevd_cython.pyx":1555 * file_type = get_file_type(abs_path_real_path_and_base[-1]) # we don't want to debug threading or anything related to pydevd * * if file_type is not None: # <<<<<<<<<<<<<< @@ -30314,7 +30314,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1569 + /* "_pydevd_bundle/pydevd_cython.pyx":1568 * return None * * if is_stepping: # <<<<<<<<<<<<<< @@ -30324,23 +30324,23 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __pyx_t_12 = (__pyx_v_is_stepping != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":1570 + /* "_pydevd_bundle/pydevd_cython.pyx":1569 * * if is_stepping: * if py_db.is_filter_enabled and py_db.is_ignored_by_filters(filename): # <<<<<<<<<<<<<< * # ignore files matching stepping filters * if event != 'call': frame.f_trace = NO_FTRACE */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_is_filter_enabled); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1570, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_is_filter_enabled); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1569, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1570, __pyx_L3_error) + __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1569, __pyx_L3_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_16) { } else { __pyx_t_12 = __pyx_t_16; goto __pyx_L44_bool_binop_done; } - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_is_ignored_by_filters); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1570, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_is_ignored_by_filters); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1569, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { @@ -30354,31 +30354,31 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal } __pyx_t_5 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_4, __pyx_v_filename) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_filename); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1570, __pyx_L3_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1569, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1570, __pyx_L3_error) + __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1569, __pyx_L3_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_12 = __pyx_t_16; __pyx_L44_bool_binop_done:; if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":1572 + /* "_pydevd_bundle/pydevd_cython.pyx":1571 * if py_db.is_filter_enabled and py_db.is_ignored_by_filters(filename): * # ignore files matching stepping filters * if event != 'call': frame.f_trace = NO_FTRACE # <<<<<<<<<<<<<< * return None * if py_db.is_filter_libraries and not py_db.in_project_scope(filename): */ - __pyx_t_12 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_NE)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1572, __pyx_L3_error) + __pyx_t_12 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_NE)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1571, __pyx_L3_error) if (__pyx_t_12) { - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1572, __pyx_L3_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1571, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_5) < 0) __PYX_ERR(0, 1572, __pyx_L3_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_5) < 0) __PYX_ERR(0, 1571, __pyx_L3_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } - /* "_pydevd_bundle/pydevd_cython.pyx":1573 + /* "_pydevd_bundle/pydevd_cython.pyx":1572 * # ignore files matching stepping filters * if event != 'call': frame.f_trace = NO_FTRACE * return None # <<<<<<<<<<<<<< @@ -30389,7 +30389,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L7_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":1570 + /* "_pydevd_bundle/pydevd_cython.pyx":1569 * * if is_stepping: * if py_db.is_filter_enabled and py_db.is_ignored_by_filters(filename): # <<<<<<<<<<<<<< @@ -30398,23 +30398,23 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1574 + /* "_pydevd_bundle/pydevd_cython.pyx":1573 * if event != 'call': frame.f_trace = NO_FTRACE * return None * if py_db.is_filter_libraries and not py_db.in_project_scope(filename): # <<<<<<<<<<<<<< * # ignore library files while stepping * if event != 'call': frame.f_trace = NO_FTRACE */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_is_filter_libraries); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1574, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_is_filter_libraries); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1573, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1574, __pyx_L3_error) + __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1573, __pyx_L3_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_16) { } else { __pyx_t_12 = __pyx_t_16; goto __pyx_L48_bool_binop_done; } - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_in_project_scope); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1574, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_in_project_scope); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1573, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { @@ -30428,32 +30428,32 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal } __pyx_t_5 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_4, __pyx_v_filename) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_filename); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1574, __pyx_L3_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1573, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1574, __pyx_L3_error) + __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1573, __pyx_L3_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_11 = ((!__pyx_t_16) != 0); __pyx_t_12 = __pyx_t_11; __pyx_L48_bool_binop_done:; if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":1576 + /* "_pydevd_bundle/pydevd_cython.pyx":1575 * if py_db.is_filter_libraries and not py_db.in_project_scope(filename): * # ignore library files while stepping * if event != 'call': frame.f_trace = NO_FTRACE # <<<<<<<<<<<<<< * return None * */ - __pyx_t_12 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_NE)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1576, __pyx_L3_error) + __pyx_t_12 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_NE)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1575, __pyx_L3_error) if (__pyx_t_12) { - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1576, __pyx_L3_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1575, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_5) < 0) __PYX_ERR(0, 1576, __pyx_L3_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_5) < 0) __PYX_ERR(0, 1575, __pyx_L3_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } - /* "_pydevd_bundle/pydevd_cython.pyx":1577 + /* "_pydevd_bundle/pydevd_cython.pyx":1576 * # ignore library files while stepping * if event != 'call': frame.f_trace = NO_FTRACE * return None # <<<<<<<<<<<<<< @@ -30464,7 +30464,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L7_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":1574 + /* "_pydevd_bundle/pydevd_cython.pyx":1573 * if event != 'call': frame.f_trace = NO_FTRACE * return None * if py_db.is_filter_libraries and not py_db.in_project_scope(filename): # <<<<<<<<<<<<<< @@ -30473,7 +30473,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1569 + /* "_pydevd_bundle/pydevd_cython.pyx":1568 * return None * * if is_stepping: # <<<<<<<<<<<<<< @@ -30482,7 +30482,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1580 + /* "_pydevd_bundle/pydevd_cython.pyx":1579 * * # print('trace_dispatch', base, frame.f_lineno, event, frame.f_code.co_name, file_type) * if additional_info.is_tracing: # <<<<<<<<<<<<<< @@ -30492,22 +30492,22 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __pyx_t_12 = (__pyx_v_additional_info->is_tracing != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":1581 + /* "_pydevd_bundle/pydevd_cython.pyx":1580 * # print('trace_dispatch', base, frame.f_lineno, event, frame.f_code.co_name, file_type) * if additional_info.is_tracing: * if event != 'call': frame.f_trace = NO_FTRACE # <<<<<<<<<<<<<< * return None # we don't wan't to trace code invoked from pydevd_frame.trace_dispatch * */ - __pyx_t_12 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_NE)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1581, __pyx_L3_error) + __pyx_t_12 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_NE)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1580, __pyx_L3_error) if (__pyx_t_12) { - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1581, __pyx_L3_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1580, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_5) < 0) __PYX_ERR(0, 1581, __pyx_L3_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_5) < 0) __PYX_ERR(0, 1580, __pyx_L3_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } - /* "_pydevd_bundle/pydevd_cython.pyx":1582 + /* "_pydevd_bundle/pydevd_cython.pyx":1581 * if additional_info.is_tracing: * if event != 'call': frame.f_trace = NO_FTRACE * return None # we don't wan't to trace code invoked from pydevd_frame.trace_dispatch # <<<<<<<<<<<<<< @@ -30518,7 +30518,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L7_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":1580 + /* "_pydevd_bundle/pydevd_cython.pyx":1579 * * # print('trace_dispatch', base, frame.f_lineno, event, frame.f_code.co_name, file_type) * if additional_info.is_tracing: # <<<<<<<<<<<<<< @@ -30527,14 +30527,14 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1588 + /* "_pydevd_bundle/pydevd_cython.pyx":1587 * ret = PyDBFrame( * ( * py_db, filename, additional_info, t, frame_skips_cache, frame_cache_key, # <<<<<<<<<<<<<< * ) * ).trace_dispatch(frame, event, arg) */ - __pyx_t_5 = PyTuple_New(6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1588, __pyx_L3_error) + __pyx_t_5 = PyTuple_New(6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1587, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_py_db); __Pyx_GIVEREF(__pyx_v_py_db); @@ -30555,32 +30555,32 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __Pyx_GIVEREF(__pyx_v_frame_cache_key); PyTuple_SET_ITEM(__pyx_t_5, 5, __pyx_v_frame_cache_key); - /* "_pydevd_bundle/pydevd_cython.pyx":1586 + /* "_pydevd_bundle/pydevd_cython.pyx":1585 * # Just create PyDBFrame directly (removed support for Python versions < 2.5, which required keeping a weak * # reference to the frame). * ret = PyDBFrame( # <<<<<<<<<<<<<< * ( * py_db, filename, additional_info, t, frame_skips_cache, frame_cache_key, */ - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBFrame), __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1586, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBFrame), __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1585, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1590 + /* "_pydevd_bundle/pydevd_cython.pyx":1589 * py_db, filename, additional_info, t, frame_skips_cache, frame_cache_key, * ) * ).trace_dispatch(frame, event, arg) # <<<<<<<<<<<<<< * if ret is None: * cache_skips[frame_cache_key] = 1 */ - if (!(likely(PyString_CheckExact(__pyx_v_event))||((__pyx_v_event) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_v_event)->tp_name), 0))) __PYX_ERR(0, 1590, __pyx_L3_error) - __pyx_t_5 = ((struct __pyx_vtabstruct_14_pydevd_bundle_13pydevd_cython_PyDBFrame *)((struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *)__pyx_t_1)->__pyx_vtab)->trace_dispatch(((struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *)__pyx_t_1), __pyx_v_frame, ((PyObject*)__pyx_v_event), __pyx_v_arg, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1590, __pyx_L3_error) + if (!(likely(PyString_CheckExact(__pyx_v_event))||((__pyx_v_event) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_v_event)->tp_name), 0))) __PYX_ERR(0, 1589, __pyx_L3_error) + __pyx_t_5 = ((struct __pyx_vtabstruct_14_pydevd_bundle_13pydevd_cython_PyDBFrame *)((struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *)__pyx_t_1)->__pyx_vtab)->trace_dispatch(((struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *)__pyx_t_1), __pyx_v_frame, ((PyObject*)__pyx_v_event), __pyx_v_arg, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1589, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_ret = __pyx_t_5; __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1591 + /* "_pydevd_bundle/pydevd_cython.pyx":1590 * ) * ).trace_dispatch(frame, event, arg) * if ret is None: # <<<<<<<<<<<<<< @@ -30591,7 +30591,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __pyx_t_11 = (__pyx_t_12 != 0); if (__pyx_t_11) { - /* "_pydevd_bundle/pydevd_cython.pyx":1592 + /* "_pydevd_bundle/pydevd_cython.pyx":1591 * ).trace_dispatch(frame, event, arg) * if ret is None: * cache_skips[frame_cache_key] = 1 # <<<<<<<<<<<<<< @@ -30600,26 +30600,26 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal */ if (unlikely(__pyx_v_cache_skips == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1592, __pyx_L3_error) + __PYX_ERR(0, 1591, __pyx_L3_error) } - if (unlikely(PyDict_SetItem(__pyx_v_cache_skips, __pyx_v_frame_cache_key, __pyx_int_1) < 0)) __PYX_ERR(0, 1592, __pyx_L3_error) + if (unlikely(PyDict_SetItem(__pyx_v_cache_skips, __pyx_v_frame_cache_key, __pyx_int_1) < 0)) __PYX_ERR(0, 1591, __pyx_L3_error) - /* "_pydevd_bundle/pydevd_cython.pyx":1593 + /* "_pydevd_bundle/pydevd_cython.pyx":1592 * if ret is None: * cache_skips[frame_cache_key] = 1 * if event != 'call': frame.f_trace = NO_FTRACE # <<<<<<<<<<<<<< * return None * */ - __pyx_t_11 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_NE)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1593, __pyx_L3_error) + __pyx_t_11 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_NE)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1592, __pyx_L3_error) if (__pyx_t_11) { - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1593, __pyx_L3_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1592, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_5) < 0) __PYX_ERR(0, 1593, __pyx_L3_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_5) < 0) __PYX_ERR(0, 1592, __pyx_L3_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } - /* "_pydevd_bundle/pydevd_cython.pyx":1594 + /* "_pydevd_bundle/pydevd_cython.pyx":1593 * cache_skips[frame_cache_key] = 1 * if event != 'call': frame.f_trace = NO_FTRACE * return None # <<<<<<<<<<<<<< @@ -30630,7 +30630,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L7_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":1591 + /* "_pydevd_bundle/pydevd_cython.pyx":1590 * ) * ).trace_dispatch(frame, event, arg) * if ret is None: # <<<<<<<<<<<<<< @@ -30639,28 +30639,28 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1597 + /* "_pydevd_bundle/pydevd_cython.pyx":1596 * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * ret = SafeCallWrapper(ret) # <<<<<<<<<<<<<< * # ENDIF * frame.f_trace = ret # Make sure we keep the returned tracer. */ - __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper), __pyx_v_ret); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1597, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper), __pyx_v_ret); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1596, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF_SET(__pyx_v_ret, __pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1599 + /* "_pydevd_bundle/pydevd_cython.pyx":1598 * ret = SafeCallWrapper(ret) * # ENDIF * frame.f_trace = ret # Make sure we keep the returned tracer. # <<<<<<<<<<<<<< * return ret * */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_v_ret) < 0) __PYX_ERR(0, 1599, __pyx_L3_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_v_ret) < 0) __PYX_ERR(0, 1598, __pyx_L3_error) - /* "_pydevd_bundle/pydevd_cython.pyx":1600 + /* "_pydevd_bundle/pydevd_cython.pyx":1599 * # ENDIF * frame.f_trace = ret # Make sure we keep the returned tracer. * return ret # <<<<<<<<<<<<<< @@ -30672,7 +30672,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __pyx_r = __pyx_v_ret; goto __pyx_L7_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":1514 + /* "_pydevd_bundle/pydevd_cython.pyx":1513 * is_stepping = pydev_step_cmd != -1 * * try: # <<<<<<<<<<<<<< @@ -30688,7 +30688,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1602 + /* "_pydevd_bundle/pydevd_cython.pyx":1601 * return ret * * except SystemExit: # <<<<<<<<<<<<<< @@ -30698,27 +30698,27 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_SystemExit); if (__pyx_t_7) { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.ThreadTracer.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_4) < 0) __PYX_ERR(0, 1602, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_4) < 0) __PYX_ERR(0, 1601, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_4); - /* "_pydevd_bundle/pydevd_cython.pyx":1603 + /* "_pydevd_bundle/pydevd_cython.pyx":1602 * * except SystemExit: * if event != 'call': frame.f_trace = NO_FTRACE # <<<<<<<<<<<<<< * return None * */ - __pyx_t_11 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_NE)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1603, __pyx_L5_except_error) + __pyx_t_11 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_NE)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1602, __pyx_L5_except_error) if (__pyx_t_11) { - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1603, __pyx_L5_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1602, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_6); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_6) < 0) __PYX_ERR(0, 1603, __pyx_L5_except_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_6) < 0) __PYX_ERR(0, 1602, __pyx_L5_except_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } - /* "_pydevd_bundle/pydevd_cython.pyx":1604 + /* "_pydevd_bundle/pydevd_cython.pyx":1603 * except SystemExit: * if event != 'call': frame.f_trace = NO_FTRACE * return None # <<<<<<<<<<<<<< @@ -30733,7 +30733,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal goto __pyx_L6_except_return; } - /* "_pydevd_bundle/pydevd_cython.pyx":1606 + /* "_pydevd_bundle/pydevd_cython.pyx":1605 * return None * * except Exception: # <<<<<<<<<<<<<< @@ -30743,40 +30743,40 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_7) { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.ThreadTracer.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_1, &__pyx_t_5) < 0) __PYX_ERR(0, 1606, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_1, &__pyx_t_5) < 0) __PYX_ERR(0, 1605, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_5); - /* "_pydevd_bundle/pydevd_cython.pyx":1607 + /* "_pydevd_bundle/pydevd_cython.pyx":1606 * * except Exception: * if py_db._finish_debugging_session: # <<<<<<<<<<<<<< * if event != 'call': frame.f_trace = NO_FTRACE * return None # Don't log errors when we're shutting down. */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_finish_debugging_session); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1607, __pyx_L5_except_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_finish_debugging_session); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1606, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1607, __pyx_L5_except_error) + __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1606, __pyx_L5_except_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_11) { - /* "_pydevd_bundle/pydevd_cython.pyx":1608 + /* "_pydevd_bundle/pydevd_cython.pyx":1607 * except Exception: * if py_db._finish_debugging_session: * if event != 'call': frame.f_trace = NO_FTRACE # <<<<<<<<<<<<<< * return None # Don't log errors when we're shutting down. * # Log it */ - __pyx_t_11 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_NE)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1608, __pyx_L5_except_error) + __pyx_t_11 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_NE)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1607, __pyx_L5_except_error) if (__pyx_t_11) { - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1608, __pyx_L5_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1607, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_6); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_6) < 0) __PYX_ERR(0, 1608, __pyx_L5_except_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_6) < 0) __PYX_ERR(0, 1607, __pyx_L5_except_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } - /* "_pydevd_bundle/pydevd_cython.pyx":1609 + /* "_pydevd_bundle/pydevd_cython.pyx":1608 * if py_db._finish_debugging_session: * if event != 'call': frame.f_trace = NO_FTRACE * return None # Don't log errors when we're shutting down. # <<<<<<<<<<<<<< @@ -30790,7 +30790,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L6_except_return; - /* "_pydevd_bundle/pydevd_cython.pyx":1607 + /* "_pydevd_bundle/pydevd_cython.pyx":1606 * * except Exception: * if py_db._finish_debugging_session: # <<<<<<<<<<<<<< @@ -30799,7 +30799,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1611 + /* "_pydevd_bundle/pydevd_cython.pyx":1610 * return None # Don't log errors when we're shutting down. * # Log it * try: # <<<<<<<<<<<<<< @@ -30815,30 +30815,30 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __Pyx_XGOTREF(__pyx_t_15); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":1612 + /* "_pydevd_bundle/pydevd_cython.pyx":1611 * # Log it * try: * if traceback is not None: # <<<<<<<<<<<<<< * # This can actually happen during the interpreter shutdown in Python 2.7 * traceback.print_exc() */ - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_traceback); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1612, __pyx_L62_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_traceback); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1611, __pyx_L62_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_11 = (__pyx_t_6 != Py_None); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_12 = (__pyx_t_11 != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":1614 + /* "_pydevd_bundle/pydevd_cython.pyx":1613 * if traceback is not None: * # This can actually happen during the interpreter shutdown in Python 2.7 * traceback.print_exc() # <<<<<<<<<<<<<< * except: * # Error logging? We're really in the interpreter shutdown... */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_traceback); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1614, __pyx_L62_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_traceback); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1613, __pyx_L62_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1614, __pyx_L62_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1613, __pyx_L62_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; @@ -30853,12 +30853,12 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal } __pyx_t_6 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1614, __pyx_L62_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1613, __pyx_L62_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1612 + /* "_pydevd_bundle/pydevd_cython.pyx":1611 * # Log it * try: * if traceback is not None: # <<<<<<<<<<<<<< @@ -30867,7 +30867,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1611 + /* "_pydevd_bundle/pydevd_cython.pyx":1610 * return None # Don't log errors when we're shutting down. * # Log it * try: # <<<<<<<<<<<<<< @@ -30884,7 +30884,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1615 + /* "_pydevd_bundle/pydevd_cython.pyx":1614 * # This can actually happen during the interpreter shutdown in Python 2.7 * traceback.print_exc() * except: # <<<<<<<<<<<<<< @@ -30903,22 +30903,22 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal __pyx_L69_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":1619 + /* "_pydevd_bundle/pydevd_cython.pyx":1618 * # (https://github.com/fabioz/PyDev.Debugger/issues/8) * pass * if event != 'call': frame.f_trace = NO_FTRACE # <<<<<<<<<<<<<< * return None * */ - __pyx_t_12 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_NE)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1619, __pyx_L5_except_error) + __pyx_t_12 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_NE)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1618, __pyx_L5_except_error) if (__pyx_t_12) { - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1619, __pyx_L5_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1618, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_6); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_6) < 0) __PYX_ERR(0, 1619, __pyx_L5_except_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_frame, __pyx_n_s_f_trace, __pyx_t_6) < 0) __PYX_ERR(0, 1618, __pyx_L5_except_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } - /* "_pydevd_bundle/pydevd_cython.pyx":1620 + /* "_pydevd_bundle/pydevd_cython.pyx":1619 * pass * if event != 'call': frame.f_trace = NO_FTRACE * return None # <<<<<<<<<<<<<< @@ -30935,7 +30935,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":1514 + /* "_pydevd_bundle/pydevd_cython.pyx":1513 * is_stepping = pydev_step_cmd != -1 * * try: # <<<<<<<<<<<<<< @@ -30961,7 +30961,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal goto __pyx_L0; } - /* "_pydevd_bundle/pydevd_cython.pyx":1486 + /* "_pydevd_bundle/pydevd_cython.pyx":1485 * # ENDIF * * def __call__(self, frame, event, arg): # <<<<<<<<<<<<<< @@ -30995,7 +30995,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__cal return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":1476 +/* "_pydevd_bundle/pydevd_cython.pyx":1475 * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * cdef class ThreadTracer: * cdef public tuple _args; # <<<<<<<<<<<<<< @@ -31053,7 +31053,7 @@ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_5_args_2__se const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); - if (!(likely(PyTuple_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(0, 1476, __pyx_L1_error) + if (!(likely(PyTuple_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(0, 1475, __pyx_L1_error) __pyx_t_1 = __pyx_v_value; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); @@ -31396,7 +31396,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_6__set return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":1635 +/* "_pydevd_bundle/pydevd_cython.pyx":1634 * _original_call = ThreadTracer.__call__ * * def __call__(self, frame, event, arg): # <<<<<<<<<<<<<< @@ -31445,23 +31445,23 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_17__call__(PyObject * case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_frame)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__call__", 1, 4, 4, 1); __PYX_ERR(0, 1635, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__call__", 1, 4, 4, 1); __PYX_ERR(0, 1634, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__call__", 1, 4, 4, 2); __PYX_ERR(0, 1635, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__call__", 1, 4, 4, 2); __PYX_ERR(0, 1634, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__call__", 1, 4, 4, 3); __PYX_ERR(0, 1635, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__call__", 1, 4, 4, 3); __PYX_ERR(0, 1634, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__call__") < 0)) __PYX_ERR(0, 1635, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__call__") < 0)) __PYX_ERR(0, 1634, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { goto __pyx_L5_argtuple_error; @@ -31478,7 +31478,7 @@ static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_17__call__(PyObject * } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__call__", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1635, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__call__", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1634, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -31504,28 +31504,28 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_16__call__(CYTHON_UNU int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__call__", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":1636 + /* "_pydevd_bundle/pydevd_cython.pyx":1635 * * def __call__(self, frame, event, arg): * _tid_to_last_frame[self._args[1].ident] = frame # <<<<<<<<<<<<<< * return _original_call(self, frame, event, arg) * */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_tid_to_last_frame); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1636, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_tid_to_last_frame); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_args_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1636, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_args_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1636, __pyx_L1_error) + __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ident); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1636, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ident); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_t_2, __pyx_v_frame) < 0)) __PYX_ERR(0, 1636, __pyx_L1_error) + if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_t_2, __pyx_v_frame) < 0)) __PYX_ERR(0, 1635, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1637 + /* "_pydevd_bundle/pydevd_cython.pyx":1636 * def __call__(self, frame, event, arg): * _tid_to_last_frame[self._args[1].ident] = frame * return _original_call(self, frame, event, arg) # <<<<<<<<<<<<<< @@ -31533,7 +31533,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_16__call__(CYTHON_UNU * ThreadTracer.__call__ = __call__ */ __Pyx_XDECREF(__pyx_r); - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_original_call); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1637, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_original_call); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = NULL; __pyx_t_4 = 0; @@ -31550,7 +31550,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_16__call__(CYTHON_UNU #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_self, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1637, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1636, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -31558,13 +31558,13 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_16__call__(CYTHON_UNU #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_self, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1637, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1636, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_5 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1637, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; @@ -31581,7 +31581,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_16__call__(CYTHON_UNU __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); PyTuple_SET_ITEM(__pyx_t_5, 3+__pyx_t_4, __pyx_v_arg); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1637, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } @@ -31590,7 +31590,7 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_16__call__(CYTHON_UNU __pyx_t_2 = 0; goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":1635 + /* "_pydevd_bundle/pydevd_cython.pyx":1634 * _original_call = ThreadTracer.__call__ * * def __call__(self, frame, event, arg): # <<<<<<<<<<<<<< @@ -36223,8 +36223,8 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_compile, __pyx_k_compile, sizeof(__pyx_k_compile), 0, 0, 1, 1}, {&__pyx_n_s_condition, __pyx_k_condition, sizeof(__pyx_k_condition), 0, 0, 1, 1}, {&__pyx_n_s_conditional_breakpoint_exception, __pyx_k_conditional_breakpoint_exception, sizeof(__pyx_k_conditional_breakpoint_exception), 0, 0, 1, 1}, - {&__pyx_n_s_currentThread, __pyx_k_currentThread, sizeof(__pyx_k_currentThread), 0, 0, 1, 1}, {&__pyx_n_s_current_frames, __pyx_k_current_frames, sizeof(__pyx_k_current_frames), 0, 0, 1, 1}, + {&__pyx_n_s_current_thread, __pyx_k_current_thread, sizeof(__pyx_k_current_thread), 0, 0, 1, 1}, {&__pyx_n_s_debug, __pyx_k_debug, sizeof(__pyx_k_debug), 0, 0, 1, 1}, {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1}, {&__pyx_n_s_dict_iter_values, __pyx_k_dict_iter_values, sizeof(__pyx_k_dict_iter_values), 0, 0, 1, 1}, @@ -36503,15 +36503,15 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { }; static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(0, 57, __pyx_L1_error) - __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(0, 207, __pyx_L1_error) + __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(0, 206, __pyx_L1_error) __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s_AttributeError); if (!__pyx_builtin_AttributeError) __PYX_ERR(0, 163, __pyx_L1_error) - __pyx_builtin_eval = __Pyx_GetBuiltinName(__pyx_n_s_eval); if (!__pyx_builtin_eval) __PYX_ERR(0, 229, __pyx_L1_error) - __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s_id); if (!__pyx_builtin_id) __PYX_ERR(0, 509, __pyx_L1_error) - __pyx_builtin_KeyboardInterrupt = __Pyx_GetBuiltinName(__pyx_n_s_KeyboardInterrupt); if (!__pyx_builtin_KeyboardInterrupt) __PYX_ERR(0, 547, __pyx_L1_error) - __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(0, 667, __pyx_L1_error) - __pyx_builtin_print = __Pyx_GetBuiltinName(__pyx_n_s_print); if (!__pyx_builtin_print) __PYX_ERR(0, 670, __pyx_L1_error) - __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) __PYX_ERR(0, 674, __pyx_L1_error) - __pyx_builtin_SystemExit = __Pyx_GetBuiltinName(__pyx_n_s_SystemExit); if (!__pyx_builtin_SystemExit) __PYX_ERR(0, 1602, __pyx_L1_error) + __pyx_builtin_eval = __Pyx_GetBuiltinName(__pyx_n_s_eval); if (!__pyx_builtin_eval) __PYX_ERR(0, 228, __pyx_L1_error) + __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s_id); if (!__pyx_builtin_id) __PYX_ERR(0, 508, __pyx_L1_error) + __pyx_builtin_KeyboardInterrupt = __Pyx_GetBuiltinName(__pyx_n_s_KeyboardInterrupt); if (!__pyx_builtin_KeyboardInterrupt) __PYX_ERR(0, 546, __pyx_L1_error) + __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(0, 666, __pyx_L1_error) + __pyx_builtin_print = __Pyx_GetBuiltinName(__pyx_n_s_print); if (!__pyx_builtin_print) __PYX_ERR(0, 669, __pyx_L1_error) + __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) __PYX_ERR(0, 673, __pyx_L1_error) + __pyx_builtin_SystemExit = __Pyx_GetBuiltinName(__pyx_n_s_SystemExit); if (!__pyx_builtin_SystemExit) __PYX_ERR(0, 1601, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; @@ -36532,26 +36532,26 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple__2); __Pyx_GIVEREF(__pyx_tuple__2); - /* "_pydevd_bundle/pydevd_cython.pyx":581 + /* "_pydevd_bundle/pydevd_cython.pyx":580 * def manage_return_values(self, main_debugger, frame, event, arg): * * def get_func_name(frame): # <<<<<<<<<<<<<< * code_obj = frame.f_code * func_name = code_obj.co_name */ - __pyx_tuple__3 = PyTuple_Pack(4, __pyx_n_s_frame, __pyx_n_s_code_obj, __pyx_n_s_func_name, __pyx_n_s_cls_name); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(0, 581, __pyx_L1_error) + __pyx_tuple__3 = PyTuple_Pack(4, __pyx_n_s_frame, __pyx_n_s_code_obj, __pyx_n_s_func_name, __pyx_n_s_cls_name); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(0, 580, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__3); __Pyx_GIVEREF(__pyx_tuple__3); - __pyx_codeobj__4 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__3, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pydevd_bundle_pydevd_cython_pyx, __pyx_n_s_get_func_name, 581, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__4)) __PYX_ERR(0, 581, __pyx_L1_error) + __pyx_codeobj__4 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__3, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pydevd_bundle_pydevd_cython_pyx, __pyx_n_s_get_func_name, 580, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__4)) __PYX_ERR(0, 580, __pyx_L1_error) - /* "_pydevd_bundle/pydevd_cython.pyx":1211 + /* "_pydevd_bundle/pydevd_cython.pyx":1210 * if f_unhandled.f_code.co_name in ('__bootstrap', '_bootstrap'): * # We need __bootstrap_inner, not __bootstrap. * return None, False # <<<<<<<<<<<<<< * * elif f_unhandled.f_code.co_name in ('__bootstrap_inner', '_bootstrap_inner'): */ - __pyx_tuple__6 = PyTuple_Pack(2, Py_None, Py_False); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(0, 1211, __pyx_L1_error) + __pyx_tuple__6 = PyTuple_Pack(2, Py_None, Py_False); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(0, 1210, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__6); __Pyx_GIVEREF(__pyx_tuple__6); @@ -36632,110 +36632,110 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { __Pyx_GIVEREF(__pyx_tuple__14); __pyx_codeobj__15 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__14, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pydevd_bundle_pydevd_cython_pyx, __pyx_n_s_set_additional_thread_info, 159, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__15)) __PYX_ERR(0, 159, __pyx_L1_error) - /* "_pydevd_bundle/pydevd_cython.pyx":208 + /* "_pydevd_bundle/pydevd_cython.pyx":207 * from _pydevd_bundle.pydevd_signature import send_signature_call_trace, send_signature_return_trace * except ImportError: * def send_signature_call_trace(*args, **kwargs): # <<<<<<<<<<<<<< * pass * */ - __pyx_tuple__16 = PyTuple_Pack(2, __pyx_n_s_args, __pyx_n_s_kwargs); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(0, 208, __pyx_L1_error) + __pyx_tuple__16 = PyTuple_Pack(2, __pyx_n_s_args, __pyx_n_s_kwargs); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(0, 207, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__16); __Pyx_GIVEREF(__pyx_tuple__16); - __pyx_codeobj__17 = (PyObject*)__Pyx_PyCode_New(0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__16, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pydevd_bundle_pydevd_cython_pyx, __pyx_n_s_send_signature_call_trace, 208, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__17)) __PYX_ERR(0, 208, __pyx_L1_error) + __pyx_codeobj__17 = (PyObject*)__Pyx_PyCode_New(0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__16, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pydevd_bundle_pydevd_cython_pyx, __pyx_n_s_send_signature_call_trace, 207, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__17)) __PYX_ERR(0, 207, __pyx_L1_error) - /* "_pydevd_bundle/pydevd_cython.pyx":213 + /* "_pydevd_bundle/pydevd_cython.pyx":212 * basename = os.path.basename * * IGNORE_EXCEPTION_TAG = re.compile('[^#]*#.*@IgnoreException') # <<<<<<<<<<<<<< * DEBUG_START = ('pydevd.py', '_exec') * DEBUG_START_PY3K = ('_pydev_execfile.py', 'execfile') */ - __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_s_IgnoreException); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 213, __pyx_L1_error) + __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_s_IgnoreException); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 212, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__18); __Pyx_GIVEREF(__pyx_tuple__18); - /* "_pydevd_bundle/pydevd_cython.pyx":214 + /* "_pydevd_bundle/pydevd_cython.pyx":213 * * IGNORE_EXCEPTION_TAG = re.compile('[^#]*#.*@IgnoreException') * DEBUG_START = ('pydevd.py', '_exec') # <<<<<<<<<<<<<< * DEBUG_START_PY3K = ('_pydev_execfile.py', 'execfile') * TRACE_PROPERTY = 'pydevd_traceproperty.py' */ - __pyx_tuple__19 = PyTuple_Pack(2, __pyx_kp_s_pydevd_py, __pyx_n_s_exec); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(0, 214, __pyx_L1_error) + __pyx_tuple__19 = PyTuple_Pack(2, __pyx_kp_s_pydevd_py, __pyx_n_s_exec); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(0, 213, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__19); __Pyx_GIVEREF(__pyx_tuple__19); - /* "_pydevd_bundle/pydevd_cython.pyx":215 + /* "_pydevd_bundle/pydevd_cython.pyx":214 * IGNORE_EXCEPTION_TAG = re.compile('[^#]*#.*@IgnoreException') * DEBUG_START = ('pydevd.py', '_exec') * DEBUG_START_PY3K = ('_pydev_execfile.py', 'execfile') # <<<<<<<<<<<<<< * TRACE_PROPERTY = 'pydevd_traceproperty.py' * get_file_type = DONT_TRACE.get */ - __pyx_tuple__20 = PyTuple_Pack(2, __pyx_kp_s_pydev_execfile_py, __pyx_n_s_execfile); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(0, 215, __pyx_L1_error) + __pyx_tuple__20 = PyTuple_Pack(2, __pyx_kp_s_pydev_execfile_py, __pyx_n_s_execfile); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(0, 214, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__20); __Pyx_GIVEREF(__pyx_tuple__20); - /* "_pydevd_bundle/pydevd_cython.pyx":220 + /* "_pydevd_bundle/pydevd_cython.pyx":219 * * * def handle_breakpoint_condition(py_db, info, breakpoint, new_frame): # <<<<<<<<<<<<<< * condition = breakpoint.condition * try: */ - __pyx_tuple__21 = PyTuple_Pack(11, __pyx_n_s_py_db, __pyx_n_s_info, __pyx_n_s_breakpoint, __pyx_n_s_new_frame, __pyx_n_s_condition, __pyx_n_s_e, __pyx_n_s_etype, __pyx_n_s_value, __pyx_n_s_tb, __pyx_n_s_error, __pyx_n_s_stack); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(0, 220, __pyx_L1_error) + __pyx_tuple__21 = PyTuple_Pack(11, __pyx_n_s_py_db, __pyx_n_s_info, __pyx_n_s_breakpoint, __pyx_n_s_new_frame, __pyx_n_s_condition, __pyx_n_s_e, __pyx_n_s_etype, __pyx_n_s_value, __pyx_n_s_tb, __pyx_n_s_error, __pyx_n_s_stack); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(0, 219, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__21); __Pyx_GIVEREF(__pyx_tuple__21); - __pyx_codeobj__22 = (PyObject*)__Pyx_PyCode_New(4, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pydevd_bundle_pydevd_cython_pyx, __pyx_n_s_handle_breakpoint_condition, 220, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__22)) __PYX_ERR(0, 220, __pyx_L1_error) + __pyx_codeobj__22 = (PyObject*)__Pyx_PyCode_New(4, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pydevd_bundle_pydevd_cython_pyx, __pyx_n_s_handle_breakpoint_condition, 219, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__22)) __PYX_ERR(0, 219, __pyx_L1_error) - /* "_pydevd_bundle/pydevd_cython.pyx":263 + /* "_pydevd_bundle/pydevd_cython.pyx":262 * * * def handle_breakpoint_expression(breakpoint, info, new_frame): # <<<<<<<<<<<<<< * try: * try: */ - __pyx_tuple__23 = PyTuple_Pack(4, __pyx_n_s_breakpoint, __pyx_n_s_info, __pyx_n_s_new_frame, __pyx_n_s_val); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 263, __pyx_L1_error) + __pyx_tuple__23 = PyTuple_Pack(4, __pyx_n_s_breakpoint, __pyx_n_s_info, __pyx_n_s_new_frame, __pyx_n_s_val); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__23); __Pyx_GIVEREF(__pyx_tuple__23); - __pyx_codeobj__24 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__23, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pydevd_bundle_pydevd_cython_pyx, __pyx_n_s_handle_breakpoint_expression, 263, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__24)) __PYX_ERR(0, 263, __pyx_L1_error) + __pyx_codeobj__24 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__23, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pydevd_bundle_pydevd_cython_pyx, __pyx_n_s_handle_breakpoint_expression, 262, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__24)) __PYX_ERR(0, 262, __pyx_L1_error) - /* "_pydevd_bundle/pydevd_cython.pyx":1187 + /* "_pydevd_bundle/pydevd_cython.pyx":1186 * * * def fix_top_level_trace_and_get_trace_func(py_db, frame): # <<<<<<<<<<<<<< * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * cdef str filename; */ - __pyx_tuple__25 = PyTuple_Pack(13, __pyx_n_s_py_db, __pyx_n_s_frame, __pyx_n_s_filename, __pyx_n_s_name_2, __pyx_n_s_args, __pyx_n_s_thread, __pyx_n_s_f_unhandled, __pyx_n_s_force_only_unhandled_tracer, __pyx_n_s_t, __pyx_n_s_additional_info, __pyx_n_s_top_level_thread_tracer_2, __pyx_n_s_f_trace, __pyx_n_s_thread_tracer); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 1187, __pyx_L1_error) + __pyx_tuple__25 = PyTuple_Pack(13, __pyx_n_s_py_db, __pyx_n_s_frame, __pyx_n_s_filename, __pyx_n_s_name_2, __pyx_n_s_args, __pyx_n_s_thread, __pyx_n_s_f_unhandled, __pyx_n_s_force_only_unhandled_tracer, __pyx_n_s_t, __pyx_n_s_additional_info, __pyx_n_s_top_level_thread_tracer_2, __pyx_n_s_f_trace, __pyx_n_s_thread_tracer); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 1186, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__25); __Pyx_GIVEREF(__pyx_tuple__25); - __pyx_codeobj__26 = (PyObject*)__Pyx_PyCode_New(2, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__25, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pydevd_bundle_pydevd_cython_pyx, __pyx_n_s_fix_top_level_trace_and_get_trac, 1187, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__26)) __PYX_ERR(0, 1187, __pyx_L1_error) + __pyx_codeobj__26 = (PyObject*)__Pyx_PyCode_New(2, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__25, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pydevd_bundle_pydevd_cython_pyx, __pyx_n_s_fix_top_level_trace_and_get_trac, 1186, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__26)) __PYX_ERR(0, 1186, __pyx_L1_error) - /* "_pydevd_bundle/pydevd_cython.pyx":1301 + /* "_pydevd_bundle/pydevd_cython.pyx":1300 * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * def trace_dispatch(py_db, frame, str event, arg): # <<<<<<<<<<<<<< * # ELSE * # def trace_dispatch(py_db, frame, event, arg): */ - __pyx_tuple__27 = PyTuple_Pack(6, __pyx_n_s_py_db, __pyx_n_s_frame, __pyx_n_s_event, __pyx_n_s_arg, __pyx_n_s_thread_trace_func, __pyx_n_s_apply_to_settrace); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 1301, __pyx_L1_error) + __pyx_tuple__27 = PyTuple_Pack(6, __pyx_n_s_py_db, __pyx_n_s_frame, __pyx_n_s_event, __pyx_n_s_arg, __pyx_n_s_thread_trace_func, __pyx_n_s_apply_to_settrace); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 1300, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__27); __Pyx_GIVEREF(__pyx_tuple__27); - __pyx_codeobj__28 = (PyObject*)__Pyx_PyCode_New(4, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__27, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pydevd_bundle_pydevd_cython_pyx, __pyx_n_s_trace_dispatch, 1301, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__28)) __PYX_ERR(0, 1301, __pyx_L1_error) + __pyx_codeobj__28 = (PyObject*)__Pyx_PyCode_New(4, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__27, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pydevd_bundle_pydevd_cython_pyx, __pyx_n_s_trace_dispatch, 1300, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__28)) __PYX_ERR(0, 1300, __pyx_L1_error) - /* "_pydevd_bundle/pydevd_cython.pyx":1635 + /* "_pydevd_bundle/pydevd_cython.pyx":1634 * _original_call = ThreadTracer.__call__ * * def __call__(self, frame, event, arg): # <<<<<<<<<<<<<< * _tid_to_last_frame[self._args[1].ident] = frame * return _original_call(self, frame, event, arg) */ - __pyx_tuple__29 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_frame, __pyx_n_s_event, __pyx_n_s_arg); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 1635, __pyx_L1_error) + __pyx_tuple__29 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_frame, __pyx_n_s_event, __pyx_n_s_arg); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 1634, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__29); __Pyx_GIVEREF(__pyx_tuple__29); - __pyx_codeobj__30 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__29, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pydevd_bundle_pydevd_cython_pyx, __pyx_n_s_call_2, 1635, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__30)) __PYX_ERR(0, 1635, __pyx_L1_error) + __pyx_codeobj__30 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__29, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pydevd_bundle_pydevd_cython_pyx, __pyx_n_s_call_2, 1634, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__30)) __PYX_ERR(0, 1634, __pyx_L1_error) /* "(tree fragment)":1 * def __pyx_unpickle_PyDBAdditionalThreadInfo(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< @@ -36782,7 +36782,7 @@ static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error); __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_int_33 = PyInt_FromLong(33); if (unlikely(!__pyx_int_33)) __PYX_ERR(0, 1, __pyx_L1_error) + __pyx_int_34 = PyInt_FromLong(34); if (unlikely(!__pyx_int_34)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_160 = PyInt_FromLong(160); if (unlikely(!__pyx_int_160)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_19394913 = PyInt_FromLong(19394913L); if (unlikely(!__pyx_int_19394913)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_64458794 = PyInt_FromLong(64458794L); if (unlikely(!__pyx_int_64458794)) __PYX_ERR(0, 1, __pyx_L1_error) @@ -36858,48 +36858,48 @@ static int __Pyx_modinit_type_init_code(void) { __pyx_vtabptr_14_pydevd_bundle_13pydevd_cython_PyDBFrame = &__pyx_vtable_14_pydevd_bundle_13pydevd_cython_PyDBFrame; __pyx_vtable_14_pydevd_bundle_13pydevd_cython_PyDBFrame.trace_dispatch = (PyObject *(*)(struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *, PyObject *, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispatch; __pyx_vtable_14_pydevd_bundle_13pydevd_cython_PyDBFrame._get_instructions = (PyObject *(*)(struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *, PyObject *))__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame__get_instructions; - if (PyType_Ready(&__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame) < 0) __PYX_ERR(0, 278, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame) < 0) __PYX_ERR(0, 277, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame.tp_dictoffset && __pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame.tp_getattro = __Pyx_PyObject_GenericGetAttr; } - if (__Pyx_SetVtable(__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame.tp_dict, __pyx_vtabptr_14_pydevd_bundle_13pydevd_cython_PyDBFrame) < 0) __PYX_ERR(0, 278, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyDBFrame, (PyObject *)&__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame) < 0) __PYX_ERR(0, 278, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame) < 0) __PYX_ERR(0, 278, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame.tp_dict, __pyx_vtabptr_14_pydevd_bundle_13pydevd_cython_PyDBFrame) < 0) __PYX_ERR(0, 277, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyDBFrame, (PyObject *)&__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame) < 0) __PYX_ERR(0, 277, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame) < 0) __PYX_ERR(0, 277, __pyx_L1_error) __pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBFrame = &__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame; - if (PyType_Ready(&__pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper) < 0) __PYX_ERR(0, 1171, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper) < 0) __PYX_ERR(0, 1170, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper.tp_dictoffset && __pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper.tp_getattro = __Pyx_PyObject_GenericGetAttr; } - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_SafeCallWrapper, (PyObject *)&__pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper) < 0) __PYX_ERR(0, 1171, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper) < 0) __PYX_ERR(0, 1171, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_SafeCallWrapper, (PyObject *)&__pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper) < 0) __PYX_ERR(0, 1170, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper) < 0) __PYX_ERR(0, 1170, __pyx_L1_error) __pyx_ptype_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper = &__pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper; - if (PyType_Ready(&__pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerOnlyUnhandledExceptions) < 0) __PYX_ERR(0, 1334, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerOnlyUnhandledExceptions) < 0) __PYX_ERR(0, 1333, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerOnlyUnhandledExceptions.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerOnlyUnhandledExceptions.tp_dictoffset && __pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerOnlyUnhandledExceptions.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerOnlyUnhandledExceptions.tp_getattro = __Pyx_PyObject_GenericGetAttr; } - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_TopLevelThreadTracerOnlyUnhandle, (PyObject *)&__pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerOnlyUnhandledExceptions) < 0) __PYX_ERR(0, 1334, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerOnlyUnhandledExceptions) < 0) __PYX_ERR(0, 1334, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_TopLevelThreadTracerOnlyUnhandle, (PyObject *)&__pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerOnlyUnhandledExceptions) < 0) __PYX_ERR(0, 1333, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerOnlyUnhandledExceptions) < 0) __PYX_ERR(0, 1333, __pyx_L1_error) __pyx_ptype_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerOnlyUnhandledExceptions = &__pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerOnlyUnhandledExceptions; - if (PyType_Ready(&__pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerNoBackFrame) < 0) __PYX_ERR(0, 1368, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerNoBackFrame) < 0) __PYX_ERR(0, 1367, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerNoBackFrame.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerNoBackFrame.tp_dictoffset && __pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerNoBackFrame.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerNoBackFrame.tp_getattro = __Pyx_PyObject_GenericGetAttr; } - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_TopLevelThreadTracerNoBackFrame, (PyObject *)&__pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerNoBackFrame) < 0) __PYX_ERR(0, 1368, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerNoBackFrame) < 0) __PYX_ERR(0, 1368, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_TopLevelThreadTracerNoBackFrame, (PyObject *)&__pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerNoBackFrame) < 0) __PYX_ERR(0, 1367, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerNoBackFrame) < 0) __PYX_ERR(0, 1367, __pyx_L1_error) __pyx_ptype_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerNoBackFrame = &__pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerNoBackFrame; - if (PyType_Ready(&__pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer) < 0) __PYX_ERR(0, 1475, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer) < 0) __PYX_ERR(0, 1474, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer.tp_print = 0; #endif @@ -36908,7 +36908,7 @@ static int __Pyx_modinit_type_init_code(void) { } #if CYTHON_COMPILING_IN_CPYTHON { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer, "__call__"); if (unlikely(!wrapper)) __PYX_ERR(0, 1475, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer, "__call__"); if (unlikely(!wrapper)) __PYX_ERR(0, 1474, __pyx_L1_error) if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { __pyx_wrapperbase_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__call__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__call__.doc = __pyx_doc_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__call__; @@ -36916,8 +36916,8 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ThreadTracer, (PyObject *)&__pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer) < 0) __PYX_ERR(0, 1475, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer) < 0) __PYX_ERR(0, 1475, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ThreadTracer, (PyObject *)&__pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer) < 0) __PYX_ERR(0, 1474, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer) < 0) __PYX_ERR(0, 1474, __pyx_L1_error) __pyx_ptype_14_pydevd_bundle_13pydevd_cython_ThreadTracer = &__pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer; __Pyx_RefNannyFinishContext(); return 0; @@ -37278,14 +37278,14 @@ if (!__Pyx_RefNanny) { /* "_pydevd_bundle/pydevd_cython.pyx":16 * # ENDIF * - * version = 33 # <<<<<<<<<<<<<< + * version = 34 # <<<<<<<<<<<<<< * * if not hasattr(sys, '_current_frames'): */ - if (PyDict_SetItem(__pyx_d, __pyx_n_s_version, __pyx_int_33) < 0) __PYX_ERR(0, 16, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_version, __pyx_int_34) < 0) __PYX_ERR(0, 16, __pyx_L1_error) /* "_pydevd_bundle/pydevd_cython.pyx":18 - * version = 33 + * version = 34 * * if not hasattr(sys, '_current_frames'): # <<<<<<<<<<<<<< * @@ -37588,7 +37588,7 @@ if (!__Pyx_RefNanny) { __pyx_L3:; /* "_pydevd_bundle/pydevd_cython.pyx":18 - * version = 33 + * version = 34 * * if not hasattr(sys, '_current_frames'): # <<<<<<<<<<<<<< * @@ -37682,179 +37682,167 @@ if (!__Pyx_RefNanny) { /* "_pydevd_bundle/pydevd_cython.pyx":174 * * return additional_info - * import dis # <<<<<<<<<<<<<< - * import linecache - * import os.path - */ - __pyx_t_8 = __Pyx_Import(__pyx_n_s_dis, 0, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 174, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_dis, __pyx_t_8) < 0) __PYX_ERR(0, 174, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - - /* "_pydevd_bundle/pydevd_cython.pyx":175 - * return additional_info - * import dis * import linecache # <<<<<<<<<<<<<< * import os.path * import re */ - __pyx_t_8 = __Pyx_Import(__pyx_n_s_linecache, 0, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 175, __pyx_L1_error) + __pyx_t_8 = __Pyx_Import(__pyx_n_s_linecache, 0, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_linecache, __pyx_t_8) < 0) __PYX_ERR(0, 175, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_linecache, __pyx_t_8) < 0) __PYX_ERR(0, 174, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":176 - * import dis + /* "_pydevd_bundle/pydevd_cython.pyx":175 + * return additional_info * import linecache * import os.path # <<<<<<<<<<<<<< * import re * import sys */ - __pyx_t_8 = __Pyx_Import(__pyx_n_s_os_path, 0, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 176, __pyx_L1_error) + __pyx_t_8 = __Pyx_Import(__pyx_n_s_os_path, 0, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_os, __pyx_t_8) < 0) __PYX_ERR(0, 176, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_os, __pyx_t_8) < 0) __PYX_ERR(0, 175, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":177 + /* "_pydevd_bundle/pydevd_cython.pyx":176 * import linecache * import os.path * import re # <<<<<<<<<<<<<< * import sys * import traceback # @Reimport */ - __pyx_t_8 = __Pyx_Import(__pyx_n_s_re, 0, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 177, __pyx_L1_error) + __pyx_t_8 = __Pyx_Import(__pyx_n_s_re, 0, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_re, __pyx_t_8) < 0) __PYX_ERR(0, 177, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_re, __pyx_t_8) < 0) __PYX_ERR(0, 176, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":178 + /* "_pydevd_bundle/pydevd_cython.pyx":177 * import os.path * import re * import sys # <<<<<<<<<<<<<< * import traceback # @Reimport * */ - __pyx_t_8 = __Pyx_Import(__pyx_n_s_sys, 0, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 178, __pyx_L1_error) + __pyx_t_8 = __Pyx_Import(__pyx_n_s_sys, 0, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_sys, __pyx_t_8) < 0) __PYX_ERR(0, 178, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_sys, __pyx_t_8) < 0) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":179 + /* "_pydevd_bundle/pydevd_cython.pyx":178 * import re * import sys * import traceback # @Reimport # <<<<<<<<<<<<<< * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) */ - __pyx_t_8 = __Pyx_Import(__pyx_n_s_traceback, 0, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 179, __pyx_L1_error) + __pyx_t_8 = __Pyx_Import(__pyx_n_s_traceback, 0, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_traceback, __pyx_t_8) < 0) __PYX_ERR(0, 179, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_traceback, __pyx_t_8) < 0) __PYX_ERR(0, 178, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":182 + /* "_pydevd_bundle/pydevd_cython.pyx":181 * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * import dis # <<<<<<<<<<<<<< * # ENDIF * */ - __pyx_t_8 = __Pyx_Import(__pyx_n_s_dis, 0, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 182, __pyx_L1_error) + __pyx_t_8 = __Pyx_Import(__pyx_n_s_dis, 0, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_dis, __pyx_t_8) < 0) __PYX_ERR(0, 182, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_dis, __pyx_t_8) < 0) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":185 + /* "_pydevd_bundle/pydevd_cython.pyx":184 * # ENDIF * * from _pydev_bundle import pydev_log # <<<<<<<<<<<<<< * from _pydevd_bundle import pydevd_dont_trace * from _pydevd_bundle import pydevd_vars */ - __pyx_t_8 = PyList_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 185, __pyx_L1_error) + __pyx_t_8 = PyList_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_n_s_pydev_log); __Pyx_GIVEREF(__pyx_n_s_pydev_log); PyList_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_pydev_log); - __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydev_bundle, __pyx_t_8, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 185, __pyx_L1_error) + __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydev_bundle, __pyx_t_8, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_pydev_log); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 185, __pyx_L1_error) + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_pydev_log); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_pydev_log, __pyx_t_8) < 0) __PYX_ERR(0, 185, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_pydev_log, __pyx_t_8) < 0) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":186 + /* "_pydevd_bundle/pydevd_cython.pyx":185 * * from _pydev_bundle import pydev_log * from _pydevd_bundle import pydevd_dont_trace # <<<<<<<<<<<<<< * from _pydevd_bundle import pydevd_vars * from _pydevd_bundle.pydevd_breakpoints import get_exception_breakpoint */ - __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 186, __pyx_L1_error) + __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_pydevd_dont_trace); __Pyx_GIVEREF(__pyx_n_s_pydevd_dont_trace); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_pydevd_dont_trace); - __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydevd_bundle, __pyx_t_1, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 186, __pyx_L1_error) + __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydevd_bundle, __pyx_t_1, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_pydevd_dont_trace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 186, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_pydevd_dont_trace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_pydevd_dont_trace, __pyx_t_1) < 0) __PYX_ERR(0, 186, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_pydevd_dont_trace, __pyx_t_1) < 0) __PYX_ERR(0, 185, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":187 + /* "_pydevd_bundle/pydevd_cython.pyx":186 * from _pydev_bundle import pydev_log * from _pydevd_bundle import pydevd_dont_trace * from _pydevd_bundle import pydevd_vars # <<<<<<<<<<<<<< * from _pydevd_bundle.pydevd_breakpoints import get_exception_breakpoint * from _pydevd_bundle.pydevd_comm_constants import (CMD_STEP_CAUGHT_EXCEPTION, CMD_STEP_RETURN, CMD_STEP_OVER, CMD_SET_BREAK, */ - __pyx_t_8 = PyList_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 187, __pyx_L1_error) + __pyx_t_8 = PyList_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_n_s_pydevd_vars); __Pyx_GIVEREF(__pyx_n_s_pydevd_vars); PyList_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_pydevd_vars); - __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_bundle, __pyx_t_8, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 187, __pyx_L1_error) + __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_bundle, __pyx_t_8, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_pydevd_vars); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 187, __pyx_L1_error) + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_pydevd_vars); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_pydevd_vars, __pyx_t_8) < 0) __PYX_ERR(0, 187, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_pydevd_vars, __pyx_t_8) < 0) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":188 + /* "_pydevd_bundle/pydevd_cython.pyx":187 * from _pydevd_bundle import pydevd_dont_trace * from _pydevd_bundle import pydevd_vars * from _pydevd_bundle.pydevd_breakpoints import get_exception_breakpoint # <<<<<<<<<<<<<< * from _pydevd_bundle.pydevd_comm_constants import (CMD_STEP_CAUGHT_EXCEPTION, CMD_STEP_RETURN, CMD_STEP_OVER, CMD_SET_BREAK, * CMD_STEP_INTO, CMD_SMART_STEP_INTO, CMD_STEP_INTO_MY_CODE, CMD_STEP_INTO_COROUTINE) */ - __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 188, __pyx_L1_error) + __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_get_exception_breakpoint); __Pyx_GIVEREF(__pyx_n_s_get_exception_breakpoint); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_get_exception_breakpoint); - __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_breakpoint, __pyx_t_1, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 188, __pyx_L1_error) + __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_breakpoint, __pyx_t_1, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_get_exception_breakpoint); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 188, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_get_exception_breakpoint); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_exception_breakpoint, __pyx_t_1) < 0) __PYX_ERR(0, 188, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_exception_breakpoint, __pyx_t_1) < 0) __PYX_ERR(0, 187, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":189 + /* "_pydevd_bundle/pydevd_cython.pyx":188 * from _pydevd_bundle import pydevd_vars * from _pydevd_bundle.pydevd_breakpoints import get_exception_breakpoint * from _pydevd_bundle.pydevd_comm_constants import (CMD_STEP_CAUGHT_EXCEPTION, CMD_STEP_RETURN, CMD_STEP_OVER, CMD_SET_BREAK, # <<<<<<<<<<<<<< * CMD_STEP_INTO, CMD_SMART_STEP_INTO, CMD_STEP_INTO_MY_CODE, CMD_STEP_INTO_COROUTINE) * from _pydevd_bundle.pydevd_constants import STATE_SUSPEND, get_current_thread_id, STATE_RUN, dict_iter_values, IS_PY3K, \ */ - __pyx_t_8 = PyList_New(8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 189, __pyx_L1_error) + __pyx_t_8 = PyList_New(8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_n_s_CMD_STEP_CAUGHT_EXCEPTION); __Pyx_GIVEREF(__pyx_n_s_CMD_STEP_CAUGHT_EXCEPTION); @@ -37880,51 +37868,51 @@ if (!__Pyx_RefNanny) { __Pyx_INCREF(__pyx_n_s_CMD_STEP_INTO_COROUTINE); __Pyx_GIVEREF(__pyx_n_s_CMD_STEP_INTO_COROUTINE); PyList_SET_ITEM(__pyx_t_8, 7, __pyx_n_s_CMD_STEP_INTO_COROUTINE); - __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_comm_const, __pyx_t_8, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 189, __pyx_L1_error) + __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_comm_const, __pyx_t_8, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_CMD_STEP_CAUGHT_EXCEPTION); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 189, __pyx_L1_error) + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_CMD_STEP_CAUGHT_EXCEPTION); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMD_STEP_CAUGHT_EXCEPTION, __pyx_t_8) < 0) __PYX_ERR(0, 189, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMD_STEP_CAUGHT_EXCEPTION, __pyx_t_8) < 0) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_CMD_STEP_RETURN); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 189, __pyx_L1_error) + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_CMD_STEP_RETURN); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMD_STEP_RETURN, __pyx_t_8) < 0) __PYX_ERR(0, 189, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMD_STEP_RETURN, __pyx_t_8) < 0) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_CMD_STEP_OVER); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 189, __pyx_L1_error) + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_CMD_STEP_OVER); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMD_STEP_OVER, __pyx_t_8) < 0) __PYX_ERR(0, 189, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMD_STEP_OVER, __pyx_t_8) < 0) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_CMD_SET_BREAK); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 189, __pyx_L1_error) + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_CMD_SET_BREAK); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMD_SET_BREAK, __pyx_t_8) < 0) __PYX_ERR(0, 189, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMD_SET_BREAK, __pyx_t_8) < 0) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_CMD_STEP_INTO); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 189, __pyx_L1_error) + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_CMD_STEP_INTO); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMD_STEP_INTO, __pyx_t_8) < 0) __PYX_ERR(0, 190, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMD_STEP_INTO, __pyx_t_8) < 0) __PYX_ERR(0, 189, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_CMD_SMART_STEP_INTO); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 189, __pyx_L1_error) + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_CMD_SMART_STEP_INTO); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMD_SMART_STEP_INTO, __pyx_t_8) < 0) __PYX_ERR(0, 190, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMD_SMART_STEP_INTO, __pyx_t_8) < 0) __PYX_ERR(0, 189, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_CMD_STEP_INTO_MY_CODE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 189, __pyx_L1_error) + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_CMD_STEP_INTO_MY_CODE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMD_STEP_INTO_MY_CODE, __pyx_t_8) < 0) __PYX_ERR(0, 190, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMD_STEP_INTO_MY_CODE, __pyx_t_8) < 0) __PYX_ERR(0, 189, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_CMD_STEP_INTO_COROUTINE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 189, __pyx_L1_error) + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_CMD_STEP_INTO_COROUTINE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMD_STEP_INTO_COROUTINE, __pyx_t_8) < 0) __PYX_ERR(0, 190, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMD_STEP_INTO_COROUTINE, __pyx_t_8) < 0) __PYX_ERR(0, 189, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":191 + /* "_pydevd_bundle/pydevd_cython.pyx":190 * from _pydevd_bundle.pydevd_comm_constants import (CMD_STEP_CAUGHT_EXCEPTION, CMD_STEP_RETURN, CMD_STEP_OVER, CMD_SET_BREAK, * CMD_STEP_INTO, CMD_SMART_STEP_INTO, CMD_STEP_INTO_MY_CODE, CMD_STEP_INTO_COROUTINE) * from _pydevd_bundle.pydevd_constants import STATE_SUSPEND, get_current_thread_id, STATE_RUN, dict_iter_values, IS_PY3K, \ # <<<<<<<<<<<<<< * dict_keys, RETURN_VALUES_DICT, NO_FTRACE, IS_CPYTHON * from _pydevd_bundle.pydevd_dont_trace_files import DONT_TRACE, PYDEV_FILE */ - __pyx_t_1 = PyList_New(9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_1 = PyList_New(9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_STATE_SUSPEND); __Pyx_GIVEREF(__pyx_n_s_STATE_SUSPEND); @@ -37953,55 +37941,55 @@ if (!__Pyx_RefNanny) { __Pyx_INCREF(__pyx_n_s_IS_CPYTHON); __Pyx_GIVEREF(__pyx_n_s_IS_CPYTHON); PyList_SET_ITEM(__pyx_t_1, 8, __pyx_n_s_IS_CPYTHON); - __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_constants, __pyx_t_1, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_constants, __pyx_t_1, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_STATE_SUSPEND); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_STATE_SUSPEND); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_STATE_SUSPEND, __pyx_t_1) < 0) __PYX_ERR(0, 191, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_STATE_SUSPEND, __pyx_t_1) < 0) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_get_current_thread_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_get_current_thread_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_current_thread_id, __pyx_t_1) < 0) __PYX_ERR(0, 191, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_current_thread_id, __pyx_t_1) < 0) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_STATE_RUN); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_STATE_RUN); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_STATE_RUN, __pyx_t_1) < 0) __PYX_ERR(0, 191, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_STATE_RUN, __pyx_t_1) < 0) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_dict_iter_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_dict_iter_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_dict_iter_values, __pyx_t_1) < 0) __PYX_ERR(0, 191, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_dict_iter_values, __pyx_t_1) < 0) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_IS_PY3K); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_IS_PY3K); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_IS_PY3K, __pyx_t_1) < 0) __PYX_ERR(0, 191, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_IS_PY3K, __pyx_t_1) < 0) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_dict_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_dict_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_dict_keys, __pyx_t_1) < 0) __PYX_ERR(0, 192, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_dict_keys, __pyx_t_1) < 0) __PYX_ERR(0, 191, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_RETURN_VALUES_DICT, __pyx_t_1) < 0) __PYX_ERR(0, 192, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_RETURN_VALUES_DICT, __pyx_t_1) < 0) __PYX_ERR(0, 191, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_NO_FTRACE, __pyx_t_1) < 0) __PYX_ERR(0, 192, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_NO_FTRACE, __pyx_t_1) < 0) __PYX_ERR(0, 191, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_IS_CPYTHON); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_IS_CPYTHON); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_IS_CPYTHON, __pyx_t_1) < 0) __PYX_ERR(0, 192, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_IS_CPYTHON, __pyx_t_1) < 0) __PYX_ERR(0, 191, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":193 + /* "_pydevd_bundle/pydevd_cython.pyx":192 * from _pydevd_bundle.pydevd_constants import STATE_SUSPEND, get_current_thread_id, STATE_RUN, dict_iter_values, IS_PY3K, \ * dict_keys, RETURN_VALUES_DICT, NO_FTRACE, IS_CPYTHON * from _pydevd_bundle.pydevd_dont_trace_files import DONT_TRACE, PYDEV_FILE # <<<<<<<<<<<<<< * from _pydevd_bundle.pydevd_frame_utils import add_exception_to_frame, just_raised, remove_exception_from_frame, ignore_exception_trace * from _pydevd_bundle.pydevd_bytecode_utils import find_last_call_name, find_last_func_call_order */ - __pyx_t_8 = PyList_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 193, __pyx_L1_error) + __pyx_t_8 = PyList_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_n_s_DONT_TRACE); __Pyx_GIVEREF(__pyx_n_s_DONT_TRACE); @@ -38009,27 +37997,27 @@ if (!__Pyx_RefNanny) { __Pyx_INCREF(__pyx_n_s_PYDEV_FILE); __Pyx_GIVEREF(__pyx_n_s_PYDEV_FILE); PyList_SET_ITEM(__pyx_t_8, 1, __pyx_n_s_PYDEV_FILE); - __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_dont_trace, __pyx_t_8, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 193, __pyx_L1_error) + __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_dont_trace, __pyx_t_8, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_DONT_TRACE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 193, __pyx_L1_error) + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_DONT_TRACE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_DONT_TRACE, __pyx_t_8) < 0) __PYX_ERR(0, 193, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DONT_TRACE, __pyx_t_8) < 0) __PYX_ERR(0, 192, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_PYDEV_FILE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 193, __pyx_L1_error) + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_PYDEV_FILE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_PYDEV_FILE, __pyx_t_8) < 0) __PYX_ERR(0, 193, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PYDEV_FILE, __pyx_t_8) < 0) __PYX_ERR(0, 192, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":194 + /* "_pydevd_bundle/pydevd_cython.pyx":193 * dict_keys, RETURN_VALUES_DICT, NO_FTRACE, IS_CPYTHON * from _pydevd_bundle.pydevd_dont_trace_files import DONT_TRACE, PYDEV_FILE * from _pydevd_bundle.pydevd_frame_utils import add_exception_to_frame, just_raised, remove_exception_from_frame, ignore_exception_trace # <<<<<<<<<<<<<< * from _pydevd_bundle.pydevd_bytecode_utils import find_last_call_name, find_last_func_call_order * from _pydevd_bundle.pydevd_utils import get_clsname_for_code, should_stop_on_failed_test, is_exception_in_test_unit_can_be_ignored */ - __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 194, __pyx_L1_error) + __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_add_exception_to_frame); __Pyx_GIVEREF(__pyx_n_s_add_exception_to_frame); @@ -38043,35 +38031,35 @@ if (!__Pyx_RefNanny) { __Pyx_INCREF(__pyx_n_s_ignore_exception_trace); __Pyx_GIVEREF(__pyx_n_s_ignore_exception_trace); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_s_ignore_exception_trace); - __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_frame_util, __pyx_t_1, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 194, __pyx_L1_error) + __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_frame_util, __pyx_t_1, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_add_exception_to_frame); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 194, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_add_exception_to_frame); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_add_exception_to_frame, __pyx_t_1) < 0) __PYX_ERR(0, 194, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_add_exception_to_frame, __pyx_t_1) < 0) __PYX_ERR(0, 193, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_just_raised); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 194, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_just_raised); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_just_raised, __pyx_t_1) < 0) __PYX_ERR(0, 194, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_just_raised, __pyx_t_1) < 0) __PYX_ERR(0, 193, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_remove_exception_from_frame); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 194, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_remove_exception_from_frame); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_remove_exception_from_frame, __pyx_t_1) < 0) __PYX_ERR(0, 194, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_remove_exception_from_frame, __pyx_t_1) < 0) __PYX_ERR(0, 193, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_ignore_exception_trace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 194, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_ignore_exception_trace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ignore_exception_trace, __pyx_t_1) < 0) __PYX_ERR(0, 194, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ignore_exception_trace, __pyx_t_1) < 0) __PYX_ERR(0, 193, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":195 + /* "_pydevd_bundle/pydevd_cython.pyx":194 * from _pydevd_bundle.pydevd_dont_trace_files import DONT_TRACE, PYDEV_FILE * from _pydevd_bundle.pydevd_frame_utils import add_exception_to_frame, just_raised, remove_exception_from_frame, ignore_exception_trace * from _pydevd_bundle.pydevd_bytecode_utils import find_last_call_name, find_last_func_call_order # <<<<<<<<<<<<<< * from _pydevd_bundle.pydevd_utils import get_clsname_for_code, should_stop_on_failed_test, is_exception_in_test_unit_can_be_ignored * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame, is_real_file */ - __pyx_t_8 = PyList_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 195, __pyx_L1_error) + __pyx_t_8 = PyList_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_n_s_find_last_call_name); __Pyx_GIVEREF(__pyx_n_s_find_last_call_name); @@ -38079,27 +38067,27 @@ if (!__Pyx_RefNanny) { __Pyx_INCREF(__pyx_n_s_find_last_func_call_order); __Pyx_GIVEREF(__pyx_n_s_find_last_func_call_order); PyList_SET_ITEM(__pyx_t_8, 1, __pyx_n_s_find_last_func_call_order); - __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_bytecode_u, __pyx_t_8, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 195, __pyx_L1_error) + __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_bytecode_u, __pyx_t_8, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_find_last_call_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 195, __pyx_L1_error) + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_find_last_call_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_find_last_call_name, __pyx_t_8) < 0) __PYX_ERR(0, 195, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_find_last_call_name, __pyx_t_8) < 0) __PYX_ERR(0, 194, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_find_last_func_call_order); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 195, __pyx_L1_error) + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_find_last_func_call_order); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_find_last_func_call_order, __pyx_t_8) < 0) __PYX_ERR(0, 195, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_find_last_func_call_order, __pyx_t_8) < 0) __PYX_ERR(0, 194, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":196 + /* "_pydevd_bundle/pydevd_cython.pyx":195 * from _pydevd_bundle.pydevd_frame_utils import add_exception_to_frame, just_raised, remove_exception_from_frame, ignore_exception_trace * from _pydevd_bundle.pydevd_bytecode_utils import find_last_call_name, find_last_func_call_order * from _pydevd_bundle.pydevd_utils import get_clsname_for_code, should_stop_on_failed_test, is_exception_in_test_unit_can_be_ignored # <<<<<<<<<<<<<< * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame, is_real_file * */ - __pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 196, __pyx_L1_error) + __pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_get_clsname_for_code); __Pyx_GIVEREF(__pyx_n_s_get_clsname_for_code); @@ -38110,31 +38098,31 @@ if (!__Pyx_RefNanny) { __Pyx_INCREF(__pyx_n_s_is_exception_in_test_unit_can_be); __Pyx_GIVEREF(__pyx_n_s_is_exception_in_test_unit_can_be); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_s_is_exception_in_test_unit_can_be); - __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_utils, __pyx_t_1, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 196, __pyx_L1_error) + __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_utils, __pyx_t_1, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_get_clsname_for_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 196, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_get_clsname_for_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_clsname_for_code, __pyx_t_1) < 0) __PYX_ERR(0, 196, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_clsname_for_code, __pyx_t_1) < 0) __PYX_ERR(0, 195, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_should_stop_on_failed_test); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 196, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_should_stop_on_failed_test); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_should_stop_on_failed_test, __pyx_t_1) < 0) __PYX_ERR(0, 196, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_should_stop_on_failed_test, __pyx_t_1) < 0) __PYX_ERR(0, 195, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_is_exception_in_test_unit_can_be); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 196, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_is_exception_in_test_unit_can_be); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_exception_in_test_unit_can_be, __pyx_t_1) < 0) __PYX_ERR(0, 196, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_exception_in_test_unit_can_be, __pyx_t_1) < 0) __PYX_ERR(0, 195, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":197 + /* "_pydevd_bundle/pydevd_cython.pyx":196 * from _pydevd_bundle.pydevd_bytecode_utils import find_last_call_name, find_last_func_call_order * from _pydevd_bundle.pydevd_utils import get_clsname_for_code, should_stop_on_failed_test, is_exception_in_test_unit_can_be_ignored * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame, is_real_file # <<<<<<<<<<<<<< * * try: */ - __pyx_t_8 = PyList_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 197, __pyx_L1_error) + __pyx_t_8 = PyList_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_n_s_get_abs_path_real_path_and_base); __Pyx_GIVEREF(__pyx_n_s_get_abs_path_real_path_and_base); @@ -38142,20 +38130,20 @@ if (!__Pyx_RefNanny) { __Pyx_INCREF(__pyx_n_s_is_real_file); __Pyx_GIVEREF(__pyx_n_s_is_real_file); PyList_SET_ITEM(__pyx_t_8, 1, __pyx_n_s_is_real_file); - __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_file_utils, __pyx_t_8, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 197, __pyx_L1_error) + __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_file_utils, __pyx_t_8, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_get_abs_path_real_path_and_base); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 197, __pyx_L1_error) + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_get_abs_path_real_path_and_base); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_abs_path_real_path_and_base, __pyx_t_8) < 0) __PYX_ERR(0, 197, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_abs_path_real_path_and_base, __pyx_t_8) < 0) __PYX_ERR(0, 196, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_is_real_file); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 197, __pyx_L1_error) + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_is_real_file); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_real_file, __pyx_t_8) < 0) __PYX_ERR(0, 197, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_real_file, __pyx_t_8) < 0) __PYX_ERR(0, 196, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":199 + /* "_pydevd_bundle/pydevd_cython.pyx":198 * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame, is_real_file * * try: # <<<<<<<<<<<<<< @@ -38171,28 +38159,28 @@ if (!__Pyx_RefNanny) { __Pyx_XGOTREF(__pyx_t_5); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":200 + /* "_pydevd_bundle/pydevd_cython.pyx":199 * * try: * from inspect import CO_GENERATOR # <<<<<<<<<<<<<< * except: * CO_GENERATOR = 0 */ - __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 200, __pyx_L12_error) + __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 199, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_CO_GENERATOR); __Pyx_GIVEREF(__pyx_n_s_CO_GENERATOR); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_CO_GENERATOR); - __pyx_t_8 = __Pyx_patch_inspect(__Pyx_Import(__pyx_n_s_inspect, __pyx_t_1, -1)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 200, __pyx_L12_error) + __pyx_t_8 = __Pyx_patch_inspect(__Pyx_Import(__pyx_n_s_inspect, __pyx_t_1, -1)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 199, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_CO_GENERATOR); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 200, __pyx_L12_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_CO_GENERATOR); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 199, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CO_GENERATOR, __pyx_t_1) < 0) __PYX_ERR(0, 200, __pyx_L12_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CO_GENERATOR, __pyx_t_1) < 0) __PYX_ERR(0, 199, __pyx_L12_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":199 + /* "_pydevd_bundle/pydevd_cython.pyx":198 * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame, is_real_file * * try: # <<<<<<<<<<<<<< @@ -38211,7 +38199,7 @@ if (!__Pyx_RefNanny) { __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":201 + /* "_pydevd_bundle/pydevd_cython.pyx":200 * try: * from inspect import CO_GENERATOR * except: # <<<<<<<<<<<<<< @@ -38220,19 +38208,19 @@ if (!__Pyx_RefNanny) { */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(0, 201, __pyx_L14_except_error) + if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(0, 200, __pyx_L14_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_2); - /* "_pydevd_bundle/pydevd_cython.pyx":202 + /* "_pydevd_bundle/pydevd_cython.pyx":201 * from inspect import CO_GENERATOR * except: * CO_GENERATOR = 0 # <<<<<<<<<<<<<< * from _pydevd_bundle.pydevd_constants import IS_PY2 * */ - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CO_GENERATOR, __pyx_int_0) < 0) __PYX_ERR(0, 202, __pyx_L14_except_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CO_GENERATOR, __pyx_int_0) < 0) __PYX_ERR(0, 201, __pyx_L14_except_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -38240,7 +38228,7 @@ if (!__Pyx_RefNanny) { } __pyx_L14_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":199 + /* "_pydevd_bundle/pydevd_cython.pyx":198 * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame, is_real_file * * try: # <<<<<<<<<<<<<< @@ -38260,28 +38248,28 @@ if (!__Pyx_RefNanny) { __pyx_L17_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":203 + /* "_pydevd_bundle/pydevd_cython.pyx":202 * except: * CO_GENERATOR = 0 * from _pydevd_bundle.pydevd_constants import IS_PY2 # <<<<<<<<<<<<<< * * try: */ - __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 203, __pyx_L1_error) + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_IS_PY2); __Pyx_GIVEREF(__pyx_n_s_IS_PY2); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_IS_PY2); - __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_constants, __pyx_t_2, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 203, __pyx_L1_error) + __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_constants, __pyx_t_2, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_IS_PY2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 203, __pyx_L1_error) + __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_IS_PY2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_IS_PY2, __pyx_t_2) < 0) __PYX_ERR(0, 203, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_IS_PY2, __pyx_t_2) < 0) __PYX_ERR(0, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":205 + /* "_pydevd_bundle/pydevd_cython.pyx":204 * from _pydevd_bundle.pydevd_constants import IS_PY2 * * try: # <<<<<<<<<<<<<< @@ -38297,14 +38285,14 @@ if (!__Pyx_RefNanny) { __Pyx_XGOTREF(__pyx_t_7); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":206 + /* "_pydevd_bundle/pydevd_cython.pyx":205 * * try: * from _pydevd_bundle.pydevd_signature import send_signature_call_trace, send_signature_return_trace # <<<<<<<<<<<<<< * except ImportError: * def send_signature_call_trace(*args, **kwargs): */ - __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 206, __pyx_L20_error) + __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 205, __pyx_L20_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_send_signature_call_trace); __Pyx_GIVEREF(__pyx_n_s_send_signature_call_trace); @@ -38312,20 +38300,20 @@ if (!__Pyx_RefNanny) { __Pyx_INCREF(__pyx_n_s_send_signature_return_trace); __Pyx_GIVEREF(__pyx_n_s_send_signature_return_trace); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_send_signature_return_trace); - __pyx_t_2 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_signature, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 206, __pyx_L20_error) + __pyx_t_2 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_signature, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 205, __pyx_L20_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_send_signature_call_trace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 206, __pyx_L20_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_send_signature_call_trace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 205, __pyx_L20_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_send_signature_call_trace, __pyx_t_1) < 0) __PYX_ERR(0, 206, __pyx_L20_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_send_signature_call_trace, __pyx_t_1) < 0) __PYX_ERR(0, 205, __pyx_L20_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_send_signature_return_trace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 206, __pyx_L20_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_send_signature_return_trace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 205, __pyx_L20_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_send_signature_return_trace, __pyx_t_1) < 0) __PYX_ERR(0, 206, __pyx_L20_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_send_signature_return_trace, __pyx_t_1) < 0) __PYX_ERR(0, 205, __pyx_L20_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":205 + /* "_pydevd_bundle/pydevd_cython.pyx":204 * from _pydevd_bundle.pydevd_constants import IS_PY2 * * try: # <<<<<<<<<<<<<< @@ -38344,7 +38332,7 @@ if (!__Pyx_RefNanny) { __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":207 + /* "_pydevd_bundle/pydevd_cython.pyx":206 * try: * from _pydevd_bundle.pydevd_signature import send_signature_call_trace, send_signature_return_trace * except ImportError: # <<<<<<<<<<<<<< @@ -38354,21 +38342,21 @@ if (!__Pyx_RefNanny) { __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError); if (__pyx_t_10) { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_8) < 0) __PYX_ERR(0, 207, __pyx_L22_except_error) + if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_8) < 0) __PYX_ERR(0, 206, __pyx_L22_except_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_8); - /* "_pydevd_bundle/pydevd_cython.pyx":208 + /* "_pydevd_bundle/pydevd_cython.pyx":207 * from _pydevd_bundle.pydevd_signature import send_signature_call_trace, send_signature_return_trace * except ImportError: * def send_signature_call_trace(*args, **kwargs): # <<<<<<<<<<<<<< * pass * */ - __pyx_t_9 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_7send_signature_call_trace, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 208, __pyx_L22_except_error) + __pyx_t_9 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_7send_signature_call_trace, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 207, __pyx_L22_except_error) __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_send_signature_call_trace, __pyx_t_9) < 0) __PYX_ERR(0, 208, __pyx_L22_except_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_send_signature_call_trace, __pyx_t_9) < 0) __PYX_ERR(0, 207, __pyx_L22_except_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -38378,7 +38366,7 @@ if (!__Pyx_RefNanny) { goto __pyx_L22_except_error; __pyx_L22_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":205 + /* "_pydevd_bundle/pydevd_cython.pyx":204 * from _pydevd_bundle.pydevd_constants import IS_PY2 * * try: # <<<<<<<<<<<<<< @@ -38398,196 +38386,196 @@ if (!__Pyx_RefNanny) { __pyx_L25_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":211 + /* "_pydevd_bundle/pydevd_cython.pyx":210 * pass * * basename = os.path.basename # <<<<<<<<<<<<<< * * IGNORE_EXCEPTION_TAG = re.compile('[^#]*#.*@IgnoreException') */ - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_os); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 211, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_os); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_path); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 211, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_path); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_basename); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 211, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_basename); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_basename, __pyx_t_8) < 0) __PYX_ERR(0, 211, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_basename, __pyx_t_8) < 0) __PYX_ERR(0, 210, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":213 + /* "_pydevd_bundle/pydevd_cython.pyx":212 * basename = os.path.basename * * IGNORE_EXCEPTION_TAG = re.compile('[^#]*#.*@IgnoreException') # <<<<<<<<<<<<<< * DEBUG_START = ('pydevd.py', '_exec') * DEBUG_START_PY3K = ('_pydev_execfile.py', 'execfile') */ - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_re); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 213, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_re); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_compile); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 213, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_compile); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 213, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_IGNORE_EXCEPTION_TAG, __pyx_t_8) < 0) __PYX_ERR(0, 213, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_IGNORE_EXCEPTION_TAG, __pyx_t_8) < 0) __PYX_ERR(0, 212, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":214 + /* "_pydevd_bundle/pydevd_cython.pyx":213 * * IGNORE_EXCEPTION_TAG = re.compile('[^#]*#.*@IgnoreException') * DEBUG_START = ('pydevd.py', '_exec') # <<<<<<<<<<<<<< * DEBUG_START_PY3K = ('_pydev_execfile.py', 'execfile') * TRACE_PROPERTY = 'pydevd_traceproperty.py' */ - if (PyDict_SetItem(__pyx_d, __pyx_n_s_DEBUG_START, __pyx_tuple__19) < 0) __PYX_ERR(0, 214, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DEBUG_START, __pyx_tuple__19) < 0) __PYX_ERR(0, 213, __pyx_L1_error) - /* "_pydevd_bundle/pydevd_cython.pyx":215 + /* "_pydevd_bundle/pydevd_cython.pyx":214 * IGNORE_EXCEPTION_TAG = re.compile('[^#]*#.*@IgnoreException') * DEBUG_START = ('pydevd.py', '_exec') * DEBUG_START_PY3K = ('_pydev_execfile.py', 'execfile') # <<<<<<<<<<<<<< * TRACE_PROPERTY = 'pydevd_traceproperty.py' * get_file_type = DONT_TRACE.get */ - if (PyDict_SetItem(__pyx_d, __pyx_n_s_DEBUG_START_PY3K, __pyx_tuple__20) < 0) __PYX_ERR(0, 215, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DEBUG_START_PY3K, __pyx_tuple__20) < 0) __PYX_ERR(0, 214, __pyx_L1_error) - /* "_pydevd_bundle/pydevd_cython.pyx":216 + /* "_pydevd_bundle/pydevd_cython.pyx":215 * DEBUG_START = ('pydevd.py', '_exec') * DEBUG_START_PY3K = ('_pydev_execfile.py', 'execfile') * TRACE_PROPERTY = 'pydevd_traceproperty.py' # <<<<<<<<<<<<<< * get_file_type = DONT_TRACE.get * */ - if (PyDict_SetItem(__pyx_d, __pyx_n_s_TRACE_PROPERTY, __pyx_kp_s_pydevd_traceproperty_py) < 0) __PYX_ERR(0, 216, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_TRACE_PROPERTY, __pyx_kp_s_pydevd_traceproperty_py) < 0) __PYX_ERR(0, 215, __pyx_L1_error) - /* "_pydevd_bundle/pydevd_cython.pyx":217 + /* "_pydevd_bundle/pydevd_cython.pyx":216 * DEBUG_START_PY3K = ('_pydev_execfile.py', 'execfile') * TRACE_PROPERTY = 'pydevd_traceproperty.py' * get_file_type = DONT_TRACE.get # <<<<<<<<<<<<<< * * */ - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_DONT_TRACE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 217, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_DONT_TRACE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 217, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_file_type, __pyx_t_1) < 0) __PYX_ERR(0, 217, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_file_type, __pyx_t_1) < 0) __PYX_ERR(0, 216, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":220 + /* "_pydevd_bundle/pydevd_cython.pyx":219 * * * def handle_breakpoint_condition(py_db, info, breakpoint, new_frame): # <<<<<<<<<<<<<< * condition = breakpoint.condition * try: */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_9handle_breakpoint_condition, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 220, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_9handle_breakpoint_condition, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_handle_breakpoint_condition, __pyx_t_1) < 0) __PYX_ERR(0, 220, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_handle_breakpoint_condition, __pyx_t_1) < 0) __PYX_ERR(0, 219, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":263 + /* "_pydevd_bundle/pydevd_cython.pyx":262 * * * def handle_breakpoint_expression(breakpoint, info, new_frame): # <<<<<<<<<<<<<< * try: * try: */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_11handle_breakpoint_expression, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_11handle_breakpoint_expression, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_handle_breakpoint_expression, __pyx_t_1) < 0) __PYX_ERR(0, 263, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_handle_breakpoint_expression, __pyx_t_1) < 0) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":291 + /* "_pydevd_bundle/pydevd_cython.pyx":290 * # Same thing in the main debugger but only considering the file contents, while the one in the main debugger * # considers the user input (so, the actual result must be a join of both). * filename_to_lines_where_exceptions_are_ignored = {} # <<<<<<<<<<<<<< * filename_to_stat_info = {} * */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 291, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBFrame->tp_dict, __pyx_n_s_filename_to_lines_where_exceptio, __pyx_t_1) < 0) __PYX_ERR(0, 291, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBFrame->tp_dict, __pyx_n_s_filename_to_lines_where_exceptio, __pyx_t_1) < 0) __PYX_ERR(0, 290, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; PyType_Modified(__pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBFrame); - /* "_pydevd_bundle/pydevd_cython.pyx":292 + /* "_pydevd_bundle/pydevd_cython.pyx":291 * # considers the user input (so, the actual result must be a join of both). * filename_to_lines_where_exceptions_are_ignored = {} * filename_to_stat_info = {} # <<<<<<<<<<<<<< * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 292, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBFrame->tp_dict, __pyx_n_s_filename_to_stat_info, __pyx_t_1) < 0) __PYX_ERR(0, 292, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBFrame->tp_dict, __pyx_n_s_filename_to_stat_info, __pyx_t_1) < 0) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; PyType_Modified(__pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBFrame); - /* "_pydevd_bundle/pydevd_cython.pyx":1123 + /* "_pydevd_bundle/pydevd_cython.pyx":1122 * return self._instructions * # ENDIF * import traceback # <<<<<<<<<<<<<< * * from _pydev_bundle.pydev_is_thread_alive import is_thread_alive */ - __pyx_t_1 = __Pyx_Import(__pyx_n_s_traceback, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1123, __pyx_L1_error) + __pyx_t_1 = __Pyx_Import(__pyx_n_s_traceback, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_traceback, __pyx_t_1) < 0) __PYX_ERR(0, 1123, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_traceback, __pyx_t_1) < 0) __PYX_ERR(0, 1122, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1125 + /* "_pydevd_bundle/pydevd_cython.pyx":1124 * import traceback * * from _pydev_bundle.pydev_is_thread_alive import is_thread_alive # <<<<<<<<<<<<<< * from _pydev_imps._pydev_saved_modules import threading * from _pydevd_bundle.pydevd_constants import get_current_thread_id, IS_IRONPYTHON, NO_FTRACE, IS_WINDOWS */ - __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1125, __pyx_L1_error) + __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_is_thread_alive); __Pyx_GIVEREF(__pyx_n_s_is_thread_alive); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_is_thread_alive); - __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydev_bundle_pydev_is_thread_al, __pyx_t_1, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1125, __pyx_L1_error) + __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydev_bundle_pydev_is_thread_al, __pyx_t_1, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_is_thread_alive); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1125, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_is_thread_alive); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_thread_alive, __pyx_t_1) < 0) __PYX_ERR(0, 1125, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_thread_alive, __pyx_t_1) < 0) __PYX_ERR(0, 1124, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1126 + /* "_pydevd_bundle/pydevd_cython.pyx":1125 * * from _pydev_bundle.pydev_is_thread_alive import is_thread_alive * from _pydev_imps._pydev_saved_modules import threading # <<<<<<<<<<<<<< * from _pydevd_bundle.pydevd_constants import get_current_thread_id, IS_IRONPYTHON, NO_FTRACE, IS_WINDOWS * from _pydevd_bundle.pydevd_dont_trace_files import DONT_TRACE */ - __pyx_t_8 = PyList_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1126, __pyx_L1_error) + __pyx_t_8 = PyList_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_n_s_threading); __Pyx_GIVEREF(__pyx_n_s_threading); PyList_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_threading); - __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydev_imps__pydev_saved_modules, __pyx_t_8, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1126, __pyx_L1_error) + __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydev_imps__pydev_saved_modules, __pyx_t_8, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_threading); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1126, __pyx_L1_error) + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_threading); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_threading, __pyx_t_8) < 0) __PYX_ERR(0, 1126, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_threading, __pyx_t_8) < 0) __PYX_ERR(0, 1125, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1127 + /* "_pydevd_bundle/pydevd_cython.pyx":1126 * from _pydev_bundle.pydev_is_thread_alive import is_thread_alive * from _pydev_imps._pydev_saved_modules import threading * from _pydevd_bundle.pydevd_constants import get_current_thread_id, IS_IRONPYTHON, NO_FTRACE, IS_WINDOWS # <<<<<<<<<<<<<< * from _pydevd_bundle.pydevd_dont_trace_files import DONT_TRACE * from _pydevd_bundle.pydevd_kill_all_pydevd_threads import kill_all_pydev_threads */ - __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1127, __pyx_L1_error) + __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_get_current_thread_id); __Pyx_GIVEREF(__pyx_n_s_get_current_thread_id); @@ -38601,77 +38589,77 @@ if (!__Pyx_RefNanny) { __Pyx_INCREF(__pyx_n_s_IS_WINDOWS); __Pyx_GIVEREF(__pyx_n_s_IS_WINDOWS); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_s_IS_WINDOWS); - __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_constants, __pyx_t_1, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1127, __pyx_L1_error) + __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_constants, __pyx_t_1, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_get_current_thread_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1127, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_get_current_thread_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_current_thread_id, __pyx_t_1) < 0) __PYX_ERR(0, 1127, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_current_thread_id, __pyx_t_1) < 0) __PYX_ERR(0, 1126, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_IS_IRONPYTHON); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1127, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_IS_IRONPYTHON); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_IS_IRONPYTHON, __pyx_t_1) < 0) __PYX_ERR(0, 1127, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_IS_IRONPYTHON, __pyx_t_1) < 0) __PYX_ERR(0, 1126, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1127, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_NO_FTRACE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_NO_FTRACE, __pyx_t_1) < 0) __PYX_ERR(0, 1127, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_NO_FTRACE, __pyx_t_1) < 0) __PYX_ERR(0, 1126, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_IS_WINDOWS); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1127, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_IS_WINDOWS); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_IS_WINDOWS, __pyx_t_1) < 0) __PYX_ERR(0, 1127, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_IS_WINDOWS, __pyx_t_1) < 0) __PYX_ERR(0, 1126, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1128 + /* "_pydevd_bundle/pydevd_cython.pyx":1127 * from _pydev_imps._pydev_saved_modules import threading * from _pydevd_bundle.pydevd_constants import get_current_thread_id, IS_IRONPYTHON, NO_FTRACE, IS_WINDOWS * from _pydevd_bundle.pydevd_dont_trace_files import DONT_TRACE # <<<<<<<<<<<<<< * from _pydevd_bundle.pydevd_kill_all_pydevd_threads import kill_all_pydev_threads * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame, NORM_PATHS_AND_BASE_CONTAINER */ - __pyx_t_8 = PyList_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1128, __pyx_L1_error) + __pyx_t_8 = PyList_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_n_s_DONT_TRACE); __Pyx_GIVEREF(__pyx_n_s_DONT_TRACE); PyList_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_DONT_TRACE); - __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_dont_trace, __pyx_t_8, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1128, __pyx_L1_error) + __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_dont_trace, __pyx_t_8, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_DONT_TRACE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1128, __pyx_L1_error) + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_DONT_TRACE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_DONT_TRACE, __pyx_t_8) < 0) __PYX_ERR(0, 1128, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DONT_TRACE, __pyx_t_8) < 0) __PYX_ERR(0, 1127, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1129 + /* "_pydevd_bundle/pydevd_cython.pyx":1128 * from _pydevd_bundle.pydevd_constants import get_current_thread_id, IS_IRONPYTHON, NO_FTRACE, IS_WINDOWS * from _pydevd_bundle.pydevd_dont_trace_files import DONT_TRACE * from _pydevd_bundle.pydevd_kill_all_pydevd_threads import kill_all_pydev_threads # <<<<<<<<<<<<<< * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame, NORM_PATHS_AND_BASE_CONTAINER * from pydevd_tracing import SetTrace */ - __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1129, __pyx_L1_error) + __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_kill_all_pydev_threads); __Pyx_GIVEREF(__pyx_n_s_kill_all_pydev_threads); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_kill_all_pydev_threads); - __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_kill_all_p, __pyx_t_1, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1129, __pyx_L1_error) + __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_kill_all_p, __pyx_t_1, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_kill_all_pydev_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1129, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_kill_all_pydev_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_kill_all_pydev_threads, __pyx_t_1) < 0) __PYX_ERR(0, 1129, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_kill_all_pydev_threads, __pyx_t_1) < 0) __PYX_ERR(0, 1128, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1130 + /* "_pydevd_bundle/pydevd_cython.pyx":1129 * from _pydevd_bundle.pydevd_dont_trace_files import DONT_TRACE * from _pydevd_bundle.pydevd_kill_all_pydevd_threads import kill_all_pydev_threads * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame, NORM_PATHS_AND_BASE_CONTAINER # <<<<<<<<<<<<<< * from pydevd_tracing import SetTrace * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) */ - __pyx_t_8 = PyList_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1130, __pyx_L1_error) + __pyx_t_8 = PyList_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_n_s_get_abs_path_real_path_and_base); __Pyx_GIVEREF(__pyx_n_s_get_abs_path_real_path_and_base); @@ -38679,48 +38667,48 @@ if (!__Pyx_RefNanny) { __Pyx_INCREF(__pyx_n_s_NORM_PATHS_AND_BASE_CONTAINER); __Pyx_GIVEREF(__pyx_n_s_NORM_PATHS_AND_BASE_CONTAINER); PyList_SET_ITEM(__pyx_t_8, 1, __pyx_n_s_NORM_PATHS_AND_BASE_CONTAINER); - __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_file_utils, __pyx_t_8, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1130, __pyx_L1_error) + __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_file_utils, __pyx_t_8, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_get_abs_path_real_path_and_base); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1130, __pyx_L1_error) + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_get_abs_path_real_path_and_base); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_abs_path_real_path_and_base, __pyx_t_8) < 0) __PYX_ERR(0, 1130, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_abs_path_real_path_and_base, __pyx_t_8) < 0) __PYX_ERR(0, 1129, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_NORM_PATHS_AND_BASE_CONTAINER); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1130, __pyx_L1_error) + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_NORM_PATHS_AND_BASE_CONTAINER); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_NORM_PATHS_AND_BASE_CONTAINER, __pyx_t_8) < 0) __PYX_ERR(0, 1130, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_NORM_PATHS_AND_BASE_CONTAINER, __pyx_t_8) < 0) __PYX_ERR(0, 1129, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1131 + /* "_pydevd_bundle/pydevd_cython.pyx":1130 * from _pydevd_bundle.pydevd_kill_all_pydevd_threads import kill_all_pydev_threads * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame, NORM_PATHS_AND_BASE_CONTAINER * from pydevd_tracing import SetTrace # <<<<<<<<<<<<<< * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * # In Cython, set_additional_thread_info is bundled in the file. */ - __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1131, __pyx_L1_error) + __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_SetTrace); __Pyx_GIVEREF(__pyx_n_s_SetTrace); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_SetTrace); - __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydevd_tracing, __pyx_t_1, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1131, __pyx_L1_error) + __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydevd_tracing, __pyx_t_1, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_SetTrace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1131, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_SetTrace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_SetTrace, __pyx_t_1) < 0) __PYX_ERR(0, 1131, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SetTrace, __pyx_t_1) < 0) __PYX_ERR(0, 1130, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1140 + /* "_pydevd_bundle/pydevd_cython.pyx":1139 * # from _pydevd_bundle.pydevd_frame import PyDBFrame * # ENDIF * from os.path import basename, splitext # <<<<<<<<<<<<<< * from _pydevd_bundle.pydevd_breakpoints import stop_on_unhandled_exception * from _pydevd_bundle.pydevd_collect_try_except_info import collect_try_except_info */ - __pyx_t_8 = PyList_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1140, __pyx_L1_error) + __pyx_t_8 = PyList_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_n_s_basename); __Pyx_GIVEREF(__pyx_n_s_basename); @@ -38728,92 +38716,92 @@ if (!__Pyx_RefNanny) { __Pyx_INCREF(__pyx_n_s_splitext); __Pyx_GIVEREF(__pyx_n_s_splitext); PyList_SET_ITEM(__pyx_t_8, 1, __pyx_n_s_splitext); - __pyx_t_1 = __Pyx_Import(__pyx_n_s_os_path, __pyx_t_8, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1140, __pyx_L1_error) + __pyx_t_1 = __Pyx_Import(__pyx_n_s_os_path, __pyx_t_8, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_basename); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1140, __pyx_L1_error) + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_basename); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_basename, __pyx_t_8) < 0) __PYX_ERR(0, 1140, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_basename, __pyx_t_8) < 0) __PYX_ERR(0, 1139, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_splitext); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1140, __pyx_L1_error) + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_splitext); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_splitext, __pyx_t_8) < 0) __PYX_ERR(0, 1140, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_splitext, __pyx_t_8) < 0) __PYX_ERR(0, 1139, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1141 + /* "_pydevd_bundle/pydevd_cython.pyx":1140 * # ENDIF * from os.path import basename, splitext * from _pydevd_bundle.pydevd_breakpoints import stop_on_unhandled_exception # <<<<<<<<<<<<<< * from _pydevd_bundle.pydevd_collect_try_except_info import collect_try_except_info * */ - __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1141, __pyx_L1_error) + __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_stop_on_unhandled_exception); __Pyx_GIVEREF(__pyx_n_s_stop_on_unhandled_exception); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_stop_on_unhandled_exception); - __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_breakpoint, __pyx_t_1, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1141, __pyx_L1_error) + __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_breakpoint, __pyx_t_1, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_stop_on_unhandled_exception); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1141, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_stop_on_unhandled_exception); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stop_on_unhandled_exception, __pyx_t_1) < 0) __PYX_ERR(0, 1141, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stop_on_unhandled_exception, __pyx_t_1) < 0) __PYX_ERR(0, 1140, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1142 + /* "_pydevd_bundle/pydevd_cython.pyx":1141 * from os.path import basename, splitext * from _pydevd_bundle.pydevd_breakpoints import stop_on_unhandled_exception * from _pydevd_bundle.pydevd_collect_try_except_info import collect_try_except_info # <<<<<<<<<<<<<< * - * threadingCurrentThread = threading.currentThread + * threadingCurrentThread = threading.current_thread */ - __pyx_t_8 = PyList_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1142, __pyx_L1_error) + __pyx_t_8 = PyList_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_n_s_collect_try_except_info); __Pyx_GIVEREF(__pyx_n_s_collect_try_except_info); PyList_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_collect_try_except_info); - __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_collect_tr, __pyx_t_8, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1142, __pyx_L1_error) + __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_collect_tr, __pyx_t_8, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_collect_try_except_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1142, __pyx_L1_error) + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_collect_try_except_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_collect_try_except_info, __pyx_t_8) < 0) __PYX_ERR(0, 1142, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_collect_try_except_info, __pyx_t_8) < 0) __PYX_ERR(0, 1141, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1144 + /* "_pydevd_bundle/pydevd_cython.pyx":1143 * from _pydevd_bundle.pydevd_collect_try_except_info import collect_try_except_info * - * threadingCurrentThread = threading.currentThread # <<<<<<<<<<<<<< + * threadingCurrentThread = threading.current_thread # <<<<<<<<<<<<<< * get_file_type = DONT_TRACE.get * */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_threading); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1144, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_threading); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_currentThread); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1144, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_current_thread); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_threadingCurrentThread, __pyx_t_8) < 0) __PYX_ERR(0, 1144, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_threadingCurrentThread, __pyx_t_8) < 0) __PYX_ERR(0, 1143, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1145 + /* "_pydevd_bundle/pydevd_cython.pyx":1144 * - * threadingCurrentThread = threading.currentThread + * threadingCurrentThread = threading.current_thread * get_file_type = DONT_TRACE.get # <<<<<<<<<<<<<< * * # Note: this is different from pydevd_constants.thread_get_ident because we want Jython */ - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_DONT_TRACE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1145, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_DONT_TRACE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1145, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_file_type, __pyx_t_1) < 0) __PYX_ERR(0, 1145, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_file_type, __pyx_t_1) < 0) __PYX_ERR(0, 1144, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1149 + /* "_pydevd_bundle/pydevd_cython.pyx":1148 * # Note: this is different from pydevd_constants.thread_get_ident because we want Jython * # to be None here because it also doesn't have threading._active. * try: # <<<<<<<<<<<<<< @@ -38829,22 +38817,22 @@ if (!__Pyx_RefNanny) { __Pyx_XGOTREF(__pyx_t_5); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":1150 + /* "_pydevd_bundle/pydevd_cython.pyx":1149 * # to be None here because it also doesn't have threading._active. * try: * threading_get_ident = threading.get_ident # Python 3 # <<<<<<<<<<<<<< * except: * try: */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_threading); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1150, __pyx_L28_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_threading); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1149, __pyx_L28_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_get_ident); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1150, __pyx_L28_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_get_ident); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1149, __pyx_L28_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_threading_get_ident, __pyx_t_8) < 0) __PYX_ERR(0, 1150, __pyx_L28_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_threading_get_ident, __pyx_t_8) < 0) __PYX_ERR(0, 1149, __pyx_L28_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1149 + /* "_pydevd_bundle/pydevd_cython.pyx":1148 * # Note: this is different from pydevd_constants.thread_get_ident because we want Jython * # to be None here because it also doesn't have threading._active. * try: # <<<<<<<<<<<<<< @@ -38863,7 +38851,7 @@ if (!__Pyx_RefNanny) { __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1151 + /* "_pydevd_bundle/pydevd_cython.pyx":1150 * try: * threading_get_ident = threading.get_ident # Python 3 * except: # <<<<<<<<<<<<<< @@ -38872,12 +38860,12 @@ if (!__Pyx_RefNanny) { */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(0, 1151, __pyx_L30_except_error) + if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(0, 1150, __pyx_L30_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_2); - /* "_pydevd_bundle/pydevd_cython.pyx":1152 + /* "_pydevd_bundle/pydevd_cython.pyx":1151 * threading_get_ident = threading.get_ident # Python 3 * except: * try: # <<<<<<<<<<<<<< @@ -38893,22 +38881,22 @@ if (!__Pyx_RefNanny) { __Pyx_XGOTREF(__pyx_t_14); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":1153 + /* "_pydevd_bundle/pydevd_cython.pyx":1152 * except: * try: * threading_get_ident = threading._get_ident # Python 2 # <<<<<<<<<<<<<< * except: * threading_get_ident = None # Jython */ - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_threading); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1153, __pyx_L36_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_threading); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1152, __pyx_L36_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_get_ident_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1153, __pyx_L36_error) + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_get_ident_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1152, __pyx_L36_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_threading_get_ident, __pyx_t_11) < 0) __PYX_ERR(0, 1153, __pyx_L36_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_threading_get_ident, __pyx_t_11) < 0) __PYX_ERR(0, 1152, __pyx_L36_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1152 + /* "_pydevd_bundle/pydevd_cython.pyx":1151 * threading_get_ident = threading.get_ident # Python 3 * except: * try: # <<<<<<<<<<<<<< @@ -38924,7 +38912,7 @@ if (!__Pyx_RefNanny) { __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1154 + /* "_pydevd_bundle/pydevd_cython.pyx":1153 * try: * threading_get_ident = threading._get_ident # Python 2 * except: # <<<<<<<<<<<<<< @@ -38933,19 +38921,19 @@ if (!__Pyx_RefNanny) { */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_9, &__pyx_t_15) < 0) __PYX_ERR(0, 1154, __pyx_L38_except_error) + if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_9, &__pyx_t_15) < 0) __PYX_ERR(0, 1153, __pyx_L38_except_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_GOTREF(__pyx_t_9); __Pyx_GOTREF(__pyx_t_15); - /* "_pydevd_bundle/pydevd_cython.pyx":1155 + /* "_pydevd_bundle/pydevd_cython.pyx":1154 * threading_get_ident = threading._get_ident # Python 2 * except: * threading_get_ident = None # Jython # <<<<<<<<<<<<<< * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) */ - if (PyDict_SetItem(__pyx_d, __pyx_n_s_threading_get_ident, Py_None) < 0) __PYX_ERR(0, 1155, __pyx_L38_except_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_threading_get_ident, Py_None) < 0) __PYX_ERR(0, 1154, __pyx_L38_except_error) __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; @@ -38953,7 +38941,7 @@ if (!__Pyx_RefNanny) { } __pyx_L38_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":1152 + /* "_pydevd_bundle/pydevd_cython.pyx":1151 * threading_get_ident = threading.get_ident # Python 3 * except: * try: # <<<<<<<<<<<<<< @@ -38979,7 +38967,7 @@ if (!__Pyx_RefNanny) { } __pyx_L30_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":1149 + /* "_pydevd_bundle/pydevd_cython.pyx":1148 * # Note: this is different from pydevd_constants.thread_get_ident because we want Jython * # to be None here because it also doesn't have threading._active. * try: # <<<<<<<<<<<<<< @@ -38999,123 +38987,123 @@ if (!__Pyx_RefNanny) { __pyx_L33_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":1167 + /* "_pydevd_bundle/pydevd_cython.pyx":1166 * # - Breakpoints are changed * # It can be used when running regularly (without step over/step in/step return) * global_cache_skips = {} # <<<<<<<<<<<<<< * global_cache_frame_skips = {} * */ - __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1167, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_global_cache_skips, __pyx_t_2) < 0) __PYX_ERR(0, 1167, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_global_cache_skips, __pyx_t_2) < 0) __PYX_ERR(0, 1166, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1168 + /* "_pydevd_bundle/pydevd_cython.pyx":1167 * # It can be used when running regularly (without step over/step in/step return) * global_cache_skips = {} * global_cache_frame_skips = {} # <<<<<<<<<<<<<< * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) */ - __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1168, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_global_cache_frame_skips, __pyx_t_2) < 0) __PYX_ERR(0, 1168, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_global_cache_frame_skips, __pyx_t_2) < 0) __PYX_ERR(0, 1167, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1187 + /* "_pydevd_bundle/pydevd_cython.pyx":1186 * * * def fix_top_level_trace_and_get_trace_func(py_db, frame): # <<<<<<<<<<<<<< * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * cdef str filename; */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_13fix_top_level_trace_and_get_trace_func, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1187, __pyx_L1_error) + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_13fix_top_level_trace_and_get_trace_func, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_fix_top_level_trace_and_get_trac, __pyx_t_2) < 0) __PYX_ERR(0, 1187, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_fix_top_level_trace_and_get_trac, __pyx_t_2) < 0) __PYX_ERR(0, 1186, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1301 + /* "_pydevd_bundle/pydevd_cython.pyx":1300 * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * def trace_dispatch(py_db, frame, str event, arg): # <<<<<<<<<<<<<< * # ELSE * # def trace_dispatch(py_db, frame, event, arg): */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_15trace_dispatch, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1301, __pyx_L1_error) + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_15trace_dispatch, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_trace_dispatch, __pyx_t_2) < 0) __PYX_ERR(0, 1301, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_trace_dispatch, __pyx_t_2) < 0) __PYX_ERR(0, 1300, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1623 + /* "_pydevd_bundle/pydevd_cython.pyx":1622 * * * if IS_IRONPYTHON: # <<<<<<<<<<<<<< * # This is far from ideal, as we'll leak frames (we'll always have the last created frame, not really * # the last topmost frame saved -- this should be Ok for our usage, but it may leak frames and things */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_IS_IRONPYTHON); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1623, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_IS_IRONPYTHON); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1623, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1622, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_4) { - /* "_pydevd_bundle/pydevd_cython.pyx":1631 + /* "_pydevd_bundle/pydevd_cython.pyx":1630 * # * # See: https://github.com/IronLanguages/main/issues/1630 * from _pydevd_bundle.pydevd_additional_thread_info_regular import _tid_to_last_frame # <<<<<<<<<<<<<< * * _original_call = ThreadTracer.__call__ */ - __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1631, __pyx_L1_error) + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_tid_to_last_frame); __Pyx_GIVEREF(__pyx_n_s_tid_to_last_frame); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_tid_to_last_frame); - __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_additional, __pyx_t_2, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1631, __pyx_L1_error) + __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_additional, __pyx_t_2, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_tid_to_last_frame); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1631, __pyx_L1_error) + __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_tid_to_last_frame); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_tid_to_last_frame, __pyx_t_2) < 0) __PYX_ERR(0, 1631, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_tid_to_last_frame, __pyx_t_2) < 0) __PYX_ERR(0, 1630, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1633 + /* "_pydevd_bundle/pydevd_cython.pyx":1632 * from _pydevd_bundle.pydevd_additional_thread_info_regular import _tid_to_last_frame * * _original_call = ThreadTracer.__call__ # <<<<<<<<<<<<<< * * def __call__(self, frame, event, arg): */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_ThreadTracer), __pyx_n_s_call_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1633, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_ThreadTracer), __pyx_n_s_call_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_original_call, __pyx_t_1) < 0) __PYX_ERR(0, 1633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_original_call, __pyx_t_1) < 0) __PYX_ERR(0, 1632, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1635 + /* "_pydevd_bundle/pydevd_cython.pyx":1634 * _original_call = ThreadTracer.__call__ * * def __call__(self, frame, event, arg): # <<<<<<<<<<<<<< * _tid_to_last_frame[self._args[1].ident] = frame * return _original_call(self, frame, event, arg) */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_17__call__, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1635, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_17__call__, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_call_2, __pyx_t_1) < 0) __PYX_ERR(0, 1635, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_call_2, __pyx_t_1) < 0) __PYX_ERR(0, 1634, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1639 + /* "_pydevd_bundle/pydevd_cython.pyx":1638 * return _original_call(self, frame, event, arg) * * ThreadTracer.__call__ = __call__ # <<<<<<<<<<<<<< */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_call_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1639, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_call_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_ThreadTracer), __pyx_n_s_call_2, __pyx_t_1) < 0) __PYX_ERR(0, 1639, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_ThreadTracer), __pyx_n_s_call_2, __pyx_t_1) < 0) __PYX_ERR(0, 1638, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1623 + /* "_pydevd_bundle/pydevd_cython.pyx":1622 * * * if IS_IRONPYTHON: # <<<<<<<<<<<<<< diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_cython.pyx b/python/helpers/pydev/_pydevd_bundle/pydevd_cython.pyx index fc60d85a1141..fc7a5a638ca0 100644 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_cython.pyx +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_cython.pyx @@ -13,7 +13,7 @@ pydev_log.debug("Using Cython speedups") # from _pydevd_bundle.pydevd_frame import PyDBFrame # ENDIF -version = 33 +version = 34 if not hasattr(sys, '_current_frames'): @@ -171,7 +171,6 @@ def set_additional_thread_info(thread): thread.additional_info = additional_info return additional_info -import dis import linecache import os.path import re @@ -1141,7 +1140,7 @@ from os.path import basename, splitext from _pydevd_bundle.pydevd_breakpoints import stop_on_unhandled_exception from _pydevd_bundle.pydevd_collect_try_except_info import collect_try_except_info -threadingCurrentThread = threading.currentThread +threadingCurrentThread = threading.current_thread get_file_type = DONT_TRACE.get # Note: this is different from pydevd_constants.thread_get_ident because we want Jython @@ -1211,7 +1210,7 @@ def fix_top_level_trace_and_get_trace_func(py_db, frame): return None, False elif f_unhandled.f_code.co_name in ('__bootstrap_inner', '_bootstrap_inner'): - # Note: be careful not to use threading.currentThread to avoid creating a dummy thread. + # Note: be careful not to use threading.current_thread to avoid creating a dummy thread. t = f_unhandled.f_locals.get('self') force_only_unhandled_tracer = True if t is not None and isinstance(t, threading.Thread): diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_27_64.so b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_27_64.so Binary files differindex e3b7cfddef64..21ac7ce30181 100755 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_27_64.so +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_27_64.so diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_310_64.cpython-310-darwin.so b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_310_64.cpython-310-darwin.so Binary files differindex c8c60df82580..9eda0b098072 100755 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_310_64.cpython-310-darwin.so +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_310_64.cpython-310-darwin.so diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_36_64.cpython-36m-darwin.so b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_36_64.cpython-36m-darwin.so Binary files differindex 3df4146263ba..6520ca787634 100755 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_36_64.cpython-36m-darwin.so +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_36_64.cpython-36m-darwin.so diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_37_64.cpython-37m-darwin.so b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_37_64.cpython-37m-darwin.so Binary files differindex 18ac13a1ebc8..b9a915569828 100755 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_37_64.cpython-37m-darwin.so +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_37_64.cpython-37m-darwin.so diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_38_64.cpython-38-darwin.so b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_38_64.cpython-38-darwin.so Binary files differindex 061ec64ffbb5..38907ebd5931 100755 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_38_64.cpython-38-darwin.so +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_38_64.cpython-38-darwin.so diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_39_64.cpython-39-darwin.so b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_39_64.cpython-39-darwin.so Binary files differindex 0c49db6a6dea..809032e3b068 100755 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_39_64.cpython-39-darwin.so +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_39_64.cpython-39-darwin.so diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_27_32.pyd b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_27_32.pyd Binary files differindex 3790c5fab8af..4c63d4edc0d4 100644 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_27_32.pyd +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_27_32.pyd diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_27_64.pyd b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_27_64.pyd Binary files differindex ad4964343640..04e86e1a8dc2 100644 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_27_64.pyd +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_27_64.pyd diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_310_32.cp310-win32.pyd b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_310_32.cp310-win32.pyd Binary files differindex 75ff76f8eab9..49c9c2d62f6f 100644 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_310_32.cp310-win32.pyd +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_310_32.cp310-win32.pyd diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_310_64.cp310-win_amd64.pyd b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_310_64.cp310-win_amd64.pyd Binary files differindex 28e0d0d6969f..12213f5010c3 100644 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_310_64.cp310-win_amd64.pyd +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_310_64.cp310-win_amd64.pyd diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_36_32.cp36-win32.pyd b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_36_32.cp36-win32.pyd Binary files differindex 2721355253a8..9718b00be312 100644 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_36_32.cp36-win32.pyd +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_36_32.cp36-win32.pyd diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_36_64.cp36-win_amd64.pyd b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_36_64.cp36-win_amd64.pyd Binary files differindex 0f200d9826c4..ab912298c07f 100644 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_36_64.cp36-win_amd64.pyd +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_36_64.cp36-win_amd64.pyd diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_37_32.cp37-win32.pyd b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_37_32.cp37-win32.pyd Binary files differindex 5e8ab16de6a5..a68cc929a3fe 100644 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_37_32.cp37-win32.pyd +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_37_32.cp37-win32.pyd diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_37_64.cp37-win_amd64.pyd b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_37_64.cp37-win_amd64.pyd Binary files differindex 8580b377f970..53a30d7e0199 100644 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_37_64.cp37-win_amd64.pyd +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_37_64.cp37-win_amd64.pyd diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_38_32.cp38-win32.pyd b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_38_32.cp38-win32.pyd Binary files differindex 7eaa01aebd8b..d57e98e73a9c 100644 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_38_32.cp38-win32.pyd +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_38_32.cp38-win32.pyd diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_38_64.cp38-win_amd64.pyd b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_38_64.cp38-win_amd64.pyd Binary files differindex dc57cb15721e..8ea3ecaadeaa 100644 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_38_64.cp38-win_amd64.pyd +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_38_64.cp38-win_amd64.pyd diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_39_32.cp39-win32.pyd b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_39_32.cp39-win32.pyd Binary files differindex 43bc500e4e73..2545cf00e881 100644 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_39_32.cp39-win32.pyd +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_39_32.cp39-win32.pyd diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_39_64.cp39-win_amd64.pyd b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_39_64.cp39-win_amd64.pyd Binary files differindex 6352b5aba252..b9c329efc8de 100644 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_39_64.cp39-win_amd64.pyd +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_39_64.cp39-win_amd64.pyd diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_dont_trace_files.py b/python/helpers/pydev/_pydevd_bundle/pydevd_dont_trace_files.py index 3c22a57860b1..0b649c47cfe4 100644 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_dont_trace_files.py +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_dont_trace_files.py @@ -82,6 +82,7 @@ DONT_TRACE = { 'pydevd_concurrency_logger.py': PYDEV_FILE, 'pydevd_console.py': PYDEV_FILE, 'pydevd_console_integration.py': PYDEV_FILE, + 'pydevd_console_output.py': PYDEV_FILE, 'pydevd_console_pytest.py': PYDEV_FILE, 'pydevd_constants.py': PYDEV_FILE, 'pydevd_custom_frames.py': PYDEV_FILE, @@ -122,11 +123,12 @@ DONT_TRACE = { 'pydevd_trace_dispatch_regular.py': PYDEV_FILE, 'pydevd_traceproperty.py': PYDEV_FILE, 'pydevd_tracing.py': PYDEV_FILE, + 'pydevd_user_type_renderers.py': PYDEV_FILE, + 'pydevd_user_type_renderers_utils.py': PYDEV_FILE, 'pydevd_utils.py': PYDEV_FILE, 'pydevd_vars.py': PYDEV_FILE, 'pydevd_vm_type.py': PYDEV_FILE, 'pydevd_xml.py': PYDEV_FILE, - 'pydevd_console_output.py': PYDEV_FILE, } DONT_TRACE['pydev_jupyter_plugin.py'] = PYDEV_FILE diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_trace_dispatch_regular.py b/python/helpers/pydev/_pydevd_bundle/pydevd_trace_dispatch_regular.py index 87b01fa03924..3a915922c21a 100644 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_trace_dispatch_regular.py +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_trace_dispatch_regular.py @@ -19,7 +19,7 @@ from os.path import basename, splitext from _pydevd_bundle.pydevd_breakpoints import stop_on_unhandled_exception from _pydevd_bundle.pydevd_collect_try_except_info import collect_try_except_info -threadingCurrentThread = threading.currentThread +threadingCurrentThread = threading.current_thread get_file_type = DONT_TRACE.get # Note: this is different from pydevd_constants.thread_get_ident because we want Jython @@ -89,7 +89,7 @@ def fix_top_level_trace_and_get_trace_func(py_db, frame): return None, False elif f_unhandled.f_code.co_name in ('__bootstrap_inner', '_bootstrap_inner'): - # Note: be careful not to use threading.currentThread to avoid creating a dummy thread. + # Note: be careful not to use threading.current_thread to avoid creating a dummy thread. t = f_unhandled.f_locals.get('self') force_only_unhandled_tracer = True if t is not None and isinstance(t, threading.Thread): diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_vars.py b/python/helpers/pydev/_pydevd_bundle/pydevd_vars.py index e066c4e2f71f..183d91d27d59 100644 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_vars.py +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_vars.py @@ -53,7 +53,7 @@ def _iter_frames(initialFrame): def dump_frames(thread_id): sys.stdout.write('dumping frames\n') - if thread_id != get_current_thread_id(threading.currentThread()): + if thread_id != get_current_thread_id(threading.current_thread()): raise VariableError("find_frame: must execute on same thread") curFrame = get_frame() @@ -94,7 +94,7 @@ def get_additional_frames_by_id(thread_id): def find_frame(thread_id, frame_id): """ returns a frame on the thread that has a given frame_id """ try: - curr_thread_id = get_current_thread_id(threading.currentThread()) + curr_thread_id = get_current_thread_id(threading.current_thread()) if thread_id != curr_thread_id: try: return get_custom_frame(thread_id, frame_id) # I.e.: thread_id could be a stackless frame id + thread_id. @@ -182,7 +182,7 @@ def getVariable(thread_id, frame_id, scope, attrs): not the frame (as we don't care about the frame in this case). """ if scope == 'BY_ID': - if thread_id != get_current_thread_id(threading.currentThread()): + if thread_id != get_current_thread_id(threading.current_thread()): raise VariableError("getVariable: must execute on same thread") try: diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.c b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.c index 027d91385e71..ad9018d09f13 100644 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.c +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.c @@ -1717,7 +1717,7 @@ static int __pyx_pf_18_pydevd_frame_eval_29pydevd_frame_evaluator_common_10Threa * self.thread_trace_func = None * * def initialize_if_possible(self): # <<<<<<<<<<<<<< - * # Don't call threading.currentThread because if we're too early in the process + * # Don't call threading.current_thread because if we're too early in the process * # we may create a dummy thread. */ @@ -1770,7 +1770,7 @@ static PyObject *__pyx_pf_18_pydevd_frame_eval_29pydevd_frame_evaluator_common_1 __Pyx_RefNannySetupContext("initialize_if_possible", 0); /* "_pydevd_frame_eval/pydevd_frame_evaluator_common.pyx":29 - * # Don't call threading.currentThread because if we're too early in the process + * # Don't call threading.current_thread because if we're too early in the process * # we may create a dummy thread. * self.inside_frame_eval += 1 # <<<<<<<<<<<<<< * @@ -2461,7 +2461,7 @@ static PyObject *__pyx_pf_18_pydevd_frame_eval_29pydevd_frame_evaluator_common_1 * self.thread_trace_func = None * * def initialize_if_possible(self): # <<<<<<<<<<<<<< - * # Don't call threading.currentThread because if we're too early in the process + * # Don't call threading.current_thread because if we're too early in the process * # we may create a dummy thread. */ diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp310-win32.pyd b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp310-win32.pyd Binary files differindex b11297cd0f3d..f92789f60e49 100644 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp310-win32.pyd +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp310-win32.pyd diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp310-win_amd64.pyd b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp310-win_amd64.pyd Binary files differindex 13d0600c2ad7..5fe5ed6a6611 100644 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp310-win_amd64.pyd +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp310-win_amd64.pyd diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp36-win32.pyd b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp36-win32.pyd Binary files differindex bca58ca80702..c6af2d2b9794 100644 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp36-win32.pyd +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp36-win32.pyd diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp36-win_amd64.pyd b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp36-win_amd64.pyd Binary files differindex e8f16c99f01d..9454bf603c9e 100644 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp36-win_amd64.pyd +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp36-win_amd64.pyd diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp37-win32.pyd b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp37-win32.pyd Binary files differindex 2846136be75e..8aaa4ca42063 100644 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp37-win32.pyd +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp37-win32.pyd diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp37-win_amd64.pyd b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp37-win_amd64.pyd Binary files differindex 071799bad088..05fe16a26cfb 100644 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp37-win_amd64.pyd +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp37-win_amd64.pyd diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp38-win32.pyd b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp38-win32.pyd Binary files differindex f1b1be731871..5ffc6cc0acd3 100644 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp38-win32.pyd +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp38-win32.pyd diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp38-win_amd64.pyd b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp38-win_amd64.pyd Binary files differindex 216b165aea71..da98dc9a20f5 100644 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp38-win_amd64.pyd +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp38-win_amd64.pyd diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp39-win32.pyd b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp39-win32.pyd Binary files differindex 7a2b367f9b9d..e0eeb78bf352 100644 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp39-win32.pyd +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp39-win32.pyd diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp39-win_amd64.pyd b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp39-win_amd64.pyd Binary files differindex 67fe50ecced7..ef224b259a0c 100644 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp39-win_amd64.pyd +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cp39-win_amd64.pyd diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cpython-310-darwin.so b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cpython-310-darwin.so Binary files differindex 88396924209c..c5c51b922f57 100755 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cpython-310-darwin.so +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cpython-310-darwin.so diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cpython-36m-darwin.so b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cpython-36m-darwin.so Binary files differindex 98382da21bb6..c9b33b517736 100755 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cpython-36m-darwin.so +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cpython-36m-darwin.so diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cpython-37m-darwin.so b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cpython-37m-darwin.so Binary files differindex 07ca4b2ae54d..577a8e4f4c76 100755 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cpython-37m-darwin.so +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cpython-37m-darwin.so diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cpython-38-darwin.so b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cpython-38-darwin.so Binary files differindex d2f4b4a2bd5d..b564b96d5ea1 100755 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cpython-38-darwin.so +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cpython-38-darwin.so diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cpython-39-darwin.so b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cpython-39-darwin.so Binary files differindex 1c0e341f0a06..143c5904d2ba 100755 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cpython-39-darwin.so +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.cpython-39-darwin.so diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.pyx b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.pyx index f356399eb7e7..1cb7f0064ac3 100644 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.pyx +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_common.pyx @@ -24,7 +24,7 @@ cdef class ThreadInfo: self.thread_trace_func = None def initialize_if_possible(self): - # Don't call threading.currentThread because if we're too early in the process + # Don't call threading.current_thread because if we're too early in the process # we may create a dummy thread. self.inside_frame_eval += 1 diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_310_64.cpython-310-darwin.so b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_310_64.cpython-310-darwin.so Binary files differindex 34ee95ff4164..1b3ac92b765a 100755 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_310_64.cpython-310-darwin.so +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_310_64.cpython-310-darwin.so diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_36_64.cpython-36m-darwin.so b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_36_64.cpython-36m-darwin.so Binary files differindex 9dcf6f41870b..115a87dd186e 100755 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_36_64.cpython-36m-darwin.so +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_36_64.cpython-36m-darwin.so diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_37_64.cpython-37m-darwin.so b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_37_64.cpython-37m-darwin.so Binary files differindex f367a56e0b3e..adf6959a69b6 100755 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_37_64.cpython-37m-darwin.so +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_37_64.cpython-37m-darwin.so diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_38_64.cpython-38-darwin.so b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_38_64.cpython-38-darwin.so Binary files differindex 6c06d51a4431..5a6c4c4f6598 100755 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_38_64.cpython-38-darwin.so +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_38_64.cpython-38-darwin.so diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_39_64.cpython-39-darwin.so b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_39_64.cpython-39-darwin.so Binary files differindex b2ee86f42727..2e5a8a45a3aa 100755 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_39_64.cpython-39-darwin.so +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_39_64.cpython-39-darwin.so diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_310_32.cp310-win32.pyd b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_310_32.cp310-win32.pyd Binary files differindex f7dbc1359d6d..a2531f2b24a5 100644 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_310_32.cp310-win32.pyd +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_310_32.cp310-win32.pyd diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_310_64.cp310-win_amd64.pyd b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_310_64.cp310-win_amd64.pyd Binary files differindex c1563cdf3d8e..1367d2454b69 100644 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_310_64.cp310-win_amd64.pyd +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_310_64.cp310-win_amd64.pyd diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_36_32.cp36-win32.pyd b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_36_32.cp36-win32.pyd Binary files differindex 34f2eab03a14..4d9912df8f25 100644 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_36_32.cp36-win32.pyd +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_36_32.cp36-win32.pyd diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_36_64.cp36-win_amd64.pyd b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_36_64.cp36-win_amd64.pyd Binary files differindex 858e5c263ccf..effc5292feb3 100644 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_36_64.cp36-win_amd64.pyd +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_36_64.cp36-win_amd64.pyd diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_37_32.cp37-win32.pyd b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_37_32.cp37-win32.pyd Binary files differindex 37ffe38648b7..1f1c093244af 100644 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_37_32.cp37-win32.pyd +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_37_32.cp37-win32.pyd diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_37_64.cp37-win_amd64.pyd b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_37_64.cp37-win_amd64.pyd Binary files differindex d09a2094bf66..060d698853c8 100644 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_37_64.cp37-win_amd64.pyd +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_37_64.cp37-win_amd64.pyd diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_38_32.cp38-win32.pyd b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_38_32.cp38-win32.pyd Binary files differindex 0eed97f9fc37..24164eb304bc 100644 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_38_32.cp38-win32.pyd +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_38_32.cp38-win32.pyd diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_38_64.cp38-win_amd64.pyd b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_38_64.cp38-win_amd64.pyd Binary files differindex 3bf1561b1eb3..79e190f78154 100644 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_38_64.cp38-win_amd64.pyd +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_38_64.cp38-win_amd64.pyd diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_39_32.cp39-win32.pyd b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_39_32.cp39-win32.pyd Binary files differindex b3fcabcbdfbe..623f9b79895b 100644 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_39_32.cp39-win32.pyd +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_39_32.cp39-win32.pyd diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_39_64.cp39-win_amd64.pyd b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_39_64.cp39-win_amd64.pyd Binary files differindex ddd55b10850c..e56885ada51e 100644 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_39_64.cp39-win_amd64.pyd +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_39_64.cp39-win_amd64.pyd diff --git a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_tracing.py b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_tracing.py index 4d2040dbf14a..ae9513dd128f 100644 --- a/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_tracing.py +++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_tracing.py @@ -35,7 +35,7 @@ def _get_line_for_frame(frame): def suspend_at_builtin_breakpoint(): # used by built-in breakpoint() function appeared in Python 3.7 frame = sys._getframe(3) - t = threading.currentThread() + t = threading.current_thread() if t.additional_info.is_tracing: return False if t.additional_info.pydev_step_cmd == -1: @@ -51,7 +51,7 @@ def suspend_at_builtin_breakpoint(): def _pydev_stop_at_break(line): frame = sys._getframe(1) - t = threading.currentThread() + t = threading.current_thread() if t.additional_info.is_tracing: return False diff --git a/python/helpers/pydev/pydev_tests/test_pydevconsole.py b/python/helpers/pydev/pydev_tests/test_pydevconsole.py index 8cb997e3e2e2..71d642300ebd 100644 --- a/python/helpers/pydev/pydev_tests/test_pydevconsole.py +++ b/python/helpers/pydev/pydev_tests/test_pydevconsole.py @@ -34,7 +34,7 @@ class Test(unittest.TestCase): time.sleep(.3) #let's give it some time to start the threads from _pydev_bundle import pydev_localhost - interpreter = pydevconsole.InterpreterInterface(threading.currentThread(), rpc_client=rpc_client) + interpreter = pydevconsole.InterpreterInterface(threading.current_thread(), rpc_client=rpc_client) (result,) = interpreter.hello("Hello pydevconsole") self.assertEqual(result, "Hello eclipse") @@ -54,7 +54,7 @@ class Test(unittest.TestCase): from _pydev_bundle import pydev_localhost from _pydev_bundle.pydev_console_types import CodeFragment - interpreter = pydevconsole.InterpreterInterface(threading.currentThread(), rpc_client=rpc_client) + interpreter = pydevconsole.InterpreterInterface(threading.current_thread(), rpc_client=rpc_client) sys.stdout = pydevd_io.IOBuf() interpreter.add_exec(CodeFragment('class Foo:\n CONSTANT=1\n')) interpreter.add_exec(CodeFragment('foo=Foo()')) diff --git a/python/helpers/pydev/pydevconsole.py b/python/helpers/pydev/pydevconsole.py index acb42c0344fe..ea2e049f1062 100644 --- a/python/helpers/pydev/pydevconsole.py +++ b/python/helpers/pydev/pydevconsole.py @@ -390,7 +390,7 @@ def start_server(port): # 1. Start Python console server # `InterpreterInterface` implements all methods required for `server_handler` - interpreter = InterpreterInterface(threading.currentThread()) + interpreter = InterpreterInterface(threading.current_thread()) # Tell UMD the proper default namespace _set_globals_function(interpreter.get_namespace) @@ -420,7 +420,7 @@ def start_client(host, port): client, server_transport = make_rpc_client(client_service, host, port) - interpreter = InterpreterInterface(threading.currentThread(), rpc_client=client) + interpreter = InterpreterInterface(threading.current_thread(), rpc_client=client) # we do not need to start the server in a new thread because it does not need to accept a client connection, it already has it @@ -454,7 +454,7 @@ def get_interpreter(): try: interpreterInterface = getattr(__builtin__, 'interpreter') except AttributeError: - interpreterInterface = InterpreterInterface(None, None, threading.currentThread()) + interpreterInterface = InterpreterInterface(None, None, threading.current_thread()) __builtin__.interpreter = interpreterInterface print(interpreterInterface.get_greeting_msg()) diff --git a/python/helpers/pydev/pydevd.py b/python/helpers/pydev/pydevd.py index cd76213c57bb..c34a4bd56e64 100644 --- a/python/helpers/pydev/pydevd.py +++ b/python/helpers/pydev/pydevd.py @@ -102,7 +102,7 @@ if SUPPORT_PLUGINS: threadingEnumerate = threading.enumerate -threadingCurrentThread = threading.currentThread +threadingCurrentThread = threading.current_thread original_excepthook = sys.__excepthook__ @@ -130,7 +130,7 @@ class PyDBCommandThread(PyDBDaemonThread): PyDBDaemonThread.__init__(self) self._py_db_command_thread_event = py_db._py_db_command_thread_event self.py_db = py_db - self.setName('pydevd.CommandThread') + self.name = 'pydevd.CommandThread' @overrides(PyDBDaemonThread._on_run) def _on_run(self): @@ -1528,7 +1528,7 @@ class PyDB(object): def wait_for_commands(self, globals): self._activate_mpl_if_needed() - thread = threading.currentThread() + thread = threading.current_thread() from _pydevd_bundle import pydevd_frame_utils frame = pydevd_frame_utils.Frame(None, -1, pydevd_frame_utils.FCode("Console", os.path.abspath(os.path.dirname(__file__))), globals, globals) diff --git a/python/helpers/pydev/pydevd_concurrency_analyser/pydevd_concurrency_logger.py b/python/helpers/pydev/pydevd_concurrency_analyser/pydevd_concurrency_logger.py index 8e369c1154af..f045c873653c 100644 --- a/python/helpers/pydev/pydevd_concurrency_analyser/pydevd_concurrency_logger.py +++ b/python/helpers/pydev/pydevd_concurrency_analyser/pydevd_concurrency_logger.py @@ -12,7 +12,7 @@ except: from urllib.parse import quote # @UnresolvedImport from _pydev_imps._pydev_saved_modules import threading -threadingCurrentThread = threading.currentThread +threadingCurrentThread = threading.current_thread DONT_TRACE_THREADING = ['threading.py', 'pydevd.py'] diff --git a/python/helpers/typeshed/stdlib/@python2/__builtin__.pyi b/python/helpers/typeshed/stdlib/@python2/__builtin__.pyi index 4791fd6c7a6a..453a95871463 100644 --- a/python/helpers/typeshed/stdlib/@python2/__builtin__.pyi +++ b/python/helpers/typeshed/stdlib/@python2/__builtin__.pyi @@ -1,7 +1,7 @@ # True and False are deliberately omitted because they are keywords in # Python 3, and stub files conform to Python 3 syntax. -from _typeshed import ReadableBuffer, Self, SupportsKeysAndGetItem, SupportsWrite +from _typeshed import ReadableBuffer, SupportsKeysAndGetItem, SupportsWrite from abc import ABCMeta from ast import mod from types import CodeType @@ -13,11 +13,14 @@ from typing import ( ByteString, Callable, Container, + Dict, + FrozenSet, Generic, ItemsView, Iterable, Iterator, KeysView, + List, Mapping, MutableMapping, MutableSequence, @@ -26,12 +29,15 @@ from typing import ( Protocol, Reversible, Sequence, + Set, Sized, SupportsAbs, SupportsComplex, SupportsFloat, SupportsInt, Text, + Tuple, + Type, TypeVar, ValuesView, overload, @@ -54,68 +60,70 @@ _T2 = TypeVar("_T2") _T3 = TypeVar("_T3") _T4 = TypeVar("_T4") _T5 = TypeVar("_T5") -_TT = TypeVar("_TT", bound=type) +_TT = TypeVar("_TT", bound="type") +_TBE = TypeVar("_TBE", bound="BaseException") class object: __doc__: str | None - __dict__: dict[str, Any] + __dict__: Dict[str, Any] + __slots__: Text | Iterable[Text] __module__: str @property - def __class__(self: _T) -> type[_T]: ... + def __class__(self: _T) -> Type[_T]: ... @__class__.setter - def __class__(self, __type: type[object]) -> None: ... # noqa: F811 + def __class__(self, __type: Type[object]) -> None: ... # noqa: F811 def __init__(self) -> None: ... def __new__(cls) -> Any: ... def __setattr__(self, name: str, value: Any) -> None: ... def __eq__(self, o: object) -> bool: ... def __ne__(self, o: object) -> bool: ... - def __str__(self) -> str: ... # noqa Y029 - def __repr__(self) -> str: ... # noqa Y029 + def __str__(self) -> str: ... + def __repr__(self) -> str: ... def __hash__(self) -> int: ... def __format__(self, format_spec: str) -> str: ... def __getattribute__(self, name: str) -> Any: ... def __delattr__(self, name: str) -> None: ... def __sizeof__(self) -> int: ... - def __reduce__(self) -> str | tuple[Any, ...]: ... - def __reduce_ex__(self, protocol: int) -> str | tuple[Any, ...]: ... + def __reduce__(self) -> str | Tuple[Any, ...]: ... + def __reduce_ex__(self, protocol: int) -> str | Tuple[Any, ...]: ... class staticmethod(object): # Special, only valid as a decorator. __func__: Callable[..., Any] def __init__(self, f: Callable[..., Any]) -> None: ... - def __new__(cls: type[Self], *args: Any, **kwargs: Any) -> Self: ... - def __get__(self, obj: _T, type: type[_T] | None = ...) -> Callable[..., Any]: ... + def __new__(cls: Type[_T], *args: Any, **kwargs: Any) -> _T: ... + def __get__(self, obj: _T, type: Type[_T] | None = ...) -> Callable[..., Any]: ... class classmethod(object): # Special, only valid as a decorator. __func__: Callable[..., Any] def __init__(self, f: Callable[..., Any]) -> None: ... - def __new__(cls: type[Self], *args: Any, **kwargs: Any) -> Self: ... - def __get__(self, obj: _T, type: type[_T] | None = ...) -> Callable[..., Any]: ... + def __new__(cls: Type[_T], *args: Any, **kwargs: Any) -> _T: ... + def __get__(self, obj: _T, type: Type[_T] | None = ...) -> Callable[..., Any]: ... class type(object): __base__: type - __bases__: tuple[type, ...] + __bases__: Tuple[type, ...] __basicsize__: int - __dict__: dict[str, Any] + __dict__: Dict[str, Any] __dictoffset__: int __flags__: int __itemsize__: int __module__: str - __mro__: tuple[type, ...] + __mro__: Tuple[type, ...] __name__: str __weakrefoffset__: int @overload def __init__(self, o: object) -> None: ... @overload - def __init__(self, name: str, bases: tuple[type, ...], dict: dict[str, Any]) -> None: ... + def __init__(self, name: str, bases: Tuple[type, ...], dict: Dict[str, Any]) -> None: ... @overload def __new__(cls, o: object) -> type: ... @overload - def __new__(cls, name: str, bases: tuple[type, ...], namespace: dict[str, Any]) -> type: ... + def __new__(cls, name: str, bases: Tuple[type, ...], namespace: Dict[str, Any]) -> type: ... def __call__(self, *args: Any, **kwds: Any) -> Any: ... - def __subclasses__(self: _TT) -> list[_TT]: ... - # Note: the documentation doesn't specify what the return type is, the standard + def __subclasses__(self: _TT) -> List[_TT]: ... + # Note: the documentation doesnt specify what the return type is, the standard # implementation seems to be returning a list. - def mro(self) -> list[type]: ... + def mro(self) -> List[type]: ... def __instancecheck__(self, instance: Any) -> bool: ... def __subclasscheck__(self, subclass: type) -> bool: ... @@ -127,9 +135,9 @@ class super(object): class int: @overload - def __new__(cls: type[Self], x: Text | bytes | SupportsInt | _SupportsIndex | _SupportsTrunc = ...) -> Self: ... + def __new__(cls: Type[_T], x: Text | bytes | SupportsInt | _SupportsIndex | _SupportsTrunc = ...) -> _T: ... @overload - def __new__(cls: type[Self], x: Text | bytes | bytearray, base: int) -> Self: ... + def __new__(cls: Type[_T], x: Text | bytes | bytearray, base: int) -> _T: ... @property def real(self) -> int: ... @property @@ -147,7 +155,7 @@ class int: def __div__(self, x: int) -> int: ... def __truediv__(self, x: int) -> float: ... def __mod__(self, x: int) -> int: ... - def __divmod__(self, x: int) -> tuple[int, int]: ... + def __divmod__(self, x: int) -> Tuple[int, int]: ... def __radd__(self, x: int) -> int: ... def __rsub__(self, x: int) -> int: ... def __rmul__(self, x: int) -> int: ... @@ -155,7 +163,7 @@ class int: def __rdiv__(self, x: int) -> int: ... def __rtruediv__(self, x: int) -> float: ... def __rmod__(self, x: int) -> int: ... - def __rdivmod__(self, x: int) -> tuple[int, int]: ... + def __rdivmod__(self, x: int) -> Tuple[int, int]: ... @overload def __pow__(self, __x: Literal[2], __modulo: int | None = ...) -> int: ... @overload @@ -175,13 +183,14 @@ class int: def __pos__(self) -> int: ... def __invert__(self) -> int: ... def __trunc__(self) -> int: ... - def __getnewargs__(self) -> tuple[int]: ... + def __getnewargs__(self) -> Tuple[int]: ... def __eq__(self, x: object) -> bool: ... def __ne__(self, x: object) -> bool: ... def __lt__(self, x: int) -> bool: ... def __le__(self, x: int) -> bool: ... def __gt__(self, x: int) -> bool: ... def __ge__(self, x: int) -> bool: ... + def __str__(self) -> str: ... def __float__(self) -> float: ... def __int__(self) -> int: ... def __abs__(self) -> int: ... @@ -190,8 +199,8 @@ class int: def __index__(self) -> int: ... class float: - def __new__(cls: type[Self], x: SupportsFloat | _SupportsIndex | Text | bytes | bytearray = ...) -> Self: ... - def as_integer_ratio(self) -> tuple[int, int]: ... + def __new__(cls: Type[_T], x: SupportsFloat | _SupportsIndex | Text | bytes | bytearray = ...) -> _T: ... + def as_integer_ratio(self) -> Tuple[int, int]: ... def hex(self) -> str: ... def is_integer(self) -> bool: ... @classmethod @@ -208,7 +217,7 @@ class float: def __div__(self, x: float) -> float: ... def __truediv__(self, x: float) -> float: ... def __mod__(self, x: float) -> float: ... - def __divmod__(self, x: float) -> tuple[float, float]: ... + def __divmod__(self, x: float) -> Tuple[float, float]: ... def __pow__( self, x: float, mod: None = ... ) -> float: ... # In Python 3, returns complex if self is negative and x is not whole @@ -219,9 +228,9 @@ class float: def __rdiv__(self, x: float) -> float: ... def __rtruediv__(self, x: float) -> float: ... def __rmod__(self, x: float) -> float: ... - def __rdivmod__(self, x: float) -> tuple[float, float]: ... + def __rdivmod__(self, x: float) -> Tuple[float, float]: ... def __rpow__(self, x: float, mod: None = ...) -> float: ... - def __getnewargs__(self) -> tuple[float]: ... + def __getnewargs__(self) -> Tuple[float]: ... def __trunc__(self) -> int: ... def __eq__(self, x: object) -> bool: ... def __ne__(self, x: object) -> bool: ... @@ -231,6 +240,7 @@ class float: def __ge__(self, x: float) -> bool: ... def __neg__(self) -> float: ... def __pos__(self) -> float: ... + def __str__(self) -> str: ... def __int__(self) -> int: ... def __float__(self) -> float: ... def __abs__(self) -> float: ... @@ -239,9 +249,9 @@ class float: class complex: @overload - def __new__(cls: type[Self], real: float = ..., imag: float = ...) -> Self: ... + def __new__(cls: Type[_T], real: float = ..., imag: float = ...) -> _T: ... @overload - def __new__(cls: type[Self], real: str | SupportsComplex | _SupportsIndex) -> Self: ... + def __new__(cls: Type[_T], real: str | SupportsComplex | _SupportsIndex) -> _T: ... @property def real(self) -> float: ... @property @@ -263,6 +273,7 @@ class complex: def __ne__(self, x: object) -> bool: ... def __neg__(self) -> complex: ... def __pos__(self) -> complex: ... + def __str__(self) -> str: ... def __complex__(self) -> complex: ... def __abs__(self) -> float: ... def __hash__(self) -> int: ... @@ -282,7 +293,7 @@ class unicode(basestring, Sequence[unicode]): def count(self, x: unicode) -> int: ... def decode(self, encoding: unicode = ..., errors: unicode = ...) -> unicode: ... def encode(self, encoding: unicode = ..., errors: unicode = ...) -> str: ... - def endswith(self, __suffix: unicode | tuple[unicode, ...], __start: int | None = ..., __end: int | None = ...) -> bool: ... + def endswith(self, __suffix: unicode | Tuple[unicode, ...], __start: int | None = ..., __end: int | None = ...) -> bool: ... def expandtabs(self, tabsize: int = ...) -> unicode: ... def find(self, sub: unicode, start: int = ..., end: int = ...) -> int: ... def format(self, *args: object, **kwargs: object) -> unicode: ... @@ -302,21 +313,21 @@ class unicode(basestring, Sequence[unicode]): def ljust(self, width: int, fillchar: unicode = ...) -> unicode: ... def lower(self) -> unicode: ... def lstrip(self, chars: unicode = ...) -> unicode: ... - def partition(self, sep: unicode) -> tuple[unicode, unicode, unicode]: ... + def partition(self, sep: unicode) -> Tuple[unicode, unicode, unicode]: ... def replace(self, old: unicode, new: unicode, count: int = ...) -> unicode: ... def rfind(self, sub: unicode, start: int = ..., end: int = ...) -> int: ... def rindex(self, sub: unicode, start: int = ..., end: int = ...) -> int: ... def rjust(self, width: int, fillchar: unicode = ...) -> unicode: ... - def rpartition(self, sep: unicode) -> tuple[unicode, unicode, unicode]: ... - def rsplit(self, sep: unicode | None = ..., maxsplit: int = ...) -> list[unicode]: ... + def rpartition(self, sep: unicode) -> Tuple[unicode, unicode, unicode]: ... + def rsplit(self, sep: unicode | None = ..., maxsplit: int = ...) -> List[unicode]: ... def rstrip(self, chars: unicode = ...) -> unicode: ... - def split(self, sep: unicode | None = ..., maxsplit: int = ...) -> list[unicode]: ... - def splitlines(self, keepends: bool = ...) -> list[unicode]: ... - def startswith(self, __prefix: unicode | tuple[unicode, ...], __start: int | None = ..., __end: int | None = ...) -> bool: ... + def split(self, sep: unicode | None = ..., maxsplit: int = ...) -> List[unicode]: ... + def splitlines(self, keepends: bool = ...) -> List[unicode]: ... + def startswith(self, __prefix: unicode | Tuple[unicode, ...], __start: int | None = ..., __end: int | None = ...) -> bool: ... def strip(self, chars: unicode = ...) -> unicode: ... def swapcase(self) -> unicode: ... def title(self) -> unicode: ... - def translate(self, table: dict[int, Any] | unicode) -> unicode: ... + def translate(self, table: Dict[int, Any] | unicode) -> unicode: ... def upper(self) -> unicode: ... def zfill(self, width: int) -> unicode: ... @overload @@ -338,10 +349,12 @@ class unicode(basestring, Sequence[unicode]): # The argument type is incompatible with Sequence def __contains__(self, s: unicode | bytes) -> bool: ... # type: ignore def __iter__(self) -> Iterator[unicode]: ... + def __str__(self) -> str: ... + def __repr__(self) -> str: ... def __int__(self) -> int: ... def __float__(self) -> float: ... def __hash__(self) -> int: ... - def __getnewargs__(self) -> tuple[unicode]: ... + def __getnewargs__(self) -> Tuple[unicode]: ... class _FormatMapMapping(Protocol): def __getitem__(self, __key: str) -> Any: ... @@ -353,7 +366,7 @@ class str(Sequence[str], basestring): def count(self, x: Text, __start: int | None = ..., __end: int | None = ...) -> int: ... def decode(self, encoding: Text = ..., errors: Text = ...) -> unicode: ... def encode(self, encoding: Text = ..., errors: Text = ...) -> bytes: ... - def endswith(self, __suffix: Text | tuple[Text, ...], __start: int | None = ..., __end: int | None = ...) -> bool: ... + def endswith(self, __suffix: Text | Tuple[Text, ...], __start: int | None = ..., __end: int | None = ...) -> bool: ... def expandtabs(self, tabsize: int = ...) -> str: ... def find(self, sub: Text, __start: int | None = ..., __end: int | None = ...) -> int: ... def format(self, *args: object, **kwargs: object) -> str: ... @@ -374,35 +387,35 @@ class str(Sequence[str], basestring): @overload def lstrip(self, __chars: unicode) -> unicode: ... @overload - def partition(self, __sep: bytearray) -> tuple[str, bytearray, str]: ... + def partition(self, __sep: bytearray) -> Tuple[str, bytearray, str]: ... @overload - def partition(self, __sep: str) -> tuple[str, str, str]: ... + def partition(self, __sep: str) -> Tuple[str, str, str]: ... @overload - def partition(self, __sep: unicode) -> tuple[unicode, unicode, unicode]: ... + def partition(self, __sep: unicode) -> Tuple[unicode, unicode, unicode]: ... def replace(self, __old: AnyStr, __new: AnyStr, __count: int = ...) -> AnyStr: ... def rfind(self, sub: Text, __start: int | None = ..., __end: int | None = ...) -> int: ... def rindex(self, sub: Text, __start: int | None = ..., __end: int | None = ...) -> int: ... def rjust(self, __width: int, __fillchar: str = ...) -> str: ... @overload - def rpartition(self, __sep: bytearray) -> tuple[str, bytearray, str]: ... + def rpartition(self, __sep: bytearray) -> Tuple[str, bytearray, str]: ... @overload - def rpartition(self, __sep: str) -> tuple[str, str, str]: ... + def rpartition(self, __sep: str) -> Tuple[str, str, str]: ... @overload - def rpartition(self, __sep: unicode) -> tuple[unicode, unicode, unicode]: ... + def rpartition(self, __sep: unicode) -> Tuple[unicode, unicode, unicode]: ... @overload - def rsplit(self, sep: str | None = ..., maxsplit: int = ...) -> list[str]: ... + def rsplit(self, sep: str | None = ..., maxsplit: int = ...) -> List[str]: ... @overload - def rsplit(self, sep: unicode, maxsplit: int = ...) -> list[unicode]: ... + def rsplit(self, sep: unicode, maxsplit: int = ...) -> List[unicode]: ... @overload def rstrip(self, __chars: str = ...) -> str: ... @overload def rstrip(self, __chars: unicode) -> unicode: ... @overload - def split(self, sep: str | None = ..., maxsplit: int = ...) -> list[str]: ... + def split(self, sep: str | None = ..., maxsplit: int = ...) -> List[str]: ... @overload - def split(self, sep: unicode, maxsplit: int = ...) -> list[unicode]: ... - def splitlines(self, keepends: bool = ...) -> list[str]: ... - def startswith(self, __prefix: Text | tuple[Text, ...], __start: int | None = ..., __end: int | None = ...) -> bool: ... + def split(self, sep: unicode, maxsplit: int = ...) -> List[unicode]: ... + def splitlines(self, keepends: bool = ...) -> List[str]: ... + def startswith(self, __prefix: Text | Tuple[Text, ...], __start: int | None = ..., __end: int | None = ...) -> bool: ... @overload def strip(self, __chars: str = ...) -> str: ... @overload @@ -427,8 +440,10 @@ class str(Sequence[str], basestring): def __mod__(self, x: Any) -> str: ... def __mul__(self, n: int) -> str: ... def __ne__(self, x: object) -> bool: ... + def __repr__(self) -> str: ... def __rmul__(self, n: int) -> str: ... - def __getnewargs__(self) -> tuple[str]: ... + def __str__(self) -> str: ... + def __getnewargs__(self) -> Tuple[str]: ... def __getslice__(self, start: int, stop: int) -> str: ... def __float__(self) -> float: ... def __int__(self) -> int: ... @@ -450,7 +465,7 @@ class bytearray(MutableSequence[int], ByteString): def center(self, __width: int, __fillchar: bytes = ...) -> bytearray: ... def count(self, __sub: str) -> int: ... def decode(self, encoding: Text = ..., errors: Text = ...) -> str: ... - def endswith(self, __suffix: bytes | tuple[bytes, ...], __start: int | None = ..., __end: int | None = ...) -> bool: ... + def endswith(self, __suffix: bytes | Tuple[bytes, ...], __start: int | None = ..., __end: int | None = ...) -> bool: ... def expandtabs(self, tabsize: int = ...) -> bytearray: ... def extend(self, iterable: str | Iterable[int]) -> None: ... def find(self, __sub: str, __start: int = ..., __end: int = ...) -> int: ... @@ -467,17 +482,17 @@ class bytearray(MutableSequence[int], ByteString): def ljust(self, __width: int, __fillchar: str = ...) -> bytearray: ... def lower(self) -> bytearray: ... def lstrip(self, __bytes: bytes | None = ...) -> bytearray: ... - def partition(self, __sep: bytes) -> tuple[bytearray, bytearray, bytearray]: ... + def partition(self, __sep: bytes) -> Tuple[bytearray, bytearray, bytearray]: ... def replace(self, __old: bytes, __new: bytes, __count: int = ...) -> bytearray: ... def rfind(self, __sub: bytes, __start: int = ..., __end: int = ...) -> int: ... def rindex(self, __sub: bytes, __start: int = ..., __end: int = ...) -> int: ... def rjust(self, __width: int, __fillchar: bytes = ...) -> bytearray: ... - def rpartition(self, __sep: bytes) -> tuple[bytearray, bytearray, bytearray]: ... - def rsplit(self, sep: bytes | None = ..., maxsplit: int = ...) -> list[bytearray]: ... + def rpartition(self, __sep: bytes) -> Tuple[bytearray, bytearray, bytearray]: ... + def rsplit(self, sep: bytes | None = ..., maxsplit: int = ...) -> List[bytearray]: ... def rstrip(self, __bytes: bytes | None = ...) -> bytearray: ... - def split(self, sep: bytes | None = ..., maxsplit: int = ...) -> list[bytearray]: ... - def splitlines(self, keepends: bool = ...) -> list[bytearray]: ... - def startswith(self, __prefix: bytes | tuple[bytes, ...], __start: int | None = ..., __end: int | None = ...) -> bool: ... + def split(self, sep: bytes | None = ..., maxsplit: int = ...) -> List[bytearray]: ... + def splitlines(self, keepends: bool = ...) -> List[bytearray]: ... + def startswith(self, __prefix: bytes | Tuple[bytes, ...], __start: int | None = ..., __end: int | None = ...) -> bool: ... def strip(self, __bytes: bytes | None = ...) -> bytearray: ... def swapcase(self) -> bytearray: ... def title(self) -> bytearray: ... @@ -488,6 +503,8 @@ class bytearray(MutableSequence[int], ByteString): def fromhex(cls, __string: str) -> bytearray: ... def __len__(self) -> int: ... def __iter__(self) -> Iterator[int]: ... + def __str__(self) -> str: ... + def __repr__(self) -> str: ... def __int__(self) -> int: ... def __float__(self) -> float: ... __hash__: None # type: ignore @@ -517,9 +534,9 @@ class bytearray(MutableSequence[int], ByteString): class memoryview(Sized, Container[str]): format: str itemsize: int - shape: tuple[int, ...] | None - strides: tuple[int, ...] | None - suboffsets: tuple[int, ...] | None + shape: Tuple[int, ...] | None + strides: Tuple[int, ...] | None + suboffsets: Tuple[int, ...] | None readonly: bool ndim: int def __init__(self, obj: ReadableBuffer) -> None: ... @@ -535,11 +552,11 @@ class memoryview(Sized, Container[str]): @overload def __setitem__(self, i: int, o: int) -> None: ... def tobytes(self) -> bytes: ... - def tolist(self) -> list[int]: ... + def tolist(self) -> List[int]: ... @final class bool(int): - def __new__(cls: type[Self], __o: object = ...) -> Self: ... + def __new__(cls: Type[_T], __o: object = ...) -> _T: ... @overload def __and__(self, x: bool) -> bool: ... @overload @@ -564,7 +581,7 @@ class bool(int): def __rxor__(self, x: bool) -> bool: ... @overload def __rxor__(self, x: int) -> int: ... - def __getnewargs__(self) -> tuple[int]: ... + def __getnewargs__(self) -> Tuple[int]: ... class slice(object): start: Any @@ -575,27 +592,27 @@ class slice(object): @overload def __init__(self, start: Any, stop: Any, step: Any = ...) -> None: ... __hash__: None # type: ignore - def indices(self, len: int) -> tuple[int, int, int]: ... + def indices(self, len: int) -> Tuple[int, int, int]: ... class tuple(Sequence[_T_co], Generic[_T_co]): - def __new__(cls: type[Self], iterable: Iterable[_T_co] = ...) -> Self: ... + def __new__(cls: Type[_T], iterable: Iterable[_T_co] = ...) -> _T: ... def __len__(self) -> int: ... def __contains__(self, x: object) -> bool: ... @overload def __getitem__(self, x: int) -> _T_co: ... @overload - def __getitem__(self, x: slice) -> tuple[_T_co, ...]: ... + def __getitem__(self, x: slice) -> Tuple[_T_co, ...]: ... def __iter__(self) -> Iterator[_T_co]: ... - def __lt__(self, x: tuple[_T_co, ...]) -> bool: ... - def __le__(self, x: tuple[_T_co, ...]) -> bool: ... - def __gt__(self, x: tuple[_T_co, ...]) -> bool: ... - def __ge__(self, x: tuple[_T_co, ...]) -> bool: ... + def __lt__(self, x: Tuple[_T_co, ...]) -> bool: ... + def __le__(self, x: Tuple[_T_co, ...]) -> bool: ... + def __gt__(self, x: Tuple[_T_co, ...]) -> bool: ... + def __ge__(self, x: Tuple[_T_co, ...]) -> bool: ... @overload - def __add__(self, x: tuple[_T_co, ...]) -> tuple[_T_co, ...]: ... + def __add__(self, x: Tuple[_T_co, ...]) -> Tuple[_T_co, ...]: ... @overload - def __add__(self, x: tuple[Any, ...]) -> tuple[Any, ...]: ... - def __mul__(self, n: int) -> tuple[_T_co, ...]: ... - def __rmul__(self, n: int) -> tuple[_T_co, ...]: ... + def __add__(self, x: Tuple[Any, ...]) -> Tuple[Any, ...]: ... + def __mul__(self, n: int) -> Tuple[_T_co, ...]: ... + def __rmul__(self, n: int) -> Tuple[_T_co, ...]: ... def count(self, __value: Any) -> int: ... def index(self, __value: Any) -> int: ... @@ -621,29 +638,30 @@ class list(MutableSequence[_T], Generic[_T]): def sort(self, cmp: Callable[[_T, _T], Any] = ..., key: Callable[[_T], Any] = ..., reverse: bool = ...) -> None: ... def __len__(self) -> int: ... def __iter__(self) -> Iterator[_T]: ... + def __str__(self) -> str: ... __hash__: None # type: ignore @overload def __getitem__(self, i: int) -> _T: ... @overload - def __getitem__(self, s: slice) -> list[_T]: ... + def __getitem__(self, s: slice) -> List[_T]: ... @overload def __setitem__(self, i: int, o: _T) -> None: ... @overload def __setitem__(self, s: slice, o: Iterable[_T]) -> None: ... def __delitem__(self, i: int | slice) -> None: ... - def __getslice__(self, start: int, stop: int) -> list[_T]: ... + def __getslice__(self, start: int, stop: int) -> List[_T]: ... def __setslice__(self, start: int, stop: int, o: Sequence[_T]) -> None: ... def __delslice__(self, start: int, stop: int) -> None: ... - def __add__(self, x: list[_T]) -> list[_T]: ... - def __iadd__(self: Self, x: Iterable[_T]) -> Self: ... - def __mul__(self, n: int) -> list[_T]: ... - def __rmul__(self, n: int) -> list[_T]: ... + def __add__(self, x: List[_T]) -> List[_T]: ... + def __iadd__(self: _S, x: Iterable[_T]) -> _S: ... + def __mul__(self, n: int) -> List[_T]: ... + def __rmul__(self, n: int) -> List[_T]: ... def __contains__(self, o: object) -> bool: ... def __reversed__(self) -> Iterator[_T]: ... - def __gt__(self, x: list[_T]) -> bool: ... - def __ge__(self, x: list[_T]) -> bool: ... - def __lt__(self, x: list[_T]) -> bool: ... - def __le__(self, x: list[_T]) -> bool: ... + def __gt__(self, x: List[_T]) -> bool: ... + def __ge__(self, x: List[_T]) -> bool: ... + def __lt__(self, x: List[_T]) -> bool: ... + def __le__(self, x: List[_T]) -> bool: ... class dict(MutableMapping[_KT, _VT], Generic[_KT, _VT]): # NOTE: Keyword arguments are special. If they are used, _KT must include @@ -653,74 +671,76 @@ class dict(MutableMapping[_KT, _VT], Generic[_KT, _VT]): @overload def __init__(self, map: SupportsKeysAndGetItem[_KT, _VT], **kwargs: _VT) -> None: ... @overload - def __init__(self, iterable: Iterable[tuple[_KT, _VT]], **kwargs: _VT) -> None: ... - def __new__(cls: type[Self], *args: Any, **kwargs: Any) -> Self: ... + def __init__(self, iterable: Iterable[Tuple[_KT, _VT]], **kwargs: _VT) -> None: ... + def __new__(cls: Type[_T1], *args: Any, **kwargs: Any) -> _T1: ... def has_key(self, k: _KT) -> bool: ... def clear(self) -> None: ... - def copy(self) -> dict[_KT, _VT]: ... - def popitem(self) -> tuple[_KT, _VT]: ... + def copy(self) -> Dict[_KT, _VT]: ... + def popitem(self) -> Tuple[_KT, _VT]: ... def setdefault(self, __key: _KT, __default: _VT = ...) -> _VT: ... @overload def update(self, __m: Mapping[_KT, _VT], **kwargs: _VT) -> None: ... @overload - def update(self, __m: Iterable[tuple[_KT, _VT]], **kwargs: _VT) -> None: ... + def update(self, __m: Iterable[Tuple[_KT, _VT]], **kwargs: _VT) -> None: ... @overload def update(self, **kwargs: _VT) -> None: ... def iterkeys(self) -> Iterator[_KT]: ... def itervalues(self) -> Iterator[_VT]: ... - def iteritems(self) -> Iterator[tuple[_KT, _VT]]: ... + def iteritems(self) -> Iterator[Tuple[_KT, _VT]]: ... def viewkeys(self) -> KeysView[_KT]: ... def viewvalues(self) -> ValuesView[_VT]: ... def viewitems(self) -> ItemsView[_KT, _VT]: ... @classmethod @overload - def fromkeys(cls, __iterable: Iterable[_T]) -> dict[_T, Any]: ... + def fromkeys(cls, __iterable: Iterable[_T]) -> Dict[_T, Any]: ... @classmethod @overload - def fromkeys(cls, __iterable: Iterable[_T], __value: _S) -> dict[_T, _S]: ... + def fromkeys(cls, __iterable: Iterable[_T], __value: _S) -> Dict[_T, _S]: ... def __len__(self) -> int: ... def __getitem__(self, k: _KT) -> _VT: ... def __setitem__(self, k: _KT, v: _VT) -> None: ... def __delitem__(self, v: _KT) -> None: ... def __iter__(self) -> Iterator[_KT]: ... + def __str__(self) -> str: ... __hash__: None # type: ignore class set(MutableSet[_T], Generic[_T]): def __init__(self, iterable: Iterable[_T] = ...) -> None: ... def add(self, element: _T) -> None: ... def clear(self) -> None: ... - def copy(self) -> set[_T]: ... - def difference(self, *s: Iterable[Any]) -> set[_T]: ... + def copy(self) -> Set[_T]: ... + def difference(self, *s: Iterable[Any]) -> Set[_T]: ... def difference_update(self, *s: Iterable[Any]) -> None: ... def discard(self, element: _T) -> None: ... - def intersection(self, *s: Iterable[Any]) -> set[_T]: ... + def intersection(self, *s: Iterable[Any]) -> Set[_T]: ... def intersection_update(self, *s: Iterable[Any]) -> None: ... def isdisjoint(self, s: Iterable[Any]) -> bool: ... def issubset(self, s: Iterable[Any]) -> bool: ... def issuperset(self, s: Iterable[Any]) -> bool: ... def pop(self) -> _T: ... def remove(self, element: _T) -> None: ... - def symmetric_difference(self, s: Iterable[_T]) -> set[_T]: ... + def symmetric_difference(self, s: Iterable[_T]) -> Set[_T]: ... def symmetric_difference_update(self, s: Iterable[_T]) -> None: ... - def union(self, *s: Iterable[_T]) -> set[_T]: ... + def union(self, *s: Iterable[_T]) -> Set[_T]: ... def update(self, *s: Iterable[_T]) -> None: ... def __len__(self) -> int: ... def __contains__(self, o: object) -> bool: ... def __iter__(self) -> Iterator[_T]: ... - def __and__(self, s: AbstractSet[object]) -> set[_T]: ... - def __iand__(self: Self, s: AbstractSet[object]) -> Self: ... - def __or__(self, s: AbstractSet[_S]) -> set[_T | _S]: ... - def __ior__(self: Self, s: AbstractSet[_T]) -> Self: ... + def __str__(self) -> str: ... + def __and__(self, s: AbstractSet[object]) -> Set[_T]: ... + def __iand__(self, s: AbstractSet[object]) -> Set[_T]: ... + def __or__(self, s: AbstractSet[_S]) -> Set[_T | _S]: ... + def __ior__(self, s: AbstractSet[_S]) -> Set[_T | _S]: ... @overload - def __sub__(self: set[str], s: AbstractSet[Text | None]) -> set[_T]: ... + def __sub__(self: Set[str], s: AbstractSet[Text | None]) -> Set[_T]: ... @overload - def __sub__(self, s: AbstractSet[_T | None]) -> set[_T]: ... + def __sub__(self, s: AbstractSet[_T | None]) -> Set[_T]: ... @overload # type: ignore - def __isub__(self: set[str], s: AbstractSet[Text | None]) -> set[_T]: ... + def __isub__(self: Set[str], s: AbstractSet[Text | None]) -> Set[_T]: ... @overload - def __isub__(self, s: AbstractSet[_T | None]) -> set[_T]: ... - def __xor__(self, s: AbstractSet[_S]) -> set[_T | _S]: ... - def __ixor__(self: Self, s: AbstractSet[_T]) -> Self: ... + def __isub__(self, s: AbstractSet[_T | None]) -> Set[_T]: ... + def __xor__(self, s: AbstractSet[_S]) -> Set[_T | _S]: ... + def __ixor__(self, s: AbstractSet[_S]) -> Set[_T | _S]: ... def __le__(self, s: AbstractSet[object]) -> bool: ... def __lt__(self, s: AbstractSet[object]) -> bool: ... def __ge__(self, s: AbstractSet[object]) -> bool: ... @@ -729,30 +749,31 @@ class set(MutableSet[_T], Generic[_T]): class frozenset(AbstractSet[_T_co], Generic[_T_co]): def __init__(self, iterable: Iterable[_T_co] = ...) -> None: ... - def copy(self) -> frozenset[_T_co]: ... - def difference(self, *s: Iterable[object]) -> frozenset[_T_co]: ... - def intersection(self, *s: Iterable[object]) -> frozenset[_T_co]: ... + def copy(self) -> FrozenSet[_T_co]: ... + def difference(self, *s: Iterable[object]) -> FrozenSet[_T_co]: ... + def intersection(self, *s: Iterable[object]) -> FrozenSet[_T_co]: ... def isdisjoint(self, s: Iterable[_T_co]) -> bool: ... def issubset(self, s: Iterable[object]) -> bool: ... def issuperset(self, s: Iterable[object]) -> bool: ... - def symmetric_difference(self, s: Iterable[_T_co]) -> frozenset[_T_co]: ... - def union(self, *s: Iterable[_T_co]) -> frozenset[_T_co]: ... + def symmetric_difference(self, s: Iterable[_T_co]) -> FrozenSet[_T_co]: ... + def union(self, *s: Iterable[_T_co]) -> FrozenSet[_T_co]: ... def __len__(self) -> int: ... def __contains__(self, o: object) -> bool: ... def __iter__(self) -> Iterator[_T_co]: ... - def __and__(self, s: AbstractSet[_T_co]) -> frozenset[_T_co]: ... - def __or__(self, s: AbstractSet[_S]) -> frozenset[_T_co | _S]: ... - def __sub__(self, s: AbstractSet[_T_co]) -> frozenset[_T_co]: ... - def __xor__(self, s: AbstractSet[_S]) -> frozenset[_T_co | _S]: ... + def __str__(self) -> str: ... + def __and__(self, s: AbstractSet[_T_co]) -> FrozenSet[_T_co]: ... + def __or__(self, s: AbstractSet[_S]) -> FrozenSet[_T_co | _S]: ... + def __sub__(self, s: AbstractSet[_T_co]) -> FrozenSet[_T_co]: ... + def __xor__(self, s: AbstractSet[_S]) -> FrozenSet[_T_co | _S]: ... def __le__(self, s: AbstractSet[object]) -> bool: ... def __lt__(self, s: AbstractSet[object]) -> bool: ... def __ge__(self, s: AbstractSet[object]) -> bool: ... def __gt__(self, s: AbstractSet[object]) -> bool: ... -class enumerate(Iterator[tuple[int, _T]], Generic[_T]): +class enumerate(Iterator[Tuple[int, _T]], Generic[_T]): def __init__(self, iterable: Iterable[_T], start: int = ...) -> None: ... - def __iter__(self) -> Iterator[tuple[int, _T]]: ... - def next(self) -> tuple[int, _T]: ... + def __iter__(self) -> Iterator[Tuple[int, _T]]: ... + def next(self) -> Tuple[int, _T]: ... class xrange(Sized, Iterable[int], Reversible[int]): @overload @@ -802,47 +823,42 @@ def cmp(__x: Any, __y: Any) -> int: ... _N1 = TypeVar("_N1", bool, int, float, complex) -def coerce(__x: _N1, __y: _N1) -> tuple[_N1, _N1]: ... +def coerce(__x: _N1, __y: _N1) -> Tuple[_N1, _N1]: ... def compile(source: Text | mod, filename: Text, mode: Text, flags: int = ..., dont_inherit: int = ...) -> Any: ... def delattr(__obj: Any, __name: Text) -> None: ... -def dir(__o: object = ...) -> list[str]: ... +def dir(__o: object = ...) -> List[str]: ... _N2 = TypeVar("_N2", int, float) -def divmod(__x: _N2, __y: _N2) -> tuple[_N2, _N2]: ... +def divmod(__x: _N2, __y: _N2) -> Tuple[_N2, _N2]: ... def eval( - __source: Text | bytes | CodeType, __globals: dict[str, Any] | None = ..., __locals: Mapping[str, Any] | None = ... + __source: Text | bytes | CodeType, __globals: Dict[str, Any] | None = ..., __locals: Mapping[str, Any] | None = ... ) -> Any: ... -def execfile(__filename: str, __globals: dict[str, Any] | None = ..., __locals: dict[str, Any] | None = ...) -> None: ... +def execfile(__filename: str, __globals: Dict[str, Any] | None = ..., __locals: Dict[str, Any] | None = ...) -> None: ... def exit(code: object = ...) -> NoReturn: ... @overload def filter(__function: Callable[[AnyStr], Any], __iterable: AnyStr) -> AnyStr: ... # type: ignore @overload -def filter(__function: None, __iterable: tuple[_T | None, ...]) -> tuple[_T, ...]: ... # type: ignore +def filter(__function: None, __iterable: Tuple[_T | None, ...]) -> Tuple[_T, ...]: ... # type: ignore @overload -def filter(__function: Callable[[_T], Any], __iterable: tuple[_T, ...]) -> tuple[_T, ...]: ... # type: ignore +def filter(__function: Callable[[_T], Any], __iterable: Tuple[_T, ...]) -> Tuple[_T, ...]: ... # type: ignore @overload -def filter(__function: None, __iterable: Iterable[_T | None]) -> list[_T]: ... +def filter(__function: None, __iterable: Iterable[_T | None]) -> List[_T]: ... @overload -def filter(__function: Callable[[_T], Any], __iterable: Iterable[_T]) -> list[_T]: ... +def filter(__function: Callable[[_T], Any], __iterable: Iterable[_T]) -> List[_T]: ... def format(__value: object, __format_spec: str = ...) -> str: ... # TODO unicode @overload def getattr(__o: Any, name: Text) -> Any: ... -# While technically covered by the last overload, spelling out the types for None, bool -# and basic containers help mypy out in some tricky situations involving type context -# (aka bidirectional inference) +# While technically covered by the last overload, spelling out the types for None and bool +# help mypy out in some tricky situations involving type context (aka bidirectional inference) @overload def getattr(__o: Any, name: Text, __default: None) -> Any | None: ... @overload def getattr(__o: Any, name: Text, __default: bool) -> Any | bool: ... @overload -def getattr(__o: object, name: str, __default: list[Any]) -> Any | list[Any]: ... -@overload -def getattr(__o: object, name: str, __default: dict[Any, Any]) -> Any | dict[Any, Any]: ... -@overload def getattr(__o: Any, name: Text, __default: _T) -> Any | _T: ... -def globals() -> dict[str, Any]: ... +def globals() -> Dict[str, Any]: ... def hasattr(__obj: Any, __name: Text) -> bool: ... def hash(__obj: object) -> int: ... def hex(__number: int | _SupportsIndex) -> str: ... @@ -855,20 +871,20 @@ def iter(__iterable: Iterable[_T]) -> Iterator[_T]: ... def iter(__function: Callable[[], _T | None], __sentinel: None) -> Iterator[_T]: ... @overload def iter(__function: Callable[[], _T], __sentinel: Any) -> Iterator[_T]: ... -def isinstance(__obj: object, __class_or_tuple: type | tuple[type | tuple[Any, ...], ...]) -> bool: ... -def issubclass(__cls: type, __class_or_tuple: type | tuple[type | tuple[Any, ...], ...]) -> bool: ... +def isinstance(__obj: object, __class_or_tuple: type | Tuple[type | Tuple[Any, ...], ...]) -> bool: ... +def issubclass(__cls: type, __class_or_tuple: type | Tuple[type | Tuple[Any, ...], ...]) -> bool: ... def len(__obj: Sized) -> int: ... -def locals() -> dict[str, Any]: ... +def locals() -> Dict[str, Any]: ... @overload -def map(__func: None, __iter1: Iterable[_T1]) -> list[_T1]: ... +def map(__func: None, __iter1: Iterable[_T1]) -> List[_T1]: ... @overload -def map(__func: None, __iter1: Iterable[_T1], __iter2: Iterable[_T2]) -> list[tuple[_T1, _T2]]: ... +def map(__func: None, __iter1: Iterable[_T1], __iter2: Iterable[_T2]) -> List[Tuple[_T1, _T2]]: ... @overload -def map(__func: None, __iter1: Iterable[_T1], __iter2: Iterable[_T2], __iter3: Iterable[_T3]) -> list[tuple[_T1, _T2, _T3]]: ... +def map(__func: None, __iter1: Iterable[_T1], __iter2: Iterable[_T2], __iter3: Iterable[_T3]) -> List[Tuple[_T1, _T2, _T3]]: ... @overload def map( __func: None, __iter1: Iterable[_T1], __iter2: Iterable[_T2], __iter3: Iterable[_T3], __iter4: Iterable[_T4] -) -> list[tuple[_T1, _T2, _T3, _T4]]: ... +) -> List[Tuple[_T1, _T2, _T3, _T4]]: ... @overload def map( __func: None, @@ -877,7 +893,7 @@ def map( __iter3: Iterable[_T3], __iter4: Iterable[_T4], __iter5: Iterable[_T5], -) -> list[tuple[_T1, _T2, _T3, _T4, _T5]]: ... +) -> List[Tuple[_T1, _T2, _T3, _T4, _T5]]: ... @overload def map( __func: None, @@ -888,15 +904,15 @@ def map( __iter5: Iterable[Any], __iter6: Iterable[Any], *iterables: Iterable[Any], -) -> list[tuple[Any, ...]]: ... +) -> List[Tuple[Any, ...]]: ... @overload -def map(__func: Callable[[_T1], _S], __iter1: Iterable[_T1]) -> list[_S]: ... +def map(__func: Callable[[_T1], _S], __iter1: Iterable[_T1]) -> List[_S]: ... @overload -def map(__func: Callable[[_T1, _T2], _S], __iter1: Iterable[_T1], __iter2: Iterable[_T2]) -> list[_S]: ... +def map(__func: Callable[[_T1, _T2], _S], __iter1: Iterable[_T1], __iter2: Iterable[_T2]) -> List[_S]: ... @overload def map( __func: Callable[[_T1, _T2, _T3], _S], __iter1: Iterable[_T1], __iter2: Iterable[_T2], __iter3: Iterable[_T3] -) -> list[_S]: ... +) -> List[_S]: ... @overload def map( __func: Callable[[_T1, _T2, _T3, _T4], _S], @@ -904,7 +920,7 @@ def map( __iter2: Iterable[_T2], __iter3: Iterable[_T3], __iter4: Iterable[_T4], -) -> list[_S]: ... +) -> List[_S]: ... @overload def map( __func: Callable[[_T1, _T2, _T3, _T4, _T5], _S], @@ -913,7 +929,7 @@ def map( __iter3: Iterable[_T3], __iter4: Iterable[_T4], __iter5: Iterable[_T5], -) -> list[_S]: ... +) -> List[_S]: ... @overload def map( __func: Callable[..., _S], @@ -924,7 +940,7 @@ def map( __iter5: Iterable[Any], __iter6: Iterable[Any], *iterables: Iterable[Any], -) -> list[_S]: ... +) -> List[_S]: ... @overload def max(__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], Any] = ...) -> _T: ... @overload @@ -964,7 +980,7 @@ def pow(__base: _SupportsPow2[_E, _T_co], __exp: _E) -> _T_co: ... @overload def pow(__base: _SupportsPow3[_E, _M, _T_co], __exp: _E, __mod: _M) -> _T_co: ... def quit(code: object = ...) -> NoReturn: ... -def range(__x: int, __y: int = ..., __step: int = ...) -> list[int]: ... # noqa: F811 +def range(__x: int, __y: int = ..., __step: int = ...) -> List[int]: ... # noqa: F811 def raw_input(__prompt: Any = ...) -> str: ... @overload def reduce(__function: Callable[[_T, _S], _T], __iterable: Iterable[_S], __initializer: _T) -> _T: ... @@ -987,27 +1003,27 @@ def round(number: SupportsFloat, ndigits: int) -> float: ... def setattr(__obj: Any, __name: Text, __value: Any) -> None: ... def sorted( __iterable: Iterable[_T], *, cmp: Callable[[_T, _T], int] = ..., key: Callable[[_T], Any] | None = ..., reverse: bool = ... -) -> list[_T]: ... +) -> List[_T]: ... @overload def sum(__iterable: Iterable[_T]) -> _T | int: ... @overload def sum(__iterable: Iterable[_T], __start: _S) -> _T | _S: ... def unichr(__i: int) -> unicode: ... -def vars(__object: Any = ...) -> dict[str, Any]: ... +def vars(__object: Any = ...) -> Dict[str, Any]: ... @overload -def zip(__iter1: Iterable[_T1]) -> list[tuple[_T1]]: ... +def zip(__iter1: Iterable[_T1]) -> List[Tuple[_T1]]: ... @overload -def zip(__iter1: Iterable[_T1], __iter2: Iterable[_T2]) -> list[tuple[_T1, _T2]]: ... +def zip(__iter1: Iterable[_T1], __iter2: Iterable[_T2]) -> List[Tuple[_T1, _T2]]: ... @overload -def zip(__iter1: Iterable[_T1], __iter2: Iterable[_T2], __iter3: Iterable[_T3]) -> list[tuple[_T1, _T2, _T3]]: ... +def zip(__iter1: Iterable[_T1], __iter2: Iterable[_T2], __iter3: Iterable[_T3]) -> List[Tuple[_T1, _T2, _T3]]: ... @overload def zip( __iter1: Iterable[_T1], __iter2: Iterable[_T2], __iter3: Iterable[_T3], __iter4: Iterable[_T4] -) -> list[tuple[_T1, _T2, _T3, _T4]]: ... +) -> List[Tuple[_T1, _T2, _T3, _T4]]: ... @overload def zip( __iter1: Iterable[_T1], __iter2: Iterable[_T2], __iter3: Iterable[_T3], __iter4: Iterable[_T4], __iter5: Iterable[_T5] -) -> list[tuple[_T1, _T2, _T3, _T4, _T5]]: ... +) -> List[Tuple[_T1, _T2, _T3, _T4, _T5]]: ... @overload def zip( __iter1: Iterable[Any], @@ -1017,7 +1033,7 @@ def zip( __iter5: Iterable[Any], __iter6: Iterable[Any], *iterables: Iterable[Any], -) -> list[tuple[Any, ...]]: ... +) -> List[Tuple[Any, ...]]: ... def __import__( name: Text, globals: Mapping[str, Any] | None = ..., @@ -1045,11 +1061,13 @@ class buffer(Sized): def __mul__(self, x: int) -> str: ... class BaseException(object): - args: tuple[Any, ...] + args: Tuple[Any, ...] message: Any def __init__(self, *args: object) -> None: ... + def __str__(self) -> str: ... + def __repr__(self) -> str: ... def __getitem__(self, i: int) -> Any: ... - def __getslice__(self, start: int, stop: int) -> tuple[Any, ...]: ... + def __getslice__(self, start: int, stop: int) -> Tuple[Any, ...]: ... class GeneratorExit(BaseException): ... class KeyboardInterrupt(BaseException): ... @@ -1158,7 +1176,7 @@ class file(BinaryIO): def seek(self, offset: int, whence: int = ...) -> int: ... def tell(self) -> int: ... def readline(self, limit: int = ...) -> str: ... - def readlines(self, hint: int = ...) -> list[str]: ... + def readlines(self, hint: int = ...) -> List[str]: ... def write(self, data: str) -> int: ... def writelines(self, data: Iterable[str]) -> None: ... def truncate(self, pos: int | None = ...) -> int: ... diff --git a/python/helpers/typeshed/stdlib/@python2/builtins.pyi b/python/helpers/typeshed/stdlib/@python2/builtins.pyi index 4791fd6c7a6a..453a95871463 100644 --- a/python/helpers/typeshed/stdlib/@python2/builtins.pyi +++ b/python/helpers/typeshed/stdlib/@python2/builtins.pyi @@ -1,7 +1,7 @@ # True and False are deliberately omitted because they are keywords in # Python 3, and stub files conform to Python 3 syntax. -from _typeshed import ReadableBuffer, Self, SupportsKeysAndGetItem, SupportsWrite +from _typeshed import ReadableBuffer, SupportsKeysAndGetItem, SupportsWrite from abc import ABCMeta from ast import mod from types import CodeType @@ -13,11 +13,14 @@ from typing import ( ByteString, Callable, Container, + Dict, + FrozenSet, Generic, ItemsView, Iterable, Iterator, KeysView, + List, Mapping, MutableMapping, MutableSequence, @@ -26,12 +29,15 @@ from typing import ( Protocol, Reversible, Sequence, + Set, Sized, SupportsAbs, SupportsComplex, SupportsFloat, SupportsInt, Text, + Tuple, + Type, TypeVar, ValuesView, overload, @@ -54,68 +60,70 @@ _T2 = TypeVar("_T2") _T3 = TypeVar("_T3") _T4 = TypeVar("_T4") _T5 = TypeVar("_T5") -_TT = TypeVar("_TT", bound=type) +_TT = TypeVar("_TT", bound="type") +_TBE = TypeVar("_TBE", bound="BaseException") class object: __doc__: str | None - __dict__: dict[str, Any] + __dict__: Dict[str, Any] + __slots__: Text | Iterable[Text] __module__: str @property - def __class__(self: _T) -> type[_T]: ... + def __class__(self: _T) -> Type[_T]: ... @__class__.setter - def __class__(self, __type: type[object]) -> None: ... # noqa: F811 + def __class__(self, __type: Type[object]) -> None: ... # noqa: F811 def __init__(self) -> None: ... def __new__(cls) -> Any: ... def __setattr__(self, name: str, value: Any) -> None: ... def __eq__(self, o: object) -> bool: ... def __ne__(self, o: object) -> bool: ... - def __str__(self) -> str: ... # noqa Y029 - def __repr__(self) -> str: ... # noqa Y029 + def __str__(self) -> str: ... + def __repr__(self) -> str: ... def __hash__(self) -> int: ... def __format__(self, format_spec: str) -> str: ... def __getattribute__(self, name: str) -> Any: ... def __delattr__(self, name: str) -> None: ... def __sizeof__(self) -> int: ... - def __reduce__(self) -> str | tuple[Any, ...]: ... - def __reduce_ex__(self, protocol: int) -> str | tuple[Any, ...]: ... + def __reduce__(self) -> str | Tuple[Any, ...]: ... + def __reduce_ex__(self, protocol: int) -> str | Tuple[Any, ...]: ... class staticmethod(object): # Special, only valid as a decorator. __func__: Callable[..., Any] def __init__(self, f: Callable[..., Any]) -> None: ... - def __new__(cls: type[Self], *args: Any, **kwargs: Any) -> Self: ... - def __get__(self, obj: _T, type: type[_T] | None = ...) -> Callable[..., Any]: ... + def __new__(cls: Type[_T], *args: Any, **kwargs: Any) -> _T: ... + def __get__(self, obj: _T, type: Type[_T] | None = ...) -> Callable[..., Any]: ... class classmethod(object): # Special, only valid as a decorator. __func__: Callable[..., Any] def __init__(self, f: Callable[..., Any]) -> None: ... - def __new__(cls: type[Self], *args: Any, **kwargs: Any) -> Self: ... - def __get__(self, obj: _T, type: type[_T] | None = ...) -> Callable[..., Any]: ... + def __new__(cls: Type[_T], *args: Any, **kwargs: Any) -> _T: ... + def __get__(self, obj: _T, type: Type[_T] | None = ...) -> Callable[..., Any]: ... class type(object): __base__: type - __bases__: tuple[type, ...] + __bases__: Tuple[type, ...] __basicsize__: int - __dict__: dict[str, Any] + __dict__: Dict[str, Any] __dictoffset__: int __flags__: int __itemsize__: int __module__: str - __mro__: tuple[type, ...] + __mro__: Tuple[type, ...] __name__: str __weakrefoffset__: int @overload def __init__(self, o: object) -> None: ... @overload - def __init__(self, name: str, bases: tuple[type, ...], dict: dict[str, Any]) -> None: ... + def __init__(self, name: str, bases: Tuple[type, ...], dict: Dict[str, Any]) -> None: ... @overload def __new__(cls, o: object) -> type: ... @overload - def __new__(cls, name: str, bases: tuple[type, ...], namespace: dict[str, Any]) -> type: ... + def __new__(cls, name: str, bases: Tuple[type, ...], namespace: Dict[str, Any]) -> type: ... def __call__(self, *args: Any, **kwds: Any) -> Any: ... - def __subclasses__(self: _TT) -> list[_TT]: ... - # Note: the documentation doesn't specify what the return type is, the standard + def __subclasses__(self: _TT) -> List[_TT]: ... + # Note: the documentation doesnt specify what the return type is, the standard # implementation seems to be returning a list. - def mro(self) -> list[type]: ... + def mro(self) -> List[type]: ... def __instancecheck__(self, instance: Any) -> bool: ... def __subclasscheck__(self, subclass: type) -> bool: ... @@ -127,9 +135,9 @@ class super(object): class int: @overload - def __new__(cls: type[Self], x: Text | bytes | SupportsInt | _SupportsIndex | _SupportsTrunc = ...) -> Self: ... + def __new__(cls: Type[_T], x: Text | bytes | SupportsInt | _SupportsIndex | _SupportsTrunc = ...) -> _T: ... @overload - def __new__(cls: type[Self], x: Text | bytes | bytearray, base: int) -> Self: ... + def __new__(cls: Type[_T], x: Text | bytes | bytearray, base: int) -> _T: ... @property def real(self) -> int: ... @property @@ -147,7 +155,7 @@ class int: def __div__(self, x: int) -> int: ... def __truediv__(self, x: int) -> float: ... def __mod__(self, x: int) -> int: ... - def __divmod__(self, x: int) -> tuple[int, int]: ... + def __divmod__(self, x: int) -> Tuple[int, int]: ... def __radd__(self, x: int) -> int: ... def __rsub__(self, x: int) -> int: ... def __rmul__(self, x: int) -> int: ... @@ -155,7 +163,7 @@ class int: def __rdiv__(self, x: int) -> int: ... def __rtruediv__(self, x: int) -> float: ... def __rmod__(self, x: int) -> int: ... - def __rdivmod__(self, x: int) -> tuple[int, int]: ... + def __rdivmod__(self, x: int) -> Tuple[int, int]: ... @overload def __pow__(self, __x: Literal[2], __modulo: int | None = ...) -> int: ... @overload @@ -175,13 +183,14 @@ class int: def __pos__(self) -> int: ... def __invert__(self) -> int: ... def __trunc__(self) -> int: ... - def __getnewargs__(self) -> tuple[int]: ... + def __getnewargs__(self) -> Tuple[int]: ... def __eq__(self, x: object) -> bool: ... def __ne__(self, x: object) -> bool: ... def __lt__(self, x: int) -> bool: ... def __le__(self, x: int) -> bool: ... def __gt__(self, x: int) -> bool: ... def __ge__(self, x: int) -> bool: ... + def __str__(self) -> str: ... def __float__(self) -> float: ... def __int__(self) -> int: ... def __abs__(self) -> int: ... @@ -190,8 +199,8 @@ class int: def __index__(self) -> int: ... class float: - def __new__(cls: type[Self], x: SupportsFloat | _SupportsIndex | Text | bytes | bytearray = ...) -> Self: ... - def as_integer_ratio(self) -> tuple[int, int]: ... + def __new__(cls: Type[_T], x: SupportsFloat | _SupportsIndex | Text | bytes | bytearray = ...) -> _T: ... + def as_integer_ratio(self) -> Tuple[int, int]: ... def hex(self) -> str: ... def is_integer(self) -> bool: ... @classmethod @@ -208,7 +217,7 @@ class float: def __div__(self, x: float) -> float: ... def __truediv__(self, x: float) -> float: ... def __mod__(self, x: float) -> float: ... - def __divmod__(self, x: float) -> tuple[float, float]: ... + def __divmod__(self, x: float) -> Tuple[float, float]: ... def __pow__( self, x: float, mod: None = ... ) -> float: ... # In Python 3, returns complex if self is negative and x is not whole @@ -219,9 +228,9 @@ class float: def __rdiv__(self, x: float) -> float: ... def __rtruediv__(self, x: float) -> float: ... def __rmod__(self, x: float) -> float: ... - def __rdivmod__(self, x: float) -> tuple[float, float]: ... + def __rdivmod__(self, x: float) -> Tuple[float, float]: ... def __rpow__(self, x: float, mod: None = ...) -> float: ... - def __getnewargs__(self) -> tuple[float]: ... + def __getnewargs__(self) -> Tuple[float]: ... def __trunc__(self) -> int: ... def __eq__(self, x: object) -> bool: ... def __ne__(self, x: object) -> bool: ... @@ -231,6 +240,7 @@ class float: def __ge__(self, x: float) -> bool: ... def __neg__(self) -> float: ... def __pos__(self) -> float: ... + def __str__(self) -> str: ... def __int__(self) -> int: ... def __float__(self) -> float: ... def __abs__(self) -> float: ... @@ -239,9 +249,9 @@ class float: class complex: @overload - def __new__(cls: type[Self], real: float = ..., imag: float = ...) -> Self: ... + def __new__(cls: Type[_T], real: float = ..., imag: float = ...) -> _T: ... @overload - def __new__(cls: type[Self], real: str | SupportsComplex | _SupportsIndex) -> Self: ... + def __new__(cls: Type[_T], real: str | SupportsComplex | _SupportsIndex) -> _T: ... @property def real(self) -> float: ... @property @@ -263,6 +273,7 @@ class complex: def __ne__(self, x: object) -> bool: ... def __neg__(self) -> complex: ... def __pos__(self) -> complex: ... + def __str__(self) -> str: ... def __complex__(self) -> complex: ... def __abs__(self) -> float: ... def __hash__(self) -> int: ... @@ -282,7 +293,7 @@ class unicode(basestring, Sequence[unicode]): def count(self, x: unicode) -> int: ... def decode(self, encoding: unicode = ..., errors: unicode = ...) -> unicode: ... def encode(self, encoding: unicode = ..., errors: unicode = ...) -> str: ... - def endswith(self, __suffix: unicode | tuple[unicode, ...], __start: int | None = ..., __end: int | None = ...) -> bool: ... + def endswith(self, __suffix: unicode | Tuple[unicode, ...], __start: int | None = ..., __end: int | None = ...) -> bool: ... def expandtabs(self, tabsize: int = ...) -> unicode: ... def find(self, sub: unicode, start: int = ..., end: int = ...) -> int: ... def format(self, *args: object, **kwargs: object) -> unicode: ... @@ -302,21 +313,21 @@ class unicode(basestring, Sequence[unicode]): def ljust(self, width: int, fillchar: unicode = ...) -> unicode: ... def lower(self) -> unicode: ... def lstrip(self, chars: unicode = ...) -> unicode: ... - def partition(self, sep: unicode) -> tuple[unicode, unicode, unicode]: ... + def partition(self, sep: unicode) -> Tuple[unicode, unicode, unicode]: ... def replace(self, old: unicode, new: unicode, count: int = ...) -> unicode: ... def rfind(self, sub: unicode, start: int = ..., end: int = ...) -> int: ... def rindex(self, sub: unicode, start: int = ..., end: int = ...) -> int: ... def rjust(self, width: int, fillchar: unicode = ...) -> unicode: ... - def rpartition(self, sep: unicode) -> tuple[unicode, unicode, unicode]: ... - def rsplit(self, sep: unicode | None = ..., maxsplit: int = ...) -> list[unicode]: ... + def rpartition(self, sep: unicode) -> Tuple[unicode, unicode, unicode]: ... + def rsplit(self, sep: unicode | None = ..., maxsplit: int = ...) -> List[unicode]: ... def rstrip(self, chars: unicode = ...) -> unicode: ... - def split(self, sep: unicode | None = ..., maxsplit: int = ...) -> list[unicode]: ... - def splitlines(self, keepends: bool = ...) -> list[unicode]: ... - def startswith(self, __prefix: unicode | tuple[unicode, ...], __start: int | None = ..., __end: int | None = ...) -> bool: ... + def split(self, sep: unicode | None = ..., maxsplit: int = ...) -> List[unicode]: ... + def splitlines(self, keepends: bool = ...) -> List[unicode]: ... + def startswith(self, __prefix: unicode | Tuple[unicode, ...], __start: int | None = ..., __end: int | None = ...) -> bool: ... def strip(self, chars: unicode = ...) -> unicode: ... def swapcase(self) -> unicode: ... def title(self) -> unicode: ... - def translate(self, table: dict[int, Any] | unicode) -> unicode: ... + def translate(self, table: Dict[int, Any] | unicode) -> unicode: ... def upper(self) -> unicode: ... def zfill(self, width: int) -> unicode: ... @overload @@ -338,10 +349,12 @@ class unicode(basestring, Sequence[unicode]): # The argument type is incompatible with Sequence def __contains__(self, s: unicode | bytes) -> bool: ... # type: ignore def __iter__(self) -> Iterator[unicode]: ... + def __str__(self) -> str: ... + def __repr__(self) -> str: ... def __int__(self) -> int: ... def __float__(self) -> float: ... def __hash__(self) -> int: ... - def __getnewargs__(self) -> tuple[unicode]: ... + def __getnewargs__(self) -> Tuple[unicode]: ... class _FormatMapMapping(Protocol): def __getitem__(self, __key: str) -> Any: ... @@ -353,7 +366,7 @@ class str(Sequence[str], basestring): def count(self, x: Text, __start: int | None = ..., __end: int | None = ...) -> int: ... def decode(self, encoding: Text = ..., errors: Text = ...) -> unicode: ... def encode(self, encoding: Text = ..., errors: Text = ...) -> bytes: ... - def endswith(self, __suffix: Text | tuple[Text, ...], __start: int | None = ..., __end: int | None = ...) -> bool: ... + def endswith(self, __suffix: Text | Tuple[Text, ...], __start: int | None = ..., __end: int | None = ...) -> bool: ... def expandtabs(self, tabsize: int = ...) -> str: ... def find(self, sub: Text, __start: int | None = ..., __end: int | None = ...) -> int: ... def format(self, *args: object, **kwargs: object) -> str: ... @@ -374,35 +387,35 @@ class str(Sequence[str], basestring): @overload def lstrip(self, __chars: unicode) -> unicode: ... @overload - def partition(self, __sep: bytearray) -> tuple[str, bytearray, str]: ... + def partition(self, __sep: bytearray) -> Tuple[str, bytearray, str]: ... @overload - def partition(self, __sep: str) -> tuple[str, str, str]: ... + def partition(self, __sep: str) -> Tuple[str, str, str]: ... @overload - def partition(self, __sep: unicode) -> tuple[unicode, unicode, unicode]: ... + def partition(self, __sep: unicode) -> Tuple[unicode, unicode, unicode]: ... def replace(self, __old: AnyStr, __new: AnyStr, __count: int = ...) -> AnyStr: ... def rfind(self, sub: Text, __start: int | None = ..., __end: int | None = ...) -> int: ... def rindex(self, sub: Text, __start: int | None = ..., __end: int | None = ...) -> int: ... def rjust(self, __width: int, __fillchar: str = ...) -> str: ... @overload - def rpartition(self, __sep: bytearray) -> tuple[str, bytearray, str]: ... + def rpartition(self, __sep: bytearray) -> Tuple[str, bytearray, str]: ... @overload - def rpartition(self, __sep: str) -> tuple[str, str, str]: ... + def rpartition(self, __sep: str) -> Tuple[str, str, str]: ... @overload - def rpartition(self, __sep: unicode) -> tuple[unicode, unicode, unicode]: ... + def rpartition(self, __sep: unicode) -> Tuple[unicode, unicode, unicode]: ... @overload - def rsplit(self, sep: str | None = ..., maxsplit: int = ...) -> list[str]: ... + def rsplit(self, sep: str | None = ..., maxsplit: int = ...) -> List[str]: ... @overload - def rsplit(self, sep: unicode, maxsplit: int = ...) -> list[unicode]: ... + def rsplit(self, sep: unicode, maxsplit: int = ...) -> List[unicode]: ... @overload def rstrip(self, __chars: str = ...) -> str: ... @overload def rstrip(self, __chars: unicode) -> unicode: ... @overload - def split(self, sep: str | None = ..., maxsplit: int = ...) -> list[str]: ... + def split(self, sep: str | None = ..., maxsplit: int = ...) -> List[str]: ... @overload - def split(self, sep: unicode, maxsplit: int = ...) -> list[unicode]: ... - def splitlines(self, keepends: bool = ...) -> list[str]: ... - def startswith(self, __prefix: Text | tuple[Text, ...], __start: int | None = ..., __end: int | None = ...) -> bool: ... + def split(self, sep: unicode, maxsplit: int = ...) -> List[unicode]: ... + def splitlines(self, keepends: bool = ...) -> List[str]: ... + def startswith(self, __prefix: Text | Tuple[Text, ...], __start: int | None = ..., __end: int | None = ...) -> bool: ... @overload def strip(self, __chars: str = ...) -> str: ... @overload @@ -427,8 +440,10 @@ class str(Sequence[str], basestring): def __mod__(self, x: Any) -> str: ... def __mul__(self, n: int) -> str: ... def __ne__(self, x: object) -> bool: ... + def __repr__(self) -> str: ... def __rmul__(self, n: int) -> str: ... - def __getnewargs__(self) -> tuple[str]: ... + def __str__(self) -> str: ... + def __getnewargs__(self) -> Tuple[str]: ... def __getslice__(self, start: int, stop: int) -> str: ... def __float__(self) -> float: ... def __int__(self) -> int: ... @@ -450,7 +465,7 @@ class bytearray(MutableSequence[int], ByteString): def center(self, __width: int, __fillchar: bytes = ...) -> bytearray: ... def count(self, __sub: str) -> int: ... def decode(self, encoding: Text = ..., errors: Text = ...) -> str: ... - def endswith(self, __suffix: bytes | tuple[bytes, ...], __start: int | None = ..., __end: int | None = ...) -> bool: ... + def endswith(self, __suffix: bytes | Tuple[bytes, ...], __start: int | None = ..., __end: int | None = ...) -> bool: ... def expandtabs(self, tabsize: int = ...) -> bytearray: ... def extend(self, iterable: str | Iterable[int]) -> None: ... def find(self, __sub: str, __start: int = ..., __end: int = ...) -> int: ... @@ -467,17 +482,17 @@ class bytearray(MutableSequence[int], ByteString): def ljust(self, __width: int, __fillchar: str = ...) -> bytearray: ... def lower(self) -> bytearray: ... def lstrip(self, __bytes: bytes | None = ...) -> bytearray: ... - def partition(self, __sep: bytes) -> tuple[bytearray, bytearray, bytearray]: ... + def partition(self, __sep: bytes) -> Tuple[bytearray, bytearray, bytearray]: ... def replace(self, __old: bytes, __new: bytes, __count: int = ...) -> bytearray: ... def rfind(self, __sub: bytes, __start: int = ..., __end: int = ...) -> int: ... def rindex(self, __sub: bytes, __start: int = ..., __end: int = ...) -> int: ... def rjust(self, __width: int, __fillchar: bytes = ...) -> bytearray: ... - def rpartition(self, __sep: bytes) -> tuple[bytearray, bytearray, bytearray]: ... - def rsplit(self, sep: bytes | None = ..., maxsplit: int = ...) -> list[bytearray]: ... + def rpartition(self, __sep: bytes) -> Tuple[bytearray, bytearray, bytearray]: ... + def rsplit(self, sep: bytes | None = ..., maxsplit: int = ...) -> List[bytearray]: ... def rstrip(self, __bytes: bytes | None = ...) -> bytearray: ... - def split(self, sep: bytes | None = ..., maxsplit: int = ...) -> list[bytearray]: ... - def splitlines(self, keepends: bool = ...) -> list[bytearray]: ... - def startswith(self, __prefix: bytes | tuple[bytes, ...], __start: int | None = ..., __end: int | None = ...) -> bool: ... + def split(self, sep: bytes | None = ..., maxsplit: int = ...) -> List[bytearray]: ... + def splitlines(self, keepends: bool = ...) -> List[bytearray]: ... + def startswith(self, __prefix: bytes | Tuple[bytes, ...], __start: int | None = ..., __end: int | None = ...) -> bool: ... def strip(self, __bytes: bytes | None = ...) -> bytearray: ... def swapcase(self) -> bytearray: ... def title(self) -> bytearray: ... @@ -488,6 +503,8 @@ class bytearray(MutableSequence[int], ByteString): def fromhex(cls, __string: str) -> bytearray: ... def __len__(self) -> int: ... def __iter__(self) -> Iterator[int]: ... + def __str__(self) -> str: ... + def __repr__(self) -> str: ... def __int__(self) -> int: ... def __float__(self) -> float: ... __hash__: None # type: ignore @@ -517,9 +534,9 @@ class bytearray(MutableSequence[int], ByteString): class memoryview(Sized, Container[str]): format: str itemsize: int - shape: tuple[int, ...] | None - strides: tuple[int, ...] | None - suboffsets: tuple[int, ...] | None + shape: Tuple[int, ...] | None + strides: Tuple[int, ...] | None + suboffsets: Tuple[int, ...] | None readonly: bool ndim: int def __init__(self, obj: ReadableBuffer) -> None: ... @@ -535,11 +552,11 @@ class memoryview(Sized, Container[str]): @overload def __setitem__(self, i: int, o: int) -> None: ... def tobytes(self) -> bytes: ... - def tolist(self) -> list[int]: ... + def tolist(self) -> List[int]: ... @final class bool(int): - def __new__(cls: type[Self], __o: object = ...) -> Self: ... + def __new__(cls: Type[_T], __o: object = ...) -> _T: ... @overload def __and__(self, x: bool) -> bool: ... @overload @@ -564,7 +581,7 @@ class bool(int): def __rxor__(self, x: bool) -> bool: ... @overload def __rxor__(self, x: int) -> int: ... - def __getnewargs__(self) -> tuple[int]: ... + def __getnewargs__(self) -> Tuple[int]: ... class slice(object): start: Any @@ -575,27 +592,27 @@ class slice(object): @overload def __init__(self, start: Any, stop: Any, step: Any = ...) -> None: ... __hash__: None # type: ignore - def indices(self, len: int) -> tuple[int, int, int]: ... + def indices(self, len: int) -> Tuple[int, int, int]: ... class tuple(Sequence[_T_co], Generic[_T_co]): - def __new__(cls: type[Self], iterable: Iterable[_T_co] = ...) -> Self: ... + def __new__(cls: Type[_T], iterable: Iterable[_T_co] = ...) -> _T: ... def __len__(self) -> int: ... def __contains__(self, x: object) -> bool: ... @overload def __getitem__(self, x: int) -> _T_co: ... @overload - def __getitem__(self, x: slice) -> tuple[_T_co, ...]: ... + def __getitem__(self, x: slice) -> Tuple[_T_co, ...]: ... def __iter__(self) -> Iterator[_T_co]: ... - def __lt__(self, x: tuple[_T_co, ...]) -> bool: ... - def __le__(self, x: tuple[_T_co, ...]) -> bool: ... - def __gt__(self, x: tuple[_T_co, ...]) -> bool: ... - def __ge__(self, x: tuple[_T_co, ...]) -> bool: ... + def __lt__(self, x: Tuple[_T_co, ...]) -> bool: ... + def __le__(self, x: Tuple[_T_co, ...]) -> bool: ... + def __gt__(self, x: Tuple[_T_co, ...]) -> bool: ... + def __ge__(self, x: Tuple[_T_co, ...]) -> bool: ... @overload - def __add__(self, x: tuple[_T_co, ...]) -> tuple[_T_co, ...]: ... + def __add__(self, x: Tuple[_T_co, ...]) -> Tuple[_T_co, ...]: ... @overload - def __add__(self, x: tuple[Any, ...]) -> tuple[Any, ...]: ... - def __mul__(self, n: int) -> tuple[_T_co, ...]: ... - def __rmul__(self, n: int) -> tuple[_T_co, ...]: ... + def __add__(self, x: Tuple[Any, ...]) -> Tuple[Any, ...]: ... + def __mul__(self, n: int) -> Tuple[_T_co, ...]: ... + def __rmul__(self, n: int) -> Tuple[_T_co, ...]: ... def count(self, __value: Any) -> int: ... def index(self, __value: Any) -> int: ... @@ -621,29 +638,30 @@ class list(MutableSequence[_T], Generic[_T]): def sort(self, cmp: Callable[[_T, _T], Any] = ..., key: Callable[[_T], Any] = ..., reverse: bool = ...) -> None: ... def __len__(self) -> int: ... def __iter__(self) -> Iterator[_T]: ... + def __str__(self) -> str: ... __hash__: None # type: ignore @overload def __getitem__(self, i: int) -> _T: ... @overload - def __getitem__(self, s: slice) -> list[_T]: ... + def __getitem__(self, s: slice) -> List[_T]: ... @overload def __setitem__(self, i: int, o: _T) -> None: ... @overload def __setitem__(self, s: slice, o: Iterable[_T]) -> None: ... def __delitem__(self, i: int | slice) -> None: ... - def __getslice__(self, start: int, stop: int) -> list[_T]: ... + def __getslice__(self, start: int, stop: int) -> List[_T]: ... def __setslice__(self, start: int, stop: int, o: Sequence[_T]) -> None: ... def __delslice__(self, start: int, stop: int) -> None: ... - def __add__(self, x: list[_T]) -> list[_T]: ... - def __iadd__(self: Self, x: Iterable[_T]) -> Self: ... - def __mul__(self, n: int) -> list[_T]: ... - def __rmul__(self, n: int) -> list[_T]: ... + def __add__(self, x: List[_T]) -> List[_T]: ... + def __iadd__(self: _S, x: Iterable[_T]) -> _S: ... + def __mul__(self, n: int) -> List[_T]: ... + def __rmul__(self, n: int) -> List[_T]: ... def __contains__(self, o: object) -> bool: ... def __reversed__(self) -> Iterator[_T]: ... - def __gt__(self, x: list[_T]) -> bool: ... - def __ge__(self, x: list[_T]) -> bool: ... - def __lt__(self, x: list[_T]) -> bool: ... - def __le__(self, x: list[_T]) -> bool: ... + def __gt__(self, x: List[_T]) -> bool: ... + def __ge__(self, x: List[_T]) -> bool: ... + def __lt__(self, x: List[_T]) -> bool: ... + def __le__(self, x: List[_T]) -> bool: ... class dict(MutableMapping[_KT, _VT], Generic[_KT, _VT]): # NOTE: Keyword arguments are special. If they are used, _KT must include @@ -653,74 +671,76 @@ class dict(MutableMapping[_KT, _VT], Generic[_KT, _VT]): @overload def __init__(self, map: SupportsKeysAndGetItem[_KT, _VT], **kwargs: _VT) -> None: ... @overload - def __init__(self, iterable: Iterable[tuple[_KT, _VT]], **kwargs: _VT) -> None: ... - def __new__(cls: type[Self], *args: Any, **kwargs: Any) -> Self: ... + def __init__(self, iterable: Iterable[Tuple[_KT, _VT]], **kwargs: _VT) -> None: ... + def __new__(cls: Type[_T1], *args: Any, **kwargs: Any) -> _T1: ... def has_key(self, k: _KT) -> bool: ... def clear(self) -> None: ... - def copy(self) -> dict[_KT, _VT]: ... - def popitem(self) -> tuple[_KT, _VT]: ... + def copy(self) -> Dict[_KT, _VT]: ... + def popitem(self) -> Tuple[_KT, _VT]: ... def setdefault(self, __key: _KT, __default: _VT = ...) -> _VT: ... @overload def update(self, __m: Mapping[_KT, _VT], **kwargs: _VT) -> None: ... @overload - def update(self, __m: Iterable[tuple[_KT, _VT]], **kwargs: _VT) -> None: ... + def update(self, __m: Iterable[Tuple[_KT, _VT]], **kwargs: _VT) -> None: ... @overload def update(self, **kwargs: _VT) -> None: ... def iterkeys(self) -> Iterator[_KT]: ... def itervalues(self) -> Iterator[_VT]: ... - def iteritems(self) -> Iterator[tuple[_KT, _VT]]: ... + def iteritems(self) -> Iterator[Tuple[_KT, _VT]]: ... def viewkeys(self) -> KeysView[_KT]: ... def viewvalues(self) -> ValuesView[_VT]: ... def viewitems(self) -> ItemsView[_KT, _VT]: ... @classmethod @overload - def fromkeys(cls, __iterable: Iterable[_T]) -> dict[_T, Any]: ... + def fromkeys(cls, __iterable: Iterable[_T]) -> Dict[_T, Any]: ... @classmethod @overload - def fromkeys(cls, __iterable: Iterable[_T], __value: _S) -> dict[_T, _S]: ... + def fromkeys(cls, __iterable: Iterable[_T], __value: _S) -> Dict[_T, _S]: ... def __len__(self) -> int: ... def __getitem__(self, k: _KT) -> _VT: ... def __setitem__(self, k: _KT, v: _VT) -> None: ... def __delitem__(self, v: _KT) -> None: ... def __iter__(self) -> Iterator[_KT]: ... + def __str__(self) -> str: ... __hash__: None # type: ignore class set(MutableSet[_T], Generic[_T]): def __init__(self, iterable: Iterable[_T] = ...) -> None: ... def add(self, element: _T) -> None: ... def clear(self) -> None: ... - def copy(self) -> set[_T]: ... - def difference(self, *s: Iterable[Any]) -> set[_T]: ... + def copy(self) -> Set[_T]: ... + def difference(self, *s: Iterable[Any]) -> Set[_T]: ... def difference_update(self, *s: Iterable[Any]) -> None: ... def discard(self, element: _T) -> None: ... - def intersection(self, *s: Iterable[Any]) -> set[_T]: ... + def intersection(self, *s: Iterable[Any]) -> Set[_T]: ... def intersection_update(self, *s: Iterable[Any]) -> None: ... def isdisjoint(self, s: Iterable[Any]) -> bool: ... def issubset(self, s: Iterable[Any]) -> bool: ... def issuperset(self, s: Iterable[Any]) -> bool: ... def pop(self) -> _T: ... def remove(self, element: _T) -> None: ... - def symmetric_difference(self, s: Iterable[_T]) -> set[_T]: ... + def symmetric_difference(self, s: Iterable[_T]) -> Set[_T]: ... def symmetric_difference_update(self, s: Iterable[_T]) -> None: ... - def union(self, *s: Iterable[_T]) -> set[_T]: ... + def union(self, *s: Iterable[_T]) -> Set[_T]: ... def update(self, *s: Iterable[_T]) -> None: ... def __len__(self) -> int: ... def __contains__(self, o: object) -> bool: ... def __iter__(self) -> Iterator[_T]: ... - def __and__(self, s: AbstractSet[object]) -> set[_T]: ... - def __iand__(self: Self, s: AbstractSet[object]) -> Self: ... - def __or__(self, s: AbstractSet[_S]) -> set[_T | _S]: ... - def __ior__(self: Self, s: AbstractSet[_T]) -> Self: ... + def __str__(self) -> str: ... + def __and__(self, s: AbstractSet[object]) -> Set[_T]: ... + def __iand__(self, s: AbstractSet[object]) -> Set[_T]: ... + def __or__(self, s: AbstractSet[_S]) -> Set[_T | _S]: ... + def __ior__(self, s: AbstractSet[_S]) -> Set[_T | _S]: ... @overload - def __sub__(self: set[str], s: AbstractSet[Text | None]) -> set[_T]: ... + def __sub__(self: Set[str], s: AbstractSet[Text | None]) -> Set[_T]: ... @overload - def __sub__(self, s: AbstractSet[_T | None]) -> set[_T]: ... + def __sub__(self, s: AbstractSet[_T | None]) -> Set[_T]: ... @overload # type: ignore - def __isub__(self: set[str], s: AbstractSet[Text | None]) -> set[_T]: ... + def __isub__(self: Set[str], s: AbstractSet[Text | None]) -> Set[_T]: ... @overload - def __isub__(self, s: AbstractSet[_T | None]) -> set[_T]: ... - def __xor__(self, s: AbstractSet[_S]) -> set[_T | _S]: ... - def __ixor__(self: Self, s: AbstractSet[_T]) -> Self: ... + def __isub__(self, s: AbstractSet[_T | None]) -> Set[_T]: ... + def __xor__(self, s: AbstractSet[_S]) -> Set[_T | _S]: ... + def __ixor__(self, s: AbstractSet[_S]) -> Set[_T | _S]: ... def __le__(self, s: AbstractSet[object]) -> bool: ... def __lt__(self, s: AbstractSet[object]) -> bool: ... def __ge__(self, s: AbstractSet[object]) -> bool: ... @@ -729,30 +749,31 @@ class set(MutableSet[_T], Generic[_T]): class frozenset(AbstractSet[_T_co], Generic[_T_co]): def __init__(self, iterable: Iterable[_T_co] = ...) -> None: ... - def copy(self) -> frozenset[_T_co]: ... - def difference(self, *s: Iterable[object]) -> frozenset[_T_co]: ... - def intersection(self, *s: Iterable[object]) -> frozenset[_T_co]: ... + def copy(self) -> FrozenSet[_T_co]: ... + def difference(self, *s: Iterable[object]) -> FrozenSet[_T_co]: ... + def intersection(self, *s: Iterable[object]) -> FrozenSet[_T_co]: ... def isdisjoint(self, s: Iterable[_T_co]) -> bool: ... def issubset(self, s: Iterable[object]) -> bool: ... def issuperset(self, s: Iterable[object]) -> bool: ... - def symmetric_difference(self, s: Iterable[_T_co]) -> frozenset[_T_co]: ... - def union(self, *s: Iterable[_T_co]) -> frozenset[_T_co]: ... + def symmetric_difference(self, s: Iterable[_T_co]) -> FrozenSet[_T_co]: ... + def union(self, *s: Iterable[_T_co]) -> FrozenSet[_T_co]: ... def __len__(self) -> int: ... def __contains__(self, o: object) -> bool: ... def __iter__(self) -> Iterator[_T_co]: ... - def __and__(self, s: AbstractSet[_T_co]) -> frozenset[_T_co]: ... - def __or__(self, s: AbstractSet[_S]) -> frozenset[_T_co | _S]: ... - def __sub__(self, s: AbstractSet[_T_co]) -> frozenset[_T_co]: ... - def __xor__(self, s: AbstractSet[_S]) -> frozenset[_T_co | _S]: ... + def __str__(self) -> str: ... + def __and__(self, s: AbstractSet[_T_co]) -> FrozenSet[_T_co]: ... + def __or__(self, s: AbstractSet[_S]) -> FrozenSet[_T_co | _S]: ... + def __sub__(self, s: AbstractSet[_T_co]) -> FrozenSet[_T_co]: ... + def __xor__(self, s: AbstractSet[_S]) -> FrozenSet[_T_co | _S]: ... def __le__(self, s: AbstractSet[object]) -> bool: ... def __lt__(self, s: AbstractSet[object]) -> bool: ... def __ge__(self, s: AbstractSet[object]) -> bool: ... def __gt__(self, s: AbstractSet[object]) -> bool: ... -class enumerate(Iterator[tuple[int, _T]], Generic[_T]): +class enumerate(Iterator[Tuple[int, _T]], Generic[_T]): def __init__(self, iterable: Iterable[_T], start: int = ...) -> None: ... - def __iter__(self) -> Iterator[tuple[int, _T]]: ... - def next(self) -> tuple[int, _T]: ... + def __iter__(self) -> Iterator[Tuple[int, _T]]: ... + def next(self) -> Tuple[int, _T]: ... class xrange(Sized, Iterable[int], Reversible[int]): @overload @@ -802,47 +823,42 @@ def cmp(__x: Any, __y: Any) -> int: ... _N1 = TypeVar("_N1", bool, int, float, complex) -def coerce(__x: _N1, __y: _N1) -> tuple[_N1, _N1]: ... +def coerce(__x: _N1, __y: _N1) -> Tuple[_N1, _N1]: ... def compile(source: Text | mod, filename: Text, mode: Text, flags: int = ..., dont_inherit: int = ...) -> Any: ... def delattr(__obj: Any, __name: Text) -> None: ... -def dir(__o: object = ...) -> list[str]: ... +def dir(__o: object = ...) -> List[str]: ... _N2 = TypeVar("_N2", int, float) -def divmod(__x: _N2, __y: _N2) -> tuple[_N2, _N2]: ... +def divmod(__x: _N2, __y: _N2) -> Tuple[_N2, _N2]: ... def eval( - __source: Text | bytes | CodeType, __globals: dict[str, Any] | None = ..., __locals: Mapping[str, Any] | None = ... + __source: Text | bytes | CodeType, __globals: Dict[str, Any] | None = ..., __locals: Mapping[str, Any] | None = ... ) -> Any: ... -def execfile(__filename: str, __globals: dict[str, Any] | None = ..., __locals: dict[str, Any] | None = ...) -> None: ... +def execfile(__filename: str, __globals: Dict[str, Any] | None = ..., __locals: Dict[str, Any] | None = ...) -> None: ... def exit(code: object = ...) -> NoReturn: ... @overload def filter(__function: Callable[[AnyStr], Any], __iterable: AnyStr) -> AnyStr: ... # type: ignore @overload -def filter(__function: None, __iterable: tuple[_T | None, ...]) -> tuple[_T, ...]: ... # type: ignore +def filter(__function: None, __iterable: Tuple[_T | None, ...]) -> Tuple[_T, ...]: ... # type: ignore @overload -def filter(__function: Callable[[_T], Any], __iterable: tuple[_T, ...]) -> tuple[_T, ...]: ... # type: ignore +def filter(__function: Callable[[_T], Any], __iterable: Tuple[_T, ...]) -> Tuple[_T, ...]: ... # type: ignore @overload -def filter(__function: None, __iterable: Iterable[_T | None]) -> list[_T]: ... +def filter(__function: None, __iterable: Iterable[_T | None]) -> List[_T]: ... @overload -def filter(__function: Callable[[_T], Any], __iterable: Iterable[_T]) -> list[_T]: ... +def filter(__function: Callable[[_T], Any], __iterable: Iterable[_T]) -> List[_T]: ... def format(__value: object, __format_spec: str = ...) -> str: ... # TODO unicode @overload def getattr(__o: Any, name: Text) -> Any: ... -# While technically covered by the last overload, spelling out the types for None, bool -# and basic containers help mypy out in some tricky situations involving type context -# (aka bidirectional inference) +# While technically covered by the last overload, spelling out the types for None and bool +# help mypy out in some tricky situations involving type context (aka bidirectional inference) @overload def getattr(__o: Any, name: Text, __default: None) -> Any | None: ... @overload def getattr(__o: Any, name: Text, __default: bool) -> Any | bool: ... @overload -def getattr(__o: object, name: str, __default: list[Any]) -> Any | list[Any]: ... -@overload -def getattr(__o: object, name: str, __default: dict[Any, Any]) -> Any | dict[Any, Any]: ... -@overload def getattr(__o: Any, name: Text, __default: _T) -> Any | _T: ... -def globals() -> dict[str, Any]: ... +def globals() -> Dict[str, Any]: ... def hasattr(__obj: Any, __name: Text) -> bool: ... def hash(__obj: object) -> int: ... def hex(__number: int | _SupportsIndex) -> str: ... @@ -855,20 +871,20 @@ def iter(__iterable: Iterable[_T]) -> Iterator[_T]: ... def iter(__function: Callable[[], _T | None], __sentinel: None) -> Iterator[_T]: ... @overload def iter(__function: Callable[[], _T], __sentinel: Any) -> Iterator[_T]: ... -def isinstance(__obj: object, __class_or_tuple: type | tuple[type | tuple[Any, ...], ...]) -> bool: ... -def issubclass(__cls: type, __class_or_tuple: type | tuple[type | tuple[Any, ...], ...]) -> bool: ... +def isinstance(__obj: object, __class_or_tuple: type | Tuple[type | Tuple[Any, ...], ...]) -> bool: ... +def issubclass(__cls: type, __class_or_tuple: type | Tuple[type | Tuple[Any, ...], ...]) -> bool: ... def len(__obj: Sized) -> int: ... -def locals() -> dict[str, Any]: ... +def locals() -> Dict[str, Any]: ... @overload -def map(__func: None, __iter1: Iterable[_T1]) -> list[_T1]: ... +def map(__func: None, __iter1: Iterable[_T1]) -> List[_T1]: ... @overload -def map(__func: None, __iter1: Iterable[_T1], __iter2: Iterable[_T2]) -> list[tuple[_T1, _T2]]: ... +def map(__func: None, __iter1: Iterable[_T1], __iter2: Iterable[_T2]) -> List[Tuple[_T1, _T2]]: ... @overload -def map(__func: None, __iter1: Iterable[_T1], __iter2: Iterable[_T2], __iter3: Iterable[_T3]) -> list[tuple[_T1, _T2, _T3]]: ... +def map(__func: None, __iter1: Iterable[_T1], __iter2: Iterable[_T2], __iter3: Iterable[_T3]) -> List[Tuple[_T1, _T2, _T3]]: ... @overload def map( __func: None, __iter1: Iterable[_T1], __iter2: Iterable[_T2], __iter3: Iterable[_T3], __iter4: Iterable[_T4] -) -> list[tuple[_T1, _T2, _T3, _T4]]: ... +) -> List[Tuple[_T1, _T2, _T3, _T4]]: ... @overload def map( __func: None, @@ -877,7 +893,7 @@ def map( __iter3: Iterable[_T3], __iter4: Iterable[_T4], __iter5: Iterable[_T5], -) -> list[tuple[_T1, _T2, _T3, _T4, _T5]]: ... +) -> List[Tuple[_T1, _T2, _T3, _T4, _T5]]: ... @overload def map( __func: None, @@ -888,15 +904,15 @@ def map( __iter5: Iterable[Any], __iter6: Iterable[Any], *iterables: Iterable[Any], -) -> list[tuple[Any, ...]]: ... +) -> List[Tuple[Any, ...]]: ... @overload -def map(__func: Callable[[_T1], _S], __iter1: Iterable[_T1]) -> list[_S]: ... +def map(__func: Callable[[_T1], _S], __iter1: Iterable[_T1]) -> List[_S]: ... @overload -def map(__func: Callable[[_T1, _T2], _S], __iter1: Iterable[_T1], __iter2: Iterable[_T2]) -> list[_S]: ... +def map(__func: Callable[[_T1, _T2], _S], __iter1: Iterable[_T1], __iter2: Iterable[_T2]) -> List[_S]: ... @overload def map( __func: Callable[[_T1, _T2, _T3], _S], __iter1: Iterable[_T1], __iter2: Iterable[_T2], __iter3: Iterable[_T3] -) -> list[_S]: ... +) -> List[_S]: ... @overload def map( __func: Callable[[_T1, _T2, _T3, _T4], _S], @@ -904,7 +920,7 @@ def map( __iter2: Iterable[_T2], __iter3: Iterable[_T3], __iter4: Iterable[_T4], -) -> list[_S]: ... +) -> List[_S]: ... @overload def map( __func: Callable[[_T1, _T2, _T3, _T4, _T5], _S], @@ -913,7 +929,7 @@ def map( __iter3: Iterable[_T3], __iter4: Iterable[_T4], __iter5: Iterable[_T5], -) -> list[_S]: ... +) -> List[_S]: ... @overload def map( __func: Callable[..., _S], @@ -924,7 +940,7 @@ def map( __iter5: Iterable[Any], __iter6: Iterable[Any], *iterables: Iterable[Any], -) -> list[_S]: ... +) -> List[_S]: ... @overload def max(__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], Any] = ...) -> _T: ... @overload @@ -964,7 +980,7 @@ def pow(__base: _SupportsPow2[_E, _T_co], __exp: _E) -> _T_co: ... @overload def pow(__base: _SupportsPow3[_E, _M, _T_co], __exp: _E, __mod: _M) -> _T_co: ... def quit(code: object = ...) -> NoReturn: ... -def range(__x: int, __y: int = ..., __step: int = ...) -> list[int]: ... # noqa: F811 +def range(__x: int, __y: int = ..., __step: int = ...) -> List[int]: ... # noqa: F811 def raw_input(__prompt: Any = ...) -> str: ... @overload def reduce(__function: Callable[[_T, _S], _T], __iterable: Iterable[_S], __initializer: _T) -> _T: ... @@ -987,27 +1003,27 @@ def round(number: SupportsFloat, ndigits: int) -> float: ... def setattr(__obj: Any, __name: Text, __value: Any) -> None: ... def sorted( __iterable: Iterable[_T], *, cmp: Callable[[_T, _T], int] = ..., key: Callable[[_T], Any] | None = ..., reverse: bool = ... -) -> list[_T]: ... +) -> List[_T]: ... @overload def sum(__iterable: Iterable[_T]) -> _T | int: ... @overload def sum(__iterable: Iterable[_T], __start: _S) -> _T | _S: ... def unichr(__i: int) -> unicode: ... -def vars(__object: Any = ...) -> dict[str, Any]: ... +def vars(__object: Any = ...) -> Dict[str, Any]: ... @overload -def zip(__iter1: Iterable[_T1]) -> list[tuple[_T1]]: ... +def zip(__iter1: Iterable[_T1]) -> List[Tuple[_T1]]: ... @overload -def zip(__iter1: Iterable[_T1], __iter2: Iterable[_T2]) -> list[tuple[_T1, _T2]]: ... +def zip(__iter1: Iterable[_T1], __iter2: Iterable[_T2]) -> List[Tuple[_T1, _T2]]: ... @overload -def zip(__iter1: Iterable[_T1], __iter2: Iterable[_T2], __iter3: Iterable[_T3]) -> list[tuple[_T1, _T2, _T3]]: ... +def zip(__iter1: Iterable[_T1], __iter2: Iterable[_T2], __iter3: Iterable[_T3]) -> List[Tuple[_T1, _T2, _T3]]: ... @overload def zip( __iter1: Iterable[_T1], __iter2: Iterable[_T2], __iter3: Iterable[_T3], __iter4: Iterable[_T4] -) -> list[tuple[_T1, _T2, _T3, _T4]]: ... +) -> List[Tuple[_T1, _T2, _T3, _T4]]: ... @overload def zip( __iter1: Iterable[_T1], __iter2: Iterable[_T2], __iter3: Iterable[_T3], __iter4: Iterable[_T4], __iter5: Iterable[_T5] -) -> list[tuple[_T1, _T2, _T3, _T4, _T5]]: ... +) -> List[Tuple[_T1, _T2, _T3, _T4, _T5]]: ... @overload def zip( __iter1: Iterable[Any], @@ -1017,7 +1033,7 @@ def zip( __iter5: Iterable[Any], __iter6: Iterable[Any], *iterables: Iterable[Any], -) -> list[tuple[Any, ...]]: ... +) -> List[Tuple[Any, ...]]: ... def __import__( name: Text, globals: Mapping[str, Any] | None = ..., @@ -1045,11 +1061,13 @@ class buffer(Sized): def __mul__(self, x: int) -> str: ... class BaseException(object): - args: tuple[Any, ...] + args: Tuple[Any, ...] message: Any def __init__(self, *args: object) -> None: ... + def __str__(self) -> str: ... + def __repr__(self) -> str: ... def __getitem__(self, i: int) -> Any: ... - def __getslice__(self, start: int, stop: int) -> tuple[Any, ...]: ... + def __getslice__(self, start: int, stop: int) -> Tuple[Any, ...]: ... class GeneratorExit(BaseException): ... class KeyboardInterrupt(BaseException): ... @@ -1158,7 +1176,7 @@ class file(BinaryIO): def seek(self, offset: int, whence: int = ...) -> int: ... def tell(self) -> int: ... def readline(self, limit: int = ...) -> str: ... - def readlines(self, hint: int = ...) -> list[str]: ... + def readlines(self, hint: int = ...) -> List[str]: ... def write(self, data: str) -> int: ... def writelines(self, data: Iterable[str]) -> None: ... def truncate(self, pos: int | None = ...) -> int: ... diff --git a/python/helpers/typeshed/stdlib/_typeshed/__init__.pyi b/python/helpers/typeshed/stdlib/_typeshed/__init__.pyi index 103af47c7524..a3f56899247b 100644 --- a/python/helpers/typeshed/stdlib/_typeshed/__init__.pyi +++ b/python/helpers/typeshed/stdlib/_typeshed/__init__.pyi @@ -7,8 +7,8 @@ import ctypes import mmap import sys from os import PathLike -from typing import AbstractSet, Any, Container, Generic, Iterable, Protocol, TypeVar, Union -from typing_extensions import Final, Literal, final +from typing import AbstractSet, Any, Awaitable, Container, Iterable, Protocol, TypeVar, Union +from typing_extensions import Literal, final _KT = TypeVar("_KT") _KT_co = TypeVar("_KT_co", covariant=True) @@ -33,26 +33,12 @@ class SupportsNext(Protocol[_T_co]): # stable class SupportsAnext(Protocol[_T_co]): - async def __anext__(self) -> _T_co: ... + def __anext__(self) -> Awaitable[_T_co]: ... -# Comparison protocols - -class SupportsDunderLT(Protocol): +class SupportsLessThan(Protocol): def __lt__(self, __other: Any) -> bool: ... -class SupportsDunderGT(Protocol): - def __gt__(self, __other: Any) -> bool: ... - -class SupportsDunderLE(Protocol): - def __le__(self, __other: Any) -> bool: ... - -class SupportsDunderGE(Protocol): - def __ge__(self, __other: Any) -> bool: ... - -class SupportsAllComparisons(SupportsDunderLT, SupportsDunderGT, SupportsDunderLE, SupportsDunderGE, Protocol): ... - -SupportsRichComparison = Union[SupportsDunderLT, SupportsDunderGT] -SupportsRichComparisonT = TypeVar("SupportsRichComparisonT", bound=SupportsRichComparison) # noqa: Y001 +SupportsLessThanT = TypeVar("SupportsLessThanT", bound=SupportsLessThan) # noqa: Y001 class SupportsDivMod(Protocol[_T_contra, _T_co]): def __divmod__(self, __other: _T_contra) -> _T_co: ... @@ -180,7 +166,7 @@ class SupportsNoArgReadline(Protocol[_T_co]): # stable class SupportsWrite(Protocol[_T_contra]): - def write(self, __s: _T_contra) -> object: ... + def write(self, __s: _T_contra) -> Any: ... ReadOnlyBuffer = bytes # stable # Anything that implements the read-write buffer interface. @@ -192,26 +178,9 @@ ReadableBuffer = Union[ReadOnlyBuffer, WriteableBuffer] # stable # stable if sys.version_info >= (3, 10): - from types import NoneType as NoneType + pass else: # Used by type checkers for checks involving None (does not exist at runtime) @final class NoneType: def __bool__(self) -> Literal[False]: ... - -# This is an internal CPython type that is like, but subtly different from, a NamedTuple -# Subclasses of this type are found in multiple modules. -# In typeshed, `structseq` is only ever used as a mixin in combination with a fixed-length `Tuple` -# See discussion at #6546 & #6560 -# `structseq` classes are unsubclassable, so are all decorated with `@final`. -class structseq(Generic[_T_co]): - n_fields: Final[int] - n_unnamed_fields: Final[int] - n_sequence_fields: Final[int] - # The first parameter will generally only take an iterable of a specific length. - # E.g. `os.uname_result` takes any iterable of length exactly 5. - # - # The second parameter will accept a dict of any kind without raising an exception, - # but only has any meaning if you supply it a dict where the keys are strings. - # https://github.com/python/typeshed/pull/6560#discussion_r767149830 - def __new__(cls: type[Self], sequence: Iterable[_T_co], dict: dict[str, Any] = ...) -> Self: ... diff --git a/python/helpers/typeshed/stdlib/builtins.pyi b/python/helpers/typeshed/stdlib/builtins.pyi index d27a4d2768a0..f69391070148 100644 --- a/python/helpers/typeshed/stdlib/builtins.pyi +++ b/python/helpers/typeshed/stdlib/builtins.pyi @@ -1,7 +1,5 @@ import sys import types -from _ast import AST -from _collections_abc import dict_items, dict_keys, dict_values from _typeshed import ( OpenBinaryMode, OpenBinaryModeReading, @@ -15,25 +13,30 @@ from _typeshed import ( SupportsDivMod, SupportsKeysAndGetItem, SupportsLenAndGetItem, + SupportsLessThan, + SupportsLessThanT, SupportsNext, SupportsRDivMod, - SupportsRichComparison, - SupportsRichComparisonT, - SupportsTrunc, SupportsWrite, ) -from collections.abc import Callable +from ast import AST, mod from io import BufferedRandom, BufferedReader, BufferedWriter, FileIO, TextIOWrapper -from types import CodeType, TracebackType, _Cell +from types import CodeType, MappingProxyType, TracebackType from typing import ( IO, AbstractSet, Any, + AsyncIterable, + AsyncIterator, BinaryIO, ByteString, + Callable, + FrozenSet, Generic, + ItemsView, Iterable, Iterator, + KeysView, Mapping, MutableMapping, MutableSequence, @@ -42,6 +45,7 @@ from typing import ( Protocol, Reversible, Sequence, + Set, Sized, SupportsAbs, SupportsBytes, @@ -49,144 +53,132 @@ from typing import ( SupportsFloat, SupportsInt, SupportsRound, + Tuple, + Type, TypeVar, Union, + ValuesView, overload, ) -from typing_extensions import Literal, SupportsIndex, TypeGuard, final +from typing_extensions import Literal, SupportsIndex, final if sys.version_info >= (3, 9): from types import GenericAlias +class _SupportsTrunc(Protocol): + def __trunc__(self) -> int: ... + _T = TypeVar("_T") _T_co = TypeVar("_T_co", covariant=True) _T_contra = TypeVar("_T_contra", contravariant=True) -_R_co = TypeVar("_R_co", covariant=True) _KT = TypeVar("_KT") _VT = TypeVar("_VT") +_KT_co = TypeVar("_KT_co", covariant=True) # Key type covariant containers. +_VT_co = TypeVar("_VT_co", covariant=True) # Value type covariant containers. _S = TypeVar("_S") _T1 = TypeVar("_T1") _T2 = TypeVar("_T2") _T3 = TypeVar("_T3") _T4 = TypeVar("_T4") _T5 = TypeVar("_T5") -_SupportsNextT = TypeVar("_SupportsNextT", bound=SupportsNext[Any], covariant=True) -_SupportsAnextT = TypeVar("_SupportsAnextT", bound=SupportsAnext[Any], covariant=True) - -class _SupportsIter(Protocol[_T_co]): - def __iter__(self) -> _T_co: ... - -class _SupportsAiter(Protocol[_T_co]): - def __aiter__(self) -> _T_co: ... +_TT = TypeVar("_TT", bound="type") +_TBE = TypeVar("_TBE", bound="BaseException") class object: __doc__: str | None __dict__: dict[str, Any] + __slots__: str | Iterable[str] __module__: str __annotations__: dict[str, Any] @property - def __class__(self: Self) -> type[Self]: ... + def __class__(self: _T) -> Type[_T]: ... # Ignore errors about type mismatch between property getter and setter @__class__.setter - def __class__(self, __type: type[object]) -> None: ... # type: ignore # noqa: F811 + def __class__(self, __type: Type[object]) -> None: ... # type: ignore # noqa: F811 def __init__(self) -> None: ... - def __new__(cls: type[Self]) -> Self: ... - def __setattr__(self, __name: str, __value: Any) -> None: ... - def __eq__(self, __o: object) -> bool: ... - def __ne__(self, __o: object) -> bool: ... - def __str__(self) -> str: ... # noqa Y029 - def __repr__(self) -> str: ... # noqa Y029 + def __new__(cls: Type[_T]) -> _T: ... + def __setattr__(self, name: str, value: Any) -> None: ... + def __eq__(self, o: object) -> bool: ... + def __ne__(self, o: object) -> bool: ... + def __str__(self) -> str: ... + def __repr__(self) -> str: ... def __hash__(self) -> int: ... - def __format__(self, __format_spec: str) -> str: ... - def __getattribute__(self, __name: str) -> Any: ... - def __delattr__(self, __name: str) -> None: ... + def __format__(self, format_spec: str) -> str: ... + def __getattribute__(self, name: str) -> Any: ... + def __delattr__(self, name: str) -> None: ... def __sizeof__(self) -> int: ... - # return type of pickle methods is rather hard to express in the current type system - # see #6661 and https://docs.python.org/3/library/pickle.html#object.__reduce__ - def __reduce__(self) -> str | tuple[Any, ...]: ... + def __reduce__(self) -> str | Tuple[Any, ...]: ... if sys.version_info >= (3, 8): - def __reduce_ex__(self, __protocol: SupportsIndex) -> str | tuple[Any, ...]: ... + def __reduce_ex__(self, protocol: SupportsIndex) -> str | Tuple[Any, ...]: ... else: - def __reduce_ex__(self, __protocol: int) -> str | tuple[Any, ...]: ... - + def __reduce_ex__(self, protocol: int) -> str | Tuple[Any, ...]: ... def __dir__(self) -> Iterable[str]: ... def __init_subclass__(cls) -> None: ... -class staticmethod(Generic[_R_co]): - __func__: Callable[..., _R_co] +class staticmethod(object): # Special, only valid as a decorator. + __func__: Callable[..., Any] __isabstractmethod__: bool - def __init__(self: staticmethod[_R_co], __f: Callable[..., _R_co]) -> None: ... - def __get__(self, __obj: _T, __type: type[_T] | None = ...) -> Callable[..., _R_co]: ... - if sys.version_info >= (3, 10): - __name__: str - __qualname__: str - __wrapped__: Callable[..., _R_co] - def __call__(self, *args: Any, **kwargs: Any) -> _R_co: ... + def __init__(self, f: Callable[..., Any]) -> None: ... + def __new__(cls: Type[_T], *args: Any, **kwargs: Any) -> _T: ... + def __get__(self, obj: _T, type: Type[_T] | None = ...) -> Callable[..., Any]: ... -class classmethod(Generic[_R_co]): - __func__: Callable[..., _R_co] +class classmethod(object): # Special, only valid as a decorator. + __func__: Callable[..., Any] __isabstractmethod__: bool - def __init__(self: classmethod[_R_co], __f: Callable[..., _R_co]) -> None: ... - def __get__(self, __obj: _T, __type: type[_T] | None = ...) -> Callable[..., _R_co]: ... - if sys.version_info >= (3, 10): - __name__: str - __qualname__: str - __wrapped__: Callable[..., _R_co] + def __init__(self, f: Callable[..., Any]) -> None: ... + def __new__(cls: Type[_T], *args: Any, **kwargs: Any) -> _T: ... + def __get__(self, obj: _T, type: Type[_T] | None = ...) -> Callable[..., Any]: ... -class type: +class type(object): __base__: type - __bases__: tuple[type, ...] + __bases__: Tuple[type, ...] __basicsize__: int __dict__: dict[str, Any] __dictoffset__: int __flags__: int __itemsize__: int __module__: str - __mro__: tuple[type, ...] + __mro__: Tuple[type, ...] __name__: str __qualname__: str __text_signature__: str | None __weakrefoffset__: int @overload - def __init__(self, __o: object) -> None: ... + def __init__(self, o: object) -> None: ... @overload - def __init__(self, __name: str, __bases: tuple[type, ...], __dict: dict[str, Any], **kwds: Any) -> None: ... + def __init__(self, name: str, bases: Tuple[type, ...], dict: dict[str, Any], **kwds: Any) -> None: ... @overload - def __new__(cls, __o: object) -> type: ... + def __new__(cls, o: object) -> type: ... @overload - def __new__(cls: type[Self], __name: str, __bases: tuple[type, ...], __namespace: dict[str, Any], **kwds: Any) -> Self: ... + def __new__(cls: Type[_TT], name: str, bases: Tuple[type, ...], namespace: dict[str, Any], **kwds: Any) -> _TT: ... def __call__(self, *args: Any, **kwds: Any) -> Any: ... - def __subclasses__(self: Self) -> list[Self]: ... - # Note: the documentation doesn't specify what the return type is, the standard + def __subclasses__(self: _TT) -> list[_TT]: ... + # Note: the documentation doesnt specify what the return type is, the standard # implementation seems to be returning a list. def mro(self) -> list[type]: ... - def __instancecheck__(self, __instance: Any) -> bool: ... - def __subclasscheck__(self, __subclass: type) -> bool: ... + def __instancecheck__(self, instance: Any) -> bool: ... + def __subclasscheck__(self, subclass: type) -> bool: ... @classmethod - def __prepare__(metacls, __name: str, __bases: tuple[type, ...], **kwds: Any) -> Mapping[str, object]: ... + def __prepare__(metacls, __name: str, __bases: Tuple[type, ...], **kwds: Any) -> Mapping[str, Any]: ... if sys.version_info >= (3, 10): - def __or__(self, __t: Any) -> types.UnionType: ... - def __ror__(self, __t: Any) -> types.UnionType: ... + def __or__(self, t: Any) -> types.UnionType: ... + def __ror__(self, t: Any) -> types.UnionType: ... -class super: +class super(object): @overload - def __init__(self, __t: Any, __obj: Any) -> None: ... + def __init__(self, t: Any, obj: Any) -> None: ... @overload - def __init__(self, __t: Any) -> None: ... + def __init__(self, t: Any) -> None: ... @overload def __init__(self) -> None: ... -_PositiveInteger = Literal[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25] -_NegativeInteger = Literal[-1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -11, -12, -13, -14, -15, -16, -17, -18, -19, -20] - class int: @overload - def __new__(cls: type[Self], __x: str | bytes | SupportsInt | SupportsIndex | SupportsTrunc = ...) -> Self: ... + def __new__(cls: Type[_T], x: str | bytes | SupportsInt | SupportsIndex | _SupportsTrunc = ...) -> _T: ... @overload - def __new__(cls: type[Self], __x: str | bytes | bytearray, base: SupportsIndex) -> Self: ... + def __new__(cls: Type[_T], x: str | bytes | bytearray, base: SupportsIndex) -> _T: ... if sys.version_info >= (3, 8): def as_integer_ratio(self) -> tuple[int, Literal[1]]: ... - @property def real(self) -> int: ... @property @@ -199,69 +191,55 @@ class int: def bit_length(self) -> int: ... if sys.version_info >= (3, 10): def bit_count(self) -> int: ... - def to_bytes(self, length: SupportsIndex, byteorder: Literal["little", "big"], *, signed: bool = ...) -> bytes: ... @classmethod def from_bytes( - cls: type[Self], - bytes: Iterable[SupportsIndex] | SupportsBytes, # TODO buffer object argument - byteorder: Literal["little", "big"], - *, - signed: bool = ..., - ) -> Self: ... - def __add__(self, __x: int) -> int: ... - def __sub__(self, __x: int) -> int: ... - def __mul__(self, __x: int) -> int: ... - def __floordiv__(self, __x: int) -> int: ... - def __truediv__(self, __x: int) -> float: ... - def __mod__(self, __x: int) -> int: ... - def __divmod__(self, __x: int) -> tuple[int, int]: ... - def __radd__(self, __x: int) -> int: ... - def __rsub__(self, __x: int) -> int: ... - def __rmul__(self, __x: int) -> int: ... - def __rfloordiv__(self, __x: int) -> int: ... - def __rtruediv__(self, __x: int) -> float: ... - def __rmod__(self, __x: int) -> int: ... - def __rdivmod__(self, __x: int) -> tuple[int, int]: ... - @overload - def __pow__(self, __x: int, __modulo: Literal[0]) -> NoReturn: ... - @overload - def __pow__(self, __x: int, __modulo: int) -> int: ... - @overload - def __pow__(self, __x: Literal[0], __modulo: None = ...) -> Literal[1]: ... - @overload - def __pow__(self, __x: _PositiveInteger, __modulo: None = ...) -> int: ... - @overload - def __pow__(self, __x: _NegativeInteger, __modulo: None = ...) -> float: ... - # positive x -> int; negative x -> float - # return type must be Any as `int | float` causes too many false-positive errors - @overload - def __pow__(self, __x: int, __modulo: None = ...) -> Any: ... - def __rpow__(self, __x: int, __mod: int | None = ...) -> Any: ... - def __and__(self, __n: int) -> int: ... - def __or__(self, __n: int) -> int: ... - def __xor__(self, __n: int) -> int: ... - def __lshift__(self, __n: int) -> int: ... - def __rshift__(self, __n: int) -> int: ... - def __rand__(self, __n: int) -> int: ... - def __ror__(self, __n: int) -> int: ... - def __rxor__(self, __n: int) -> int: ... - def __rlshift__(self, __n: int) -> int: ... - def __rrshift__(self, __n: int) -> int: ... + cls, bytes: Iterable[SupportsIndex] | SupportsBytes, byteorder: Literal["little", "big"], *, signed: bool = ... + ) -> int: ... # TODO buffer object argument + def __add__(self, x: int) -> int: ... + def __sub__(self, x: int) -> int: ... + def __mul__(self, x: int) -> int: ... + def __floordiv__(self, x: int) -> int: ... + def __truediv__(self, x: int) -> float: ... + def __mod__(self, x: int) -> int: ... + def __divmod__(self, x: int) -> tuple[int, int]: ... + def __radd__(self, x: int) -> int: ... + def __rsub__(self, x: int) -> int: ... + def __rmul__(self, x: int) -> int: ... + def __rfloordiv__(self, x: int) -> int: ... + def __rtruediv__(self, x: int) -> float: ... + def __rmod__(self, x: int) -> int: ... + def __rdivmod__(self, x: int) -> tuple[int, int]: ... + @overload + def __pow__(self, __x: Literal[2], __modulo: int | None = ...) -> int: ... + @overload + def __pow__(self, __x: int, __modulo: int | None = ...) -> Any: ... # Return type can be int or float, depending on x. + def __rpow__(self, x: int, mod: int | None = ...) -> Any: ... + def __and__(self, n: int) -> int: ... + def __or__(self, n: int) -> int: ... + def __xor__(self, n: int) -> int: ... + def __lshift__(self, n: int) -> int: ... + def __rshift__(self, n: int) -> int: ... + def __rand__(self, n: int) -> int: ... + def __ror__(self, n: int) -> int: ... + def __rxor__(self, n: int) -> int: ... + def __rlshift__(self, n: int) -> int: ... + def __rrshift__(self, n: int) -> int: ... def __neg__(self) -> int: ... def __pos__(self) -> int: ... def __invert__(self) -> int: ... def __trunc__(self) -> int: ... def __ceil__(self) -> int: ... def __floor__(self) -> int: ... - def __round__(self, __ndigits: SupportsIndex = ...) -> int: ... + def __round__(self, ndigits: SupportsIndex = ...) -> int: ... def __getnewargs__(self) -> tuple[int]: ... - def __eq__(self, __x: object) -> bool: ... - def __ne__(self, __x: object) -> bool: ... - def __lt__(self, __x: int) -> bool: ... - def __le__(self, __x: int) -> bool: ... - def __gt__(self, __x: int) -> bool: ... - def __ge__(self, __x: int) -> bool: ... + def __eq__(self, x: object) -> bool: ... + def __ne__(self, x: object) -> bool: ... + def __lt__(self, x: int) -> bool: ... + def __le__(self, x: int) -> bool: ... + def __gt__(self, x: int) -> bool: ... + def __ge__(self, x: int) -> bool: ... + def __str__(self) -> str: ... def __float__(self) -> float: ... def __int__(self) -> int: ... def __abs__(self) -> int: ... @@ -270,57 +248,53 @@ class int: def __index__(self) -> int: ... class float: - def __new__(cls: type[Self], x: SupportsFloat | SupportsIndex | str | bytes | bytearray = ...) -> Self: ... + def __new__(cls: Type[_T], x: SupportsFloat | SupportsIndex | str | bytes | bytearray = ...) -> _T: ... def as_integer_ratio(self) -> tuple[int, int]: ... def hex(self) -> str: ... def is_integer(self) -> bool: ... @classmethod - def fromhex(cls: type[Self], __s: str) -> Self: ... + def fromhex(cls, __s: str) -> float: ... @property def real(self) -> float: ... @property def imag(self) -> float: ... def conjugate(self) -> float: ... - def __add__(self, __x: float) -> float: ... - def __sub__(self, __x: float) -> float: ... - def __mul__(self, __x: float) -> float: ... - def __floordiv__(self, __x: float) -> float: ... - def __truediv__(self, __x: float) -> float: ... - def __mod__(self, __x: float) -> float: ... - def __divmod__(self, __x: float) -> tuple[float, float]: ... - @overload - def __pow__(self, __x: int, __mod: None = ...) -> float: ... - # positive x -> float; negative x -> complex - # return type must be Any as `float | complex` causes too many false-positive errors - @overload - def __pow__(self, __x: float, __mod: None = ...) -> Any: ... - def __radd__(self, __x: float) -> float: ... - def __rsub__(self, __x: float) -> float: ... - def __rmul__(self, __x: float) -> float: ... - def __rfloordiv__(self, __x: float) -> float: ... - def __rtruediv__(self, __x: float) -> float: ... - def __rmod__(self, __x: float) -> float: ... - def __rdivmod__(self, __x: float) -> tuple[float, float]: ... - # Returns complex if the argument is negative. - def __rpow__(self, __x: float, __mod: None = ...) -> Any: ... + def __add__(self, x: float) -> float: ... + def __sub__(self, x: float) -> float: ... + def __mul__(self, x: float) -> float: ... + def __floordiv__(self, x: float) -> float: ... + def __truediv__(self, x: float) -> float: ... + def __mod__(self, x: float) -> float: ... + def __divmod__(self, x: float) -> tuple[float, float]: ... + def __pow__( + self, x: float, mod: None = ... + ) -> float: ... # In Python 3, returns complex if self is negative and x is not whole + def __radd__(self, x: float) -> float: ... + def __rsub__(self, x: float) -> float: ... + def __rmul__(self, x: float) -> float: ... + def __rfloordiv__(self, x: float) -> float: ... + def __rtruediv__(self, x: float) -> float: ... + def __rmod__(self, x: float) -> float: ... + def __rdivmod__(self, x: float) -> tuple[float, float]: ... + def __rpow__(self, x: float, mod: None = ...) -> float: ... def __getnewargs__(self) -> tuple[float]: ... def __trunc__(self) -> int: ... if sys.version_info >= (3, 9): def __ceil__(self) -> int: ... def __floor__(self) -> int: ... - @overload - def __round__(self, __ndigits: None = ...) -> int: ... + def __round__(self, ndigits: None = ...) -> int: ... @overload - def __round__(self, __ndigits: SupportsIndex) -> float: ... - def __eq__(self, __x: object) -> bool: ... - def __ne__(self, __x: object) -> bool: ... - def __lt__(self, __x: float) -> bool: ... - def __le__(self, __x: float) -> bool: ... - def __gt__(self, __x: float) -> bool: ... - def __ge__(self, __x: float) -> bool: ... + def __round__(self, ndigits: SupportsIndex) -> float: ... + def __eq__(self, x: object) -> bool: ... + def __ne__(self, x: object) -> bool: ... + def __lt__(self, x: float) -> bool: ... + def __le__(self, x: float) -> bool: ... + def __gt__(self, x: float) -> bool: ... + def __ge__(self, x: float) -> bool: ... def __neg__(self) -> float: ... def __pos__(self) -> float: ... + def __str__(self) -> str: ... def __int__(self) -> int: ... def __float__(self) -> float: ... def __abs__(self) -> float: ... @@ -329,55 +303,53 @@ class float: class complex: @overload - def __new__(cls: type[Self], real: float = ..., imag: float = ...) -> Self: ... + def __new__(cls: Type[_T], real: float = ..., imag: float = ...) -> _T: ... @overload - def __new__(cls: type[Self], real: str | SupportsComplex | SupportsIndex | complex) -> Self: ... + def __new__(cls: Type[_T], real: str | SupportsComplex | SupportsIndex | complex) -> _T: ... @property def real(self) -> float: ... @property def imag(self) -> float: ... def conjugate(self) -> complex: ... - def __add__(self, __x: complex) -> complex: ... - def __sub__(self, __x: complex) -> complex: ... - def __mul__(self, __x: complex) -> complex: ... - def __pow__(self, __x: complex, mod: None = ...) -> complex: ... - def __truediv__(self, __x: complex) -> complex: ... - def __radd__(self, __x: complex) -> complex: ... - def __rsub__(self, __x: complex) -> complex: ... - def __rmul__(self, __x: complex) -> complex: ... - def __rpow__(self, __x: complex, __mod: None = ...) -> complex: ... - def __rtruediv__(self, __x: complex) -> complex: ... - def __eq__(self, __x: object) -> bool: ... - def __ne__(self, __x: object) -> bool: ... + def __add__(self, x: complex) -> complex: ... + def __sub__(self, x: complex) -> complex: ... + def __mul__(self, x: complex) -> complex: ... + def __pow__(self, x: complex, mod: None = ...) -> complex: ... + def __truediv__(self, x: complex) -> complex: ... + def __radd__(self, x: complex) -> complex: ... + def __rsub__(self, x: complex) -> complex: ... + def __rmul__(self, x: complex) -> complex: ... + def __rpow__(self, x: complex, mod: None = ...) -> complex: ... + def __rtruediv__(self, x: complex) -> complex: ... + def __eq__(self, x: object) -> bool: ... + def __ne__(self, x: object) -> bool: ... def __neg__(self) -> complex: ... def __pos__(self) -> complex: ... + def __str__(self) -> str: ... def __abs__(self) -> float: ... def __hash__(self) -> int: ... def __bool__(self) -> bool: ... - if sys.version_info >= (3, 11): - def __complex__(self) -> complex: ... class _FormatMapMapping(Protocol): def __getitem__(self, __key: str) -> Any: ... class str(Sequence[str]): @overload - def __new__(cls: type[Self], object: object = ...) -> Self: ... + def __new__(cls: Type[_T], o: object = ...) -> _T: ... @overload - def __new__(cls: type[Self], o: bytes, encoding: str = ..., errors: str = ...) -> Self: ... + def __new__(cls: Type[_T], o: bytes, encoding: str = ..., errors: str = ...) -> _T: ... def capitalize(self) -> str: ... def casefold(self) -> str: ... def center(self, __width: SupportsIndex, __fillchar: str = ...) -> str: ... def count(self, x: str, __start: SupportsIndex | None = ..., __end: SupportsIndex | None = ...) -> int: ... def encode(self, encoding: str = ..., errors: str = ...) -> bytes: ... def endswith( - self, __suffix: str | tuple[str, ...], __start: SupportsIndex | None = ..., __end: SupportsIndex | None = ... + self, __suffix: str | Tuple[str, ...], __start: SupportsIndex | None = ..., __end: SupportsIndex | None = ... ) -> bool: ... if sys.version_info >= (3, 8): def expandtabs(self, tabsize: SupportsIndex = ...) -> str: ... else: def expandtabs(self, tabsize: int = ...) -> str: ... - def find(self, __sub: str, __start: SupportsIndex | None = ..., __end: SupportsIndex | None = ...) -> int: ... def format(self, *args: object, **kwargs: object) -> str: ... def format_map(self, map: _FormatMapMapping) -> str: ... @@ -386,7 +358,6 @@ class str(Sequence[str]): def isalpha(self) -> bool: ... if sys.version_info >= (3, 7): def isascii(self) -> bool: ... - def isdecimal(self) -> bool: ... def isdigit(self) -> bool: ... def isidentifier(self) -> bool: ... @@ -405,7 +376,6 @@ class str(Sequence[str]): if sys.version_info >= (3, 9): def removeprefix(self, __prefix: str) -> str: ... def removesuffix(self, __suffix: str) -> str: ... - def rfind(self, __sub: str, __start: SupportsIndex | None = ..., __end: SupportsIndex | None = ...) -> int: ... def rindex(self, __sub: str, __start: SupportsIndex | None = ..., __end: SupportsIndex | None = ...) -> int: ... def rjust(self, __width: SupportsIndex, __fillchar: str = ...) -> str: ... @@ -415,7 +385,7 @@ class str(Sequence[str]): def split(self, sep: str | None = ..., maxsplit: SupportsIndex = ...) -> list[str]: ... def splitlines(self, keepends: bool = ...) -> list[str]: ... def startswith( - self, __prefix: str | tuple[str, ...], __start: SupportsIndex | None = ..., __end: SupportsIndex | None = ... + self, __prefix: str | Tuple[str, ...], __start: SupportsIndex | None = ..., __end: SupportsIndex | None = ... ) -> bool: ... def strip(self, __chars: str | None = ...) -> str: ... def swapcase(self) -> str: ... @@ -429,35 +399,37 @@ class str(Sequence[str]): @staticmethod @overload def maketrans(__x: str, __y: str, __z: str | None = ...) -> dict[int, int | None]: ... - def __add__(self, __s: str) -> str: ... + def __add__(self, s: str) -> str: ... # Incompatible with Sequence.__contains__ - def __contains__(self, __o: str) -> bool: ... # type: ignore[override] - def __eq__(self, __x: object) -> bool: ... - def __ge__(self, __x: str) -> bool: ... - def __getitem__(self, __i: SupportsIndex | slice) -> str: ... - def __gt__(self, __x: str) -> bool: ... + def __contains__(self, o: str) -> bool: ... # type: ignore + def __eq__(self, x: object) -> bool: ... + def __ge__(self, x: str) -> bool: ... + def __getitem__(self, i: int | slice) -> str: ... + def __gt__(self, x: str) -> bool: ... def __hash__(self) -> int: ... def __iter__(self) -> Iterator[str]: ... - def __le__(self, __x: str) -> bool: ... + def __le__(self, x: str) -> bool: ... def __len__(self) -> int: ... - def __lt__(self, __x: str) -> bool: ... - def __mod__(self, __x: Any) -> str: ... - def __mul__(self, __n: SupportsIndex) -> str: ... - def __ne__(self, __x: object) -> bool: ... + def __lt__(self, x: str) -> bool: ... + def __mod__(self, x: Any) -> str: ... + def __mul__(self, n: SupportsIndex) -> str: ... + def __ne__(self, x: object) -> bool: ... + def __repr__(self) -> str: ... def __rmul__(self, n: SupportsIndex) -> str: ... + def __str__(self) -> str: ... def __getnewargs__(self) -> tuple[str]: ... class bytes(ByteString): @overload - def __new__(cls: type[Self], __ints: Iterable[SupportsIndex]) -> Self: ... + def __new__(cls: Type[_T], ints: Iterable[SupportsIndex]) -> _T: ... @overload - def __new__(cls: type[Self], __string: str, encoding: str, errors: str = ...) -> Self: ... + def __new__(cls: Type[_T], string: str, encoding: str, errors: str = ...) -> _T: ... @overload - def __new__(cls: type[Self], __length: SupportsIndex) -> Self: ... + def __new__(cls: Type[_T], length: SupportsIndex) -> _T: ... @overload - def __new__(cls: type[Self]) -> Self: ... + def __new__(cls: Type[_T]) -> _T: ... @overload - def __new__(cls: type[Self], __o: SupportsBytes) -> Self: ... + def __new__(cls: Type[_T], o: SupportsBytes) -> _T: ... def capitalize(self) -> bytes: ... def center(self, __width: SupportsIndex, __fillchar: bytes = ...) -> bytes: ... def count( @@ -465,13 +437,12 @@ class bytes(ByteString): ) -> int: ... def decode(self, encoding: str = ..., errors: str = ...) -> str: ... def endswith( - self, __suffix: bytes | tuple[bytes, ...], __start: SupportsIndex | None = ..., __end: SupportsIndex | None = ... + self, __suffix: bytes | Tuple[bytes, ...], __start: SupportsIndex | None = ..., __end: SupportsIndex | None = ... ) -> bool: ... if sys.version_info >= (3, 8): def expandtabs(self, tabsize: SupportsIndex = ...) -> bytes: ... else: def expandtabs(self, tabsize: int = ...) -> bytes: ... - def find( self, __sub: bytes | SupportsIndex, __start: SupportsIndex | None = ..., __end: SupportsIndex | None = ... ) -> int: ... @@ -479,7 +450,6 @@ class bytes(ByteString): def hex(self, sep: str | bytes = ..., bytes_per_sep: SupportsIndex = ...) -> str: ... else: def hex(self) -> str: ... - def index( self, __sub: bytes | SupportsIndex, __start: SupportsIndex | None = ..., __end: SupportsIndex | None = ... ) -> int: ... @@ -487,7 +457,6 @@ class bytes(ByteString): def isalpha(self) -> bool: ... if sys.version_info >= (3, 7): def isascii(self) -> bool: ... - def isdigit(self) -> bool: ... def islower(self) -> bool: ... def isspace(self) -> bool: ... @@ -502,7 +471,6 @@ class bytes(ByteString): if sys.version_info >= (3, 9): def removeprefix(self, __prefix: bytes) -> bytes: ... def removesuffix(self, __suffix: bytes) -> bytes: ... - def rfind( self, __sub: bytes | SupportsIndex, __start: SupportsIndex | None = ..., __end: SupportsIndex | None = ... ) -> int: ... @@ -516,7 +484,7 @@ class bytes(ByteString): def split(self, sep: bytes | None = ..., maxsplit: SupportsIndex = ...) -> list[bytes]: ... def splitlines(self, keepends: bool = ...) -> list[bytes]: ... def startswith( - self, __prefix: bytes | tuple[bytes, ...], __start: SupportsIndex | None = ..., __end: SupportsIndex | None = ... + self, __prefix: bytes | Tuple[bytes, ...], __start: SupportsIndex | None = ..., __end: SupportsIndex | None = ... ) -> bool: ... def strip(self, __bytes: bytes | None = ...) -> bytes: ... def swapcase(self) -> bytes: ... @@ -525,41 +493,41 @@ class bytes(ByteString): def upper(self) -> bytes: ... def zfill(self, __width: SupportsIndex) -> bytes: ... @classmethod - def fromhex(cls: type[Self], __s: str) -> Self: ... + def fromhex(cls, __s: str) -> bytes: ... @staticmethod def maketrans(__frm: bytes, __to: bytes) -> bytes: ... def __len__(self) -> int: ... def __iter__(self) -> Iterator[int]: ... + def __str__(self) -> str: ... + def __repr__(self) -> str: ... def __hash__(self) -> int: ... @overload - def __getitem__(self, __i: SupportsIndex) -> int: ... + def __getitem__(self, i: SupportsIndex) -> int: ... @overload - def __getitem__(self, __s: slice) -> bytes: ... - def __add__(self, __s: bytes) -> bytes: ... - def __mul__(self, __n: SupportsIndex) -> bytes: ... - def __rmul__(self, __n: SupportsIndex) -> bytes: ... - def __mod__(self, __value: Any) -> bytes: ... + def __getitem__(self, s: slice) -> bytes: ... + def __add__(self, s: bytes) -> bytes: ... + def __mul__(self, n: SupportsIndex) -> bytes: ... + def __rmul__(self, n: SupportsIndex) -> bytes: ... + def __mod__(self, value: Any) -> bytes: ... # Incompatible with Sequence.__contains__ - def __contains__(self, __o: SupportsIndex | bytes) -> bool: ... # type: ignore[override] - def __eq__(self, __x: object) -> bool: ... - def __ne__(self, __x: object) -> bool: ... - def __lt__(self, __x: bytes) -> bool: ... - def __le__(self, __x: bytes) -> bool: ... - def __gt__(self, __x: bytes) -> bool: ... - def __ge__(self, __x: bytes) -> bool: ... + def __contains__(self, o: SupportsIndex | bytes) -> bool: ... # type: ignore + def __eq__(self, x: object) -> bool: ... + def __ne__(self, x: object) -> bool: ... + def __lt__(self, x: bytes) -> bool: ... + def __le__(self, x: bytes) -> bool: ... + def __gt__(self, x: bytes) -> bool: ... + def __ge__(self, x: bytes) -> bool: ... def __getnewargs__(self) -> tuple[bytes]: ... - if sys.version_info >= (3, 11): - def __bytes__(self) -> bytes: ... class bytearray(MutableSequence[int], ByteString): @overload def __init__(self) -> None: ... @overload - def __init__(self, __ints: Iterable[SupportsIndex]) -> None: ... + def __init__(self, ints: Iterable[SupportsIndex]) -> None: ... @overload - def __init__(self, __string: str, encoding: str, errors: str = ...) -> None: ... + def __init__(self, string: str, encoding: str, errors: str = ...) -> None: ... @overload - def __init__(self, __length: SupportsIndex) -> None: ... + def __init__(self, length: SupportsIndex) -> None: ... def append(self, __item: SupportsIndex) -> None: ... def capitalize(self) -> bytearray: ... def center(self, __width: SupportsIndex, __fillchar: bytes = ...) -> bytearray: ... @@ -569,13 +537,12 @@ class bytearray(MutableSequence[int], ByteString): def copy(self) -> bytearray: ... def decode(self, encoding: str = ..., errors: str = ...) -> str: ... def endswith( - self, __suffix: bytes | tuple[bytes, ...], __start: SupportsIndex | None = ..., __end: SupportsIndex | None = ... + self, __suffix: bytes | Tuple[bytes, ...], __start: SupportsIndex | None = ..., __end: SupportsIndex | None = ... ) -> bool: ... if sys.version_info >= (3, 8): def expandtabs(self, tabsize: SupportsIndex = ...) -> bytearray: ... else: def expandtabs(self, tabsize: int = ...) -> bytearray: ... - def extend(self, __iterable_of_ints: Iterable[SupportsIndex]) -> None: ... def find( self, __sub: bytes | SupportsIndex, __start: SupportsIndex | None = ..., __end: SupportsIndex | None = ... @@ -584,7 +551,6 @@ class bytearray(MutableSequence[int], ByteString): def hex(self, sep: str | bytes = ..., bytes_per_sep: SupportsIndex = ...) -> str: ... else: def hex(self) -> str: ... - def index( self, __sub: bytes | SupportsIndex, __start: SupportsIndex | None = ..., __end: SupportsIndex | None = ... ) -> int: ... @@ -593,7 +559,6 @@ class bytearray(MutableSequence[int], ByteString): def isalpha(self) -> bool: ... if sys.version_info >= (3, 7): def isascii(self) -> bool: ... - def isdigit(self) -> bool: ... def islower(self) -> bool: ... def isspace(self) -> bool: ... @@ -607,7 +572,6 @@ class bytearray(MutableSequence[int], ByteString): if sys.version_info >= (3, 9): def removeprefix(self, __prefix: bytes) -> bytearray: ... def removesuffix(self, __suffix: bytes) -> bytearray: ... - def replace(self, __old: bytes, __new: bytes, __count: SupportsIndex = ...) -> bytearray: ... def rfind( self, __sub: bytes | SupportsIndex, __start: SupportsIndex | None = ..., __end: SupportsIndex | None = ... @@ -622,7 +586,7 @@ class bytearray(MutableSequence[int], ByteString): def split(self, sep: bytes | None = ..., maxsplit: SupportsIndex = ...) -> list[bytearray]: ... def splitlines(self, keepends: bool = ...) -> list[bytearray]: ... def startswith( - self, __prefix: bytes | tuple[bytes, ...], __start: SupportsIndex | None = ..., __end: SupportsIndex | None = ... + self, __prefix: bytes | Tuple[bytes, ...], __start: SupportsIndex | None = ..., __end: SupportsIndex | None = ... ) -> bool: ... def strip(self, __bytes: bytes | None = ...) -> bytearray: ... def swapcase(self) -> bytearray: ... @@ -631,88 +595,76 @@ class bytearray(MutableSequence[int], ByteString): def upper(self) -> bytearray: ... def zfill(self, __width: SupportsIndex) -> bytearray: ... @classmethod - def fromhex(cls: type[Self], __string: str) -> Self: ... + def fromhex(cls, __string: str) -> bytearray: ... @staticmethod def maketrans(__frm: bytes, __to: bytes) -> bytes: ... def __len__(self) -> int: ... def __iter__(self) -> Iterator[int]: ... - __hash__: None # type: ignore[assignment] + def __str__(self) -> str: ... + def __repr__(self) -> str: ... + __hash__: None # type: ignore @overload - def __getitem__(self, __i: SupportsIndex) -> int: ... + def __getitem__(self, i: SupportsIndex) -> int: ... @overload - def __getitem__(self, __s: slice) -> bytearray: ... + def __getitem__(self, s: slice) -> bytearray: ... @overload - def __setitem__(self, __i: SupportsIndex, x: SupportsIndex) -> None: ... + def __setitem__(self, i: SupportsIndex, x: SupportsIndex) -> None: ... @overload - def __setitem__(self, __s: slice, __x: Iterable[SupportsIndex] | bytes) -> None: ... - def __delitem__(self, __i: SupportsIndex | slice) -> None: ... - def __add__(self, __s: bytes) -> bytearray: ... - def __iadd__(self: Self, __s: Iterable[int]) -> Self: ... - def __mul__(self, __n: SupportsIndex) -> bytearray: ... - def __rmul__(self, __n: SupportsIndex) -> bytearray: ... - def __imul__(self: Self, __n: SupportsIndex) -> Self: ... - def __mod__(self, __value: Any) -> bytes: ... + def __setitem__(self, s: slice, x: Iterable[SupportsIndex] | bytes) -> None: ... + def __delitem__(self, i: SupportsIndex | slice) -> None: ... + def __add__(self, s: bytes) -> bytearray: ... + def __iadd__(self, s: Iterable[int]) -> bytearray: ... + def __mul__(self, n: SupportsIndex) -> bytearray: ... + def __rmul__(self, n: SupportsIndex) -> bytearray: ... + def __imul__(self, n: SupportsIndex) -> bytearray: ... + def __mod__(self, value: Any) -> bytes: ... # Incompatible with Sequence.__contains__ - def __contains__(self, __o: SupportsIndex | bytes) -> bool: ... # type: ignore[override] - def __eq__(self, __x: object) -> bool: ... - def __ne__(self, __x: object) -> bool: ... - def __lt__(self, __x: bytes) -> bool: ... - def __le__(self, __x: bytes) -> bool: ... - def __gt__(self, __x: bytes) -> bool: ... - def __ge__(self, __x: bytes) -> bool: ... + def __contains__(self, o: SupportsIndex | bytes) -> bool: ... # type: ignore + def __eq__(self, x: object) -> bool: ... + def __ne__(self, x: object) -> bool: ... + def __lt__(self, x: bytes) -> bool: ... + def __le__(self, x: bytes) -> bool: ... + def __gt__(self, x: bytes) -> bool: ... + def __ge__(self, x: bytes) -> bool: ... -@final class memoryview(Sized, Sequence[int]): - @property - def format(self) -> str: ... - @property - def itemsize(self) -> int: ... - @property - def shape(self) -> tuple[int, ...] | None: ... - @property - def strides(self) -> tuple[int, ...] | None: ... - @property - def suboffsets(self) -> tuple[int, ...] | None: ... - @property - def readonly(self) -> bool: ... - @property - def ndim(self) -> int: ... - @property - def obj(self) -> bytes | bytearray: ... - @property - def c_contiguous(self) -> bool: ... - @property - def f_contiguous(self) -> bool: ... - @property - def contiguous(self) -> bool: ... - @property - def nbytes(self) -> int: ... + format: str + itemsize: int + shape: Tuple[int, ...] | None + strides: Tuple[int, ...] | None + suboffsets: Tuple[int, ...] | None + readonly: bool + ndim: int + + obj: bytes | bytearray + c_contiguous: bool + f_contiguous: bool + contiguous: bool + nbytes: int def __init__(self, obj: ReadableBuffer) -> None: ... def __enter__(self: Self) -> Self: ... def __exit__( - self, __exc_type: type[BaseException] | None, __exc_val: BaseException | None, __exc_tb: TracebackType | None + self, exc_type: Type[BaseException] | None, exc_val: BaseException | None, exc_tb: TracebackType | None ) -> None: ... - def cast(self, format: str, shape: list[int] | tuple[int, ...] = ...) -> memoryview: ... + def cast(self, format: str, shape: list[int] | Tuple[int, ...] = ...) -> memoryview: ... @overload - def __getitem__(self, __i: SupportsIndex) -> int: ... + def __getitem__(self, i: SupportsIndex) -> int: ... @overload - def __getitem__(self, __s: slice) -> memoryview: ... - def __contains__(self, __x: object) -> bool: ... + def __getitem__(self, s: slice) -> memoryview: ... + def __contains__(self, x: object) -> bool: ... def __iter__(self) -> Iterator[int]: ... def __len__(self) -> int: ... @overload - def __setitem__(self, __s: slice, __o: bytes) -> None: ... + def __setitem__(self, s: slice, o: bytes) -> None: ... @overload - def __setitem__(self, __i: SupportsIndex, __o: SupportsIndex) -> None: ... + def __setitem__(self, i: SupportsIndex, o: SupportsIndex) -> None: ... if sys.version_info >= (3, 8): def tobytes(self, order: Literal["C", "F", "A"] | None = ...) -> bytes: ... else: def tobytes(self) -> bytes: ... - def tolist(self) -> list[int]: ... if sys.version_info >= (3, 8): def toreadonly(self) -> memoryview: ... - def release(self) -> None: ... if sys.version_info >= (3, 8): def hex(self, sep: str | bytes = ..., bytes_per_sep: SupportsIndex = ...) -> str: ... @@ -721,280 +673,272 @@ class memoryview(Sized, Sequence[int]): @final class bool(int): - def __new__(cls: type[Self], __o: object = ...) -> Self: ... + def __new__(cls: Type[_T], __o: object = ...) -> _T: ... @overload - def __and__(self, __x: bool) -> bool: ... + def __and__(self, x: bool) -> bool: ... @overload - def __and__(self, __x: int) -> int: ... + def __and__(self, x: int) -> int: ... @overload - def __or__(self, __x: bool) -> bool: ... + def __or__(self, x: bool) -> bool: ... @overload - def __or__(self, __x: int) -> int: ... + def __or__(self, x: int) -> int: ... @overload - def __xor__(self, __x: bool) -> bool: ... + def __xor__(self, x: bool) -> bool: ... @overload - def __xor__(self, __x: int) -> int: ... + def __xor__(self, x: int) -> int: ... @overload - def __rand__(self, __x: bool) -> bool: ... + def __rand__(self, x: bool) -> bool: ... @overload - def __rand__(self, __x: int) -> int: ... + def __rand__(self, x: int) -> int: ... @overload - def __ror__(self, __x: bool) -> bool: ... + def __ror__(self, x: bool) -> bool: ... @overload - def __ror__(self, __x: int) -> int: ... + def __ror__(self, x: int) -> int: ... @overload - def __rxor__(self, __x: bool) -> bool: ... + def __rxor__(self, x: bool) -> bool: ... @overload - def __rxor__(self, __x: int) -> int: ... + def __rxor__(self, x: int) -> int: ... def __getnewargs__(self) -> tuple[int]: ... -@final -class slice: - @property - def start(self) -> Any: ... - @property - def step(self) -> Any: ... - @property - def stop(self) -> Any: ... +class slice(object): + start: Any + step: Any + stop: Any @overload - def __init__(self, __stop: Any) -> None: ... + def __init__(self, stop: Any) -> None: ... @overload - def __init__(self, __start: Any, __stop: Any, __step: Any = ...) -> None: ... - __hash__: None # type: ignore[assignment] - def indices(self, __len: SupportsIndex) -> tuple[int, int, int]: ... + def __init__(self, start: Any, stop: Any, step: Any = ...) -> None: ... + __hash__: None # type: ignore + def indices(self, len: SupportsIndex) -> tuple[int, int, int]: ... class tuple(Sequence[_T_co], Generic[_T_co]): - def __new__(cls: type[Self], __iterable: Iterable[_T_co] = ...) -> Self: ... + def __new__(cls: Type[_T], iterable: Iterable[_T_co] = ...) -> _T: ... def __len__(self) -> int: ... - def __contains__(self, __x: object) -> bool: ... + def __contains__(self, x: object) -> bool: ... @overload - def __getitem__(self, __x: SupportsIndex) -> _T_co: ... + def __getitem__(self, x: int) -> _T_co: ... @overload - def __getitem__(self, __x: slice) -> tuple[_T_co, ...]: ... + def __getitem__(self, x: slice) -> Tuple[_T_co, ...]: ... def __iter__(self) -> Iterator[_T_co]: ... - def __lt__(self, __x: tuple[_T_co, ...]) -> bool: ... - def __le__(self, __x: tuple[_T_co, ...]) -> bool: ... - def __gt__(self, __x: tuple[_T_co, ...]) -> bool: ... - def __ge__(self, __x: tuple[_T_co, ...]) -> bool: ... + def __lt__(self, x: Tuple[_T_co, ...]) -> bool: ... + def __le__(self, x: Tuple[_T_co, ...]) -> bool: ... + def __gt__(self, x: Tuple[_T_co, ...]) -> bool: ... + def __ge__(self, x: Tuple[_T_co, ...]) -> bool: ... @overload - def __add__(self, __x: tuple[_T_co, ...]) -> tuple[_T_co, ...]: ... + def __add__(self, x: Tuple[_T_co, ...]) -> Tuple[_T_co, ...]: ... @overload - def __add__(self, __x: tuple[_T, ...]) -> tuple[_T_co | _T, ...]: ... - def __mul__(self, __n: SupportsIndex) -> tuple[_T_co, ...]: ... - def __rmul__(self, __n: SupportsIndex) -> tuple[_T_co, ...]: ... + def __add__(self, x: Tuple[_T, ...]) -> Tuple[_T_co | _T, ...]: ... + def __mul__(self, n: SupportsIndex) -> Tuple[_T_co, ...]: ... + def __rmul__(self, n: SupportsIndex) -> Tuple[_T_co, ...]: ... def count(self, __value: Any) -> int: ... def index(self, __value: Any, __start: SupportsIndex = ..., __stop: SupportsIndex = ...) -> int: ... if sys.version_info >= (3, 9): - def __class_getitem__(cls, __item: Any) -> GenericAlias: ... + def __class_getitem__(cls, item: Any) -> GenericAlias: ... -# Doesn't exist at runtime, but deleting this breaks mypy. See #2999 -@final class function: - # Make sure this class definition stays roughly in line with `types.FunctionType` - __closure__: tuple[_Cell, ...] | None - __code__: CodeType - __defaults__: tuple[Any, ...] | None - __dict__: dict[str, Any] - __globals__: dict[str, Any] + # TODO not defined in builtins! __name__: str + __module__: str + __code__: CodeType __qualname__: str __annotations__: dict[str, Any] - __kwdefaults__: dict[str, Any] - __module__: str - # mypy uses `builtins.function.__get__` to represent methods, properties, and getset_descriptors so we type the return as Any. - def __get__(self, obj: object | None, type: type | None = ...) -> Any: ... class list(MutableSequence[_T], Generic[_T]): @overload def __init__(self) -> None: ... @overload - def __init__(self, __iterable: Iterable[_T]) -> None: ... + def __init__(self, iterable: Iterable[_T]) -> None: ... + def clear(self) -> None: ... def copy(self) -> list[_T]: ... def append(self, __object: _T) -> None: ... def extend(self, __iterable: Iterable[_T]) -> None: ... def pop(self, __index: SupportsIndex = ...) -> _T: ... - # Signature of `list.index` should be kept in line with `collections.UserList.index()` def index(self, __value: _T, __start: SupportsIndex = ..., __stop: SupportsIndex = ...) -> int: ... def count(self, __value: _T) -> int: ... def insert(self, __index: SupportsIndex, __object: _T) -> None: ... def remove(self, __value: _T) -> None: ... - # Signature of `list.sort` should be kept inline with `collections.UserList.sort()` + def reverse(self) -> None: ... @overload - def sort(self: list[SupportsRichComparisonT], *, key: None = ..., reverse: bool = ...) -> None: ... + def sort(self: list[SupportsLessThanT], *, key: None = ..., reverse: bool = ...) -> None: ... @overload - def sort(self, *, key: Callable[[_T], SupportsRichComparison], reverse: bool = ...) -> None: ... + def sort(self, *, key: Callable[[_T], SupportsLessThan], reverse: bool = ...) -> None: ... def __len__(self) -> int: ... def __iter__(self) -> Iterator[_T]: ... - __hash__: None # type: ignore[assignment] + def __str__(self) -> str: ... + __hash__: None # type: ignore @overload - def __getitem__(self, __i: SupportsIndex) -> _T: ... + def __getitem__(self, i: SupportsIndex) -> _T: ... @overload - def __getitem__(self, __s: slice) -> list[_T]: ... + def __getitem__(self, s: slice) -> list[_T]: ... @overload - def __setitem__(self, __i: SupportsIndex, __o: _T) -> None: ... + def __setitem__(self, i: SupportsIndex, o: _T) -> None: ... @overload - def __setitem__(self, __s: slice, __o: Iterable[_T]) -> None: ... - def __delitem__(self, __i: SupportsIndex | slice) -> None: ... - def __add__(self, __x: list[_T]) -> list[_T]: ... - def __iadd__(self: Self, __x: Iterable[_T]) -> Self: ... - def __mul__(self, __n: SupportsIndex) -> list[_T]: ... - def __rmul__(self, __n: SupportsIndex) -> list[_T]: ... - def __imul__(self: Self, __n: SupportsIndex) -> Self: ... - def __contains__(self, __o: object) -> bool: ... + def __setitem__(self, s: slice, o: Iterable[_T]) -> None: ... + def __delitem__(self, i: SupportsIndex | slice) -> None: ... + def __add__(self, x: list[_T]) -> list[_T]: ... + def __iadd__(self: _S, x: Iterable[_T]) -> _S: ... + def __mul__(self, n: SupportsIndex) -> list[_T]: ... + def __rmul__(self, n: SupportsIndex) -> list[_T]: ... + def __imul__(self: _S, n: SupportsIndex) -> _S: ... + def __contains__(self, o: object) -> bool: ... def __reversed__(self) -> Iterator[_T]: ... - def __gt__(self, __x: list[_T]) -> bool: ... - def __ge__(self, __x: list[_T]) -> bool: ... - def __lt__(self, __x: list[_T]) -> bool: ... - def __le__(self, __x: list[_T]) -> bool: ... + def __gt__(self, x: list[_T]) -> bool: ... + def __ge__(self, x: list[_T]) -> bool: ... + def __lt__(self, x: list[_T]) -> bool: ... + def __le__(self, x: list[_T]) -> bool: ... if sys.version_info >= (3, 9): - def __class_getitem__(cls, __item: Any) -> GenericAlias: ... + def __class_getitem__(cls, item: Any) -> GenericAlias: ... + +class _dict_keys(KeysView[_KT_co], Generic[_KT_co, _VT_co]): + if sys.version_info >= (3, 10): + mapping: MappingProxyType[_KT_co, _VT_co] + +# The generics are the wrong way around because of a mypy limitation +# https://github.com/python/mypy/issues/11138 +class _dict_values(ValuesView[_VT_co], Generic[_VT_co, _KT_co]): + if sys.version_info >= (3, 10): + mapping: MappingProxyType[_KT_co, _VT_co] + +class _dict_items(ItemsView[_KT_co, _VT_co], Generic[_KT_co, _VT_co]): + if sys.version_info >= (3, 10): + mapping: MappingProxyType[_KT_co, _VT_co] class dict(MutableMapping[_KT, _VT], Generic[_KT, _VT]): - # __init__ should be kept roughly in line with `collections.UserDict.__init__`, which has similar semantics + # NOTE: Keyword arguments are special. If they are used, _KT must include + # str, but we have no way of enforcing it here. @overload - def __init__(self: dict[_KT, _VT]) -> None: ... + def __init__(self, **kwargs: _VT) -> None: ... @overload - def __init__(self: dict[str, _VT], **kwargs: _VT) -> None: ... + def __init__(self, map: SupportsKeysAndGetItem[_KT, _VT], **kwargs: _VT) -> None: ... @overload - def __init__(self, __map: SupportsKeysAndGetItem[_KT, _VT], **kwargs: _VT) -> None: ... + def __init__(self, iterable: Iterable[Tuple[_KT, _VT]], **kwargs: _VT) -> None: ... + def __new__(cls: Type[_T1], *args: Any, **kwargs: Any) -> _T1: ... + def clear(self) -> None: ... + def copy(self) -> dict[_KT, _VT]: ... + def popitem(self) -> tuple[_KT, _VT]: ... + def setdefault(self, __key: _KT, __default: _VT = ...) -> _VT: ... @overload - def __init__(self, __iterable: Iterable[tuple[_KT, _VT]], **kwargs: _VT) -> None: ... - # Next overload is for dict(string.split(sep) for string in iterable) - # Cannot be Iterable[Sequence[_T]] or otherwise dict(["foo", "bar", "baz"]) is not an error + def update(self, __m: Mapping[_KT, _VT], **kwargs: _VT) -> None: ... @overload - def __init__(self: dict[str, str], __iterable: Iterable[list[str]]) -> None: ... - def __new__(cls: type[Self], *args: Any, **kwargs: Any) -> Self: ... - def copy(self) -> dict[_KT, _VT]: ... - def keys(self) -> dict_keys[_KT, _VT]: ... - def values(self) -> dict_values[_KT, _VT]: ... - def items(self) -> dict_items[_KT, _VT]: ... - # Signature of `dict.fromkeys` should be kept identical to `fromkeys` methods of `OrderedDict`/`ChainMap`/`UserDict` in `collections` - # TODO: the true signature of `dict.fromkeys` is not expressible in the current type system. - # See #3800 & https://github.com/python/typing/issues/548#issuecomment-683336963. + def update(self, __m: Iterable[tuple[_KT, _VT]], **kwargs: _VT) -> None: ... + @overload + def update(self, **kwargs: _VT) -> None: ... + def keys(self) -> _dict_keys[_KT, _VT]: ... + def values(self) -> _dict_values[_VT, _KT]: ... + def items(self) -> _dict_items[_KT, _VT]: ... @classmethod @overload def fromkeys(cls, __iterable: Iterable[_T], __value: None = ...) -> dict[_T, Any | None]: ... @classmethod @overload def fromkeys(cls, __iterable: Iterable[_T], __value: _S) -> dict[_T, _S]: ... - # Positional-only in dict, but not in MutableMapping - @overload - def get(self, __key: _KT) -> _VT | None: ... - @overload - def get(self, __key: _KT, __default: _VT | _T) -> _VT | _T: ... - @overload - def pop(self, __key: _KT) -> _VT: ... - @overload - def pop(self, __key: _KT, __default: _VT | _T = ...) -> _VT | _T: ... def __len__(self) -> int: ... - def __getitem__(self, __k: _KT) -> _VT: ... - def __setitem__(self, __k: _KT, v: _VT) -> None: ... - def __delitem__(self, __v: _KT) -> None: ... + def __getitem__(self, k: _KT) -> _VT: ... + def __setitem__(self, k: _KT, v: _VT) -> None: ... + def __delitem__(self, v: _KT) -> None: ... def __iter__(self) -> Iterator[_KT]: ... if sys.version_info >= (3, 8): def __reversed__(self) -> Iterator[_KT]: ... - __hash__: None # type: ignore[assignment] + def __str__(self) -> str: ... + __hash__: None # type: ignore if sys.version_info >= (3, 9): - def __class_getitem__(cls, __item: Any) -> GenericAlias: ... + def __class_getitem__(cls, item: Any) -> GenericAlias: ... def __or__(self, __value: Mapping[_T1, _T2]) -> dict[_KT | _T1, _VT | _T2]: ... def __ror__(self, __value: Mapping[_T1, _T2]) -> dict[_KT | _T1, _VT | _T2]: ... - # dict.__ior__ should be kept roughly in line with MutableMapping.update() - @overload # type: ignore[misc] - def __ior__(self: Self, __value: SupportsKeysAndGetItem[_KT, _VT]) -> Self: ... - @overload - def __ior__(self: Self, __value: Iterable[tuple[_KT, _VT]]) -> Self: ... + def __ior__(self, __value: Mapping[_KT, _VT]) -> dict[_KT, _VT]: ... # type: ignore class set(MutableSet[_T], Generic[_T]): - def __init__(self, __iterable: Iterable[_T] = ...) -> None: ... - def add(self, __element: _T) -> None: ... - def copy(self) -> set[_T]: ... - def difference(self, *s: Iterable[Any]) -> set[_T]: ... + def __init__(self, iterable: Iterable[_T] = ...) -> None: ... + def add(self, element: _T) -> None: ... + def clear(self) -> None: ... + def copy(self) -> Set[_T]: ... + def difference(self, *s: Iterable[Any]) -> Set[_T]: ... def difference_update(self, *s: Iterable[Any]) -> None: ... - def discard(self, __element: _T) -> None: ... - def intersection(self, *s: Iterable[Any]) -> set[_T]: ... + def discard(self, element: _T) -> None: ... + def intersection(self, *s: Iterable[Any]) -> Set[_T]: ... def intersection_update(self, *s: Iterable[Any]) -> None: ... - def isdisjoint(self, __s: Iterable[Any]) -> bool: ... - def issubset(self, __s: Iterable[Any]) -> bool: ... - def issuperset(self, __s: Iterable[Any]) -> bool: ... - def remove(self, __element: _T) -> None: ... - def symmetric_difference(self, __s: Iterable[_T]) -> set[_T]: ... - def symmetric_difference_update(self, __s: Iterable[_T]) -> None: ... - def union(self, *s: Iterable[_S]) -> set[_T | _S]: ... + def isdisjoint(self, s: Iterable[Any]) -> bool: ... + def issubset(self, s: Iterable[Any]) -> bool: ... + def issuperset(self, s: Iterable[Any]) -> bool: ... + def pop(self) -> _T: ... + def remove(self, element: _T) -> None: ... + def symmetric_difference(self, s: Iterable[_T]) -> Set[_T]: ... + def symmetric_difference_update(self, s: Iterable[_T]) -> None: ... + def union(self, *s: Iterable[_T]) -> Set[_T]: ... def update(self, *s: Iterable[_T]) -> None: ... def __len__(self) -> int: ... - def __contains__(self, __o: object) -> bool: ... + def __contains__(self, o: object) -> bool: ... def __iter__(self) -> Iterator[_T]: ... - def __and__(self, __s: AbstractSet[object]) -> set[_T]: ... - def __iand__(self: Self, __s: AbstractSet[object]) -> Self: ... - def __or__(self, __s: AbstractSet[_S]) -> set[_T | _S]: ... - def __ior__(self: Self, __s: AbstractSet[_T]) -> Self: ... # type: ignore[override,misc] - def __sub__(self, __s: AbstractSet[_T | None]) -> set[_T]: ... - def __isub__(self: Self, __s: AbstractSet[object]) -> Self: ... - def __xor__(self, __s: AbstractSet[_S]) -> set[_T | _S]: ... - def __ixor__(self: Self, __s: AbstractSet[_T]) -> Self: ... # type: ignore[override,misc] - def __le__(self, __s: AbstractSet[object]) -> bool: ... - def __lt__(self, __s: AbstractSet[object]) -> bool: ... - def __ge__(self, __s: AbstractSet[object]) -> bool: ... - def __gt__(self, __s: AbstractSet[object]) -> bool: ... - __hash__: None # type: ignore[assignment] + def __str__(self) -> str: ... + def __and__(self, s: AbstractSet[object]) -> Set[_T]: ... + def __iand__(self, s: AbstractSet[object]) -> Set[_T]: ... + def __or__(self, s: AbstractSet[_S]) -> Set[_T | _S]: ... + def __ior__(self, s: AbstractSet[_S]) -> Set[_T | _S]: ... + def __sub__(self, s: AbstractSet[_T | None]) -> Set[_T]: ... + def __isub__(self, s: AbstractSet[_T | None]) -> Set[_T]: ... + def __xor__(self, s: AbstractSet[_S]) -> Set[_T | _S]: ... + def __ixor__(self, s: AbstractSet[_S]) -> Set[_T | _S]: ... + def __le__(self, s: AbstractSet[object]) -> bool: ... + def __lt__(self, s: AbstractSet[object]) -> bool: ... + def __ge__(self, s: AbstractSet[object]) -> bool: ... + def __gt__(self, s: AbstractSet[object]) -> bool: ... + __hash__: None # type: ignore if sys.version_info >= (3, 9): - def __class_getitem__(cls, __item: Any) -> GenericAlias: ... + def __class_getitem__(cls, item: Any) -> GenericAlias: ... class frozenset(AbstractSet[_T_co], Generic[_T_co]): - def __init__(self, __iterable: Iterable[_T_co] = ...) -> None: ... - def copy(self) -> frozenset[_T_co]: ... - def difference(self, *s: Iterable[object]) -> frozenset[_T_co]: ... - def intersection(self, *s: Iterable[object]) -> frozenset[_T_co]: ... - def isdisjoint(self, __s: Iterable[_T_co]) -> bool: ... - def issubset(self, __s: Iterable[object]) -> bool: ... - def issuperset(self, __s: Iterable[object]) -> bool: ... - def symmetric_difference(self, __s: Iterable[_T_co]) -> frozenset[_T_co]: ... - def union(self, *s: Iterable[_S]) -> frozenset[_T_co | _S]: ... + def __init__(self, iterable: Iterable[_T_co] = ...) -> None: ... + def copy(self) -> FrozenSet[_T_co]: ... + def difference(self, *s: Iterable[object]) -> FrozenSet[_T_co]: ... + def intersection(self, *s: Iterable[object]) -> FrozenSet[_T_co]: ... + def isdisjoint(self, s: Iterable[_T_co]) -> bool: ... + def issubset(self, s: Iterable[object]) -> bool: ... + def issuperset(self, s: Iterable[object]) -> bool: ... + def symmetric_difference(self, s: Iterable[_T_co]) -> FrozenSet[_T_co]: ... + def union(self, *s: Iterable[_T_co]) -> FrozenSet[_T_co]: ... def __len__(self) -> int: ... - def __contains__(self, __o: object) -> bool: ... + def __contains__(self, o: object) -> bool: ... def __iter__(self) -> Iterator[_T_co]: ... - def __and__(self, __s: AbstractSet[_T_co]) -> frozenset[_T_co]: ... - def __or__(self, __s: AbstractSet[_S]) -> frozenset[_T_co | _S]: ... - def __sub__(self, __s: AbstractSet[_T_co]) -> frozenset[_T_co]: ... - def __xor__(self, __s: AbstractSet[_S]) -> frozenset[_T_co | _S]: ... - def __le__(self, __s: AbstractSet[object]) -> bool: ... - def __lt__(self, __s: AbstractSet[object]) -> bool: ... - def __ge__(self, __s: AbstractSet[object]) -> bool: ... - def __gt__(self, __s: AbstractSet[object]) -> bool: ... + def __str__(self) -> str: ... + def __and__(self, s: AbstractSet[_T_co]) -> FrozenSet[_T_co]: ... + def __or__(self, s: AbstractSet[_S]) -> FrozenSet[_T_co | _S]: ... + def __sub__(self, s: AbstractSet[_T_co]) -> FrozenSet[_T_co]: ... + def __xor__(self, s: AbstractSet[_S]) -> FrozenSet[_T_co | _S]: ... + def __le__(self, s: AbstractSet[object]) -> bool: ... + def __lt__(self, s: AbstractSet[object]) -> bool: ... + def __ge__(self, s: AbstractSet[object]) -> bool: ... + def __gt__(self, s: AbstractSet[object]) -> bool: ... if sys.version_info >= (3, 9): - def __class_getitem__(cls, __item: Any) -> GenericAlias: ... + def __class_getitem__(cls, item: Any) -> GenericAlias: ... -class enumerate(Iterator[tuple[int, _T]], Generic[_T]): +class enumerate(Iterator[Tuple[int, _T]], Generic[_T]): def __init__(self, iterable: Iterable[_T], start: int = ...) -> None: ... def __iter__(self) -> Iterator[tuple[int, _T]]: ... def __next__(self) -> tuple[int, _T]: ... if sys.version_info >= (3, 9): - def __class_getitem__(cls, __item: Any) -> GenericAlias: ... + def __class_getitem__(cls, item: Any) -> GenericAlias: ... -@final class range(Sequence[int]): - @property - def start(self) -> int: ... - @property - def stop(self) -> int: ... - @property - def step(self) -> int: ... + start: int + stop: int + step: int @overload - def __init__(self, __stop: SupportsIndex) -> None: ... + def __init__(self, stop: SupportsIndex) -> None: ... @overload - def __init__(self, __start: SupportsIndex, __stop: SupportsIndex, __step: SupportsIndex = ...) -> None: ... - def count(self, __value: int) -> int: ... - def index(self, __value: int) -> int: ... # type: ignore[override] + def __init__(self, start: SupportsIndex, stop: SupportsIndex, step: SupportsIndex = ...) -> None: ... + def count(self, value: int) -> int: ... + def index(self, value: int) -> int: ... # type: ignore def __len__(self) -> int: ... - def __contains__(self, __o: object) -> bool: ... + def __contains__(self, o: object) -> bool: ... def __iter__(self) -> Iterator[int]: ... @overload - def __getitem__(self, __i: SupportsIndex) -> int: ... + def __getitem__(self, i: SupportsIndex) -> int: ... @overload - def __getitem__(self, __s: slice) -> range: ... + def __getitem__(self, s: slice) -> range: ... + def __repr__(self) -> str: ... def __reversed__(self) -> Iterator[int]: ... -class property: +class property(object): fget: Callable[[Any], Any] | None fset: Callable[[Any, Any], None] | None fdel: Callable[[Any], None] | None @@ -1005,18 +949,17 @@ class property: fdel: Callable[[Any], None] | None = ..., doc: str | None = ..., ) -> None: ... - def getter(self, __fget: Callable[[Any], Any]) -> property: ... - def setter(self, __fset: Callable[[Any, Any], None]) -> property: ... - def deleter(self, __fdel: Callable[[Any], None]) -> property: ... - def __get__(self, __obj: Any, __type: type | None = ...) -> Any: ... - def __set__(self, __obj: Any, __value: Any) -> None: ... - def __delete__(self, __obj: Any) -> None: ... - -@final -class _NotImplementedType(Any): # type: ignore[misc] + def getter(self, fget: Callable[[Any], Any]) -> property: ... + def setter(self, fset: Callable[[Any, Any], None]) -> property: ... + def deleter(self, fdel: Callable[[Any], None]) -> property: ... + def __get__(self, obj: Any, type: type | None = ...) -> Any: ... + def __set__(self, obj: Any, value: Any) -> None: ... + def __delete__(self, obj: Any) -> None: ... + +class _NotImplementedType(Any): # type: ignore # A little weird, but typing the __call__ as NotImplemented makes the error message # for NotImplemented() much better - __call__: NotImplemented # type: ignore[valid-type] + __call__: NotImplemented # type: ignore NotImplemented: _NotImplementedType @@ -1029,7 +972,7 @@ def bin(__number: int | SupportsIndex) -> str: ... if sys.version_info >= (3, 7): def breakpoint(*args: Any, **kws: Any) -> None: ... -def callable(__obj: object) -> TypeGuard[Callable[..., object]]: ... +def callable(__obj: object) -> bool: ... def chr(__i: int) -> str: ... # We define this here instead of using os.PathLike to avoid import cycle issues. @@ -1040,16 +983,15 @@ class _PathLike(Protocol[_AnyStr_co]): def __fspath__(self) -> _AnyStr_co: ... if sys.version_info >= (3, 10): - def aiter(__async_iterable: _SupportsAiter[_SupportsAnextT]) -> _SupportsAnextT: ... + def aiter(__iterable: AsyncIterable[_T]) -> AsyncIterator[_T]: ... @overload async def anext(__i: SupportsAnext[_T]) -> _T: ... @overload async def anext(__i: SupportsAnext[_T], default: _VT) -> _T | _VT: ... -# TODO: `compile` has a more precise return type in reality; work on a way of expressing that? if sys.version_info >= (3, 8): def compile( - source: str | bytes | AST, + source: str | bytes | mod | AST, filename: str | bytes | _PathLike[Any], mode: str, flags: int = ..., @@ -1061,7 +1003,7 @@ if sys.version_info >= (3, 8): else: def compile( - source: str | bytes | AST, + source: str | bytes | mod | AST, filename: str | bytes | _PathLike[Any], mode: str, flags: int = ..., @@ -1071,78 +1013,65 @@ else: def copyright() -> None: ... def credits() -> None: ... -def delattr(__obj: object, __name: str) -> None: ... +def delattr(__obj: Any, __name: str) -> None: ... def dir(__o: object = ...) -> list[str]: ... @overload def divmod(__x: SupportsDivMod[_T_contra, _T_co], __y: _T_contra) -> _T_co: ... @overload def divmod(__x: _T_contra, __y: SupportsRDivMod[_T_contra, _T_co]) -> _T_co: ... - -# The `globals` argument to `eval` has to be `dict[str, Any]` rather than `dict[str, object]` due to invariance. -# (The `globals` argument has to be a "real dict", rather than any old mapping, unlike the `locals` argument.) def eval( - __source: str | bytes | CodeType, __globals: dict[str, Any] | None = ..., __locals: Mapping[str, object] | None = ... + __source: str | bytes | CodeType, __globals: dict[str, Any] | None = ..., __locals: Mapping[str, Any] | None = ... ) -> Any: ... - -# Comment above regarding `eval` applies to `exec` as well def exec( - __source: str | bytes | CodeType, __globals: dict[str, Any] | None = ..., __locals: Mapping[str, object] | None = ... -) -> None: ... + __source: str | bytes | CodeType, __globals: dict[str, Any] | None = ..., __locals: Mapping[str, Any] | None = ... +) -> Any: ... def exit(code: object = ...) -> NoReturn: ... class filter(Iterator[_T], Generic[_T]): @overload def __init__(self, __function: None, __iterable: Iterable[_T | None]) -> None: ... @overload - def __init__(self, __function: Callable[[_S], TypeGuard[_T]], __iterable: Iterable[_S]) -> None: ... - @overload def __init__(self, __function: Callable[[_T], Any], __iterable: Iterable[_T]) -> None: ... - def __iter__(self: Self) -> Self: ... + def __iter__(self) -> Iterator[_T]: ... def __next__(self) -> _T: ... def format(__value: object, __format_spec: str = ...) -> str: ... # TODO unicode @overload -def getattr(__o: object, __name: str) -> Any: ... +def getattr(__o: object, name: str) -> Any: ... -# While technically covered by the last overload, spelling out the types for None, bool -# and basic containers help mypy out in some tricky situations involving type context -# (aka bidirectional inference) -@overload -def getattr(__o: object, __name: str, __default: None) -> Any | None: ... -@overload -def getattr(__o: object, __name: str, __default: bool) -> Any | bool: ... +# While technically covered by the last overload, spelling out the types for None and bool +# help mypy out in some tricky situations involving type context (aka bidirectional inference) @overload -def getattr(__o: object, name: str, __default: list[Any]) -> Any | list[Any]: ... +def getattr(__o: object, name: str, __default: None) -> Any | None: ... @overload -def getattr(__o: object, name: str, __default: dict[Any, Any]) -> Any | dict[Any, Any]: ... +def getattr(__o: object, name: str, __default: bool) -> Any | bool: ... @overload -def getattr(__o: object, __name: str, __default: _T) -> Any | _T: ... +def getattr(__o: object, name: str, __default: _T) -> Any | _T: ... def globals() -> dict[str, Any]: ... def hasattr(__obj: object, __name: str) -> bool: ... def hash(__obj: object) -> int: ... -def help(request: object = ...) -> None: ... +def help(*args: Any, **kwds: Any) -> None: ... def hex(__number: int | SupportsIndex) -> str: ... def id(__obj: object) -> int: ... -def input(__prompt: object = ...) -> str: ... +def input(__prompt: Any = ...) -> str: ... @overload -def iter(__iterable: _SupportsIter[_SupportsNextT]) -> _SupportsNextT: ... +def iter(__iterable: Iterable[_T]) -> Iterator[_T]: ... @overload def iter(__function: Callable[[], _T | None], __sentinel: None) -> Iterator[_T]: ... @overload -def iter(__function: Callable[[], _T], __sentinel: object) -> Iterator[_T]: ... +def iter(__function: Callable[[], _T], __sentinel: Any) -> Iterator[_T]: ... -# We need recursive types to express the type of the second argument to `isinstance` properly, hence the use of `Any` if sys.version_info >= (3, 10): def isinstance( - __obj: object, __class_or_tuple: type | types.UnionType | tuple[type | types.UnionType | tuple[Any, ...], ...] + __obj: object, __class_or_tuple: type | types.UnionType | Tuple[type | types.UnionType | Tuple[Any, ...], ...] ) -> bool: ... def issubclass( - __cls: type, __class_or_tuple: type | types.UnionType | tuple[type | types.UnionType | tuple[Any, ...], ...] + __cls: type, __class_or_tuple: type | types.UnionType | Tuple[type | types.UnionType | Tuple[Any, ...], ...] ) -> bool: ... else: - def isinstance(__obj: object, __class_or_tuple: type | tuple[type | tuple[Any, ...], ...]) -> bool: ... - def issubclass(__cls: type, __class_or_tuple: type | tuple[type | tuple[Any, ...], ...]) -> bool: ... + def isinstance(__obj: object, __class_or_tuple: type | Tuple[type | Tuple[Any, ...], ...]) -> bool: ... + def issubclass(__cls: type, __class_or_tuple: type | Tuple[type | Tuple[Any, ...], ...]) -> bool: ... def len(__obj: Sized) -> int: ... def license() -> None: ... @@ -1188,37 +1117,37 @@ class map(Iterator[_S], Generic[_S]): __iter6: Iterable[Any], *iterables: Iterable[Any], ) -> None: ... - def __iter__(self: Self) -> Self: ... + def __iter__(self) -> Iterator[_S]: ... def __next__(self) -> _S: ... @overload def max( - __arg1: SupportsRichComparisonT, __arg2: SupportsRichComparisonT, *_args: SupportsRichComparisonT, key: None = ... -) -> SupportsRichComparisonT: ... + __arg1: SupportsLessThanT, __arg2: SupportsLessThanT, *_args: SupportsLessThanT, key: None = ... +) -> SupportsLessThanT: ... @overload -def max(__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], SupportsRichComparison]) -> _T: ... +def max(__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], SupportsLessThan]) -> _T: ... @overload -def max(__iterable: Iterable[SupportsRichComparisonT], *, key: None = ...) -> SupportsRichComparisonT: ... +def max(__iterable: Iterable[SupportsLessThanT], *, key: None = ...) -> SupportsLessThanT: ... @overload -def max(__iterable: Iterable[_T], *, key: Callable[[_T], SupportsRichComparison]) -> _T: ... +def max(__iterable: Iterable[_T], *, key: Callable[[_T], SupportsLessThan]) -> _T: ... @overload -def max(__iterable: Iterable[SupportsRichComparisonT], *, key: None = ..., default: _T) -> SupportsRichComparisonT | _T: ... +def max(__iterable: Iterable[SupportsLessThanT], *, key: None = ..., default: _T) -> SupportsLessThanT | _T: ... @overload -def max(__iterable: Iterable[_T1], *, key: Callable[[_T1], SupportsRichComparison], default: _T2) -> _T1 | _T2: ... +def max(__iterable: Iterable[_T1], *, key: Callable[[_T1], SupportsLessThan], default: _T2) -> _T1 | _T2: ... @overload def min( - __arg1: SupportsRichComparisonT, __arg2: SupportsRichComparisonT, *_args: SupportsRichComparisonT, key: None = ... -) -> SupportsRichComparisonT: ... + __arg1: SupportsLessThanT, __arg2: SupportsLessThanT, *_args: SupportsLessThanT, key: None = ... +) -> SupportsLessThanT: ... @overload -def min(__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], SupportsRichComparison]) -> _T: ... +def min(__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], SupportsLessThan]) -> _T: ... @overload -def min(__iterable: Iterable[SupportsRichComparisonT], *, key: None = ...) -> SupportsRichComparisonT: ... +def min(__iterable: Iterable[SupportsLessThanT], *, key: None = ...) -> SupportsLessThanT: ... @overload -def min(__iterable: Iterable[_T], *, key: Callable[[_T], SupportsRichComparison]) -> _T: ... +def min(__iterable: Iterable[_T], *, key: Callable[[_T], SupportsLessThan]) -> _T: ... @overload -def min(__iterable: Iterable[SupportsRichComparisonT], *, key: None = ..., default: _T) -> SupportsRichComparisonT | _T: ... +def min(__iterable: Iterable[SupportsLessThanT], *, key: None = ..., default: _T) -> SupportsLessThanT | _T: ... @overload -def min(__iterable: Iterable[_T1], *, key: Callable[[_T1], SupportsRichComparison], default: _T2) -> _T1 | _T2: ... +def min(__iterable: Iterable[_T1], *, key: Callable[[_T1], SupportsLessThan], default: _T2) -> _T1 | _T2: ... @overload def next(__i: SupportsNext[_T]) -> _T: ... @overload @@ -1315,21 +1244,8 @@ def open( opener: _Opener | None = ..., ) -> IO[Any]: ... def ord(__c: str | bytes) -> int: ... - -class _SupportsWriteAndFlush(SupportsWrite[_T_contra], Protocol[_T_contra]): - def flush(self) -> None: ... - -@overload def print( - *values: object, - sep: str | None = ..., - end: str | None = ..., - file: SupportsWrite[str] | None = ..., - flush: Literal[False] = ..., -) -> None: ... -@overload -def print( - *values: object, sep: str | None = ..., end: str | None = ..., file: _SupportsWriteAndFlush[str] | None = ..., flush: bool + *values: object, sep: str | None = ..., end: str | None = ..., file: SupportsWrite[str] | None = ..., flush: bool = ... ) -> None: ... _E = TypeVar("_E", contravariant=True) @@ -1338,78 +1254,34 @@ _M = TypeVar("_M", contravariant=True) class _SupportsPow2(Protocol[_E, _T_co]): def __pow__(self, __other: _E) -> _T_co: ... -class _SupportsPow3NoneOnly(Protocol[_E, _T_co]): - def __pow__(self, __other: _E, __modulo: None = ...) -> _T_co: ... - class _SupportsPow3(Protocol[_E, _M, _T_co]): def __pow__(self, __other: _E, __modulo: _M) -> _T_co: ... -_SupportsSomeKindOfPow = Union[_SupportsPow2[Any, Any], _SupportsPow3NoneOnly[Any, Any], _SupportsPow3[Any, Any, Any]] - if sys.version_info >= (3, 8): @overload - def pow(base: int, exp: int, mod: Literal[0]) -> NoReturn: ... + def pow(base: int, exp: int, mod: None = ...) -> Any: ... # returns int or float depending on whether exp is non-negative @overload def pow(base: int, exp: int, mod: int) -> int: ... @overload - def pow(base: int, exp: Literal[0], mod: None = ...) -> Literal[1]: ... # type: ignore[misc] - @overload - def pow(base: int, exp: _PositiveInteger, mod: None = ...) -> int: ... # type: ignore[misc] - @overload - def pow(base: int, exp: _NegativeInteger, mod: None = ...) -> float: ... # type: ignore[misc] - # int base & positive-int exp -> int; int base & negative-int exp -> float - # return type must be Any as `int | float` causes too many false-positive errors + def pow(base: float, exp: float, mod: None = ...) -> float: ... @overload - def pow(base: int, exp: int, mod: None = ...) -> Any: ... + def pow(base: _SupportsPow2[_E, _T_co], exp: _E) -> _T_co: ... @overload - def pow(base: float, exp: int, mod: None = ...) -> float: ... - # float base & float exp could return float or complex - # return type must be Any (same as complex base, complex exp), - # as `float | complex` causes too many false-positive errors - @overload - def pow(base: float, exp: complex | _SupportsSomeKindOfPow, mod: None = ...) -> Any: ... - @overload - def pow(base: complex, exp: complex | _SupportsSomeKindOfPow, mod: None = ...) -> complex: ... - @overload - def pow(base: _SupportsPow2[_E, _T_co], exp: _E, mod: None = ...) -> _T_co: ... - @overload - def pow(base: _SupportsPow3NoneOnly[_E, _T_co], exp: _E, mod: None = ...) -> _T_co: ... - @overload - def pow(base: _SupportsPow3[_E, _M, _T_co], exp: _E, mod: _M = ...) -> _T_co: ... - @overload - def pow(base: _SupportsSomeKindOfPow, exp: float, mod: None = ...) -> Any: ... - @overload - def pow(base: _SupportsSomeKindOfPow, exp: complex, mod: None = ...) -> complex: ... + def pow(base: _SupportsPow3[_E, _M, _T_co], exp: _E, mod: _M) -> _T_co: ... else: @overload - def pow(__base: int, __exp: int, __mod: Literal[0]) -> NoReturn: ... + def pow( + __base: int, __exp: int, __mod: None = ... + ) -> Any: ... # returns int or float depending on whether exp is non-negative @overload def pow(__base: int, __exp: int, __mod: int) -> int: ... @overload - def pow(__base: int, __exp: Literal[0], __mod: None = ...) -> Literal[1]: ... # type: ignore[misc] - @overload - def pow(__base: int, __exp: _PositiveInteger, __mod: None = ...) -> int: ... # type: ignore[misc] - @overload - def pow(__base: int, __exp: _NegativeInteger, __mod: None = ...) -> float: ... # type: ignore[misc] - @overload - def pow(__base: int, __exp: int, __mod: None = ...) -> Any: ... - @overload - def pow(__base: float, __exp: int, __mod: None = ...) -> float: ... - @overload - def pow(__base: float, __exp: complex | _SupportsSomeKindOfPow, __mod: None = ...) -> Any: ... - @overload - def pow(__base: complex, __exp: complex | _SupportsSomeKindOfPow, __mod: None = ...) -> complex: ... - @overload - def pow(__base: _SupportsPow2[_E, _T_co], __exp: _E, __mod: None = ...) -> _T_co: ... + def pow(__base: float, __exp: float, __mod: None = ...) -> float: ... @overload - def pow(__base: _SupportsPow3NoneOnly[_E, _T_co], __exp: _E, __mod: None = ...) -> _T_co: ... + def pow(__base: _SupportsPow2[_E, _T_co], __exp: _E) -> _T_co: ... @overload - def pow(__base: _SupportsPow3[_E, _M, _T_co], __exp: _E, __mod: _M = ...) -> _T_co: ... - @overload - def pow(__base: _SupportsSomeKindOfPow, __exp: float, __mod: None = ...) -> Any: ... - @overload - def pow(__base: _SupportsSomeKindOfPow, __exp: complex, __mod: None = ...) -> complex: ... + def pow(__base: _SupportsPow3[_E, _M, _T_co], __exp: _E, __mod: _M) -> _T_co: ... def quit(code: object = ...) -> NoReturn: ... @@ -1418,7 +1290,7 @@ class reversed(Iterator[_T], Generic[_T]): def __init__(self, __sequence: Reversible[_T]) -> None: ... @overload def __init__(self, __sequence: SupportsLenAndGetItem[_T]) -> None: ... - def __iter__(self: Self) -> Self: ... + def __iter__(self) -> Iterator[_T]: ... def __next__(self) -> _T: ... def repr(__obj: object) -> str: ... @@ -1428,31 +1300,24 @@ def round(number: SupportsRound[Any]) -> int: ... def round(number: SupportsRound[Any], ndigits: None) -> int: ... @overload def round(number: SupportsRound[_T], ndigits: SupportsIndex) -> _T: ... - -# See https://github.com/python/typeshed/pull/6292#discussion_r748875189 -# for why arg 3 of `setattr` should be annotated with `Any` and not `object` def setattr(__obj: object, __name: str, __value: Any) -> None: ... @overload -def sorted( - __iterable: Iterable[SupportsRichComparisonT], *, key: None = ..., reverse: bool = ... -) -> list[SupportsRichComparisonT]: ... +def sorted(__iterable: Iterable[SupportsLessThanT], *, key: None = ..., reverse: bool = ...) -> list[SupportsLessThanT]: ... @overload -def sorted(__iterable: Iterable[_T], *, key: Callable[[_T], SupportsRichComparison], reverse: bool = ...) -> list[_T]: ... +def sorted(__iterable: Iterable[_T], *, key: Callable[[_T], SupportsLessThan], reverse: bool = ...) -> list[_T]: ... if sys.version_info >= (3, 8): @overload - def sum(__iterable: Iterable[_T]) -> _T | Literal[0]: ... + def sum(__iterable: Iterable[_T]) -> _T | int: ... @overload def sum(__iterable: Iterable[_T], start: _S) -> _T | _S: ... else: @overload - def sum(__iterable: Iterable[_T]) -> _T | Literal[0]: ... + def sum(__iterable: Iterable[_T]) -> _T | int: ... @overload def sum(__iterable: Iterable[_T], __start: _S) -> _T | _S: ... -# The argument to `vars()` has to have a `__dict__` attribute, so can't be annotated with `object` -# (A "SupportsDunderDict" protocol doesn't work) def vars(__object: Any = ...) -> dict[str, Any]: ... class zip(Iterator[_T_co], Generic[_T_co]): @@ -1497,7 +1362,7 @@ class zip(Iterator[_T_co], Generic[_T_co]): __iter6: Iterable[Any], *iterables: Iterable[Any], strict: bool = ..., - ) -> zip[tuple[Any, ...]]: ... + ) -> zip[Tuple[Any, ...]]: ... else: @overload def __new__(cls, __iter1: Iterable[_T1]) -> zip[tuple[_T1]]: ... @@ -1528,38 +1393,34 @@ class zip(Iterator[_T_co], Generic[_T_co]): __iter5: Iterable[Any], __iter6: Iterable[Any], *iterables: Iterable[Any], - ) -> zip[tuple[Any, ...]]: ... - - def __iter__(self: Self) -> Self: ... + ) -> zip[Tuple[Any, ...]]: ... + def __iter__(self) -> Iterator[_T_co]: ... def __next__(self) -> _T_co: ... -# Signature of `builtins.__import__` should be kept identical to `importlib.__import__` -# Return type of `__import__` should be kept the same as return type of `importlib.import_module` def __import__( name: str, - globals: Mapping[str, object] | None = ..., - locals: Mapping[str, object] | None = ..., + globals: Mapping[str, Any] | None = ..., + locals: Mapping[str, Any] | None = ..., fromlist: Sequence[str] = ..., level: int = ..., -) -> types.ModuleType: ... +) -> Any: ... # Actually the type of Ellipsis is <type 'ellipsis'>, but since it's # not exposed anywhere under that name, we make it private here. -@final class ellipsis: ... Ellipsis: ellipsis -class BaseException: - args: tuple[Any, ...] +class BaseException(object): + args: Tuple[Any, ...] __cause__: BaseException | None __context__: BaseException | None __suppress_context__: bool __traceback__: TracebackType | None - if sys.version_info >= (3, 11): - __note__: str | None def __init__(self, *args: object) -> None: ... - def with_traceback(self: Self, __tb: TracebackType | None) -> Self: ... + def __str__(self) -> str: ... + def __repr__(self) -> str: ... + def with_traceback(self: _TBE, tb: TracebackType | None) -> _TBE: ... class GeneratorExit(BaseException): ... class KeyboardInterrupt(BaseException): ... @@ -1678,14 +1539,7 @@ class UnicodeEncodeError(UnicodeError): reason: str def __init__(self, __encoding: str, __object: str, __start: int, __end: int, __reason: str) -> None: ... -class UnicodeTranslateError(UnicodeError): - encoding: None - object: str - start: int - end: int - reason: str - def __init__(self, __object: str, __start: int, __end: int, __reason: str) -> None: ... - +class UnicodeTranslateError(UnicodeError): ... class Warning(Exception): ... class UserWarning(Warning): ... class DeprecationWarning(Warning): ... @@ -1700,21 +1554,3 @@ class ResourceWarning(Warning): ... if sys.version_info >= (3, 10): class EncodingWarning(Warning): ... - -if sys.version_info >= (3, 11): - _SplitCondition = type[BaseException] | tuple[type[BaseException], ...] | Callable[[BaseException], bool] - - class BaseExceptionGroup(BaseException): - def __new__(cls: type[Self], __message: str, __exceptions: Sequence[BaseException]) -> Self: ... - @property - def message(self) -> str: ... - @property - def exceptions(self) -> tuple[BaseException, ...]: ... - def subgroup(self: Self, __condition: _SplitCondition) -> Self | None: ... - def split(self: Self, __condition: _SplitCondition) -> tuple[Self | None, Self | None]: ... - def derive(self: Self, __excs: Sequence[BaseException]) -> Self: ... - - class ExceptionGroup(BaseExceptionGroup, Exception): - def __new__(cls: type[Self], __message: str, __exceptions: Sequence[Exception]) -> Self: ... - @property - def exceptions(self) -> tuple[Exception, ...]: ... diff --git a/python/ideCoreSrc/idea/PyCharmCoreApplicationInfo.xml b/python/ideCoreSrc/idea/PyCharmCoreApplicationInfo.xml index f7b7c54ce7a7..0fe5186c977d 100644 --- a/python/ideCoreSrc/idea/PyCharmCoreApplicationInfo.xml +++ b/python/ideCoreSrc/idea/PyCharmCoreApplicationInfo.xml @@ -2,9 +2,9 @@ <component xmlns="http://jetbrains.org/intellij/schema/application-info" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jetbrains.org/intellij/schema/application-info http://jetbrains.org/intellij/schema/ApplicationInfo.xsd"> - <version major="2022" minor="1" eap="true"/> + <version major="2022" minor="1" eap="false" suffix="RC"/> <company name="JetBrains s.r.o." url="https://www.jetbrains.com" copyrightStart="2010"/> - <build number="PC-__BUILD__" date="__BUILD_DATE__"/> + <build number="PC-__BUILD__" date="__BUILD_DATE__" majorReleaseDate="20220413"/> <logo url="/pycharm_core_logo.png" textcolor="ffffff" progressColor="ffffff" progressY="396" progressHeight="4"/> <about url="/pycharm_core_about.png" logoX="540" logoY="300" logoW="100" logoH="100" foreground="ffffff" copyrightForeground="ffffff" linkColor="589bf2"/> diff --git a/python/pydevSrc/com/jetbrains/python/debugger/PyTypeHandler.java b/python/pydevSrc/com/jetbrains/python/debugger/PyTypeHandler.java index c2ee37cae278..f438eee8b2f8 100644 --- a/python/pydevSrc/com/jetbrains/python/debugger/PyTypeHandler.java +++ b/python/pydevSrc/com/jetbrains/python/debugger/PyTypeHandler.java @@ -2,9 +2,11 @@ package com.jetbrains.python.debugger; import com.intellij.openapi.util.text.StringUtil; +import org.jetbrains.annotations.NotNull; import java.util.HashMap; import java.util.Map; +import java.util.Set; // todo: extensive types support @@ -21,15 +23,45 @@ public final class PyTypeHandler { } }; + /** + * Like in python3 interpreter: + * HEX | DEX | Symbol + * \x09 | 9 | \t + * \x0a | 10 | \n + * \x0d | 13 | \r + * Another chars from (0, 32) and (127, 160) is non-printable characters, and we should print their code + * */ + private static boolean isNonPrintable(char c) { + return c < 32 && c != 9 && c != 10 && c != 13 || c > 127 && c < 160; + } + + private static @NotNull String charToHEX(char c) { + return String.format("%02x", (int) c); + } + + private static @NotNull String processNonPrintableChars(@NotNull String string) { + StringBuilder result = new StringBuilder(); + for (char c : string.toCharArray()) { + if (isNonPrintable(c)) { + result.append("\\x"); + result.append(charToHEX(c)); + } else { + result.append(c); + } + } + return result.toString(); + } + private static final Formatter STR_FORMATTER = new Formatter() { @Override public String format(final String value) { String escapedString = StringUtil.replace(value, "\\", "\\\\"); + if (value.contains("'")) { - return "\"" + escapedString + "\""; + return "\"" + processNonPrintableChars(escapedString) + "\""; } else { - return "'" + escapedString + '\''; + return "'" + processNonPrintableChars(escapedString) + '\''; } } }; diff --git a/python/python-features-trainer/resources/messages/PythonLessonsBundle.properties b/python/python-features-trainer/resources/messages/PythonLessonsBundle.properties index ff20fbf8e0c9..f2557f1a713f 100644 --- a/python/python-features-trainer/resources/messages/PythonLessonsBundle.properties +++ b/python/python-features-trainer/resources/messages/PythonLessonsBundle.properties @@ -9,7 +9,7 @@ python.onboarding.module.description=A brief overview of the main features in {0 python.onboarding.lesson.name=Get Acquainted with PyCharm python.onboarding.change.ui.settings=For this lesson, PyCharm changes some UI settings to the default state. \ Your preferences will be restored when you complete or exit the lesson. -python.onboarding.project.view.description=The <strong>Project view</strong> is one of the main tool windows. It contains the project directory, SDK-specific external libraries, and scratch files. Use the striped button to open it, and you will see a simple demo project. You can also open it by pressing {0}. +python.onboarding.project.view.description=The <strong>Project view</strong> is one of the main tool windows. It contains the project directory, SDK-specific external libraries, and scratch files. Click the striped button to preview the demo project content. You can also open it by pressing {0}. python.onboarding.balloon.project.view=Click to open the <strong>Project view</strong> python.onboarding.balloon.project.directory=Expand the project directory to view the project files python.onboarding.balloon.open.file=Double-click to open {0} @@ -26,14 +26,14 @@ python.onboarding.temporary.configuration.description=<ide/> has just created a python.onboarding.balloon.click.here=Click here to set a breakpoint python.onboarding.toggle.breakpoint.1=You may notice that instead of the expected value of {0}, the {1} method returns {2}. \ Let''s stop at the return statement to debug the problematic code. -python.onboarding.toggle.breakpoint.2=Click the gutter in the highlighted area to set a breakpoint. +python.onboarding.toggle.breakpoint.2=Click the gutter within the highlighted area to set a breakpoint. python.onboarding.balloon.start.debugging=Click the icon to start debugging python.onboarding.start.debugging=Click the {0} icon to start the debugging process. python.onboarding.balloon.about.debug.panel=The {0} tool window provides {1,choice,0#a toolbar|1#toolbars} with various debugging actions. \ You can take the {2} lesson later to try them. python.onboarding.balloon.stop.debugging=Click the icon to stop debugging python.onboarding.stop.debugging=Let''s stop debugging. Click the {0} icon. -python.onboarding.type.division=Once you discovered the problem in the code, let''s fix it. Divide the resulting sum by the length of the values. \ +python.onboarding.type.division=Once you have discovered the problem in the code, let''s fix it. Divide the resulting sum by the length of the values. \ The lesson script inserts {0} already. python.onboarding.invoke.completion=Now let''s start typing {0} inside the parentheses {1}. \ <ide/> shows completion options automatically as you type. Alternatively, you can also press {2} and continue typing to reduce the list. @@ -45,7 +45,7 @@ python.onboarding.select.fix=Apply the first item: {0}. With this fix, your code python.onboarding.invoke.intention.for.code=Intentions also save your time and make coding easier. Let''s use an intention to quickly add a return type for {0}. Press {1}. python.onboarding.apply.intention=Select {0} and press {1}. python.onboarding.complete.template=Type {0} and then press {1}. -python.onboarding.invoke.search.everywhere.1=While working in <ide/> you might want to search for files in your project, symbols, classes, or even IDE actions. In this lesson, let''s search for the {0} action to make the {1} string low-case. +python.onboarding.invoke.search.everywhere.1=While working in <ide/>, you might want to search for files in your project, symbols, classes, or even IDE actions. In this lesson, let''s search for the {0} action to make the {1} string low-case. python.onboarding.invoke.search.everywhere.2=Press {0} two times to open the {1} dialog. python.onboarding.search.everywhere.description=As you can see, the selected text, {0}, has been automatically copied into the input string. Let''s type {1} instead of {0}. python.onboarding.apply.action=Select the {0} action and press {1}. diff --git a/python/python-psi-impl/src/com/jetbrains/python/inspections/PyTypedDictInspection.kt b/python/python-psi-impl/src/com/jetbrains/python/inspections/PyTypedDictInspection.kt index a1f2cddd90ee..a1f6853ecbde 100644 --- a/python/python-psi-impl/src/com/jetbrains/python/inspections/PyTypedDictInspection.kt +++ b/python/python-psi-impl/src/com/jetbrains/python/inspections/PyTypedDictInspection.kt @@ -277,7 +277,9 @@ class PyTypedDictInspection : PyInspection() { private fun checkValueIsAType(expression: PyExpression?, strType: String?) { if (expression !is PyReferenceExpression && expression !is PySubscriptionExpression && - expression !is PyNoneLiteralExpression || strType == null) { + expression !is PyNoneLiteralExpression && + expression !is PyBinaryExpression && + expression !is PyStringLiteralExpression || strType == null) { registerProblem(expression, PyPsiBundle.message("INSP.typeddict.value.must.be.type"), ProblemHighlightType.WEAK_WARNING) return } diff --git a/python/python-psi-impl/src/com/jetbrains/python/psi/impl/PyEvaluator.java b/python/python-psi-impl/src/com/jetbrains/python/psi/impl/PyEvaluator.java index 0b617ec3e673..b4f4c0d5726f 100644 --- a/python/python-psi-impl/src/com/jetbrains/python/psi/impl/PyEvaluator.java +++ b/python/python-psi-impl/src/com/jetbrains/python/psi/impl/PyEvaluator.java @@ -137,7 +137,7 @@ public class PyEvaluator { } @Nullable - private Object evaluateBinary(@NotNull PyBinaryExpression expression) { + protected Object evaluateBinary(@NotNull PyBinaryExpression expression) { final PyElementType op = expression.getOperator(); final Object lhs = evaluate(expression.getLeftExpression()); final Object rhs = evaluate(expression.getRightExpression()); diff --git a/python/python-psi-impl/src/com/jetbrains/python/psi/impl/PyPathEvaluator.java b/python/python-psi-impl/src/com/jetbrains/python/psi/impl/PyPathEvaluator.java index eaedc38770bc..ad292a8d5746 100644 --- a/python/python-psi-impl/src/com/jetbrains/python/psi/impl/PyPathEvaluator.java +++ b/python/python-psi-impl/src/com/jetbrains/python/psi/impl/PyPathEvaluator.java @@ -18,13 +18,12 @@ package com.jetbrains.python.psi.impl; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.VirtualFile; import com.jetbrains.python.PyNames; -import com.jetbrains.python.psi.PyCallExpression; -import com.jetbrains.python.psi.PyExpression; -import com.jetbrains.python.psi.PyReferenceExpression; +import com.jetbrains.python.PyTokenTypes; +import com.jetbrains.python.psi.*; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.io.File; +import java.nio.file.Paths; public class PyPathEvaluator extends PyEvaluator { @@ -49,9 +48,18 @@ public class PyPathEvaluator extends PyEvaluator { @Nullable protected Object evaluateCall(@NotNull PyCallExpression expression) { final PyExpression[] args = expression.getArguments(); + if (expression.isCalleeText("resolve")) { + PyReferenceExpression callee = (PyReferenceExpression)expression.getCallee(); + if (callee != null && callee.getQualifier() instanceof PyCallExpression) { + return evaluate(callee.getQualifier()); + } + } + if (expression.isCalleeText("Path") && args.length >= 1) { + return evaluate(args[0]); + } if (expression.isCalleeText(PyNames.DIRNAME) && args.length == 1) { Object argValue = evaluate(args[0]); - return argValue instanceof String ? new File((String) argValue).getParent() : null; + return argValue instanceof String ? Paths.get((String) argValue).getParent().toFile().getPath() : null; } else if (expression.isCalleeText(PyNames.JOIN) && args.length >= 1) { return evaluatePathInJoin(args, args.length); @@ -70,8 +78,8 @@ public class PyPathEvaluator extends PyEvaluator { return argValue; } else { - String path = new File(new File(myContainingFilePath).getParent(), (String)argValue).getPath(); - return path.replace("\\", "/"); + String path = Paths.get(myContainingFilePath).resolveSibling((String)argValue).toFile().getPath(); + return FileUtil.toSystemIndependentName(path); } } return super.evaluateCall(expression); @@ -87,7 +95,13 @@ public class PyPathEvaluator extends PyEvaluator { return "."; } if (!expression.isQualified() && PyNames.FILE.equals(expression.getReferencedName())) { - return myContainingFilePath; + return FileUtil.toSystemIndependentName(myContainingFilePath); + } + if ("parent".equals(expression.getName()) && expression.isQualified()) { + Object qualifier = evaluate(expression.getQualifier()); + if (qualifier instanceof String) { + return Paths.get((String)qualifier).getParent().toFile().getPath(); + } } return super.evaluateReference(expression); } @@ -103,9 +117,22 @@ public class PyPathEvaluator extends PyEvaluator { result = (String)arg; } else { - result = new File(result, (String)arg).getPath().replace("\\", "/"); + result = FileUtil.toSystemIndependentName(Paths.get(result, (String)arg).toFile().getPath()); } } return result; } + + @Override + protected @Nullable Object evaluateBinary(@NotNull PyBinaryExpression expression) { + final PyElementType operator = expression.getOperator(); + if (operator == PyTokenTypes.DIV) { + final Object lhs = evaluate(expression.getLeftExpression()); + final Object rhs = evaluate(expression.getRightExpression()); + if (lhs instanceof String && rhs instanceof String) { + return FileUtil.toSystemIndependentName(Paths.get((String)lhs, (String)rhs).toFile().getPath()); + } + } + return super.evaluateBinary(expression); + } } diff --git a/python/resources/pycharm_core_logo.png b/python/resources/pycharm_core_logo.png Binary files differindex 3825b0b5c4a4..e504f3aa2988 100644 --- a/python/resources/pycharm_core_logo.png +++ b/python/resources/pycharm_core_logo.png diff --git a/python/resources/pycharm_core_logo@2x.png b/python/resources/pycharm_core_logo@2x.png Binary files differindex ba0e0b1b5c8d..9b8d88aeed43 100644 --- a/python/resources/pycharm_core_logo@2x.png +++ b/python/resources/pycharm_core_logo@2x.png diff --git a/python/src/META-INF/python-core-common.xml b/python/src/META-INF/python-core-common.xml index be4a074516f9..bd9b3d2c1e2a 100644 --- a/python/src/META-INF/python-core-common.xml +++ b/python/src/META-INF/python-core-common.xml @@ -408,7 +408,7 @@ <postStartupActivity implementation="com.jetbrains.python.sdk.poetry.PoetryConfigLoader" order="last"/> <!-- Targets API --> - <registryKey key="python.use.targets.api" defaultValue="true" description="Switches Python support to Targets API." /> + <registryKey key="python.use.targets.api" defaultValue="false" description="Switches Python support to Targets API." /> <notificationGroup id="Python Debugger" displayType="TOOL_WINDOW" toolWindowId="Debug" bundle="messages.PyBundle" key="debug.notification.group"/> <notificationGroup id="Python SDK Updater" displayType="BALLOON" bundle="messages.PyBundle" key="python.sdk.updater.notifications.group.title"/> <notificationGroup id="Sync Python requirements" displayType="BALLOON" bundle="messages.PyBundle" key="python.requirements.balloon"/> diff --git a/python/src/com/jetbrains/python/console/PydevConsoleCommunication.java b/python/src/com/jetbrains/python/console/PydevConsoleCommunication.java index ce3a00a34465..106267a45b81 100644 --- a/python/src/com/jetbrains/python/console/PydevConsoleCommunication.java +++ b/python/src/com/jetbrains/python/console/PydevConsoleCommunication.java @@ -801,7 +801,7 @@ public abstract class PydevConsoleCommunication extends AbstractConsoleCommunica final String renderersMessage = SetUserTypeRenderersCommand.createMessage(renderers); return getPythonConsoleBackendClient().setUserTypeRenderers(renderersMessage); }, - true, + false, createRuntimeMessage(PyBundle.message("console.setting.user.type.renderers")), "Error in setUserTypeRenderersSettings():" ); diff --git a/python/src/com/jetbrains/python/console/PydevConsoleRunnerImpl.java b/python/src/com/jetbrains/python/console/PydevConsoleRunnerImpl.java index 2307bdb466c8..63d47a4c7e0d 100644 --- a/python/src/com/jetbrains/python/console/PydevConsoleRunnerImpl.java +++ b/python/src/com/jetbrains/python/console/PydevConsoleRunnerImpl.java @@ -720,6 +720,9 @@ public class PydevConsoleRunnerImpl implements PydevConsoleRunner { @Override public void processTerminated(@NotNull ProcessEvent event) { consoleView.setEditable(false); + // PY-53068: When we send to python side command `exit` we don't get notifyFinished, + // so we should clear Console Command Queue + consoleView.restoreQueueWindow(true); } }); diff --git a/python/src/com/jetbrains/python/console/PythonConsoleView.java b/python/src/com/jetbrains/python/console/PythonConsoleView.java index bf8ce89e1894..1378bff616e7 100644 --- a/python/src/com/jetbrains/python/console/PythonConsoleView.java +++ b/python/src/com/jetbrains/python/console/PythonConsoleView.java @@ -560,7 +560,8 @@ public class PythonConsoleView extends LanguageConsoleImpl implements Observable ApplicationManager.getApplication().invokeLater(() -> Disposer.dispose(myCommandQueue)); } if (removeCommand) { - myCommandQueuePanel.removeAllCommands(); + ApplicationManager.getApplication().getService(CommandQueueForPythonConsoleService.class) + .removeCommand(myRunner.getPydevConsoleCommunication(), true); } } diff --git a/python/testData/hierarchy/call/Static/Super/Super_callee_verification.xml b/python/testData/hierarchy/call/Static/Super/Super_callee_verification.xml index aa1d1f9d0ad1..2bcb3c6ea24f 100644 --- a/python/testData/hierarchy/call/Static/Super/Super_callee_verification.xml +++ b/python/testData/hierarchy/call/Static/Super/Super_callee_verification.xml @@ -1,6 +1,6 @@ <node text="SubclassTwo.a_method(self) (SubclassTwo in hierarchy.call.Static.Super.main)" base="true"> - <node text="super.__init__(self, __t, __obj) (super in builtins stub)"/> - <node text="super.__init__(self, __t) (super in builtins stub)"/> + <node text="super.__init__(self, t, obj) (super in builtins stub)"/> + <node text="super.__init__(self, t) (super in builtins stub)"/> <node text="super.__init__(self) (super in builtins stub)"/> <node text="SomeBaseClass.a_method(self) (SomeBaseClass in hierarchy.call.Static.Super.main)"/> </node>
\ No newline at end of file diff --git a/python/testData/inspections/PyTypeCheckerInspection/ListLiteralPassedToIter.py b/python/testData/inspections/PyTypeCheckerInspection/ListLiteralPassedToIter.py new file mode 100644 index 000000000000..33f9aba2b82d --- /dev/null +++ b/python/testData/inspections/PyTypeCheckerInspection/ListLiteralPassedToIter.py @@ -0,0 +1 @@ +iter([1, 2, 3]) diff --git a/python/testSrc/com/jetbrains/python/Py3TypeTest.java b/python/testSrc/com/jetbrains/python/Py3TypeTest.java index a4d874168b31..2ccccce7643f 100644 --- a/python/testSrc/com/jetbrains/python/Py3TypeTest.java +++ b/python/testSrc/com/jetbrains/python/Py3TypeTest.java @@ -467,7 +467,7 @@ public class Py3TypeTest extends PyTestCase { // PY-21692 public void testSumResult() { - doTest("int | Literal[0]", + doTest("int", "expr = sum([1, 2, 3])"); } @@ -1393,6 +1393,14 @@ public class Py3TypeTest extends PyTestCase { assertExpressionType("dict[str, Any]", dict); } + // PY-52656 + public void testDictValuesType() { + doTest("int", + "d = {'foo': 42}\n" + + "for expr in d.values():\n" + + " pass"); + } + private void doTest(final String expectedType, final String text) { myFixture.configureByText(PythonFileType.INSTANCE, text); final PyExpression expr = myFixture.findElementByText("expr", PyExpression.class); diff --git a/python/testSrc/com/jetbrains/python/PyLineBreakpointTypeTest.kt b/python/testSrc/com/jetbrains/python/PyLineBreakpointTypeTest.kt index 5d879e85a2f8..e04e476b6080 100644 --- a/python/testSrc/com/jetbrains/python/PyLineBreakpointTypeTest.kt +++ b/python/testSrc/com/jetbrains/python/PyLineBreakpointTypeTest.kt @@ -39,7 +39,7 @@ class PyLineBreakpointTypeTest : PyTestCase() { // PY-16932 fun testPutAtPythonStub() { val pythonFile = PyTypeShed.directory!!.findFileByRelativePath("stdlib/@python2/__builtin__.pyi") - val line = 46 + val line = 52 val document = FileDocumentManager.getInstance().getDocument(pythonFile!!) val range = TextRange.create(document!!.getLineStartOffset(line), document.getLineEndOffset(line)) diff --git a/python/testSrc/com/jetbrains/python/PyPathEvaluatorTest.java b/python/testSrc/com/jetbrains/python/PyPathEvaluatorTest.java index 592b820355cd..9f408fa3110f 100644 --- a/python/testSrc/com/jetbrains/python/PyPathEvaluatorTest.java +++ b/python/testSrc/com/jetbrains/python/PyPathEvaluatorTest.java @@ -50,6 +50,26 @@ public class PyPathEvaluatorTest extends PyTestCase { assertEquals("/foo/subfolder/../bar.py", doEvaluate("os.path.abspath(os.path.join(os.path.join('/foo/subfolder', os.path.pardir, 'bar.py')))", "/foo/bar.py")); } + // PY-13911 + public void testPathlibRoot() { + assertEquals("/foo/bar/baz.py", doEvaluate("Path(__file__)", "/foo/bar/baz.py")); + } + + // PY-13911 + public void testPathlibParent() { + assertEquals("/foo", doEvaluate("Path(__file__).resolve().parent.parent", "/foo/bar/baz.py")); + } + + // PY-13911 + public void testPathlibAbsolutePath() { + assertEquals("/foo/bar", doEvaluate("Path('/foo/bar')", "/irrelevant")); + } + + // PY-13911 + public void testPathlibJoin() { + assertEquals("/foo/bar/baz.py", doEvaluate("Path(__file__).resolve() / 'bar' / 'baz.py'", "/foo")); + } + private String doEvaluate(final String text, final String file) { final PyElementGenerator generator = PyElementGenerator.getInstance(myFixture.getProject()); final PyExpression expression = generator.createExpressionFromText(LanguageLevel.getLatest(), text); diff --git a/python/testSrc/com/jetbrains/python/PyStructureViewTest.java b/python/testSrc/com/jetbrains/python/PyStructureViewTest.java index 95bcfe2449e4..836c28bcd3f0 100644 --- a/python/testSrc/com/jetbrains/python/PyStructureViewTest.java +++ b/python/testSrc/com/jetbrains/python/PyStructureViewTest.java @@ -72,23 +72,24 @@ public class PyStructureViewTest extends PyTestCase { " __class__(self)\n" + " __init__(self)\n" + " __new__(cls)\n" + - " __setattr__(self, __name, __value)\n" + - " __eq__(self, __o)\n" + - " __ne__(self, __o)\n" + + " __setattr__(self, name, value)\n" + + " __eq__(self, o)\n" + + " __ne__(self, o)\n" + " __repr__(self)\n" + " __hash__(self)\n" + - " __format__(self, __format_spec)\n" + - " __getattribute__(self, __name)\n" + - " __delattr__(self, __name)\n" + + " __format__(self, format_spec)\n" + + " __getattribute__(self, name)\n" + + " __delattr__(self, name)\n" + " __sizeof__(self)\n" + " __reduce__(self)\n" + - " __reduce_ex__(self, __protocol)\n" + + " __reduce_ex__(self, protocol)\n" + " __dir__(self)\n" + " __init_subclass__(cls)\n" + " __annotations__\n" + " __dict__\n" + " __doc__\n" + - " __module__", + " __module__\n" + + " __slots__\n", true); } @@ -116,24 +117,25 @@ public class PyStructureViewTest extends PyTestCase { " __class__(self)\n" + " __init__(self)\n" + " __new__(cls)\n" + - " __setattr__(self, __name, __value)\n" + - " __eq__(self, __o)\n" + - " __ne__(self, __o)\n" + + " __setattr__(self, name, value)\n" + + " __eq__(self, o)\n" + + " __ne__(self, o)\n" + " __str__(self)\n" + " __repr__(self)\n" + " __hash__(self)\n" + - " __format__(self, __format_spec)\n" + - " __getattribute__(self, __name)\n" + - " __delattr__(self, __name)\n" + + " __format__(self, format_spec)\n" + + " __getattribute__(self, name)\n" + + " __delattr__(self, name)\n" + " __sizeof__(self)\n" + " __reduce__(self)\n" + - " __reduce_ex__(self, __protocol)\n" + + " __reduce_ex__(self, protocol)\n" + " __dir__(self)\n" + " __init_subclass__(cls)\n" + " __annotations__\n" + " __dict__\n" + " __doc__\n" + - " __module__", + " __module__\n" + + " __slots__\n", true); } diff --git a/python/testSrc/com/jetbrains/python/inspections/Py3TypeCheckerInspectionTest.java b/python/testSrc/com/jetbrains/python/inspections/Py3TypeCheckerInspectionTest.java index 9265727b928a..2044e3e490a8 100644 --- a/python/testSrc/com/jetbrains/python/inspections/Py3TypeCheckerInspectionTest.java +++ b/python/testSrc/com/jetbrains/python/inspections/Py3TypeCheckerInspectionTest.java @@ -767,4 +767,9 @@ public class Py3TypeCheckerInspectionTest extends PyInspectionTestCase { public void testTypedDictInReturnType() { doTest(); } + + // PY-52648 + public void testListLiteralPassedToIter() { + doTest(); + } } diff --git a/python/testSrc/com/jetbrains/python/inspections/PyTypedDictInspectionTest.java b/python/testSrc/com/jetbrains/python/inspections/PyTypedDictInspectionTest.java index 4cdc37489451..c89415ac2070 100644 --- a/python/testSrc/com/jetbrains/python/inspections/PyTypedDictInspectionTest.java +++ b/python/testSrc/com/jetbrains/python/inspections/PyTypedDictInspectionTest.java @@ -289,6 +289,22 @@ public class PyTypedDictInspectionTest extends PyInspectionTestCase { " {'a': 1}.get(param)"); } + // PY-43689 + public void testNoWarningOnTypesUsingForwardReferences() { + doTestByText("from typing import TypedDict\n" + + "class MyDict(TypedDict):\n" + + " sub: 'SubDict'\n" + + "class SubDict(TypedDict):\n" + + " foo: str"); + } + + // PY-43689 + public void testNoWarningOnUnionTypesUsingBinaryOrOperator() { + doTestByText("from typing import TypedDict\n" + + "class A(TypedDict):\n" + + " a: int | str"); + } + @NotNull @Override protected Class<? extends PyInspection> getInspectionClass() { diff --git a/tools/intellij.ide.starter/src/com/intellij/ide/starter/utils/retry.kt b/tools/intellij.ide.starter/src/com/intellij/ide/starter/utils/retry.kt index f9965759c9b0..5c28963f5818 100644 --- a/tools/intellij.ide.starter/src/com/intellij/ide/starter/utils/retry.kt +++ b/tools/intellij.ide.starter/src/com/intellij/ide/starter/utils/retry.kt @@ -13,11 +13,11 @@ suspend fun <T> withRetryAsync(retries: Long = 3, messageOnFailure: String = "", }.retry( retries = retries, predicate = { - it.printStackTrace() - if (messageOnFailure.isNotBlank()) logError(messageOnFailure) + it.printStackTrace() + logError("Retrying in 10 sec ...") delay(Duration.seconds(10)) true |