-
Notifications
You must be signed in to change notification settings - Fork 54
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
Generator should bind types with unresolvable interfaces #371
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: