public void Accept(TraitNode node) { // Traits are PascalCase HassiumWarning.EnforceCasing(module, node.SourceLocation, node.Name, HassiumCasingType.Pascal); HassiumTrait trait = new HassiumTrait(node.Name); trait.IsPrivate = node.IsPrivate; foreach (var pair in node.Attributes) { methodStack.Push(new HassiumMethod(module)); pair.Value.Visit(this); emit(pair.Value.SourceLocation, InstructionType.Return); var type = methodStack.Pop(); HassiumDictionary.DictTypeDef.add(null, trait.Traits, pair.Value.SourceLocation, new HassiumString(pair.Key), type); } classStack.Peek().AddAttribute(node.Name, trait); }