-
Notifications
You must be signed in to change notification settings - Fork 58
Generator should bind types with unresolvable interfaces #371
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Comments
A.jar has public RecyclerView ||| B.jar has private ScrollingView
1.,3.,4. theoretically would work for me if ACW won't cry for the As a user, If I don't provide everything for RecyclerView that means I don't want that type to be generated/binded in the first place, but when I provide everything (references + transforms) then I expect the type to be binded. |
This isn't a question around The question is solely around Your argument is that no, it should not be bound:
I disagree, because if you were using the
I don't know what a "dummy stripped RecyclerView" would be, but I'm imagine I'd still disagree: we should bind it as well as possible, because that would give an experience closer to Java.
That is entirely contrary to how our current binding semantics work. If you have a Binding project "A" which binds
I don't understand what you mean by this. If I try to guess, and:
Then ACWs may not work. They will not work if public class MyView : Java.Lang.Object, IScrollingView {
// ...
} The above C# class would result in the Java Callable Wrapper: public class MyView extends java.lang.Object implements package.of.ScrollingView {
// ...
} which will fail, because As such, the only way that we can sanely bind <remove-node path="//class[@name='RecyclerView']/implements[@name='package.of. view.ScrollingView']" /> Then we can bind Why should this manual transformation be required? |
😄 yeah I know
It's not in every scenario right? (I got 1 binding binding project where the types 100% resolvable, yet types are going missing during binding without
Wait, would it work right now or isn't the RecyclerView become unbindable? |
I would like to see this project, as I do not currently understand how or why that would happen.
That would work now, and would allow |
@jonpryor I was planning to, as soon as I get to work with XA again. |
One "corner case" which just came to mind: we cannot bind Consider: interface Fooable {
void foo();
}
public abstract class X implements Fooable {
} When this is compiled, both |
Just popped to my mind. I guess I realized where/what was my problem. The structure look like this (haven't created repro yet to test): Binding Project A binds A.jar. Binding Project B binds B.jar. A ref B. @Deprecated
public interface Foo{ // B.jar
}
public interface Bar extends Foo { // A.jar
} Binding Project B has transform: Is Edit: and I guess the way to do it would be the same as earlier: |
Context: Issue #358
If we have a
//class
whichimplements
unresolvable//interface
types, can we still bind that class?For example, consider
android.support.v7.widget.RecyclerView
, which implements the interfaceandroid.support.v4.view.ScrollingView
, which is either a package-private type or otherwise can't be resolved (different.jar
file?).Why can't
generator
bind this type?Why shouldn't
generator
bind this type?We should determine if this is actually a supportable/bindable scenario, and then improve
generator
so that such types are actually bound.The text was updated successfully, but these errors were encountered: