Boo.Lang.Compiler.Ast.ClassDefinition.Merge C# (CSharp) Method

Merge() public method

public Merge ( ClassDefinition node ) : void
node ClassDefinition
return void
        public void Merge(ClassDefinition node)
        {
            if (null == node) throw new ArgumentNullException("node");
            if (ReferenceEquals(this, node)) return;
            this.Attributes.Extend(node.Attributes);
            this.BaseTypes.Extend(node.BaseTypes);
            this.Members.Extend(node.Members);
        }

Usage Example

Beispiel #1
0
		public void MergeIgnoresMatchingBaseTypes()
		{
			var foo = new SimpleTypeReference("Foo");
			var bar = new SimpleTypeReference("Bar");
			var fooOfBar = new GenericTypeReference("Foo", bar);
			var barOfFoo = new GenericTypeReference("Bar", foo);
			
			var subject = new ClassDefinition();
			subject.BaseTypes.Add(bar);
			subject.BaseTypes.Add(fooOfBar);

			var node = new ClassDefinition();
			node.BaseTypes.Add(foo);
			node.BaseTypes.Add(bar.CloneNode());
			node.BaseTypes.Add(fooOfBar.CloneNode());
			node.BaseTypes.Add(barOfFoo);

			subject.Merge(node);

			Assert.AreEqual(new[] { bar, fooOfBar, foo, barOfFoo }, subject.BaseTypes.ToArray());

		}