Boo
  1. Boo
  2. BOO-935

Declaring constraints on generic type parameters

    Details

    • Type: Improvement Improvement
    • Status: In Progress In Progress
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 0.8
    • Fix Version/s: None
    • Component/s: Compiler
    • Labels:
      None
    • Number of attachments :
      0

      Description

      The ability to declare constraints on generic type parameters for generic types and methods.
      These include base-type constraints, default constructor constraints, and struct/class constraints.

        Issue Links

          Activity

          Hide
          Avishay Lavie added a comment -

          Partially implemented as of revision 2996.

          Show
          Avishay Lavie added a comment - Partially implemented as of revision 2996.
          Hide
          Greg Nagel added a comment -

          I ran against a couple constraint bugs in SVN, but didn't want to report them separately, as constraints aren't quite finished. I have a couple test cases that fail for some odd reason.

          This first case fails only if A is defined after Z. It doesn't matter if you use an intermediate class (as shown in the second block).

          class B(A):
          	pass
          class Z[of T(A)]():
          	pass	
          class A:
          	pass
          Z[of B]()
          
          class Z[of T(A)]():
          	pass	
          class A:
          	pass
          Z[of A]()
          

          Here's the error:

          BCE0011: Boo.Lang.Compiler.CompilerError: An error occurred during the execution of the step 'Boo.Lang.Compiler.Steps.Em
          itAssembly': 'Could not find a Type for A.'. ---> System.InvalidOperationException: Could not find a Type for A.
          at Boo.Lang.Compiler.Steps.EmitAssembly.GetSystemType(IType tag) in c:\code\svnboo\src\Boo.Lang.Compiler\Steps\EmitAs
          sembly.cs:line 4096
          at Boo.Lang.Compiler.Steps.EmitAssembly.DefineGenericParameter(InternalGenericParameter parameter, GenericTypeParamet
          erBuilder builder) in c:\code\svnboo\src\Boo.Lang.Compiler\Steps\EmitAssembly.cs:line 4503
          at Boo.Lang.Compiler.Steps.EmitAssembly.DefineGenericParameters(GenericTypeParameterBuilder[] builders, GenericParame
          terDeclaration[] declarations) in c:\code\svnboo\src\Boo.Lang.Compiler\Steps\EmitAssembly.cs:line 4494
          at Boo.Lang.Compiler.Steps.EmitAssembly.DefineGenericParameters(TypeBuilder builder, GenericParameterDeclaration[] pa
          rameters) in c:\code\svnboo\src\Boo.Lang.Compiler\Steps\EmitAssembly.cs:line 4472
          at Boo.Lang.Compiler.Steps.EmitAssembly.DefineType(TypeDefinition typeDefinition) in c:\code\svnboo\src\Boo.Lang.Comp
          iler\Steps\EmitAssembly.cs:line 4553
          at Boo.Lang.Compiler.Steps.EmitAssembly.DefineTypes() in c:\code\svnboo\src\Boo.Lang.Compiler\Steps\EmitAssembly.cs:l
          ine 218
          at Boo.Lang.Compiler.Steps.EmitAssembly.Run() in c:\code\svnboo\src\Boo.Lang.Compiler\Steps\EmitAssembly.cs:line 192
          at Boo.Lang.Compiler.CompilerPipeline.RunStep(CompilerContext context, ICompilerStep step) in c:\code\svnboo\src\Boo.
          Lang.Compiler\CompilerPipeline.cs:line 311
          — End of inner exception stack trace —

          Show
          Greg Nagel added a comment - I ran against a couple constraint bugs in SVN, but didn't want to report them separately, as constraints aren't quite finished. I have a couple test cases that fail for some odd reason. This first case fails only if A is defined after Z. It doesn't matter if you use an intermediate class (as shown in the second block). class B(A): pass class Z[of T(A)](): pass class A: pass Z[of B]() class Z[of T(A)](): pass class A: pass Z[of A]() Here's the error: BCE0011: Boo.Lang.Compiler.CompilerError: An error occurred during the execution of the step 'Boo.Lang.Compiler.Steps.Em itAssembly': 'Could not find a Type for A.'. ---> System.InvalidOperationException: Could not find a Type for A. at Boo.Lang.Compiler.Steps.EmitAssembly.GetSystemType(IType tag) in c:\code\svnboo\src\Boo.Lang.Compiler\Steps\EmitAs sembly.cs:line 4096 at Boo.Lang.Compiler.Steps.EmitAssembly.DefineGenericParameter(InternalGenericParameter parameter, GenericTypeParamet erBuilder builder) in c:\code\svnboo\src\Boo.Lang.Compiler\Steps\EmitAssembly.cs:line 4503 at Boo.Lang.Compiler.Steps.EmitAssembly.DefineGenericParameters(GenericTypeParameterBuilder[] builders, GenericParame terDeclaration[] declarations) in c:\code\svnboo\src\Boo.Lang.Compiler\Steps\EmitAssembly.cs:line 4494 at Boo.Lang.Compiler.Steps.EmitAssembly.DefineGenericParameters(TypeBuilder builder, GenericParameterDeclaration[] pa rameters) in c:\code\svnboo\src\Boo.Lang.Compiler\Steps\EmitAssembly.cs:line 4472 at Boo.Lang.Compiler.Steps.EmitAssembly.DefineType(TypeDefinition typeDefinition) in c:\code\svnboo\src\Boo.Lang.Comp iler\Steps\EmitAssembly.cs:line 4553 at Boo.Lang.Compiler.Steps.EmitAssembly.DefineTypes() in c:\code\svnboo\src\Boo.Lang.Compiler\Steps\EmitAssembly.cs:l ine 218 at Boo.Lang.Compiler.Steps.EmitAssembly.Run() in c:\code\svnboo\src\Boo.Lang.Compiler\Steps\EmitAssembly.cs:line 192 at Boo.Lang.Compiler.CompilerPipeline.RunStep(CompilerContext context, ICompilerStep step) in c:\code\svnboo\src\Boo. Lang.Compiler\CompilerPipeline.cs:line 311 — End of inner exception stack trace —
          Hide
          Greg Nagel added a comment -

          Secondly, the constructor constraint doesn't appear to work correctly when used. It fails with an odd message:

          class A:
          	pass
          class B[of T(constructor)]:
          	pass	
          x as B[of A]
          

          test2.boo(1,7): BCE0015: Boo.Lang.Compiler.CompilerError: Node 'A.constructor' has not been correctly processed.
          at Boo.Lang.Compiler.TypeSystem.TypeSystemServices.InvalidNode(Node node) in c:\code\svnboo\src\Boo.Lang.Compiler\Typ
          eSystem\TypeSystemServices.cs:line 1358
          at Boo.Lang.Compiler.TypeSystem.TypeSystemServices.GetEntity(Node node) in c:\code\svnboo\src\Boo.Lang.Compiler\TypeS
          ystem\TypeSystemServices.cs:line 922
          at Boo.Lang.Compiler.TypeSystem.InternalClass.GetConstructors() in c:\code\svnboo\src\Boo.Lang.Compiler\TypeSystem\In
          ternalClass.cs:line 113
          at Boo.Lang.Compiler.TypeSystem.GenericConstructionChecker.HasDefaultConstructor(IType argument) in c:\code\svnboo\sr
          c\Boo.Lang.Compiler\TypeSystem\GenericsServices.cs:line 469
          at Boo.Lang.Compiler.TypeSystem.GenericConstructionChecker.ViolatesParameterConstraints(IGenericParameter parameter,
          IType argument) in c:\code\svnboo\src\Boo.Lang.Compiler\TypeSystem\GenericsServices.cs:line 431
          at Boo.Lang.Compiler.TypeSystem.GenericConstructionChecker.ViolatesParameterConstraints(IEntity definition) in c:\cod
          e\svnboo\src\Boo.Lang.Compiler\TypeSystem\GenericsServices.cs:line 395
          at Boo.Lang.Compiler.TypeSystem.GenericsServices.CheckGenericConstruction(Node node, IEntity definition, IType[] argu
          mentTypes, CompilerErrorCollection errors) in c:\code\svnboo\src\Boo.Lang.Compiler\TypeSystem\GenericsServices.cs:line 1
          40
          at Boo.Lang.Compiler.TypeSystem.GenericsServices.ConstructEntity(Node constructionNode, IEntity definition, IType[] t
          ypeArguments) in c:\code\svnboo\src\Boo.Lang.Compiler\TypeSystem\GenericsServices.cs:line 64
          at Boo.Lang.Compiler.TypeSystem.NameResolutionService.ResolveGenericTypeReference(GenericTypeReference gtr, IEntity d
          efinition) in c:\code\svnboo\src\Boo.Lang.Compiler\TypeSystem\NameResolutionService.cs:line 344
          at Boo.Lang.Compiler.TypeSystem.NameResolutionService.ResolveSimpleTypeReference(SimpleTypeReference node) in c:\code
          \svnboo\src\Boo.Lang.Compiler\TypeSystem\NameResolutionService.cs:line 302
          at Boo.Lang.Compiler.Steps.ResolveTypeReferences.OnGenericTypeReference(GenericTypeReference node) in c:\code\svnboo\
          src\Boo.Lang.Compiler\Steps\ResolveTypeReferences.cs:line 72
          at Boo.Lang.Compiler.Ast.GenericTypeReference.Accept(IAstVisitor visitor) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast
          \Impl\GenericTypeReferenceImpl.cs:line 63
          at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\DepthFirstVis
          itor.cs:line 47
          at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnDeclaration(Declaration node) in c:\code\svnboo\src\Boo.Lang.Compiler\As
          t\Impl\DepthFirstVisitor.cs:line 591
          at Boo.Lang.Compiler.Ast.Declaration.Accept(IAstVisitor visitor) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\Impl\Dec
          larationImpl.cs:line 65
          at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\DepthFirstVis
          itor.cs:line 47
          at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnDeclarationStatement(DeclarationStatement node) in c:\code\svnboo\src\Bo
          o.Lang.Compiler\Ast\Impl\DepthFirstVisitor.cs:line 721
          at Boo.Lang.Compiler.Ast.DeclarationStatement.Accept(IAstVisitor visitor) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast
          \Impl\DeclarationStatementImpl.cs:line 65
          at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\DepthFirstVis
          itor.cs:line 47
          at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\DepthFirst
          Visitor.cs:line 95
          at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection) in c:\code\svnboo\src\Boo.Lang.Compi
          ler\Ast\DepthFirstVisitor.cs:line 103
          at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnBlock(Block node) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\Impl\Depth
          FirstVisitor.cs:line 699
          at Boo.Lang.Compiler.Ast.Block.Accept(IAstVisitor visitor) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\Impl\BlockImpl
          .cs:line 63
          at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\DepthFirstVis
          itor.cs:line 47
          at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnMethod(Method node) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\Impl\Dep
          thFirstVisitor.cs:line 469
          at Boo.Lang.Compiler.Steps.ResolveTypeReferences.OnMethod(Method node) in c:\code\svnboo\src\Boo.Lang.Compiler\Steps\
          ResolveTypeReferences.cs:line 56
          at Boo.Lang.Compiler.Ast.Method.Accept(IAstVisitor visitor) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\Impl\MethodIm
          pl.cs:line 69
          at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\DepthFirstVis
          itor.cs:line 47
          at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\DepthFirst
          Visitor.cs:line 95
          at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection) in c:\code\svnboo\src\Boo.Lang.Compi
          ler\Ast\DepthFirstVisitor.cs:line 103
          at Boo.Lang.Compiler.Steps.AbstractNamespaceSensitiveVisitorCompilerStep.VisitTypeDefinitionBody(TypeDefinition node)
          in c:\code\svnboo\src\Boo.Lang.Compiler\Steps\AbstractNamespaceSensitiveVisitorCompilerStep.cs:line 94
          at Boo.Lang.Compiler.Steps.AbstractNamespaceSensitiveVisitorCompilerStep.OnClassDefinition(ClassDefinition node) in c
          :\code\svnboo\src\Boo.Lang.Compiler\Steps\AbstractNamespaceSensitiveVisitorCompilerStep.cs:line 72
          at Boo.Lang.Compiler.Ast.ClassDefinition.Accept(IAstVisitor visitor) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\Impl
          \ClassDefinitionImpl.cs:line 61
          at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\DepthFirstVis
          itor.cs:line 47
          at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\DepthFirst
          Visitor.cs:line 95
          at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection) in c:\code\svnboo\src\Boo.Lang.Compi
          ler\Ast\DepthFirstVisitor.cs:line 103
          at Boo.Lang.Compiler.Steps.AbstractNamespaceSensitiveVisitorCompilerStep.VisitTypeDefinitionBody(TypeDefinition node)
          in c:\code\svnboo\src\Boo.Lang.Compiler\Steps\AbstractNamespaceSensitiveVisitorCompilerStep.cs:line 94
          at Boo.Lang.Compiler.Steps.AbstractNamespaceSensitiveVisitorCompilerStep.OnModule(Module module) in c:\code\svnboo\sr
          c\Boo.Lang.Compiler\Steps\AbstractNamespaceSensitiveVisitorCompilerStep.cs:line 64
          at Boo.Lang.Compiler.Ast.Module.Accept(IAstVisitor visitor) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\Impl\ModuleIm
          pl.cs:line 69
          at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\DepthFirstVis
          itor.cs:line 47
          at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\DepthFirst
          Visitor.cs:line 95
          at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection`1 collection) in c:\code\svnboo\src\Boo.Lang.Compi
          ler\Ast\DepthFirstVisitor.cs:line 103
          at Boo.Lang.Compiler.Steps.ResolveTypeReferences.Run() in c:\code\svnboo\src\Boo.Lang.Compiler\Steps\ResolveTypeRefer
          ences.cs:line 42
          at Boo.Lang.Compiler.CompilerPipeline.RunStep(CompilerContext context, ICompilerStep step) in c:\code\svnboo\src\Boo.
          Lang.Compiler\CompilerPipeline.cs:line 311

          Show
          Greg Nagel added a comment - Secondly, the constructor constraint doesn't appear to work correctly when used. It fails with an odd message: class A: pass class B[of T(constructor)]: pass x as B[of A] test2.boo(1,7): BCE0015: Boo.Lang.Compiler.CompilerError: Node 'A.constructor' has not been correctly processed. at Boo.Lang.Compiler.TypeSystem.TypeSystemServices.InvalidNode(Node node) in c:\code\svnboo\src\Boo.Lang.Compiler\Typ eSystem\TypeSystemServices.cs:line 1358 at Boo.Lang.Compiler.TypeSystem.TypeSystemServices.GetEntity(Node node) in c:\code\svnboo\src\Boo.Lang.Compiler\TypeS ystem\TypeSystemServices.cs:line 922 at Boo.Lang.Compiler.TypeSystem.InternalClass.GetConstructors() in c:\code\svnboo\src\Boo.Lang.Compiler\TypeSystem\In ternalClass.cs:line 113 at Boo.Lang.Compiler.TypeSystem.GenericConstructionChecker.HasDefaultConstructor(IType argument) in c:\code\svnboo\sr c\Boo.Lang.Compiler\TypeSystem\GenericsServices.cs:line 469 at Boo.Lang.Compiler.TypeSystem.GenericConstructionChecker.ViolatesParameterConstraints(IGenericParameter parameter, IType argument) in c:\code\svnboo\src\Boo.Lang.Compiler\TypeSystem\GenericsServices.cs:line 431 at Boo.Lang.Compiler.TypeSystem.GenericConstructionChecker.ViolatesParameterConstraints(IEntity definition) in c:\cod e\svnboo\src\Boo.Lang.Compiler\TypeSystem\GenericsServices.cs:line 395 at Boo.Lang.Compiler.TypeSystem.GenericsServices.CheckGenericConstruction(Node node, IEntity definition, IType[] argu mentTypes, CompilerErrorCollection errors) in c:\code\svnboo\src\Boo.Lang.Compiler\TypeSystem\GenericsServices.cs:line 1 40 at Boo.Lang.Compiler.TypeSystem.GenericsServices.ConstructEntity(Node constructionNode, IEntity definition, IType[] t ypeArguments) in c:\code\svnboo\src\Boo.Lang.Compiler\TypeSystem\GenericsServices.cs:line 64 at Boo.Lang.Compiler.TypeSystem.NameResolutionService.ResolveGenericTypeReference(GenericTypeReference gtr, IEntity d efinition) in c:\code\svnboo\src\Boo.Lang.Compiler\TypeSystem\NameResolutionService.cs:line 344 at Boo.Lang.Compiler.TypeSystem.NameResolutionService.ResolveSimpleTypeReference(SimpleTypeReference node) in c:\code \svnboo\src\Boo.Lang.Compiler\TypeSystem\NameResolutionService.cs:line 302 at Boo.Lang.Compiler.Steps.ResolveTypeReferences.OnGenericTypeReference(GenericTypeReference node) in c:\code\svnboo\ src\Boo.Lang.Compiler\Steps\ResolveTypeReferences.cs:line 72 at Boo.Lang.Compiler.Ast.GenericTypeReference.Accept(IAstVisitor visitor) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast \Impl\GenericTypeReferenceImpl.cs:line 63 at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\DepthFirstVis itor.cs:line 47 at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnDeclaration(Declaration node) in c:\code\svnboo\src\Boo.Lang.Compiler\As t\Impl\DepthFirstVisitor.cs:line 591 at Boo.Lang.Compiler.Ast.Declaration.Accept(IAstVisitor visitor) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\Impl\Dec larationImpl.cs:line 65 at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\DepthFirstVis itor.cs:line 47 at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnDeclarationStatement(DeclarationStatement node) in c:\code\svnboo\src\Bo o.Lang.Compiler\Ast\Impl\DepthFirstVisitor.cs:line 721 at Boo.Lang.Compiler.Ast.DeclarationStatement.Accept(IAstVisitor visitor) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast \Impl\DeclarationStatementImpl.cs:line 65 at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\DepthFirstVis itor.cs:line 47 at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\DepthFirst Visitor.cs:line 95 at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit [T] (NodeCollection`1 collection) in c:\code\svnboo\src\Boo.Lang.Compi ler\Ast\DepthFirstVisitor.cs:line 103 at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnBlock(Block node) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\Impl\Depth FirstVisitor.cs:line 699 at Boo.Lang.Compiler.Ast.Block.Accept(IAstVisitor visitor) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\Impl\BlockImpl .cs:line 63 at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\DepthFirstVis itor.cs:line 47 at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnMethod(Method node) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\Impl\Dep thFirstVisitor.cs:line 469 at Boo.Lang.Compiler.Steps.ResolveTypeReferences.OnMethod(Method node) in c:\code\svnboo\src\Boo.Lang.Compiler\Steps\ ResolveTypeReferences.cs:line 56 at Boo.Lang.Compiler.Ast.Method.Accept(IAstVisitor visitor) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\Impl\MethodIm pl.cs:line 69 at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\DepthFirstVis itor.cs:line 47 at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\DepthFirst Visitor.cs:line 95 at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit [T] (NodeCollection`1 collection) in c:\code\svnboo\src\Boo.Lang.Compi ler\Ast\DepthFirstVisitor.cs:line 103 at Boo.Lang.Compiler.Steps.AbstractNamespaceSensitiveVisitorCompilerStep.VisitTypeDefinitionBody(TypeDefinition node) in c:\code\svnboo\src\Boo.Lang.Compiler\Steps\AbstractNamespaceSensitiveVisitorCompilerStep.cs:line 94 at Boo.Lang.Compiler.Steps.AbstractNamespaceSensitiveVisitorCompilerStep.OnClassDefinition(ClassDefinition node) in c :\code\svnboo\src\Boo.Lang.Compiler\Steps\AbstractNamespaceSensitiveVisitorCompilerStep.cs:line 72 at Boo.Lang.Compiler.Ast.ClassDefinition.Accept(IAstVisitor visitor) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\Impl \ClassDefinitionImpl.cs:line 61 at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\DepthFirstVis itor.cs:line 47 at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\DepthFirst Visitor.cs:line 95 at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit [T] (NodeCollection`1 collection) in c:\code\svnboo\src\Boo.Lang.Compi ler\Ast\DepthFirstVisitor.cs:line 103 at Boo.Lang.Compiler.Steps.AbstractNamespaceSensitiveVisitorCompilerStep.VisitTypeDefinitionBody(TypeDefinition node) in c:\code\svnboo\src\Boo.Lang.Compiler\Steps\AbstractNamespaceSensitiveVisitorCompilerStep.cs:line 94 at Boo.Lang.Compiler.Steps.AbstractNamespaceSensitiveVisitorCompilerStep.OnModule(Module module) in c:\code\svnboo\sr c\Boo.Lang.Compiler\Steps\AbstractNamespaceSensitiveVisitorCompilerStep.cs:line 64 at Boo.Lang.Compiler.Ast.Module.Accept(IAstVisitor visitor) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\Impl\ModuleIm pl.cs:line 69 at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\DepthFirstVis itor.cs:line 47 at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array) in c:\code\svnboo\src\Boo.Lang.Compiler\Ast\DepthFirst Visitor.cs:line 95 at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit [T] (NodeCollection`1 collection) in c:\code\svnboo\src\Boo.Lang.Compi ler\Ast\DepthFirstVisitor.cs:line 103 at Boo.Lang.Compiler.Steps.ResolveTypeReferences.Run() in c:\code\svnboo\src\Boo.Lang.Compiler\Steps\ResolveTypeRefer ences.cs:line 42 at Boo.Lang.Compiler.CompilerPipeline.RunStep(CompilerContext context, ICompilerStep step) in c:\code\svnboo\src\Boo. Lang.Compiler\CompilerPipeline.cs:line 311
          Hide
          Avishay Lavie added a comment -

          Thanks, I'll certainly look into these.
          As mentioned, constraints aren't quite done yet, and these make for very good testcases as to the parts that still don't work. Please keep them coming!

          Show
          Avishay Lavie added a comment - Thanks, I'll certainly look into these. As mentioned, constraints aren't quite done yet, and these make for very good testcases as to the parts that still don't work. Please keep them coming!
          Hide
          Avishay Lavie added a comment -

          The first issue, in both forms, is resolved in r3047.

          Show
          Avishay Lavie added a comment - The first issue, in both forms, is resolved in r3047.
          Hide
          Avishay Lavie added a comment -

          The second issue is resolved in r3048.

          Thanks for reporting these!

          Show
          Avishay Lavie added a comment - The second issue is resolved in r3048. Thanks for reporting these!

            People

            • Assignee:
              Avishay Lavie
              Reporter:
              Avishay Lavie
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated: