[jira] Created: (BOO-1064) Redundant explicit member instantiation causes compiler

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

[jira] Created: (BOO-1064) Redundant explicit member instantiation causes compiler

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

Reply to Author | View Threaded | Show Only this Message

Redundant explicit member instantiation causes compiler
--------------------------------------------------------

                 Key: BOO-1064
                 URL: http://jira.codehaus.org/browse/BOO-1064
             Project: Boo
          Issue Type: Bug
          Components: Compiler
    Affects Versions: 0.8.2
         Environment: Windows XP, under both boo 8.2 and svn
            Reporter: Greg Nagel


{code}

interface I:
        def Foo()

class A(I):
        def I.Foo():
                print "A"

class B(A):
        def I.Foo():
                print "B"

b = B()
b.Foo()

{code}

Does not matter if B also derives from I.

Output:

test.boo(22,3): BCE0055: Boo.Lang.Compiler.CompilerError: Internal compiler error: entities. ---> System.ArgumentException: entities
   at Boo.Lang.Compiler.TypeSystem.Ambiguous..ctor(IEntity[] entities)
   at Boo.Lang.Compiler.TypeSystem.Ambiguous..ctor(IList entities)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ResolveAmbiguousReferenceByAccessibility(Ambiguous candidates)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ResolveAmbiguousReference(ReferenceExpression node, Ambiguous candidates)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMemberReferenceExpression(MemberReferenceExpression node)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.LeaveMemberReferenceExpression(MemberReferenceExpression node)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnMemberReferenceExpression(MemberReferenceExpression node)
   at Boo.Lang.Compiler.Ast.MemberReferenceExpression.Accept(IAstVisitor visitor)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
   --- End of inner exception stack trace ---
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnError(Node node, Exception error)
   at Boo.Lang.Compiler.Steps.AbstractVisitorCompilerStep.OnError(Node node, Exception error)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnMethodInvocationExpression(MethodInvocationExpression node)
   at Boo.Lang.Compiler.Ast.MethodInvocationExpression.Accept(IAstVisitor visitor)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnExpressionStatement(ExpressionStatement node)
   at Boo.Lang.Compiler.Ast.ExpressionStatement.Accept(IAstVisitor visitor)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnBlock(Block node)
   at Boo.Lang.Compiler.Ast.Block.Accept(IAstVisitor visitor)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessNodeInMethodContext(InternalMethod entity, INamespace ns, Node node)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMethodBody(InternalMethod entity, INamespace ns)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMethodBody(InternalMethod entity)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessRegularMethod(Method node)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnMethod(Method method)
   at Boo.Lang.Compiler.Ast.Method.Accept(IAstVisitor visitor)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.VisitTypeDefinition(TypeDefinition node)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnClassDefinition(ClassDefinition node)
   at Boo.Lang.Compiler.Ast.ClassDefinition.Accept(IAstVisitor visitor)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnModule(Module module)
   at Boo.Lang.Compiler.Ast.Module.Accept(IAstVisitor visitor)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnCompileUnit(CompileUnit node)
   at Boo.Lang.Compiler.Ast.CompileUnit.Accept(IAstVisitor visitor)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.Run()
   at Boo.Lang.Compiler.CompilerPipeline.RunStep(CompilerContext context, ICompilerStep step)

Probably related to BOO-1023 and perhaps BOO-1055.

--
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-1064) Redundant explicit member instantiation causes compiler

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

Reply to Author | View Threaded | Show Only this Message


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

Greg Nagel updated BOO-1064:
----------------------------

    Attachment: BOO-1064.patch

Turns out it doesn't have anything to do with the others; just some control code which assumed that Assumption() could take an empty list.

Patch attached; passes all the standard tests and this new one.

> Redundant explicit member instantiation causes compiler
> --------------------------------------------------------
>
>                 Key: BOO-1064
>                 URL: http://jira.codehaus.org/browse/BOO-1064
>             Project: Boo
>          Issue Type: Bug
>          Components: Compiler
>    Affects Versions: 0.8.2
>         Environment: Windows XP, under both boo 8.2 and svn
>            Reporter: Greg Nagel
>         Attachments: BOO-1064.patch
>
>
> {code}
> interface I:
> def Foo()
> class A(I):
> def I.Foo():
> print "A"
> class B(A):
> def I.Foo():
> print "B"
> b = B()
> b.Foo()
> {code}
> Does not matter if B also derives from I.
> Output:
> test.boo(22,3): BCE0055: Boo.Lang.Compiler.CompilerError: Internal compiler error: entities. ---> System.ArgumentException: entities
>    at Boo.Lang.Compiler.TypeSystem.Ambiguous..ctor(IEntity[] entities)
>    at Boo.Lang.Compiler.TypeSystem.Ambiguous..ctor(IList entities)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ResolveAmbiguousReferenceByAccessibility(Ambiguous candidates)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ResolveAmbiguousReference(ReferenceExpression node, Ambiguous candidates)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMemberReferenceExpression(MemberReferenceExpression node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.LeaveMemberReferenceExpression(MemberReferenceExpression node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnMemberReferenceExpression(MemberReferenceExpression node)
>    at Boo.Lang.Compiler.Ast.MemberReferenceExpression.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    --- End of inner exception stack trace ---
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnError(Node node, Exception error)
>    at Boo.Lang.Compiler.Steps.AbstractVisitorCompilerStep.OnError(Node node, Exception error)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnMethodInvocationExpression(MethodInvocationExpression node)
>    at Boo.Lang.Compiler.Ast.MethodInvocationExpression.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnExpressionStatement(ExpressionStatement node)
>    at Boo.Lang.Compiler.Ast.ExpressionStatement.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnBlock(Block node)
>    at Boo.Lang.Compiler.Ast.Block.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessNodeInMethodContext(InternalMethod entity, INamespace ns, Node node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMethodBody(InternalMethod entity, INamespace ns)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMethodBody(InternalMethod entity)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessRegularMethod(Method node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnMethod(Method method)
>    at Boo.Lang.Compiler.Ast.Method.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.VisitTypeDefinition(TypeDefinition node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnClassDefinition(ClassDefinition node)
>    at Boo.Lang.Compiler.Ast.ClassDefinition.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnModule(Module module)
>    at Boo.Lang.Compiler.Ast.Module.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnCompileUnit(CompileUnit node)
>    at Boo.Lang.Compiler.Ast.CompileUnit.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.Run()
>    at Boo.Lang.Compiler.CompilerPipeline.RunStep(CompilerContext context, ICompilerStep step)
> Probably related to BOO-1023 and perhaps BOO-1055.

--
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-1064) Redundant explicit member instantiation causes compiler

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

Reply to Author | View Threaded | Show Only this Message


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

Greg Nagel commented on BOO-1064:
---------------------------------

Er, the version is wrong. I was thinking the assemblies in /bin were 8.2 for some reason. All these tests are done under r3010.

> Redundant explicit member instantiation causes compiler
> --------------------------------------------------------
>
>                 Key: BOO-1064
>                 URL: http://jira.codehaus.org/browse/BOO-1064
>             Project: Boo
>          Issue Type: Bug
>          Components: Compiler
>    Affects Versions: 0.8.2
>         Environment: Windows XP, under both boo 8.2 and svn
>            Reporter: Greg Nagel
>         Attachments: BOO-1064.patch
>
>
> {code}
> interface I:
> def Foo()
> class A(I):
> def I.Foo():
> print "A"
> class B(A):
> def I.Foo():
> print "B"
> b = B()
> b.Foo()
> {code}
> Does not matter if B also derives from I.
> Output:
> test.boo(22,3): BCE0055: Boo.Lang.Compiler.CompilerError: Internal compiler error: entities. ---> System.ArgumentException: entities
>    at Boo.Lang.Compiler.TypeSystem.Ambiguous..ctor(IEntity[] entities)
>    at Boo.Lang.Compiler.TypeSystem.Ambiguous..ctor(IList entities)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ResolveAmbiguousReferenceByAccessibility(Ambiguous candidates)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ResolveAmbiguousReference(ReferenceExpression node, Ambiguous candidates)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMemberReferenceExpression(MemberReferenceExpression node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.LeaveMemberReferenceExpression(MemberReferenceExpression node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnMemberReferenceExpression(MemberReferenceExpression node)
>    at Boo.Lang.Compiler.Ast.MemberReferenceExpression.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    --- End of inner exception stack trace ---
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnError(Node node, Exception error)
>    at Boo.Lang.Compiler.Steps.AbstractVisitorCompilerStep.OnError(Node node, Exception error)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnMethodInvocationExpression(MethodInvocationExpression node)
>    at Boo.Lang.Compiler.Ast.MethodInvocationExpression.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnExpressionStatement(ExpressionStatement node)
>    at Boo.Lang.Compiler.Ast.ExpressionStatement.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnBlock(Block node)
>    at Boo.Lang.Compiler.Ast.Block.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessNodeInMethodContext(InternalMethod entity, INamespace ns, Node node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMethodBody(InternalMethod entity, INamespace ns)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMethodBody(InternalMethod entity)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessRegularMethod(Method node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnMethod(Method method)
>    at Boo.Lang.Compiler.Ast.Method.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.VisitTypeDefinition(TypeDefinition node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnClassDefinition(ClassDefinition node)
>    at Boo.Lang.Compiler.Ast.ClassDefinition.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnModule(Module module)
>    at Boo.Lang.Compiler.Ast.Module.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnCompileUnit(CompileUnit node)
>    at Boo.Lang.Compiler.Ast.CompileUnit.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.Run()
>    at Boo.Lang.Compiler.CompilerPipeline.RunStep(CompilerContext context, ICompilerStep step)
> Probably related to BOO-1023 and perhaps BOO-1055.

--
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-1064) Redundant explicit member instantiation causes compiler

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

Reply to Author | View Threaded | Show Only this Message


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

Cedric Vivier reassigned BOO-1064:
----------------------------------

    Assignee: Cedric Vivier

> Redundant explicit member instantiation causes compiler
> --------------------------------------------------------
>
>                 Key: BOO-1064
>                 URL: http://jira.codehaus.org/browse/BOO-1064
>             Project: Boo
>          Issue Type: Bug
>          Components: Compiler
>    Affects Versions: 0.8.2
>         Environment: Windows XP, under both boo 8.2 and svn
>            Reporter: Greg Nagel
>            Assignee: Cedric Vivier
>         Attachments: BOO-1064.patch
>
>
> {code}
> interface I:
> def Foo()
> class A(I):
> def I.Foo():
> print "A"
> class B(A):
> def I.Foo():
> print "B"
> b = B()
> b.Foo()
> {code}
> Does not matter if B also derives from I.
> Output:
> test.boo(22,3): BCE0055: Boo.Lang.Compiler.CompilerError: Internal compiler error: entities. ---> System.ArgumentException: entities
>    at Boo.Lang.Compiler.TypeSystem.Ambiguous..ctor(IEntity[] entities)
>    at Boo.Lang.Compiler.TypeSystem.Ambiguous..ctor(IList entities)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ResolveAmbiguousReferenceByAccessibility(Ambiguous candidates)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ResolveAmbiguousReference(ReferenceExpression node, Ambiguous candidates)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMemberReferenceExpression(MemberReferenceExpression node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.LeaveMemberReferenceExpression(MemberReferenceExpression node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnMemberReferenceExpression(MemberReferenceExpression node)
>    at Boo.Lang.Compiler.Ast.MemberReferenceExpression.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    --- End of inner exception stack trace ---
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnError(Node node, Exception error)
>    at Boo.Lang.Compiler.Steps.AbstractVisitorCompilerStep.OnError(Node node, Exception error)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnMethodInvocationExpression(MethodInvocationExpression node)
>    at Boo.Lang.Compiler.Ast.MethodInvocationExpression.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnExpressionStatement(ExpressionStatement node)
>    at Boo.Lang.Compiler.Ast.ExpressionStatement.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnBlock(Block node)
>    at Boo.Lang.Compiler.Ast.Block.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessNodeInMethodContext(InternalMethod entity, INamespace ns, Node node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMethodBody(InternalMethod entity, INamespace ns)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMethodBody(InternalMethod entity)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessRegularMethod(Method node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnMethod(Method method)
>    at Boo.Lang.Compiler.Ast.Method.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.VisitTypeDefinition(TypeDefinition node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnClassDefinition(ClassDefinition node)
>    at Boo.Lang.Compiler.Ast.ClassDefinition.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnModule(Module module)
>    at Boo.Lang.Compiler.Ast.Module.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnCompileUnit(CompileUnit node)
>    at Boo.Lang.Compiler.Ast.CompileUnit.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.Run()
>    at Boo.Lang.Compiler.CompilerPipeline.RunStep(CompilerContext context, ICompilerStep step)
> Probably related to BOO-1023 and perhaps BOO-1055.

--
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-1064) Overriden explicit interface implementation crashes compiler

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

Reply to Author | View Threaded | Show Only this Message


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

Cedric Vivier updated BOO-1064:
-------------------------------

    Description:
{code}
"""
B
"""

interface I:
        def Foo()

class A(I):
        def I.Foo():
                print "A"

class B(A):
        def I.Foo():
                print "B"

b = B()
(b as I).Foo()
{code}

Does not matter if B also derives from I.

Output:

test.boo(22,3): BCE0055: Boo.Lang.Compiler.CompilerError: Internal compiler error: entities. ---> System.ArgumentException: entities
   at Boo.Lang.Compiler.TypeSystem.Ambiguous..ctor(IEntity[] entities)
   at Boo.Lang.Compiler.TypeSystem.Ambiguous..ctor(IList entities)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ResolveAmbiguousReferenceByAccessibility(Ambiguous candidates)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ResolveAmbiguousReference(ReferenceExpression node, Ambiguous candidates)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMemberReferenceExpression(MemberReferenceExpression node)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.LeaveMemberReferenceExpression(MemberReferenceExpression node)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnMemberReferenceExpression(MemberReferenceExpression node)
   at Boo.Lang.Compiler.Ast.MemberReferenceExpression.Accept(IAstVisitor visitor)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
   --- End of inner exception stack trace ---
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnError(Node node, Exception error)
   at Boo.Lang.Compiler.Steps.AbstractVisitorCompilerStep.OnError(Node node, Exception error)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnMethodInvocationExpression(MethodInvocationExpression node)
   at Boo.Lang.Compiler.Ast.MethodInvocationExpression.Accept(IAstVisitor visitor)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnExpressionStatement(ExpressionStatement node)
   at Boo.Lang.Compiler.Ast.ExpressionStatement.Accept(IAstVisitor visitor)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnBlock(Block node)
   at Boo.Lang.Compiler.Ast.Block.Accept(IAstVisitor visitor)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessNodeInMethodContext(InternalMethod entity, INamespace ns, Node node)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMethodBody(InternalMethod entity, INamespace ns)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMethodBody(InternalMethod entity)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessRegularMethod(Method node)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnMethod(Method method)
   at Boo.Lang.Compiler.Ast.Method.Accept(IAstVisitor visitor)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.VisitTypeDefinition(TypeDefinition node)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnClassDefinition(ClassDefinition node)
   at Boo.Lang.Compiler.Ast.ClassDefinition.Accept(IAstVisitor visitor)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnModule(Module module)
   at Boo.Lang.Compiler.Ast.Module.Accept(IAstVisitor visitor)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnCompileUnit(CompileUnit node)
   at Boo.Lang.Compiler.Ast.CompileUnit.Accept(IAstVisitor visitor)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.Run()
   at Boo.Lang.Compiler.CompilerPipeline.RunStep(CompilerContext context, ICompilerStep step)

Probably related to BOO-1023 and perhaps BOO-1055.

  was:
{code}

interface I:
        def Foo()

class A(I):
        def I.Foo():
                print "A"

class B(A):
        def I.Foo():
                print "B"

b = B()
b.Foo()

{code}

Does not matter if B also derives from I.

Output:

test.boo(22,3): BCE0055: Boo.Lang.Compiler.CompilerError: Internal compiler error: entities. ---> System.ArgumentException: entities
   at Boo.Lang.Compiler.TypeSystem.Ambiguous..ctor(IEntity[] entities)
   at Boo.Lang.Compiler.TypeSystem.Ambiguous..ctor(IList entities)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ResolveAmbiguousReferenceByAccessibility(Ambiguous candidates)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ResolveAmbiguousReference(ReferenceExpression node, Ambiguous candidates)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMemberReferenceExpression(MemberReferenceExpression node)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.LeaveMemberReferenceExpression(MemberReferenceExpression node)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnMemberReferenceExpression(MemberReferenceExpression node)
   at Boo.Lang.Compiler.Ast.MemberReferenceExpression.Accept(IAstVisitor visitor)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
   --- End of inner exception stack trace ---
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnError(Node node, Exception error)
   at Boo.Lang.Compiler.Steps.AbstractVisitorCompilerStep.OnError(Node node, Exception error)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnMethodInvocationExpression(MethodInvocationExpression node)
   at Boo.Lang.Compiler.Ast.MethodInvocationExpression.Accept(IAstVisitor visitor)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnExpressionStatement(ExpressionStatement node)
   at Boo.Lang.Compiler.Ast.ExpressionStatement.Accept(IAstVisitor visitor)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnBlock(Block node)
   at Boo.Lang.Compiler.Ast.Block.Accept(IAstVisitor visitor)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessNodeInMethodContext(InternalMethod entity, INamespace ns, Node node)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMethodBody(InternalMethod entity, INamespace ns)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMethodBody(InternalMethod entity)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessRegularMethod(Method node)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnMethod(Method method)
   at Boo.Lang.Compiler.Ast.Method.Accept(IAstVisitor visitor)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.VisitTypeDefinition(TypeDefinition node)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnClassDefinition(ClassDefinition node)
   at Boo.Lang.Compiler.Ast.ClassDefinition.Accept(IAstVisitor visitor)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnModule(Module module)
   at Boo.Lang.Compiler.Ast.Module.Accept(IAstVisitor visitor)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnCompileUnit(CompileUnit node)
   at Boo.Lang.Compiler.Ast.CompileUnit.Accept(IAstVisitor visitor)
   at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
   at Boo.Lang.Compiler.Steps.ProcessMethodBodies.Run()
   at Boo.Lang.Compiler.CompilerPipeline.RunStep(CompilerContext context, ICompilerStep step)

Probably related to BOO-1023 and perhaps BOO-1055.

        Summary: Overriden explicit interface implementation crashes compiler  (was: Redundant explicit member instantiation causes compiler )

> Overriden explicit interface implementation crashes compiler
> ------------------------------------------------------------
>
>                 Key: BOO-1064
>                 URL: http://jira.codehaus.org/browse/BOO-1064
>             Project: Boo
>          Issue Type: Bug
>          Components: Compiler
>    Affects Versions: 0.8.2
>         Environment: Windows XP, under both boo 8.2 and svn
>            Reporter: Greg Nagel
>            Assignee: Cedric Vivier
>         Attachments: BOO-1064.patch
>
>
> {code}
> """
> B
> """
> interface I:
> def Foo()
> class A(I):
> def I.Foo():
> print "A"
> class B(A):
> def I.Foo():
> print "B"
> b = B()
> (b as I).Foo()
> {code}
> Does not matter if B also derives from I.
> Output:
> test.boo(22,3): BCE0055: Boo.Lang.Compiler.CompilerError: Internal compiler error: entities. ---> System.ArgumentException: entities
>    at Boo.Lang.Compiler.TypeSystem.Ambiguous..ctor(IEntity[] entities)
>    at Boo.Lang.Compiler.TypeSystem.Ambiguous..ctor(IList entities)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ResolveAmbiguousReferenceByAccessibility(Ambiguous candidates)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ResolveAmbiguousReference(ReferenceExpression node, Ambiguous candidates)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMemberReferenceExpression(MemberReferenceExpression node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.LeaveMemberReferenceExpression(MemberReferenceExpression node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnMemberReferenceExpression(MemberReferenceExpression node)
>    at Boo.Lang.Compiler.Ast.MemberReferenceExpression.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    --- End of inner exception stack trace ---
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnError(Node node, Exception error)
>    at Boo.Lang.Compiler.Steps.AbstractVisitorCompilerStep.OnError(Node node, Exception error)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnMethodInvocationExpression(MethodInvocationExpression node)
>    at Boo.Lang.Compiler.Ast.MethodInvocationExpression.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnExpressionStatement(ExpressionStatement node)
>    at Boo.Lang.Compiler.Ast.ExpressionStatement.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnBlock(Block node)
>    at Boo.Lang.Compiler.Ast.Block.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessNodeInMethodContext(InternalMethod entity, INamespace ns, Node node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMethodBody(InternalMethod entity, INamespace ns)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMethodBody(InternalMethod entity)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessRegularMethod(Method node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnMethod(Method method)
>    at Boo.Lang.Compiler.Ast.Method.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.VisitTypeDefinition(TypeDefinition node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnClassDefinition(ClassDefinition node)
>    at Boo.Lang.Compiler.Ast.ClassDefinition.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnModule(Module module)
>    at Boo.Lang.Compiler.Ast.Module.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnCompileUnit(CompileUnit node)
>    at Boo.Lang.Compiler.Ast.CompileUnit.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.Run()
>    at Boo.Lang.Compiler.CompilerPipeline.RunStep(CompilerContext context, ICompilerStep step)
> Probably related to BOO-1023 and perhaps BOO-1055.

--
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-1064) Overriden explicit interface implementation crashes compiler

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

Reply to Author | View Threaded | Show Only this Message


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

Cedric Vivier commented on BOO-1064:
------------------------------------

Above still cannot compile on trunk, but fails in EmitAssembly instead (no MethodInfo attached to the B).
It works though if B explicitely says it implements I (which was not the case originally).



> Overriden explicit interface implementation crashes compiler
> ------------------------------------------------------------
>
>                 Key: BOO-1064
>                 URL: http://jira.codehaus.org/browse/BOO-1064
>             Project: Boo
>          Issue Type: Bug
>          Components: Compiler
>    Affects Versions: 0.8.2
>         Environment: Windows XP, under both boo 8.2 and svn
>            Reporter: Greg Nagel
>            Assignee: Cedric Vivier
>         Attachments: BOO-1064.patch
>
>
> {code}
> """
> B
> """
> interface I:
> def Foo()
> class A(I):
> def I.Foo():
> print "A"
> class B(A):
> def I.Foo():
> print "B"
> b = B()
> (b as I).Foo()
> {code}
> Does not matter if B also derives from I.
> Output:
> test.boo(22,3): BCE0055: Boo.Lang.Compiler.CompilerError: Internal compiler error: entities. ---> System.ArgumentException: entities
>    at Boo.Lang.Compiler.TypeSystem.Ambiguous..ctor(IEntity[] entities)
>    at Boo.Lang.Compiler.TypeSystem.Ambiguous..ctor(IList entities)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ResolveAmbiguousReferenceByAccessibility(Ambiguous candidates)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ResolveAmbiguousReference(ReferenceExpression node, Ambiguous candidates)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMemberReferenceExpression(MemberReferenceExpression node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.LeaveMemberReferenceExpression(MemberReferenceExpression node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnMemberReferenceExpression(MemberReferenceExpression node)
>    at Boo.Lang.Compiler.Ast.MemberReferenceExpression.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    --- End of inner exception stack trace ---
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnError(Node node, Exception error)
>    at Boo.Lang.Compiler.Steps.AbstractVisitorCompilerStep.OnError(Node node, Exception error)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnMethodInvocationExpression(MethodInvocationExpression node)
>    at Boo.Lang.Compiler.Ast.MethodInvocationExpression.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnExpressionStatement(ExpressionStatement node)
>    at Boo.Lang.Compiler.Ast.ExpressionStatement.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnBlock(Block node)
>    at Boo.Lang.Compiler.Ast.Block.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessNodeInMethodContext(InternalMethod entity, INamespace ns, Node node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMethodBody(InternalMethod entity, INamespace ns)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMethodBody(InternalMethod entity)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessRegularMethod(Method node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnMethod(Method method)
>    at Boo.Lang.Compiler.Ast.Method.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.VisitTypeDefinition(TypeDefinition node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnClassDefinition(ClassDefinition node)
>    at Boo.Lang.Compiler.Ast.ClassDefinition.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnModule(Module module)
>    at Boo.Lang.Compiler.Ast.Module.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnCompileUnit(CompileUnit node)
>    at Boo.Lang.Compiler.Ast.CompileUnit.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.Run()
>    at Boo.Lang.Compiler.CompilerPipeline.RunStep(CompilerContext context, ICompilerStep step)
> Probably related to BOO-1023 and perhaps BOO-1055.

--
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-1064) Overriden explicit interface implementation crashes compiler

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

Reply to Author | View Threaded | Show Only this Message


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

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

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

> Overriden explicit interface implementation crashes compiler
> ------------------------------------------------------------
>
>                 Key: BOO-1064
>                 URL: http://jira.codehaus.org/browse/BOO-1064
>             Project: Boo
>          Issue Type: Bug
>          Components: Compiler
>    Affects Versions: 0.8.2
>         Environment: Windows XP, under both boo 8.2 and svn
>            Reporter: Greg Nagel
>            Assignee: Rodrigo B. de Oliveira
>             Fix For: 0.9.3
>
>         Attachments: BOO-1064.patch
>
>
> {code}
> """
> B
> """
> interface I:
> def Foo()
> class A(I):
> def I.Foo():
> print "A"
> class B(A):
> def I.Foo():
> print "B"
> b = B()
> (b as I).Foo()
> {code}
> Does not matter if B also derives from I.
> Output:
> test.boo(22,3): BCE0055: Boo.Lang.Compiler.CompilerError: Internal compiler error: entities. ---> System.ArgumentException: entities
>    at Boo.Lang.Compiler.TypeSystem.Ambiguous..ctor(IEntity[] entities)
>    at Boo.Lang.Compiler.TypeSystem.Ambiguous..ctor(IList entities)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ResolveAmbiguousReferenceByAccessibility(Ambiguous candidates)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ResolveAmbiguousReference(ReferenceExpression node, Ambiguous candidates)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMemberReferenceExpression(MemberReferenceExpression node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.LeaveMemberReferenceExpression(MemberReferenceExpression node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnMemberReferenceExpression(MemberReferenceExpression node)
>    at Boo.Lang.Compiler.Ast.MemberReferenceExpression.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    --- End of inner exception stack trace ---
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnError(Node node, Exception error)
>    at Boo.Lang.Compiler.Steps.AbstractVisitorCompilerStep.OnError(Node node, Exception error)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnMethodInvocationExpression(MethodInvocationExpression node)
>    at Boo.Lang.Compiler.Ast.MethodInvocationExpression.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnExpressionStatement(ExpressionStatement node)
>    at Boo.Lang.Compiler.Ast.ExpressionStatement.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnBlock(Block node)
>    at Boo.Lang.Compiler.Ast.Block.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessNodeInMethodContext(InternalMethod entity, INamespace ns, Node node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMethodBody(InternalMethod entity, INamespace ns)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMethodBody(InternalMethod entity)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessRegularMethod(Method node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnMethod(Method method)
>    at Boo.Lang.Compiler.Ast.Method.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.VisitTypeDefinition(TypeDefinition node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnClassDefinition(ClassDefinition node)
>    at Boo.Lang.Compiler.Ast.ClassDefinition.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnModule(Module module)
>    at Boo.Lang.Compiler.Ast.Module.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnCompileUnit(CompileUnit node)
>    at Boo.Lang.Compiler.Ast.CompileUnit.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.Run()
>    at Boo.Lang.Compiler.CompilerPipeline.RunStep(CompilerContext context, ICompilerStep step)
> Probably related to BOO-1023 and perhaps BOO-1055.

--
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-1064) Overriden explicit interface implementation crashes compiler

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

Reply to Author | View Threaded | Show Only this Message


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

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

       Resolution: Fixed
    Fix Version/s: 0.9.3

Fixed in trunk.

> Overriden explicit interface implementation crashes compiler
> ------------------------------------------------------------
>
>                 Key: BOO-1064
>                 URL: http://jira.codehaus.org/browse/BOO-1064
>             Project: Boo
>          Issue Type: Bug
>          Components: Compiler
>    Affects Versions: 0.8.2
>         Environment: Windows XP, under both boo 8.2 and svn
>            Reporter: Greg Nagel
>            Assignee: Rodrigo B. de Oliveira
>             Fix For: 0.9.3
>
>         Attachments: BOO-1064.patch
>
>
> {code}
> """
> B
> """
> interface I:
> def Foo()
> class A(I):
> def I.Foo():
> print "A"
> class B(A):
> def I.Foo():
> print "B"
> b = B()
> (b as I).Foo()
> {code}
> Does not matter if B also derives from I.
> Output:
> test.boo(22,3): BCE0055: Boo.Lang.Compiler.CompilerError: Internal compiler error: entities. ---> System.ArgumentException: entities
>    at Boo.Lang.Compiler.TypeSystem.Ambiguous..ctor(IEntity[] entities)
>    at Boo.Lang.Compiler.TypeSystem.Ambiguous..ctor(IList entities)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ResolveAmbiguousReferenceByAccessibility(Ambiguous candidates)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ResolveAmbiguousReference(ReferenceExpression node, Ambiguous candidates)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMemberReferenceExpression(MemberReferenceExpression node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.LeaveMemberReferenceExpression(MemberReferenceExpression node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnMemberReferenceExpression(MemberReferenceExpression node)
>    at Boo.Lang.Compiler.Ast.MemberReferenceExpression.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    --- End of inner exception stack trace ---
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnError(Node node, Exception error)
>    at Boo.Lang.Compiler.Steps.AbstractVisitorCompilerStep.OnError(Node node, Exception error)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnMethodInvocationExpression(MethodInvocationExpression node)
>    at Boo.Lang.Compiler.Ast.MethodInvocationExpression.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnExpressionStatement(ExpressionStatement node)
>    at Boo.Lang.Compiler.Ast.ExpressionStatement.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnBlock(Block node)
>    at Boo.Lang.Compiler.Ast.Block.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessNodeInMethodContext(InternalMethod entity, INamespace ns, Node node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMethodBody(InternalMethod entity, INamespace ns)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessMethodBody(InternalMethod entity)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.ProcessRegularMethod(Method node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnMethod(Method method)
>    at Boo.Lang.Compiler.Ast.Method.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.VisitTypeDefinition(TypeDefinition node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnClassDefinition(ClassDefinition node)
>    at Boo.Lang.Compiler.Ast.ClassDefinition.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnModule(Module module)
>    at Boo.Lang.Compiler.Ast.Module.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnCompileUnit(CompileUnit node)
>    at Boo.Lang.Compiler.Ast.CompileUnit.Accept(IAstVisitor visitor)
>    at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node)
>    at Boo.Lang.Compiler.Steps.ProcessMethodBodies.Run()
>    at Boo.Lang.Compiler.CompilerPipeline.RunStep(CompilerContext context, ICompilerStep step)
> Probably related to BOO-1023 and perhaps BOO-1055.

--
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