[jira] Created: (BOO-1167) BCE0149 on external generic method invocation that has generic argument constraint and declaring current type inherits a generic type

View: New views
6 Messages — Rating Filter:   Alert me  

[jira] Created: (BOO-1167) BCE0149 on external generic method invocation that has generic argument constraint and declaring current type inherits a generic type

by JIRA jira@codehaus.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

BCE0149 on external generic method invocation that has generic argument constraint and declaring current type inherits a generic type
-------------------------------------------------------------------------------------------------------------------------------------

                 Key: BOO-1167
                 URL: http://jira.codehaus.org/browse/BOO-1167
             Project: Boo
          Issue Type: Bug
          Components: Compiler
    Affects Versions: 0.9
            Reporter: Cedric Vivier
            Assignee: Cedric Vivier
            Priority: Blocker
             Fix For: 0.9.1


External code (we cannot have the same in BOO because of related BOO-1166):
{code}
using System.Collections.Generic;

public class B
{
}
public class A<T> where T : B {
}
public class C<T> : A<B> {
        public IEnumerable<U> Do<U> () where U : T
        {
                return null;
        }
}
{code}

Caller code:
{code}
C[of B]().Do[of B]()
{code}

Gives:
BCE0149: The type 'B' must derive from 'T' in order to substitute the generic parameter 'U' in 'C[of T].Do()'.


Marking it Blocker for 0.9.1 as it blocks MonoDevelop guys wrt BooBinding.
Thanks to Michael Hutchinson for reporting.


--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email



[jira] Updated: (BOO-1167) BCE0149 on external generic method invocation that has generic argument constraint referencing declaring type constructed generic argument

by JIRA jira@codehaus.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


     [ http://jira.codehaus.org/browse/BOO-1167?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Cedric Vivier updated BOO-1167:
-------------------------------

    Description:
External code:
{code}
using System.Collections.Generic;
public class C<T> {
        public IEnumerable<U> Do<U> () where U : T
        {
                return null;
        }
}
{code}

Caller code:
{code}
class B:
    pass
C[of B]().Do[of B]()
{code}

Gives:
BCE0149: The type 'B' must derive from 'T' in order to substitute the generic parameter 'U' in 'C[of T].Do()'.


Marking it Blocker for 0.9.1 as it blocks MonoDevelop guys wrt BooBinding.
Thanks to Michael Hutchinson for reporting.




FWIW, internal code works (testcase-worthy anyway):
{code}
class B:
    pass
class D (B):
    pass

class C[of T]:
    def Do[of U(T)]() as U*:
        pass

C[of B]().Do[of B]()
{code}


  was:
External code (we cannot have the same in BOO because of related BOO-1166):
{code}
using System.Collections.Generic;

public class B
{
}
public class A<T> where T : B {
}
public class C<T> : A<B> {
        public IEnumerable<U> Do<U> () where U : T
        {
                return null;
        }
}
{code}

Caller code:
{code}
C[of B]().Do[of B]()
{code}

Gives:
BCE0149: The type 'B' must derive from 'T' in order to substitute the generic parameter 'U' in 'C[of T].Do()'.


Marking it Blocker for 0.9.1 as it blocks MonoDevelop guys wrt BooBinding.
Thanks to Michael Hutchinson for reporting.


        Summary: BCE0149 on external generic method invocation that has generic argument constraint referencing declaring type constructed generic argument  (was: BCE0149 on external generic method invocation that has generic argument constraint and declaring current type inherits a generic type)

Simplified testcase

> BCE0149 on external generic method invocation that has generic argument constraint referencing declaring type constructed generic argument
> ------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: BOO-1167
>                 URL: http://jira.codehaus.org/browse/BOO-1167
>             Project: Boo
>          Issue Type: Bug
>          Components: Compiler
>    Affects Versions: 0.9
>            Reporter: Cedric Vivier
>            Assignee: Cedric Vivier
>            Priority: Blocker
>             Fix For: 0.9.1
>
>
> External code:
> {code}
> using System.Collections.Generic;
> public class C<T> {
> public IEnumerable<U> Do<U> () where U : T
> {
> return null;
> }
> }
> {code}
> Caller code:
> {code}
> class B:
>     pass
> C[of B]().Do[of B]()
> {code}
> Gives:
> BCE0149: The type 'B' must derive from 'T' in order to substitute the generic parameter 'U' in 'C[of T].Do()'.
> Marking it Blocker for 0.9.1 as it blocks MonoDevelop guys wrt BooBinding.
> Thanks to Michael Hutchinson for reporting.
> FWIW, internal code works (testcase-worthy anyway):
> {code}
> class B:
>     pass
> class D (B):
>     pass
> class C[of T]:
>     def Do[of U(T)]() as U*:
>         pass
> C[of B]().Do[of B]()
> {code}

--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email



[jira] Updated: (BOO-1167) BCE0149 on external method that has generic argument constraint referencing declaring type's external constructed generic argument

by JIRA jira@codehaus.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


     [ http://jira.codehaus.org/browse/BOO-1167?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Cedric Vivier updated BOO-1167:
-------------------------------

    Description:
External code:
{code}
using System.Collections.Generic;
public class D {
}
public class C<T> {
        public IEnumerable<U> Do<U> () where U : T
        {
                return null;
        }
}
{code}

Caller code:
{code}
class B:
    pass
C[of B]().Do[of B]() #B is internal, it works!

C[of D]().Do[of D]() #D is external -> BCE0149 :(
{code}

Gives:
BCE0149: The type 'B' must derive from 'T' in order to substitute the generic parameter 'U' in 'C[of T].Do()'.


Marking it Blocker for 0.9.1 as it blocks MonoDevelop guys wrt BooBinding.
Thanks to Michael Hutchinson for reporting.




FWIW, internal code works (testcase-worthy anyway):
{code}
class B:
    pass
class D (B):
    pass

class C[of T]:
    def Do[of U(T)]() as U*:
        pass

C[of B]().Do[of B]()
{code}


  was:
External code:
{code}
using System.Collections.Generic;
public class C<T> {
        public IEnumerable<U> Do<U> () where U : T
        {
                return null;
        }
}
{code}

Caller code:
{code}
class B:
    pass
C[of B]().Do[of B]()
{code}

Gives:
BCE0149: The type 'B' must derive from 'T' in order to substitute the generic parameter 'U' in 'C[of T].Do()'.


Marking it Blocker for 0.9.1 as it blocks MonoDevelop guys wrt BooBinding.
Thanks to Michael Hutchinson for reporting.




FWIW, internal code works (testcase-worthy anyway):
{code}
class B:
    pass
class D (B):
    pass

class C[of T]:
    def Do[of U(T)]() as U*:
        pass

C[of B]().Do[of B]()
{code}


        Summary: BCE0149 on external method that has generic argument constraint referencing declaring type's external constructed generic argument  (was: BCE0149 on external generic method invocation that has generic argument constraint referencing declaring type constructed generic argument)

> BCE0149 on external method that has generic argument constraint referencing declaring type's external constructed generic argument
> ----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: BOO-1167
>                 URL: http://jira.codehaus.org/browse/BOO-1167
>             Project: Boo
>          Issue Type: Bug
>          Components: Compiler
>    Affects Versions: 0.9
>            Reporter: Cedric Vivier
>            Assignee: Cedric Vivier
>            Priority: Blocker
>             Fix For: 0.9.1
>
>
> External code:
> {code}
> using System.Collections.Generic;
> public class D {
> }
> public class C<T> {
> public IEnumerable<U> Do<U> () where U : T
> {
> return null;
> }
> }
> {code}
> Caller code:
> {code}
> class B:
>     pass
> C[of B]().Do[of B]() #B is internal, it works!
> C[of D]().Do[of D]() #D is external -> BCE0149 :(
> {code}
> Gives:
> BCE0149: The type 'B' must derive from 'T' in order to substitute the generic parameter 'U' in 'C[of T].Do()'.
> Marking it Blocker for 0.9.1 as it blocks MonoDevelop guys wrt BooBinding.
> Thanks to Michael Hutchinson for reporting.
> FWIW, internal code works (testcase-worthy anyway):
> {code}
> class B:
>     pass
> class D (B):
>     pass
> class C[of T]:
>     def Do[of U(T)]() as U*:
>         pass
> C[of B]().Do[of B]()
> {code}

--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email



[jira] Updated: (BOO-1167) BCE0149 on external method that has generic argument constraint referencing declaring type's external constructed generic argument

by JIRA jira@codehaus.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


     [ http://jira.codehaus.org/browse/BOO-1167?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rodrigo B. de Oliveira updated BOO-1167:
----------------------------------------

    Fix Version/s:     (was: 0.9.1)
                   0.9.2

> BCE0149 on external method that has generic argument constraint referencing declaring type's external constructed generic argument
> ----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: BOO-1167
>                 URL: http://jira.codehaus.org/browse/BOO-1167
>             Project: Boo
>          Issue Type: Bug
>          Components: Compiler
>    Affects Versions: 0.9
>            Reporter: Cedric Vivier
>            Assignee: Cedric Vivier
>            Priority: Blocker
>             Fix For: 0.9.2
>
>
> External code:
> {code}
> using System.Collections.Generic;
> public class D {
> }
> public class C<T> {
> public IEnumerable<U> Do<U> () where U : T
> {
> return null;
> }
> }
> {code}
> Caller code:
> {code}
> class B:
>     pass
> C[of B]().Do[of B]() #B is internal, it works!
> C[of D]().Do[of D]() #D is external -> BCE0149 :(
> {code}
> Gives:
> BCE0149: The type 'B' must derive from 'T' in order to substitute the generic parameter 'U' in 'C[of T].Do()'.
> Marking it Blocker for 0.9.1 as it blocks MonoDevelop guys wrt BooBinding.
> Thanks to Michael Hutchinson for reporting.
> FWIW, internal code works (testcase-worthy anyway):
> {code}
> class B:
>     pass
> class D (B):
>     pass
> class C[of T]:
>     def Do[of U(T)]() as U*:
>         pass
> C[of B]().Do[of B]()
> {code}

--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email



[jira] Updated: (BOO-1167) BCE0149 on external method that has generic argument constraint referencing declaring type's external constructed generic argument

by JIRA jira@codehaus.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


     [ http://jira.codehaus.org/browse/BOO-1167?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rodrigo B. de Oliveira updated BOO-1167:
----------------------------------------

    Fix Version/s:     (was: 0.9.2)
                   0.9.3

> BCE0149 on external method that has generic argument constraint referencing declaring type's external constructed generic argument
> ----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: BOO-1167
>                 URL: http://jira.codehaus.org/browse/BOO-1167
>             Project: Boo
>          Issue Type: Bug
>          Components: Compiler
>    Affects Versions: 0.9
>            Reporter: Cedric Vivier
>            Assignee: Cedric Vivier
>            Priority: Blocker
>             Fix For: 0.9.3
>
>
> External code:
> {code}
> using System.Collections.Generic;
> public class D {
> }
> public class C<T> {
> public IEnumerable<U> Do<U> () where U : T
> {
> return null;
> }
> }
> {code}
> Caller code:
> {code}
> class B:
>     pass
> C[of B]().Do[of B]() #B is internal, it works!
> C[of D]().Do[of D]() #D is external -> BCE0149 :(
> {code}
> Gives:
> BCE0149: The type 'B' must derive from 'T' in order to substitute the generic parameter 'U' in 'C[of T].Do()'.
> Marking it Blocker for 0.9.1 as it blocks MonoDevelop guys wrt BooBinding.
> Thanks to Michael Hutchinson for reporting.
> FWIW, internal code works (testcase-worthy anyway):
> {code}
> class B:
>     pass
> class D (B):
>     pass
> class C[of T]:
>     def Do[of U(T)]() as U*:
>         pass
> C[of B]().Do[of B]()
> {code}

--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email



[jira] Assigned: (BOO-1167) BCE0149 on external method that has generic argument constraint referencing declaring type's external constructed generic argument

by JIRA jira@codehaus.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


     [ http://jira.codehaus.org/browse/BOO-1167?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rodrigo B. de Oliveira reassigned BOO-1167:
-------------------------------------------

    Assignee: Rodrigo B. de Oliveira  (was: Cedric Vivier)

> BCE0149 on external method that has generic argument constraint referencing declaring type's external constructed generic argument
> ----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: BOO-1167
>                 URL: http://jira.codehaus.org/browse/BOO-1167
>             Project: Boo
>          Issue Type: Bug
>          Components: Compiler
>    Affects Versions: 0.9
>            Reporter: Cedric Vivier
>            Assignee: Rodrigo B. de Oliveira
>            Priority: Blocker
>             Fix For: 0.9.3
>
>
> External code:
> {code}
> using System.Collections.Generic;
> public class D {
> }
> public class C<T> {
> public IEnumerable<U> Do<U> () where U : T
> {
> return null;
> }
> }
> {code}
> Caller code:
> {code}
> class B:
>     pass
> C[of B]().Do[of B]() #B is internal, it works!
> C[of D]().Do[of D]() #D is external -> BCE0149 :(
> {code}
> Gives:
> BCE0149: The type 'B' must derive from 'T' in order to substitute the generic parameter 'U' in 'C[of T].Do()'.
> Marking it Blocker for 0.9.1 as it blocks MonoDevelop guys wrt BooBinding.
> Thanks to Michael Hutchinson for reporting.
> FWIW, internal code works (testcase-worthy anyway):
> {code}
> class B:
>     pass
> class D (B):
>     pass
> class C[of T]:
>     def Do[of U(T)]() as U*:
>         pass
> C[of B]().Do[of B]()
> {code}

--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email