[jira] Created: (BOO-1240) Compiler falsely considers any member of the same name to fulfill an external interface.

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

[jira] Created: (BOO-1240) Compiler falsely considers any member of the same name to fulfill an external interface.

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

Reply to Author | View Threaded | Show Only this Message

Compiler falsely considers any member of the same name to fulfill an external interface.
----------------------------------------------------------------------------------------

                 Key: BOO-1240
                 URL: http://jira.codehaus.org/browse/BOO-1240
             Project: Boo
          Issue Type: Bug
          Components: Compiler
         Environment: r3370
            Reporter: rektide
            Assignee: rektide
            Priority: Critical
             Fix For: 0.9.2


For an external file:
{code}interface BaseInterface:
        def Add(s as string)

abstract class BaseAbstractClass:
        def Add(i as int):
                pass{code}
And a consuming class:
{code}class Consumer(BaseInterface,BaseAbstractClass):
        pass{code}
the consuming class generates an EmitAssembly error:
BCE0011: An error occurred during the execution of the step 'Boo.Lang.Compiler.Steps.EmitAssembly': 'Method 'Add' in type 'Impl' from assembly [....] does not have an implementation
This error ought be raised by ProcessInheritedAbstractMembers.  Line 218 is suspect:
{code}if (inheritedImpl is IExternalEntity && entity is IExternalEntity)
        return true; //both sides are external, no need to check further{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] Issue Comment Edited: (BOO-1240) Compiler falsely considers any member of the same name to fulfill an external interface.

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

Reply to Author | View Threaded | Show Only this Message


    [ http://jira.codehaus.org/browse/BOO-1240?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=186305#action_186305 ]

rektide edited comment on BOO-1240 at 8/7/09 4:58 AM:
------------------------------------------------------

Patch follows; cant see any dangerous ramifications.

Index: ProcessInheritedAbstractMembers.cs
===================================================================
--- ProcessInheritedAbstractMembers.cs  (revision 3375)
+++ ProcessInheritedAbstractMembers.cs  (working copy)
@@ -215,8 +215,8 @@
                                                if(inheritedImpl == entity)
                                                        return false; //Evaluating yourself is a very bad habit.

-                                               if (inheritedImpl is IExternalEntity && entity is IExternalEntity)
-                                                       return true; //both sides are external, no need to check further
+                                               //if (inheritedImpl is IExternalEntity && entity is IExternalEntity)
+                                               //      return true; //both sides are external, no need to check further

                                                switch( entity.EntityType)
                                                {

      was (Author: rektide):
    Index: ProcessInheritedAbstractMembers.cs
===================================================================
--- ProcessInheritedAbstractMembers.cs  (revision 3375)
+++ ProcessInheritedAbstractMembers.cs  (working copy)
@@ -215,8 +215,8 @@
                                                if(inheritedImpl == entity)
                                                        return false; //Evaluating yourself is a very bad habit.

-                                               if (inheritedImpl is IExternalEntity && entity is IExternalEntity)
-                                                       return true; //both sides are external, no need to check further
+                                               //if (inheritedImpl is IExternalEntity && entity is IExternalEntity)
+                                               //      return true; //both sides are external, no need to check further

                                                switch( entity.EntityType)
                                                {
 

> Compiler falsely considers any member of the same name to fulfill an external interface.
> ----------------------------------------------------------------------------------------
>
>                 Key: BOO-1240
>                 URL: http://jira.codehaus.org/browse/BOO-1240
>             Project: Boo
>          Issue Type: Bug
>          Components: Compiler
>         Environment: r3370
>            Reporter: rektide
>            Assignee: rektide
>            Priority: Critical
>             Fix For: 0.9.2
>
>   Original Estimate: 2 hours
>  Remaining Estimate: 2 hours
>
> For an external file:
> {code}interface BaseInterface:
> def Add(s as string)
> abstract class BaseAbstractClass:
> def Add(i as int):
> pass{code}
> And a consuming class:
> {code}class Consumer(BaseInterface,BaseAbstractClass):
> pass{code}
> the consuming class generates an EmitAssembly error:
> BCE0011: An error occurred during the execution of the step 'Boo.Lang.Compiler.Steps.EmitAssembly': 'Method 'Add' in type 'Impl' from assembly [....] does not have an implementation
> This error ought be raised by ProcessInheritedAbstractMembers.  Line 218 is suspect:
> {code}if (inheritedImpl is IExternalEntity && entity is IExternalEntity)
> return true; //both sides are external, no need to check further{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] Commented: (BOO-1240) Compiler falsely considers any member of the same name to fulfill an external interface.

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

Reply to Author | View Threaded | Show Only this Message


    [ http://jira.codehaus.org/browse/BOO-1240?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=186305#action_186305 ]

rektide commented on BOO-1240:
------------------------------

Index: ProcessInheritedAbstractMembers.cs
===================================================================
--- ProcessInheritedAbstractMembers.cs  (revision 3375)
+++ ProcessInheritedAbstractMembers.cs  (working copy)
@@ -215,8 +215,8 @@
                                                if(inheritedImpl == entity)
                                                        return false; //Evaluating yourself is a very bad habit.

-                                               if (inheritedImpl is IExternalEntity && entity is IExternalEntity)
-                                                       return true; //both sides are external, no need to check further
+                                               //if (inheritedImpl is IExternalEntity && entity is IExternalEntity)
+                                               //      return true; //both sides are external, no need to check further

                                                switch( entity.EntityType)
                                                {

> Compiler falsely considers any member of the same name to fulfill an external interface.
> ----------------------------------------------------------------------------------------
>
>                 Key: BOO-1240
>                 URL: http://jira.codehaus.org/browse/BOO-1240
>             Project: Boo
>          Issue Type: Bug
>          Components: Compiler
>         Environment: r3370
>            Reporter: rektide
>            Assignee: rektide
>            Priority: Critical
>             Fix For: 0.9.2
>
>   Original Estimate: 2 hours
>  Remaining Estimate: 2 hours
>
> For an external file:
> {code}interface BaseInterface:
> def Add(s as string)
> abstract class BaseAbstractClass:
> def Add(i as int):
> pass{code}
> And a consuming class:
> {code}class Consumer(BaseInterface,BaseAbstractClass):
> pass{code}
> the consuming class generates an EmitAssembly error:
> BCE0011: An error occurred during the execution of the step 'Boo.Lang.Compiler.Steps.EmitAssembly': 'Method 'Add' in type 'Impl' from assembly [....] does not have an implementation
> This error ought be raised by ProcessInheritedAbstractMembers.  Line 218 is suspect:
> {code}if (inheritedImpl is IExternalEntity && entity is IExternalEntity)
> return true; //both sides are external, no need to check further{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] Commented: (BOO-1240) Compiler falsely considers any member of the same name to fulfill an external interface.

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

Reply to Author | View Threaded | Show Only this Message


    [ http://jira.codehaus.org/browse/BOO-1240?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=186307#action_186307 ]

Cedric Vivier commented on BOO-1240:
------------------------------------

This breaks BOO-1220 first testcase (that line was introduced in the commit fixing that testcase... seems it introduced untested regression heh)

You can see "dangerous" ramifications by running the testsuite ;-)   (i.e "nant test")




> Compiler falsely considers any member of the same name to fulfill an external interface.
> ----------------------------------------------------------------------------------------
>
>                 Key: BOO-1240
>                 URL: http://jira.codehaus.org/browse/BOO-1240
>             Project: Boo
>          Issue Type: Bug
>          Components: Compiler
>         Environment: r3370
>            Reporter: rektide
>            Assignee: rektide
>            Priority: Critical
>             Fix For: 0.9.2
>
>   Original Estimate: 2 hours
>  Remaining Estimate: 2 hours
>
> For an external file:
> {code}interface BaseInterface:
> def Add(s as string)
> abstract class BaseAbstractClass:
> def Add(i as int):
> pass{code}
> And a consuming class:
> {code}class Consumer(BaseInterface,BaseAbstractClass):
> pass{code}
> the consuming class generates an EmitAssembly error:
> BCE0011: An error occurred during the execution of the step 'Boo.Lang.Compiler.Steps.EmitAssembly': 'Method 'Add' in type 'Impl' from assembly [....] does not have an implementation
> This error ought be raised by ProcessInheritedAbstractMembers.  Line 218 is suspect:
> {code}if (inheritedImpl is IExternalEntity && entity is IExternalEntity)
> return true; //both sides are external, no need to check further{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] Issue Comment Edited: (BOO-1240) Compiler falsely considers any member of the same name to fulfill an external interface.

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

Reply to Author | View Threaded | Show Only this Message


    [ http://jira.codehaus.org/browse/BOO-1240?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=186306#action_186306 ]

rektide edited comment on BOO-1240 at 8/7/09 5:16 AM:
------------------------------------------------------

Per cedric, I'll come back to this once git-clone has finished and can figure out why the code was inserted in the first place.

      was (Author: rektide):
    Per cedric, I'll come back to this once I have git-clone operational and can figure out why the code was inserted in the first place.
 

> Compiler falsely considers any member of the same name to fulfill an external interface.
> ----------------------------------------------------------------------------------------
>
>                 Key: BOO-1240
>                 URL: http://jira.codehaus.org/browse/BOO-1240
>             Project: Boo
>          Issue Type: Bug
>          Components: Compiler
>         Environment: r3370
>            Reporter: rektide
>            Assignee: rektide
>            Priority: Critical
>             Fix For: 0.9.2
>
>   Original Estimate: 2 hours
>  Remaining Estimate: 2 hours
>
> For an external file:
> {code}interface BaseInterface:
> def Add(s as string)
> abstract class BaseAbstractClass:
> def Add(i as int):
> pass{code}
> And a consuming class:
> {code}class Consumer(BaseInterface,BaseAbstractClass):
> pass{code}
> the consuming class generates an EmitAssembly error:
> BCE0011: An error occurred during the execution of the step 'Boo.Lang.Compiler.Steps.EmitAssembly': 'Method 'Add' in type 'Impl' from assembly [....] does not have an implementation
> This error ought be raised by ProcessInheritedAbstractMembers.  Line 218 is suspect:
> {code}if (inheritedImpl is IExternalEntity && entity is IExternalEntity)
> return true; //both sides are external, no need to check further{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] Commented: (BOO-1240) Compiler falsely considers any member of the same name to fulfill an external interface.

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

Reply to Author | View Threaded | Show Only this Message


    [ http://jira.codehaus.org/browse/BOO-1240?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=186306#action_186306 ]

rektide commented on BOO-1240:
------------------------------

Per cedric, I'll come back to this once I have git-clone operational and can figure out why the code was inserted in the first place.

> Compiler falsely considers any member of the same name to fulfill an external interface.
> ----------------------------------------------------------------------------------------
>
>                 Key: BOO-1240
>                 URL: http://jira.codehaus.org/browse/BOO-1240
>             Project: Boo
>          Issue Type: Bug
>          Components: Compiler
>         Environment: r3370
>            Reporter: rektide
>            Assignee: rektide
>            Priority: Critical
>             Fix For: 0.9.2
>
>   Original Estimate: 2 hours
>  Remaining Estimate: 2 hours
>
> For an external file:
> {code}interface BaseInterface:
> def Add(s as string)
> abstract class BaseAbstractClass:
> def Add(i as int):
> pass{code}
> And a consuming class:
> {code}class Consumer(BaseInterface,BaseAbstractClass):
> pass{code}
> the consuming class generates an EmitAssembly error:
> BCE0011: An error occurred during the execution of the step 'Boo.Lang.Compiler.Steps.EmitAssembly': 'Method 'Add' in type 'Impl' from assembly [....] does not have an implementation
> This error ought be raised by ProcessInheritedAbstractMembers.  Line 218 is suspect:
> {code}if (inheritedImpl is IExternalEntity && entity is IExternalEntity)
> return true; //both sides are external, no need to check further{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-1240) Compiler falsely considers any member of the same name to fulfill an external interface.

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

Reply to Author | View Threaded | Show Only this Message


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

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

    Fix Version/s:     (was: 0.9.2)
                   0.9.3

> Compiler falsely considers any member of the same name to fulfill an external interface.
> ----------------------------------------------------------------------------------------
>
>                 Key: BOO-1240
>                 URL: http://jira.codehaus.org/browse/BOO-1240
>             Project: Boo
>          Issue Type: Bug
>          Components: Compiler
>         Environment: r3370
>            Reporter: rektide
>            Assignee: rektide
>            Priority: Critical
>             Fix For: 0.9.3
>
>   Original Estimate: 2 hours
>  Remaining Estimate: 2 hours
>
> For an external file:
> {code}interface BaseInterface:
> def Add(s as string)
> abstract class BaseAbstractClass:
> def Add(i as int):
> pass{code}
> And a consuming class:
> {code}class Consumer(BaseInterface,BaseAbstractClass):
> pass{code}
> the consuming class generates an EmitAssembly error:
> BCE0011: An error occurred during the execution of the step 'Boo.Lang.Compiler.Steps.EmitAssembly': 'Method 'Add' in type 'Impl' from assembly [....] does not have an implementation
> This error ought be raised by ProcessInheritedAbstractMembers.  Line 218 is suspect:
> {code}if (inheritedImpl is IExternalEntity && entity is IExternalEntity)
> return true; //both sides are external, no need to check further{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-1240) Compiler falsely considers any member of the same name to fulfill an external interface.

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

Reply to Author | View Threaded | Show Only this Message


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

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

    Assignee: Rodrigo B. de Oliveira  (was: rektide)

> Compiler falsely considers any member of the same name to fulfill an external interface.
> ----------------------------------------------------------------------------------------
>
>                 Key: BOO-1240
>                 URL: http://jira.codehaus.org/browse/BOO-1240
>             Project: Boo
>          Issue Type: Bug
>          Components: Compiler
>         Environment: r3370
>            Reporter: rektide
>            Assignee: Rodrigo B. de Oliveira
>            Priority: Critical
>             Fix For: 0.9.3
>
>   Original Estimate: 2 hours
>  Remaining Estimate: 2 hours
>
> For an external file:
> {code}interface BaseInterface:
> def Add(s as string)
> abstract class BaseAbstractClass:
> def Add(i as int):
> pass{code}
> And a consuming class:
> {code}class Consumer(BaseInterface,BaseAbstractClass):
> pass{code}
> the consuming class generates an EmitAssembly error:
> BCE0011: An error occurred during the execution of the step 'Boo.Lang.Compiler.Steps.EmitAssembly': 'Method 'Add' in type 'Impl' from assembly [....] does not have an implementation
> This error ought be raised by ProcessInheritedAbstractMembers.  Line 218 is suspect:
> {code}if (inheritedImpl is IExternalEntity && entity is IExternalEntity)
> return true; //both sides are external, no need to check further{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] Closed: (BOO-1240) Compiler falsely considers any member of the same name to fulfill an external interface.

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

Reply to Author | View Threaded | Show Only this Message


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

Rodrigo B. de Oliveira closed BOO-1240.
---------------------------------------

    Resolution: Fixed

Fixed in rev. 3419. Thanks for the report!

> Compiler falsely considers any member of the same name to fulfill an external interface.
> ----------------------------------------------------------------------------------------
>
>                 Key: BOO-1240
>                 URL: http://jira.codehaus.org/browse/BOO-1240
>             Project: Boo
>          Issue Type: Bug
>          Components: Compiler
>         Environment: r3370
>            Reporter: rektide
>            Assignee: Rodrigo B. de Oliveira
>            Priority: Critical
>             Fix For: 0.9.3
>
>   Original Estimate: 2 hours
>  Remaining Estimate: 2 hours
>
> For an external file:
> {code}interface BaseInterface:
> def Add(s as string)
> abstract class BaseAbstractClass:
> def Add(i as int):
> pass{code}
> And a consuming class:
> {code}class Consumer(BaseInterface,BaseAbstractClass):
> pass{code}
> the consuming class generates an EmitAssembly error:
> BCE0011: An error occurred during the execution of the step 'Boo.Lang.Compiler.Steps.EmitAssembly': 'Method 'Add' in type 'Impl' from assembly [....] does not have an implementation
> This error ought be raised by ProcessInheritedAbstractMembers.  Line 218 is suspect:
> {code}if (inheritedImpl is IExternalEntity && entity is IExternalEntity)
> return true; //both sides are external, no need to check further{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