Skip to content
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

metamodel bug related to default constructors #757

Closed
gavinking opened this issue Sep 18, 2015 · 2 comments
Closed

metamodel bug related to default constructors #757

gavinking opened this issue Sep 18, 2015 · 2 comments
Assignees
Milestone

Comments

@gavinking
Copy link
Member

I get:

Exception in thread "main" com.redhat.ceylon.compiler.java.runtime.metamodel.ModelError: Unsupported declaration type: function X.y() => X.y
    at com.redhat.ceylon.compiler.java.runtime.metamodel.Metamodel.newModelError(Metamodel.java:1794)
    at com.redhat.ceylon.compiler.java.runtime.metamodel.Metamodel.newModelError(Metamodel.java:1789)
    at com.redhat.ceylon.compiler.java.runtime.metamodel.Metamodel.getJavaMethod(Metamodel.java:809)
    at com.redhat.ceylon.compiler.java.runtime.metamodel.FreeFunction.$getJavaAnnotations$(FreeFunction.java:305)
    at com.redhat.ceylon.compiler.java.runtime.metamodel.Metamodel.annotations(Metamodel.java:1103)
    at com.redhat.ceylon.compiler.java.runtime.metamodel.Metamodel.annotations(Metamodel.java:1097)
    at com.redhat.ceylon.compiler.java.runtime.metamodel.Predicates$AnnotatedWith.accept(Predicates.java:362)
    at com.redhat.ceylon.compiler.java.runtime.metamodel.Predicates$AnnotatedWith.accept(Predicates.java:346)
    at com.redhat.ceylon.compiler.java.runtime.metamodel.Predicates$And.accept(Predicates.java:118)
    at com.redhat.ceylon.compiler.java.runtime.metamodel.FreeClassOrInterface.filteredMembers(FreeClassOrInterface.java:215)
    at com.redhat.ceylon.compiler.java.runtime.metamodel.FreeClassOrInterface.annotatedMemberDeclarations(FreeClassOrInterface.java:186)

With this class:

class X {
    shared new y() {}
    shared new z(String z) {}
}
@gavinking gavinking added this to the 1.2 milestone Sep 18, 2015
@gavinking
Copy link
Member Author

Also this:

Exception in thread "main" com.redhat.ceylon.compiler.java.runtime.metamodel.ModelError: Unsupported declaration type: function Array<T>.ofSize(Integer int, Anything something, T str) => Array<T>.ofSize
    at com.redhat.ceylon.compiler.java.runtime.metamodel.Metamodel.newModelError(Metamodel.java:1794)
    at com.redhat.ceylon.compiler.java.runtime.metamodel.Metamodel.newModelError(Metamodel.java:1789)
    at com.redhat.ceylon.compiler.java.runtime.metamodel.Metamodel.getJavaMethod(Metamodel.java:809)
    at com.redhat.ceylon.compiler.java.runtime.metamodel.FreeFunction.$getJavaAnnotations$(FreeFunction.java:305)
    at com.redhat.ceylon.compiler.java.runtime.metamodel.Metamodel.annotations(Metamodel.java:1103)
    at com.redhat.ceylon.compiler.java.runtime.metamodel.Metamodel.annotations(Metamodel.java:1097)
    at com.redhat.ceylon.compiler.java.runtime.metamodel.Predicates$AnnotatedWith.accept(Predicates.java:362)
    at com.redhat.ceylon.compiler.java.runtime.metamodel.Predicates$AnnotatedWith.accept(Predicates.java:346)
    at com.redhat.ceylon.compiler.java.runtime.metamodel.Predicates$And.accept(Predicates.java:118)
    at com.redhat.ceylon.compiler.java.runtime.metamodel.FreeClassOrInterface.filteredMembers(FreeClassOrInterface.java:215)
    at com.redhat.ceylon.compiler.java.runtime.metamodel.FreeClassOrInterface.annotatedMemberDeclarations(FreeClassOrInterface.java:186)

@tombentley tombentley self-assigned this Sep 23, 2015
tombentley added a commit to ceylon/ceylon-model that referenced this issue Sep 23, 2015
We need to find the getters for value constructor in order to
support importing constructors (as in ceylon/ceylon-compiler#2176)
but otherwise ignore them.

Part of ceylon/ceylon.language#757
tombentley added a commit to ceylon/ceylon-compiler that referenced this issue Sep 23, 2015
This is not a whole true, however, because the model loader does
still look at them, at least in order to support importing constructors
as in #2176. But we don't want the model loader to see them as methods.

Part of ceylon/ceylon.language#757
tombentley added a commit to ceylon/ceylon-compiler that referenced this issue Sep 23, 2015
tombentley added a commit that referenced this issue Sep 23, 2015
Since classes have Function members for their constructors we
need to be sure we don't have a constructor before we create a Function
for it.

Part of #757
tombentley added a commit that referenced this issue Sep 23, 2015
@tombentley
Copy link
Member

Fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants