Boo

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

Vote (0)
Watch (0)

Dates

  • Created:
    Updated: