private CheckResults Analyze() { if (this.options.Assembly == null) { return(CheckResults.Error("No assembly given to check")); } DebugOptions.Debug = this.options.ShowDebug; this.analyzers = new Dictionary <string, IMethodAnalysis> { { "non-null", new NonNullAnalysisFacade() } }; this.analysis_driver = new CodeContractsAnalysisDriver <IMethodResult <SymbolicValue> > ( new BasicAnalysisDriver(MetaDataProvider.Instance, CodeContractDecoder.Instance)); return(AnalyzeAssembly(this.options.Assembly)); }
private CheckResults AnalyzeAssembly(string assemblyPath) { IMetaDataProvider metadataDecoder = this.analysis_driver.MetaDataProvider; AssemblyNode assembly; string reason; if (!metadataDecoder.TryLoadAssembly(assemblyPath, out assembly, out reason)) { return(CheckResults.Error(string.Format("Cannot load assembly: {0}", reason))); } var proofResults = new Dictionary <string, ICollection <string> > (); foreach (Method method in metadataDecoder.Methods(assembly)) { AnalyzeMethod(method, proofResults); } if (proofResults.Count == 0) { return(CheckResults.Error("No methods found.")); } return(new CheckResults(null, null, proofResults)); }