Skip to content
This repository has been archived by the owner on Apr 13, 2023. It is now read-only.

metamodel bug related to default constructors #5635

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

metamodel bug related to default constructors #5635

CeylonMigrationBot opened this issue Sep 18, 2015 · 2 comments

Comments

@CeylonMigrationBot
Copy link

[@gavinking] 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) {}
}

[Migrated from ceylon/ceylon.language#757]
[Closed at 2015-09-23 14:08:48]

@CeylonMigrationBot
Copy link
Author

[@gavinking] 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)

@CeylonMigrationBot
Copy link
Author

[@tombentley] Fixed

@CeylonMigrationBot CeylonMigrationBot added this to the 1.2 milestone Nov 14, 2015
quintesse pushed a commit that referenced this issue Nov 14, 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 #5635
quintesse pushed a commit that referenced this issue Nov 14, 2015
quintesse pushed a commit that referenced this issue Nov 14, 2015
quintesse pushed a commit that referenced this issue Nov 14, 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 #5635
quintesse pushed a commit that referenced this issue Nov 14, 2015
quintesse pushed a commit that referenced this issue Nov 14, 2015
We need to find the getters for value constructor in order to
support importing constructors (as in #2176)
but otherwise ignore them.

Part of #5635
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants