-
Notifications
You must be signed in to change notification settings - Fork 62
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow duplicate method names in Java #212
Labels
subsystem: crucible-jvm
Issues related to Java verification with crucible-jvm
usability
An issue that impedes efficient understanding and use
Milestone
Comments
Consider using JVM type signatures, as specified here: http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/types.html#wp276 |
We've been considering using exactly that approach. Thanks for creating a ticket for it! |
brianhuffman
added
the
subsystem: crucible-jvm
Issues related to Java verification with crucible-jvm
label
May 15, 2020
brianhuffman
pushed a commit
that referenced
this issue
Oct 31, 2020
Fixes #212. Previously `crucible_jvm_verify` and related commands would fail to verify methods whose names were not unique. However, JVM allows multiple methods to coexist in the same class as long as their types are distinct. This change now allows users to optionally add a type descriptor to a method name to specify a particular method with a given name. For example "foo(L)V" indicates method "foo" with a long argument and void result type.
brianhuffman
pushed a commit
that referenced
this issue
Oct 31, 2020
Fixes #212. Previously `crucible_jvm_verify` and related commands would fail to verify methods whose names were not unique. However, JVM allows multiple methods to coexist in the same class as long as their types are distinct. This change now allows users to optionally add a type descriptor to a method name to specify a particular method with a given name. For example "foo(L)V" indicates method "foo" with a long argument and void result type.
brianhuffman
pushed a commit
that referenced
this issue
Oct 31, 2020
These are referred to by the name "<init>", which is what they are called in the JVM class file. Like other methods, they can be used with type descriptors to disambiguate when constructors are defined at multiple types.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
subsystem: crucible-jvm
Issues related to Java verification with crucible-jvm
usability
An issue that impedes efficient understanding and use
Currently, when attempting to load a method from a Java class, the name of that method must be unique. This is a frustrating limitation.
The text was updated successfully, but these errors were encountered: