public void UsingAMethodMarkedAsNotUsableFromScriptGivesAnError() { var er = new MockErrorReporter(false); Compile(new[] { "class Class { int UnusableMethod() {} public void M() { System.Func<int> f; f = UnusableMethod; } }" }, metadataImporter: new MockMetadataImporter { GetMethodSemantics = m => m.Name == "UnusableMethod" ? MethodScriptSemantics.NotUsableFromScript() : MethodScriptSemantics.NormalMethod(m.Name) }, errorReporter: er); Assert.That(er.AllMessagesText.Any(m => m.StartsWith("Error:") && m.Contains("Class.UnusableMethod"))); }
public void MethodImplementedAsNotUsableFromScriptDoesNotAppearOnTheType() { var metadataImporter = new MockMetadataImporter { GetMethodSemantics = method => MethodScriptSemantics.NotUsableFromScript() }; Compile(new[] { "class C { public static void M() {} }" }, metadataImporter: metadataImporter); FindClass("C").InstanceMethods.Should().BeEmpty(); }