<!doctype html><html><head><meta name='viewport' content='width=device-width,initial-scale=1'><meta charset='UTF-8'><link rel='stylesheet' type='text/css' href='../../../../css/llvm-cov.css'><script src='../../../control.js'></script><script>
// Sync theme with main site and setup theme toggle
(function() {
const THEME_KEY = 'vb6parse-theme';
function getSystemPreference() {
return (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) ? 'dark' : 'light';
}
function getTheme() {
return localStorage.getItem(THEME_KEY) || getSystemPreference();
}
function applyTheme(theme) {
document.documentElement.setAttribute('data-theme', theme);
const themeIcon = document.querySelector('.theme-icon');
if (themeIcon) {
themeIcon.textContent = theme === 'dark' ? '☀️' : '🌙';
}
}
function toggleTheme() {
const currentTheme = getTheme();
const newTheme = currentTheme === 'dark' ? 'light' : 'dark';
localStorage.setItem(THEME_KEY, newTheme);
applyTheme(newTheme);
}
// Apply theme immediately
const theme = getTheme();
applyTheme(theme);
// Setup toggle button when DOM is ready
document.addEventListener('DOMContentLoaded', function() {
const toggle = document.querySelector('.theme-toggle');
if (toggle) {
toggle.addEventListener('click', toggleTheme);
}
});
})();
</script></head><body><header>
<div class="container">
<h1>VB6Parse Coverage Report</h1>
<p class="tagline">Generated from llvm-cov</p>
</div>
</header>
<nav>
<div class="container">
<a href='../../../../../coverage.html'>Coverage Report</a>
<a href='../../../../../index.html'>Overview</a>
<button id="theme-toggle" class="theme-toggle" aria-label="Toggle theme">
<span class="theme-icon">🌙</span>
</button>
</div>
</nav><span class='control'><a href='javascript:next_line()'>next uncovered line (L)</a>, <a href='javascript:next_region()'>next uncovered region (R)</a>, <a href='javascript:next_branch()'>next uncovered branch (B)</a></span><div class='centered'><table><div class='source-name-title'><a href='https://github.com/scriptandcompile/vb6parse/blob/master/src/files/project/mod.rs'>src/files/project/mod.rs</a></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L1' href='#L1'><pre>1</pre></a></td><td class='skipped-line'></td><td class='code'><pre>//! Defines the `ProjectFile` struct and related parsing functions for VB6 Project files.</pre></td></tr><tr><td class='line-number'><a name='L2' href='#L2'><pre>2</pre></a></td><td class='skipped-line'></td><td class='code'><pre>//!</pre></td></tr><tr><td class='line-number'><a name='L3' href='#L3'><pre>3</pre></a></td><td class='skipped-line'></td><td class='code'><pre>//! Handles extraction of project type, references, objects, modules, classes, forms,</pre></td></tr><tr><td class='line-number'><a name='L4' href='#L4'><pre>4</pre></a></td><td class='skipped-line'></td><td class='code'><pre>//! user controls, user documents, properties, and other related information from the Project file.</pre></td></tr><tr><td class='line-number'><a name='L5' href='#L5'><pre>5</pre></a></td><td class='skipped-line'></td><td class='code'><pre>//!</pre></td></tr><tr><td class='line-number'><a name='L6' href='#L6'><pre>6</pre></a></td><td class='skipped-line'></td><td class='code'><pre>pub mod compilesettings;</pre></td></tr><tr><td class='line-number'><a name='L7' href='#L7'><pre>7</pre></a></td><td class='skipped-line'></td><td class='code'><pre>pub mod properties;</pre></td></tr><tr><td class='line-number'><a name='L8' href='#L8'><pre>8</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L9' href='#L9'><pre>9</pre></a></td><td class='skipped-line'></td><td class='code'><pre>use std::collections::HashMap;</pre></td></tr><tr><td class='line-number'><a name='L10' href='#L10'><pre>10</pre></a></td><td class='skipped-line'></td><td class='code'><pre>use std::convert::TryFrom;</pre></td></tr><tr><td class='line-number'><a name='L11' href='#L11'><pre>11</pre></a></td><td class='skipped-line'></td><td class='code'><pre>use std::fmt::{Debug, Display};</pre></td></tr><tr><td class='line-number'><a name='L12' href='#L12'><pre>12</pre></a></td><td class='skipped-line'></td><td class='code'><pre>use std::str::FromStr;</pre></td></tr><tr><td class='line-number'><a name='L13' href='#L13'><pre>13</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L14' href='#L14'><pre>14</pre></a></td><td class='skipped-line'></td><td class='code'><pre>use serde::Serialize;</pre></td></tr><tr><td class='line-number'><a name='L15' href='#L15'><pre>15</pre></a></td><td class='skipped-line'></td><td class='code'><pre>use strum::{EnumMessage, IntoEnumIterator};</pre></td></tr><tr><td class='line-number'><a name='L16' href='#L16'><pre>16</pre></a></td><td class='skipped-line'></td><td class='code'><pre>use uuid::Uuid;</pre></td></tr><tr><td class='line-number'><a name='L17' href='#L17'><pre>17</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L18' href='#L18'><pre>18</pre></a></td><td class='skipped-line'></td><td class='code'><pre>use crate::{</pre></td></tr><tr><td class='line-number'><a name='L19' href='#L19'><pre>19</pre></a></td><td class='skipped-line'></td><td class='code'><pre> errors::{ErrorDetails, ProjectErrorKind},</pre></td></tr><tr><td class='line-number'><a name='L20' href='#L20'><pre>20</pre></a></td><td class='skipped-line'></td><td class='code'><pre> files::common::ObjectReference,</pre></td></tr><tr><td class='line-number'><a name='L21' href='#L21'><pre>21</pre></a></td><td class='skipped-line'></td><td class='code'><pre> files::project::{</pre></td></tr><tr><td class='line-number'><a name='L22' href='#L22'><pre>22</pre></a></td><td class='skipped-line'></td><td class='code'><pre> compilesettings::CompilationType,</pre></td></tr><tr><td class='line-number'><a name='L23' href='#L23'><pre>23</pre></a></td><td class='skipped-line'></td><td class='code'><pre> properties::{CompileTargetType, ProjectProperties},</pre></td></tr><tr><td class='line-number'><a name='L24' href='#L24'><pre>24</pre></a></td><td class='skipped-line'></td><td class='code'><pre> },</pre></td></tr><tr><td class='line-number'><a name='L25' href='#L25'><pre>25</pre></a></td><td class='skipped-line'></td><td class='code'><pre> io::{Comparator, SourceFile, SourceStream},</pre></td></tr><tr><td class='line-number'><a name='L26' href='#L26'><pre>26</pre></a></td><td class='skipped-line'></td><td class='code'><pre> parsers::ParseResult,</pre></td></tr><tr><td class='line-number'><a name='L27' href='#L27'><pre>27</pre></a></td><td class='skipped-line'></td><td class='code'><pre>};</pre></td></tr><tr><td class='line-number'><a name='L28' href='#L28'><pre>28</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L29' href='#L29'><pre>29</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// Represents a VB6 Project file.</pre></td></tr><tr><td class='line-number'><a name='L30' href='#L30'><pre>30</pre></a></td><td class='skipped-line'></td><td class='code'><pre>///</pre></td></tr><tr><td class='line-number'><a name='L31' href='#L31'><pre>31</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// Contains information about the project's type, references, objects, modules, classes, forms,</pre></td></tr><tr><td class='line-number'><a name='L32' href='#L32'><pre>32</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// user controls, user documents, properties, and other related information.</pre></td></tr><tr><td class='line-number'><a name='L33' href='#L33'><pre>33</pre></a></td><td class='skipped-line'></td><td class='code'><pre>#[derive(Debug, PartialEq, Eq, Clone, Serialize, Default)]</pre></td></tr><tr><td class='line-number'><a name='L34' href='#L34'><pre>34</pre></a></td><td class='skipped-line'></td><td class='code'><pre>pub struct ProjectFile<'a> {</pre></td></tr><tr><td class='line-number'><a name='L35' href='#L35'><pre>35</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// The type of the project (e.g., Exe, Dll, etc.).</pre></td></tr><tr><td class='line-number'><a name='L36' href='#L36'><pre>36</pre></a></td><td class='skipped-line'></td><td class='code'><pre> pub project_type: CompileTargetType,</pre></td></tr><tr><td class='line-number'><a name='L37' href='#L37'><pre>37</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// The list of references in the project.</pre></td></tr><tr><td class='line-number'><a name='L38' href='#L38'><pre>38</pre></a></td><td class='skipped-line'></td><td class='code'><pre> references: Vec<ProjectReference<'a>>,</pre></td></tr><tr><td class='line-number'><a name='L39' href='#L39'><pre>39</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// The list of object references in the project.</pre></td></tr><tr><td class='line-number'><a name='L40' href='#L40'><pre>40</pre></a></td><td class='skipped-line'></td><td class='code'><pre> objects: Vec<ObjectReference>,</pre></td></tr><tr><td class='line-number'><a name='L41' href='#L41'><pre>41</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// The list of module references in the project.</pre></td></tr><tr><td class='line-number'><a name='L42' href='#L42'><pre>42</pre></a></td><td class='skipped-line'></td><td class='code'><pre> modules: Vec<ProjectModuleReference<'a>>,</pre></td></tr><tr><td class='line-number'><a name='L43' href='#L43'><pre>43</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// The list of class references in the project.</pre></td></tr><tr><td class='line-number'><a name='L44' href='#L44'><pre>44</pre></a></td><td class='skipped-line'></td><td class='code'><pre> classes: Vec<ProjectClassReference<'a>>,</pre></td></tr><tr><td class='line-number'><a name='L45' href='#L45'><pre>45</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// The list of related documents in the project.</pre></td></tr><tr><td class='line-number'><a name='L46' href='#L46'><pre>46</pre></a></td><td class='skipped-line'></td><td class='code'><pre> related_documents: Vec<&'a str>,</pre></td></tr><tr><td class='line-number'><a name='L47' href='#L47'><pre>47</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// The list of property pages in the project.</pre></td></tr><tr><td class='line-number'><a name='L48' href='#L48'><pre>48</pre></a></td><td class='skipped-line'></td><td class='code'><pre> property_pages: Vec<&'a str>,</pre></td></tr><tr><td class='line-number'><a name='L49' href='#L49'><pre>49</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// The list of designers in the project.</pre></td></tr><tr><td class='line-number'><a name='L50' href='#L50'><pre>50</pre></a></td><td class='skipped-line'></td><td class='code'><pre> designers: Vec<&'a str>,</pre></td></tr><tr><td class='line-number'><a name='L51' href='#L51'><pre>51</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// The list of forms in the project.</pre></td></tr><tr><td class='line-number'><a name='L52' href='#L52'><pre>52</pre></a></td><td class='skipped-line'></td><td class='code'><pre> forms: Vec<&'a str>,</pre></td></tr><tr><td class='line-number'><a name='L53' href='#L53'><pre>53</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// The list of user controls in the project.</pre></td></tr><tr><td class='line-number'><a name='L54' href='#L54'><pre>54</pre></a></td><td class='skipped-line'></td><td class='code'><pre> user_controls: Vec<&'a str>,</pre></td></tr><tr><td class='line-number'><a name='L55' href='#L55'><pre>55</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// The list of user documents in the project.</pre></td></tr><tr><td class='line-number'><a name='L56' href='#L56'><pre>56</pre></a></td><td class='skipped-line'></td><td class='code'><pre> user_documents: Vec<&'a str>,</pre></td></tr><tr><td class='line-number'><a name='L57' href='#L57'><pre>57</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Other properties grouped by section headers.</pre></td></tr><tr><td class='line-number'><a name='L58' href='#L58'><pre>58</pre></a></td><td class='skipped-line'></td><td class='code'><pre> pub other_properties: HashMap<&'a str, HashMap<&'a str, &'a str>>,</pre></td></tr><tr><td class='line-number'><a name='L59' href='#L59'><pre>59</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// The project properties.</pre></td></tr><tr><td class='line-number'><a name='L60' href='#L60'><pre>60</pre></a></td><td class='skipped-line'></td><td class='code'><pre> pub properties: ProjectProperties<'a>,</pre></td></tr><tr><td class='line-number'><a name='L61' href='#L61'><pre>61</pre></a></td><td class='skipped-line'></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L62' href='#L62'><pre>62</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L63' href='#L63'><pre>63</pre></a></td><td class='skipped-line'></td><td class='code'><pre>impl Display for ProjectFile<'_> {</pre></td></tr><tr><td class='line-number'><a name='L64' href='#L64'><pre>64</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result</span> {</pre></td></tr><tr><td class='line-number'><a name='L65' href='#L65'><pre>65</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>write!</span>(<span class='region red'>f</span>, "VB6 Project File: Type={:?}, References={}, Objects={}, Modules={}, Classes={}, Forms={}, UserControls={}, UserDocuments={}, RelatedDocuments={}, PropertyPages={}", </pre></td></tr><tr><td class='line-number'><a name='L66' href='#L66'><pre>66</pre></a></td><td class='skipped-line'></td><td class='code'><pre> self.project_type,</pre></td></tr><tr><td class='line-number'><a name='L67' href='#L67'><pre>67</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>self.references</span>.<span class='region red'>len</span>(),</pre></td></tr><tr><td class='line-number'><a name='L68' href='#L68'><pre>68</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>self.objects</span>.<span class='region red'>len</span>(),</pre></td></tr><tr><td class='line-number'><a name='L69' href='#L69'><pre>69</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>self.modules</span>.<span class='region red'>len</span>(),</pre></td></tr><tr><td class='line-number'><a name='L70' href='#L70'><pre>70</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>self.classes</span>.<span class='region red'>len</span>(),</pre></td></tr><tr><td class='line-number'><a name='L71' href='#L71'><pre>71</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>self.forms</span>.<span class='region red'>len</span>(),</pre></td></tr><tr><td class='line-number'><a name='L72' href='#L72'><pre>72</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>self.user_controls</span>.<span class='region red'>len</span>(),</pre></td></tr><tr><td class='line-number'><a name='L73' href='#L73'><pre>73</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>self.user_documents</span>.<span class='region red'>len</span>(),</pre></td></tr><tr><td class='line-number'><a name='L74' href='#L74'><pre>74</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>self.related_documents</span>.<span class='region red'>len</span>(),</pre></td></tr><tr><td class='line-number'><a name='L75' href='#L75'><pre>75</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>self.property_pages</span>.<span class='region red'>len</span>()</pre></td></tr><tr><td class='line-number'><a name='L76' href='#L76'><pre>76</pre></a></td><td class='skipped-line'></td><td class='code'><pre> )</pre></td></tr><tr><td class='line-number'><a name='L77' href='#L77'><pre>77</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L78' href='#L78'><pre>78</pre></a></td><td class='skipped-line'></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L79' href='#L79'><pre>79</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L80' href='#L80'><pre>80</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// Represents a reference to either a compiled object or a sub-project.</pre></td></tr><tr><td class='line-number'><a name='L81' href='#L81'><pre>81</pre></a></td><td class='skipped-line'></td><td class='code'><pre>#[derive(Debug, PartialEq, Eq, Copy, Clone, Hash)]</pre></td></tr><tr><td class='line-number'><a name='L82' href='#L82'><pre>82</pre></a></td><td class='skipped-line'></td><td class='code'><pre>pub enum ProjectReference<'a> {</pre></td></tr><tr><td class='line-number'><a name='L83' href='#L83'><pre>83</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// A reference to a compiled object.</pre></td></tr><tr><td class='line-number'><a name='L84' href='#L84'><pre>84</pre></a></td><td class='skipped-line'></td><td class='code'><pre> Compiled {</pre></td></tr><tr><td class='line-number'><a name='L85' href='#L85'><pre>85</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// The UUID of the compiled object.</pre></td></tr><tr><td class='line-number'><a name='L86' href='#L86'><pre>86</pre></a></td><td class='skipped-line'></td><td class='code'><pre> uuid: Uuid,</pre></td></tr><tr><td class='line-number'><a name='L87' href='#L87'><pre>87</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// An unknown string field.</pre></td></tr><tr><td class='line-number'><a name='L88' href='#L88'><pre>88</pre></a></td><td class='skipped-line'></td><td class='code'><pre> unknown1: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L89' href='#L89'><pre>89</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Another unknown string field.</pre></td></tr><tr><td class='line-number'><a name='L90' href='#L90'><pre>90</pre></a></td><td class='skipped-line'></td><td class='code'><pre> unknown2: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L91' href='#L91'><pre>91</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// The path to the compiled object.</pre></td></tr><tr><td class='line-number'><a name='L92' href='#L92'><pre>92</pre></a></td><td class='skipped-line'></td><td class='code'><pre> path: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L93' href='#L93'><pre>93</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// The description of the compiled object.</pre></td></tr><tr><td class='line-number'><a name='L94' href='#L94'><pre>94</pre></a></td><td class='skipped-line'></td><td class='code'><pre> description: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L95' href='#L95'><pre>95</pre></a></td><td class='skipped-line'></td><td class='code'><pre> },</pre></td></tr><tr><td class='line-number'><a name='L96' href='#L96'><pre>96</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// A reference to a sub-project.</pre></td></tr><tr><td class='line-number'><a name='L97' href='#L97'><pre>97</pre></a></td><td class='skipped-line'></td><td class='code'><pre> SubProject {</pre></td></tr><tr><td class='line-number'><a name='L98' href='#L98'><pre>98</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// The path to the sub-project file.</pre></td></tr><tr><td class='line-number'><a name='L99' href='#L99'><pre>99</pre></a></td><td class='skipped-line'></td><td class='code'><pre> path: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L100' href='#L100'><pre>100</pre></a></td><td class='skipped-line'></td><td class='code'><pre> },</pre></td></tr><tr><td class='line-number'><a name='L101' href='#L101'><pre>101</pre></a></td><td class='skipped-line'></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L102' href='#L102'><pre>102</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L103' href='#L103'><pre>103</pre></a></td><td class='skipped-line'></td><td class='code'><pre>impl Display for ProjectReference<'_> {</pre></td></tr><tr><td class='line-number'><a name='L104' href='#L104'><pre>104</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result</span> {</pre></td></tr><tr><td class='line-number'><a name='L105' href='#L105'><pre>105</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> match <span class='region red'>self</span> {</pre></td></tr><tr><td class='line-number'><a name='L106' href='#L106'><pre>106</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ProjectReference::Compiled {</pre></td></tr><tr><td class='line-number'><a name='L107' href='#L107'><pre>107</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>uuid</span>,</pre></td></tr><tr><td class='line-number'><a name='L108' href='#L108'><pre>108</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>unknown1</span>,</pre></td></tr><tr><td class='line-number'><a name='L109' href='#L109'><pre>109</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>unknown2</span>,</pre></td></tr><tr><td class='line-number'><a name='L110' href='#L110'><pre>110</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>path</span>,</pre></td></tr><tr><td class='line-number'><a name='L111' href='#L111'><pre>111</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>description</span>,</pre></td></tr><tr><td class='line-number'><a name='L112' href='#L112'><pre>112</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> } => <span class='region red'>write!</span>(</pre></td></tr><tr><td class='line-number'><a name='L113' href='#L113'><pre>113</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>f</span>,</pre></td></tr><tr><td class='line-number'><a name='L114' href='#L114'><pre>114</pre></a></td><td class='skipped-line'></td><td class='code'><pre> "Compiled Reference: UUID={uuid}, Unknown1='{unknown1}', Unknown2='{unknown2}', Path='{path}', Description='{description}'"</pre></td></tr><tr><td class='line-number'><a name='L115' href='#L115'><pre>115</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ),</pre></td></tr><tr><td class='line-number'><a name='L116' href='#L116'><pre>116</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> ProjectReference::SubProject { <span class='region red'>path</span> } => {</pre></td></tr><tr><td class='line-number'><a name='L117' href='#L117'><pre>117</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>write!</span>(<span class='region red'>f</span>, "Sub-Project Reference: Path='{path}'")</pre></td></tr><tr><td class='line-number'><a name='L118' href='#L118'><pre>118</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L119' href='#L119'><pre>119</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L120' href='#L120'><pre>120</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L121' href='#L121'><pre>121</pre></a></td><td class='skipped-line'></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L122' href='#L122'><pre>122</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L123' href='#L123'><pre>123</pre></a></td><td class='skipped-line'></td><td class='code'><pre>impl Serialize for ProjectReference<'_> {</pre></td></tr><tr><td class='line-number'><a name='L124' href='#L124'><pre>124</pre></a></td><td class='covered-line'><pre>32</pre></td><td class='code'><pre> fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error></pre></td></tr><tr><td class='line-number'><a name='L125' href='#L125'><pre>125</pre></a></td><td class='covered-line'><pre>32</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L126' href='#L126'><pre>126</pre></a></td><td class='covered-line'><pre>32</pre></td><td class='code'><pre> S: serde::Serializer,</pre></td></tr><tr><td class='line-number'><a name='L127' href='#L127'><pre>127</pre></a></td><td class='skipped-line'></td><td class='code'><pre> {</pre></td></tr><tr><td class='line-number'><a name='L128' href='#L128'><pre>128</pre></a></td><td class='skipped-line'></td><td class='code'><pre> use serde::ser::SerializeStruct;</pre></td></tr><tr><td class='line-number'><a name='L129' href='#L129'><pre>129</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L130' href='#L130'><pre>130</pre></a></td><td class='covered-line'><pre>32</pre></td><td class='code'><pre> match self {</pre></td></tr><tr><td class='line-number'><a name='L131' href='#L131'><pre>131</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ProjectReference::Compiled {</pre></td></tr><tr><td class='line-number'><a name='L132' href='#L132'><pre>132</pre></a></td><td class='covered-line'><pre>32</pre></td><td class='code'><pre> uuid,</pre></td></tr><tr><td class='line-number'><a name='L133' href='#L133'><pre>133</pre></a></td><td class='covered-line'><pre>32</pre></td><td class='code'><pre> unknown1,</pre></td></tr><tr><td class='line-number'><a name='L134' href='#L134'><pre>134</pre></a></td><td class='covered-line'><pre>32</pre></td><td class='code'><pre> unknown2,</pre></td></tr><tr><td class='line-number'><a name='L135' href='#L135'><pre>135</pre></a></td><td class='covered-line'><pre>32</pre></td><td class='code'><pre> path,</pre></td></tr><tr><td class='line-number'><a name='L136' href='#L136'><pre>136</pre></a></td><td class='covered-line'><pre>32</pre></td><td class='code'><pre> description,</pre></td></tr><tr><td class='line-number'><a name='L137' href='#L137'><pre>137</pre></a></td><td class='skipped-line'></td><td class='code'><pre> } => {</pre></td></tr><tr><td class='line-number'><a name='L138' href='#L138'><pre>138</pre></a></td><td class='covered-line'><pre>32</pre></td><td class='code'><pre> let mut state = serializer.serialize_struct("CompiledReference", 5)<div class='tooltip'><span class='region red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L139' href='#L139'><pre>139</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L140' href='#L140'><pre>140</pre></a></td><td class='covered-line'><pre>32</pre></td><td class='code'><pre> state.serialize_field("uuid", &uuid.to_string())<div class='tooltip'><span class='region red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L141' href='#L141'><pre>141</pre></a></td><td class='covered-line'><pre>32</pre></td><td class='code'><pre> state.serialize_field("unknown1", unknown1)<div class='tooltip'><span class='region red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L142' href='#L142'><pre>142</pre></a></td><td class='covered-line'><pre>32</pre></td><td class='code'><pre> state.serialize_field("unknown2", unknown2)<div class='tooltip'><span class='region red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L143' href='#L143'><pre>143</pre></a></td><td class='covered-line'><pre>32</pre></td><td class='code'><pre> state.serialize_field("path", path)<div class='tooltip'><span class='region red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L144' href='#L144'><pre>144</pre></a></td><td class='covered-line'><pre>32</pre></td><td class='code'><pre> state.serialize_field("description", description)<div class='tooltip'><span class='region red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L145' href='#L145'><pre>145</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L146' href='#L146'><pre>146</pre></a></td><td class='covered-line'><pre>32</pre></td><td class='code'><pre> state.end()</pre></td></tr><tr><td class='line-number'><a name='L147' href='#L147'><pre>147</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L148' href='#L148'><pre>148</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> ProjectReference::SubProject { <span class='region red'>path</span> } => {</pre></td></tr><tr><td class='line-number'><a name='L149' href='#L149'><pre>149</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>mut state</span> = <span class='region red'>serializer</span>.<span class='region red'>serialize_struct</span>("SubProjectReference", 1)<span class='region red'>?</span>;</pre></td></tr><tr><td class='line-number'><a name='L150' href='#L150'><pre>150</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L151' href='#L151'><pre>151</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>state</span>.<span class='region red'>serialize_field</span>("path", <span class='region red'>path</span>)<span class='region red'>?</span>;</pre></td></tr><tr><td class='line-number'><a name='L152' href='#L152'><pre>152</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L153' href='#L153'><pre>153</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>state</span>.<span class='region red'>end</span>()</pre></td></tr><tr><td class='line-number'><a name='L154' href='#L154'><pre>154</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L155' href='#L155'><pre>155</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L156' href='#L156'><pre>156</pre></a></td><td class='covered-line'><pre>32</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L157' href='#L157'><pre>157</pre></a></td><td class='skipped-line'></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L158' href='#L158'><pre>158</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L159' href='#L159'><pre>159</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// Represents a reference to a module in a VB6 project.</pre></td></tr><tr><td class='line-number'><a name='L160' href='#L160'><pre>160</pre></a></td><td class='skipped-line'></td><td class='code'><pre>#[derive(Debug, PartialEq, Eq, Copy, Clone, Serialize, Hash)]</pre></td></tr><tr><td class='line-number'><a name='L161' href='#L161'><pre>161</pre></a></td><td class='skipped-line'></td><td class='code'><pre>pub struct ProjectModuleReference<'a> {</pre></td></tr><tr><td class='line-number'><a name='L162' href='#L162'><pre>162</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// The name of the module.</pre></td></tr><tr><td class='line-number'><a name='L163' href='#L163'><pre>163</pre></a></td><td class='skipped-line'></td><td class='code'><pre> pub name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L164' href='#L164'><pre>164</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// The path to the module file.</pre></td></tr><tr><td class='line-number'><a name='L165' href='#L165'><pre>165</pre></a></td><td class='skipped-line'></td><td class='code'><pre> pub path: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L166' href='#L166'><pre>166</pre></a></td><td class='skipped-line'></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L167' href='#L167'><pre>167</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L168' href='#L168'><pre>168</pre></a></td><td class='skipped-line'></td><td class='code'><pre>impl Display for ProjectModuleReference<'_> {</pre></td></tr><tr><td class='line-number'><a name='L169' href='#L169'><pre>169</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result</span> {</pre></td></tr><tr><td class='line-number'><a name='L170' href='#L170'><pre>170</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>write!</span>(</pre></td></tr><tr><td class='line-number'><a name='L171' href='#L171'><pre>171</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>f</span>,</pre></td></tr><tr><td class='line-number'><a name='L172' href='#L172'><pre>172</pre></a></td><td class='skipped-line'></td><td class='code'><pre> "Module Reference: Name='{}', Path='{}'",</pre></td></tr><tr><td class='line-number'><a name='L173' href='#L173'><pre>173</pre></a></td><td class='skipped-line'></td><td class='code'><pre> self.name, self.path</pre></td></tr><tr><td class='line-number'><a name='L174' href='#L174'><pre>174</pre></a></td><td class='skipped-line'></td><td class='code'><pre> )</pre></td></tr><tr><td class='line-number'><a name='L175' href='#L175'><pre>175</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L176' href='#L176'><pre>176</pre></a></td><td class='skipped-line'></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L177' href='#L177'><pre>177</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L178' href='#L178'><pre>178</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// Represents a reference to a class in a VB6 project.</pre></td></tr><tr><td class='line-number'><a name='L179' href='#L179'><pre>179</pre></a></td><td class='skipped-line'></td><td class='code'><pre>#[derive(Debug, PartialEq, Eq, Copy, Clone, Serialize, Hash)]</pre></td></tr><tr><td class='line-number'><a name='L180' href='#L180'><pre>180</pre></a></td><td class='skipped-line'></td><td class='code'><pre>pub struct ProjectClassReference<'a> {</pre></td></tr><tr><td class='line-number'><a name='L181' href='#L181'><pre>181</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// The name of the class.</pre></td></tr><tr><td class='line-number'><a name='L182' href='#L182'><pre>182</pre></a></td><td class='skipped-line'></td><td class='code'><pre> pub name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L183' href='#L183'><pre>183</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// The path to the class file.</pre></td></tr><tr><td class='line-number'><a name='L184' href='#L184'><pre>184</pre></a></td><td class='skipped-line'></td><td class='code'><pre> pub path: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L185' href='#L185'><pre>185</pre></a></td><td class='skipped-line'></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L186' href='#L186'><pre>186</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L187' href='#L187'><pre>187</pre></a></td><td class='skipped-line'></td><td class='code'><pre>impl Display for ProjectClassReference<'_> {</pre></td></tr><tr><td class='line-number'><a name='L188' href='#L188'><pre>188</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result</span> {</pre></td></tr><tr><td class='line-number'><a name='L189' href='#L189'><pre>189</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>write!</span>(</pre></td></tr><tr><td class='line-number'><a name='L190' href='#L190'><pre>190</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>f</span>,</pre></td></tr><tr><td class='line-number'><a name='L191' href='#L191'><pre>191</pre></a></td><td class='skipped-line'></td><td class='code'><pre> "Class Reference: Name='{}', Path='{}'",</pre></td></tr><tr><td class='line-number'><a name='L192' href='#L192'><pre>192</pre></a></td><td class='skipped-line'></td><td class='code'><pre> self.name, self.path</pre></td></tr><tr><td class='line-number'><a name='L193' href='#L193'><pre>193</pre></a></td><td class='skipped-line'></td><td class='code'><pre> )</pre></td></tr><tr><td class='line-number'><a name='L194' href='#L194'><pre>194</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L195' href='#L195'><pre>195</pre></a></td><td class='skipped-line'></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L196' href='#L196'><pre>196</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L197' href='#L197'><pre>197</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// The result type for parsing a VB6 project file.</pre></td></tr><tr><td class='line-number'><a name='L198' href='#L198'><pre>198</pre></a></td><td class='skipped-line'></td><td class='code'><pre>///</pre></td></tr><tr><td class='line-number'><a name='L199' href='#L199'><pre>199</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// Contains the parsed `ProjectFile` and any `ProjectErrorKind` errors encountered during parsing.</pre></td></tr><tr><td class='line-number'><a name='L200' href='#L200'><pre>200</pre></a></td><td class='skipped-line'></td><td class='code'><pre>///</pre></td></tr><tr><td class='line-number'><a name='L201' href='#L201'><pre>201</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// This is a type alias for `ParseResult<'a, ProjectFile<'a>, ProjectErrorKind<'a>>`.</pre></td></tr><tr><td class='line-number'><a name='L202' href='#L202'><pre>202</pre></a></td><td class='skipped-line'></td><td class='code'><pre>pub type ProjectResult<'a> = ParseResult<'a, ProjectFile<'a>, ProjectErrorKind<'a>>;</pre></td></tr><tr><td class='line-number'><a name='L203' href='#L203'><pre>203</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L204' href='#L204'><pre>204</pre></a></td><td class='skipped-line'></td><td class='code'><pre>impl<'a> ProjectFile<'a> {</pre></td></tr><tr><td class='line-number'><a name='L205' href='#L205'><pre>205</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L206' href='#L206'><pre>206</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Creates an empty project file with default values.</pre></td></tr><tr><td class='line-number'><a name='L207' href='#L207'><pre>207</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L208' href='#L208'><pre>208</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// This is an internal helper function used by the parser to initialize</pre></td></tr><tr><td class='line-number'><a name='L209' href='#L209'><pre>209</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// a new `ProjectFile` before populating it with parsed values.</pre></td></tr><tr><td class='line-number'><a name='L210' href='#L210'><pre>210</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> fn new_empty() -> Self {</pre></td></tr><tr><td class='line-number'><a name='L211' href='#L211'><pre>211</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> ProjectFile {</pre></td></tr><tr><td class='line-number'><a name='L212' href='#L212'><pre>212</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project_type: CompileTargetType::Exe,</pre></td></tr><tr><td class='line-number'><a name='L213' href='#L213'><pre>213</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> references: vec![],</pre></td></tr><tr><td class='line-number'><a name='L214' href='#L214'><pre>214</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> objects: vec![],</pre></td></tr><tr><td class='line-number'><a name='L215' href='#L215'><pre>215</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> modules: vec![],</pre></td></tr><tr><td class='line-number'><a name='L216' href='#L216'><pre>216</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> classes: vec![],</pre></td></tr><tr><td class='line-number'><a name='L217' href='#L217'><pre>217</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> designers: vec![],</pre></td></tr><tr><td class='line-number'><a name='L218' href='#L218'><pre>218</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> forms: vec![],</pre></td></tr><tr><td class='line-number'><a name='L219' href='#L219'><pre>219</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> user_controls: vec![],</pre></td></tr><tr><td class='line-number'><a name='L220' href='#L220'><pre>220</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> user_documents: vec![],</pre></td></tr><tr><td class='line-number'><a name='L221' href='#L221'><pre>221</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> related_documents: vec![],</pre></td></tr><tr><td class='line-number'><a name='L222' href='#L222'><pre>222</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_pages: vec![],</pre></td></tr><tr><td class='line-number'><a name='L223' href='#L223'><pre>223</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> other_properties: HashMap::new(),</pre></td></tr><tr><td class='line-number'><a name='L224' href='#L224'><pre>224</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> properties: ProjectProperties {</pre></td></tr><tr><td class='line-number'><a name='L225' href='#L225'><pre>225</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> // We default to using NativeCode because all the possible options</pre></td></tr><tr><td class='line-number'><a name='L226' href='#L226'><pre>226</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> // sit on this branch of the enum, while the other branch (PCode)</pre></td></tr><tr><td class='line-number'><a name='L227' href='#L227'><pre>227</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> // has no other options.</pre></td></tr><tr><td class='line-number'><a name='L228' href='#L228'><pre>228</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> //</pre></td></tr><tr><td class='line-number'><a name='L229' href='#L229'><pre>229</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> // Hence, if we have a NativeCode value, then we can place the</pre></td></tr><tr><td class='line-number'><a name='L230' href='#L230'><pre>230</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> // parsed value within it. If on the other hand it is PCode, then</pre></td></tr><tr><td class='line-number'><a name='L231' href='#L231'><pre>231</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> // we know the compilation type was selected as PCode and we can</pre></td></tr><tr><td class='line-number'><a name='L232' href='#L232'><pre>232</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> // simply ignore any of the NativeCode options since they will</pre></td></tr><tr><td class='line-number'><a name='L233' href='#L233'><pre>233</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> // not be used.</pre></td></tr><tr><td class='line-number'><a name='L234' href='#L234'><pre>234</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> compilation_type: CompilationType::default(),</pre></td></tr><tr><td class='line-number'><a name='L235' href='#L235'><pre>235</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> ..Default::default()</pre></td></tr><tr><td class='line-number'><a name='L236' href='#L236'><pre>236</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> },</pre></td></tr><tr><td class='line-number'><a name='L237' href='#L237'><pre>237</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L238' href='#L238'><pre>238</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L239' href='#L239'><pre>239</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L240' href='#L240'><pre>240</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Returns an iterator over the project references.</pre></td></tr><tr><td class='line-number'><a name='L241' href='#L241'><pre>241</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L242' href='#L242'><pre>242</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Returns</pre></td></tr><tr><td class='line-number'><a name='L243' href='#L243'><pre>243</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L244' href='#L244'><pre>244</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// An iterator over references to `ProjectReference` items.</pre></td></tr><tr><td class='line-number'><a name='L245' href='#L245'><pre>245</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L246' href='#L246'><pre>246</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Example</pre></td></tr><tr><td class='line-number'><a name='L247' href='#L247'><pre>247</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// ```rust</pre></td></tr><tr><td class='line-number'><a name='L248' href='#L248'><pre>248</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// use vb6parse::*;</pre></td></tr><tr><td class='line-number'><a name='L249' href='#L249'><pre>249</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// use vb6parse::files::project::properties::CompileTargetType;</pre></td></tr><tr><td class='line-number'><a name='L250' href='#L250'><pre>250</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L251' href='#L251'><pre>251</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let input = r#"Type=Exe</pre></td></tr><tr><td class='line-number'><a name='L252' href='#L252'><pre>252</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\Windows\System32\stdole2.tlb#OLE Automation</pre></td></tr><tr><td class='line-number'><a name='L253' href='#L253'><pre>253</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Object={00020430-0000-0000-C000-000000000046}#2.0#0; stdole2.tlb</pre></td></tr><tr><td class='line-number'><a name='L254' href='#L254'><pre>254</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Module=Module1; Module1.bas</pre></td></tr><tr><td class='line-number'><a name='L255' href='#L255'><pre>255</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Class=Class1; Class1.cls</pre></td></tr><tr><td class='line-number'><a name='L256' href='#L256'><pre>256</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// "#;</pre></td></tr><tr><td class='line-number'><a name='L257' href='#L257'><pre>257</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L258' href='#L258'><pre>258</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let project_source_file = match SourceFile::decode_with_replacement("project1.vbp", input.as_bytes()) {</pre></td></tr><tr><td class='line-number'><a name='L259' href='#L259'><pre>259</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Ok(source_file) => source_file,</pre></td></tr><tr><td class='line-number'><a name='L260' href='#L260'><pre>260</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Err(e) => {</pre></td></tr><tr><td class='line-number'><a name='L261' href='#L261'><pre>261</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// e.print();</pre></td></tr><tr><td class='line-number'><a name='L262' href='#L262'><pre>262</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// panic!("failed to decode project source code.");</pre></td></tr><tr><td class='line-number'><a name='L263' href='#L263'><pre>263</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L264' href='#L264'><pre>264</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// };</pre></td></tr><tr><td class='line-number'><a name='L265' href='#L265'><pre>265</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L266' href='#L266'><pre>266</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let result = ProjectFile::parse(&project_source_file);</pre></td></tr><tr><td class='line-number'><a name='L267' href='#L267'><pre>267</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L268' href='#L268'><pre>268</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let (project_opt, failures) = result.unpack();</pre></td></tr><tr><td class='line-number'><a name='L269' href='#L269'><pre>269</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L270' href='#L270'><pre>270</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// if !failures.is_empty() {</pre></td></tr><tr><td class='line-number'><a name='L271' href='#L271'><pre>271</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// for failure in failures.iter() {</pre></td></tr><tr><td class='line-number'><a name='L272' href='#L272'><pre>272</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// failure.print();</pre></td></tr><tr><td class='line-number'><a name='L273' href='#L273'><pre>273</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L274' href='#L274'><pre>274</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L275' href='#L275'><pre>275</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let project = project_opt.expect("Expected project to be parsed successfully.");</pre></td></tr><tr><td class='line-number'><a name='L276' href='#L276'><pre>276</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L277' href='#L277'><pre>277</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.project_type, CompileTargetType::Exe);</pre></td></tr><tr><td class='line-number'><a name='L278' href='#L278'><pre>278</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.references().collect::<Vec<_>>().len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L279' href='#L279'><pre>279</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// ```</pre></td></tr><tr><td class='line-number'><a name='L280' href='#L280'><pre>280</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> pub fn references(&self) -> impl Iterator<Item = &ProjectReference<'a>> {</pre></td></tr><tr><td class='line-number'><a name='L281' href='#L281'><pre>281</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> self.references.iter()</pre></td></tr><tr><td class='line-number'><a name='L282' href='#L282'><pre>282</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L283' href='#L283'><pre>283</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L284' href='#L284'><pre>284</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Returns an iterator over the project modules.</pre></td></tr><tr><td class='line-number'><a name='L285' href='#L285'><pre>285</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L286' href='#L286'><pre>286</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Returns</pre></td></tr><tr><td class='line-number'><a name='L287' href='#L287'><pre>287</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L288' href='#L288'><pre>288</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// An iterator over references to `ProjectModuleReference` items.</pre></td></tr><tr><td class='line-number'><a name='L289' href='#L289'><pre>289</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L290' href='#L290'><pre>290</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Example</pre></td></tr><tr><td class='line-number'><a name='L291' href='#L291'><pre>291</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// ```rust</pre></td></tr><tr><td class='line-number'><a name='L292' href='#L292'><pre>292</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// use vb6parse::*;</pre></td></tr><tr><td class='line-number'><a name='L293' href='#L293'><pre>293</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// use vb6parse::files::project::properties::CompileTargetType;</pre></td></tr><tr><td class='line-number'><a name='L294' href='#L294'><pre>294</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L295' href='#L295'><pre>295</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let input = r#"Type=Exe</pre></td></tr><tr><td class='line-number'><a name='L296' href='#L296'><pre>296</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\Windows\System32\stdole2.tlb#OLE Automation</pre></td></tr><tr><td class='line-number'><a name='L297' href='#L297'><pre>297</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Object={00020430-0000-0000-C000-000000000046}#2.0#0; stdole2.tlb</pre></td></tr><tr><td class='line-number'><a name='L298' href='#L298'><pre>298</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Module=Module1; Module1.bas</pre></td></tr><tr><td class='line-number'><a name='L299' href='#L299'><pre>299</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Class=Class1; Class1.cls</pre></td></tr><tr><td class='line-number'><a name='L300' href='#L300'><pre>300</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// "#;</pre></td></tr><tr><td class='line-number'><a name='L301' href='#L301'><pre>301</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L302' href='#L302'><pre>302</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let project_source_file = match SourceFile::decode_with_replacement("project1.vbp", input.as_bytes()) {</pre></td></tr><tr><td class='line-number'><a name='L303' href='#L303'><pre>303</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Ok(source_file) => source_file,</pre></td></tr><tr><td class='line-number'><a name='L304' href='#L304'><pre>304</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Err(e) => {</pre></td></tr><tr><td class='line-number'><a name='L305' href='#L305'><pre>305</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// e.print();</pre></td></tr><tr><td class='line-number'><a name='L306' href='#L306'><pre>306</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// panic!("failed to decode project source code.");</pre></td></tr><tr><td class='line-number'><a name='L307' href='#L307'><pre>307</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L308' href='#L308'><pre>308</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// };</pre></td></tr><tr><td class='line-number'><a name='L309' href='#L309'><pre>309</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L310' href='#L310'><pre>310</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let result = ProjectFile::parse(&project_source_file);</pre></td></tr><tr><td class='line-number'><a name='L311' href='#L311'><pre>311</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L312' href='#L312'><pre>312</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let (project_opt, failures) = result.unpack();</pre></td></tr><tr><td class='line-number'><a name='L313' href='#L313'><pre>313</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L314' href='#L314'><pre>314</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// if !failures.is_empty() {</pre></td></tr><tr><td class='line-number'><a name='L315' href='#L315'><pre>315</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// for failure in failures.iter() {</pre></td></tr><tr><td class='line-number'><a name='L316' href='#L316'><pre>316</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// failure.print();</pre></td></tr><tr><td class='line-number'><a name='L317' href='#L317'><pre>317</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L318' href='#L318'><pre>318</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L319' href='#L319'><pre>319</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L320' href='#L320'><pre>320</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let project = project_opt.expect("Expected project to be parsed successfully.");</pre></td></tr><tr><td class='line-number'><a name='L321' href='#L321'><pre>321</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L322' href='#L322'><pre>322</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.project_type, CompileTargetType::Exe);</pre></td></tr><tr><td class='line-number'><a name='L323' href='#L323'><pre>323</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.modules().collect::<Vec<_>>().len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L324' href='#L324'><pre>324</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// ```</pre></td></tr><tr><td class='line-number'><a name='L325' href='#L325'><pre>325</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> pub fn modules(&self) -> impl Iterator<Item = &ProjectModuleReference<'a>> {</pre></td></tr><tr><td class='line-number'><a name='L326' href='#L326'><pre>326</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> self.modules.iter()</pre></td></tr><tr><td class='line-number'><a name='L327' href='#L327'><pre>327</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L328' href='#L328'><pre>328</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L329' href='#L329'><pre>329</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Returns an iterator over the project classes.</pre></td></tr><tr><td class='line-number'><a name='L330' href='#L330'><pre>330</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L331' href='#L331'><pre>331</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Returns</pre></td></tr><tr><td class='line-number'><a name='L332' href='#L332'><pre>332</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L333' href='#L333'><pre>333</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// An iterator over references to `ProjectClassReference` items.</pre></td></tr><tr><td class='line-number'><a name='L334' href='#L334'><pre>334</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Example</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// ```rust</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// use vb6parse::*;</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// use vb6parse::files::project::properties::CompileTargetType;</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L340' href='#L340'><pre>340</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let input = r#"Type=Exe</pre></td></tr><tr><td class='line-number'><a name='L341' href='#L341'><pre>341</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\Windows\System32\stdole2.tlb#OLE Automation</pre></td></tr><tr><td class='line-number'><a name='L342' href='#L342'><pre>342</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Object={00020430-0000-0000-C000-000000000046}#2.0#0; stdole2.tlb</pre></td></tr><tr><td class='line-number'><a name='L343' href='#L343'><pre>343</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Module=Module1; Module1.bas</pre></td></tr><tr><td class='line-number'><a name='L344' href='#L344'><pre>344</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Class=Class1; Class1.cls</pre></td></tr><tr><td class='line-number'><a name='L345' href='#L345'><pre>345</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// "#;</pre></td></tr><tr><td class='line-number'><a name='L346' href='#L346'><pre>346</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L347' href='#L347'><pre>347</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let project_source_file = match SourceFile::decode_with_replacement("project1.vbp", input.as_bytes()) {</pre></td></tr><tr><td class='line-number'><a name='L348' href='#L348'><pre>348</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Ok(source_file) => source_file,</pre></td></tr><tr><td class='line-number'><a name='L349' href='#L349'><pre>349</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Err(e) => {</pre></td></tr><tr><td class='line-number'><a name='L350' href='#L350'><pre>350</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// e.print();</pre></td></tr><tr><td class='line-number'><a name='L351' href='#L351'><pre>351</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// panic!("failed to decode project source code.");</pre></td></tr><tr><td class='line-number'><a name='L352' href='#L352'><pre>352</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L353' href='#L353'><pre>353</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// };</pre></td></tr><tr><td class='line-number'><a name='L354' href='#L354'><pre>354</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L355' href='#L355'><pre>355</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let result = ProjectFile::parse(&project_source_file);</pre></td></tr><tr><td class='line-number'><a name='L356' href='#L356'><pre>356</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L357' href='#L357'><pre>357</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let (project_opt, failures) = result.unpack();</pre></td></tr><tr><td class='line-number'><a name='L358' href='#L358'><pre>358</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L359' href='#L359'><pre>359</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// if !failures.is_empty() {</pre></td></tr><tr><td class='line-number'><a name='L360' href='#L360'><pre>360</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// for failure in failures.iter() {</pre></td></tr><tr><td class='line-number'><a name='L361' href='#L361'><pre>361</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// failure.print();</pre></td></tr><tr><td class='line-number'><a name='L362' href='#L362'><pre>362</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L363' href='#L363'><pre>363</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L364' href='#L364'><pre>364</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L365' href='#L365'><pre>365</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let project = project_opt.expect("Expected project to be parsed successfully.");</pre></td></tr><tr><td class='line-number'><a name='L366' href='#L366'><pre>366</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L367' href='#L367'><pre>367</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.project_type, CompileTargetType::Exe);</pre></td></tr><tr><td class='line-number'><a name='L368' href='#L368'><pre>368</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.classes().collect::<Vec<_>>().len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L369' href='#L369'><pre>369</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// ```</pre></td></tr><tr><td class='line-number'><a name='L370' href='#L370'><pre>370</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> pub fn classes(&self) -> impl Iterator<Item = &ProjectClassReference<'a>> {</pre></td></tr><tr><td class='line-number'><a name='L371' href='#L371'><pre>371</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> self.classes.iter()</pre></td></tr><tr><td class='line-number'><a name='L372' href='#L372'><pre>372</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L373' href='#L373'><pre>373</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L374' href='#L374'><pre>374</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Returns an iterator over the project object references.</pre></td></tr><tr><td class='line-number'><a name='L375' href='#L375'><pre>375</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L376' href='#L376'><pre>376</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Returns</pre></td></tr><tr><td class='line-number'><a name='L377' href='#L377'><pre>377</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L378' href='#L378'><pre>378</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// An iterator over references to `ObjectReference` items.</pre></td></tr><tr><td class='line-number'><a name='L379' href='#L379'><pre>379</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Example</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// ```rust</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// use vb6parse::*;</pre></td></tr><tr><td class='line-number'><a name='L383' href='#L383'><pre>383</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// use vb6parse::files::project::properties::CompileTargetType;</pre></td></tr><tr><td class='line-number'><a name='L384' href='#L384'><pre>384</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L385' href='#L385'><pre>385</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let input = r#"Type=Exe</pre></td></tr><tr><td class='line-number'><a name='L386' href='#L386'><pre>386</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\Windows\System32\stdole2.tlb#OLE Automation</pre></td></tr><tr><td class='line-number'><a name='L387' href='#L387'><pre>387</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Object={00020430-0000-0000-C000-000000000046}#2.0#0; stdole2.tlb</pre></td></tr><tr><td class='line-number'><a name='L388' href='#L388'><pre>388</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Module=Module1; Module1.bas</pre></td></tr><tr><td class='line-number'><a name='L389' href='#L389'><pre>389</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Class=Class1; Class1.cls</pre></td></tr><tr><td class='line-number'><a name='L390' href='#L390'><pre>390</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// "#;</pre></td></tr><tr><td class='line-number'><a name='L391' href='#L391'><pre>391</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L392' href='#L392'><pre>392</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let project_source_file = match SourceFile::decode_with_replacement("project1.vbp", input.as_bytes()) {</pre></td></tr><tr><td class='line-number'><a name='L393' href='#L393'><pre>393</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Ok(source_file) => source_file,</pre></td></tr><tr><td class='line-number'><a name='L394' href='#L394'><pre>394</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Err(e) => {</pre></td></tr><tr><td class='line-number'><a name='L395' href='#L395'><pre>395</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// e.print();</pre></td></tr><tr><td class='line-number'><a name='L396' href='#L396'><pre>396</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// panic!("failed to decode project source code.");</pre></td></tr><tr><td class='line-number'><a name='L397' href='#L397'><pre>397</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L398' href='#L398'><pre>398</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// };</pre></td></tr><tr><td class='line-number'><a name='L399' href='#L399'><pre>399</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L400' href='#L400'><pre>400</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let result = ProjectFile::parse(&project_source_file);</pre></td></tr><tr><td class='line-number'><a name='L401' href='#L401'><pre>401</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L402' href='#L402'><pre>402</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let (project_opt, failures) = result.unpack();</pre></td></tr><tr><td class='line-number'><a name='L403' href='#L403'><pre>403</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L404' href='#L404'><pre>404</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// if !failures.is_empty() {</pre></td></tr><tr><td class='line-number'><a name='L405' href='#L405'><pre>405</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// for failure in failures.iter() {</pre></td></tr><tr><td class='line-number'><a name='L406' href='#L406'><pre>406</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// failure.print();</pre></td></tr><tr><td class='line-number'><a name='L407' href='#L407'><pre>407</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L408' href='#L408'><pre>408</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L409' href='#L409'><pre>409</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L410' href='#L410'><pre>410</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let project = project_opt.expect("Expected project to be parsed successfully.");</pre></td></tr><tr><td class='line-number'><a name='L411' href='#L411'><pre>411</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L412' href='#L412'><pre>412</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.project_type, CompileTargetType::Exe);</pre></td></tr><tr><td class='line-number'><a name='L413' href='#L413'><pre>413</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.objects().collect::<Vec<_>>().len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L414' href='#L414'><pre>414</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// ```</pre></td></tr><tr><td class='line-number'><a name='L415' href='#L415'><pre>415</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> pub fn objects(&self) -> impl Iterator<Item = &ObjectReference> {</pre></td></tr><tr><td class='line-number'><a name='L416' href='#L416'><pre>416</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> self.objects.iter()</pre></td></tr><tr><td class='line-number'><a name='L417' href='#L417'><pre>417</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L418' href='#L418'><pre>418</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L419' href='#L419'><pre>419</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Returns an iterator over the project forms.</pre></td></tr><tr><td class='line-number'><a name='L420' href='#L420'><pre>420</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L421' href='#L421'><pre>421</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Returns</pre></td></tr><tr><td class='line-number'><a name='L422' href='#L422'><pre>422</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L423' href='#L423'><pre>423</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// An iterator over references to form file names.</pre></td></tr><tr><td class='line-number'><a name='L424' href='#L424'><pre>424</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L425' href='#L425'><pre>425</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Example</pre></td></tr><tr><td class='line-number'><a name='L426' href='#L426'><pre>426</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// ```rust</pre></td></tr><tr><td class='line-number'><a name='L427' href='#L427'><pre>427</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// use vb6parse::*;</pre></td></tr><tr><td class='line-number'><a name='L428' href='#L428'><pre>428</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// use vb6parse::files::project::properties::CompileTargetType;</pre></td></tr><tr><td class='line-number'><a name='L429' href='#L429'><pre>429</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L430' href='#L430'><pre>430</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let input = r#"Type=Exe</pre></td></tr><tr><td class='line-number'><a name='L431' href='#L431'><pre>431</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\Windows\System32\stdole2.tlb#OLE Automation</pre></td></tr><tr><td class='line-number'><a name='L432' href='#L432'><pre>432</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Object={00020430-0000-0000-C000-000000000046}#2.0#0; stdole2.tlb</pre></td></tr><tr><td class='line-number'><a name='L433' href='#L433'><pre>433</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Module=Module1; Module1.bas</pre></td></tr><tr><td class='line-number'><a name='L434' href='#L434'><pre>434</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Form=Form1.frm</pre></td></tr><tr><td class='line-number'><a name='L435' href='#L435'><pre>435</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Form=Form2.frm</pre></td></tr><tr><td class='line-number'><a name='L436' href='#L436'><pre>436</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// "#;</pre></td></tr><tr><td class='line-number'><a name='L437' href='#L437'><pre>437</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L438' href='#L438'><pre>438</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let project_source_file = match SourceFile::decode_with_replacement("project1.vbp", input.as_bytes()) {</pre></td></tr><tr><td class='line-number'><a name='L439' href='#L439'><pre>439</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Ok(source_file) => source_file,</pre></td></tr><tr><td class='line-number'><a name='L440' href='#L440'><pre>440</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Err(e) => {</pre></td></tr><tr><td class='line-number'><a name='L441' href='#L441'><pre>441</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// e.print();</pre></td></tr><tr><td class='line-number'><a name='L442' href='#L442'><pre>442</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// panic!("failed to decode project source code.");</pre></td></tr><tr><td class='line-number'><a name='L443' href='#L443'><pre>443</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L444' href='#L444'><pre>444</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// };</pre></td></tr><tr><td class='line-number'><a name='L445' href='#L445'><pre>445</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L446' href='#L446'><pre>446</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let result = ProjectFile::parse(&project_source_file);</pre></td></tr><tr><td class='line-number'><a name='L447' href='#L447'><pre>447</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L448' href='#L448'><pre>448</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let (project_opt, failures) = result.unpack();</pre></td></tr><tr><td class='line-number'><a name='L449' href='#L449'><pre>449</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L450' href='#L450'><pre>450</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// if !failures.is_empty() {</pre></td></tr><tr><td class='line-number'><a name='L451' href='#L451'><pre>451</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// for failure in failures.iter() {</pre></td></tr><tr><td class='line-number'><a name='L452' href='#L452'><pre>452</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// failure.print();</pre></td></tr><tr><td class='line-number'><a name='L453' href='#L453'><pre>453</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L454' href='#L454'><pre>454</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L455' href='#L455'><pre>455</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L456' href='#L456'><pre>456</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let project = project_opt.expect("Expected project to be parsed successfully.");</pre></td></tr><tr><td class='line-number'><a name='L457' href='#L457'><pre>457</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L458' href='#L458'><pre>458</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.project_type, CompileTargetType::Exe);</pre></td></tr><tr><td class='line-number'><a name='L459' href='#L459'><pre>459</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.forms().collect::<Vec<_>>().len(), 2);</pre></td></tr><tr><td class='line-number'><a name='L460' href='#L460'><pre>460</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// ```</pre></td></tr><tr><td class='line-number'><a name='L461' href='#L461'><pre>461</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> pub fn forms(&self) -> impl Iterator<Item = &&'a str> {</pre></td></tr><tr><td class='line-number'><a name='L462' href='#L462'><pre>462</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> self.forms.iter()</pre></td></tr><tr><td class='line-number'><a name='L463' href='#L463'><pre>463</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L464' href='#L464'><pre>464</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L465' href='#L465'><pre>465</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Returns an iterator over the project user controls.</pre></td></tr><tr><td class='line-number'><a name='L466' href='#L466'><pre>466</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L467' href='#L467'><pre>467</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Returns</pre></td></tr><tr><td class='line-number'><a name='L468' href='#L468'><pre>468</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L469' href='#L469'><pre>469</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// An iterator over references to user control file names.</pre></td></tr><tr><td class='line-number'><a name='L470' href='#L470'><pre>470</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L471' href='#L471'><pre>471</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Example</pre></td></tr><tr><td class='line-number'><a name='L472' href='#L472'><pre>472</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// ```rust</pre></td></tr><tr><td class='line-number'><a name='L473' href='#L473'><pre>473</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// use vb6parse::*;</pre></td></tr><tr><td class='line-number'><a name='L474' href='#L474'><pre>474</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// use vb6parse::files::project::properties::CompileTargetType;</pre></td></tr><tr><td class='line-number'><a name='L475' href='#L475'><pre>475</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L476' href='#L476'><pre>476</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let input = r#"Type=Exe</pre></td></tr><tr><td class='line-number'><a name='L477' href='#L477'><pre>477</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\Windows\System32\stdole2.tlb#OLE Automation</pre></td></tr><tr><td class='line-number'><a name='L478' href='#L478'><pre>478</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Object={00020430-0000-0000-C000-000000000046}#2.0#0; stdole2.tlb</pre></td></tr><tr><td class='line-number'><a name='L479' href='#L479'><pre>479</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// UserControl=UserControl1.ctl</pre></td></tr><tr><td class='line-number'><a name='L480' href='#L480'><pre>480</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Form=Form1.frm</pre></td></tr><tr><td class='line-number'><a name='L481' href='#L481'><pre>481</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Form=Form2.frm</pre></td></tr><tr><td class='line-number'><a name='L482' href='#L482'><pre>482</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// "#;</pre></td></tr><tr><td class='line-number'><a name='L483' href='#L483'><pre>483</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L484' href='#L484'><pre>484</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let project_source_file = match SourceFile::decode_with_replacement("project1.vbp", input.as_bytes()) {</pre></td></tr><tr><td class='line-number'><a name='L485' href='#L485'><pre>485</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Ok(source_file) => source_file,</pre></td></tr><tr><td class='line-number'><a name='L486' href='#L486'><pre>486</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Err(e) => {</pre></td></tr><tr><td class='line-number'><a name='L487' href='#L487'><pre>487</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// e.print();</pre></td></tr><tr><td class='line-number'><a name='L488' href='#L488'><pre>488</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// panic!("failed to decode project source code.");</pre></td></tr><tr><td class='line-number'><a name='L489' href='#L489'><pre>489</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L490' href='#L490'><pre>490</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// };</pre></td></tr><tr><td class='line-number'><a name='L491' href='#L491'><pre>491</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L492' href='#L492'><pre>492</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let result = ProjectFile::parse(&project_source_file);</pre></td></tr><tr><td class='line-number'><a name='L493' href='#L493'><pre>493</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L494' href='#L494'><pre>494</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let (project_opt, failures) = result.unpack();</pre></td></tr><tr><td class='line-number'><a name='L495' href='#L495'><pre>495</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L496' href='#L496'><pre>496</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// if !failures.is_empty() {</pre></td></tr><tr><td class='line-number'><a name='L497' href='#L497'><pre>497</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// for failure in failures.iter() {</pre></td></tr><tr><td class='line-number'><a name='L498' href='#L498'><pre>498</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// failure.print();</pre></td></tr><tr><td class='line-number'><a name='L499' href='#L499'><pre>499</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L500' href='#L500'><pre>500</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L501' href='#L501'><pre>501</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L502' href='#L502'><pre>502</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let project = project_opt.expect("Expected project to be parsed successfully.");</pre></td></tr><tr><td class='line-number'><a name='L503' href='#L503'><pre>503</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L504' href='#L504'><pre>504</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.project_type, CompileTargetType::Exe);</pre></td></tr><tr><td class='line-number'><a name='L505' href='#L505'><pre>505</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.user_controls().collect::<Vec<_>>().len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L506' href='#L506'><pre>506</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// ```</pre></td></tr><tr><td class='line-number'><a name='L507' href='#L507'><pre>507</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> pub fn user_controls(&self) -> impl Iterator<Item = &&'a str> {</pre></td></tr><tr><td class='line-number'><a name='L508' href='#L508'><pre>508</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> self.user_controls.iter()</pre></td></tr><tr><td class='line-number'><a name='L509' href='#L509'><pre>509</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L510' href='#L510'><pre>510</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L511' href='#L511'><pre>511</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Returns an iterator over the project user documents.</pre></td></tr><tr><td class='line-number'><a name='L512' href='#L512'><pre>512</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L513' href='#L513'><pre>513</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Returns</pre></td></tr><tr><td class='line-number'><a name='L514' href='#L514'><pre>514</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L515' href='#L515'><pre>515</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// An iterator over references to user document file names.</pre></td></tr><tr><td class='line-number'><a name='L516' href='#L516'><pre>516</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L517' href='#L517'><pre>517</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Example</pre></td></tr><tr><td class='line-number'><a name='L518' href='#L518'><pre>518</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// ```rust</pre></td></tr><tr><td class='line-number'><a name='L519' href='#L519'><pre>519</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// use vb6parse::*;</pre></td></tr><tr><td class='line-number'><a name='L520' href='#L520'><pre>520</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// use vb6parse::files::project::properties::CompileTargetType;</pre></td></tr><tr><td class='line-number'><a name='L521' href='#L521'><pre>521</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L522' href='#L522'><pre>522</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let input = r#"Type=Exe</pre></td></tr><tr><td class='line-number'><a name='L523' href='#L523'><pre>523</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\Windows\System32\stdole2.tlb#OLE Automation</pre></td></tr><tr><td class='line-number'><a name='L524' href='#L524'><pre>524</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Object={00020430-0000-0000-C000-000000000046}#2.0#0; stdole2.tlb</pre></td></tr><tr><td class='line-number'><a name='L525' href='#L525'><pre>525</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Module=Module1; Module1.bas</pre></td></tr><tr><td class='line-number'><a name='L526' href='#L526'><pre>526</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Form=Form2.frm</pre></td></tr><tr><td class='line-number'><a name='L527' href='#L527'><pre>527</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// UserDocument=UserDocument1.udd</pre></td></tr><tr><td class='line-number'><a name='L528' href='#L528'><pre>528</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// "#;</pre></td></tr><tr><td class='line-number'><a name='L529' href='#L529'><pre>529</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L530' href='#L530'><pre>530</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let project_source_file = match SourceFile::decode_with_replacement("project1.vbp", input.as_bytes()) {</pre></td></tr><tr><td class='line-number'><a name='L531' href='#L531'><pre>531</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Ok(source_file) => source_file,</pre></td></tr><tr><td class='line-number'><a name='L532' href='#L532'><pre>532</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Err(e) => {</pre></td></tr><tr><td class='line-number'><a name='L533' href='#L533'><pre>533</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// e.print();</pre></td></tr><tr><td class='line-number'><a name='L534' href='#L534'><pre>534</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// panic!("failed to decode project source code.");</pre></td></tr><tr><td class='line-number'><a name='L535' href='#L535'><pre>535</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L536' href='#L536'><pre>536</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// };</pre></td></tr><tr><td class='line-number'><a name='L537' href='#L537'><pre>537</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L538' href='#L538'><pre>538</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let result = ProjectFile::parse(&project_source_file);</pre></td></tr><tr><td class='line-number'><a name='L539' href='#L539'><pre>539</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L540' href='#L540'><pre>540</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let (project_opt, failures) = result.unpack();</pre></td></tr><tr><td class='line-number'><a name='L541' href='#L541'><pre>541</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L542' href='#L542'><pre>542</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// if !failures.is_empty() {</pre></td></tr><tr><td class='line-number'><a name='L543' href='#L543'><pre>543</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// for failure in failures.iter() {</pre></td></tr><tr><td class='line-number'><a name='L544' href='#L544'><pre>544</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// failure.print();</pre></td></tr><tr><td class='line-number'><a name='L545' href='#L545'><pre>545</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L546' href='#L546'><pre>546</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L547' href='#L547'><pre>547</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L548' href='#L548'><pre>548</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let project = project_opt.expect("Expected project to be parsed successfully.");</pre></td></tr><tr><td class='line-number'><a name='L549' href='#L549'><pre>549</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L550' href='#L550'><pre>550</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.project_type, CompileTargetType::Exe);</pre></td></tr><tr><td class='line-number'><a name='L551' href='#L551'><pre>551</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.user_documents().collect::<Vec<_>>().len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L552' href='#L552'><pre>552</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// ```</pre></td></tr><tr><td class='line-number'><a name='L553' href='#L553'><pre>553</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> pub fn user_documents(&self) -> impl Iterator<Item = &&'a str> {</pre></td></tr><tr><td class='line-number'><a name='L554' href='#L554'><pre>554</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> self.user_documents.iter()</pre></td></tr><tr><td class='line-number'><a name='L555' href='#L555'><pre>555</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L556' href='#L556'><pre>556</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L557' href='#L557'><pre>557</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Returns an iterator over the project designers.</pre></td></tr><tr><td class='line-number'><a name='L558' href='#L558'><pre>558</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L559' href='#L559'><pre>559</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Returns</pre></td></tr><tr><td class='line-number'><a name='L560' href='#L560'><pre>560</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L561' href='#L561'><pre>561</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// An iterator over references to designer file names.</pre></td></tr><tr><td class='line-number'><a name='L562' href='#L562'><pre>562</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L563' href='#L563'><pre>563</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Example</pre></td></tr><tr><td class='line-number'><a name='L564' href='#L564'><pre>564</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// ```rust</pre></td></tr><tr><td class='line-number'><a name='L565' href='#L565'><pre>565</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// use vb6parse::*;</pre></td></tr><tr><td class='line-number'><a name='L566' href='#L566'><pre>566</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// use vb6parse::files::project::properties::CompileTargetType;</pre></td></tr><tr><td class='line-number'><a name='L567' href='#L567'><pre>567</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L568' href='#L568'><pre>568</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let input = r#"Type=Exe</pre></td></tr><tr><td class='line-number'><a name='L569' href='#L569'><pre>569</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\Windows\System32\stdole2.tlb#OLE Automation</pre></td></tr><tr><td class='line-number'><a name='L570' href='#L570'><pre>570</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Object={00020430-0000-0000-C000-000000000046}#2.0#0; stdole2.tlb</pre></td></tr><tr><td class='line-number'><a name='L571' href='#L571'><pre>571</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Module=Module1; Module1.bas</pre></td></tr><tr><td class='line-number'><a name='L572' href='#L572'><pre>572</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Form=Form2.frm</pre></td></tr><tr><td class='line-number'><a name='L573' href='#L573'><pre>573</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Designer=Designer1.des</pre></td></tr><tr><td class='line-number'><a name='L574' href='#L574'><pre>574</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// UserDocument=UserDocument1.udd</pre></td></tr><tr><td class='line-number'><a name='L575' href='#L575'><pre>575</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// "#;</pre></td></tr><tr><td class='line-number'><a name='L576' href='#L576'><pre>576</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L577' href='#L577'><pre>577</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let project_source_file = match SourceFile::decode_with_replacement("project1.vbp", input.as_bytes()) {</pre></td></tr><tr><td class='line-number'><a name='L578' href='#L578'><pre>578</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Ok(source_file) => source_file,</pre></td></tr><tr><td class='line-number'><a name='L579' href='#L579'><pre>579</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Err(e) => {</pre></td></tr><tr><td class='line-number'><a name='L580' href='#L580'><pre>580</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// e.print();</pre></td></tr><tr><td class='line-number'><a name='L581' href='#L581'><pre>581</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// panic!("failed to decode project source code.");</pre></td></tr><tr><td class='line-number'><a name='L582' href='#L582'><pre>582</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L583' href='#L583'><pre>583</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// };</pre></td></tr><tr><td class='line-number'><a name='L584' href='#L584'><pre>584</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L585' href='#L585'><pre>585</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let result = ProjectFile::parse(&project_source_file);</pre></td></tr><tr><td class='line-number'><a name='L586' href='#L586'><pre>586</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L587' href='#L587'><pre>587</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let (project_opt, failures) = result.unpack();</pre></td></tr><tr><td class='line-number'><a name='L588' href='#L588'><pre>588</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L589' href='#L589'><pre>589</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// if !failures.is_empty() {</pre></td></tr><tr><td class='line-number'><a name='L590' href='#L590'><pre>590</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// for failure in failures.iter() {</pre></td></tr><tr><td class='line-number'><a name='L591' href='#L591'><pre>591</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// failure.print();</pre></td></tr><tr><td class='line-number'><a name='L592' href='#L592'><pre>592</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L593' href='#L593'><pre>593</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L594' href='#L594'><pre>594</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L595' href='#L595'><pre>595</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let project = project_opt.expect("Expected project to be parsed successfully.");</pre></td></tr><tr><td class='line-number'><a name='L596' href='#L596'><pre>596</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L597' href='#L597'><pre>597</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.project_type, CompileTargetType::Exe);</pre></td></tr><tr><td class='line-number'><a name='L598' href='#L598'><pre>598</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.designers().collect::<Vec<_>>().len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L599' href='#L599'><pre>599</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// ```</pre></td></tr><tr><td class='line-number'><a name='L600' href='#L600'><pre>600</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> pub fn designers(&self) -> impl Iterator<Item = &&'a str> {</pre></td></tr><tr><td class='line-number'><a name='L601' href='#L601'><pre>601</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> self.designers.iter()</pre></td></tr><tr><td class='line-number'><a name='L602' href='#L602'><pre>602</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L603' href='#L603'><pre>603</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L604' href='#L604'><pre>604</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Returns an iterator over the project related documents.</pre></td></tr><tr><td class='line-number'><a name='L605' href='#L605'><pre>605</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L606' href='#L606'><pre>606</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Returns</pre></td></tr><tr><td class='line-number'><a name='L607' href='#L607'><pre>607</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L608' href='#L608'><pre>608</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// An iterator over references to related document file names.</pre></td></tr><tr><td class='line-number'><a name='L609' href='#L609'><pre>609</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L610' href='#L610'><pre>610</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Example</pre></td></tr><tr><td class='line-number'><a name='L611' href='#L611'><pre>611</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// ```rust</pre></td></tr><tr><td class='line-number'><a name='L612' href='#L612'><pre>612</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// use vb6parse::*;</pre></td></tr><tr><td class='line-number'><a name='L613' href='#L613'><pre>613</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// use vb6parse::files::project::properties::CompileTargetType;</pre></td></tr><tr><td class='line-number'><a name='L614' href='#L614'><pre>614</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L615' href='#L615'><pre>615</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let input = r#"Type=Exe</pre></td></tr><tr><td class='line-number'><a name='L616' href='#L616'><pre>616</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\Windows\System32\stdole2.tlb#OLE Automation</pre></td></tr><tr><td class='line-number'><a name='L617' href='#L617'><pre>617</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Object={00020430-0000-0000-C000-000000000046}#2.0#0; stdole2.tlb</pre></td></tr><tr><td class='line-number'><a name='L618' href='#L618'><pre>618</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Module=Module1; Module1.bas</pre></td></tr><tr><td class='line-number'><a name='L619' href='#L619'><pre>619</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Form=Form2.frm</pre></td></tr><tr><td class='line-number'><a name='L620' href='#L620'><pre>620</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// RelatedDoc=RelatedDocument1.rdt</pre></td></tr><tr><td class='line-number'><a name='L621' href='#L621'><pre>621</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// "#;</pre></td></tr><tr><td class='line-number'><a name='L622' href='#L622'><pre>622</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L623' href='#L623'><pre>623</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let project_source_file = match SourceFile::decode_with_replacement("project1.vbp", input.as_bytes()) {</pre></td></tr><tr><td class='line-number'><a name='L624' href='#L624'><pre>624</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Ok(source_file) => source_file,</pre></td></tr><tr><td class='line-number'><a name='L625' href='#L625'><pre>625</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Err(e) => {</pre></td></tr><tr><td class='line-number'><a name='L626' href='#L626'><pre>626</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// e.print();</pre></td></tr><tr><td class='line-number'><a name='L627' href='#L627'><pre>627</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// panic!("failed to decode project source code.");</pre></td></tr><tr><td class='line-number'><a name='L628' href='#L628'><pre>628</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L629' href='#L629'><pre>629</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// };</pre></td></tr><tr><td class='line-number'><a name='L630' href='#L630'><pre>630</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L631' href='#L631'><pre>631</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let result = ProjectFile::parse(&project_source_file);</pre></td></tr><tr><td class='line-number'><a name='L632' href='#L632'><pre>632</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L633' href='#L633'><pre>633</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let (project_opt, failures) = result.unpack();</pre></td></tr><tr><td class='line-number'><a name='L634' href='#L634'><pre>634</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L635' href='#L635'><pre>635</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// if !failures.is_empty() {</pre></td></tr><tr><td class='line-number'><a name='L636' href='#L636'><pre>636</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// for failure in failures.iter() {</pre></td></tr><tr><td class='line-number'><a name='L637' href='#L637'><pre>637</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// failure.print();</pre></td></tr><tr><td class='line-number'><a name='L638' href='#L638'><pre>638</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L639' href='#L639'><pre>639</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L640' href='#L640'><pre>640</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L641' href='#L641'><pre>641</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let project = project_opt.expect("Expected project to be parsed successfully.");</pre></td></tr><tr><td class='line-number'><a name='L642' href='#L642'><pre>642</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L643' href='#L643'><pre>643</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.project_type, CompileTargetType::Exe);</pre></td></tr><tr><td class='line-number'><a name='L644' href='#L644'><pre>644</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.related_documents().collect::<Vec<_>>().len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L645' href='#L645'><pre>645</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// ```</pre></td></tr><tr><td class='line-number'><a name='L646' href='#L646'><pre>646</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>pub fn related_documents(&self) -> impl Iterator<Item = &&'a str></span> {</pre></td></tr><tr><td class='line-number'><a name='L647' href='#L647'><pre>647</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>self.related_documents.iter()</span></pre></td></tr><tr><td class='line-number'><a name='L648' href='#L648'><pre>648</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L649' href='#L649'><pre>649</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L650' href='#L650'><pre>650</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Returns an iterator over the project property pages.</pre></td></tr><tr><td class='line-number'><a name='L651' href='#L651'><pre>651</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L652' href='#L652'><pre>652</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Returns</pre></td></tr><tr><td class='line-number'><a name='L653' href='#L653'><pre>653</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L654' href='#L654'><pre>654</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// An iterator over references to property page file names.</pre></td></tr><tr><td class='line-number'><a name='L655' href='#L655'><pre>655</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L656' href='#L656'><pre>656</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Example</pre></td></tr><tr><td class='line-number'><a name='L657' href='#L657'><pre>657</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// ```rust</pre></td></tr><tr><td class='line-number'><a name='L658' href='#L658'><pre>658</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// use vb6parse::*;</pre></td></tr><tr><td class='line-number'><a name='L659' href='#L659'><pre>659</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// use vb6parse::files::project::properties::CompileTargetType;</pre></td></tr><tr><td class='line-number'><a name='L660' href='#L660'><pre>660</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L661' href='#L661'><pre>661</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let input = r#"Type=Exe</pre></td></tr><tr><td class='line-number'><a name='L662' href='#L662'><pre>662</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\Windows\System32\stdole2.tlb#OLE Automation</pre></td></tr><tr><td class='line-number'><a name='L663' href='#L663'><pre>663</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Object={00020430-0000-0000-C000-000000000046}#2.0#0; stdole2.tlb</pre></td></tr><tr><td class='line-number'><a name='L664' href='#L664'><pre>664</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Module=Module1; Module1.bas</pre></td></tr><tr><td class='line-number'><a name='L665' href='#L665'><pre>665</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Form=Form2.frm</pre></td></tr><tr><td class='line-number'><a name='L666' href='#L666'><pre>666</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// PropertyPage=PropertyPage1.ppg</pre></td></tr><tr><td class='line-number'><a name='L667' href='#L667'><pre>667</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// UserDocument=UserDocument1.udd</pre></td></tr><tr><td class='line-number'><a name='L668' href='#L668'><pre>668</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// "#;</pre></td></tr><tr><td class='line-number'><a name='L669' href='#L669'><pre>669</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L670' href='#L670'><pre>670</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let project_source_file = match SourceFile::decode_with_replacement("project1.vbp", input.as_bytes()) {</pre></td></tr><tr><td class='line-number'><a name='L671' href='#L671'><pre>671</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Ok(source_file) => source_file,</pre></td></tr><tr><td class='line-number'><a name='L672' href='#L672'><pre>672</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Err(e) => {</pre></td></tr><tr><td class='line-number'><a name='L673' href='#L673'><pre>673</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// e.print();</pre></td></tr><tr><td class='line-number'><a name='L674' href='#L674'><pre>674</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// panic!("failed to decode project source code.");</pre></td></tr><tr><td class='line-number'><a name='L675' href='#L675'><pre>675</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L676' href='#L676'><pre>676</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// };</pre></td></tr><tr><td class='line-number'><a name='L677' href='#L677'><pre>677</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L678' href='#L678'><pre>678</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let result = ProjectFile::parse(&project_source_file);</pre></td></tr><tr><td class='line-number'><a name='L679' href='#L679'><pre>679</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L680' href='#L680'><pre>680</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let (project_opt, failures) = result.unpack();</pre></td></tr><tr><td class='line-number'><a name='L681' href='#L681'><pre>681</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L682' href='#L682'><pre>682</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// if !failures.is_empty() {</pre></td></tr><tr><td class='line-number'><a name='L683' href='#L683'><pre>683</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// for failure in failures.iter() {</pre></td></tr><tr><td class='line-number'><a name='L684' href='#L684'><pre>684</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// failure.print();</pre></td></tr><tr><td class='line-number'><a name='L685' href='#L685'><pre>685</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L686' href='#L686'><pre>686</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L687' href='#L687'><pre>687</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L688' href='#L688'><pre>688</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let project = project_opt.expect("Expected project to be parsed successfully.");</pre></td></tr><tr><td class='line-number'><a name='L689' href='#L689'><pre>689</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L690' href='#L690'><pre>690</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.project_type, CompileTargetType::Exe);</pre></td></tr><tr><td class='line-number'><a name='L691' href='#L691'><pre>691</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.property_pages().collect::<Vec<_>>().len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L692' href='#L692'><pre>692</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// ```</pre></td></tr><tr><td class='line-number'><a name='L693' href='#L693'><pre>693</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>pub fn property_pages(&self) -> impl Iterator<Item = &&'a str></span> {</pre></td></tr><tr><td class='line-number'><a name='L694' href='#L694'><pre>694</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>self.property_pages.iter()</span></pre></td></tr><tr><td class='line-number'><a name='L695' href='#L695'><pre>695</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L696' href='#L696'><pre>696</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L697' href='#L697'><pre>697</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Returns a reference to the other properties map.</pre></td></tr><tr><td class='line-number'><a name='L698' href='#L698'><pre>698</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L699' href='#L699'><pre>699</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Returns</pre></td></tr><tr><td class='line-number'><a name='L700' href='#L700'><pre>700</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L701' href='#L701'><pre>701</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// A reference to the `other_properties` map.</pre></td></tr><tr><td class='line-number'><a name='L702' href='#L702'><pre>702</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L703' href='#L703'><pre>703</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Example</pre></td></tr><tr><td class='line-number'><a name='L704' href='#L704'><pre>704</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// ```rust</pre></td></tr><tr><td class='line-number'><a name='L705' href='#L705'><pre>705</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// use vb6parse::*;</pre></td></tr><tr><td class='line-number'><a name='L706' href='#L706'><pre>706</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// use vb6parse::files::project::properties::CompileTargetType;</pre></td></tr><tr><td class='line-number'><a name='L707' href='#L707'><pre>707</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L708' href='#L708'><pre>708</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let input = r#"Type=Exe</pre></td></tr><tr><td class='line-number'><a name='L709' href='#L709'><pre>709</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\Windows\System32\stdole2.tlb#OLE Automation</pre></td></tr><tr><td class='line-number'><a name='L710' href='#L710'><pre>710</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Object={00020430-0000-0000-C000-000000000046}#2.0#0; stdole2.tlb</pre></td></tr><tr><td class='line-number'><a name='L711' href='#L711'><pre>711</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Module=Module1; Module1.bas</pre></td></tr><tr><td class='line-number'><a name='L712' href='#L712'><pre>712</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Form=Form2.frm</pre></td></tr><tr><td class='line-number'><a name='L713' href='#L713'><pre>713</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// PropertyPage=PropertyPage1.ppg</pre></td></tr><tr><td class='line-number'><a name='L714' href='#L714'><pre>714</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// UserDocument=UserDocument1.udd</pre></td></tr><tr><td class='line-number'><a name='L715' href='#L715'><pre>715</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L716' href='#L716'><pre>716</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// [ThirdPartySection]</pre></td></tr><tr><td class='line-number'><a name='L717' href='#L717'><pre>717</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// CustomProperty1=Value1</pre></td></tr><tr><td class='line-number'><a name='L718' href='#L718'><pre>718</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// "#;</pre></td></tr><tr><td class='line-number'><a name='L719' href='#L719'><pre>719</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L720' href='#L720'><pre>720</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let project_source_file = match SourceFile::decode_with_replacement("project1.vbp", input.as_bytes()) {</pre></td></tr><tr><td class='line-number'><a name='L721' href='#L721'><pre>721</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Ok(source_file) => source_file,</pre></td></tr><tr><td class='line-number'><a name='L722' href='#L722'><pre>722</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Err(e) => {</pre></td></tr><tr><td class='line-number'><a name='L723' href='#L723'><pre>723</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// e.print();</pre></td></tr><tr><td class='line-number'><a name='L724' href='#L724'><pre>724</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// panic!("failed to decode project source code.");</pre></td></tr><tr><td class='line-number'><a name='L725' href='#L725'><pre>725</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L726' href='#L726'><pre>726</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// };</pre></td></tr><tr><td class='line-number'><a name='L727' href='#L727'><pre>727</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L728' href='#L728'><pre>728</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let result = ProjectFile::parse(&project_source_file);</pre></td></tr><tr><td class='line-number'><a name='L729' href='#L729'><pre>729</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L730' href='#L730'><pre>730</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let (project_opt, failures) = result.unpack();</pre></td></tr><tr><td class='line-number'><a name='L731' href='#L731'><pre>731</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L732' href='#L732'><pre>732</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// if !failures.is_empty() {</pre></td></tr><tr><td class='line-number'><a name='L733' href='#L733'><pre>733</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// for failure in failures.iter() {</pre></td></tr><tr><td class='line-number'><a name='L734' href='#L734'><pre>734</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// failure.print();</pre></td></tr><tr><td class='line-number'><a name='L735' href='#L735'><pre>735</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L736' href='#L736'><pre>736</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L737' href='#L737'><pre>737</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L738' href='#L738'><pre>738</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let project = project_opt.expect("Expected project to be parsed successfully.");</pre></td></tr><tr><td class='line-number'><a name='L739' href='#L739'><pre>739</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L740' href='#L740'><pre>740</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.project_type, CompileTargetType::Exe);</pre></td></tr><tr><td class='line-number'><a name='L741' href='#L741'><pre>741</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L742' href='#L742'><pre>742</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let other_props = project.other_properties();</pre></td></tr><tr><td class='line-number'><a name='L743' href='#L743'><pre>743</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(other_props.len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L744' href='#L744'><pre>744</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert!(other_props.contains_key("ThirdPartySection"));</pre></td></tr><tr><td class='line-number'><a name='L745' href='#L745'><pre>745</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L746' href='#L746'><pre>746</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let third_party_props = other_props.get("ThirdPartySection").unwrap();</pre></td></tr><tr><td class='line-number'><a name='L747' href='#L747'><pre>747</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(third_party_props.len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L748' href='#L748'><pre>748</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(third_party_props.get("CustomProperty1").unwrap(), &"Value1");</pre></td></tr><tr><td class='line-number'><a name='L749' href='#L749'><pre>749</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// ```</pre></td></tr><tr><td class='line-number'><a name='L750' href='#L750'><pre>750</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[must_use]</pre></td></tr><tr><td class='line-number'><a name='L751' href='#L751'><pre>751</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>pub fn other_properties(&self) -> &HashMap<&'a str, HashMap<&'a str, &'a str>></span> {</pre></td></tr><tr><td class='line-number'><a name='L752' href='#L752'><pre>752</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>&self.other_properties</span></pre></td></tr><tr><td class='line-number'><a name='L753' href='#L753'><pre>753</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L754' href='#L754'><pre>754</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L755' href='#L755'><pre>755</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Parses a VB6 project file using a dispatch-based property handler system.</pre></td></tr><tr><td class='line-number'><a name='L756' href='#L756'><pre>756</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L757' href='#L757'><pre>757</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// This method uses a registry of property handlers to parse VB6 project files.</pre></td></tr><tr><td class='line-number'><a name='L758' href='#L758'><pre>758</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// The dispatch system provides better maintainability compared to the previous</pre></td></tr><tr><td class='line-number'><a name='L759' href='#L759'><pre>759</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// large match statement approach.</pre></td></tr><tr><td class='line-number'><a name='L760' href='#L760'><pre>760</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L761' href='#L761'><pre>761</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Architecture</pre></td></tr><tr><td class='line-number'><a name='L762' href='#L762'><pre>762</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L763' href='#L763'><pre>763</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// The parsing process follows these steps:</pre></td></tr><tr><td class='line-number'><a name='L764' href='#L764'><pre>764</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// 1. Initialize an empty project and property handler registry</pre></td></tr><tr><td class='line-number'><a name='L765' href='#L765'><pre>765</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// 2. Loop through each line of the input</pre></td></tr><tr><td class='line-number'><a name='L766' href='#L766'><pre>766</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// 3. Skip empty lines and handle section headers for third-party properties</pre></td></tr><tr><td class='line-number'><a name='L767' href='#L767'><pre>767</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// 4. Parse the property name</pre></td></tr><tr><td class='line-number'><a name='L768' href='#L768'><pre>768</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// 5. Dispatch to the appropriate handler based on the property name</pre></td></tr><tr><td class='line-number'><a name='L769' href='#L769'><pre>769</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// 6. Collect any errors without stopping the parse</pre></td></tr><tr><td class='line-number'><a name='L770' href='#L770'><pre>770</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L771' href='#L771'><pre>771</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Error Handling</pre></td></tr><tr><td class='line-number'><a name='L772' href='#L772'><pre>772</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L773' href='#L773'><pre>773</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// This parser uses an error-collecting approach rather than fail-fast. When</pre></td></tr><tr><td class='line-number'><a name='L774' href='#L774'><pre>774</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// an error occurs, it's added to the failures vector and parsing continues.</pre></td></tr><tr><td class='line-number'><a name='L775' href='#L775'><pre>775</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// This allows reporting multiple errors in a single pass.</pre></td></tr><tr><td class='line-number'><a name='L776' href='#L776'><pre>776</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L777' href='#L777'><pre>777</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Returns</pre></td></tr><tr><td class='line-number'><a name='L778' href='#L778'><pre>778</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L779' href='#L779'><pre>779</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// A `ProjectResult` containing the parsed project (if successful) and any</pre></td></tr><tr><td class='line-number'><a name='L780' href='#L780'><pre>780</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// errors encountered during parsing.</pre></td></tr><tr><td class='line-number'><a name='L781' href='#L781'><pre>781</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L782' href='#L782'><pre>782</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Panics</pre></td></tr><tr><td class='line-number'><a name='L783' href='#L783'><pre>783</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L784' href='#L784'><pre>784</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// This function can panic if the input is not a valid VB6 project file.</pre></td></tr><tr><td class='line-number'><a name='L785' href='#L785'><pre>785</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L786' href='#L786'><pre>786</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Example</pre></td></tr><tr><td class='line-number'><a name='L787' href='#L787'><pre>787</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L788' href='#L788'><pre>788</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// ```rust</pre></td></tr><tr><td class='line-number'><a name='L789' href='#L789'><pre>789</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// use vb6parse::*;</pre></td></tr><tr><td class='line-number'><a name='L790' href='#L790'><pre>790</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// use vb6parse::files::project::properties::CompileTargetType;</pre></td></tr><tr><td class='line-number'><a name='L791' href='#L791'><pre>791</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L792' href='#L792'><pre>792</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let input = r#"Type=Exe</pre></td></tr><tr><td class='line-number'><a name='L793' href='#L793'><pre>793</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\Windows\System32\stdole2.tlb#OLE Automation</pre></td></tr><tr><td class='line-number'><a name='L794' href='#L794'><pre>794</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Object={00020430-0000-0000-C000-000000000046}#2.0#0; stdole2.tlb</pre></td></tr><tr><td class='line-number'><a name='L795' href='#L795'><pre>795</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Module=Module1; Module1.bas</pre></td></tr><tr><td class='line-number'><a name='L796' href='#L796'><pre>796</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Class=Class1; Class1.cls</pre></td></tr><tr><td class='line-number'><a name='L797' href='#L797'><pre>797</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Form=Form1.frm</pre></td></tr><tr><td class='line-number'><a name='L798' href='#L798'><pre>798</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Form=Form2.frm</pre></td></tr><tr><td class='line-number'><a name='L799' href='#L799'><pre>799</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// UserControl=UserControl1.ctl</pre></td></tr><tr><td class='line-number'><a name='L800' href='#L800'><pre>800</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// UserDocument=UserDocument1.uds</pre></td></tr><tr><td class='line-number'><a name='L801' href='#L801'><pre>801</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// ExeName32="Project1.exe"</pre></td></tr><tr><td class='line-number'><a name='L802' href='#L802'><pre>802</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Command32=""</pre></td></tr><tr><td class='line-number'><a name='L803' href='#L803'><pre>803</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Path32=""</pre></td></tr><tr><td class='line-number'><a name='L804' href='#L804'><pre>804</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Name="Project1"</pre></td></tr><tr><td class='line-number'><a name='L805' href='#L805'><pre>805</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// HelpContextID="0"</pre></td></tr><tr><td class='line-number'><a name='L806' href='#L806'><pre>806</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// CompatibleMode="0"</pre></td></tr><tr><td class='line-number'><a name='L807' href='#L807'><pre>807</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// MajorVer=1</pre></td></tr><tr><td class='line-number'><a name='L808' href='#L808'><pre>808</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// MinorVer=0</pre></td></tr><tr><td class='line-number'><a name='L809' href='#L809'><pre>809</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// RevisionVer=0</pre></td></tr><tr><td class='line-number'><a name='L810' href='#L810'><pre>810</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// AutoIncrementVer=0</pre></td></tr><tr><td class='line-number'><a name='L811' href='#L811'><pre>811</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// StartMode=0</pre></td></tr><tr><td class='line-number'><a name='L812' href='#L812'><pre>812</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Unattended=0</pre></td></tr><tr><td class='line-number'><a name='L813' href='#L813'><pre>813</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Retained=0</pre></td></tr><tr><td class='line-number'><a name='L814' href='#L814'><pre>814</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// ThreadPerObject=0</pre></td></tr><tr><td class='line-number'><a name='L815' href='#L815'><pre>815</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// MaxNumberOfThreads=1</pre></td></tr><tr><td class='line-number'><a name='L816' href='#L816'><pre>816</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// DebugStartupOption=0</pre></td></tr><tr><td class='line-number'><a name='L817' href='#L817'><pre>817</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// NoControlUpgrade=0</pre></td></tr><tr><td class='line-number'><a name='L818' href='#L818'><pre>818</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// ServerSupportFiles=0</pre></td></tr><tr><td class='line-number'><a name='L819' href='#L819'><pre>819</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// VersionCompanyName="Company Name"</pre></td></tr><tr><td class='line-number'><a name='L820' href='#L820'><pre>820</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// VersionFileDescription="File Description"</pre></td></tr><tr><td class='line-number'><a name='L821' href='#L821'><pre>821</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// VersionLegalCopyright="Copyright"</pre></td></tr><tr><td class='line-number'><a name='L822' href='#L822'><pre>822</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// VersionLegalTrademarks="Trademark"</pre></td></tr><tr><td class='line-number'><a name='L823' href='#L823'><pre>823</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// VersionProductName="Product Name"</pre></td></tr><tr><td class='line-number'><a name='L824' href='#L824'><pre>824</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// VersionComments="Comments"</pre></td></tr><tr><td class='line-number'><a name='L825' href='#L825'><pre>825</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// CompilationType=0</pre></td></tr><tr><td class='line-number'><a name='L826' href='#L826'><pre>826</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// OptimizationType=0</pre></td></tr><tr><td class='line-number'><a name='L827' href='#L827'><pre>827</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// FavorPentiumPro(tm)=0</pre></td></tr><tr><td class='line-number'><a name='L828' href='#L828'><pre>828</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// CodeViewDebugInfo=0</pre></td></tr><tr><td class='line-number'><a name='L829' href='#L829'><pre>829</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// NoAliasing=0</pre></td></tr><tr><td class='line-number'><a name='L830' href='#L830'><pre>830</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// BoundsCheck=0</pre></td></tr><tr><td class='line-number'><a name='L831' href='#L831'><pre>831</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// OverflowCheck=0</pre></td></tr><tr><td class='line-number'><a name='L832' href='#L832'><pre>832</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// FlPointCheck=0</pre></td></tr><tr><td class='line-number'><a name='L833' href='#L833'><pre>833</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// FDIVCheck=0</pre></td></tr><tr><td class='line-number'><a name='L834' href='#L834'><pre>834</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// UnroundedFP=0</pre></td></tr><tr><td class='line-number'><a name='L835' href='#L835'><pre>835</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// CondComp=""</pre></td></tr><tr><td class='line-number'><a name='L836' href='#L836'><pre>836</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// ResFile32=""</pre></td></tr><tr><td class='line-number'><a name='L837' href='#L837'><pre>837</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// IconForm=""</pre></td></tr><tr><td class='line-number'><a name='L838' href='#L838'><pre>838</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Startup="Form1"</pre></td></tr><tr><td class='line-number'><a name='L839' href='#L839'><pre>839</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// HelpFile=""</pre></td></tr><tr><td class='line-number'><a name='L840' href='#L840'><pre>840</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Title="Project1"</pre></td></tr><tr><td class='line-number'><a name='L841' href='#L841'><pre>841</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// [MS Transaction Server]</pre></td></tr><tr><td class='line-number'><a name='L842' href='#L842'><pre>842</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// AutoRefresh=1</pre></td></tr><tr><td class='line-number'><a name='L843' href='#L843'><pre>843</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// "#;</pre></td></tr><tr><td class='line-number'><a name='L844' href='#L844'><pre>844</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let project_source_file = match SourceFile::decode_with_replacement("project1.vbp", input.as_bytes()) {</pre></td></tr><tr><td class='line-number'><a name='L845' href='#L845'><pre>845</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Ok(source_file) => source_file,</pre></td></tr><tr><td class='line-number'><a name='L846' href='#L846'><pre>846</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Err(e) => {</pre></td></tr><tr><td class='line-number'><a name='L847' href='#L847'><pre>847</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// e.print();</pre></td></tr><tr><td class='line-number'><a name='L848' href='#L848'><pre>848</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// panic!("failed to decode project source code.");</pre></td></tr><tr><td class='line-number'><a name='L849' href='#L849'><pre>849</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L850' href='#L850'><pre>850</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// };</pre></td></tr><tr><td class='line-number'><a name='L851' href='#L851'><pre>851</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L852' href='#L852'><pre>852</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let result = ProjectFile::parse(&project_source_file);</pre></td></tr><tr><td class='line-number'><a name='L853' href='#L853'><pre>853</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L854' href='#L854'><pre>854</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let (project_opt, failures) = result.unpack();</pre></td></tr><tr><td class='line-number'><a name='L855' href='#L855'><pre>855</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L856' href='#L856'><pre>856</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// if !failures.is_empty() {</pre></td></tr><tr><td class='line-number'><a name='L857' href='#L857'><pre>857</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// for failure in failures.iter() {</pre></td></tr><tr><td class='line-number'><a name='L858' href='#L858'><pre>858</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// failure.print();</pre></td></tr><tr><td class='line-number'><a name='L859' href='#L859'><pre>859</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L860' href='#L860'><pre>860</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// panic!("Failed to parse project with {} errors.", failures.len());</pre></td></tr><tr><td class='line-number'><a name='L861' href='#L861'><pre>861</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// }</pre></td></tr><tr><td class='line-number'><a name='L862' href='#L862'><pre>862</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L863' href='#L863'><pre>863</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// let project = project_opt.expect("Expected project to be parsed successfully.");</pre></td></tr><tr><td class='line-number'><a name='L864' href='#L864'><pre>864</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L865' href='#L865'><pre>865</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.project_type, CompileTargetType::Exe);</pre></td></tr><tr><td class='line-number'><a name='L866' href='#L866'><pre>866</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.references().collect::<Vec<_>>().len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L867' href='#L867'><pre>867</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.objects().collect::<Vec<_>>().len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L868' href='#L868'><pre>868</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.modules().collect::<Vec<_>>().len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L869' href='#L869'><pre>869</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.classes().collect::<Vec<_>>().len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L870' href='#L870'><pre>870</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.designers().collect::<Vec<_>>().len(), 0);</pre></td></tr><tr><td class='line-number'><a name='L871' href='#L871'><pre>871</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.forms().collect::<Vec<_>>().len(), 2);</pre></td></tr><tr><td class='line-number'><a name='L872' href='#L872'><pre>872</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.user_controls().collect::<Vec<_>>().len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L873' href='#L873'><pre>873</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.user_documents().collect::<Vec<_>>().len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L874' href='#L874'><pre>874</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.properties.startup, "Form1");</pre></td></tr><tr><td class='line-number'><a name='L875' href='#L875'><pre>875</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.properties.title, "Project1");</pre></td></tr><tr><td class='line-number'><a name='L876' href='#L876'><pre>876</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// assert_eq!(project.properties.exe_32_file_name, "Project1.exe");</pre></td></tr><tr><td class='line-number'><a name='L877' href='#L877'><pre>877</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// ```</pre></td></tr><tr><td class='line-number'><a name='L878' href='#L878'><pre>878</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[must_use]</pre></td></tr><tr><td class='line-number'><a name='L879' href='#L879'><pre>879</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> pub fn parse(source_file: &'a SourceFile) -> ProjectResult<'a> {</pre></td></tr><tr><td class='line-number'><a name='L880' href='#L880'><pre>880</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> let mut failures = vec![];</pre></td></tr><tr><td class='line-number'><a name='L881' href='#L881'><pre>881</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> let mut project = ProjectFile::new_empty();</pre></td></tr><tr><td class='line-number'><a name='L882' href='#L882'><pre>882</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> let mut input = source_file.source_stream();</pre></td></tr><tr><td class='line-number'><a name='L883' href='#L883'><pre>883</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> let mut other_property_group: Option<&str> = None;</pre></td></tr><tr><td class='line-number'><a name='L884' href='#L884'><pre>884</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> let handlers = PropertyHandlers::new();</pre></td></tr><tr><td class='line-number'><a name='L885' href='#L885'><pre>885</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L886' href='#L886'><pre>886</pre></a></td><td class='covered-line'><pre>1.81k</pre></td><td class='code'><pre> while !input.is_empty() {</pre></td></tr><tr><td class='line-number'><a name='L887' href='#L887'><pre>887</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // Skip empty lines</pre></td></tr><tr><td class='line-number'><a name='L888' href='#L888'><pre>888</pre></a></td><td class='covered-line'><pre>1.77k</pre></td><td class='code'><pre> if skip_empty_lines(&mut input) {</pre></td></tr><tr><td class='line-number'><a name='L889' href='#L889'><pre>889</pre></a></td><td class='covered-line'><pre>33</pre></td><td class='code'><pre> continue;</pre></td></tr><tr><td class='line-number'><a name='L890' href='#L890'><pre>890</pre></a></td><td class='covered-line'><pre>1.74k</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L891' href='#L891'><pre>891</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L892' href='#L892'><pre>892</pre></a></td><td class='covered-line'><pre>1.74k</pre></td><td class='code'><pre> let line_start = input.start_of_line();</pre></td></tr><tr><td class='line-number'><a name='L893' href='#L893'><pre>893</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L894' href='#L894'><pre>894</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // Handle section headers</pre></td></tr><tr><td class='line-number'><a name='L895' href='#L895'><pre>895</pre></a></td><td class='covered-line'><pre>1.74k</pre></td><td class='code'><pre> match parse_section_header_line(&mut input) {</pre></td></tr><tr><td class='line-number'><a name='L896' href='#L896'><pre>896</pre></a></td><td class='covered-line'><pre>33</pre></td><td class='code'><pre> Ok(Some(section_header)) => {</pre></td></tr><tr><td class='line-number'><a name='L897' href='#L897'><pre>897</pre></a></td><td class='covered-line'><pre>33</pre></td><td class='code'><pre> handle_section_header(&mut project, section_header, &mut other_property_group);</pre></td></tr><tr><td class='line-number'><a name='L898' href='#L898'><pre>898</pre></a></td><td class='covered-line'><pre>33</pre></td><td class='code'><pre> continue;</pre></td></tr><tr><td class='line-number'><a name='L899' href='#L899'><pre>899</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L900' href='#L900'><pre>900</pre></a></td><td class='covered-line'><pre>1.71k</pre></td><td class='code'><pre> Ok(None) => {</pre></td></tr><tr><td class='line-number'><a name='L901' href='#L901'><pre>901</pre></a></td><td class='covered-line'><pre>1.71k</pre></td><td class='code'><pre> // Not a section header line, parse the line as a normal</pre></td></tr><tr><td class='line-number'><a name='L902' href='#L902'><pre>902</pre></a></td><td class='covered-line'><pre>1.71k</pre></td><td class='code'><pre> // VB6 project property line.</pre></td></tr><tr><td class='line-number'><a name='L903' href='#L903'><pre>903</pre></a></td><td class='covered-line'><pre>1.71k</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L904' href='#L904'><pre>904</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => {</pre></td></tr><tr><td class='line-number'><a name='L905' href='#L905'><pre>905</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>);</pre></td></tr><tr><td class='line-number'><a name='L906' href='#L906'><pre>906</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>continue</span>;</pre></td></tr><tr><td class='line-number'><a name='L907' href='#L907'><pre>907</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L908' href='#L908'><pre>908</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L909' href='#L909'><pre>909</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L910' href='#L910'><pre>910</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // Parse property name</pre></td></tr><tr><td class='line-number'><a name='L911' href='#L911'><pre>911</pre></a></td><td class='covered-line'><pre>1.71k</pre></td><td class='code'><pre> let property_name = match parse_property_name(&mut input) {</pre></td></tr><tr><td class='line-number'><a name='L912' href='#L912'><pre>912</pre></a></td><td class='covered-line'><pre>1.71k</pre></td><td class='code'><pre> Ok(property_name) => property_name,</pre></td></tr><tr><td class='line-number'><a name='L913' href='#L913'><pre>913</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => {</pre></td></tr><tr><td class='line-number'><a name='L914' href='#L914'><pre>914</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>);</pre></td></tr><tr><td class='line-number'><a name='L915' href='#L915'><pre>915</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>continue</span>;</pre></td></tr><tr><td class='line-number'><a name='L916' href='#L916'><pre>916</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L917' href='#L917'><pre>917</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L918' href='#L918'><pre>918</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L919' href='#L919'><pre>919</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // Handle third-party properties</pre></td></tr><tr><td class='line-number'><a name='L920' href='#L920'><pre>920</pre></a></td><td class='covered-line'><pre>1.71k</pre></td><td class='code'><pre> if let Some(<div class='tooltip'>group<span class='tooltip-content'>34</span></div>) = other_property_group {</pre></td></tr><tr><td class='line-number'><a name='L921' href='#L921'><pre>921</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> handle_other_property(</pre></td></tr><tr><td class='line-number'><a name='L922' href='#L922'><pre>922</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> &mut project,</pre></td></tr><tr><td class='line-number'><a name='L923' href='#L923'><pre>923</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> &mut input,</pre></td></tr><tr><td class='line-number'><a name='L924' href='#L924'><pre>924</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> group,</pre></td></tr><tr><td class='line-number'><a name='L925' href='#L925'><pre>925</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> property_name,</pre></td></tr><tr><td class='line-number'><a name='L926' href='#L926'><pre>926</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> &mut failures,</pre></td></tr><tr><td class='line-number'><a name='L927' href='#L927'><pre>927</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L928' href='#L928'><pre>928</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> continue;</pre></td></tr><tr><td class='line-number'><a name='L929' href='#L929'><pre>929</pre></a></td><td class='covered-line'><pre>1.67k</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L930' href='#L930'><pre>930</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L931' href='#L931'><pre>931</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // Dispatch to appropriate handler</pre></td></tr><tr><td class='line-number'><a name='L932' href='#L932'><pre>932</pre></a></td><td class='covered-line'><pre>1.67k</pre></td><td class='code'><pre> if !handlers.handle(property_name, &mut project, &mut input, &mut failures) <span class='region red'>{</span></pre></td></tr><tr><td class='line-number'><a name='L933' href='#L933'><pre>933</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> </span><span class='region red'>handle_unknown_property</span><span class='region red'>(</span><span class='region red'>&mut input</span><span class='region red'>, </span><span class='region red'>line_start</span><span class='region red'>, property_name, &mut failures);</span></pre></td></tr><tr><td class='line-number'><a name='L934' href='#L934'><pre>934</pre></a></td><td class='covered-line'><pre>1.67k</pre></td><td class='code'><pre><span class='region red'> </span>}</pre></td></tr><tr><td class='line-number'><a name='L935' href='#L935'><pre>935</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L936' href='#L936'><pre>936</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L937' href='#L937'><pre>937</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> ParseResult::new(Some(project), failures)</pre></td></tr><tr><td class='line-number'><a name='L938' href='#L938'><pre>938</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L939' href='#L939'><pre>939</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L940' href='#L940'><pre>940</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Gets a collection of references to all sub-project references in the project.</pre></td></tr><tr><td class='line-number'><a name='L941' href='#L941'><pre>941</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L942' href='#L942'><pre>942</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Returns</pre></td></tr><tr><td class='line-number'><a name='L943' href='#L943'><pre>943</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L944' href='#L944'><pre>944</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// A vector of references to all sub-project references.</pre></td></tr><tr><td class='line-number'><a name='L945' href='#L945'><pre>945</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L946' href='#L946'><pre>946</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[must_use]</pre></td></tr><tr><td class='line-number'><a name='L947' href='#L947'><pre>947</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>pub fn subproject_references(&self) -> Vec<&ProjectReference<'a>></span> {</pre></td></tr><tr><td class='line-number'><a name='L948' href='#L948'><pre>948</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>self.references</span></pre></td></tr><tr><td class='line-number'><a name='L949' href='#L949'><pre>949</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> .iter()</span></pre></td></tr><tr><td class='line-number'><a name='L950' href='#L950'><pre>950</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> .<span class='region red'>filter</span>(|reference| matches!(<span class='region red'>reference</span>, ProjectReference::SubProject { .. }))</pre></td></tr><tr><td class='line-number'><a name='L951' href='#L951'><pre>951</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> .<span class='region red'>collect</span>::<Vec<_>>()</pre></td></tr><tr><td class='line-number'><a name='L952' href='#L952'><pre>952</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L953' href='#L953'><pre>953</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L954' href='#L954'><pre>954</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Gets a collection of all project references.</pre></td></tr><tr><td class='line-number'><a name='L955' href='#L955'><pre>955</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L956' href='#L956'><pre>956</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Returns</pre></td></tr><tr><td class='line-number'><a name='L957' href='#L957'><pre>957</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L958' href='#L958'><pre>958</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// A vector of all project references.</pre></td></tr><tr><td class='line-number'><a name='L959' href='#L959'><pre>959</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L960' href='#L960'><pre>960</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[must_use]</pre></td></tr><tr><td class='line-number'><a name='L961' href='#L961'><pre>961</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>pub fn project_references(&self) -> &Vec<ProjectReference<'a>></span> {</pre></td></tr><tr><td class='line-number'><a name='L962' href='#L962'><pre>962</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>&self.references</span></pre></td></tr><tr><td class='line-number'><a name='L963' href='#L963'><pre>963</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L964' href='#L964'><pre>964</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L965' href='#L965'><pre>965</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Gets a collection of references to all compiled references in the project.</pre></td></tr><tr><td class='line-number'><a name='L966' href='#L966'><pre>966</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L967' href='#L967'><pre>967</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Returns</pre></td></tr><tr><td class='line-number'><a name='L968' href='#L968'><pre>968</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L969' href='#L969'><pre>969</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// A vector of references to all compiled references.</pre></td></tr><tr><td class='line-number'><a name='L970' href='#L970'><pre>970</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L971' href='#L971'><pre>971</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[must_use]</pre></td></tr><tr><td class='line-number'><a name='L972' href='#L972'><pre>972</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>pub fn compiled_references(&self) -> Vec<&ProjectReference<'a>></span> {</pre></td></tr><tr><td class='line-number'><a name='L973' href='#L973'><pre>973</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>self.references</span></pre></td></tr><tr><td class='line-number'><a name='L974' href='#L974'><pre>974</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> .iter()</span></pre></td></tr><tr><td class='line-number'><a name='L975' href='#L975'><pre>975</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> .<span class='region red'>filter</span>(|reference| matches!(<span class='region red'>reference</span>, ProjectReference::Compiled { .. }))</pre></td></tr><tr><td class='line-number'><a name='L976' href='#L976'><pre>976</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> .<span class='region red'>collect</span>::<Vec<_>>()</pre></td></tr><tr><td class='line-number'><a name='L977' href='#L977'><pre>977</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L978' href='#L978'><pre>978</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L979' href='#L979'><pre>979</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Gets a collection of mutable references to all sub-project references in the project.</pre></td></tr><tr><td class='line-number'><a name='L980' href='#L980'><pre>980</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L981' href='#L981'><pre>981</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Returns</pre></td></tr><tr><td class='line-number'><a name='L982' href='#L982'><pre>982</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L983' href='#L983'><pre>983</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// A vector of mutable references to all sub-project references.</pre></td></tr><tr><td class='line-number'><a name='L984' href='#L984'><pre>984</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L985' href='#L985'><pre>985</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[must_use]</pre></td></tr><tr><td class='line-number'><a name='L986' href='#L986'><pre>986</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>pub fn subproject_references_mut(&mut self) -> Vec<&mut ProjectReference<'a>></span> {</pre></td></tr><tr><td class='line-number'><a name='L987' href='#L987'><pre>987</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>self.references</span></pre></td></tr><tr><td class='line-number'><a name='L988' href='#L988'><pre>988</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> .iter_mut()</span></pre></td></tr><tr><td class='line-number'><a name='L989' href='#L989'><pre>989</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> .<span class='region red'>filter</span>(|reference| matches!(<span class='region red'>reference</span>, ProjectReference::SubProject { .. }))</pre></td></tr><tr><td class='line-number'><a name='L990' href='#L990'><pre>990</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> .<span class='region red'>collect</span>::<Vec<_>>()</pre></td></tr><tr><td class='line-number'><a name='L991' href='#L991'><pre>991</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L992' href='#L992'><pre>992</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L993' href='#L993'><pre>993</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Gets a collection of mutable references to all compiled references in the project.</pre></td></tr><tr><td class='line-number'><a name='L994' href='#L994'><pre>994</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L995' href='#L995'><pre>995</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Returns</pre></td></tr><tr><td class='line-number'><a name='L996' href='#L996'><pre>996</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L997' href='#L997'><pre>997</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// A vector of mutable references to all compiled references.</pre></td></tr><tr><td class='line-number'><a name='L998' href='#L998'><pre>998</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L999' href='#L999'><pre>999</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[must_use]</pre></td></tr><tr><td class='line-number'><a name='L1000' href='#L1000'><pre>1000</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>pub fn compiled_references_mut(&mut self) -> Vec<&mut ProjectReference<'a>></span> {</pre></td></tr><tr><td class='line-number'><a name='L1001' href='#L1001'><pre>1001</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>self.references</span></pre></td></tr><tr><td class='line-number'><a name='L1002' href='#L1002'><pre>1002</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> .iter_mut()</span></pre></td></tr><tr><td class='line-number'><a name='L1003' href='#L1003'><pre>1003</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> .<span class='region red'>filter</span>(|reference| matches!(<span class='region red'>reference</span>, ProjectReference::Compiled { .. }))</pre></td></tr><tr><td class='line-number'><a name='L1004' href='#L1004'><pre>1004</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> .<span class='region red'>collect</span>::<Vec<_>>()</pre></td></tr><tr><td class='line-number'><a name='L1005' href='#L1005'><pre>1005</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L1006' href='#L1006'><pre>1006</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1007' href='#L1007'><pre>1007</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Gets a mutable reference to the collection of all project references.</pre></td></tr><tr><td class='line-number'><a name='L1008' href='#L1008'><pre>1008</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L1009' href='#L1009'><pre>1009</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// # Returns</pre></td></tr><tr><td class='line-number'><a name='L1010' href='#L1010'><pre>1010</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L1011' href='#L1011'><pre>1011</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// A mutable reference to the vector of all project references.</pre></td></tr><tr><td class='line-number'><a name='L1012' href='#L1012'><pre>1012</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L1013' href='#L1013'><pre>1013</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[must_use]</pre></td></tr><tr><td class='line-number'><a name='L1014' href='#L1014'><pre>1014</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>pub fn project_references_mut(&mut self) -> &mut Vec<ProjectReference<'a>></span> {</pre></td></tr><tr><td class='line-number'><a name='L1015' href='#L1015'><pre>1015</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>&mut self.references</span></pre></td></tr><tr><td class='line-number'><a name='L1016' href='#L1016'><pre>1016</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L1017' href='#L1017'><pre>1017</pre></a></td><td class='skipped-line'></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1018' href='#L1018'><pre>1018</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1019' href='#L1019'><pre>1019</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// Type alias for property handler functions.</pre></td></tr><tr><td class='line-number'><a name='L1020' href='#L1020'><pre>1020</pre></a></td><td class='skipped-line'></td><td class='code'><pre>///</pre></td></tr><tr><td class='line-number'><a name='L1021' href='#L1021'><pre>1021</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// Property handlers take a mutable reference to the project being built,</pre></td></tr><tr><td class='line-number'><a name='L1022' href='#L1022'><pre>1022</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// a mutable reference to the input stream, the property name, and a mutable</pre></td></tr><tr><td class='line-number'><a name='L1023' href='#L1023'><pre>1023</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// reference to the failures vector for error collection.</pre></td></tr><tr><td class='line-number'><a name='L1024' href='#L1024'><pre>1024</pre></a></td><td class='skipped-line'></td><td class='code'><pre>type PropertyHandler<'a> = fn(</pre></td></tr><tr><td class='line-number'><a name='L1025' href='#L1025'><pre>1025</pre></a></td><td class='skipped-line'></td><td class='code'><pre> &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1026' href='#L1026'><pre>1026</pre></a></td><td class='skipped-line'></td><td class='code'><pre> &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1027' href='#L1027'><pre>1027</pre></a></td><td class='skipped-line'></td><td class='code'><pre> &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1028' href='#L1028'><pre>1028</pre></a></td><td class='skipped-line'></td><td class='code'><pre> &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1029' href='#L1029'><pre>1029</pre></a></td><td class='skipped-line'></td><td class='code'><pre>);</pre></td></tr><tr><td class='line-number'><a name='L1030' href='#L1030'><pre>1030</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1031' href='#L1031'><pre>1031</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// Registry of property handlers for dispatching property parsing.</pre></td></tr><tr><td class='line-number'><a name='L1032' href='#L1032'><pre>1032</pre></a></td><td class='skipped-line'></td><td class='code'><pre>///</pre></td></tr><tr><td class='line-number'><a name='L1033' href='#L1033'><pre>1033</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// This structure provides a dispatch mechanism that maps VB6 project property names</pre></td></tr><tr><td class='line-number'><a name='L1034' href='#L1034'><pre>1034</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// to their corresponding handler functions. This design replaces the previous giant</pre></td></tr><tr><td class='line-number'><a name='L1035' href='#L1035'><pre>1035</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// match statement with a more maintainable and extensible system.</pre></td></tr><tr><td class='line-number'><a name='L1036' href='#L1036'><pre>1036</pre></a></td><td class='skipped-line'></td><td class='code'><pre>///</pre></td></tr><tr><td class='line-number'><a name='L1037' href='#L1037'><pre>1037</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// # Design</pre></td></tr><tr><td class='line-number'><a name='L1038' href='#L1038'><pre>1038</pre></a></td><td class='skipped-line'></td><td class='code'><pre>///</pre></td></tr><tr><td class='line-number'><a name='L1039' href='#L1039'><pre>1039</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// The registry uses a `HashMap` to associate property names with handler functions,</pre></td></tr><tr><td class='line-number'><a name='L1040' href='#L1040'><pre>1040</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// allowing O(1) lookups and making it easy to add new properties without modifying</pre></td></tr><tr><td class='line-number'><a name='L1041' href='#L1041'><pre>1041</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// a large match statement.</pre></td></tr><tr><td class='line-number'><a name='L1042' href='#L1042'><pre>1042</pre></a></td><td class='skipped-line'></td><td class='code'><pre>///</pre></td></tr><tr><td class='line-number'><a name='L1043' href='#L1043'><pre>1043</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// # Property Categories</pre></td></tr><tr><td class='line-number'><a name='L1044' href='#L1044'><pre>1044</pre></a></td><td class='skipped-line'></td><td class='code'><pre>///</pre></td></tr><tr><td class='line-number'><a name='L1045' href='#L1045'><pre>1045</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// The handlers are organized into the following categories:</pre></td></tr><tr><td class='line-number'><a name='L1046' href='#L1046'><pre>1046</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// - **File references**: `Type`, `Designer`, `Reference`, `Object`, `Module`, `Class`, `Form`, etc.</pre></td></tr><tr><td class='line-number'><a name='L1047' href='#L1047'><pre>1047</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// - **Basic metadata**: `ResFile32`, `IconForm`, `Startup`, `HelpFile`, `Title`, `ExeName32`, etc.</pre></td></tr><tr><td class='line-number'><a name='L1048' href='#L1048'><pre>1048</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// - **Version information**: `MajorVer`, `MinorVer`, `VersionCompanyName`, etc.</pre></td></tr><tr><td class='line-number'><a name='L1049' href='#L1049'><pre>1049</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// - **Compatibility**: `CompatibleMode`, `VersionCompatible32`, etc.</pre></td></tr><tr><td class='line-number'><a name='L1050' href='#L1050'><pre>1050</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// - **Compilation**: `CompilationType`, `OptimizationType`, `BoundsCheck`, etc.</pre></td></tr><tr><td class='line-number'><a name='L1051' href='#L1051'><pre>1051</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// - **Threading**: `StartMode`, `ThreadPerObject`, `MaxNumberOfThreads`, etc.</pre></td></tr><tr><td class='line-number'><a name='L1052' href='#L1052'><pre>1052</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// - **Debug settings**: `DebugStartupComponent`, `DebugStartupOption`, etc.</pre></td></tr><tr><td class='line-number'><a name='L1053' href='#L1053'><pre>1053</pre></a></td><td class='skipped-line'></td><td class='code'><pre>struct PropertyHandlers<'a> {</pre></td></tr><tr><td class='line-number'><a name='L1054' href='#L1054'><pre>1054</pre></a></td><td class='skipped-line'></td><td class='code'><pre> handlers: HashMap<&'static str, PropertyHandler<'a>>,</pre></td></tr><tr><td class='line-number'><a name='L1055' href='#L1055'><pre>1055</pre></a></td><td class='skipped-line'></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1056' href='#L1056'><pre>1056</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1057' href='#L1057'><pre>1057</pre></a></td><td class='skipped-line'></td><td class='code'><pre>impl<'a> PropertyHandlers<'a> {</pre></td></tr><tr><td class='line-number'><a name='L1058' href='#L1058'><pre>1058</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Creates a new property handlers registry with all standard VB6 properties registered.</pre></td></tr><tr><td class='line-number'><a name='L1059' href='#L1059'><pre>1059</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> fn new() -> Self {</pre></td></tr><tr><td class='line-number'><a name='L1060' href='#L1060'><pre>1060</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> let mut handlers: HashMap<&'static str, PropertyHandler<'a>> = HashMap::new();</pre></td></tr><tr><td class='line-number'><a name='L1061' href='#L1061'><pre>1061</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1062' href='#L1062'><pre>1062</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // File references</pre></td></tr><tr><td class='line-number'><a name='L1063' href='#L1063'><pre>1063</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("Type", handle_type);</pre></td></tr><tr><td class='line-number'><a name='L1064' href='#L1064'><pre>1064</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("Designer", handle_designer);</pre></td></tr><tr><td class='line-number'><a name='L1065' href='#L1065'><pre>1065</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("Reference", handle_reference);</pre></td></tr><tr><td class='line-number'><a name='L1066' href='#L1066'><pre>1066</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("Object", handle_object);</pre></td></tr><tr><td class='line-number'><a name='L1067' href='#L1067'><pre>1067</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("Module", handle_module);</pre></td></tr><tr><td class='line-number'><a name='L1068' href='#L1068'><pre>1068</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("Class", handle_class);</pre></td></tr><tr><td class='line-number'><a name='L1069' href='#L1069'><pre>1069</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("Form", handle_form);</pre></td></tr><tr><td class='line-number'><a name='L1070' href='#L1070'><pre>1070</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("UserControl", handle_user_control);</pre></td></tr><tr><td class='line-number'><a name='L1071' href='#L1071'><pre>1071</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("UserDocument", handle_user_document);</pre></td></tr><tr><td class='line-number'><a name='L1072' href='#L1072'><pre>1072</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("RelatedDoc", handle_related_doc);</pre></td></tr><tr><td class='line-number'><a name='L1073' href='#L1073'><pre>1073</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("PropertyPage", handle_property_page);</pre></td></tr><tr><td class='line-number'><a name='L1074' href='#L1074'><pre>1074</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1075' href='#L1075'><pre>1075</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // Basic project metadata</pre></td></tr><tr><td class='line-number'><a name='L1076' href='#L1076'><pre>1076</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("ResFile32", handle_res_file_32);</pre></td></tr><tr><td class='line-number'><a name='L1077' href='#L1077'><pre>1077</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("IconForm", handle_icon_form);</pre></td></tr><tr><td class='line-number'><a name='L1078' href='#L1078'><pre>1078</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("Startup", handle_startup);</pre></td></tr><tr><td class='line-number'><a name='L1079' href='#L1079'><pre>1079</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("HelpFile", handle_help_file);</pre></td></tr><tr><td class='line-number'><a name='L1080' href='#L1080'><pre>1080</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("Title", handle_title);</pre></td></tr><tr><td class='line-number'><a name='L1081' href='#L1081'><pre>1081</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("ExeName32", handle_exe_name_32);</pre></td></tr><tr><td class='line-number'><a name='L1082' href='#L1082'><pre>1082</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("Path32", handle_path_32);</pre></td></tr><tr><td class='line-number'><a name='L1083' href='#L1083'><pre>1083</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("Command32", handle_command_32);</pre></td></tr><tr><td class='line-number'><a name='L1084' href='#L1084'><pre>1084</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("Name", handle_name);</pre></td></tr><tr><td class='line-number'><a name='L1085' href='#L1085'><pre>1085</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("Description", handle_description);</pre></td></tr><tr><td class='line-number'><a name='L1086' href='#L1086'><pre>1086</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1087' href='#L1087'><pre>1087</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // Version information</pre></td></tr><tr><td class='line-number'><a name='L1088' href='#L1088'><pre>1088</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("MajorVer", handle_major_ver);</pre></td></tr><tr><td class='line-number'><a name='L1089' href='#L1089'><pre>1089</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("MinorVer", handle_minor_ver);</pre></td></tr><tr><td class='line-number'><a name='L1090' href='#L1090'><pre>1090</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("RevisionVer", handle_revision_ver);</pre></td></tr><tr><td class='line-number'><a name='L1091' href='#L1091'><pre>1091</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("AutoIncrementVer", handle_auto_increment_ver);</pre></td></tr><tr><td class='line-number'><a name='L1092' href='#L1092'><pre>1092</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("VersionCompanyName", handle_version_company_name);</pre></td></tr><tr><td class='line-number'><a name='L1093' href='#L1093'><pre>1093</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("VersionFileDescription", handle_version_file_description);</pre></td></tr><tr><td class='line-number'><a name='L1094' href='#L1094'><pre>1094</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("VersionLegalCopyright", handle_version_legal_copyright);</pre></td></tr><tr><td class='line-number'><a name='L1095' href='#L1095'><pre>1095</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("VersionLegalTrademarks", handle_version_legal_trademarks);</pre></td></tr><tr><td class='line-number'><a name='L1096' href='#L1096'><pre>1096</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("VersionProductName", handle_version_product_name);</pre></td></tr><tr><td class='line-number'><a name='L1097' href='#L1097'><pre>1097</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("VersionComments", handle_version_comments);</pre></td></tr><tr><td class='line-number'><a name='L1098' href='#L1098'><pre>1098</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1099' href='#L1099'><pre>1099</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // Compatibility settings</pre></td></tr><tr><td class='line-number'><a name='L1100' href='#L1100'><pre>1100</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("HelpContextID", handle_help_context_id);</pre></td></tr><tr><td class='line-number'><a name='L1101' href='#L1101'><pre>1101</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("CompatibleMode", handle_compatible_mode);</pre></td></tr><tr><td class='line-number'><a name='L1102' href='#L1102'><pre>1102</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("VersionCompatible32", handle_version_compatible_32);</pre></td></tr><tr><td class='line-number'><a name='L1103' href='#L1103'><pre>1103</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("CompatibleEXE32", handle_compatible_exe_32);</pre></td></tr><tr><td class='line-number'><a name='L1104' href='#L1104'><pre>1104</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1105' href='#L1105'><pre>1105</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // DLL/Component settings</pre></td></tr><tr><td class='line-number'><a name='L1106' href='#L1106'><pre>1106</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("DllBaseAddress", handle_dll_base_address);</pre></td></tr><tr><td class='line-number'><a name='L1107' href='#L1107'><pre>1107</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("RemoveUnusedControlInfo", handle_remove_unused_control_info);</pre></td></tr><tr><td class='line-number'><a name='L1108' href='#L1108'><pre>1108</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1109' href='#L1109'><pre>1109</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // Compilation settings</pre></td></tr><tr><td class='line-number'><a name='L1110' href='#L1110'><pre>1110</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("CompilationType", handle_compilation_type);</pre></td></tr><tr><td class='line-number'><a name='L1111' href='#L1111'><pre>1111</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("OptimizationType", handle_optimization_type);</pre></td></tr><tr><td class='line-number'><a name='L1112' href='#L1112'><pre>1112</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("FavorPentiumPro(tm)", handle_favor_pentium_pro);</pre></td></tr><tr><td class='line-number'><a name='L1113' href='#L1113'><pre>1113</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("CodeViewDebugInfo", handle_code_view_debug_info);</pre></td></tr><tr><td class='line-number'><a name='L1114' href='#L1114'><pre>1114</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("NoAliasing", handle_no_aliasing);</pre></td></tr><tr><td class='line-number'><a name='L1115' href='#L1115'><pre>1115</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("BoundsCheck", handle_bounds_check);</pre></td></tr><tr><td class='line-number'><a name='L1116' href='#L1116'><pre>1116</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("OverflowCheck", handle_overflow_check);</pre></td></tr><tr><td class='line-number'><a name='L1117' href='#L1117'><pre>1117</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("FlPointCheck", handle_fl_point_check);</pre></td></tr><tr><td class='line-number'><a name='L1118' href='#L1118'><pre>1118</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("FDIVCheck", handle_fdiv_check);</pre></td></tr><tr><td class='line-number'><a name='L1119' href='#L1119'><pre>1119</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("UnroundedFP", handle_unrounded_fp);</pre></td></tr><tr><td class='line-number'><a name='L1120' href='#L1120'><pre>1120</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("CondComp", handle_cond_comp);</pre></td></tr><tr><td class='line-number'><a name='L1121' href='#L1121'><pre>1121</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1122' href='#L1122'><pre>1122</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // Threading & runtime settings</pre></td></tr><tr><td class='line-number'><a name='L1123' href='#L1123'><pre>1123</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("StartMode", handle_start_mode);</pre></td></tr><tr><td class='line-number'><a name='L1124' href='#L1124'><pre>1124</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("Unattended", handle_unattended);</pre></td></tr><tr><td class='line-number'><a name='L1125' href='#L1125'><pre>1125</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("Retained", handle_retained);</pre></td></tr><tr><td class='line-number'><a name='L1126' href='#L1126'><pre>1126</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("ThreadPerObject", handle_thread_per_object);</pre></td></tr><tr><td class='line-number'><a name='L1127' href='#L1127'><pre>1127</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("MaxNumberOfThreads", handle_max_number_of_threads);</pre></td></tr><tr><td class='line-number'><a name='L1128' href='#L1128'><pre>1128</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("ThreadingModel", handle_threading_model);</pre></td></tr><tr><td class='line-number'><a name='L1129' href='#L1129'><pre>1129</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1130' href='#L1130'><pre>1130</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // Debug & development</pre></td></tr><tr><td class='line-number'><a name='L1131' href='#L1131'><pre>1131</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("DebugStartupComponent", handle_debug_startup_component);</pre></td></tr><tr><td class='line-number'><a name='L1132' href='#L1132'><pre>1132</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("DebugStartupOption", handle_debug_startup_option);</pre></td></tr><tr><td class='line-number'><a name='L1133' href='#L1133'><pre>1133</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("UseExistingBrowser", handle_use_existing_browser);</pre></td></tr><tr><td class='line-number'><a name='L1134' href='#L1134'><pre>1134</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("NoControlUpgrade", handle_no_control_upgrade);</pre></td></tr><tr><td class='line-number'><a name='L1135' href='#L1135'><pre>1135</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> handlers.insert("ServerSupportFiles", handle_server_support_files);</pre></td></tr><tr><td class='line-number'><a name='L1136' href='#L1136'><pre>1136</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1137' href='#L1137'><pre>1137</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Self { handlers }</pre></td></tr><tr><td class='line-number'><a name='L1138' href='#L1138'><pre>1138</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1139' href='#L1139'><pre>1139</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1140' href='#L1140'><pre>1140</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Handles a property by dispatching to the appropriate handler function.</pre></td></tr><tr><td class='line-number'><a name='L1141' href='#L1141'><pre>1141</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L1142' href='#L1142'><pre>1142</pre></a></td><td class='skipped-line'></td><td class='code'><pre> /// Returns `true` if the property was handled, `false` if no handler was found.</pre></td></tr><tr><td class='line-number'><a name='L1143' href='#L1143'><pre>1143</pre></a></td><td class='covered-line'><pre>1.67k</pre></td><td class='code'><pre> fn handle(</pre></td></tr><tr><td class='line-number'><a name='L1144' href='#L1144'><pre>1144</pre></a></td><td class='covered-line'><pre>1.67k</pre></td><td class='code'><pre> &self,</pre></td></tr><tr><td class='line-number'><a name='L1145' href='#L1145'><pre>1145</pre></a></td><td class='covered-line'><pre>1.67k</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1146' href='#L1146'><pre>1146</pre></a></td><td class='covered-line'><pre>1.67k</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1147' href='#L1147'><pre>1147</pre></a></td><td class='covered-line'><pre>1.67k</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1148' href='#L1148'><pre>1148</pre></a></td><td class='covered-line'><pre>1.67k</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1149' href='#L1149'><pre>1149</pre></a></td><td class='covered-line'><pre>1.67k</pre></td><td class='code'><pre> ) -> bool {</pre></td></tr><tr><td class='line-number'><a name='L1150' href='#L1150'><pre>1150</pre></a></td><td class='covered-line'><pre>1.67k</pre></td><td class='code'><pre> if let Some(handler) = self.handlers.get(property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1151' href='#L1151'><pre>1151</pre></a></td><td class='covered-line'><pre>1.67k</pre></td><td class='code'><pre> handler(project, input, property_name, failures);</pre></td></tr><tr><td class='line-number'><a name='L1152' href='#L1152'><pre>1152</pre></a></td><td class='covered-line'><pre>1.67k</pre></td><td class='code'><pre> true</pre></td></tr><tr><td class='line-number'><a name='L1153' href='#L1153'><pre>1153</pre></a></td><td class='skipped-line'></td><td class='code'><pre> } else {</pre></td></tr><tr><td class='line-number'><a name='L1154' href='#L1154'><pre>1154</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>false</span></pre></td></tr><tr><td class='line-number'><a name='L1155' href='#L1155'><pre>1155</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1156' href='#L1156'><pre>1156</pre></a></td><td class='covered-line'><pre>1.67k</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1157' href='#L1157'><pre>1157</pre></a></td><td class='skipped-line'></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1158' href='#L1158'><pre>1158</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1159' href='#L1159'><pre>1159</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// Skips empty lines in the input stream.</pre></td></tr><tr><td class='line-number'><a name='L1160' href='#L1160'><pre>1160</pre></a></td><td class='skipped-line'></td><td class='code'><pre>///</pre></td></tr><tr><td class='line-number'><a name='L1161' href='#L1161'><pre>1161</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// This function consumes any ASCII whitespace followed by a newline character.</pre></td></tr><tr><td class='line-number'><a name='L1162' href='#L1162'><pre>1162</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// It's used to skip blank lines in VB6 project files.</pre></td></tr><tr><td class='line-number'><a name='L1163' href='#L1163'><pre>1163</pre></a></td><td class='skipped-line'></td><td class='code'><pre>///</pre></td></tr><tr><td class='line-number'><a name='L1164' href='#L1164'><pre>1164</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// # Returns</pre></td></tr><tr><td class='line-number'><a name='L1165' href='#L1165'><pre>1165</pre></a></td><td class='skipped-line'></td><td class='code'><pre>///</pre></td></tr><tr><td class='line-number'><a name='L1166' href='#L1166'><pre>1166</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// Returns `true` if an empty line was skipped, `false` otherwise.</pre></td></tr><tr><td class='line-number'><a name='L1167' href='#L1167'><pre>1167</pre></a></td><td class='covered-line'><pre>1.77k</pre></td><td class='code'><pre>fn skip_empty_lines(input: &mut SourceStream) -> bool {</pre></td></tr><tr><td class='line-number'><a name='L1168' href='#L1168'><pre>1168</pre></a></td><td class='covered-line'><pre>1.77k</pre></td><td class='code'><pre> let _ = input.take_ascii_whitespaces();</pre></td></tr><tr><td class='line-number'><a name='L1169' href='#L1169'><pre>1169</pre></a></td><td class='covered-line'><pre>1.77k</pre></td><td class='code'><pre> input.take_newline().is_some()</pre></td></tr><tr><td class='line-number'><a name='L1170' href='#L1170'><pre>1170</pre></a></td><td class='covered-line'><pre>1.77k</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1171' href='#L1171'><pre>1171</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1172' href='#L1172'><pre>1172</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// Handles a section header by registering it in the project's `other_properties` map.</pre></td></tr><tr><td class='line-number'><a name='L1173' href='#L1173'><pre>1173</pre></a></td><td class='skipped-line'></td><td class='code'><pre>///</pre></td></tr><tr><td class='line-number'><a name='L1174' href='#L1174'><pre>1174</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// VB6 project files can contain custom sections for third-party components,</pre></td></tr><tr><td class='line-number'><a name='L1175' href='#L1175'><pre>1175</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// marked with section headers like `[MS Transaction Server]`. This function</pre></td></tr><tr><td class='line-number'><a name='L1176' href='#L1176'><pre>1176</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// creates a new `HashMap` entry for such sections and updates the tracking variable.</pre></td></tr><tr><td class='line-number'><a name='L1177' href='#L1177'><pre>1177</pre></a></td><td class='skipped-line'></td><td class='code'><pre>///</pre></td></tr><tr><td class='line-number'><a name='L1178' href='#L1178'><pre>1178</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// # Arguments</pre></td></tr><tr><td class='line-number'><a name='L1179' href='#L1179'><pre>1179</pre></a></td><td class='skipped-line'></td><td class='code'><pre>///</pre></td></tr><tr><td class='line-number'><a name='L1180' href='#L1180'><pre>1180</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// * `project` - The project file being constructed</pre></td></tr><tr><td class='line-number'><a name='L1181' href='#L1181'><pre>1181</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// * `section_header` - The name of the section (without brackets)</pre></td></tr><tr><td class='line-number'><a name='L1182' href='#L1182'><pre>1182</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// * `other_property_group` - Mutable reference to track the current section</pre></td></tr><tr><td class='line-number'><a name='L1183' href='#L1183'><pre>1183</pre></a></td><td class='covered-line'><pre>33</pre></td><td class='code'><pre>fn handle_section_header<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1184' href='#L1184'><pre>1184</pre></a></td><td class='covered-line'><pre>33</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1185' href='#L1185'><pre>1185</pre></a></td><td class='covered-line'><pre>33</pre></td><td class='code'><pre> section_header: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1186' href='#L1186'><pre>1186</pre></a></td><td class='covered-line'><pre>33</pre></td><td class='code'><pre> other_property_group: &mut Option<&'a str>,</pre></td></tr><tr><td class='line-number'><a name='L1187' href='#L1187'><pre>1187</pre></a></td><td class='covered-line'><pre>33</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1188' href='#L1188'><pre>1188</pre></a></td><td class='covered-line'><pre>33</pre></td><td class='code'><pre> if !project.other_properties.contains_key(section_header) {</pre></td></tr><tr><td class='line-number'><a name='L1189' href='#L1189'><pre>1189</pre></a></td><td class='covered-line'><pre>33</pre></td><td class='code'><pre> project</pre></td></tr><tr><td class='line-number'><a name='L1190' href='#L1190'><pre>1190</pre></a></td><td class='covered-line'><pre>33</pre></td><td class='code'><pre> .other_properties</pre></td></tr><tr><td class='line-number'><a name='L1191' href='#L1191'><pre>1191</pre></a></td><td class='covered-line'><pre>33</pre></td><td class='code'><pre> .insert(section_header, HashMap::new());</pre></td></tr><tr><td class='line-number'><a name='L1192' href='#L1192'><pre>1192</pre></a></td><td class='covered-line'><pre>33</pre></td><td class='code'><pre> *other_property_group = Some(section_header);</pre></td></tr><tr><td class='line-number'><a name='L1193' href='#L1193'><pre>1193</pre></a></td><td class='covered-line'><pre>33</pre></td><td class='code'><pre> <div class='tooltip'><span class='region red'>}</span><span class='tooltip-content'>0</span></div></pre></td></tr><tr><td class='line-number'><a name='L1194' href='#L1194'><pre>1194</pre></a></td><td class='covered-line'><pre>33</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1195' href='#L1195'><pre>1195</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1196' href='#L1196'><pre>1196</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// Handles a third-party property by parsing its value and storing it.</pre></td></tr><tr><td class='line-number'><a name='L1197' href='#L1197'><pre>1197</pre></a></td><td class='skipped-line'></td><td class='code'><pre>///</pre></td></tr><tr><td class='line-number'><a name='L1198' href='#L1198'><pre>1198</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// When parsing properties within a custom section (e.g., `[MS Transaction Server]`),</pre></td></tr><tr><td class='line-number'><a name='L1199' href='#L1199'><pre>1199</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// this function parses the property value and stores it in the appropriate `HashMap`.</pre></td></tr><tr><td class='line-number'><a name='L1200' href='#L1200'><pre>1200</pre></a></td><td class='skipped-line'></td><td class='code'><pre>///</pre></td></tr><tr><td class='line-number'><a name='L1201' href='#L1201'><pre>1201</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// # Arguments</pre></td></tr><tr><td class='line-number'><a name='L1202' href='#L1202'><pre>1202</pre></a></td><td class='skipped-line'></td><td class='code'><pre>///</pre></td></tr><tr><td class='line-number'><a name='L1203' href='#L1203'><pre>1203</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// * `project` - The project file being constructed</pre></td></tr><tr><td class='line-number'><a name='L1204' href='#L1204'><pre>1204</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// * `input` - The input stream containing the property value</pre></td></tr><tr><td class='line-number'><a name='L1205' href='#L1205'><pre>1205</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// * `group` - The section name this property belongs to</pre></td></tr><tr><td class='line-number'><a name='L1206' href='#L1206'><pre>1206</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// * `property_name` - The name of the property</pre></td></tr><tr><td class='line-number'><a name='L1207' href='#L1207'><pre>1207</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// * `failures` - Vector to collect any parsing errors</pre></td></tr><tr><td class='line-number'><a name='L1208' href='#L1208'><pre>1208</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre>fn handle_other_property<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1209' href='#L1209'><pre>1209</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1210' href='#L1210'><pre>1210</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1211' href='#L1211'><pre>1211</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> group: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1212' href='#L1212'><pre>1212</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1213' href='#L1213'><pre>1213</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1214' href='#L1214'><pre>1214</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1215' href='#L1215'><pre>1215</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> let property_value = match parse_property_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1216' href='#L1216'><pre>1216</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> Ok(property_value) => property_value,</pre></td></tr><tr><td class='line-number'><a name='L1217' href='#L1217'><pre>1217</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => {</pre></td></tr><tr><td class='line-number'><a name='L1218' href='#L1218'><pre>1218</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>);</pre></td></tr><tr><td class='line-number'><a name='L1219' href='#L1219'><pre>1219</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>return</span>;</pre></td></tr><tr><td class='line-number'><a name='L1220' href='#L1220'><pre>1220</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1221' href='#L1221'><pre>1221</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L1222' href='#L1222'><pre>1222</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1223' href='#L1223'><pre>1223</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> if let Some(map) = project.other_properties.get_mut(group) {</pre></td></tr><tr><td class='line-number'><a name='L1224' href='#L1224'><pre>1224</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> map.insert(property_name, property_value);</pre></td></tr><tr><td class='line-number'><a name='L1225' href='#L1225'><pre>1225</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> <div class='tooltip'><span class='region red'>}</span><span class='tooltip-content'>0</span></div></pre></td></tr><tr><td class='line-number'><a name='L1226' href='#L1226'><pre>1226</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1227' href='#L1227'><pre>1227</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1228' href='#L1228'><pre>1228</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// Handles an unknown property by generating an error and skipping to the next line.</pre></td></tr><tr><td class='line-number'><a name='L1229' href='#L1229'><pre>1229</pre></a></td><td class='skipped-line'></td><td class='code'><pre>///</pre></td></tr><tr><td class='line-number'><a name='L1230' href='#L1230'><pre>1230</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// When a property name is not recognized as a standard VB6 property, this function</pre></td></tr><tr><td class='line-number'><a name='L1231' href='#L1231'><pre>1231</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// generates an error but allows parsing to continue with the next line.</pre></td></tr><tr><td class='line-number'><a name='L1232' href='#L1232'><pre>1232</pre></a></td><td class='skipped-line'></td><td class='code'><pre>///</pre></td></tr><tr><td class='line-number'><a name='L1233' href='#L1233'><pre>1233</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// # Arguments</pre></td></tr><tr><td class='line-number'><a name='L1234' href='#L1234'><pre>1234</pre></a></td><td class='skipped-line'></td><td class='code'><pre>///</pre></td></tr><tr><td class='line-number'><a name='L1235' href='#L1235'><pre>1235</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// * `input` - The input stream to skip to the next line</pre></td></tr><tr><td class='line-number'><a name='L1236' href='#L1236'><pre>1236</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// * `line_start` - The offset where the line started (for error reporting)</pre></td></tr><tr><td class='line-number'><a name='L1237' href='#L1237'><pre>1237</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// * `property_name` - The unrecognized property name</pre></td></tr><tr><td class='line-number'><a name='L1238' href='#L1238'><pre>1238</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// * `failures` - Vector to collect the error</pre></td></tr><tr><td class='line-number'><a name='L1239' href='#L1239'><pre>1239</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>fn handle_unknown_property<'a>(</span></pre></td></tr><tr><td class='line-number'><a name='L1240' href='#L1240'><pre>1240</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> input: &mut SourceStream<'a>,</span></pre></td></tr><tr><td class='line-number'><a name='L1241' href='#L1241'><pre>1241</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> line_start: usize,</span></pre></td></tr><tr><td class='line-number'><a name='L1242' href='#L1242'><pre>1242</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> property_name: &'a str,</span></pre></td></tr><tr><td class='line-number'><a name='L1243' href='#L1243'><pre>1243</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</span></pre></td></tr><tr><td class='line-number'><a name='L1244' href='#L1244'><pre>1244</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>)</span> {</pre></td></tr><tr><td class='line-number'><a name='L1245' href='#L1245'><pre>1245</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>input</span>.<span class='region red'>forward_to_next_line</span>();</pre></td></tr><tr><td class='line-number'><a name='L1246' href='#L1246'><pre>1246</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1247' href='#L1247'><pre>1247</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>e</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L1248' href='#L1248'><pre>1248</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>line_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L1249' href='#L1249'><pre>1249</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ParameterLineUnknown {</span></pre></td></tr><tr><td class='line-number'><a name='L1250' href='#L1250'><pre>1250</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> parameter_line_name: property_name,</span></pre></td></tr><tr><td class='line-number'><a name='L1251' href='#L1251'><pre>1251</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span>,</pre></td></tr><tr><td class='line-number'><a name='L1252' href='#L1252'><pre>1252</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L1253' href='#L1253'><pre>1253</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>);</pre></td></tr><tr><td class='line-number'><a name='L1254' href='#L1254'><pre>1254</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L1255' href='#L1255'><pre>1255</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1256' href='#L1256'><pre>1256</pre></a></td><td class='skipped-line'></td><td class='code'><pre>// ============================================================================</pre></td></tr><tr><td class='line-number'><a name='L1257' href='#L1257'><pre>1257</pre></a></td><td class='skipped-line'></td><td class='code'><pre>// Property Handler Functions</pre></td></tr><tr><td class='line-number'><a name='L1258' href='#L1258'><pre>1258</pre></a></td><td class='skipped-line'></td><td class='code'><pre>// ============================================================================</pre></td></tr><tr><td class='line-number'><a name='L1259' href='#L1259'><pre>1259</pre></a></td><td class='skipped-line'></td><td class='code'><pre>//</pre></td></tr><tr><td class='line-number'><a name='L1260' href='#L1260'><pre>1260</pre></a></td><td class='skipped-line'></td><td class='code'><pre>// The following functions handle parsing of individual VB6 project properties.</pre></td></tr><tr><td class='line-number'><a name='L1261' href='#L1261'><pre>1261</pre></a></td><td class='skipped-line'></td><td class='code'><pre>// Each handler follows a consistent pattern:</pre></td></tr><tr><td class='line-number'><a name='L1262' href='#L1262'><pre>1262</pre></a></td><td class='skipped-line'></td><td class='code'><pre>// 1. Call the appropriate parsing function</pre></td></tr><tr><td class='line-number'><a name='L1263' href='#L1263'><pre>1263</pre></a></td><td class='skipped-line'></td><td class='code'><pre>// 2. On success, update the project structure</pre></td></tr><tr><td class='line-number'><a name='L1264' href='#L1264'><pre>1264</pre></a></td><td class='skipped-line'></td><td class='code'><pre>// 3. On failure, push the error to the failures vector</pre></td></tr><tr><td class='line-number'><a name='L1265' href='#L1265'><pre>1265</pre></a></td><td class='skipped-line'></td><td class='code'><pre>//</pre></td></tr><tr><td class='line-number'><a name='L1266' href='#L1266'><pre>1266</pre></a></td><td class='skipped-line'></td><td class='code'><pre>// This design allows for error collection without stopping the parse process,</pre></td></tr><tr><td class='line-number'><a name='L1267' href='#L1267'><pre>1267</pre></a></td><td class='skipped-line'></td><td class='code'><pre>// enabling the parser to report multiple errors in a single pass.</pre></td></tr><tr><td class='line-number'><a name='L1268' href='#L1268'><pre>1268</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1269' href='#L1269'><pre>1269</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_type<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1270' href='#L1270'><pre>1270</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1271' href='#L1271'><pre>1271</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1272' href='#L1272'><pre>1272</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1273' href='#L1273'><pre>1273</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1274' href='#L1274'><pre>1274</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1275' href='#L1275'><pre>1275</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_converted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1276' href='#L1276'><pre>1276</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(project_type_value) => project.project_type = project_type_value,</pre></td></tr><tr><td class='line-number'><a name='L1277' href='#L1277'><pre>1277</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1278' href='#L1278'><pre>1278</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1279' href='#L1279'><pre>1279</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1280' href='#L1280'><pre>1280</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1281' href='#L1281'><pre>1281</pre></a></td><td class='covered-line'><pre>54</pre></td><td class='code'><pre>fn handle_designer<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1282' href='#L1282'><pre>1282</pre></a></td><td class='covered-line'><pre>54</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1283' href='#L1283'><pre>1283</pre></a></td><td class='covered-line'><pre>54</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1284' href='#L1284'><pre>1284</pre></a></td><td class='covered-line'><pre>54</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1285' href='#L1285'><pre>1285</pre></a></td><td class='covered-line'><pre>54</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1286' href='#L1286'><pre>1286</pre></a></td><td class='covered-line'><pre>54</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1287' href='#L1287'><pre>1287</pre></a></td><td class='covered-line'><pre>54</pre></td><td class='code'><pre> match parse_path_line(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1288' href='#L1288'><pre>1288</pre></a></td><td class='covered-line'><pre>54</pre></td><td class='code'><pre> Ok(designer) => project.designers.push(designer),</pre></td></tr><tr><td class='line-number'><a name='L1289' href='#L1289'><pre>1289</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1290' href='#L1290'><pre>1290</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1291' href='#L1291'><pre>1291</pre></a></td><td class='covered-line'><pre>54</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1292' href='#L1292'><pre>1292</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1293' href='#L1293'><pre>1293</pre></a></td><td class='covered-line'><pre>50</pre></td><td class='code'><pre>fn handle_reference<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1294' href='#L1294'><pre>1294</pre></a></td><td class='covered-line'><pre>50</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1295' href='#L1295'><pre>1295</pre></a></td><td class='covered-line'><pre>50</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1296' href='#L1296'><pre>1296</pre></a></td><td class='covered-line'><pre>50</pre></td><td class='code'><pre> _property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1297' href='#L1297'><pre>1297</pre></a></td><td class='covered-line'><pre>50</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1298' href='#L1298'><pre>1298</pre></a></td><td class='covered-line'><pre>50</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1299' href='#L1299'><pre>1299</pre></a></td><td class='covered-line'><pre>50</pre></td><td class='code'><pre> match parse_reference(input) {</pre></td></tr><tr><td class='line-number'><a name='L1300' href='#L1300'><pre>1300</pre></a></td><td class='covered-line'><pre>50</pre></td><td class='code'><pre> Ok(reference) => project.references.push(reference),</pre></td></tr><tr><td class='line-number'><a name='L1301' href='#L1301'><pre>1301</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1302' href='#L1302'><pre>1302</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1303' href='#L1303'><pre>1303</pre></a></td><td class='covered-line'><pre>50</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1304' href='#L1304'><pre>1304</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1305' href='#L1305'><pre>1305</pre></a></td><td class='covered-line'><pre>15</pre></td><td class='code'><pre>fn handle_object<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1306' href='#L1306'><pre>1306</pre></a></td><td class='covered-line'><pre>15</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1307' href='#L1307'><pre>1307</pre></a></td><td class='covered-line'><pre>15</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1308' href='#L1308'><pre>1308</pre></a></td><td class='covered-line'><pre>15</pre></td><td class='code'><pre> _property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1309' href='#L1309'><pre>1309</pre></a></td><td class='covered-line'><pre>15</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1310' href='#L1310'><pre>1310</pre></a></td><td class='covered-line'><pre>15</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1311' href='#L1311'><pre>1311</pre></a></td><td class='covered-line'><pre>15</pre></td><td class='code'><pre> match parse_object(input) {</pre></td></tr><tr><td class='line-number'><a name='L1312' href='#L1312'><pre>1312</pre></a></td><td class='covered-line'><pre>15</pre></td><td class='code'><pre> Ok(object) => project.objects.push(object),</pre></td></tr><tr><td class='line-number'><a name='L1313' href='#L1313'><pre>1313</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1314' href='#L1314'><pre>1314</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1315' href='#L1315'><pre>1315</pre></a></td><td class='covered-line'><pre>15</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1316' href='#L1316'><pre>1316</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1317' href='#L1317'><pre>1317</pre></a></td><td class='covered-line'><pre>44</pre></td><td class='code'><pre>fn handle_module<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1318' href='#L1318'><pre>1318</pre></a></td><td class='covered-line'><pre>44</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1319' href='#L1319'><pre>1319</pre></a></td><td class='covered-line'><pre>44</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1320' href='#L1320'><pre>1320</pre></a></td><td class='covered-line'><pre>44</pre></td><td class='code'><pre> _property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1321' href='#L1321'><pre>1321</pre></a></td><td class='covered-line'><pre>44</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1322' href='#L1322'><pre>1322</pre></a></td><td class='covered-line'><pre>44</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1323' href='#L1323'><pre>1323</pre></a></td><td class='covered-line'><pre>44</pre></td><td class='code'><pre> match parse_module(input) {</pre></td></tr><tr><td class='line-number'><a name='L1324' href='#L1324'><pre>1324</pre></a></td><td class='covered-line'><pre>44</pre></td><td class='code'><pre> Ok(module) => project.modules.push(module),</pre></td></tr><tr><td class='line-number'><a name='L1325' href='#L1325'><pre>1325</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1326' href='#L1326'><pre>1326</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1327' href='#L1327'><pre>1327</pre></a></td><td class='covered-line'><pre>44</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1328' href='#L1328'><pre>1328</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1329' href='#L1329'><pre>1329</pre></a></td><td class='covered-line'><pre>122</pre></td><td class='code'><pre>fn handle_class<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1330' href='#L1330'><pre>1330</pre></a></td><td class='covered-line'><pre>122</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1331' href='#L1331'><pre>1331</pre></a></td><td class='covered-line'><pre>122</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1332' href='#L1332'><pre>1332</pre></a></td><td class='covered-line'><pre>122</pre></td><td class='code'><pre> _property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1333' href='#L1333'><pre>1333</pre></a></td><td class='covered-line'><pre>122</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1334' href='#L1334'><pre>1334</pre></a></td><td class='covered-line'><pre>122</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1335' href='#L1335'><pre>1335</pre></a></td><td class='covered-line'><pre>122</pre></td><td class='code'><pre> match parse_class(input) {</pre></td></tr><tr><td class='line-number'><a name='L1336' href='#L1336'><pre>1336</pre></a></td><td class='covered-line'><pre>122</pre></td><td class='code'><pre> Ok(class) => project.classes.push(class),</pre></td></tr><tr><td class='line-number'><a name='L1337' href='#L1337'><pre>1337</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1338' href='#L1338'><pre>1338</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1339' href='#L1339'><pre>1339</pre></a></td><td class='covered-line'><pre>122</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1340' href='#L1340'><pre>1340</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1341' href='#L1341'><pre>1341</pre></a></td><td class='covered-line'><pre>197</pre></td><td class='code'><pre>fn handle_form<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1342' href='#L1342'><pre>1342</pre></a></td><td class='covered-line'><pre>197</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1343' href='#L1343'><pre>1343</pre></a></td><td class='covered-line'><pre>197</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1344' href='#L1344'><pre>1344</pre></a></td><td class='covered-line'><pre>197</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1345' href='#L1345'><pre>1345</pre></a></td><td class='covered-line'><pre>197</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1346' href='#L1346'><pre>1346</pre></a></td><td class='covered-line'><pre>197</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1347' href='#L1347'><pre>1347</pre></a></td><td class='covered-line'><pre>197</pre></td><td class='code'><pre> match parse_path_line(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1348' href='#L1348'><pre>1348</pre></a></td><td class='covered-line'><pre>197</pre></td><td class='code'><pre> Ok(form) => project.forms.push(form),</pre></td></tr><tr><td class='line-number'><a name='L1349' href='#L1349'><pre>1349</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1350' href='#L1350'><pre>1350</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1351' href='#L1351'><pre>1351</pre></a></td><td class='covered-line'><pre>197</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1352' href='#L1352'><pre>1352</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1353' href='#L1353'><pre>1353</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre>fn handle_user_control<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1354' href='#L1354'><pre>1354</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1355' href='#L1355'><pre>1355</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1356' href='#L1356'><pre>1356</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1357' href='#L1357'><pre>1357</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1358' href='#L1358'><pre>1358</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1359' href='#L1359'><pre>1359</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> match parse_path_line(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1360' href='#L1360'><pre>1360</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> Ok(user_control) => project.user_controls.push(user_control),</pre></td></tr><tr><td class='line-number'><a name='L1361' href='#L1361'><pre>1361</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1362' href='#L1362'><pre>1362</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1363' href='#L1363'><pre>1363</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1364' href='#L1364'><pre>1364</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1365' href='#L1365'><pre>1365</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre>fn handle_user_document<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1366' href='#L1366'><pre>1366</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1367' href='#L1367'><pre>1367</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1368' href='#L1368'><pre>1368</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1369' href='#L1369'><pre>1369</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1370' href='#L1370'><pre>1370</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1371' href='#L1371'><pre>1371</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> match parse_path_line(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1372' href='#L1372'><pre>1372</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> Ok(user_document) => project.user_documents.push(user_document),</pre></td></tr><tr><td class='line-number'><a name='L1373' href='#L1373'><pre>1373</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1374' href='#L1374'><pre>1374</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1375' href='#L1375'><pre>1375</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1376' href='#L1376'><pre>1376</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1377' href='#L1377'><pre>1377</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>fn handle_related_doc<'a>(</span></pre></td></tr><tr><td class='line-number'><a name='L1378' href='#L1378'><pre>1378</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> project: &mut ProjectFile<'a>,</span></pre></td></tr><tr><td class='line-number'><a name='L1379' href='#L1379'><pre>1379</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> input: &mut SourceStream<'a>,</span></pre></td></tr><tr><td class='line-number'><a name='L1380' href='#L1380'><pre>1380</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> property_name: &'a str,</span></pre></td></tr><tr><td class='line-number'><a name='L1381' href='#L1381'><pre>1381</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</span></pre></td></tr><tr><td class='line-number'><a name='L1382' href='#L1382'><pre>1382</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>)</span> {</pre></td></tr><tr><td class='line-number'><a name='L1383' href='#L1383'><pre>1383</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> match <span class='region red'>parse_path_line</span><span class='region red'>(input, property_name)</span> {</pre></td></tr><tr><td class='line-number'><a name='L1384' href='#L1384'><pre>1384</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Ok(<span class='region red'>related_document</span>) => <span class='region red'>project.related_documents</span>.<span class='region red'>push</span>(<span class='region red'>related_document</span>),</pre></td></tr><tr><td class='line-number'><a name='L1385' href='#L1385'><pre>1385</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1386' href='#L1386'><pre>1386</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1387' href='#L1387'><pre>1387</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L1388' href='#L1388'><pre>1388</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1389' href='#L1389'><pre>1389</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>fn handle_property_page<'a>(</span></pre></td></tr><tr><td class='line-number'><a name='L1390' href='#L1390'><pre>1390</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> project: &mut ProjectFile<'a>,</span></pre></td></tr><tr><td class='line-number'><a name='L1391' href='#L1391'><pre>1391</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> input: &mut SourceStream<'a>,</span></pre></td></tr><tr><td class='line-number'><a name='L1392' href='#L1392'><pre>1392</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> property_name: &'a str,</span></pre></td></tr><tr><td class='line-number'><a name='L1393' href='#L1393'><pre>1393</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</span></pre></td></tr><tr><td class='line-number'><a name='L1394' href='#L1394'><pre>1394</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>)</span> {</pre></td></tr><tr><td class='line-number'><a name='L1395' href='#L1395'><pre>1395</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> match <span class='region red'>parse_path_line</span><span class='region red'>(input, property_name)</span> {</pre></td></tr><tr><td class='line-number'><a name='L1396' href='#L1396'><pre>1396</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Ok(<span class='region red'>property_page_value</span>) => <span class='region red'>project.property_pages</span>.<span class='region red'>push</span>(<span class='region red'>property_page_value</span>),</pre></td></tr><tr><td class='line-number'><a name='L1397' href='#L1397'><pre>1397</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1398' href='#L1398'><pre>1398</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1399' href='#L1399'><pre>1399</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L1400' href='#L1400'><pre>1400</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1401' href='#L1401'><pre>1401</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre>fn handle_res_file_32<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1402' href='#L1402'><pre>1402</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1403' href='#L1403'><pre>1403</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1404' href='#L1404'><pre>1404</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1405' href='#L1405'><pre>1405</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1406' href='#L1406'><pre>1406</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1407' href='#L1407'><pre>1407</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> match parse_quoted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1408' href='#L1408'><pre>1408</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> Ok(res_32_file) => project.properties.res_file_32_path = res_32_file,</pre></td></tr><tr><td class='line-number'><a name='L1409' href='#L1409'><pre>1409</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1410' href='#L1410'><pre>1410</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1411' href='#L1411'><pre>1411</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1412' href='#L1412'><pre>1412</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1413' href='#L1413'><pre>1413</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_icon_form<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1414' href='#L1414'><pre>1414</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1415' href='#L1415'><pre>1415</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1416' href='#L1416'><pre>1416</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1417' href='#L1417'><pre>1417</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1418' href='#L1418'><pre>1418</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1419' href='#L1419'><pre>1419</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_quoted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1420' href='#L1420'><pre>1420</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(icon_form_value) => project.properties.icon_form = icon_form_value,</pre></td></tr><tr><td class='line-number'><a name='L1421' href='#L1421'><pre>1421</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1422' href='#L1422'><pre>1422</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1423' href='#L1423'><pre>1423</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1424' href='#L1424'><pre>1424</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1425' href='#L1425'><pre>1425</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_startup<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1426' href='#L1426'><pre>1426</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1427' href='#L1427'><pre>1427</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1428' href='#L1428'><pre>1428</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1429' href='#L1429'><pre>1429</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1430' href='#L1430'><pre>1430</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1431' href='#L1431'><pre>1431</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_optional_quoted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1432' href='#L1432'><pre>1432</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(startup_value) => project.properties.startup = startup_value,</pre></td></tr><tr><td class='line-number'><a name='L1433' href='#L1433'><pre>1433</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1434' href='#L1434'><pre>1434</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1435' href='#L1435'><pre>1435</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1436' href='#L1436'><pre>1436</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1437' href='#L1437'><pre>1437</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_help_file<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1438' href='#L1438'><pre>1438</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1439' href='#L1439'><pre>1439</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1440' href='#L1440'><pre>1440</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1441' href='#L1441'><pre>1441</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1442' href='#L1442'><pre>1442</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1443' href='#L1443'><pre>1443</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_quoted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1444' href='#L1444'><pre>1444</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(help_file) => project.properties.help_file_path = help_file,</pre></td></tr><tr><td class='line-number'><a name='L1445' href='#L1445'><pre>1445</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1446' href='#L1446'><pre>1446</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1447' href='#L1447'><pre>1447</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1448' href='#L1448'><pre>1448</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1449' href='#L1449'><pre>1449</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_title<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1450' href='#L1450'><pre>1450</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1451' href='#L1451'><pre>1451</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1452' href='#L1452'><pre>1452</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1453' href='#L1453'><pre>1453</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1454' href='#L1454'><pre>1454</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1455' href='#L1455'><pre>1455</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_quoted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1456' href='#L1456'><pre>1456</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(title_value) => project.properties.title = title_value,</pre></td></tr><tr><td class='line-number'><a name='L1457' href='#L1457'><pre>1457</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1458' href='#L1458'><pre>1458</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1459' href='#L1459'><pre>1459</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1460' href='#L1460'><pre>1460</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1461' href='#L1461'><pre>1461</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_exe_name_32<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1462' href='#L1462'><pre>1462</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1463' href='#L1463'><pre>1463</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1464' href='#L1464'><pre>1464</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1465' href='#L1465'><pre>1465</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1466' href='#L1466'><pre>1466</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1467' href='#L1467'><pre>1467</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_quoted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1468' href='#L1468'><pre>1468</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(exe_32_file_name_value) => project.properties.exe_32_file_name = exe_32_file_name_value,</pre></td></tr><tr><td class='line-number'><a name='L1469' href='#L1469'><pre>1469</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1470' href='#L1470'><pre>1470</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1471' href='#L1471'><pre>1471</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1472' href='#L1472'><pre>1472</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1473' href='#L1473'><pre>1473</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre>fn handle_path_32<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1474' href='#L1474'><pre>1474</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1475' href='#L1475'><pre>1475</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1476' href='#L1476'><pre>1476</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1477' href='#L1477'><pre>1477</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1478' href='#L1478'><pre>1478</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1479' href='#L1479'><pre>1479</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> match parse_quoted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1480' href='#L1480'><pre>1480</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> Ok(path_32_value) => project.properties.path_32 = path_32_value,</pre></td></tr><tr><td class='line-number'><a name='L1481' href='#L1481'><pre>1481</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1482' href='#L1482'><pre>1482</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1483' href='#L1483'><pre>1483</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1484' href='#L1484'><pre>1484</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1485' href='#L1485'><pre>1485</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_command_32<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1486' href='#L1486'><pre>1486</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1487' href='#L1487'><pre>1487</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1488' href='#L1488'><pre>1488</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1489' href='#L1489'><pre>1489</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1490' href='#L1490'><pre>1490</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1491' href='#L1491'><pre>1491</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_optional_quoted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1492' href='#L1492'><pre>1492</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(command_line_arguments_value) => {</pre></td></tr><tr><td class='line-number'><a name='L1493' href='#L1493'><pre>1493</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project.properties.command_line_arguments = command_line_arguments_value;</pre></td></tr><tr><td class='line-number'><a name='L1494' href='#L1494'><pre>1494</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1495' href='#L1495'><pre>1495</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1496' href='#L1496'><pre>1496</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1497' href='#L1497'><pre>1497</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1498' href='#L1498'><pre>1498</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1499' href='#L1499'><pre>1499</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_name<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1500' href='#L1500'><pre>1500</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1501' href='#L1501'><pre>1501</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1502' href='#L1502'><pre>1502</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1503' href='#L1503'><pre>1503</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1504' href='#L1504'><pre>1504</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1505' href='#L1505'><pre>1505</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_optional_quoted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1506' href='#L1506'><pre>1506</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(name_value) => project.properties.name = name_value,</pre></td></tr><tr><td class='line-number'><a name='L1507' href='#L1507'><pre>1507</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1508' href='#L1508'><pre>1508</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1509' href='#L1509'><pre>1509</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1510' href='#L1510'><pre>1510</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1511' href='#L1511'><pre>1511</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>fn handle_description<'a>(</span></pre></td></tr><tr><td class='line-number'><a name='L1512' href='#L1512'><pre>1512</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> project: &mut ProjectFile<'a>,</span></pre></td></tr><tr><td class='line-number'><a name='L1513' href='#L1513'><pre>1513</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> input: &mut SourceStream<'a>,</span></pre></td></tr><tr><td class='line-number'><a name='L1514' href='#L1514'><pre>1514</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> property_name: &'a str,</span></pre></td></tr><tr><td class='line-number'><a name='L1515' href='#L1515'><pre>1515</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</span></pre></td></tr><tr><td class='line-number'><a name='L1516' href='#L1516'><pre>1516</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>)</span> {</pre></td></tr><tr><td class='line-number'><a name='L1517' href='#L1517'><pre>1517</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> match <span class='region red'>parse_quoted_value</span><span class='region red'>(input, property_name)</span> {</pre></td></tr><tr><td class='line-number'><a name='L1518' href='#L1518'><pre>1518</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Ok(<span class='region red'>description_value</span>) => <span class='region red'>project.properties.description = description_value</span>,</pre></td></tr><tr><td class='line-number'><a name='L1519' href='#L1519'><pre>1519</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1520' href='#L1520'><pre>1520</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1521' href='#L1521'><pre>1521</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L1522' href='#L1522'><pre>1522</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1523' href='#L1523'><pre>1523</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_major_ver<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1524' href='#L1524'><pre>1524</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1525' href='#L1525'><pre>1525</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1526' href='#L1526'><pre>1526</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1527' href='#L1527'><pre>1527</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1528' href='#L1528'><pre>1528</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1529' href='#L1529'><pre>1529</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_numeric(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1530' href='#L1530'><pre>1530</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(major_value) => project.properties.version_info.major = major_value,</pre></td></tr><tr><td class='line-number'><a name='L1531' href='#L1531'><pre>1531</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1532' href='#L1532'><pre>1532</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1533' href='#L1533'><pre>1533</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1534' href='#L1534'><pre>1534</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1535' href='#L1535'><pre>1535</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_minor_ver<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1536' href='#L1536'><pre>1536</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1537' href='#L1537'><pre>1537</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1538' href='#L1538'><pre>1538</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1539' href='#L1539'><pre>1539</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1540' href='#L1540'><pre>1540</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1541' href='#L1541'><pre>1541</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_numeric(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1542' href='#L1542'><pre>1542</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(minor_value) => project.properties.version_info.minor = minor_value,</pre></td></tr><tr><td class='line-number'><a name='L1543' href='#L1543'><pre>1543</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1544' href='#L1544'><pre>1544</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1545' href='#L1545'><pre>1545</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1546' href='#L1546'><pre>1546</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1547' href='#L1547'><pre>1547</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_revision_ver<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1548' href='#L1548'><pre>1548</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1549' href='#L1549'><pre>1549</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1550' href='#L1550'><pre>1550</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1551' href='#L1551'><pre>1551</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1552' href='#L1552'><pre>1552</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1553' href='#L1553'><pre>1553</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_numeric(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1554' href='#L1554'><pre>1554</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(revision_value) => project.properties.version_info.revision = revision_value,</pre></td></tr><tr><td class='line-number'><a name='L1555' href='#L1555'><pre>1555</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1556' href='#L1556'><pre>1556</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1557' href='#L1557'><pre>1557</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1558' href='#L1558'><pre>1558</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1559' href='#L1559'><pre>1559</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_auto_increment_ver<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1560' href='#L1560'><pre>1560</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1561' href='#L1561'><pre>1561</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1562' href='#L1562'><pre>1562</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1563' href='#L1563'><pre>1563</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1564' href='#L1564'><pre>1564</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1565' href='#L1565'><pre>1565</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_numeric(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1566' href='#L1566'><pre>1566</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(auto_increment_revision_value) => {</pre></td></tr><tr><td class='line-number'><a name='L1567' href='#L1567'><pre>1567</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project.properties.version_info.auto_increment_revision = auto_increment_revision_value;</pre></td></tr><tr><td class='line-number'><a name='L1568' href='#L1568'><pre>1568</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1569' href='#L1569'><pre>1569</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1570' href='#L1570'><pre>1570</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1571' href='#L1571'><pre>1571</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1572' href='#L1572'><pre>1572</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1573' href='#L1573'><pre>1573</pre></a></td><td class='covered-line'><pre>32</pre></td><td class='code'><pre>fn handle_version_company_name<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1574' href='#L1574'><pre>1574</pre></a></td><td class='covered-line'><pre>32</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1575' href='#L1575'><pre>1575</pre></a></td><td class='covered-line'><pre>32</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1576' href='#L1576'><pre>1576</pre></a></td><td class='covered-line'><pre>32</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1577' href='#L1577'><pre>1577</pre></a></td><td class='covered-line'><pre>32</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1578' href='#L1578'><pre>1578</pre></a></td><td class='covered-line'><pre>32</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1579' href='#L1579'><pre>1579</pre></a></td><td class='covered-line'><pre>32</pre></td><td class='code'><pre> match parse_quoted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1580' href='#L1580'><pre>1580</pre></a></td><td class='covered-line'><pre>32</pre></td><td class='code'><pre> Ok(company_name_value) => project.properties.version_info.company_name = company_name_value,</pre></td></tr><tr><td class='line-number'><a name='L1581' href='#L1581'><pre>1581</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1582' href='#L1582'><pre>1582</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1583' href='#L1583'><pre>1583</pre></a></td><td class='covered-line'><pre>32</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1584' href='#L1584'><pre>1584</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1585' href='#L1585'><pre>1585</pre></a></td><td class='covered-line'><pre>7</pre></td><td class='code'><pre>fn handle_version_file_description<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1586' href='#L1586'><pre>1586</pre></a></td><td class='covered-line'><pre>7</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1587' href='#L1587'><pre>1587</pre></a></td><td class='covered-line'><pre>7</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1588' href='#L1588'><pre>1588</pre></a></td><td class='covered-line'><pre>7</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1589' href='#L1589'><pre>1589</pre></a></td><td class='covered-line'><pre>7</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1590' href='#L1590'><pre>1590</pre></a></td><td class='covered-line'><pre>7</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1591' href='#L1591'><pre>1591</pre></a></td><td class='covered-line'><pre>7</pre></td><td class='code'><pre> match parse_quoted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1592' href='#L1592'><pre>1592</pre></a></td><td class='covered-line'><pre>7</pre></td><td class='code'><pre> Ok(file_description_value) => {</pre></td></tr><tr><td class='line-number'><a name='L1593' href='#L1593'><pre>1593</pre></a></td><td class='covered-line'><pre>7</pre></td><td class='code'><pre> project.properties.version_info.file_description = file_description_value;</pre></td></tr><tr><td class='line-number'><a name='L1594' href='#L1594'><pre>1594</pre></a></td><td class='covered-line'><pre>7</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1595' href='#L1595'><pre>1595</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1596' href='#L1596'><pre>1596</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1597' href='#L1597'><pre>1597</pre></a></td><td class='covered-line'><pre>7</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1598' href='#L1598'><pre>1598</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1599' href='#L1599'><pre>1599</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre>fn handle_version_legal_copyright<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1600' href='#L1600'><pre>1600</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1601' href='#L1601'><pre>1601</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1602' href='#L1602'><pre>1602</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1603' href='#L1603'><pre>1603</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1604' href='#L1604'><pre>1604</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1605' href='#L1605'><pre>1605</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> match parse_quoted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1606' href='#L1606'><pre>1606</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> Ok(copyright_value) => project.properties.version_info.copyright = copyright_value,</pre></td></tr><tr><td class='line-number'><a name='L1607' href='#L1607'><pre>1607</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1608' href='#L1608'><pre>1608</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1609' href='#L1609'><pre>1609</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1610' href='#L1610'><pre>1610</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1611' href='#L1611'><pre>1611</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre>fn handle_version_legal_trademarks<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1612' href='#L1612'><pre>1612</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1613' href='#L1613'><pre>1613</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1614' href='#L1614'><pre>1614</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1615' href='#L1615'><pre>1615</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1616' href='#L1616'><pre>1616</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1617' href='#L1617'><pre>1617</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> match parse_quoted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1618' href='#L1618'><pre>1618</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> Ok(trademark_value) => project.properties.version_info.trademark = trademark_value,</pre></td></tr><tr><td class='line-number'><a name='L1619' href='#L1619'><pre>1619</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1620' href='#L1620'><pre>1620</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1621' href='#L1621'><pre>1621</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1622' href='#L1622'><pre>1622</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1623' href='#L1623'><pre>1623</pre></a></td><td class='covered-line'><pre>14</pre></td><td class='code'><pre>fn handle_version_product_name<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1624' href='#L1624'><pre>1624</pre></a></td><td class='covered-line'><pre>14</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1625' href='#L1625'><pre>1625</pre></a></td><td class='covered-line'><pre>14</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1626' href='#L1626'><pre>1626</pre></a></td><td class='covered-line'><pre>14</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1627' href='#L1627'><pre>1627</pre></a></td><td class='covered-line'><pre>14</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1628' href='#L1628'><pre>1628</pre></a></td><td class='covered-line'><pre>14</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1629' href='#L1629'><pre>1629</pre></a></td><td class='covered-line'><pre>14</pre></td><td class='code'><pre> match parse_quoted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1630' href='#L1630'><pre>1630</pre></a></td><td class='covered-line'><pre>14</pre></td><td class='code'><pre> Ok(product_name_value) => project.properties.version_info.product_name = product_name_value,</pre></td></tr><tr><td class='line-number'><a name='L1631' href='#L1631'><pre>1631</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1632' href='#L1632'><pre>1632</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1633' href='#L1633'><pre>1633</pre></a></td><td class='covered-line'><pre>14</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1634' href='#L1634'><pre>1634</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1635' href='#L1635'><pre>1635</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre>fn handle_version_comments<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1636' href='#L1636'><pre>1636</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1637' href='#L1637'><pre>1637</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1638' href='#L1638'><pre>1638</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1639' href='#L1639'><pre>1639</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1640' href='#L1640'><pre>1640</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1641' href='#L1641'><pre>1641</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> match parse_quoted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1642' href='#L1642'><pre>1642</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> Ok(comments_value) => project.properties.version_info.comments = comments_value,</pre></td></tr><tr><td class='line-number'><a name='L1643' href='#L1643'><pre>1643</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1644' href='#L1644'><pre>1644</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1645' href='#L1645'><pre>1645</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1646' href='#L1646'><pre>1646</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1647' href='#L1647'><pre>1647</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_help_context_id<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1648' href='#L1648'><pre>1648</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1649' href='#L1649'><pre>1649</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1650' href='#L1650'><pre>1650</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1651' href='#L1651'><pre>1651</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1652' href='#L1652'><pre>1652</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1653' href='#L1653'><pre>1653</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_quoted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1654' href='#L1654'><pre>1654</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(help_context_id_value) => project.properties.help_context_id = help_context_id_value,</pre></td></tr><tr><td class='line-number'><a name='L1655' href='#L1655'><pre>1655</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1656' href='#L1656'><pre>1656</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1657' href='#L1657'><pre>1657</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1658' href='#L1658'><pre>1658</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1659' href='#L1659'><pre>1659</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_compatible_mode<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1660' href='#L1660'><pre>1660</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1661' href='#L1661'><pre>1661</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1662' href='#L1662'><pre>1662</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1663' href='#L1663'><pre>1663</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1664' href='#L1664'><pre>1664</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1665' href='#L1665'><pre>1665</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_quoted_converted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1666' href='#L1666'><pre>1666</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(compatibility_mode_value) => {</pre></td></tr><tr><td class='line-number'><a name='L1667' href='#L1667'><pre>1667</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project.properties.compatibility_mode = compatibility_mode_value;</pre></td></tr><tr><td class='line-number'><a name='L1668' href='#L1668'><pre>1668</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1669' href='#L1669'><pre>1669</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1670' href='#L1670'><pre>1670</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1671' href='#L1671'><pre>1671</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1672' href='#L1672'><pre>1672</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1673' href='#L1673'><pre>1673</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>fn handle_version_compatible_32<'a>(</span></pre></td></tr><tr><td class='line-number'><a name='L1674' href='#L1674'><pre>1674</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> project: &mut ProjectFile<'a>,</span></pre></td></tr><tr><td class='line-number'><a name='L1675' href='#L1675'><pre>1675</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> input: &mut SourceStream<'a>,</span></pre></td></tr><tr><td class='line-number'><a name='L1676' href='#L1676'><pre>1676</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> property_name: &'a str,</span></pre></td></tr><tr><td class='line-number'><a name='L1677' href='#L1677'><pre>1677</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</span></pre></td></tr><tr><td class='line-number'><a name='L1678' href='#L1678'><pre>1678</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>)</span> {</pre></td></tr><tr><td class='line-number'><a name='L1679' href='#L1679'><pre>1679</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> match <span class='region red'>parse_quoted_value</span><span class='region red'>(input, property_name)</span> {</pre></td></tr><tr><td class='line-number'><a name='L1680' href='#L1680'><pre>1680</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Ok(<span class='region red'>version_32_compatibility_value</span>) => <span class='region red'>{</span></pre></td></tr><tr><td class='line-number'><a name='L1681' href='#L1681'><pre>1681</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> project.properties.version_32_compatibility = version_32_compatibility_value;</span></pre></td></tr><tr><td class='line-number'><a name='L1682' href='#L1682'><pre>1682</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span></pre></td></tr><tr><td class='line-number'><a name='L1683' href='#L1683'><pre>1683</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1684' href='#L1684'><pre>1684</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1685' href='#L1685'><pre>1685</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L1686' href='#L1686'><pre>1686</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1687' href='#L1687'><pre>1687</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>fn handle_compatible_exe_32<'a>(</span></pre></td></tr><tr><td class='line-number'><a name='L1688' href='#L1688'><pre>1688</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> project: &mut ProjectFile<'a>,</span></pre></td></tr><tr><td class='line-number'><a name='L1689' href='#L1689'><pre>1689</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> input: &mut SourceStream<'a>,</span></pre></td></tr><tr><td class='line-number'><a name='L1690' href='#L1690'><pre>1690</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> property_name: &'a str,</span></pre></td></tr><tr><td class='line-number'><a name='L1691' href='#L1691'><pre>1691</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</span></pre></td></tr><tr><td class='line-number'><a name='L1692' href='#L1692'><pre>1692</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>)</span> {</pre></td></tr><tr><td class='line-number'><a name='L1693' href='#L1693'><pre>1693</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> match <span class='region red'>parse_quoted_value</span><span class='region red'>(input, property_name)</span> {</pre></td></tr><tr><td class='line-number'><a name='L1694' href='#L1694'><pre>1694</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Ok(<span class='region red'>exe_32_compatible_value</span>) => <span class='region red'>{</span></pre></td></tr><tr><td class='line-number'><a name='L1695' href='#L1695'><pre>1695</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> project.properties.exe_32_compatible = exe_32_compatible_value;</span></pre></td></tr><tr><td class='line-number'><a name='L1696' href='#L1696'><pre>1696</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span></pre></td></tr><tr><td class='line-number'><a name='L1697' href='#L1697'><pre>1697</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1698' href='#L1698'><pre>1698</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1699' href='#L1699'><pre>1699</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L1700' href='#L1700'><pre>1700</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1701' href='#L1701'><pre>1701</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>fn handle_dll_base_address<'a>(</span></pre></td></tr><tr><td class='line-number'><a name='L1702' href='#L1702'><pre>1702</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> project: &mut ProjectFile<'a>,</span></pre></td></tr><tr><td class='line-number'><a name='L1703' href='#L1703'><pre>1703</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> input: &mut SourceStream<'a>,</span></pre></td></tr><tr><td class='line-number'><a name='L1704' href='#L1704'><pre>1704</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> _property_name: &'a str,</span></pre></td></tr><tr><td class='line-number'><a name='L1705' href='#L1705'><pre>1705</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</span></pre></td></tr><tr><td class='line-number'><a name='L1706' href='#L1706'><pre>1706</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>)</span> {</pre></td></tr><tr><td class='line-number'><a name='L1707' href='#L1707'><pre>1707</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> match <span class='region red'>parse_dll_base_address(input)</span> {</pre></td></tr><tr><td class='line-number'><a name='L1708' href='#L1708'><pre>1708</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Ok(<span class='region red'>dll_base_address_value</span>) => <span class='region red'>project.properties.dll_base_address = dll_base_address_value</span>,</pre></td></tr><tr><td class='line-number'><a name='L1709' href='#L1709'><pre>1709</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1710' href='#L1710'><pre>1710</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1711' href='#L1711'><pre>1711</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L1712' href='#L1712'><pre>1712</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1713' href='#L1713'><pre>1713</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>fn handle_remove_unused_control_info<'a>(</span></pre></td></tr><tr><td class='line-number'><a name='L1714' href='#L1714'><pre>1714</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> project: &mut ProjectFile<'a>,</span></pre></td></tr><tr><td class='line-number'><a name='L1715' href='#L1715'><pre>1715</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> input: &mut SourceStream<'a>,</span></pre></td></tr><tr><td class='line-number'><a name='L1716' href='#L1716'><pre>1716</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> property_name: &'a str,</span></pre></td></tr><tr><td class='line-number'><a name='L1717' href='#L1717'><pre>1717</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</span></pre></td></tr><tr><td class='line-number'><a name='L1718' href='#L1718'><pre>1718</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>)</span> {</pre></td></tr><tr><td class='line-number'><a name='L1719' href='#L1719'><pre>1719</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> match <span class='region red'>parse_converted_value</span><span class='region red'>(input, property_name)</span> {</pre></td></tr><tr><td class='line-number'><a name='L1720' href='#L1720'><pre>1720</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Ok(<span class='region red'>unused_control_info_value</span>) => <span class='region red'>{</span></pre></td></tr><tr><td class='line-number'><a name='L1721' href='#L1721'><pre>1721</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> project.properties.unused_control_info = unused_control_info_value;</span></pre></td></tr><tr><td class='line-number'><a name='L1722' href='#L1722'><pre>1722</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span></pre></td></tr><tr><td class='line-number'><a name='L1723' href='#L1723'><pre>1723</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1724' href='#L1724'><pre>1724</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1725' href='#L1725'><pre>1725</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L1726' href='#L1726'><pre>1726</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1727' href='#L1727'><pre>1727</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_compilation_type<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1728' href='#L1728'><pre>1728</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1729' href='#L1729'><pre>1729</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1730' href='#L1730'><pre>1730</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1731' href='#L1731'><pre>1731</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1732' href='#L1732'><pre>1732</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1733' href='#L1733'><pre>1733</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_numeric(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1734' href='#L1734'><pre>1734</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(compilation_type) => project.properties.compilation_type = compilation_type,</pre></td></tr><tr><td class='line-number'><a name='L1735' href='#L1735'><pre>1735</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1736' href='#L1736'><pre>1736</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1737' href='#L1737'><pre>1737</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1738' href='#L1738'><pre>1738</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1739' href='#L1739'><pre>1739</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_optimization_type<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1740' href='#L1740'><pre>1740</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1741' href='#L1741'><pre>1741</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1742' href='#L1742'><pre>1742</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1743' href='#L1743'><pre>1743</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1744' href='#L1744'><pre>1744</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1745' href='#L1745'><pre>1745</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_converted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1746' href='#L1746'><pre>1746</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(optimization_type_value) => {</pre></td></tr><tr><td class='line-number'><a name='L1747' href='#L1747'><pre>1747</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project.properties.compilation_type = project</pre></td></tr><tr><td class='line-number'><a name='L1748' href='#L1748'><pre>1748</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> .properties</pre></td></tr><tr><td class='line-number'><a name='L1749' href='#L1749'><pre>1749</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> .compilation_type</pre></td></tr><tr><td class='line-number'><a name='L1750' href='#L1750'><pre>1750</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> .update_optimization_type(optimization_type_value);</pre></td></tr><tr><td class='line-number'><a name='L1751' href='#L1751'><pre>1751</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1752' href='#L1752'><pre>1752</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1753' href='#L1753'><pre>1753</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1754' href='#L1754'><pre>1754</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1755' href='#L1755'><pre>1755</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1756' href='#L1756'><pre>1756</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_favor_pentium_pro<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1757' href='#L1757'><pre>1757</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1758' href='#L1758'><pre>1758</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1759' href='#L1759'><pre>1759</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1760' href='#L1760'><pre>1760</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1761' href='#L1761'><pre>1761</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1762' href='#L1762'><pre>1762</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_converted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1763' href='#L1763'><pre>1763</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(favor_pentium_pro_value) => {</pre></td></tr><tr><td class='line-number'><a name='L1764' href='#L1764'><pre>1764</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project.properties.compilation_type = project</pre></td></tr><tr><td class='line-number'><a name='L1765' href='#L1765'><pre>1765</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> .properties</pre></td></tr><tr><td class='line-number'><a name='L1766' href='#L1766'><pre>1766</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> .compilation_type</pre></td></tr><tr><td class='line-number'><a name='L1767' href='#L1767'><pre>1767</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> .update_favor_pentium_pro(favor_pentium_pro_value);</pre></td></tr><tr><td class='line-number'><a name='L1768' href='#L1768'><pre>1768</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1769' href='#L1769'><pre>1769</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1770' href='#L1770'><pre>1770</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1771' href='#L1771'><pre>1771</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1772' href='#L1772'><pre>1772</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1773' href='#L1773'><pre>1773</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_code_view_debug_info<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1774' href='#L1774'><pre>1774</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1775' href='#L1775'><pre>1775</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1776' href='#L1776'><pre>1776</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1777' href='#L1777'><pre>1777</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1778' href='#L1778'><pre>1778</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1779' href='#L1779'><pre>1779</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_converted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1780' href='#L1780'><pre>1780</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(code_view_debug_info_value) => {</pre></td></tr><tr><td class='line-number'><a name='L1781' href='#L1781'><pre>1781</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project.properties.compilation_type = project</pre></td></tr><tr><td class='line-number'><a name='L1782' href='#L1782'><pre>1782</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> .properties</pre></td></tr><tr><td class='line-number'><a name='L1783' href='#L1783'><pre>1783</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> .compilation_type</pre></td></tr><tr><td class='line-number'><a name='L1784' href='#L1784'><pre>1784</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> .update_code_view_debug_info(code_view_debug_info_value);</pre></td></tr><tr><td class='line-number'><a name='L1785' href='#L1785'><pre>1785</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1786' href='#L1786'><pre>1786</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1787' href='#L1787'><pre>1787</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1788' href='#L1788'><pre>1788</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1789' href='#L1789'><pre>1789</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1790' href='#L1790'><pre>1790</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_no_aliasing<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1791' href='#L1791'><pre>1791</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1792' href='#L1792'><pre>1792</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1793' href='#L1793'><pre>1793</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1794' href='#L1794'><pre>1794</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1795' href='#L1795'><pre>1795</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1796' href='#L1796'><pre>1796</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_converted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1797' href='#L1797'><pre>1797</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(aliasing_value) => {</pre></td></tr><tr><td class='line-number'><a name='L1798' href='#L1798'><pre>1798</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project.properties.compilation_type = project</pre></td></tr><tr><td class='line-number'><a name='L1799' href='#L1799'><pre>1799</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> .properties</pre></td></tr><tr><td class='line-number'><a name='L1800' href='#L1800'><pre>1800</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> .compilation_type</pre></td></tr><tr><td class='line-number'><a name='L1801' href='#L1801'><pre>1801</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> .update_aliasing(aliasing_value);</pre></td></tr><tr><td class='line-number'><a name='L1802' href='#L1802'><pre>1802</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1803' href='#L1803'><pre>1803</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1804' href='#L1804'><pre>1804</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1805' href='#L1805'><pre>1805</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1806' href='#L1806'><pre>1806</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1807' href='#L1807'><pre>1807</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_bounds_check<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1808' href='#L1808'><pre>1808</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1809' href='#L1809'><pre>1809</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1810' href='#L1810'><pre>1810</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1811' href='#L1811'><pre>1811</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1812' href='#L1812'><pre>1812</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1813' href='#L1813'><pre>1813</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_converted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1814' href='#L1814'><pre>1814</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(bounds_check_value) => {</pre></td></tr><tr><td class='line-number'><a name='L1815' href='#L1815'><pre>1815</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project.properties.compilation_type = project</pre></td></tr><tr><td class='line-number'><a name='L1816' href='#L1816'><pre>1816</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> .properties</pre></td></tr><tr><td class='line-number'><a name='L1817' href='#L1817'><pre>1817</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> .compilation_type</pre></td></tr><tr><td class='line-number'><a name='L1818' href='#L1818'><pre>1818</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> .update_bounds_check(bounds_check_value);</pre></td></tr><tr><td class='line-number'><a name='L1819' href='#L1819'><pre>1819</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1820' href='#L1820'><pre>1820</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1821' href='#L1821'><pre>1821</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1822' href='#L1822'><pre>1822</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1823' href='#L1823'><pre>1823</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1824' href='#L1824'><pre>1824</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_overflow_check<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1825' href='#L1825'><pre>1825</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1826' href='#L1826'><pre>1826</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1827' href='#L1827'><pre>1827</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1828' href='#L1828'><pre>1828</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1829' href='#L1829'><pre>1829</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1830' href='#L1830'><pre>1830</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_converted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1831' href='#L1831'><pre>1831</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(overflow_check_value) => {</pre></td></tr><tr><td class='line-number'><a name='L1832' href='#L1832'><pre>1832</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project.properties.compilation_type = project</pre></td></tr><tr><td class='line-number'><a name='L1833' href='#L1833'><pre>1833</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> .properties</pre></td></tr><tr><td class='line-number'><a name='L1834' href='#L1834'><pre>1834</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> .compilation_type</pre></td></tr><tr><td class='line-number'><a name='L1835' href='#L1835'><pre>1835</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> .update_overflow_check(overflow_check_value);</pre></td></tr><tr><td class='line-number'><a name='L1836' href='#L1836'><pre>1836</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1837' href='#L1837'><pre>1837</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1838' href='#L1838'><pre>1838</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1839' href='#L1839'><pre>1839</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1840' href='#L1840'><pre>1840</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1841' href='#L1841'><pre>1841</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_fl_point_check<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1842' href='#L1842'><pre>1842</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1843' href='#L1843'><pre>1843</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1844' href='#L1844'><pre>1844</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1845' href='#L1845'><pre>1845</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1846' href='#L1846'><pre>1846</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1847' href='#L1847'><pre>1847</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_converted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1848' href='#L1848'><pre>1848</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(floating_point_check_value) => {</pre></td></tr><tr><td class='line-number'><a name='L1849' href='#L1849'><pre>1849</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project.properties.compilation_type = project</pre></td></tr><tr><td class='line-number'><a name='L1850' href='#L1850'><pre>1850</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> .properties</pre></td></tr><tr><td class='line-number'><a name='L1851' href='#L1851'><pre>1851</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> .compilation_type</pre></td></tr><tr><td class='line-number'><a name='L1852' href='#L1852'><pre>1852</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> .update_floating_point_check(floating_point_check_value);</pre></td></tr><tr><td class='line-number'><a name='L1853' href='#L1853'><pre>1853</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1854' href='#L1854'><pre>1854</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1855' href='#L1855'><pre>1855</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1856' href='#L1856'><pre>1856</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1857' href='#L1857'><pre>1857</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1858' href='#L1858'><pre>1858</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_fdiv_check<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1859' href='#L1859'><pre>1859</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1860' href='#L1860'><pre>1860</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1861' href='#L1861'><pre>1861</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1862' href='#L1862'><pre>1862</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1863' href='#L1863'><pre>1863</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1864' href='#L1864'><pre>1864</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_converted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1865' href='#L1865'><pre>1865</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(pentium_fdiv_bug_check_value) => {</pre></td></tr><tr><td class='line-number'><a name='L1866' href='#L1866'><pre>1866</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project.properties.compilation_type = project</pre></td></tr><tr><td class='line-number'><a name='L1867' href='#L1867'><pre>1867</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> .properties</pre></td></tr><tr><td class='line-number'><a name='L1868' href='#L1868'><pre>1868</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> .compilation_type</pre></td></tr><tr><td class='line-number'><a name='L1869' href='#L1869'><pre>1869</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> .update_pentium_fdiv_bug_check(pentium_fdiv_bug_check_value);</pre></td></tr><tr><td class='line-number'><a name='L1870' href='#L1870'><pre>1870</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1871' href='#L1871'><pre>1871</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1872' href='#L1872'><pre>1872</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1873' href='#L1873'><pre>1873</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1874' href='#L1874'><pre>1874</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1875' href='#L1875'><pre>1875</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_unrounded_fp<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1876' href='#L1876'><pre>1876</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1877' href='#L1877'><pre>1877</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1878' href='#L1878'><pre>1878</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1879' href='#L1879'><pre>1879</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1880' href='#L1880'><pre>1880</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1881' href='#L1881'><pre>1881</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_converted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1882' href='#L1882'><pre>1882</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(unrounded_floating_point_value) => {</pre></td></tr><tr><td class='line-number'><a name='L1883' href='#L1883'><pre>1883</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project.properties.compilation_type = project</pre></td></tr><tr><td class='line-number'><a name='L1884' href='#L1884'><pre>1884</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> .properties</pre></td></tr><tr><td class='line-number'><a name='L1885' href='#L1885'><pre>1885</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> .compilation_type</pre></td></tr><tr><td class='line-number'><a name='L1886' href='#L1886'><pre>1886</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> .update_unrounded_floating_point(unrounded_floating_point_value);</pre></td></tr><tr><td class='line-number'><a name='L1887' href='#L1887'><pre>1887</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1888' href='#L1888'><pre>1888</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1889' href='#L1889'><pre>1889</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1890' href='#L1890'><pre>1890</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1891' href='#L1891'><pre>1891</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1892' href='#L1892'><pre>1892</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre>fn handle_cond_comp<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1893' href='#L1893'><pre>1893</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1894' href='#L1894'><pre>1894</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1895' href='#L1895'><pre>1895</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1896' href='#L1896'><pre>1896</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1897' href='#L1897'><pre>1897</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1898' href='#L1898'><pre>1898</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> match parse_quoted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1899' href='#L1899'><pre>1899</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> Ok(conditional_compile_value) => {</pre></td></tr><tr><td class='line-number'><a name='L1900' href='#L1900'><pre>1900</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> project.properties.conditional_compile = conditional_compile_value;</pre></td></tr><tr><td class='line-number'><a name='L1901' href='#L1901'><pre>1901</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1902' href='#L1902'><pre>1902</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1903' href='#L1903'><pre>1903</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1904' href='#L1904'><pre>1904</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1905' href='#L1905'><pre>1905</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1906' href='#L1906'><pre>1906</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_start_mode<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1907' href='#L1907'><pre>1907</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1908' href='#L1908'><pre>1908</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1909' href='#L1909'><pre>1909</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1910' href='#L1910'><pre>1910</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1911' href='#L1911'><pre>1911</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1912' href='#L1912'><pre>1912</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_converted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1913' href='#L1913'><pre>1913</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(start_mode_value) => project.properties.start_mode = start_mode_value,</pre></td></tr><tr><td class='line-number'><a name='L1914' href='#L1914'><pre>1914</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1915' href='#L1915'><pre>1915</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1916' href='#L1916'><pre>1916</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1917' href='#L1917'><pre>1917</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1918' href='#L1918'><pre>1918</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_unattended<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1919' href='#L1919'><pre>1919</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1920' href='#L1920'><pre>1920</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1921' href='#L1921'><pre>1921</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1922' href='#L1922'><pre>1922</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1923' href='#L1923'><pre>1923</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1924' href='#L1924'><pre>1924</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_converted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1925' href='#L1925'><pre>1925</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(unattended_value) => project.properties.unattended = unattended_value,</pre></td></tr><tr><td class='line-number'><a name='L1926' href='#L1926'><pre>1926</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1927' href='#L1927'><pre>1927</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1928' href='#L1928'><pre>1928</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1929' href='#L1929'><pre>1929</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1930' href='#L1930'><pre>1930</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_retained<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1931' href='#L1931'><pre>1931</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1932' href='#L1932'><pre>1932</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1933' href='#L1933'><pre>1933</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1934' href='#L1934'><pre>1934</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1935' href='#L1935'><pre>1935</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1936' href='#L1936'><pre>1936</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_converted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1937' href='#L1937'><pre>1937</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(retained_value) => project.properties.retained = retained_value,</pre></td></tr><tr><td class='line-number'><a name='L1938' href='#L1938'><pre>1938</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1939' href='#L1939'><pre>1939</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1940' href='#L1940'><pre>1940</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1941' href='#L1941'><pre>1941</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1942' href='#L1942'><pre>1942</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_thread_per_object<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1943' href='#L1943'><pre>1943</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1944' href='#L1944'><pre>1944</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1945' href='#L1945'><pre>1945</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1946' href='#L1946'><pre>1946</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1947' href='#L1947'><pre>1947</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1948' href='#L1948'><pre>1948</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_numeric::<i16>(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1949' href='#L1949'><pre>1949</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(thread_per_object_value) => {</pre></td></tr><tr><td class='line-number'><a name='L1950' href='#L1950'><pre>1950</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> if thread_per_object_value <= 0 {</pre></td></tr><tr><td class='line-number'><a name='L1951' href='#L1951'><pre>1951</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project.properties.thread_per_object = 0;</pre></td></tr><tr><td class='line-number'><a name='L1952' href='#L1952'><pre>1952</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> } else <span class='region red'>{</span></pre></td></tr><tr><td class='line-number'><a name='L1953' href='#L1953'><pre>1953</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> project.properties.thread_per_object = thread_per_object_value.cast_unsigned();</span></pre></td></tr><tr><td class='line-number'><a name='L1954' href='#L1954'><pre>1954</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span></pre></td></tr><tr><td class='line-number'><a name='L1955' href='#L1955'><pre>1955</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1956' href='#L1956'><pre>1956</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1957' href='#L1957'><pre>1957</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1958' href='#L1958'><pre>1958</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1959' href='#L1959'><pre>1959</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1960' href='#L1960'><pre>1960</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_max_number_of_threads<'a>(</pre></td></tr><tr><td class='line-number'><a name='L1961' href='#L1961'><pre>1961</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1962' href='#L1962'><pre>1962</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L1963' href='#L1963'><pre>1963</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L1964' href='#L1964'><pre>1964</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L1965' href='#L1965'><pre>1965</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L1966' href='#L1966'><pre>1966</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_numeric(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L1967' href='#L1967'><pre>1967</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(max_number_of_threads_value) => {</pre></td></tr><tr><td class='line-number'><a name='L1968' href='#L1968'><pre>1968</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project.properties.max_number_of_threads = max_number_of_threads_value;</pre></td></tr><tr><td class='line-number'><a name='L1969' href='#L1969'><pre>1969</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1970' href='#L1970'><pre>1970</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1971' href='#L1971'><pre>1971</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1972' href='#L1972'><pre>1972</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L1973' href='#L1973'><pre>1973</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1974' href='#L1974'><pre>1974</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>fn handle_threading_model<'a>(</span></pre></td></tr><tr><td class='line-number'><a name='L1975' href='#L1975'><pre>1975</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> project: &mut ProjectFile<'a>,</span></pre></td></tr><tr><td class='line-number'><a name='L1976' href='#L1976'><pre>1976</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> input: &mut SourceStream<'a>,</span></pre></td></tr><tr><td class='line-number'><a name='L1977' href='#L1977'><pre>1977</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> property_name: &'a str,</span></pre></td></tr><tr><td class='line-number'><a name='L1978' href='#L1978'><pre>1978</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</span></pre></td></tr><tr><td class='line-number'><a name='L1979' href='#L1979'><pre>1979</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>)</span> {</pre></td></tr><tr><td class='line-number'><a name='L1980' href='#L1980'><pre>1980</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> match <span class='region red'>parse_converted_value</span><span class='region red'>(input, property_name)</span> {</pre></td></tr><tr><td class='line-number'><a name='L1981' href='#L1981'><pre>1981</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Ok(<span class='region red'>threading_model_value</span>) => <span class='region red'>project.properties.threading_model = threading_model_value</span>,</pre></td></tr><tr><td class='line-number'><a name='L1982' href='#L1982'><pre>1982</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1983' href='#L1983'><pre>1983</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1984' href='#L1984'><pre>1984</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L1985' href='#L1985'><pre>1985</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L1986' href='#L1986'><pre>1986</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>fn handle_debug_startup_component<'a>(</span></pre></td></tr><tr><td class='line-number'><a name='L1987' href='#L1987'><pre>1987</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> project: &mut ProjectFile<'a>,</span></pre></td></tr><tr><td class='line-number'><a name='L1988' href='#L1988'><pre>1988</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> input: &mut SourceStream<'a>,</span></pre></td></tr><tr><td class='line-number'><a name='L1989' href='#L1989'><pre>1989</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> property_name: &'a str,</span></pre></td></tr><tr><td class='line-number'><a name='L1990' href='#L1990'><pre>1990</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</span></pre></td></tr><tr><td class='line-number'><a name='L1991' href='#L1991'><pre>1991</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>)</span> {</pre></td></tr><tr><td class='line-number'><a name='L1992' href='#L1992'><pre>1992</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> match <span class='region red'>parse_path_line</span><span class='region red'>(input, property_name)</span> {</pre></td></tr><tr><td class='line-number'><a name='L1993' href='#L1993'><pre>1993</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Ok(<span class='region red'>debug_startup_component_value</span>) => <span class='region red'>{</span></pre></td></tr><tr><td class='line-number'><a name='L1994' href='#L1994'><pre>1994</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> project.properties.debug_startup_component = debug_startup_component_value;</span></pre></td></tr><tr><td class='line-number'><a name='L1995' href='#L1995'><pre>1995</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span></pre></td></tr><tr><td class='line-number'><a name='L1996' href='#L1996'><pre>1996</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L1997' href='#L1997'><pre>1997</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L1998' href='#L1998'><pre>1998</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L1999' href='#L1999'><pre>1999</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2000' href='#L2000'><pre>2000</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre>fn handle_debug_startup_option<'a>(</pre></td></tr><tr><td class='line-number'><a name='L2001' href='#L2001'><pre>2001</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L2002' href='#L2002'><pre>2002</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L2003' href='#L2003'><pre>2003</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L2004' href='#L2004'><pre>2004</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L2005' href='#L2005'><pre>2005</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L2006' href='#L2006'><pre>2006</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> match parse_converted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L2007' href='#L2007'><pre>2007</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> Ok(debug_startup_option_value) => {</pre></td></tr><tr><td class='line-number'><a name='L2008' href='#L2008'><pre>2008</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> project.properties.debug_startup_option = debug_startup_option_value;</pre></td></tr><tr><td class='line-number'><a name='L2009' href='#L2009'><pre>2009</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2010' href='#L2010'><pre>2010</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L2011' href='#L2011'><pre>2011</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2012' href='#L2012'><pre>2012</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L2013' href='#L2013'><pre>2013</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2014' href='#L2014'><pre>2014</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>fn handle_use_existing_browser<'a>(</span></pre></td></tr><tr><td class='line-number'><a name='L2015' href='#L2015'><pre>2015</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> project: &mut ProjectFile<'a>,</span></pre></td></tr><tr><td class='line-number'><a name='L2016' href='#L2016'><pre>2016</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> input: &mut SourceStream<'a>,</span></pre></td></tr><tr><td class='line-number'><a name='L2017' href='#L2017'><pre>2017</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> property_name: &'a str,</span></pre></td></tr><tr><td class='line-number'><a name='L2018' href='#L2018'><pre>2018</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</span></pre></td></tr><tr><td class='line-number'><a name='L2019' href='#L2019'><pre>2019</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>)</span> {</pre></td></tr><tr><td class='line-number'><a name='L2020' href='#L2020'><pre>2020</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> match <span class='region red'>parse_converted_value</span><span class='region red'>(input, property_name)</span> {</pre></td></tr><tr><td class='line-number'><a name='L2021' href='#L2021'><pre>2021</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Ok(<span class='region red'>use_existing_browser_value</span>) => <span class='region red'>{</span></pre></td></tr><tr><td class='line-number'><a name='L2022' href='#L2022'><pre>2022</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> project.properties.use_existing_browser = use_existing_browser_value;</span></pre></td></tr><tr><td class='line-number'><a name='L2023' href='#L2023'><pre>2023</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span></pre></td></tr><tr><td class='line-number'><a name='L2024' href='#L2024'><pre>2024</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L2025' href='#L2025'><pre>2025</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2026' href='#L2026'><pre>2026</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L2027' href='#L2027'><pre>2027</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2028' href='#L2028'><pre>2028</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre>fn handle_no_control_upgrade<'a>(</pre></td></tr><tr><td class='line-number'><a name='L2029' href='#L2029'><pre>2029</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L2030' href='#L2030'><pre>2030</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L2031' href='#L2031'><pre>2031</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L2032' href='#L2032'><pre>2032</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L2033' href='#L2033'><pre>2033</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L2034' href='#L2034'><pre>2034</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> match parse_converted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L2035' href='#L2035'><pre>2035</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> Ok(upgrade_controls_value) => project.properties.upgrade_controls = upgrade_controls_value,</pre></td></tr><tr><td class='line-number'><a name='L2036' href='#L2036'><pre>2036</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L2037' href='#L2037'><pre>2037</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2038' href='#L2038'><pre>2038</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L2039' href='#L2039'><pre>2039</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2040' href='#L2040'><pre>2040</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>fn handle_server_support_files<'a>(</pre></td></tr><tr><td class='line-number'><a name='L2041' href='#L2041'><pre>2041</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project: &mut ProjectFile<'a>,</pre></td></tr><tr><td class='line-number'><a name='L2042' href='#L2042'><pre>2042</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L2043' href='#L2043'><pre>2043</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> property_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L2044' href='#L2044'><pre>2044</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> failures: &mut Vec<ErrorDetails<'a, ProjectErrorKind<'a>>>,</pre></td></tr><tr><td class='line-number'><a name='L2045' href='#L2045'><pre>2045</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>) {</pre></td></tr><tr><td class='line-number'><a name='L2046' href='#L2046'><pre>2046</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> match parse_converted_value(input, property_name) {</pre></td></tr><tr><td class='line-number'><a name='L2047' href='#L2047'><pre>2047</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> Ok(server_support_files_value) => {</pre></td></tr><tr><td class='line-number'><a name='L2048' href='#L2048'><pre>2048</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> project.properties.server_support_files = server_support_files_value;</pre></td></tr><tr><td class='line-number'><a name='L2049' href='#L2049'><pre>2049</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2050' href='#L2050'><pre>2050</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => <span class='region red'>failures</span>.<span class='region red'>push</span>(<span class='region red'>e</span>),</pre></td></tr><tr><td class='line-number'><a name='L2051' href='#L2051'><pre>2051</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2052' href='#L2052'><pre>2052</pre></a></td><td class='covered-line'><pre>35</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L2053' href='#L2053'><pre>2053</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2054' href='#L2054'><pre>2054</pre></a></td><td class='covered-line'><pre>1.74k</pre></td><td class='code'><pre>fn parse_section_header_line<'a>(</pre></td></tr><tr><td class='line-number'><a name='L2055' href='#L2055'><pre>2055</pre></a></td><td class='covered-line'><pre>1.74k</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L2056' href='#L2056'><pre>2056</pre></a></td><td class='covered-line'><pre>1.74k</pre></td><td class='code'><pre>) -> Result<Option<&'a str>, ErrorDetails<'a, ProjectErrorKind<'a>>> {</pre></td></tr><tr><td class='line-number'><a name='L2057' href='#L2057'><pre>2057</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // We want to grab any section header lines like '[MS Transaction Server]'.</pre></td></tr><tr><td class='line-number'><a name='L2058' href='#L2058'><pre>2058</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // Which we will use in parsing 'other properties.'</pre></td></tr><tr><td class='line-number'><a name='L2059' href='#L2059'><pre>2059</pre></a></td><td class='covered-line'><pre>1.74k</pre></td><td class='code'><pre> let header_start = input.take("[", Comparator::CaseSensitive);</pre></td></tr><tr><td class='line-number'><a name='L2060' href='#L2060'><pre>2060</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2061' href='#L2061'><pre>2061</pre></a></td><td class='covered-line'><pre>1.74k</pre></td><td class='code'><pre> if header_start.is_none() {</pre></td></tr><tr><td class='line-number'><a name='L2062' href='#L2062'><pre>2062</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No section header line, so we can continue parsing.</pre></td></tr><tr><td class='line-number'><a name='L2063' href='#L2063'><pre>2063</pre></a></td><td class='covered-line'><pre>1.71k</pre></td><td class='code'><pre> return Ok(None);</pre></td></tr><tr><td class='line-number'><a name='L2064' href='#L2064'><pre>2064</pre></a></td><td class='covered-line'><pre>33</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2065' href='#L2065'><pre>2065</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2066' href='#L2066'><pre>2066</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // We have a section header line.</pre></td></tr><tr><td class='line-number'><a name='L2067' href='#L2067'><pre>2067</pre></a></td><td class='covered-line'><pre>33</pre></td><td class='code'><pre> let Some((other_property, _)) = input.take_until("]", Comparator::CaseSensitive) else {</pre></td></tr><tr><td class='line-number'><a name='L2068' href='#L2068'><pre>2068</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // We have a section header line but it is not terminated properly.</pre></td></tr><tr><td class='line-number'><a name='L2069' href='#L2069'><pre>2069</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error</span>(<span class='region red'>ProjectErrorKind::UnterminatedSectionHeader</span>);</pre></td></tr><tr><td class='line-number'><a name='L2070' href='#L2070'><pre>2070</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>input</span>.<span class='region red'>forward_to_next_line</span>();</pre></td></tr><tr><td class='line-number'><a name='L2071' href='#L2071'><pre>2071</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2072' href='#L2072'><pre>2072</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2073' href='#L2073'><pre>2073</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2074' href='#L2074'><pre>2074</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2075' href='#L2075'><pre>2075</pre></a></td><td class='covered-line'><pre>33</pre></td><td class='code'><pre> let _ = input.take("]", Comparator::CaseSensitive);</pre></td></tr><tr><td class='line-number'><a name='L2076' href='#L2076'><pre>2076</pre></a></td><td class='covered-line'><pre>33</pre></td><td class='code'><pre> input.forward_to_next_line();</pre></td></tr><tr><td class='line-number'><a name='L2077' href='#L2077'><pre>2077</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2078' href='#L2078'><pre>2078</pre></a></td><td class='covered-line'><pre>33</pre></td><td class='code'><pre> Ok(Some(other_property))</pre></td></tr><tr><td class='line-number'><a name='L2079' href='#L2079'><pre>2079</pre></a></td><td class='covered-line'><pre>1.74k</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L2080' href='#L2080'><pre>2080</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2081' href='#L2081'><pre>2081</pre></a></td><td class='covered-line'><pre>1.71k</pre></td><td class='code'><pre>fn parse_property_name<'a>(</pre></td></tr><tr><td class='line-number'><a name='L2082' href='#L2082'><pre>2082</pre></a></td><td class='covered-line'><pre>1.71k</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L2083' href='#L2083'><pre>2083</pre></a></td><td class='covered-line'><pre>1.71k</pre></td><td class='code'><pre>) -> Result<&'a str, ErrorDetails<'a, ProjectErrorKind<'a>>> {</pre></td></tr><tr><td class='line-number'><a name='L2084' href='#L2084'><pre>2084</pre></a></td><td class='covered-line'><pre>1.71k</pre></td><td class='code'><pre> let line_start = input.start_of_line();</pre></td></tr><tr><td class='line-number'><a name='L2085' href='#L2085'><pre>2085</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2086' href='#L2086'><pre>2086</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // We want to grab the property name.</pre></td></tr><tr><td class='line-number'><a name='L2087' href='#L2087'><pre>2087</pre></a></td><td class='covered-line'><pre>1.71k</pre></td><td class='code'><pre> let property_name = input.take_until("=", Comparator::CaseSensitive);</pre></td></tr><tr><td class='line-number'><a name='L2088' href='#L2088'><pre>2088</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2089' href='#L2089'><pre>2089</pre></a></td><td class='covered-line'><pre>1.71k</pre></td><td class='code'><pre> match property_name {</pre></td></tr><tr><td class='line-number'><a name='L2090' href='#L2090'><pre>2090</pre></a></td><td class='skipped-line'></td><td class='code'><pre> None => {</pre></td></tr><tr><td class='line-number'><a name='L2091' href='#L2091'><pre>2091</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No property name found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2092' href='#L2092'><pre>2092</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // Go to the next line and return the error.</pre></td></tr><tr><td class='line-number'><a name='L2093' href='#L2093'><pre>2093</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(<span class='region red'>line_start</span>, <span class='region red'>ProjectErrorKind::PropertyNameNotFound</span>);</pre></td></tr><tr><td class='line-number'><a name='L2094' href='#L2094'><pre>2094</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>input</span>.<span class='region red'>forward_to_next_line</span>();</pre></td></tr><tr><td class='line-number'><a name='L2095' href='#L2095'><pre>2095</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2096' href='#L2096'><pre>2096</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>Err(fail)</span></pre></td></tr><tr><td class='line-number'><a name='L2097' href='#L2097'><pre>2097</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2098' href='#L2098'><pre>2098</pre></a></td><td class='covered-line'><pre>1.71k</pre></td><td class='code'><pre> Some((property_name, _)) => {</pre></td></tr><tr><td class='line-number'><a name='L2099' href='#L2099'><pre>2099</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // We only need the property name not the split on '=' value so we only</pre></td></tr><tr><td class='line-number'><a name='L2100' href='#L2100'><pre>2100</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // return the first of the pair in the line split.</pre></td></tr><tr><td class='line-number'><a name='L2101' href='#L2101'><pre>2101</pre></a></td><td class='covered-line'><pre>1.71k</pre></td><td class='code'><pre> let _ = input.take("=", Comparator::CaseSensitive);</pre></td></tr><tr><td class='line-number'><a name='L2102' href='#L2102'><pre>2102</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2103' href='#L2103'><pre>2103</pre></a></td><td class='covered-line'><pre>1.71k</pre></td><td class='code'><pre> Ok(property_name)</pre></td></tr><tr><td class='line-number'><a name='L2104' href='#L2104'><pre>2104</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2105' href='#L2105'><pre>2105</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2106' href='#L2106'><pre>2106</pre></a></td><td class='covered-line'><pre>1.71k</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L2107' href='#L2107'><pre>2107</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2108' href='#L2108'><pre>2108</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre>fn parse_property_value<'a>(</pre></td></tr><tr><td class='line-number'><a name='L2109' href='#L2109'><pre>2109</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L2110' href='#L2110'><pre>2110</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> line_type: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L2111' href='#L2111'><pre>2111</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre>) -> Result<&'a str, ErrorDetails<'a, ProjectErrorKind<'a>>> {</pre></td></tr><tr><td class='line-number'><a name='L2112' href='#L2112'><pre>2112</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // An line starts with the line_type followed by '=', and a value.</pre></td></tr><tr><td class='line-number'><a name='L2113' href='#L2113'><pre>2113</pre></a></td><td class='skipped-line'></td><td class='code'><pre> //</pre></td></tr><tr><td class='line-number'><a name='L2114' href='#L2114'><pre>2114</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // By this point in the parse the line_type and "=" component should be</pre></td></tr><tr><td class='line-number'><a name='L2115' href='#L2115'><pre>2115</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // stripped off since that is how we knew to use this particular parse.;</pre></td></tr><tr><td class='line-number'><a name='L2116' href='#L2116'><pre>2116</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> let parameter_start = input.offset();</pre></td></tr><tr><td class='line-number'><a name='L2117' href='#L2117'><pre>2117</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2118' href='#L2118'><pre>2118</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> let Some((parameter_value, _)) = input.take_until_newline() else {</pre></td></tr><tr><td class='line-number'><a name='L2119' href='#L2119'><pre>2119</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No parameter value found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2120' href='#L2120'><pre>2120</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2121' href='#L2121'><pre>2121</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>parameter_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2122' href='#L2122'><pre>2122</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ParameterValueNotFound {</span></pre></td></tr><tr><td class='line-number'><a name='L2123' href='#L2123'><pre>2123</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> parameter_line_name: line_type,</span></pre></td></tr><tr><td class='line-number'><a name='L2124' href='#L2124'><pre>2124</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span>,</pre></td></tr><tr><td class='line-number'><a name='L2125' href='#L2125'><pre>2125</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2126' href='#L2126'><pre>2126</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2127' href='#L2127'><pre>2127</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2128' href='#L2128'><pre>2128</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2129' href='#L2129'><pre>2129</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> if parameter_value.is_empty() {</pre></td></tr><tr><td class='line-number'><a name='L2130' href='#L2130'><pre>2130</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No parameter value found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2131' href='#L2131'><pre>2131</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2132' href='#L2132'><pre>2132</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>parameter_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2133' href='#L2133'><pre>2133</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ParameterValueNotFound {</span></pre></td></tr><tr><td class='line-number'><a name='L2134' href='#L2134'><pre>2134</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> parameter_line_name: line_type,</span></pre></td></tr><tr><td class='line-number'><a name='L2135' href='#L2135'><pre>2135</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span>,</pre></td></tr><tr><td class='line-number'><a name='L2136' href='#L2136'><pre>2136</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2137' href='#L2137'><pre>2137</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2138' href='#L2138'><pre>2138</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2139' href='#L2139'><pre>2139</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2140' href='#L2140'><pre>2140</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre> Ok(parameter_value)</pre></td></tr><tr><td class='line-number'><a name='L2141' href='#L2141'><pre>2141</pre></a></td><td class='covered-line'><pre>34</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L2142' href='#L2142'><pre>2142</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2143' href='#L2143'><pre>2143</pre></a></td><td class='covered-line'><pre>293</pre></td><td class='code'><pre>fn parse_quoted_value<'a>(</pre></td></tr><tr><td class='line-number'><a name='L2144' href='#L2144'><pre>2144</pre></a></td><td class='covered-line'><pre>293</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L2145' href='#L2145'><pre>2145</pre></a></td><td class='covered-line'><pre>293</pre></td><td class='code'><pre> line_type: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L2146' href='#L2146'><pre>2146</pre></a></td><td class='covered-line'><pre>293</pre></td><td class='code'><pre>) -> Result<&'a str, ErrorDetails<'a, ProjectErrorKind<'a>>> {</pre></td></tr><tr><td class='line-number'><a name='L2147' href='#L2147'><pre>2147</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // An line starts with the line_type followed by '=', and a quoted value.</pre></td></tr><tr><td class='line-number'><a name='L2148' href='#L2148'><pre>2148</pre></a></td><td class='skipped-line'></td><td class='code'><pre> //</pre></td></tr><tr><td class='line-number'><a name='L2149' href='#L2149'><pre>2149</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // By this point in the parse the line_type and "=" component should be</pre></td></tr><tr><td class='line-number'><a name='L2150' href='#L2150'><pre>2150</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // stripped off since that is how we knew to use this particular parse.</pre></td></tr><tr><td class='line-number'><a name='L2151' href='#L2151'><pre>2151</pre></a></td><td class='covered-line'><pre>293</pre></td><td class='code'><pre> let parameter_start = input.offset();</pre></td></tr><tr><td class='line-number'><a name='L2152' href='#L2152'><pre>2152</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2153' href='#L2153'><pre>2153</pre></a></td><td class='covered-line'><pre>293</pre></td><td class='code'><pre> let Some((parameter_value, _)) = input.take_until_newline() else {</pre></td></tr><tr><td class='line-number'><a name='L2154' href='#L2154'><pre>2154</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No parameter value found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2155' href='#L2155'><pre>2155</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2156' href='#L2156'><pre>2156</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>parameter_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2157' href='#L2157'><pre>2157</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ParameterValueNotFound {</span></pre></td></tr><tr><td class='line-number'><a name='L2158' href='#L2158'><pre>2158</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> parameter_line_name: line_type,</span></pre></td></tr><tr><td class='line-number'><a name='L2159' href='#L2159'><pre>2159</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span>,</pre></td></tr><tr><td class='line-number'><a name='L2160' href='#L2160'><pre>2160</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2161' href='#L2161'><pre>2161</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2162' href='#L2162'><pre>2162</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2163' href='#L2163'><pre>2163</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2164' href='#L2164'><pre>2164</pre></a></td><td class='covered-line'><pre>293</pre></td><td class='code'><pre> if parameter_value.is_empty() {</pre></td></tr><tr><td class='line-number'><a name='L2165' href='#L2165'><pre>2165</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No startup value found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2166' href='#L2166'><pre>2166</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2167' href='#L2167'><pre>2167</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>parameter_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2168' href='#L2168'><pre>2168</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ParameterValueNotFound {</span></pre></td></tr><tr><td class='line-number'><a name='L2169' href='#L2169'><pre>2169</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> parameter_line_name: line_type,</span></pre></td></tr><tr><td class='line-number'><a name='L2170' href='#L2170'><pre>2170</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span>,</pre></td></tr><tr><td class='line-number'><a name='L2171' href='#L2171'><pre>2171</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2172' href='#L2172'><pre>2172</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2173' href='#L2173'><pre>2173</pre></a></td><td class='covered-line'><pre>293</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2174' href='#L2174'><pre>2174</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2175' href='#L2175'><pre>2175</pre></a></td><td class='covered-line'><pre>293</pre></td><td class='code'><pre> let start_quote_found = parameter_value.starts_with('"');</pre></td></tr><tr><td class='line-number'><a name='L2176' href='#L2176'><pre>2176</pre></a></td><td class='covered-line'><pre>293</pre></td><td class='code'><pre> let end_quote_found = parameter_value.ends_with('"');</pre></td></tr><tr><td class='line-number'><a name='L2177' href='#L2177'><pre>2177</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2178' href='#L2178'><pre>2178</pre></a></td><td class='covered-line'><pre>293</pre></td><td class='code'><pre> if !start_quote_found && <div class='tooltip'><span class='region red'>end_quote_found</span><span class='tooltip-content'>0</span></div> {</pre></td></tr><tr><td class='line-number'><a name='L2179' href='#L2179'><pre>2179</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // The value ends with a quote but does not start with one.</pre></td></tr><tr><td class='line-number'><a name='L2180' href='#L2180'><pre>2180</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // This is an error, so we return an error.</pre></td></tr><tr><td class='line-number'><a name='L2181' href='#L2181'><pre>2181</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2182' href='#L2182'><pre>2182</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>parameter_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2183' href='#L2183'><pre>2183</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ParameterValueMissingOpeningQuote {</span></pre></td></tr><tr><td class='line-number'><a name='L2184' href='#L2184'><pre>2184</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> parameter_line_name: line_type,</span></pre></td></tr><tr><td class='line-number'><a name='L2185' href='#L2185'><pre>2185</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span>,</pre></td></tr><tr><td class='line-number'><a name='L2186' href='#L2186'><pre>2186</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2187' href='#L2187'><pre>2187</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2188' href='#L2188'><pre>2188</pre></a></td><td class='covered-line'><pre>293</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2189' href='#L2189'><pre>2189</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2190' href='#L2190'><pre>2190</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // we have to check the length like this because if we have only a single</pre></td></tr><tr><td class='line-number'><a name='L2191' href='#L2191'><pre>2191</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // quote, then obviously the string both starts and ends with a quote (even</pre></td></tr><tr><td class='line-number'><a name='L2192' href='#L2192'><pre>2192</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // if that is the same character!) which means we still need to report this</pre></td></tr><tr><td class='line-number'><a name='L2193' href='#L2193'><pre>2193</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // failure case.</pre></td></tr><tr><td class='line-number'><a name='L2194' href='#L2194'><pre>2194</pre></a></td><td class='covered-line'><pre>293</pre></td><td class='code'><pre> let start_without_end = start_quote_found && !end_quote_found;</pre></td></tr><tr><td class='line-number'><a name='L2195' href='#L2195'><pre>2195</pre></a></td><td class='covered-line'><pre>293</pre></td><td class='code'><pre> let start_with_length_one = start_quote_found && end_quote_found && parameter_value.len() == 1;</pre></td></tr><tr><td class='line-number'><a name='L2196' href='#L2196'><pre>2196</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2197' href='#L2197'><pre>2197</pre></a></td><td class='covered-line'><pre>293</pre></td><td class='code'><pre> if start_without_end || start_with_length_one {</pre></td></tr><tr><td class='line-number'><a name='L2198' href='#L2198'><pre>2198</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // The value starts with a quote but does not end with one.</pre></td></tr><tr><td class='line-number'><a name='L2199' href='#L2199'><pre>2199</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // This is an error, so we return an error.</pre></td></tr><tr><td class='line-number'><a name='L2200' href='#L2200'><pre>2200</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2201' href='#L2201'><pre>2201</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>parameter_start</span><span class='region red'> + parameter_value.len()</span>,</pre></td></tr><tr><td class='line-number'><a name='L2202' href='#L2202'><pre>2202</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ParameterValueMissingMatchingQuote {</span></pre></td></tr><tr><td class='line-number'><a name='L2203' href='#L2203'><pre>2203</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> parameter_line_name: line_type,</span></pre></td></tr><tr><td class='line-number'><a name='L2204' href='#L2204'><pre>2204</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span>,</pre></td></tr><tr><td class='line-number'><a name='L2205' href='#L2205'><pre>2205</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2206' href='#L2206'><pre>2206</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2207' href='#L2207'><pre>2207</pre></a></td><td class='covered-line'><pre>293</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2208' href='#L2208'><pre>2208</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2209' href='#L2209'><pre>2209</pre></a></td><td class='covered-line'><pre>293</pre></td><td class='code'><pre> if !start_quote_found && <div class='tooltip'><span class='region red'>!end_quote_found</span><span class='tooltip-content'>0</span></div> {</pre></td></tr><tr><td class='line-number'><a name='L2210' href='#L2210'><pre>2210</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // The startup value does not start or end with a quote.</pre></td></tr><tr><td class='line-number'><a name='L2211' href='#L2211'><pre>2211</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // This is an error, so we return an error.</pre></td></tr><tr><td class='line-number'><a name='L2212' href='#L2212'><pre>2212</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2213' href='#L2213'><pre>2213</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>parameter_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2214' href='#L2214'><pre>2214</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ParameterValueMissingQuotes {</span></pre></td></tr><tr><td class='line-number'><a name='L2215' href='#L2215'><pre>2215</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> parameter_line_name: line_type,</span></pre></td></tr><tr><td class='line-number'><a name='L2216' href='#L2216'><pre>2216</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span>,</pre></td></tr><tr><td class='line-number'><a name='L2217' href='#L2217'><pre>2217</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2218' href='#L2218'><pre>2218</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2219' href='#L2219'><pre>2219</pre></a></td><td class='covered-line'><pre>293</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2220' href='#L2220'><pre>2220</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2221' href='#L2221'><pre>2221</pre></a></td><td class='covered-line'><pre>293</pre></td><td class='code'><pre> let parameter_value = &parameter_value[1..parameter_value.len() - 1];</pre></td></tr><tr><td class='line-number'><a name='L2222' href='#L2222'><pre>2222</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2223' href='#L2223'><pre>2223</pre></a></td><td class='covered-line'><pre>293</pre></td><td class='code'><pre> Ok(parameter_value)</pre></td></tr><tr><td class='line-number'><a name='L2224' href='#L2224'><pre>2224</pre></a></td><td class='covered-line'><pre>293</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L2225' href='#L2225'><pre>2225</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2226' href='#L2226'><pre>2226</pre></a></td><td class='covered-line'><pre>105</pre></td><td class='code'><pre>fn parse_optional_quoted_value<'a>(</pre></td></tr><tr><td class='line-number'><a name='L2227' href='#L2227'><pre>2227</pre></a></td><td class='covered-line'><pre>105</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L2228' href='#L2228'><pre>2228</pre></a></td><td class='covered-line'><pre>105</pre></td><td class='code'><pre> line_type: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L2229' href='#L2229'><pre>2229</pre></a></td><td class='covered-line'><pre>105</pre></td><td class='code'><pre>) -> Result<&'a str, ErrorDetails<'a, ProjectErrorKind<'a>>> {</pre></td></tr><tr><td class='line-number'><a name='L2230' href='#L2230'><pre>2230</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // An optional line starts with 'Startup=' (or another such option starting line)</pre></td></tr><tr><td class='line-number'><a name='L2231' href='#L2231'><pre>2231</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // and is followed by the quoted value, "!None!", or "(None)", or "!(None)!" to indicate the</pre></td></tr><tr><td class='line-number'><a name='L2232' href='#L2232'><pre>2232</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // parameter value is 'None'.</pre></td></tr><tr><td class='line-number'><a name='L2233' href='#L2233'><pre>2233</pre></a></td><td class='skipped-line'></td><td class='code'><pre> //</pre></td></tr><tr><td class='line-number'><a name='L2234' href='#L2234'><pre>2234</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // By this point in the parse the "Startup=" component should be stripped off</pre></td></tr><tr><td class='line-number'><a name='L2235' href='#L2235'><pre>2235</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // since that is how we knew to use this particular parse.</pre></td></tr><tr><td class='line-number'><a name='L2236' href='#L2236'><pre>2236</pre></a></td><td class='covered-line'><pre>105</pre></td><td class='code'><pre> let parameter_start = input.offset();</pre></td></tr><tr><td class='line-number'><a name='L2237' href='#L2237'><pre>2237</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2238' href='#L2238'><pre>2238</pre></a></td><td class='covered-line'><pre>105</pre></td><td class='code'><pre> let Some((parameter_value, _)) = input.take_until_newline() else {</pre></td></tr><tr><td class='line-number'><a name='L2239' href='#L2239'><pre>2239</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No parameter value found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2240' href='#L2240'><pre>2240</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2241' href='#L2241'><pre>2241</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>parameter_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2242' href='#L2242'><pre>2242</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ParameterValueNotFound {</span></pre></td></tr><tr><td class='line-number'><a name='L2243' href='#L2243'><pre>2243</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> parameter_line_name: line_type,</span></pre></td></tr><tr><td class='line-number'><a name='L2244' href='#L2244'><pre>2244</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span>,</pre></td></tr><tr><td class='line-number'><a name='L2245' href='#L2245'><pre>2245</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2246' href='#L2246'><pre>2246</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2247' href='#L2247'><pre>2247</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2248' href='#L2248'><pre>2248</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2249' href='#L2249'><pre>2249</pre></a></td><td class='covered-line'><pre>105</pre></td><td class='code'><pre> if parameter_value.is_empty() {</pre></td></tr><tr><td class='line-number'><a name='L2250' href='#L2250'><pre>2250</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No parameter value found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2251' href='#L2251'><pre>2251</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2252' href='#L2252'><pre>2252</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>parameter_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2253' href='#L2253'><pre>2253</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ParameterValueNotFound {</span></pre></td></tr><tr><td class='line-number'><a name='L2254' href='#L2254'><pre>2254</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> parameter_line_name: line_type,</span></pre></td></tr><tr><td class='line-number'><a name='L2255' href='#L2255'><pre>2255</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span>,</pre></td></tr><tr><td class='line-number'><a name='L2256' href='#L2256'><pre>2256</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2257' href='#L2257'><pre>2257</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2258' href='#L2258'><pre>2258</pre></a></td><td class='covered-line'><pre>105</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2259' href='#L2259'><pre>2259</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2260' href='#L2260'><pre>2260</pre></a></td><td class='covered-line'><pre>105</pre></td><td class='code'><pre> if parameter_value == "\"(None)\""</pre></td></tr><tr><td class='line-number'><a name='L2261' href='#L2261'><pre>2261</pre></a></td><td class='covered-line'><pre>105</pre></td><td class='code'><pre> || parameter_value == "\"!None!\""</pre></td></tr><tr><td class='line-number'><a name='L2262' href='#L2262'><pre>2262</pre></a></td><td class='covered-line'><pre>105</pre></td><td class='code'><pre> || parameter_value == "\"!(None)!\""</pre></td></tr><tr><td class='line-number'><a name='L2263' href='#L2263'><pre>2263</pre></a></td><td class='covered-line'><pre>105</pre></td><td class='code'><pre> || parameter_value == "(None)"</pre></td></tr><tr><td class='line-number'><a name='L2264' href='#L2264'><pre>2264</pre></a></td><td class='covered-line'><pre>105</pre></td><td class='code'><pre> || parameter_value == "!None!"</pre></td></tr><tr><td class='line-number'><a name='L2265' href='#L2265'><pre>2265</pre></a></td><td class='covered-line'><pre>105</pre></td><td class='code'><pre> || parameter_value == "!(None)!"</pre></td></tr><tr><td class='line-number'><a name='L2266' href='#L2266'><pre>2266</pre></a></td><td class='skipped-line'></td><td class='code'><pre> {</pre></td></tr><tr><td class='line-number'><a name='L2267' href='#L2267'><pre>2267</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // The parameter has a value of None.</pre></td></tr><tr><td class='line-number'><a name='L2268' href='#L2268'><pre>2268</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> return Ok("");</pre></td></tr><tr><td class='line-number'><a name='L2269' href='#L2269'><pre>2269</pre></a></td><td class='covered-line'><pre>102</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2270' href='#L2270'><pre>2270</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2271' href='#L2271'><pre>2271</pre></a></td><td class='covered-line'><pre>102</pre></td><td class='code'><pre> let start_quote_found = parameter_value.starts_with('"');</pre></td></tr><tr><td class='line-number'><a name='L2272' href='#L2272'><pre>2272</pre></a></td><td class='covered-line'><pre>102</pre></td><td class='code'><pre> let end_quote_found = parameter_value.ends_with('"');</pre></td></tr><tr><td class='line-number'><a name='L2273' href='#L2273'><pre>2273</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2274' href='#L2274'><pre>2274</pre></a></td><td class='covered-line'><pre>102</pre></td><td class='code'><pre> if !start_quote_found && <div class='tooltip'><span class='region red'>end_quote_found</span><span class='tooltip-content'>0</span></div> {</pre></td></tr><tr><td class='line-number'><a name='L2275' href='#L2275'><pre>2275</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // The value ends with a quote but does not start with one.</pre></td></tr><tr><td class='line-number'><a name='L2276' href='#L2276'><pre>2276</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // This is an error, so we return an error.</pre></td></tr><tr><td class='line-number'><a name='L2277' href='#L2277'><pre>2277</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2278' href='#L2278'><pre>2278</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>parameter_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2279' href='#L2279'><pre>2279</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ParameterValueMissingOpeningQuote {</span></pre></td></tr><tr><td class='line-number'><a name='L2280' href='#L2280'><pre>2280</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> parameter_line_name: line_type,</span></pre></td></tr><tr><td class='line-number'><a name='L2281' href='#L2281'><pre>2281</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span>,</pre></td></tr><tr><td class='line-number'><a name='L2282' href='#L2282'><pre>2282</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2283' href='#L2283'><pre>2283</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2284' href='#L2284'><pre>2284</pre></a></td><td class='covered-line'><pre>102</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2285' href='#L2285'><pre>2285</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2286' href='#L2286'><pre>2286</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // we have to check the length like this because if we have only a single</pre></td></tr><tr><td class='line-number'><a name='L2287' href='#L2287'><pre>2287</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // quote, then obviously the string both starts and ends with a quote (even</pre></td></tr><tr><td class='line-number'><a name='L2288' href='#L2288'><pre>2288</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // if that is the same character!) which means we still need to report this</pre></td></tr><tr><td class='line-number'><a name='L2289' href='#L2289'><pre>2289</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // failure case.</pre></td></tr><tr><td class='line-number'><a name='L2290' href='#L2290'><pre>2290</pre></a></td><td class='covered-line'><pre>102</pre></td><td class='code'><pre> let start_without_end = start_quote_found && !end_quote_found;</pre></td></tr><tr><td class='line-number'><a name='L2291' href='#L2291'><pre>2291</pre></a></td><td class='covered-line'><pre>102</pre></td><td class='code'><pre> let start_with_end_length_one =</pre></td></tr><tr><td class='line-number'><a name='L2292' href='#L2292'><pre>2292</pre></a></td><td class='covered-line'><pre>102</pre></td><td class='code'><pre> start_quote_found && end_quote_found && parameter_value.len() == 1;</pre></td></tr><tr><td class='line-number'><a name='L2293' href='#L2293'><pre>2293</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2294' href='#L2294'><pre>2294</pre></a></td><td class='covered-line'><pre>102</pre></td><td class='code'><pre> if start_without_end || start_with_end_length_one {</pre></td></tr><tr><td class='line-number'><a name='L2295' href='#L2295'><pre>2295</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // The value starts with a quote but does not end with one.</pre></td></tr><tr><td class='line-number'><a name='L2296' href='#L2296'><pre>2296</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // This is an error, so we return an error.</pre></td></tr><tr><td class='line-number'><a name='L2297' href='#L2297'><pre>2297</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2298' href='#L2298'><pre>2298</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>parameter_start</span><span class='region red'> + parameter_value.len()</span>,</pre></td></tr><tr><td class='line-number'><a name='L2299' href='#L2299'><pre>2299</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ParameterValueMissingMatchingQuote {</span></pre></td></tr><tr><td class='line-number'><a name='L2300' href='#L2300'><pre>2300</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> parameter_line_name: line_type,</span></pre></td></tr><tr><td class='line-number'><a name='L2301' href='#L2301'><pre>2301</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span>,</pre></td></tr><tr><td class='line-number'><a name='L2302' href='#L2302'><pre>2302</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2303' href='#L2303'><pre>2303</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2304' href='#L2304'><pre>2304</pre></a></td><td class='covered-line'><pre>102</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2305' href='#L2305'><pre>2305</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2306' href='#L2306'><pre>2306</pre></a></td><td class='covered-line'><pre>102</pre></td><td class='code'><pre> if !start_quote_found && <div class='tooltip'><span class='region red'>!end_quote_found</span><span class='tooltip-content'>0</span></div> {</pre></td></tr><tr><td class='line-number'><a name='L2307' href='#L2307'><pre>2307</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // The parameter value does not start or end with a quote.</pre></td></tr><tr><td class='line-number'><a name='L2308' href='#L2308'><pre>2308</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // This is an error, so we return an error.</pre></td></tr><tr><td class='line-number'><a name='L2309' href='#L2309'><pre>2309</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2310' href='#L2310'><pre>2310</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>parameter_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2311' href='#L2311'><pre>2311</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ParameterValueMissingQuotes {</span></pre></td></tr><tr><td class='line-number'><a name='L2312' href='#L2312'><pre>2312</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> parameter_line_name: line_type,</span></pre></td></tr><tr><td class='line-number'><a name='L2313' href='#L2313'><pre>2313</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span>,</pre></td></tr><tr><td class='line-number'><a name='L2314' href='#L2314'><pre>2314</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2315' href='#L2315'><pre>2315</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2316' href='#L2316'><pre>2316</pre></a></td><td class='covered-line'><pre>102</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2317' href='#L2317'><pre>2317</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2318' href='#L2318'><pre>2318</pre></a></td><td class='covered-line'><pre>102</pre></td><td class='code'><pre> let parameter_value = &parameter_value[1..parameter_value.len() - 1];</pre></td></tr><tr><td class='line-number'><a name='L2319' href='#L2319'><pre>2319</pre></a></td><td class='covered-line'><pre>102</pre></td><td class='code'><pre> Ok(parameter_value)</pre></td></tr><tr><td class='line-number'><a name='L2320' href='#L2320'><pre>2320</pre></a></td><td class='covered-line'><pre>105</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L2321' href='#L2321'><pre>2321</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2322' href='#L2322'><pre>2322</pre></a></td><td class='covered-line'><pre>39</pre></td><td class='code'><pre>fn parse_quoted_converted_value<'a, T>(</pre></td></tr><tr><td class='line-number'><a name='L2323' href='#L2323'><pre>2323</pre></a></td><td class='covered-line'><pre>39</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L2324' href='#L2324'><pre>2324</pre></a></td><td class='covered-line'><pre>39</pre></td><td class='code'><pre> line_type: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L2325' href='#L2325'><pre>2325</pre></a></td><td class='covered-line'><pre>39</pre></td><td class='code'><pre>) -> Result<T, ErrorDetails<'a, ProjectErrorKind<'a>>></pre></td></tr><tr><td class='line-number'><a name='L2326' href='#L2326'><pre>2326</pre></a></td><td class='covered-line'><pre>39</pre></td><td class='code'><pre>where</pre></td></tr><tr><td class='line-number'><a name='L2327' href='#L2327'><pre>2327</pre></a></td><td class='covered-line'><pre>39</pre></td><td class='code'><pre> T: TryFrom<&'a str, Error = String> + 'a + IntoEnumIterator + EnumMessage + Debug,</pre></td></tr><tr><td class='line-number'><a name='L2328' href='#L2328'><pre>2328</pre></a></td><td class='skipped-line'></td><td class='code'><pre>{</pre></td></tr><tr><td class='line-number'><a name='L2329' href='#L2329'><pre>2329</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // This function is used to parse a quoted value that is expected to be</pre></td></tr><tr><td class='line-number'><a name='L2330' href='#L2330'><pre>2330</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // converted into an enum value through TryFrom.</pre></td></tr><tr><td class='line-number'><a name='L2331' href='#L2331'><pre>2331</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // This kind of line starts with the line_type followed by '=', and a</pre></td></tr><tr><td class='line-number'><a name='L2332' href='#L2332'><pre>2332</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // quoted value.</pre></td></tr><tr><td class='line-number'><a name='L2333' href='#L2333'><pre>2333</pre></a></td><td class='covered-line'><pre>39</pre></td><td class='code'><pre> let parameter_start = input.offset();</pre></td></tr><tr><td class='line-number'><a name='L2334' href='#L2334'><pre>2334</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2335' href='#L2335'><pre>2335</pre></a></td><td class='covered-line'><pre>39</pre></td><td class='code'><pre> let text_to_newline = input.take_until_newline();</pre></td></tr><tr><td class='line-number'><a name='L2336' href='#L2336'><pre>2336</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2337' href='#L2337'><pre>2337</pre></a></td><td class='covered-line'><pre>39</pre></td><td class='code'><pre> let parameter_value = match text_to_newline {</pre></td></tr><tr><td class='line-number'><a name='L2338' href='#L2338'><pre>2338</pre></a></td><td class='skipped-line'></td><td class='code'><pre> None => {</pre></td></tr><tr><td class='line-number'><a name='L2339' href='#L2339'><pre>2339</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No type text found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2340' href='#L2340'><pre>2340</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // Go to the next line and return the error.</pre></td></tr><tr><td class='line-number'><a name='L2341' href='#L2341'><pre>2341</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2342' href='#L2342'><pre>2342</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>parameter_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2343' href='#L2343'><pre>2343</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ParameterValueMissingOpeningQuote {</span></pre></td></tr><tr><td class='line-number'><a name='L2344' href='#L2344'><pre>2344</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> parameter_line_name: line_type,</span></pre></td></tr><tr><td class='line-number'><a name='L2345' href='#L2345'><pre>2345</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span>,</pre></td></tr><tr><td class='line-number'><a name='L2346' href='#L2346'><pre>2346</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2347' href='#L2347'><pre>2347</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2348' href='#L2348'><pre>2348</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2349' href='#L2349'><pre>2349</pre></a></td><td class='covered-line'><pre>39</pre></td><td class='code'><pre> Some((parameter_value, _)) => parameter_value,</pre></td></tr><tr><td class='line-number'><a name='L2350' href='#L2350'><pre>2350</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2351' href='#L2351'><pre>2351</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2352' href='#L2352'><pre>2352</pre></a></td><td class='covered-line'><pre>39</pre></td><td class='code'><pre> let start_quote_found = parameter_value.starts_with('"');</pre></td></tr><tr><td class='line-number'><a name='L2353' href='#L2353'><pre>2353</pre></a></td><td class='covered-line'><pre>39</pre></td><td class='code'><pre> let end_quote_found = parameter_value.ends_with('"');</pre></td></tr><tr><td class='line-number'><a name='L2354' href='#L2354'><pre>2354</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2355' href='#L2355'><pre>2355</pre></a></td><td class='covered-line'><pre>39</pre></td><td class='code'><pre> if !start_quote_found && <div class='tooltip'><span class='region red'>end_quote_found</span><span class='tooltip-content'>0</span></div> {</pre></td></tr><tr><td class='line-number'><a name='L2356' href='#L2356'><pre>2356</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // The value ends with a quote but does not start with one.</pre></td></tr><tr><td class='line-number'><a name='L2357' href='#L2357'><pre>2357</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // This is an error, so we return an error.</pre></td></tr><tr><td class='line-number'><a name='L2358' href='#L2358'><pre>2358</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2359' href='#L2359'><pre>2359</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>parameter_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2360' href='#L2360'><pre>2360</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ParameterValueMissingOpeningQuote {</span></pre></td></tr><tr><td class='line-number'><a name='L2361' href='#L2361'><pre>2361</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> parameter_line_name: line_type,</span></pre></td></tr><tr><td class='line-number'><a name='L2362' href='#L2362'><pre>2362</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span>,</pre></td></tr><tr><td class='line-number'><a name='L2363' href='#L2363'><pre>2363</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2364' href='#L2364'><pre>2364</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2365' href='#L2365'><pre>2365</pre></a></td><td class='covered-line'><pre>39</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2366' href='#L2366'><pre>2366</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2367' href='#L2367'><pre>2367</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // we have to check the length like this because if we have only a single</pre></td></tr><tr><td class='line-number'><a name='L2368' href='#L2368'><pre>2368</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // quote, then obviously the string both starts and ends with a quote (even</pre></td></tr><tr><td class='line-number'><a name='L2369' href='#L2369'><pre>2369</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // if that is the same character!) which means we still need to report this</pre></td></tr><tr><td class='line-number'><a name='L2370' href='#L2370'><pre>2370</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // failure case.</pre></td></tr><tr><td class='line-number'><a name='L2371' href='#L2371'><pre>2371</pre></a></td><td class='covered-line'><pre>39</pre></td><td class='code'><pre> let start_without_end = start_quote_found && !end_quote_found;</pre></td></tr><tr><td class='line-number'><a name='L2372' href='#L2372'><pre>2372</pre></a></td><td class='covered-line'><pre>39</pre></td><td class='code'><pre> let start_with_parameter_length_one = start_quote_found && parameter_value.len() == 1;</pre></td></tr><tr><td class='line-number'><a name='L2373' href='#L2373'><pre>2373</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2374' href='#L2374'><pre>2374</pre></a></td><td class='covered-line'><pre>39</pre></td><td class='code'><pre> if start_without_end || start_with_parameter_length_one {</pre></td></tr><tr><td class='line-number'><a name='L2375' href='#L2375'><pre>2375</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // The value starts with a quote but does not end with one.</pre></td></tr><tr><td class='line-number'><a name='L2376' href='#L2376'><pre>2376</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // This is an error, so we return an error.</pre></td></tr><tr><td class='line-number'><a name='L2377' href='#L2377'><pre>2377</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2378' href='#L2378'><pre>2378</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>parameter_start</span><span class='region red'> + parameter_value.len()</span>,</pre></td></tr><tr><td class='line-number'><a name='L2379' href='#L2379'><pre>2379</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ParameterValueMissingMatchingQuote {</span></pre></td></tr><tr><td class='line-number'><a name='L2380' href='#L2380'><pre>2380</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> parameter_line_name: line_type,</span></pre></td></tr><tr><td class='line-number'><a name='L2381' href='#L2381'><pre>2381</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span>,</pre></td></tr><tr><td class='line-number'><a name='L2382' href='#L2382'><pre>2382</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2383' href='#L2383'><pre>2383</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2384' href='#L2384'><pre>2384</pre></a></td><td class='covered-line'><pre>39</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2385' href='#L2385'><pre>2385</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2386' href='#L2386'><pre>2386</pre></a></td><td class='covered-line'><pre>39</pre></td><td class='code'><pre> if !start_quote_found && <div class='tooltip'><span class='region red'>!end_quote_found</span><span class='tooltip-content'>0</span></div> {</pre></td></tr><tr><td class='line-number'><a name='L2387' href='#L2387'><pre>2387</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // The value does not start or end with a quote.</pre></td></tr><tr><td class='line-number'><a name='L2388' href='#L2388'><pre>2388</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // This is an error, so we return an error.</pre></td></tr><tr><td class='line-number'><a name='L2389' href='#L2389'><pre>2389</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2390' href='#L2390'><pre>2390</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>parameter_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2391' href='#L2391'><pre>2391</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ParameterValueMissingQuotes {</span></pre></td></tr><tr><td class='line-number'><a name='L2392' href='#L2392'><pre>2392</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> parameter_line_name: line_type,</span></pre></td></tr><tr><td class='line-number'><a name='L2393' href='#L2393'><pre>2393</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span>,</pre></td></tr><tr><td class='line-number'><a name='L2394' href='#L2394'><pre>2394</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2395' href='#L2395'><pre>2395</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2396' href='#L2396'><pre>2396</pre></a></td><td class='covered-line'><pre>39</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2397' href='#L2397'><pre>2397</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2398' href='#L2398'><pre>2398</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // trim off the quote characters.</pre></td></tr><tr><td class='line-number'><a name='L2399' href='#L2399'><pre>2399</pre></a></td><td class='covered-line'><pre>39</pre></td><td class='code'><pre> let parameter_value = &parameter_value[1..parameter_value.len() - 1];</pre></td></tr><tr><td class='line-number'><a name='L2400' href='#L2400'><pre>2400</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2401' href='#L2401'><pre>2401</pre></a></td><td class='covered-line'><pre>39</pre></td><td class='code'><pre> let Ok(<div class='tooltip'>value<span class='tooltip-content'>38</span></div>) = T::try_from(parameter_value) else {</pre></td></tr><tr><td class='line-number'><a name='L2402' href='#L2402'><pre>2402</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // We have a parameter value that is invalid, so we return an error.</pre></td></tr><tr><td class='line-number'><a name='L2403' href='#L2403'><pre>2403</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let valid_value_message = T::iter()</pre></td></tr><tr><td class='line-number'><a name='L2404' href='#L2404'><pre>2404</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> .<div class='tooltip'>map<span class='tooltip-content'>1</span></div>(|v| format!("'{:?}' ({:#?})", v, v.get_message()))</pre></td></tr><tr><td class='line-number'><a name='L2405' href='#L2405'><pre>2405</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> .collect::<Vec<_>>()</pre></td></tr><tr><td class='line-number'><a name='L2406' href='#L2406'><pre>2406</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> .join(", ");</pre></td></tr><tr><td class='line-number'><a name='L2407' href='#L2407'><pre>2407</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2408' href='#L2408'><pre>2408</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let fail = input.generate_error_at(</pre></td></tr><tr><td class='line-number'><a name='L2409' href='#L2409'><pre>2409</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> parameter_start,</pre></td></tr><tr><td class='line-number'><a name='L2410' href='#L2410'><pre>2410</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> ProjectErrorKind::ParameterValueInvalid {</pre></td></tr><tr><td class='line-number'><a name='L2411' href='#L2411'><pre>2411</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> parameter_line_name: line_type,</pre></td></tr><tr><td class='line-number'><a name='L2412' href='#L2412'><pre>2412</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> invalid_value: parameter_value,</pre></td></tr><tr><td class='line-number'><a name='L2413' href='#L2413'><pre>2413</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> valid_value_message,</pre></td></tr><tr><td class='line-number'><a name='L2414' href='#L2414'><pre>2414</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> },</pre></td></tr><tr><td class='line-number'><a name='L2415' href='#L2415'><pre>2415</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2416' href='#L2416'><pre>2416</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> return Err(fail);</pre></td></tr><tr><td class='line-number'><a name='L2417' href='#L2417'><pre>2417</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2418' href='#L2418'><pre>2418</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2419' href='#L2419'><pre>2419</pre></a></td><td class='covered-line'><pre>38</pre></td><td class='code'><pre> Ok(value)</pre></td></tr><tr><td class='line-number'><a name='L2420' href='#L2420'><pre>2420</pre></a></td><td class='covered-line'><pre>39</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L2421' href='#L2421'><pre>2421</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2422' href='#L2422'><pre>2422</pre></a></td><td class='covered-line'><pre>503</pre></td><td class='code'><pre>fn parse_converted_value<'a, T>(</pre></td></tr><tr><td class='line-number'><a name='L2423' href='#L2423'><pre>2423</pre></a></td><td class='covered-line'><pre>503</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L2424' href='#L2424'><pre>2424</pre></a></td><td class='covered-line'><pre>503</pre></td><td class='code'><pre> line_type: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L2425' href='#L2425'><pre>2425</pre></a></td><td class='covered-line'><pre>503</pre></td><td class='code'><pre>) -> Result<T, ErrorDetails<'a, ProjectErrorKind<'a>>></pre></td></tr><tr><td class='line-number'><a name='L2426' href='#L2426'><pre>2426</pre></a></td><td class='covered-line'><pre>503</pre></td><td class='code'><pre>where</pre></td></tr><tr><td class='line-number'><a name='L2427' href='#L2427'><pre>2427</pre></a></td><td class='covered-line'><pre>503</pre></td><td class='code'><pre> T: TryFrom<&'a str, Error = String> + IntoEnumIterator + EnumMessage + Debug,</pre></td></tr><tr><td class='line-number'><a name='L2428' href='#L2428'><pre>2428</pre></a></td><td class='skipped-line'></td><td class='code'><pre>{</pre></td></tr><tr><td class='line-number'><a name='L2429' href='#L2429'><pre>2429</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // This function is used to parse a value that is expected to be</pre></td></tr><tr><td class='line-number'><a name='L2430' href='#L2430'><pre>2430</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // converted into an enum value through TryFrom.</pre></td></tr><tr><td class='line-number'><a name='L2431' href='#L2431'><pre>2431</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // This kind of line starts with the line_type followed by '=', and a</pre></td></tr><tr><td class='line-number'><a name='L2432' href='#L2432'><pre>2432</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // value.</pre></td></tr><tr><td class='line-number'><a name='L2433' href='#L2433'><pre>2433</pre></a></td><td class='covered-line'><pre>503</pre></td><td class='code'><pre> let parameter_start = input.offset();</pre></td></tr><tr><td class='line-number'><a name='L2434' href='#L2434'><pre>2434</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2435' href='#L2435'><pre>2435</pre></a></td><td class='covered-line'><pre>503</pre></td><td class='code'><pre> let text_to_newline = input.take_until_newline();</pre></td></tr><tr><td class='line-number'><a name='L2436' href='#L2436'><pre>2436</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2437' href='#L2437'><pre>2437</pre></a></td><td class='covered-line'><pre>503</pre></td><td class='code'><pre> let parameter_value = match text_to_newline {</pre></td></tr><tr><td class='line-number'><a name='L2438' href='#L2438'><pre>2438</pre></a></td><td class='skipped-line'></td><td class='code'><pre> None => {</pre></td></tr><tr><td class='line-number'><a name='L2439' href='#L2439'><pre>2439</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No type text found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2440' href='#L2440'><pre>2440</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // Go to the next line and return the error.</pre></td></tr><tr><td class='line-number'><a name='L2441' href='#L2441'><pre>2441</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2442' href='#L2442'><pre>2442</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>parameter_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2443' href='#L2443'><pre>2443</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ParameterValueMissingOpeningQuote {</span></pre></td></tr><tr><td class='line-number'><a name='L2444' href='#L2444'><pre>2444</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> parameter_line_name: line_type,</span></pre></td></tr><tr><td class='line-number'><a name='L2445' href='#L2445'><pre>2445</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span>,</pre></td></tr><tr><td class='line-number'><a name='L2446' href='#L2446'><pre>2446</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2447' href='#L2447'><pre>2447</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2448' href='#L2448'><pre>2448</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2449' href='#L2449'><pre>2449</pre></a></td><td class='covered-line'><pre>503</pre></td><td class='code'><pre> Some((parameter_value, _)) => parameter_value,</pre></td></tr><tr><td class='line-number'><a name='L2450' href='#L2450'><pre>2450</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2451' href='#L2451'><pre>2451</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2452' href='#L2452'><pre>2452</pre></a></td><td class='covered-line'><pre>503</pre></td><td class='code'><pre> let Ok(<div class='tooltip'>value<span class='tooltip-content'>502</span></div>) = T::try_from(parameter_value) else {</pre></td></tr><tr><td class='line-number'><a name='L2453' href='#L2453'><pre>2453</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // We have a parameter value that is invalid, so we return an error.</pre></td></tr><tr><td class='line-number'><a name='L2454' href='#L2454'><pre>2454</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2455' href='#L2455'><pre>2455</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let valid_value_message = T::iter()</pre></td></tr><tr><td class='line-number'><a name='L2456' href='#L2456'><pre>2456</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> .<div class='tooltip'>map<span class='tooltip-content'>1</span></div>(|v| format!("'{:?}' ({})", v, v.get_message().unwrap()))</pre></td></tr><tr><td class='line-number'><a name='L2457' href='#L2457'><pre>2457</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> .collect::<Vec<_>>()</pre></td></tr><tr><td class='line-number'><a name='L2458' href='#L2458'><pre>2458</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> .join(", ");</pre></td></tr><tr><td class='line-number'><a name='L2459' href='#L2459'><pre>2459</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2460' href='#L2460'><pre>2460</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let fail = input.generate_error_at(</pre></td></tr><tr><td class='line-number'><a name='L2461' href='#L2461'><pre>2461</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> parameter_start,</pre></td></tr><tr><td class='line-number'><a name='L2462' href='#L2462'><pre>2462</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> ProjectErrorKind::ParameterValueInvalid {</pre></td></tr><tr><td class='line-number'><a name='L2463' href='#L2463'><pre>2463</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> parameter_line_name: line_type,</pre></td></tr><tr><td class='line-number'><a name='L2464' href='#L2464'><pre>2464</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> invalid_value: parameter_value,</pre></td></tr><tr><td class='line-number'><a name='L2465' href='#L2465'><pre>2465</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> valid_value_message,</pre></td></tr><tr><td class='line-number'><a name='L2466' href='#L2466'><pre>2466</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> },</pre></td></tr><tr><td class='line-number'><a name='L2467' href='#L2467'><pre>2467</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2468' href='#L2468'><pre>2468</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> return Err(fail);</pre></td></tr><tr><td class='line-number'><a name='L2469' href='#L2469'><pre>2469</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2470' href='#L2470'><pre>2470</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2471' href='#L2471'><pre>2471</pre></a></td><td class='covered-line'><pre>502</pre></td><td class='code'><pre> Ok(value)</pre></td></tr><tr><td class='line-number'><a name='L2472' href='#L2472'><pre>2472</pre></a></td><td class='covered-line'><pre>503</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L2473' href='#L2473'><pre>2473</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2474' href='#L2474'><pre>2474</pre></a></td><td class='covered-line'><pre>245</pre></td><td class='code'><pre>fn parse_numeric<'a, T>(</pre></td></tr><tr><td class='line-number'><a name='L2475' href='#L2475'><pre>2475</pre></a></td><td class='covered-line'><pre>245</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L2476' href='#L2476'><pre>2476</pre></a></td><td class='covered-line'><pre>245</pre></td><td class='code'><pre> line_type: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L2477' href='#L2477'><pre>2477</pre></a></td><td class='covered-line'><pre>245</pre></td><td class='code'><pre>) -> Result<T, ErrorDetails<'a, ProjectErrorKind<'a>>></pre></td></tr><tr><td class='line-number'><a name='L2478' href='#L2478'><pre>2478</pre></a></td><td class='covered-line'><pre>245</pre></td><td class='code'><pre>where</pre></td></tr><tr><td class='line-number'><a name='L2479' href='#L2479'><pre>2479</pre></a></td><td class='covered-line'><pre>245</pre></td><td class='code'><pre> T: FromStr,</pre></td></tr><tr><td class='line-number'><a name='L2480' href='#L2480'><pre>2480</pre></a></td><td class='skipped-line'></td><td class='code'><pre>{</pre></td></tr><tr><td class='line-number'><a name='L2481' href='#L2481'><pre>2481</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // This function is used to parse a value that is expected to be</pre></td></tr><tr><td class='line-number'><a name='L2482' href='#L2482'><pre>2482</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // converted into a value through TryFrom.</pre></td></tr><tr><td class='line-number'><a name='L2483' href='#L2483'><pre>2483</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // This kind of line starts with the line_type followed by '=', and a</pre></td></tr><tr><td class='line-number'><a name='L2484' href='#L2484'><pre>2484</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // value.</pre></td></tr><tr><td class='line-number'><a name='L2485' href='#L2485'><pre>2485</pre></a></td><td class='covered-line'><pre>245</pre></td><td class='code'><pre> let parameter_start = input.offset();</pre></td></tr><tr><td class='line-number'><a name='L2486' href='#L2486'><pre>2486</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2487' href='#L2487'><pre>2487</pre></a></td><td class='covered-line'><pre>245</pre></td><td class='code'><pre> let text_to_newline = input.take_until_newline();</pre></td></tr><tr><td class='line-number'><a name='L2488' href='#L2488'><pre>2488</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2489' href='#L2489'><pre>2489</pre></a></td><td class='covered-line'><pre>245</pre></td><td class='code'><pre> let parameter_value = match text_to_newline {</pre></td></tr><tr><td class='line-number'><a name='L2490' href='#L2490'><pre>2490</pre></a></td><td class='skipped-line'></td><td class='code'><pre> None => {</pre></td></tr><tr><td class='line-number'><a name='L2491' href='#L2491'><pre>2491</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No type text found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2492' href='#L2492'><pre>2492</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // Go to the next line and return the error.</pre></td></tr><tr><td class='line-number'><a name='L2493' href='#L2493'><pre>2493</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2494' href='#L2494'><pre>2494</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>parameter_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2495' href='#L2495'><pre>2495</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ParameterValueMissingOpeningQuote {</span></pre></td></tr><tr><td class='line-number'><a name='L2496' href='#L2496'><pre>2496</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> parameter_line_name: line_type,</span></pre></td></tr><tr><td class='line-number'><a name='L2497' href='#L2497'><pre>2497</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span>,</pre></td></tr><tr><td class='line-number'><a name='L2498' href='#L2498'><pre>2498</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2499' href='#L2499'><pre>2499</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2500' href='#L2500'><pre>2500</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2501' href='#L2501'><pre>2501</pre></a></td><td class='covered-line'><pre>245</pre></td><td class='code'><pre> Some((parameter_value, _)) => parameter_value,</pre></td></tr><tr><td class='line-number'><a name='L2502' href='#L2502'><pre>2502</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2503' href='#L2503'><pre>2503</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2504' href='#L2504'><pre>2504</pre></a></td><td class='covered-line'><pre>245</pre></td><td class='code'><pre> let Ok(value) = parameter_value.parse::<T>() else {</pre></td></tr><tr><td class='line-number'><a name='L2505' href='#L2505'><pre>2505</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // We have a parameter value that is invalid, so we return an error.</pre></td></tr><tr><td class='line-number'><a name='L2506' href='#L2506'><pre>2506</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>valid_value_message</span> = <span class='region red'>format!</span>(</pre></td></tr><tr><td class='line-number'><a name='L2507' href='#L2507'><pre>2507</pre></a></td><td class='skipped-line'></td><td class='code'><pre> "Failed attempting to parse as {0}. '{parameter_value}' is not a valid {0}",</pre></td></tr><tr><td class='line-number'><a name='L2508' href='#L2508'><pre>2508</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>std::any::type_name::<T></span>()</pre></td></tr><tr><td class='line-number'><a name='L2509' href='#L2509'><pre>2509</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2510' href='#L2510'><pre>2510</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2511' href='#L2511'><pre>2511</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2512' href='#L2512'><pre>2512</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>parameter_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2513' href='#L2513'><pre>2513</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ParameterValueInvalid {</span></pre></td></tr><tr><td class='line-number'><a name='L2514' href='#L2514'><pre>2514</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> parameter_line_name: </span><span class='region red'>line_type</span><span class='region red'>,</span></pre></td></tr><tr><td class='line-number'><a name='L2515' href='#L2515'><pre>2515</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> invalid_value: parameter_value,</span></pre></td></tr><tr><td class='line-number'><a name='L2516' href='#L2516'><pre>2516</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> valid_value_message,</span></pre></td></tr><tr><td class='line-number'><a name='L2517' href='#L2517'><pre>2517</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span>,</pre></td></tr><tr><td class='line-number'><a name='L2518' href='#L2518'><pre>2518</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2519' href='#L2519'><pre>2519</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2520' href='#L2520'><pre>2520</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2521' href='#L2521'><pre>2521</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2522' href='#L2522'><pre>2522</pre></a></td><td class='covered-line'><pre>245</pre></td><td class='code'><pre> Ok(value)</pre></td></tr><tr><td class='line-number'><a name='L2523' href='#L2523'><pre>2523</pre></a></td><td class='covered-line'><pre>245</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L2524' href='#L2524'><pre>2524</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2525' href='#L2525'><pre>2525</pre></a></td><td class='covered-line'><pre>53</pre></td><td class='code'><pre>fn parse_reference<'a>(</pre></td></tr><tr><td class='line-number'><a name='L2526' href='#L2526'><pre>2526</pre></a></td><td class='covered-line'><pre>53</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L2527' href='#L2527'><pre>2527</pre></a></td><td class='covered-line'><pre>53</pre></td><td class='code'><pre>) -> Result<ProjectReference<'a>, ErrorDetails<'a, ProjectErrorKind<'a>>> {</pre></td></tr><tr><td class='line-number'><a name='L2528' href='#L2528'><pre>2528</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // A Reference line starts with a 'Reference=' and is followed by either a</pre></td></tr><tr><td class='line-number'><a name='L2529' href='#L2529'><pre>2529</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // project reference or a compiled reference.</pre></td></tr><tr><td class='line-number'><a name='L2530' href='#L2530'><pre>2530</pre></a></td><td class='skipped-line'></td><td class='code'><pre> //</pre></td></tr><tr><td class='line-number'><a name='L2531' href='#L2531'><pre>2531</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // By this point in the parse the "Reference=" component should be stripped off</pre></td></tr><tr><td class='line-number'><a name='L2532' href='#L2532'><pre>2532</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // since that is how we knew to use this particular parse.</pre></td></tr><tr><td class='line-number'><a name='L2533' href='#L2533'><pre>2533</pre></a></td><td class='covered-line'><pre>53</pre></td><td class='code'><pre> let reference_start = input.offset();</pre></td></tr><tr><td class='line-number'><a name='L2534' href='#L2534'><pre>2534</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2535' href='#L2535'><pre>2535</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // Compiled references start with "*\\G{" and are followed by a UUID.</pre></td></tr><tr><td class='line-number'><a name='L2536' href='#L2536'><pre>2536</pre></a></td><td class='covered-line'><pre>53</pre></td><td class='code'><pre> let compiled_reference_signature = "*\\G{";</pre></td></tr><tr><td class='line-number'><a name='L2537' href='#L2537'><pre>2537</pre></a></td><td class='covered-line'><pre>53</pre></td><td class='code'><pre> if input.peek(compiled_reference_signature.len()) == Some(compiled_reference_signature) {</pre></td></tr><tr><td class='line-number'><a name='L2538' href='#L2538'><pre>2538</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre> let _ = input.take(compiled_reference_signature, Comparator::CaseSensitive);</pre></td></tr><tr><td class='line-number'><a name='L2539' href='#L2539'><pre>2539</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // This is a compiled reference.</pre></td></tr><tr><td class='line-number'><a name='L2540' href='#L2540'><pre>2540</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre> return parse_compiled_reference(input);</pre></td></tr><tr><td class='line-number'><a name='L2541' href='#L2541'><pre>2541</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2542' href='#L2542'><pre>2542</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2543' href='#L2543'><pre>2543</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // This is a project reference, but not a compiled reference.</pre></td></tr><tr><td class='line-number'><a name='L2544' href='#L2544'><pre>2544</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let Some((path, _)) = input.take_until_newline() else {</pre></td></tr><tr><td class='line-number'><a name='L2545' href='#L2545'><pre>2545</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No path found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2546' href='#L2546'><pre>2546</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2547' href='#L2547'><pre>2547</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>reference_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2548' href='#L2548'><pre>2548</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ReferenceProjectPathNotFound</span>,</pre></td></tr><tr><td class='line-number'><a name='L2549' href='#L2549'><pre>2549</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2550' href='#L2550'><pre>2550</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2551' href='#L2551'><pre>2551</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2552' href='#L2552'><pre>2552</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2553' href='#L2553'><pre>2553</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> if path.is_empty() {</pre></td></tr><tr><td class='line-number'><a name='L2554' href='#L2554'><pre>2554</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No path found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2555' href='#L2555'><pre>2555</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2556' href='#L2556'><pre>2556</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>reference_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2557' href='#L2557'><pre>2557</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ReferenceProjectPathNotFound</span>,</pre></td></tr><tr><td class='line-number'><a name='L2558' href='#L2558'><pre>2558</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2559' href='#L2559'><pre>2559</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2560' href='#L2560'><pre>2560</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2561' href='#L2561'><pre>2561</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2562' href='#L2562'><pre>2562</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> if !path.starts_with("*\\A") {</pre></td></tr><tr><td class='line-number'><a name='L2563' href='#L2563'><pre>2563</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // The path does not start with "*\A", which is not allowed.</pre></td></tr><tr><td class='line-number'><a name='L2564' href='#L2564'><pre>2564</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2565' href='#L2565'><pre>2565</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>reference_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2566' href='#L2566'><pre>2566</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ReferenceProjectPathInvalid { value: path }</span>,</pre></td></tr><tr><td class='line-number'><a name='L2567' href='#L2567'><pre>2567</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2568' href='#L2568'><pre>2568</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2569' href='#L2569'><pre>2569</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2570' href='#L2570'><pre>2570</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2571' href='#L2571'><pre>2571</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let path = &path[3..]; // Strip off the "*\A" prefix</pre></td></tr><tr><td class='line-number'><a name='L2572' href='#L2572'><pre>2572</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2573' href='#L2573'><pre>2573</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Ok(ProjectReference::SubProject { path })</pre></td></tr><tr><td class='line-number'><a name='L2574' href='#L2574'><pre>2574</pre></a></td><td class='covered-line'><pre>53</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L2575' href='#L2575'><pre>2575</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2576' href='#L2576'><pre>2576</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre>fn parse_compiled_reference<'a>(</pre></td></tr><tr><td class='line-number'><a name='L2577' href='#L2577'><pre>2577</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L2578' href='#L2578'><pre>2578</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre>) -> Result<ProjectReference<'a>, ErrorDetails<'a, ProjectErrorKind<'a>>> {</pre></td></tr><tr><td class='line-number'><a name='L2579' href='#L2579'><pre>2579</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // A compiled reference starts with "*\\G{" and is followed by a UUID.</pre></td></tr><tr><td class='line-number'><a name='L2580' href='#L2580'><pre>2580</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // We have already checked that the input starts with "*\\G{".</pre></td></tr><tr><td class='line-number'><a name='L2581' href='#L2581'><pre>2581</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // By this point in the parse the "*\\G{" component should be stripped off.</pre></td></tr><tr><td class='line-number'><a name='L2582' href='#L2582'><pre>2582</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre> let uuid_start = input.offset();</pre></td></tr><tr><td class='line-number'><a name='L2583' href='#L2583'><pre>2583</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2584' href='#L2584'><pre>2584</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // This is a compiled reference.</pre></td></tr><tr><td class='line-number'><a name='L2585' href='#L2585'><pre>2585</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre> let Some((uuid_text, _)) = input.take_until("}#", Comparator::CaseSensitive) else {</pre></td></tr><tr><td class='line-number'><a name='L2586' href='#L2586'><pre>2586</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No UUID found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2587' href='#L2587'><pre>2587</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2588' href='#L2588'><pre>2588</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>uuid_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2589' href='#L2589'><pre>2589</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ReferenceCompiledUuidMissingMatchingBrace</span>,</pre></td></tr><tr><td class='line-number'><a name='L2590' href='#L2590'><pre>2590</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2591' href='#L2591'><pre>2591</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>input</span>.<span class='region red'>forward_to_next_line</span>();</pre></td></tr><tr><td class='line-number'><a name='L2592' href='#L2592'><pre>2592</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2593' href='#L2593'><pre>2593</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2594' href='#L2594'><pre>2594</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2595' href='#L2595'><pre>2595</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2596' href='#L2596'><pre>2596</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre> let Ok(uuid) = Uuid::parse_str(uuid_text) else {</pre></td></tr><tr><td class='line-number'><a name='L2597' href='#L2597'><pre>2597</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // The UUID is not a valid UUID, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2598' href='#L2598'><pre>2598</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> =</pre></td></tr><tr><td class='line-number'><a name='L2599' href='#L2599'><pre>2599</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(<span class='region red'>uuid_start</span>, <span class='region red'>ProjectErrorKind::ReferenceCompiledUuidInvalid</span>);</pre></td></tr><tr><td class='line-number'><a name='L2600' href='#L2600'><pre>2600</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>input</span>.<span class='region red'>forward_to_next_line</span>();</pre></td></tr><tr><td class='line-number'><a name='L2601' href='#L2601'><pre>2601</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2602' href='#L2602'><pre>2602</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2603' href='#L2603'><pre>2603</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2604' href='#L2604'><pre>2604</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2605' href='#L2605'><pre>2605</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre> let _ = input.take("}#", Comparator::CaseSensitive);</pre></td></tr><tr><td class='line-number'><a name='L2606' href='#L2606'><pre>2606</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre> let unknown1_start = input.offset();</pre></td></tr><tr><td class='line-number'><a name='L2607' href='#L2607'><pre>2607</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2608' href='#L2608'><pre>2608</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre> let Some((unknown1, _)) = input.take_until("#", Comparator::CaseSensitive) else {</pre></td></tr><tr><td class='line-number'><a name='L2609' href='#L2609'><pre>2609</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No unknown1 found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2610' href='#L2610'><pre>2610</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2611' href='#L2611'><pre>2611</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>unknown1_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2612' href='#L2612'><pre>2612</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ReferenceCompiledUnknown1Missing</span>,</pre></td></tr><tr><td class='line-number'><a name='L2613' href='#L2613'><pre>2613</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2614' href='#L2614'><pre>2614</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>input</span>.<span class='region red'>forward_to_next_line</span>();</pre></td></tr><tr><td class='line-number'><a name='L2615' href='#L2615'><pre>2615</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2616' href='#L2616'><pre>2616</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2617' href='#L2617'><pre>2617</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2618' href='#L2618'><pre>2618</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2619' href='#L2619'><pre>2619</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre> let _ = input.take("#", Comparator::CaseSensitive);</pre></td></tr><tr><td class='line-number'><a name='L2620' href='#L2620'><pre>2620</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre> let unknown2_start = input.offset();</pre></td></tr><tr><td class='line-number'><a name='L2621' href='#L2621'><pre>2621</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2622' href='#L2622'><pre>2622</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre> let Some((unknown2, _)) = input.take_until("#", Comparator::CaseSensitive) else {</pre></td></tr><tr><td class='line-number'><a name='L2623' href='#L2623'><pre>2623</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No unknown2 found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2624' href='#L2624'><pre>2624</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2625' href='#L2625'><pre>2625</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>unknown2_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2626' href='#L2626'><pre>2626</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ReferenceCompiledUnknown2Missing</span>,</pre></td></tr><tr><td class='line-number'><a name='L2627' href='#L2627'><pre>2627</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2628' href='#L2628'><pre>2628</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>input</span>.<span class='region red'>forward_to_next_line</span>();</pre></td></tr><tr><td class='line-number'><a name='L2629' href='#L2629'><pre>2629</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2630' href='#L2630'><pre>2630</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2631' href='#L2631'><pre>2631</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2632' href='#L2632'><pre>2632</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2633' href='#L2633'><pre>2633</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre> let _ = input.take("#", Comparator::CaseSensitive);</pre></td></tr><tr><td class='line-number'><a name='L2634' href='#L2634'><pre>2634</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre> let path_start = input.offset();</pre></td></tr><tr><td class='line-number'><a name='L2635' href='#L2635'><pre>2635</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2636' href='#L2636'><pre>2636</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre> let Some((path, _)) = input.take_until("#", Comparator::CaseSensitive) else {</pre></td></tr><tr><td class='line-number'><a name='L2637' href='#L2637'><pre>2637</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No path found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2638' href='#L2638'><pre>2638</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> =</pre></td></tr><tr><td class='line-number'><a name='L2639' href='#L2639'><pre>2639</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(<span class='region red'>path_start</span>, <span class='region red'>ProjectErrorKind::ReferenceCompiledPathNotFound</span>);</pre></td></tr><tr><td class='line-number'><a name='L2640' href='#L2640'><pre>2640</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>input</span>.<span class='region red'>forward_to_next_line</span>();</pre></td></tr><tr><td class='line-number'><a name='L2641' href='#L2641'><pre>2641</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2642' href='#L2642'><pre>2642</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2643' href='#L2643'><pre>2643</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2644' href='#L2644'><pre>2644</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2645' href='#L2645'><pre>2645</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre> let _ = input.take("#", Comparator::CaseSensitive);</pre></td></tr><tr><td class='line-number'><a name='L2646' href='#L2646'><pre>2646</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre> let description_start = input.offset();</pre></td></tr><tr><td class='line-number'><a name='L2647' href='#L2647'><pre>2647</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2648' href='#L2648'><pre>2648</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre> let Some((description, _)) = input.take_until_newline() else {</pre></td></tr><tr><td class='line-number'><a name='L2649' href='#L2649'><pre>2649</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No description found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2650' href='#L2650'><pre>2650</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2651' href='#L2651'><pre>2651</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>description_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2652' href='#L2652'><pre>2652</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ReferenceCompiledDescriptionNotFound</span>,</pre></td></tr><tr><td class='line-number'><a name='L2653' href='#L2653'><pre>2653</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2654' href='#L2654'><pre>2654</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2655' href='#L2655'><pre>2655</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2656' href='#L2656'><pre>2656</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2657' href='#L2657'><pre>2657</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre> if description.contains('#') {</pre></td></tr><tr><td class='line-number'><a name='L2658' href='#L2658'><pre>2658</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // The description contains a '#', which is not allowed.</pre></td></tr><tr><td class='line-number'><a name='L2659' href='#L2659'><pre>2659</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2660' href='#L2660'><pre>2660</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>description_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2661' href='#L2661'><pre>2661</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ReferenceCompiledDescriptionInvalid</span>,</pre></td></tr><tr><td class='line-number'><a name='L2662' href='#L2662'><pre>2662</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2663' href='#L2663'><pre>2663</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2664' href='#L2664'><pre>2664</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2665' href='#L2665'><pre>2665</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2666' href='#L2666'><pre>2666</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // We have a compiled reference.</pre></td></tr><tr><td class='line-number'><a name='L2667' href='#L2667'><pre>2667</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre> let reference = ProjectReference::Compiled {</pre></td></tr><tr><td class='line-number'><a name='L2668' href='#L2668'><pre>2668</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre> uuid,</pre></td></tr><tr><td class='line-number'><a name='L2669' href='#L2669'><pre>2669</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre> unknown1,</pre></td></tr><tr><td class='line-number'><a name='L2670' href='#L2670'><pre>2670</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre> unknown2,</pre></td></tr><tr><td class='line-number'><a name='L2671' href='#L2671'><pre>2671</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre> path,</pre></td></tr><tr><td class='line-number'><a name='L2672' href='#L2672'><pre>2672</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre> description,</pre></td></tr><tr><td class='line-number'><a name='L2673' href='#L2673'><pre>2673</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2674' href='#L2674'><pre>2674</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2675' href='#L2675'><pre>2675</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre> Ok(reference)</pre></td></tr><tr><td class='line-number'><a name='L2676' href='#L2676'><pre>2676</pre></a></td><td class='covered-line'><pre>52</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L2677' href='#L2677'><pre>2677</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2678' href='#L2678'><pre>2678</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre>fn parse_object<'a>(</pre></td></tr><tr><td class='line-number'><a name='L2679' href='#L2679'><pre>2679</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L2680' href='#L2680'><pre>2680</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre>) -> Result<ObjectReference, ErrorDetails<'a, ProjectErrorKind<'a>>> {</pre></td></tr><tr><td class='line-number'><a name='L2681' href='#L2681'><pre>2681</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // An Object line starts with an 'Object=' and is followed by either a</pre></td></tr><tr><td class='line-number'><a name='L2682' href='#L2682'><pre>2682</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // compiled object or a project object.</pre></td></tr><tr><td class='line-number'><a name='L2683' href='#L2683'><pre>2683</pre></a></td><td class='skipped-line'></td><td class='code'><pre> //</pre></td></tr><tr><td class='line-number'><a name='L2684' href='#L2684'><pre>2684</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // By this point in the parse the "Object=" component should be stripped off</pre></td></tr><tr><td class='line-number'><a name='L2685' href='#L2685'><pre>2685</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // since that is how we knew to use this particular parse.</pre></td></tr><tr><td class='line-number'><a name='L2686' href='#L2686'><pre>2686</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> let object_start = input.offset();</pre></td></tr><tr><td class='line-number'><a name='L2687' href='#L2687'><pre>2687</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2688' href='#L2688'><pre>2688</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // Project objects start with "\"*\\A" and are followed by the path to the</pre></td></tr><tr><td class='line-number'><a name='L2689' href='#L2689'><pre>2689</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // object ending with a single quote.</pre></td></tr><tr><td class='line-number'><a name='L2690' href='#L2690'><pre>2690</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // Usually this is a single file with a .vbp extension but we do not enforce that currently.</pre></td></tr><tr><td class='line-number'><a name='L2691' href='#L2691'><pre>2691</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> let project_object_signature = "\"*\\A";</pre></td></tr><tr><td class='line-number'><a name='L2692' href='#L2692'><pre>2692</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> if input.peek(project_object_signature.len()) == Some(project_object_signature) {</pre></td></tr><tr><td class='line-number'><a name='L2693' href='#L2693'><pre>2693</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let _ = <span class='region red'>input</span><span class='region red'>.</span><span class='region red'>take</span><span class='region red'>(project_object_signature, Comparator::CaseSensitive)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2694' href='#L2694'><pre>2694</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // This is a project object.</pre></td></tr><tr><td class='line-number'><a name='L2695' href='#L2695'><pre>2695</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>object_path_start</span> = <span class='region red'>input</span>.<span class='region red'>offset</span>();</pre></td></tr><tr><td class='line-number'><a name='L2696' href='#L2696'><pre>2696</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2697' href='#L2697'><pre>2697</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let Some((<span class='region red'>path</span>, _)) = <span class='region red'>input</span><span class='region red'>.take_until("\"", Comparator::CaseSensitive)</span> else {</pre></td></tr><tr><td class='line-number'><a name='L2698' href='#L2698'><pre>2698</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No path found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2699' href='#L2699'><pre>2699</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2700' href='#L2700'><pre>2700</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>object_path_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2701' href='#L2701'><pre>2701</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ObjectProjectPathNotFound</span>,</pre></td></tr><tr><td class='line-number'><a name='L2702' href='#L2702'><pre>2702</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2703' href='#L2703'><pre>2703</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>input</span>.<span class='region red'>forward_to_next_line</span>();</pre></td></tr><tr><td class='line-number'><a name='L2704' href='#L2704'><pre>2704</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2705' href='#L2705'><pre>2705</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2706' href='#L2706'><pre>2706</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2707' href='#L2707'><pre>2707</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>input</span>.<span class='region red'>forward_to_next_line</span>();</pre></td></tr><tr><td class='line-number'><a name='L2708' href='#L2708'><pre>2708</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2709' href='#L2709'><pre>2709</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Ok(ObjectReference::Project { path: path.into() })</span>;</pre></td></tr><tr><td class='line-number'><a name='L2710' href='#L2710'><pre>2710</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2711' href='#L2711'><pre>2711</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2712' href='#L2712'><pre>2712</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // It looks like we have a compiled object line instead. Hopefully.</pre></td></tr><tr><td class='line-number'><a name='L2713' href='#L2713'><pre>2713</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> if input.peek(1) != Some("{") {</pre></td></tr><tr><td class='line-number'><a name='L2714' href='#L2714'><pre>2714</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // We do not have a compiled object line, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2715' href='#L2715'><pre>2715</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2716' href='#L2716'><pre>2716</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>object_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2717' href='#L2717'><pre>2717</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ObjectCompiledMissingOpeningBrace</span>,</pre></td></tr><tr><td class='line-number'><a name='L2718' href='#L2718'><pre>2718</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2719' href='#L2719'><pre>2719</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>input</span>.<span class='region red'>forward_to_next_line</span>();</pre></td></tr><tr><td class='line-number'><a name='L2720' href='#L2720'><pre>2720</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2721' href='#L2721'><pre>2721</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2722' href='#L2722'><pre>2722</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2723' href='#L2723'><pre>2723</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> let _ = input.take("{", Comparator::CaseSensitive);</pre></td></tr><tr><td class='line-number'><a name='L2724' href='#L2724'><pre>2724</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2725' href='#L2725'><pre>2725</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> let Some((uuid_text, _)) = input.take_until("}", Comparator::CaseSensitive) else {</pre></td></tr><tr><td class='line-number'><a name='L2726' href='#L2726'><pre>2726</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No UUID found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2727' href='#L2727'><pre>2727</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2728' href='#L2728'><pre>2728</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>object_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2729' href='#L2729'><pre>2729</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ObjectCompiledUuidMissingMatchingBrace</span>,</pre></td></tr><tr><td class='line-number'><a name='L2730' href='#L2730'><pre>2730</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2731' href='#L2731'><pre>2731</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>input</span>.<span class='region red'>forward_to_next_line</span>();</pre></td></tr><tr><td class='line-number'><a name='L2732' href='#L2732'><pre>2732</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2733' href='#L2733'><pre>2733</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2734' href='#L2734'><pre>2734</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2735' href='#L2735'><pre>2735</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2736' href='#L2736'><pre>2736</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> let _ = input.take("}", Comparator::CaseSensitive);</pre></td></tr><tr><td class='line-number'><a name='L2737' href='#L2737'><pre>2737</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2738' href='#L2738'><pre>2738</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> let Ok(uuid) = Uuid::parse_str(uuid_text) else {</pre></td></tr><tr><td class='line-number'><a name='L2739' href='#L2739'><pre>2739</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // The UUID is not a valid UUID, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2740' href='#L2740'><pre>2740</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> =</pre></td></tr><tr><td class='line-number'><a name='L2741' href='#L2741'><pre>2741</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(<span class='region red'>object_start</span>, <span class='region red'>ProjectErrorKind::ObjectCompiledUuidInvalid</span>);</pre></td></tr><tr><td class='line-number'><a name='L2742' href='#L2742'><pre>2742</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>input</span>.<span class='region red'>forward_to_next_line</span>();</pre></td></tr><tr><td class='line-number'><a name='L2743' href='#L2743'><pre>2743</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2744' href='#L2744'><pre>2744</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2745' href='#L2745'><pre>2745</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2746' href='#L2746'><pre>2746</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2747' href='#L2747'><pre>2747</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> let _ = input.take("#", Comparator::CaseSensitive);</pre></td></tr><tr><td class='line-number'><a name='L2748' href='#L2748'><pre>2748</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2749' href='#L2749'><pre>2749</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> let version_start = input.offset();</pre></td></tr><tr><td class='line-number'><a name='L2750' href='#L2750'><pre>2750</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> let Some((version, invalid_version_character)) = input.take_until_not(</pre></td></tr><tr><td class='line-number'><a name='L2751' href='#L2751'><pre>2751</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> &["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "."],</pre></td></tr><tr><td class='line-number'><a name='L2752' href='#L2752'><pre>2752</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> Comparator::CaseSensitive,</pre></td></tr><tr><td class='line-number'><a name='L2753' href='#L2753'><pre>2753</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> ) else {</pre></td></tr><tr><td class='line-number'><a name='L2754' href='#L2754'><pre>2754</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No version found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2755' href='#L2755'><pre>2755</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2756' href='#L2756'><pre>2756</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>version_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2757' href='#L2757'><pre>2757</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ObjectCompiledVersionMissing</span>,</pre></td></tr><tr><td class='line-number'><a name='L2758' href='#L2758'><pre>2758</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2759' href='#L2759'><pre>2759</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>input</span>.<span class='region red'>forward_to_next_line</span>();</pre></td></tr><tr><td class='line-number'><a name='L2760' href='#L2760'><pre>2760</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2761' href='#L2761'><pre>2761</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2762' href='#L2762'><pre>2762</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2763' href='#L2763'><pre>2763</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2764' href='#L2764'><pre>2764</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> if invalid_version_character != "#" {</pre></td></tr><tr><td class='line-number'><a name='L2765' href='#L2765'><pre>2765</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // The version contains an invalid character, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2766' href='#L2766'><pre>2766</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2767' href='#L2767'><pre>2767</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>version_start</span><span class='region red'> + version.len()</span>,</pre></td></tr><tr><td class='line-number'><a name='L2768' href='#L2768'><pre>2768</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ObjectCompiledVersionInvalid</span>,</pre></td></tr><tr><td class='line-number'><a name='L2769' href='#L2769'><pre>2769</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2770' href='#L2770'><pre>2770</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>input</span>.<span class='region red'>forward_to_next_line</span>();</pre></td></tr><tr><td class='line-number'><a name='L2771' href='#L2771'><pre>2771</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2772' href='#L2772'><pre>2772</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2773' href='#L2773'><pre>2773</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2774' href='#L2774'><pre>2774</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> let _ = input.take("#", Comparator::CaseSensitive);</pre></td></tr><tr><td class='line-number'><a name='L2775' href='#L2775'><pre>2775</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> let unknown1_start = input.offset();</pre></td></tr><tr><td class='line-number'><a name='L2776' href='#L2776'><pre>2776</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2777' href='#L2777'><pre>2777</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> let Some((unknown1, _)) = input.take_until("; ", Comparator::CaseSensitive) else {</pre></td></tr><tr><td class='line-number'><a name='L2778' href='#L2778'><pre>2778</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No unknown1 found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2779' href='#L2779'><pre>2779</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2780' href='#L2780'><pre>2780</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>unknown1_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2781' href='#L2781'><pre>2781</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ObjectCompiledUnknown1Missing</span>,</pre></td></tr><tr><td class='line-number'><a name='L2782' href='#L2782'><pre>2782</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2783' href='#L2783'><pre>2783</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>input</span>.<span class='region red'>forward_to_next_line</span>();</pre></td></tr><tr><td class='line-number'><a name='L2784' href='#L2784'><pre>2784</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2785' href='#L2785'><pre>2785</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2786' href='#L2786'><pre>2786</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2787' href='#L2787'><pre>2787</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> let _ = input.take("; ", Comparator::CaseSensitive);</pre></td></tr><tr><td class='line-number'><a name='L2788' href='#L2788'><pre>2788</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> let file_name_start = input.offset();</pre></td></tr><tr><td class='line-number'><a name='L2789' href='#L2789'><pre>2789</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2790' href='#L2790'><pre>2790</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> let file_name = input.take_until_newline();</pre></td></tr><tr><td class='line-number'><a name='L2791' href='#L2791'><pre>2791</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> match file_name {</pre></td></tr><tr><td class='line-number'><a name='L2792' href='#L2792'><pre>2792</pre></a></td><td class='skipped-line'></td><td class='code'><pre> None => {</pre></td></tr><tr><td class='line-number'><a name='L2793' href='#L2793'><pre>2793</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No file name found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2794' href='#L2794'><pre>2794</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2795' href='#L2795'><pre>2795</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>file_name_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2796' href='#L2796'><pre>2796</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ObjectCompiledFileNameNotFound</span>,</pre></td></tr><tr><td class='line-number'><a name='L2797' href='#L2797'><pre>2797</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2798' href='#L2798'><pre>2798</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>Err(fail)</span></pre></td></tr><tr><td class='line-number'><a name='L2799' href='#L2799'><pre>2799</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2800' href='#L2800'><pre>2800</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> Some((file_name, _)) => {</pre></td></tr><tr><td class='line-number'><a name='L2801' href='#L2801'><pre>2801</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> if file_name.is_empty() {</pre></td></tr><tr><td class='line-number'><a name='L2802' href='#L2802'><pre>2802</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No file name found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2803' href='#L2803'><pre>2803</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2804' href='#L2804'><pre>2804</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>file_name_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2805' href='#L2805'><pre>2805</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::ObjectCompiledFileNameNotFound</span>,</pre></td></tr><tr><td class='line-number'><a name='L2806' href='#L2806'><pre>2806</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2807' href='#L2807'><pre>2807</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2808' href='#L2808'><pre>2808</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2809' href='#L2809'><pre>2809</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2810' href='#L2810'><pre>2810</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> Ok(ObjectReference::Compiled {</pre></td></tr><tr><td class='line-number'><a name='L2811' href='#L2811'><pre>2811</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> uuid,</pre></td></tr><tr><td class='line-number'><a name='L2812' href='#L2812'><pre>2812</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> version: version.into(),</pre></td></tr><tr><td class='line-number'><a name='L2813' href='#L2813'><pre>2813</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> unknown1: unknown1.into(),</pre></td></tr><tr><td class='line-number'><a name='L2814' href='#L2814'><pre>2814</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> file_name: file_name.into(),</pre></td></tr><tr><td class='line-number'><a name='L2815' href='#L2815'><pre>2815</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> })</pre></td></tr><tr><td class='line-number'><a name='L2816' href='#L2816'><pre>2816</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2817' href='#L2817'><pre>2817</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2818' href='#L2818'><pre>2818</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L2819' href='#L2819'><pre>2819</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2820' href='#L2820'><pre>2820</pre></a></td><td class='covered-line'><pre>45</pre></td><td class='code'><pre>fn parse_module<'a>(</pre></td></tr><tr><td class='line-number'><a name='L2821' href='#L2821'><pre>2821</pre></a></td><td class='covered-line'><pre>45</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L2822' href='#L2822'><pre>2822</pre></a></td><td class='covered-line'><pre>45</pre></td><td class='code'><pre>) -> Result<ProjectModuleReference<'a>, ErrorDetails<'a, ProjectErrorKind<'a>>> {</pre></td></tr><tr><td class='line-number'><a name='L2823' href='#L2823'><pre>2823</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // A Module line starts with a 'Module=' and is followed by a name and a path.</pre></td></tr><tr><td class='line-number'><a name='L2824' href='#L2824'><pre>2824</pre></a></td><td class='skipped-line'></td><td class='code'><pre> //</pre></td></tr><tr><td class='line-number'><a name='L2825' href='#L2825'><pre>2825</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // By this point in the parse the "Module=" component should be stripped off</pre></td></tr><tr><td class='line-number'><a name='L2826' href='#L2826'><pre>2826</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // since that is how we knew to use this particular parse.</pre></td></tr><tr><td class='line-number'><a name='L2827' href='#L2827'><pre>2827</pre></a></td><td class='covered-line'><pre>45</pre></td><td class='code'><pre> let module_start = input.offset();</pre></td></tr><tr><td class='line-number'><a name='L2828' href='#L2828'><pre>2828</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2829' href='#L2829'><pre>2829</pre></a></td><td class='covered-line'><pre>45</pre></td><td class='code'><pre> let Some((module_name, _)) = input.take_until("; ", Comparator::CaseSensitive) else {</pre></td></tr><tr><td class='line-number'><a name='L2830' href='#L2830'><pre>2830</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No name found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2831' href='#L2831'><pre>2831</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(<span class='region red'>module_start</span>, <span class='region red'>ProjectErrorKind::ModuleNameNotFound</span>);</pre></td></tr><tr><td class='line-number'><a name='L2832' href='#L2832'><pre>2832</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>input</span>.<span class='region red'>forward_to_next_line</span>();</pre></td></tr><tr><td class='line-number'><a name='L2833' href='#L2833'><pre>2833</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2834' href='#L2834'><pre>2834</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2835' href='#L2835'><pre>2835</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2836' href='#L2836'><pre>2836</pre></a></td><td class='covered-line'><pre>45</pre></td><td class='code'><pre> let _ = input.take("; ", Comparator::CaseSensitive);</pre></td></tr><tr><td class='line-number'><a name='L2837' href='#L2837'><pre>2837</pre></a></td><td class='covered-line'><pre>45</pre></td><td class='code'><pre> let module_path_start = input.offset();</pre></td></tr><tr><td class='line-number'><a name='L2838' href='#L2838'><pre>2838</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2839' href='#L2839'><pre>2839</pre></a></td><td class='covered-line'><pre>45</pre></td><td class='code'><pre> let Some((module_path, _)) = input.take_until_newline() else {</pre></td></tr><tr><td class='line-number'><a name='L2840' href='#L2840'><pre>2840</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No path found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2841' href='#L2841'><pre>2841</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> =</pre></td></tr><tr><td class='line-number'><a name='L2842' href='#L2842'><pre>2842</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(<span class='region red'>module_path_start</span>, <span class='region red'>ProjectErrorKind::ModuleFileNameNotFound</span>);</pre></td></tr><tr><td class='line-number'><a name='L2843' href='#L2843'><pre>2843</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2844' href='#L2844'><pre>2844</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2845' href='#L2845'><pre>2845</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2846' href='#L2846'><pre>2846</pre></a></td><td class='covered-line'><pre>45</pre></td><td class='code'><pre> if module_path.is_empty() {</pre></td></tr><tr><td class='line-number'><a name='L2847' href='#L2847'><pre>2847</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No path found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2848' href='#L2848'><pre>2848</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> =</pre></td></tr><tr><td class='line-number'><a name='L2849' href='#L2849'><pre>2849</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(<span class='region red'>module_path_start</span>, <span class='region red'>ProjectErrorKind::ModuleFileNameNotFound</span>);</pre></td></tr><tr><td class='line-number'><a name='L2850' href='#L2850'><pre>2850</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2851' href='#L2851'><pre>2851</pre></a></td><td class='covered-line'><pre>45</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2852' href='#L2852'><pre>2852</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2853' href='#L2853'><pre>2853</pre></a></td><td class='covered-line'><pre>45</pre></td><td class='code'><pre> let module = ProjectModuleReference {</pre></td></tr><tr><td class='line-number'><a name='L2854' href='#L2854'><pre>2854</pre></a></td><td class='covered-line'><pre>45</pre></td><td class='code'><pre> name: module_name,</pre></td></tr><tr><td class='line-number'><a name='L2855' href='#L2855'><pre>2855</pre></a></td><td class='covered-line'><pre>45</pre></td><td class='code'><pre> path: module_path,</pre></td></tr><tr><td class='line-number'><a name='L2856' href='#L2856'><pre>2856</pre></a></td><td class='covered-line'><pre>45</pre></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2857' href='#L2857'><pre>2857</pre></a></td><td class='covered-line'><pre>45</pre></td><td class='code'><pre> Ok(module)</pre></td></tr><tr><td class='line-number'><a name='L2858' href='#L2858'><pre>2858</pre></a></td><td class='covered-line'><pre>45</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L2859' href='#L2859'><pre>2859</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2860' href='#L2860'><pre>2860</pre></a></td><td class='covered-line'><pre>123</pre></td><td class='code'><pre>fn parse_class<'a>(</pre></td></tr><tr><td class='line-number'><a name='L2861' href='#L2861'><pre>2861</pre></a></td><td class='covered-line'><pre>123</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L2862' href='#L2862'><pre>2862</pre></a></td><td class='covered-line'><pre>123</pre></td><td class='code'><pre>) -> Result<ProjectClassReference<'a>, ErrorDetails<'a, ProjectErrorKind<'a>>> {</pre></td></tr><tr><td class='line-number'><a name='L2863' href='#L2863'><pre>2863</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // A Class line starts with a 'Class=' and is followed by a name and a path.</pre></td></tr><tr><td class='line-number'><a name='L2864' href='#L2864'><pre>2864</pre></a></td><td class='skipped-line'></td><td class='code'><pre> //</pre></td></tr><tr><td class='line-number'><a name='L2865' href='#L2865'><pre>2865</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // By this point in the parse the "Class=" component should be stripped off</pre></td></tr><tr><td class='line-number'><a name='L2866' href='#L2866'><pre>2866</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // since that is how we knew to use this particular parse.</pre></td></tr><tr><td class='line-number'><a name='L2867' href='#L2867'><pre>2867</pre></a></td><td class='covered-line'><pre>123</pre></td><td class='code'><pre> let class_start = input.offset();</pre></td></tr><tr><td class='line-number'><a name='L2868' href='#L2868'><pre>2868</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2869' href='#L2869'><pre>2869</pre></a></td><td class='covered-line'><pre>123</pre></td><td class='code'><pre> let Some((class_name, _)) = input.take_until("; ", Comparator::CaseSensitive) else {</pre></td></tr><tr><td class='line-number'><a name='L2870' href='#L2870'><pre>2870</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No name found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2871' href='#L2871'><pre>2871</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(<span class='region red'>class_start</span>, <span class='region red'>ProjectErrorKind::ClassNameNotFound</span>);</pre></td></tr><tr><td class='line-number'><a name='L2872' href='#L2872'><pre>2872</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>input</span>.<span class='region red'>forward_to_next_line</span>();</pre></td></tr><tr><td class='line-number'><a name='L2873' href='#L2873'><pre>2873</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2874' href='#L2874'><pre>2874</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2875' href='#L2875'><pre>2875</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2876' href='#L2876'><pre>2876</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2877' href='#L2877'><pre>2877</pre></a></td><td class='covered-line'><pre>123</pre></td><td class='code'><pre> let _ = input.take("; ", Comparator::CaseSensitive);</pre></td></tr><tr><td class='line-number'><a name='L2878' href='#L2878'><pre>2878</pre></a></td><td class='covered-line'><pre>123</pre></td><td class='code'><pre> let class_path_start = input.offset();</pre></td></tr><tr><td class='line-number'><a name='L2879' href='#L2879'><pre>2879</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2880' href='#L2880'><pre>2880</pre></a></td><td class='covered-line'><pre>123</pre></td><td class='code'><pre> let Some((class_path, _)) = input.take_until_newline() else {</pre></td></tr><tr><td class='line-number'><a name='L2881' href='#L2881'><pre>2881</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No path found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2882' href='#L2882'><pre>2882</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> =</pre></td></tr><tr><td class='line-number'><a name='L2883' href='#L2883'><pre>2883</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(<span class='region red'>class_path_start</span>, <span class='region red'>ProjectErrorKind::ClassFileNameNotFound</span>);</pre></td></tr><tr><td class='line-number'><a name='L2884' href='#L2884'><pre>2884</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2885' href='#L2885'><pre>2885</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2886' href='#L2886'><pre>2886</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2887' href='#L2887'><pre>2887</pre></a></td><td class='covered-line'><pre>123</pre></td><td class='code'><pre> if class_path.is_empty() {</pre></td></tr><tr><td class='line-number'><a name='L2888' href='#L2888'><pre>2888</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No path found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2889' href='#L2889'><pre>2889</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> =</pre></td></tr><tr><td class='line-number'><a name='L2890' href='#L2890'><pre>2890</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(<span class='region red'>class_path_start</span>, <span class='region red'>ProjectErrorKind::ClassFileNameNotFound</span>);</pre></td></tr><tr><td class='line-number'><a name='L2891' href='#L2891'><pre>2891</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2892' href='#L2892'><pre>2892</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2893' href='#L2893'><pre>2893</pre></a></td><td class='covered-line'><pre>123</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2894' href='#L2894'><pre>2894</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2895' href='#L2895'><pre>2895</pre></a></td><td class='covered-line'><pre>123</pre></td><td class='code'><pre> let class = ProjectClassReference {</pre></td></tr><tr><td class='line-number'><a name='L2896' href='#L2896'><pre>2896</pre></a></td><td class='covered-line'><pre>123</pre></td><td class='code'><pre> name: class_name,</pre></td></tr><tr><td class='line-number'><a name='L2897' href='#L2897'><pre>2897</pre></a></td><td class='covered-line'><pre>123</pre></td><td class='code'><pre> path: class_path,</pre></td></tr><tr><td class='line-number'><a name='L2898' href='#L2898'><pre>2898</pre></a></td><td class='covered-line'><pre>123</pre></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2899' href='#L2899'><pre>2899</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2900' href='#L2900'><pre>2900</pre></a></td><td class='covered-line'><pre>123</pre></td><td class='code'><pre> Ok(class)</pre></td></tr><tr><td class='line-number'><a name='L2901' href='#L2901'><pre>2901</pre></a></td><td class='covered-line'><pre>123</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L2902' href='#L2902'><pre>2902</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2903' href='#L2903'><pre>2903</pre></a></td><td class='covered-line'><pre>270</pre></td><td class='code'><pre>fn parse_path_line<'a>(</pre></td></tr><tr><td class='line-number'><a name='L2904' href='#L2904'><pre>2904</pre></a></td><td class='covered-line'><pre>270</pre></td><td class='code'><pre> input: &mut SourceStream<'a>,</pre></td></tr><tr><td class='line-number'><a name='L2905' href='#L2905'><pre>2905</pre></a></td><td class='covered-line'><pre>270</pre></td><td class='code'><pre> parameter_line_name: &'a str,</pre></td></tr><tr><td class='line-number'><a name='L2906' href='#L2906'><pre>2906</pre></a></td><td class='covered-line'><pre>270</pre></td><td class='code'><pre>) -> Result<&'a str, ErrorDetails<'a, ProjectErrorKind<'a>>> {</pre></td></tr><tr><td class='line-number'><a name='L2907' href='#L2907'><pre>2907</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // A single element line starts with a 'Form=', 'Designer=', or 'RelatedDoc='</pre></td></tr><tr><td class='line-number'><a name='L2908' href='#L2908'><pre>2908</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // and is followed by a path to the corresponding file.</pre></td></tr><tr><td class='line-number'><a name='L2909' href='#L2909'><pre>2909</pre></a></td><td class='skipped-line'></td><td class='code'><pre> //</pre></td></tr><tr><td class='line-number'><a name='L2910' href='#L2910'><pre>2910</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // By this point in the parse the "Form=", 'Designer=', or 'RelatedDoc='</pre></td></tr><tr><td class='line-number'><a name='L2911' href='#L2911'><pre>2911</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // component should be stripped off since that is how we knew to use this</pre></td></tr><tr><td class='line-number'><a name='L2912' href='#L2912'><pre>2912</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // particular parse.</pre></td></tr><tr><td class='line-number'><a name='L2913' href='#L2913'><pre>2913</pre></a></td><td class='covered-line'><pre>270</pre></td><td class='code'><pre> let path_start = input.offset();</pre></td></tr><tr><td class='line-number'><a name='L2914' href='#L2914'><pre>2914</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2915' href='#L2915'><pre>2915</pre></a></td><td class='covered-line'><pre>270</pre></td><td class='code'><pre> let path_line = input.take_until_newline();</pre></td></tr><tr><td class='line-number'><a name='L2916' href='#L2916'><pre>2916</pre></a></td><td class='covered-line'><pre>270</pre></td><td class='code'><pre> match path_line {</pre></td></tr><tr><td class='line-number'><a name='L2917' href='#L2917'><pre>2917</pre></a></td><td class='skipped-line'></td><td class='code'><pre> None => {</pre></td></tr><tr><td class='line-number'><a name='L2918' href='#L2918'><pre>2918</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No file_path text found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2919' href='#L2919'><pre>2919</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // Go to the next line and return the error.</pre></td></tr><tr><td class='line-number'><a name='L2920' href='#L2920'><pre>2920</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2921' href='#L2921'><pre>2921</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>path_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2922' href='#L2922'><pre>2922</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::PathValueNotFound {</span></pre></td></tr><tr><td class='line-number'><a name='L2923' href='#L2923'><pre>2923</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> parameter_line_name,</span></pre></td></tr><tr><td class='line-number'><a name='L2924' href='#L2924'><pre>2924</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span>,</pre></td></tr><tr><td class='line-number'><a name='L2925' href='#L2925'><pre>2925</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2926' href='#L2926'><pre>2926</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>Err(fail)</span></pre></td></tr><tr><td class='line-number'><a name='L2927' href='#L2927'><pre>2927</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2928' href='#L2928'><pre>2928</pre></a></td><td class='covered-line'><pre>270</pre></td><td class='code'><pre> Some((file_path, _)) => {</pre></td></tr><tr><td class='line-number'><a name='L2929' href='#L2929'><pre>2929</pre></a></td><td class='covered-line'><pre>270</pre></td><td class='code'><pre> if file_path.is_empty() {</pre></td></tr><tr><td class='line-number'><a name='L2930' href='#L2930'><pre>2930</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No file_path text found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2931' href='#L2931'><pre>2931</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // Go to the next line and return the error.</pre></td></tr><tr><td class='line-number'><a name='L2932' href='#L2932'><pre>2932</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2933' href='#L2933'><pre>2933</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>path_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2934' href='#L2934'><pre>2934</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::PathValueNotFound {</span></pre></td></tr><tr><td class='line-number'><a name='L2935' href='#L2935'><pre>2935</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> parameter_line_name,</span></pre></td></tr><tr><td class='line-number'><a name='L2936' href='#L2936'><pre>2936</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span>,</pre></td></tr><tr><td class='line-number'><a name='L2937' href='#L2937'><pre>2937</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2938' href='#L2938'><pre>2938</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2939' href='#L2939'><pre>2939</pre></a></td><td class='covered-line'><pre>270</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2940' href='#L2940'><pre>2940</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2941' href='#L2941'><pre>2941</pre></a></td><td class='covered-line'><pre>270</pre></td><td class='code'><pre> Ok(file_path)</pre></td></tr><tr><td class='line-number'><a name='L2942' href='#L2942'><pre>2942</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2943' href='#L2943'><pre>2943</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L2944' href='#L2944'><pre>2944</pre></a></td><td class='covered-line'><pre>270</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L2945' href='#L2945'><pre>2945</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2946' href='#L2946'><pre>2946</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>fn parse_dll_base_address<'a>(</span></pre></td></tr><tr><td class='line-number'><a name='L2947' href='#L2947'><pre>2947</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> input: &mut SourceStream<'a>,</span></pre></td></tr><tr><td class='line-number'><a name='L2948' href='#L2948'><pre>2948</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>) -> Result<u32, ErrorDetails<'a, ProjectErrorKind<'a>>></span> {</pre></td></tr><tr><td class='line-number'><a name='L2949' href='#L2949'><pre>2949</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // A DllBaseAddress line starts with a 'DllBaseAddress=' and is followed by a</pre></td></tr><tr><td class='line-number'><a name='L2950' href='#L2950'><pre>2950</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // hexadecimal value.</pre></td></tr><tr><td class='line-number'><a name='L2951' href='#L2951'><pre>2951</pre></a></td><td class='skipped-line'></td><td class='code'><pre> //</pre></td></tr><tr><td class='line-number'><a name='L2952' href='#L2952'><pre>2952</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // By this point in the parse the "DllBaseAddress=" component should be stripped off</pre></td></tr><tr><td class='line-number'><a name='L2953' href='#L2953'><pre>2953</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // since that is how we knew to use this particular parse.</pre></td></tr><tr><td class='line-number'><a name='L2954' href='#L2954'><pre>2954</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>dll_base_address_start</span> = <span class='region red'>input</span>.<span class='region red'>offset</span>();</pre></td></tr><tr><td class='line-number'><a name='L2955' href='#L2955'><pre>2955</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2956' href='#L2956'><pre>2956</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let Some((<span class='region red'>base_address_hex_text</span>, _)) = <span class='region red'>input.take_until_newline()</span> else {</pre></td></tr><tr><td class='line-number'><a name='L2957' href='#L2957'><pre>2957</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // No base address found, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2958' href='#L2958'><pre>2958</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2959' href='#L2959'><pre>2959</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>dll_base_address_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2960' href='#L2960'><pre>2960</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::DllBaseAddressNotFound</span>,</pre></td></tr><tr><td class='line-number'><a name='L2961' href='#L2961'><pre>2961</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2962' href='#L2962'><pre>2962</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2963' href='#L2963'><pre>2963</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2964' href='#L2964'><pre>2964</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2965' href='#L2965'><pre>2965</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> if <span class='region red'>base_address_hex_text</span>.<span class='region red'>is_empty</span>() {</pre></td></tr><tr><td class='line-number'><a name='L2966' href='#L2966'><pre>2966</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // The base address is empty, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2967' href='#L2967'><pre>2967</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2968' href='#L2968'><pre>2968</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>dll_base_address_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2969' href='#L2969'><pre>2969</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::DllBaseAddressUnparsableEmpty</span>,</pre></td></tr><tr><td class='line-number'><a name='L2970' href='#L2970'><pre>2970</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2971' href='#L2971'><pre>2971</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2972' href='#L2972'><pre>2972</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L2973' href='#L2973'><pre>2973</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2974' href='#L2974'><pre>2974</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> if <span class='region red'>!base_address_hex_text.starts_with("&H")</span> {</pre></td></tr><tr><td class='line-number'><a name='L2975' href='#L2975'><pre>2975</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // The base address does not start with "&H", so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2976' href='#L2976'><pre>2976</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2977' href='#L2977'><pre>2977</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>dll_base_address_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2978' href='#L2978'><pre>2978</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::DllBaseAddressMissingHexPrefix</span>,</pre></td></tr><tr><td class='line-number'><a name='L2979' href='#L2979'><pre>2979</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2980' href='#L2980'><pre>2980</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2981' href='#L2981'><pre>2981</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L2982' href='#L2982'><pre>2982</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2983' href='#L2983'><pre>2983</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>dll_base_address_start</span> = <span class='region red'>dll_base_address_start + 2</span>; // Skip the "&H" prefix</pre></td></tr><tr><td class='line-number'><a name='L2984' href='#L2984'><pre>2984</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2985' href='#L2985'><pre>2985</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>trimmed_base_address_hex_text</span> = <span class='region red'>base_address_hex_text</span>.<span class='region red'>trim_start_matches</span>("&H");</pre></td></tr><tr><td class='line-number'><a name='L2986' href='#L2986'><pre>2986</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2987' href='#L2987'><pre>2987</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let Ok(<span class='region red'>dll_base_address</span>) = <span class='region red'>u32::from_str_radix(trimmed_base_address_hex_text, 16)</span> else {</pre></td></tr><tr><td class='line-number'><a name='L2988' href='#L2988'><pre>2988</pre></a></td><td class='skipped-line'></td><td class='code'><pre> // The base address is not a valid hexadecimal value, so we can't parse this line.</pre></td></tr><tr><td class='line-number'><a name='L2989' href='#L2989'><pre>2989</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='region red'>fail</span> = <span class='region red'>input</span>.<span class='region red'>generate_error_at</span>(</pre></td></tr><tr><td class='line-number'><a name='L2990' href='#L2990'><pre>2990</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>dll_base_address_start</span>,</pre></td></tr><tr><td class='line-number'><a name='L2991' href='#L2991'><pre>2991</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>ProjectErrorKind::DllBaseAddressUnparsable {</span></pre></td></tr><tr><td class='line-number'><a name='L2992' href='#L2992'><pre>2992</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> hex_value: trimmed_base_address_hex_text,</span></pre></td></tr><tr><td class='line-number'><a name='L2993' href='#L2993'><pre>2993</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span>,</pre></td></tr><tr><td class='line-number'><a name='L2994' href='#L2994'><pre>2994</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L2995' href='#L2995'><pre>2995</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='region red'>Err(fail)</span>;</pre></td></tr><tr><td class='line-number'><a name='L2996' href='#L2996'><pre>2996</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L2997' href='#L2997'><pre>2997</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L2998' href='#L2998'><pre>2998</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>Ok(dll_base_address)</span></pre></td></tr><tr><td class='line-number'><a name='L2999' href='#L2999'><pre>2999</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L3000' href='#L3000'><pre>3000</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3001' href='#L3001'><pre>3001</pre></a></td><td class='skipped-line'></td><td class='code'><pre>#[cfg(test)]</pre></td></tr><tr><td class='line-number'><a name='L3002' href='#L3002'><pre>3002</pre></a></td><td class='skipped-line'></td><td class='code'><pre>mod tests {</pre></td></tr><tr><td class='line-number'><a name='L3003' href='#L3003'><pre>3003</pre></a></td><td class='skipped-line'></td><td class='code'><pre> use crate::errors::{ErrorDetails, ProjectErrorKind};</pre></td></tr><tr><td class='line-number'><a name='L3004' href='#L3004'><pre>3004</pre></a></td><td class='skipped-line'></td><td class='code'><pre> use crate::files::common::ObjectReference;</pre></td></tr><tr><td class='line-number'><a name='L3005' href='#L3005'><pre>3005</pre></a></td><td class='skipped-line'></td><td class='code'><pre> use crate::files::project::compilesettings::*;</pre></td></tr><tr><td class='line-number'><a name='L3006' href='#L3006'><pre>3006</pre></a></td><td class='skipped-line'></td><td class='code'><pre> use crate::files::project::properties::*;</pre></td></tr><tr><td class='line-number'><a name='L3007' href='#L3007'><pre>3007</pre></a></td><td class='skipped-line'></td><td class='code'><pre> use crate::files::project::ProjectReference;</pre></td></tr><tr><td class='line-number'><a name='L3008' href='#L3008'><pre>3008</pre></a></td><td class='skipped-line'></td><td class='code'><pre> use crate::io::{Comparator, SourceFile, SourceStream};</pre></td></tr><tr><td class='line-number'><a name='L3009' href='#L3009'><pre>3009</pre></a></td><td class='skipped-line'></td><td class='code'><pre> use crate::ProjectFile;</pre></td></tr><tr><td class='line-number'><a name='L3010' href='#L3010'><pre>3010</pre></a></td><td class='skipped-line'></td><td class='code'><pre> use uuid::Uuid;</pre></td></tr><tr><td class='line-number'><a name='L3011' href='#L3011'><pre>3011</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3012' href='#L3012'><pre>3012</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[test]</pre></td></tr><tr><td class='line-number'><a name='L3013' href='#L3013'><pre>3013</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> fn compatibility_mode_is_unknown() {</pre></td></tr><tr><td class='line-number'><a name='L3014' href='#L3014'><pre>3014</pre></a></td><td class='skipped-line'></td><td class='code'><pre> use crate::files::project::parse_quoted_converted_value;</pre></td></tr><tr><td class='line-number'><a name='L3015' href='#L3015'><pre>3015</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3016' href='#L3016'><pre>3016</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let mut input = SourceStream::new("", "CompatibleMode=\"5\"\n");</pre></td></tr><tr><td class='line-number'><a name='L3017' href='#L3017'><pre>3017</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3018' href='#L3018'><pre>3018</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let parameter_name = input</pre></td></tr><tr><td class='line-number'><a name='L3019' href='#L3019'><pre>3019</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> .take("CompatibleMode", Comparator::CaseSensitive)</pre></td></tr><tr><td class='line-number'><a name='L3020' href='#L3020'><pre>3020</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> .unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3021' href='#L3021'><pre>3021</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let _ = input.take("=", Comparator::CaseSensitive).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3022' href='#L3022'><pre>3022</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3023' href='#L3023'><pre>3023</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let result: Result<CompatibilityMode, ErrorDetails<ProjectErrorKind>> =</pre></td></tr><tr><td class='line-number'><a name='L3024' href='#L3024'><pre>3024</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> parse_quoted_converted_value(&mut input, parameter_name);</pre></td></tr><tr><td class='line-number'><a name='L3025' href='#L3025'><pre>3025</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3026' href='#L3026'><pre>3026</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert!(<div class='tooltip'><span class='region red'>matches!</span><span class='tooltip-content'>0</span></div>(</pre></td></tr><tr><td class='line-number'><a name='L3027' href='#L3027'><pre>3027</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> result.err().unwrap().kind,</pre></td></tr><tr><td class='line-number'><a name='L3028' href='#L3028'><pre>3028</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ProjectErrorKind::ParameterValueInvalid { .. }</pre></td></tr><tr><td class='line-number'><a name='L3029' href='#L3029'><pre>3029</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ));</pre></td></tr><tr><td class='line-number'><a name='L3030' href='#L3030'><pre>3030</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3031' href='#L3031'><pre>3031</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3032' href='#L3032'><pre>3032</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[test]</pre></td></tr><tr><td class='line-number'><a name='L3033' href='#L3033'><pre>3033</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> fn compatibility_mode_is_no_compatibility() {</pre></td></tr><tr><td class='line-number'><a name='L3034' href='#L3034'><pre>3034</pre></a></td><td class='skipped-line'></td><td class='code'><pre> use crate::files::project::parse_quoted_converted_value;</pre></td></tr><tr><td class='line-number'><a name='L3035' href='#L3035'><pre>3035</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3036' href='#L3036'><pre>3036</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let mut input = SourceStream::new("", "CompatibleMode=\"0\"\n");</pre></td></tr><tr><td class='line-number'><a name='L3037' href='#L3037'><pre>3037</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3038' href='#L3038'><pre>3038</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let parameter_name = input</pre></td></tr><tr><td class='line-number'><a name='L3039' href='#L3039'><pre>3039</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> .take("CompatibleMode", Comparator::CaseSensitive)</pre></td></tr><tr><td class='line-number'><a name='L3040' href='#L3040'><pre>3040</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> .unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3041' href='#L3041'><pre>3041</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let _ = input.take("=", Comparator::CaseSensitive).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3042' href='#L3042'><pre>3042</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3043' href='#L3043'><pre>3043</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let result: Result<CompatibilityMode, ErrorDetails<ProjectErrorKind>> =</pre></td></tr><tr><td class='line-number'><a name='L3044' href='#L3044'><pre>3044</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> parse_quoted_converted_value(&mut input, parameter_name);</pre></td></tr><tr><td class='line-number'><a name='L3045' href='#L3045'><pre>3045</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3046' href='#L3046'><pre>3046</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(result.unwrap(), CompatibilityMode::NoCompatibility);</pre></td></tr><tr><td class='line-number'><a name='L3047' href='#L3047'><pre>3047</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3048' href='#L3048'><pre>3048</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3049' href='#L3049'><pre>3049</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[test]</pre></td></tr><tr><td class='line-number'><a name='L3050' href='#L3050'><pre>3050</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> fn compatibility_mode_is_project() {</pre></td></tr><tr><td class='line-number'><a name='L3051' href='#L3051'><pre>3051</pre></a></td><td class='skipped-line'></td><td class='code'><pre> use crate::files::project::parse_quoted_converted_value;</pre></td></tr><tr><td class='line-number'><a name='L3052' href='#L3052'><pre>3052</pre></a></td><td class='skipped-line'></td><td class='code'><pre> use crate::io::{Comparator, SourceStream};</pre></td></tr><tr><td class='line-number'><a name='L3053' href='#L3053'><pre>3053</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3054' href='#L3054'><pre>3054</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let mut input = SourceStream::new("", "CompatibleMode=\"1\"\r\n");</pre></td></tr><tr><td class='line-number'><a name='L3055' href='#L3055'><pre>3055</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3056' href='#L3056'><pre>3056</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let parameter_name = input</pre></td></tr><tr><td class='line-number'><a name='L3057' href='#L3057'><pre>3057</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> .take("CompatibleMode", Comparator::CaseSensitive)</pre></td></tr><tr><td class='line-number'><a name='L3058' href='#L3058'><pre>3058</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> .unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3059' href='#L3059'><pre>3059</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let _ = input.take("=", Comparator::CaseSensitive).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3060' href='#L3060'><pre>3060</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3061' href='#L3061'><pre>3061</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let result: Result<CompatibilityMode, ErrorDetails<ProjectErrorKind>> =</pre></td></tr><tr><td class='line-number'><a name='L3062' href='#L3062'><pre>3062</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> parse_quoted_converted_value(&mut input, parameter_name);</pre></td></tr><tr><td class='line-number'><a name='L3063' href='#L3063'><pre>3063</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3064' href='#L3064'><pre>3064</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(result.unwrap(), CompatibilityMode::Project);</pre></td></tr><tr><td class='line-number'><a name='L3065' href='#L3065'><pre>3065</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3066' href='#L3066'><pre>3066</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3067' href='#L3067'><pre>3067</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[test]</pre></td></tr><tr><td class='line-number'><a name='L3068' href='#L3068'><pre>3068</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> fn compatibility_mode_is_compatible_exe() {</pre></td></tr><tr><td class='line-number'><a name='L3069' href='#L3069'><pre>3069</pre></a></td><td class='skipped-line'></td><td class='code'><pre> use crate::files::project::parse_quoted_converted_value;</pre></td></tr><tr><td class='line-number'><a name='L3070' href='#L3070'><pre>3070</pre></a></td><td class='skipped-line'></td><td class='code'><pre> use crate::io::{Comparator, SourceStream};</pre></td></tr><tr><td class='line-number'><a name='L3071' href='#L3071'><pre>3071</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3072' href='#L3072'><pre>3072</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let mut input = SourceStream::new("", "CompatibleMode=\"2\"\n");</pre></td></tr><tr><td class='line-number'><a name='L3073' href='#L3073'><pre>3073</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3074' href='#L3074'><pre>3074</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let parameter_name = input</pre></td></tr><tr><td class='line-number'><a name='L3075' href='#L3075'><pre>3075</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> .take("CompatibleMode", Comparator::CaseSensitive)</pre></td></tr><tr><td class='line-number'><a name='L3076' href='#L3076'><pre>3076</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> .unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3077' href='#L3077'><pre>3077</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let _ = input.take("=", Comparator::CaseSensitive).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3078' href='#L3078'><pre>3078</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3079' href='#L3079'><pre>3079</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let result: Result<CompatibilityMode, ErrorDetails<ProjectErrorKind>> =</pre></td></tr><tr><td class='line-number'><a name='L3080' href='#L3080'><pre>3080</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> parse_quoted_converted_value(&mut input, parameter_name);</pre></td></tr><tr><td class='line-number'><a name='L3081' href='#L3081'><pre>3081</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3082' href='#L3082'><pre>3082</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(result.unwrap(), CompatibilityMode::CompatibleExe);</pre></td></tr><tr><td class='line-number'><a name='L3083' href='#L3083'><pre>3083</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3084' href='#L3084'><pre>3084</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3085' href='#L3085'><pre>3085</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[test]</pre></td></tr><tr><td class='line-number'><a name='L3086' href='#L3086'><pre>3086</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> fn project_type_is_exe() {</pre></td></tr><tr><td class='line-number'><a name='L3087' href='#L3087'><pre>3087</pre></a></td><td class='skipped-line'></td><td class='code'><pre> use crate::files::project::parse_converted_value;</pre></td></tr><tr><td class='line-number'><a name='L3088' href='#L3088'><pre>3088</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3089' href='#L3089'><pre>3089</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let mut input = SourceStream::new("", "Type=Exe\n");</pre></td></tr><tr><td class='line-number'><a name='L3090' href='#L3090'><pre>3090</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3091' href='#L3091'><pre>3091</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let parameter_name = input.take("Type", Comparator::CaseSensitive).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3092' href='#L3092'><pre>3092</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let _ = input.take("=", Comparator::CaseSensitive).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3093' href='#L3093'><pre>3093</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3094' href='#L3094'><pre>3094</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let result: Result<CompileTargetType, ErrorDetails<ProjectErrorKind>> =</pre></td></tr><tr><td class='line-number'><a name='L3095' href='#L3095'><pre>3095</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> parse_converted_value(&mut input, parameter_name);</pre></td></tr><tr><td class='line-number'><a name='L3096' href='#L3096'><pre>3096</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3097' href='#L3097'><pre>3097</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(result.unwrap(), CompileTargetType::Exe);</pre></td></tr><tr><td class='line-number'><a name='L3098' href='#L3098'><pre>3098</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3099' href='#L3099'><pre>3099</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3100' href='#L3100'><pre>3100</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[test]</pre></td></tr><tr><td class='line-number'><a name='L3101' href='#L3101'><pre>3101</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> fn project_type_is_oledll() {</pre></td></tr><tr><td class='line-number'><a name='L3102' href='#L3102'><pre>3102</pre></a></td><td class='skipped-line'></td><td class='code'><pre> use crate::files::project::parse_converted_value;</pre></td></tr><tr><td class='line-number'><a name='L3103' href='#L3103'><pre>3103</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3104' href='#L3104'><pre>3104</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let mut input = SourceStream::new("", "Type=OleDll\r\n");</pre></td></tr><tr><td class='line-number'><a name='L3105' href='#L3105'><pre>3105</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3106' href='#L3106'><pre>3106</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let parameter_name = input.take("Type", Comparator::CaseSensitive).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3107' href='#L3107'><pre>3107</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let _ = input.take("=", Comparator::CaseSensitive).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3108' href='#L3108'><pre>3108</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3109' href='#L3109'><pre>3109</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let result: Result<CompileTargetType, ErrorDetails<ProjectErrorKind>> =</pre></td></tr><tr><td class='line-number'><a name='L3110' href='#L3110'><pre>3110</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> parse_converted_value(&mut input, parameter_name);</pre></td></tr><tr><td class='line-number'><a name='L3111' href='#L3111'><pre>3111</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3112' href='#L3112'><pre>3112</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(result.unwrap(), CompileTargetType::OleDll);</pre></td></tr><tr><td class='line-number'><a name='L3113' href='#L3113'><pre>3113</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3114' href='#L3114'><pre>3114</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3115' href='#L3115'><pre>3115</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[test]</pre></td></tr><tr><td class='line-number'><a name='L3116' href='#L3116'><pre>3116</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> fn project_type_is_control() {</pre></td></tr><tr><td class='line-number'><a name='L3117' href='#L3117'><pre>3117</pre></a></td><td class='skipped-line'></td><td class='code'><pre> use crate::files::project::parse_converted_value;</pre></td></tr><tr><td class='line-number'><a name='L3118' href='#L3118'><pre>3118</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3119' href='#L3119'><pre>3119</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let mut input = SourceStream::new("", "Type=Control\n");</pre></td></tr><tr><td class='line-number'><a name='L3120' href='#L3120'><pre>3120</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3121' href='#L3121'><pre>3121</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let parameter_name = input.take("Type", Comparator::CaseSensitive).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3122' href='#L3122'><pre>3122</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let _ = input.take("=", Comparator::CaseSensitive).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3123' href='#L3123'><pre>3123</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3124' href='#L3124'><pre>3124</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let result: Result<CompileTargetType, ErrorDetails<ProjectErrorKind>> =</pre></td></tr><tr><td class='line-number'><a name='L3125' href='#L3125'><pre>3125</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> parse_converted_value(&mut input, parameter_name);</pre></td></tr><tr><td class='line-number'><a name='L3126' href='#L3126'><pre>3126</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3127' href='#L3127'><pre>3127</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(result.unwrap(), CompileTargetType::Control);</pre></td></tr><tr><td class='line-number'><a name='L3128' href='#L3128'><pre>3128</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3129' href='#L3129'><pre>3129</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3130' href='#L3130'><pre>3130</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[test]</pre></td></tr><tr><td class='line-number'><a name='L3131' href='#L3131'><pre>3131</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> fn project_type_is_ole_exe() {</pre></td></tr><tr><td class='line-number'><a name='L3132' href='#L3132'><pre>3132</pre></a></td><td class='skipped-line'></td><td class='code'><pre> use crate::files::project::parse_converted_value;</pre></td></tr><tr><td class='line-number'><a name='L3133' href='#L3133'><pre>3133</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3134' href='#L3134'><pre>3134</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let mut input = SourceStream::new("", "Type=OleExe\n");</pre></td></tr><tr><td class='line-number'><a name='L3135' href='#L3135'><pre>3135</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3136' href='#L3136'><pre>3136</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let parameter_name = input.take("Type", Comparator::CaseSensitive).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3137' href='#L3137'><pre>3137</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let _ = input.take("=", Comparator::CaseSensitive).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3138' href='#L3138'><pre>3138</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3139' href='#L3139'><pre>3139</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let result: Result<CompileTargetType, ErrorDetails<ProjectErrorKind>> =</pre></td></tr><tr><td class='line-number'><a name='L3140' href='#L3140'><pre>3140</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> parse_converted_value(&mut input, parameter_name);</pre></td></tr><tr><td class='line-number'><a name='L3141' href='#L3141'><pre>3141</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3142' href='#L3142'><pre>3142</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(result.unwrap(), CompileTargetType::OleExe);</pre></td></tr><tr><td class='line-number'><a name='L3143' href='#L3143'><pre>3143</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3144' href='#L3144'><pre>3144</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3145' href='#L3145'><pre>3145</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[test]</pre></td></tr><tr><td class='line-number'><a name='L3146' href='#L3146'><pre>3146</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> fn project_type_is_unknown_type() {</pre></td></tr><tr><td class='line-number'><a name='L3147' href='#L3147'><pre>3147</pre></a></td><td class='skipped-line'></td><td class='code'><pre> use crate::files::project::parse_converted_value;</pre></td></tr><tr><td class='line-number'><a name='L3148' href='#L3148'><pre>3148</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3149' href='#L3149'><pre>3149</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let mut input = SourceStream::new("", "Type=blah\r\n");</pre></td></tr><tr><td class='line-number'><a name='L3150' href='#L3150'><pre>3150</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3151' href='#L3151'><pre>3151</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let parameter_name = input.take("Type", Comparator::CaseSensitive).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3152' href='#L3152'><pre>3152</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let _ = input.take("=", Comparator::CaseSensitive).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3153' href='#L3153'><pre>3153</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3154' href='#L3154'><pre>3154</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let result: Result<CompileTargetType, ErrorDetails<ProjectErrorKind>> =</pre></td></tr><tr><td class='line-number'><a name='L3155' href='#L3155'><pre>3155</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> parse_converted_value(&mut input, parameter_name);</pre></td></tr><tr><td class='line-number'><a name='L3156' href='#L3156'><pre>3156</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3157' href='#L3157'><pre>3157</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert!(result.is_err());</pre></td></tr><tr><td class='line-number'><a name='L3158' href='#L3158'><pre>3158</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3159' href='#L3159'><pre>3159</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let error = result.err().unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3160' href='#L3160'><pre>3160</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3161' href='#L3161'><pre>3161</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert!(<div class='tooltip'><span class='region red'>matches!</span><span class='tooltip-content'>0</span></div>(</pre></td></tr><tr><td class='line-number'><a name='L3162' href='#L3162'><pre>3162</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> error.kind,</pre></td></tr><tr><td class='line-number'><a name='L3163' href='#L3163'><pre>3163</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ProjectErrorKind::ParameterValueInvalid { .. }</pre></td></tr><tr><td class='line-number'><a name='L3164' href='#L3164'><pre>3164</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ));</pre></td></tr><tr><td class='line-number'><a name='L3165' href='#L3165'><pre>3165</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3166' href='#L3166'><pre>3166</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3167' href='#L3167'><pre>3167</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[test]</pre></td></tr><tr><td class='line-number'><a name='L3168' href='#L3168'><pre>3168</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> fn reference_compiled_line_valid() {</pre></td></tr><tr><td class='line-number'><a name='L3169' href='#L3169'><pre>3169</pre></a></td><td class='skipped-line'></td><td class='code'><pre> use crate::files::project::parse_reference;</pre></td></tr><tr><td class='line-number'><a name='L3170' href='#L3170'><pre>3170</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3171' href='#L3171'><pre>3171</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let mut input = SourceStream::new("", "Reference=*\\G{000440D8-E9ED-4435-A9A2-06B05387BB16}#c.0#0#..\\DBCommon\\Libs\\VbIntellisenseFix.dll#VbIntellisenseFix\r\n");</pre></td></tr><tr><td class='line-number'><a name='L3172' href='#L3172'><pre>3172</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3173' href='#L3173'><pre>3173</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let _ = input.take("Reference", Comparator::CaseSensitive).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3174' href='#L3174'><pre>3174</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let _ = input.take("=", Comparator::CaseSensitive).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3175' href='#L3175'><pre>3175</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3176' href='#L3176'><pre>3176</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let result = parse_reference(&mut input);</pre></td></tr><tr><td class='line-number'><a name='L3177' href='#L3177'><pre>3177</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3178' href='#L3178'><pre>3178</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let expected_uuid = Uuid::parse_str("000440D8-E9ED-4435-A9A2-06B05387BB16").unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3179' href='#L3179'><pre>3179</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3180' href='#L3180'><pre>3180</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert!(input.is_empty());</pre></td></tr><tr><td class='line-number'><a name='L3181' href='#L3181'><pre>3181</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let result = result.unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3182' href='#L3182'><pre>3182</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert!(<div class='tooltip'><span class='region red'>matches!</span><span class='tooltip-content'>0</span></div>(result, ProjectReference::Compiled { .. }));</pre></td></tr><tr><td class='line-number'><a name='L3183' href='#L3183'><pre>3183</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3184' href='#L3184'><pre>3184</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> match result {</pre></td></tr><tr><td class='line-number'><a name='L3185' href='#L3185'><pre>3185</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ProjectReference::Compiled {</pre></td></tr><tr><td class='line-number'><a name='L3186' href='#L3186'><pre>3186</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> uuid,</pre></td></tr><tr><td class='line-number'><a name='L3187' href='#L3187'><pre>3187</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> unknown1,</pre></td></tr><tr><td class='line-number'><a name='L3188' href='#L3188'><pre>3188</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> unknown2,</pre></td></tr><tr><td class='line-number'><a name='L3189' href='#L3189'><pre>3189</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> path,</pre></td></tr><tr><td class='line-number'><a name='L3190' href='#L3190'><pre>3190</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> description,</pre></td></tr><tr><td class='line-number'><a name='L3191' href='#L3191'><pre>3191</pre></a></td><td class='skipped-line'></td><td class='code'><pre> } => {</pre></td></tr><tr><td class='line-number'><a name='L3192' href='#L3192'><pre>3192</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(uuid, expected_uuid);</pre></td></tr><tr><td class='line-number'><a name='L3193' href='#L3193'><pre>3193</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(unknown1, "c.0");</pre></td></tr><tr><td class='line-number'><a name='L3194' href='#L3194'><pre>3194</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(unknown2, "0");</pre></td></tr><tr><td class='line-number'><a name='L3195' href='#L3195'><pre>3195</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(path, r"..\DBCommon\Libs\VbIntellisenseFix.dll");</pre></td></tr><tr><td class='line-number'><a name='L3196' href='#L3196'><pre>3196</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(description, r"VbIntellisenseFix");</pre></td></tr><tr><td class='line-number'><a name='L3197' href='#L3197'><pre>3197</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3198' href='#L3198'><pre>3198</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> ProjectReference::SubProject { .. } => <span class='region red'>panic!</span>("Expected a compiled reference"),</pre></td></tr><tr><td class='line-number'><a name='L3199' href='#L3199'><pre>3199</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3200' href='#L3200'><pre>3200</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3201' href='#L3201'><pre>3201</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3202' href='#L3202'><pre>3202</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[test]</pre></td></tr><tr><td class='line-number'><a name='L3203' href='#L3203'><pre>3203</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> fn reference_subproject_line_valid() {</pre></td></tr><tr><td class='line-number'><a name='L3204' href='#L3204'><pre>3204</pre></a></td><td class='skipped-line'></td><td class='code'><pre> use crate::files::project::parse_reference;</pre></td></tr><tr><td class='line-number'><a name='L3205' href='#L3205'><pre>3205</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3206' href='#L3206'><pre>3206</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let mut input = SourceStream::new("", "Reference=*\\Atest.vbp\r\n");</pre></td></tr><tr><td class='line-number'><a name='L3207' href='#L3207'><pre>3207</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3208' href='#L3208'><pre>3208</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let _ = input.take("Reference", Comparator::CaseSensitive).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3209' href='#L3209'><pre>3209</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let _ = input.take("=", Comparator::CaseSensitive).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3210' href='#L3210'><pre>3210</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3211' href='#L3211'><pre>3211</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let result = parse_reference(&mut input);</pre></td></tr><tr><td class='line-number'><a name='L3212' href='#L3212'><pre>3212</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3213' href='#L3213'><pre>3213</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> if result.is_err() {</pre></td></tr><tr><td class='line-number'><a name='L3214' href='#L3214'><pre>3214</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> if let Some(<span class='region red'>error</span>) = <span class='region red'>result.err()</span> <span class='region red'>{</span></pre></td></tr><tr><td class='line-number'><a name='L3215' href='#L3215'><pre>3215</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> error.print();</span></pre></td></tr><tr><td class='line-number'><a name='L3216' href='#L3216'><pre>3216</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> </span><span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L3217' href='#L3217'><pre>3217</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>panic!</span>("Failed to parse reference line");</pre></td></tr><tr><td class='line-number'><a name='L3218' href='#L3218'><pre>3218</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3219' href='#L3219'><pre>3219</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3220' href='#L3220'><pre>3220</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert!(input.is_empty());</pre></td></tr><tr><td class='line-number'><a name='L3221' href='#L3221'><pre>3221</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(</pre></td></tr><tr><td class='line-number'><a name='L3222' href='#L3222'><pre>3222</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> result.unwrap(),</pre></td></tr><tr><td class='line-number'><a name='L3223' href='#L3223'><pre>3223</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ProjectReference::SubProject { path: "test.vbp" }</pre></td></tr><tr><td class='line-number'><a name='L3224' href='#L3224'><pre>3224</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L3225' href='#L3225'><pre>3225</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3226' href='#L3226'><pre>3226</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3227' href='#L3227'><pre>3227</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[test]</pre></td></tr><tr><td class='line-number'><a name='L3228' href='#L3228'><pre>3228</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> fn module_line_valid() {</pre></td></tr><tr><td class='line-number'><a name='L3229' href='#L3229'><pre>3229</pre></a></td><td class='skipped-line'></td><td class='code'><pre> use crate::files::project::parse_module;</pre></td></tr><tr><td class='line-number'><a name='L3230' href='#L3230'><pre>3230</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3231' href='#L3231'><pre>3231</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let mut input = SourceStream::new("", "Module=modDBAssist; ..\\DBCommon\\DBAssist.bas\r\n");</pre></td></tr><tr><td class='line-number'><a name='L3232' href='#L3232'><pre>3232</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3233' href='#L3233'><pre>3233</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let _ = input.take("Module", Comparator::CaseSensitive).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3234' href='#L3234'><pre>3234</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let _ = input.take("=", Comparator::CaseSensitive).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3235' href='#L3235'><pre>3235</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3236' href='#L3236'><pre>3236</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let result = parse_module(&mut input).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3237' href='#L3237'><pre>3237</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3238' href='#L3238'><pre>3238</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert!(input.is_empty());</pre></td></tr><tr><td class='line-number'><a name='L3239' href='#L3239'><pre>3239</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(result.name, "modDBAssist");</pre></td></tr><tr><td class='line-number'><a name='L3240' href='#L3240'><pre>3240</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(result.path, "..\\DBCommon\\DBAssist.bas");</pre></td></tr><tr><td class='line-number'><a name='L3241' href='#L3241'><pre>3241</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3242' href='#L3242'><pre>3242</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3243' href='#L3243'><pre>3243</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[test]</pre></td></tr><tr><td class='line-number'><a name='L3244' href='#L3244'><pre>3244</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> fn class_line_valid() {</pre></td></tr><tr><td class='line-number'><a name='L3245' href='#L3245'><pre>3245</pre></a></td><td class='skipped-line'></td><td class='code'><pre> use crate::files::project::parse_class;</pre></td></tr><tr><td class='line-number'><a name='L3246' href='#L3246'><pre>3246</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3247' href='#L3247'><pre>3247</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let mut input = SourceStream::new(</pre></td></tr><tr><td class='line-number'><a name='L3248' href='#L3248'><pre>3248</pre></a></td><td class='skipped-line'></td><td class='code'><pre> "",</pre></td></tr><tr><td class='line-number'><a name='L3249' href='#L3249'><pre>3249</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> "Class=CStatusBarClass; ..\\DBCommon\\CStatusBarClass.cls\r\n",</pre></td></tr><tr><td class='line-number'><a name='L3250' href='#L3250'><pre>3250</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L3251' href='#L3251'><pre>3251</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3252' href='#L3252'><pre>3252</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let _ = input.take("Class", Comparator::CaseSensitive).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3253' href='#L3253'><pre>3253</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let _ = input.take("=", Comparator::CaseSensitive).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3254' href='#L3254'><pre>3254</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3255' href='#L3255'><pre>3255</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let result = parse_class(&mut input).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3256' href='#L3256'><pre>3256</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3257' href='#L3257'><pre>3257</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert!(input.is_empty());</pre></td></tr><tr><td class='line-number'><a name='L3258' href='#L3258'><pre>3258</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(result.name, "CStatusBarClass");</pre></td></tr><tr><td class='line-number'><a name='L3259' href='#L3259'><pre>3259</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(result.path, "..\\DBCommon\\CStatusBarClass.cls");</pre></td></tr><tr><td class='line-number'><a name='L3260' href='#L3260'><pre>3260</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3261' href='#L3261'><pre>3261</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3262' href='#L3262'><pre>3262</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[test]</pre></td></tr><tr><td class='line-number'><a name='L3263' href='#L3263'><pre>3263</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> fn object_line_valid() {</pre></td></tr><tr><td class='line-number'><a name='L3264' href='#L3264'><pre>3264</pre></a></td><td class='skipped-line'></td><td class='code'><pre> use crate::files::project::parse_object;</pre></td></tr><tr><td class='line-number'><a name='L3265' href='#L3265'><pre>3265</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3266' href='#L3266'><pre>3266</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let mut input = SourceStream::new(</pre></td></tr><tr><td class='line-number'><a name='L3267' href='#L3267'><pre>3267</pre></a></td><td class='skipped-line'></td><td class='code'><pre> "",</pre></td></tr><tr><td class='line-number'><a name='L3268' href='#L3268'><pre>3268</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> "Object={00020430-0000-0000-C000-000000000046}#2.0#0; stdole2.tlb\r\n",</pre></td></tr><tr><td class='line-number'><a name='L3269' href='#L3269'><pre>3269</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L3270' href='#L3270'><pre>3270</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3271' href='#L3271'><pre>3271</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let _ = input.take("Object", Comparator::CaseSensitive).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3272' href='#L3272'><pre>3272</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let _ = input.take("=", Comparator::CaseSensitive).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3273' href='#L3273'><pre>3273</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3274' href='#L3274'><pre>3274</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let result = parse_object(&mut input);</pre></td></tr><tr><td class='line-number'><a name='L3275' href='#L3275'><pre>3275</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3276' href='#L3276'><pre>3276</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> if result.is_err() {</pre></td></tr><tr><td class='line-number'><a name='L3277' href='#L3277'><pre>3277</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> if let Some(<span class='region red'>error</span>) = <span class='region red'>result.err()</span> <span class='region red'>{</span></pre></td></tr><tr><td class='line-number'><a name='L3278' href='#L3278'><pre>3278</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> error.print();</span></pre></td></tr><tr><td class='line-number'><a name='L3279' href='#L3279'><pre>3279</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> </span><span class='region red'>}</span></pre></td></tr><tr><td class='line-number'><a name='L3280' href='#L3280'><pre>3280</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>panic!</span>("Failed to parse object line");</pre></td></tr><tr><td class='line-number'><a name='L3281' href='#L3281'><pre>3281</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3282' href='#L3282'><pre>3282</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3283' href='#L3283'><pre>3283</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let object = result.unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3284' href='#L3284'><pre>3284</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3285' href='#L3285'><pre>3285</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert!(input.is_empty());</pre></td></tr><tr><td class='line-number'><a name='L3286' href='#L3286'><pre>3286</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> match object {</pre></td></tr><tr><td class='line-number'><a name='L3287' href='#L3287'><pre>3287</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ObjectReference::Compiled {</pre></td></tr><tr><td class='line-number'><a name='L3288' href='#L3288'><pre>3288</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> uuid,</pre></td></tr><tr><td class='line-number'><a name='L3289' href='#L3289'><pre>3289</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> version,</pre></td></tr><tr><td class='line-number'><a name='L3290' href='#L3290'><pre>3290</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> unknown1,</pre></td></tr><tr><td class='line-number'><a name='L3291' href='#L3291'><pre>3291</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> file_name,</pre></td></tr><tr><td class='line-number'><a name='L3292' href='#L3292'><pre>3292</pre></a></td><td class='skipped-line'></td><td class='code'><pre> } => {</pre></td></tr><tr><td class='line-number'><a name='L3293' href='#L3293'><pre>3293</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let expected_uuid =</pre></td></tr><tr><td class='line-number'><a name='L3294' href='#L3294'><pre>3294</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Uuid::parse_str("00020430-0000-0000-C000-000000000046").unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3295' href='#L3295'><pre>3295</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(uuid, expected_uuid);</pre></td></tr><tr><td class='line-number'><a name='L3296' href='#L3296'><pre>3296</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(version, "2.0");</pre></td></tr><tr><td class='line-number'><a name='L3297' href='#L3297'><pre>3297</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(unknown1, "0");</pre></td></tr><tr><td class='line-number'><a name='L3298' href='#L3298'><pre>3298</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(file_name, "stdole2.tlb");</pre></td></tr><tr><td class='line-number'><a name='L3299' href='#L3299'><pre>3299</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3300' href='#L3300'><pre>3300</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> ObjectReference::Project { .. } => <span class='region red'>panic!</span>("Expected a compiled object"),</pre></td></tr><tr><td class='line-number'><a name='L3301' href='#L3301'><pre>3301</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3302' href='#L3302'><pre>3302</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3303' href='#L3303'><pre>3303</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3304' href='#L3304'><pre>3304</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[allow(clippy::too_many_lines)]</pre></td></tr><tr><td class='line-number'><a name='L3305' href='#L3305'><pre>3305</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[test]</pre></td></tr><tr><td class='line-number'><a name='L3306' href='#L3306'><pre>3306</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> fn thread_per_object_negative() {</pre></td></tr><tr><td class='line-number'><a name='L3307' href='#L3307'><pre>3307</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let input = r#"Type=Exe</pre></td></tr><tr><td class='line-number'><a name='L3308' href='#L3308'><pre>3308</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\Windows\System32\stdole2.tlb#OLE Automation</pre></td></tr><tr><td class='line-number'><a name='L3309' href='#L3309'><pre>3309</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Object={00020430-0000-0000-C000-000000000046}#2.0#0; stdole2.tlb</pre></td></tr><tr><td class='line-number'><a name='L3310' href='#L3310'><pre>3310</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Module=Module1; Module1.bas</pre></td></tr><tr><td class='line-number'><a name='L3311' href='#L3311'><pre>3311</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Class=Class1; Class1.cls</pre></td></tr><tr><td class='line-number'><a name='L3312' href='#L3312'><pre>3312</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Form=Form1.frm</pre></td></tr><tr><td class='line-number'><a name='L3313' href='#L3313'><pre>3313</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Form=Form2.frm</pre></td></tr><tr><td class='line-number'><a name='L3314' href='#L3314'><pre>3314</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> UserControl=UserControl1.ctl</pre></td></tr><tr><td class='line-number'><a name='L3315' href='#L3315'><pre>3315</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> UserDocument=UserDocument1.uds</pre></td></tr><tr><td class='line-number'><a name='L3316' href='#L3316'><pre>3316</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> ExeName32="Project1.exe"</pre></td></tr><tr><td class='line-number'><a name='L3317' href='#L3317'><pre>3317</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Command32=""</pre></td></tr><tr><td class='line-number'><a name='L3318' href='#L3318'><pre>3318</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Path32=""</pre></td></tr><tr><td class='line-number'><a name='L3319' href='#L3319'><pre>3319</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Name="Project1"</pre></td></tr><tr><td class='line-number'><a name='L3320' href='#L3320'><pre>3320</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> HelpContextID="0"</pre></td></tr><tr><td class='line-number'><a name='L3321' href='#L3321'><pre>3321</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> CompatibleMode="0"</pre></td></tr><tr><td class='line-number'><a name='L3322' href='#L3322'><pre>3322</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> MajorVer=1</pre></td></tr><tr><td class='line-number'><a name='L3323' href='#L3323'><pre>3323</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> MinorVer=0</pre></td></tr><tr><td class='line-number'><a name='L3324' href='#L3324'><pre>3324</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> RevisionVer=0</pre></td></tr><tr><td class='line-number'><a name='L3325' href='#L3325'><pre>3325</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> AutoIncrementVer=0</pre></td></tr><tr><td class='line-number'><a name='L3326' href='#L3326'><pre>3326</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> StartMode=0</pre></td></tr><tr><td class='line-number'><a name='L3327' href='#L3327'><pre>3327</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Unattended=0</pre></td></tr><tr><td class='line-number'><a name='L3328' href='#L3328'><pre>3328</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Retained=0</pre></td></tr><tr><td class='line-number'><a name='L3329' href='#L3329'><pre>3329</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> ThreadPerObject=-1</pre></td></tr><tr><td class='line-number'><a name='L3330' href='#L3330'><pre>3330</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> MaxNumberOfThreads=1</pre></td></tr><tr><td class='line-number'><a name='L3331' href='#L3331'><pre>3331</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> DebugStartupOption=0</pre></td></tr><tr><td class='line-number'><a name='L3332' href='#L3332'><pre>3332</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> NoControlUpgrade=0</pre></td></tr><tr><td class='line-number'><a name='L3333' href='#L3333'><pre>3333</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> ServerSupportFiles=0</pre></td></tr><tr><td class='line-number'><a name='L3334' href='#L3334'><pre>3334</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> VersionCompanyName="Company Name"</pre></td></tr><tr><td class='line-number'><a name='L3335' href='#L3335'><pre>3335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> VersionFileDescription="File Description"</pre></td></tr><tr><td class='line-number'><a name='L3336' href='#L3336'><pre>3336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> VersionLegalCopyright="Copyright"</pre></td></tr><tr><td class='line-number'><a name='L3337' href='#L3337'><pre>3337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> VersionLegalTrademarks="Trademark"</pre></td></tr><tr><td class='line-number'><a name='L3338' href='#L3338'><pre>3338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> VersionProductName="Product Name"</pre></td></tr><tr><td class='line-number'><a name='L3339' href='#L3339'><pre>3339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> VersionComments="Comments"</pre></td></tr><tr><td class='line-number'><a name='L3340' href='#L3340'><pre>3340</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> CompilationType=0</pre></td></tr><tr><td class='line-number'><a name='L3341' href='#L3341'><pre>3341</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> OptimizationType=0</pre></td></tr><tr><td class='line-number'><a name='L3342' href='#L3342'><pre>3342</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> FavorPentiumPro(tm)=0</pre></td></tr><tr><td class='line-number'><a name='L3343' href='#L3343'><pre>3343</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> CodeViewDebugInfo=0</pre></td></tr><tr><td class='line-number'><a name='L3344' href='#L3344'><pre>3344</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> NoAliasing=0</pre></td></tr><tr><td class='line-number'><a name='L3345' href='#L3345'><pre>3345</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> BoundsCheck=0</pre></td></tr><tr><td class='line-number'><a name='L3346' href='#L3346'><pre>3346</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> OverflowCheck=0</pre></td></tr><tr><td class='line-number'><a name='L3347' href='#L3347'><pre>3347</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> FlPointCheck=0</pre></td></tr><tr><td class='line-number'><a name='L3348' href='#L3348'><pre>3348</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> FDIVCheck=0</pre></td></tr><tr><td class='line-number'><a name='L3349' href='#L3349'><pre>3349</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> UnroundedFP=0</pre></td></tr><tr><td class='line-number'><a name='L3350' href='#L3350'><pre>3350</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> CondComp=""</pre></td></tr><tr><td class='line-number'><a name='L3351' href='#L3351'><pre>3351</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> ResFile32=""</pre></td></tr><tr><td class='line-number'><a name='L3352' href='#L3352'><pre>3352</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> IconForm=""</pre></td></tr><tr><td class='line-number'><a name='L3353' href='#L3353'><pre>3353</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Startup=!(None)!</pre></td></tr><tr><td class='line-number'><a name='L3354' href='#L3354'><pre>3354</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> HelpFile=""</pre></td></tr><tr><td class='line-number'><a name='L3355' href='#L3355'><pre>3355</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Title="Project1"</pre></td></tr><tr><td class='line-number'><a name='L3356' href='#L3356'><pre>3356</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> </pre></td></tr><tr><td class='line-number'><a name='L3357' href='#L3357'><pre>3357</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> [MS Transaction Server]</pre></td></tr><tr><td class='line-number'><a name='L3358' href='#L3358'><pre>3358</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> AutoRefresh=1</pre></td></tr><tr><td class='line-number'><a name='L3359' href='#L3359'><pre>3359</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre>"#;</pre></td></tr><tr><td class='line-number'><a name='L3360' href='#L3360'><pre>3360</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3361' href='#L3361'><pre>3361</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let project_source_file = SourceFile::decode("project1.vbp", input.as_bytes()).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3362' href='#L3362'><pre>3362</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3363' href='#L3363'><pre>3363</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let result = ProjectFile::parse(&project_source_file);</pre></td></tr><tr><td class='line-number'><a name='L3364' href='#L3364'><pre>3364</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3365' href='#L3365'><pre>3365</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> if result.has_failures() {</pre></td></tr><tr><td class='line-number'><a name='L3366' href='#L3366'><pre>3366</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> for <span class='region red'>failure</span> in <span class='region red'>result</span>.<span class='region red'>failures</span>() <span class='region red'>{</span></pre></td></tr><tr><td class='line-number'><a name='L3367' href='#L3367'><pre>3367</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> failure.print();</span></pre></td></tr><tr><td class='line-number'><a name='L3368' href='#L3368'><pre>3368</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span></pre></td></tr><tr><td class='line-number'><a name='L3369' href='#L3369'><pre>3369</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3370' href='#L3370'><pre>3370</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>panic!</span>("Project parse had failures");</pre></td></tr><tr><td class='line-number'><a name='L3371' href='#L3371'><pre>3371</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3372' href='#L3372'><pre>3372</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3373' href='#L3373'><pre>3373</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let project = result.unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3374' href='#L3374'><pre>3374</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3375' href='#L3375'><pre>3375</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.project_type, CompileTargetType::Exe);</pre></td></tr><tr><td class='line-number'><a name='L3376' href='#L3376'><pre>3376</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.references.len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L3377' href='#L3377'><pre>3377</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.objects.len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L3378' href='#L3378'><pre>3378</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.modules.len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L3379' href='#L3379'><pre>3379</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.classes.len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L3380' href='#L3380'><pre>3380</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.designers.len(), 0);</pre></td></tr><tr><td class='line-number'><a name='L3381' href='#L3381'><pre>3381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.forms.len(), 2);</pre></td></tr><tr><td class='line-number'><a name='L3382' href='#L3382'><pre>3382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.user_controls.len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L3383' href='#L3383'><pre>3383</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.user_documents.len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L3384' href='#L3384'><pre>3384</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(</pre></td></tr><tr><td class='line-number'><a name='L3385' href='#L3385'><pre>3385</pre></a></td><td class='skipped-line'></td><td class='code'><pre> project.properties.upgrade_controls,</pre></td></tr><tr><td class='line-number'><a name='L3386' href='#L3386'><pre>3386</pre></a></td><td class='skipped-line'></td><td class='code'><pre> UpgradeControls::Upgrade</pre></td></tr><tr><td class='line-number'><a name='L3387' href='#L3387'><pre>3387</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L3388' href='#L3388'><pre>3388</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.res_file_32_path, "");</pre></td></tr><tr><td class='line-number'><a name='L3389' href='#L3389'><pre>3389</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.icon_form, "");</pre></td></tr><tr><td class='line-number'><a name='L3390' href='#L3390'><pre>3390</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.startup, "");</pre></td></tr><tr><td class='line-number'><a name='L3391' href='#L3391'><pre>3391</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.help_file_path, "");</pre></td></tr><tr><td class='line-number'><a name='L3392' href='#L3392'><pre>3392</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.title, "Project1");</pre></td></tr><tr><td class='line-number'><a name='L3393' href='#L3393'><pre>3393</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.exe_32_file_name, "Project1.exe");</pre></td></tr><tr><td class='line-number'><a name='L3394' href='#L3394'><pre>3394</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.exe_32_compatible, "");</pre></td></tr><tr><td class='line-number'><a name='L3395' href='#L3395'><pre>3395</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.command_line_arguments, "");</pre></td></tr><tr><td class='line-number'><a name='L3396' href='#L3396'><pre>3396</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.path_32, "");</pre></td></tr><tr><td class='line-number'><a name='L3397' href='#L3397'><pre>3397</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.name, "Project1");</pre></td></tr><tr><td class='line-number'><a name='L3398' href='#L3398'><pre>3398</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.help_context_id, "0");</pre></td></tr><tr><td class='line-number'><a name='L3399' href='#L3399'><pre>3399</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(</pre></td></tr><tr><td class='line-number'><a name='L3400' href='#L3400'><pre>3400</pre></a></td><td class='skipped-line'></td><td class='code'><pre> project.properties.compatibility_mode,</pre></td></tr><tr><td class='line-number'><a name='L3401' href='#L3401'><pre>3401</pre></a></td><td class='skipped-line'></td><td class='code'><pre> CompatibilityMode::NoCompatibility</pre></td></tr><tr><td class='line-number'><a name='L3402' href='#L3402'><pre>3402</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L3403' href='#L3403'><pre>3403</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.version_info.major, 1);</pre></td></tr><tr><td class='line-number'><a name='L3404' href='#L3404'><pre>3404</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.version_info.minor, 0);</pre></td></tr><tr><td class='line-number'><a name='L3405' href='#L3405'><pre>3405</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.version_info.revision, 0);</pre></td></tr><tr><td class='line-number'><a name='L3406' href='#L3406'><pre>3406</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.version_info.auto_increment_revision, 0);</pre></td></tr><tr><td class='line-number'><a name='L3407' href='#L3407'><pre>3407</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.version_info.company_name, "Company Name");</pre></td></tr><tr><td class='line-number'><a name='L3408' href='#L3408'><pre>3408</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(</pre></td></tr><tr><td class='line-number'><a name='L3409' href='#L3409'><pre>3409</pre></a></td><td class='skipped-line'></td><td class='code'><pre> project.properties.version_info.file_description,</pre></td></tr><tr><td class='line-number'><a name='L3410' href='#L3410'><pre>3410</pre></a></td><td class='skipped-line'></td><td class='code'><pre> "File Description"</pre></td></tr><tr><td class='line-number'><a name='L3411' href='#L3411'><pre>3411</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L3412' href='#L3412'><pre>3412</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.version_info.trademark, "Trademark");</pre></td></tr><tr><td class='line-number'><a name='L3413' href='#L3413'><pre>3413</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.version_info.product_name, "Product Name");</pre></td></tr><tr><td class='line-number'><a name='L3414' href='#L3414'><pre>3414</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.version_info.comments, "Comments");</pre></td></tr><tr><td class='line-number'><a name='L3415' href='#L3415'><pre>3415</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(</pre></td></tr><tr><td class='line-number'><a name='L3416' href='#L3416'><pre>3416</pre></a></td><td class='skipped-line'></td><td class='code'><pre> project.properties.server_support_files,</pre></td></tr><tr><td class='line-number'><a name='L3417' href='#L3417'><pre>3417</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ServerSupportFiles::Local,</pre></td></tr><tr><td class='line-number'><a name='L3418' href='#L3418'><pre>3418</pre></a></td><td class='skipped-line'></td><td class='code'><pre> "server_support_files check"</pre></td></tr><tr><td class='line-number'><a name='L3419' href='#L3419'><pre>3419</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L3420' href='#L3420'><pre>3420</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.conditional_compile, "");</pre></td></tr><tr><td class='line-number'><a name='L3421' href='#L3421'><pre>3421</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert!(<div class='tooltip'><span class='region red'>matches!</span><span class='tooltip-content'>0</span></div>(</pre></td></tr><tr><td class='line-number'><a name='L3422' href='#L3422'><pre>3422</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> project.properties.compilation_type,</pre></td></tr><tr><td class='line-number'><a name='L3423' href='#L3423'><pre>3423</pre></a></td><td class='skipped-line'></td><td class='code'><pre> CompilationType::NativeCode(NativeCodeSettings {</pre></td></tr><tr><td class='line-number'><a name='L3424' href='#L3424'><pre>3424</pre></a></td><td class='skipped-line'></td><td class='code'><pre> optimization_type: OptimizationType::FavorFastCode,</pre></td></tr><tr><td class='line-number'><a name='L3425' href='#L3425'><pre>3425</pre></a></td><td class='skipped-line'></td><td class='code'><pre> favor_pentium_pro: FavorPentiumPro::False,</pre></td></tr><tr><td class='line-number'><a name='L3426' href='#L3426'><pre>3426</pre></a></td><td class='skipped-line'></td><td class='code'><pre> code_view_debug_info: CodeViewDebugInfo::NotCreated,</pre></td></tr><tr><td class='line-number'><a name='L3427' href='#L3427'><pre>3427</pre></a></td><td class='skipped-line'></td><td class='code'><pre> aliasing: Aliasing::AssumeAliasing,</pre></td></tr><tr><td class='line-number'><a name='L3428' href='#L3428'><pre>3428</pre></a></td><td class='skipped-line'></td><td class='code'><pre> bounds_check: BoundsCheck::CheckBounds,</pre></td></tr><tr><td class='line-number'><a name='L3429' href='#L3429'><pre>3429</pre></a></td><td class='skipped-line'></td><td class='code'><pre> overflow_check: OverflowCheck::CheckOverflow,</pre></td></tr><tr><td class='line-number'><a name='L3430' href='#L3430'><pre>3430</pre></a></td><td class='skipped-line'></td><td class='code'><pre> floating_point_check: FloatingPointErrorCheck::CheckFloatingPointError,</pre></td></tr><tr><td class='line-number'><a name='L3431' href='#L3431'><pre>3431</pre></a></td><td class='skipped-line'></td><td class='code'><pre> pentium_fdiv_bug_check: PentiumFDivBugCheck::CheckPentiumFDivBug,</pre></td></tr><tr><td class='line-number'><a name='L3432' href='#L3432'><pre>3432</pre></a></td><td class='skipped-line'></td><td class='code'><pre> unrounded_floating_point: UnroundedFloatingPoint::DoNotAllow</pre></td></tr><tr><td class='line-number'><a name='L3433' href='#L3433'><pre>3433</pre></a></td><td class='skipped-line'></td><td class='code'><pre> })</pre></td></tr><tr><td class='line-number'><a name='L3434' href='#L3434'><pre>3434</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ));</pre></td></tr><tr><td class='line-number'><a name='L3435' href='#L3435'><pre>3435</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.start_mode, StartMode::StandAlone);</pre></td></tr><tr><td class='line-number'><a name='L3436' href='#L3436'><pre>3436</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.unattended, InteractionMode::Interactive);</pre></td></tr><tr><td class='line-number'><a name='L3437' href='#L3437'><pre>3437</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.retained, Retained::UnloadOnExit);</pre></td></tr><tr><td class='line-number'><a name='L3438' href='#L3438'><pre>3438</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.thread_per_object, 0);</pre></td></tr><tr><td class='line-number'><a name='L3439' href='#L3439'><pre>3439</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.max_number_of_threads, 1);</pre></td></tr><tr><td class='line-number'><a name='L3440' href='#L3440'><pre>3440</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(</pre></td></tr><tr><td class='line-number'><a name='L3441' href='#L3441'><pre>3441</pre></a></td><td class='skipped-line'></td><td class='code'><pre> project.properties.debug_startup_option,</pre></td></tr><tr><td class='line-number'><a name='L3442' href='#L3442'><pre>3442</pre></a></td><td class='skipped-line'></td><td class='code'><pre> DebugStartupOption::WaitForComponentCreation,</pre></td></tr><tr><td class='line-number'><a name='L3443' href='#L3443'><pre>3443</pre></a></td><td class='skipped-line'></td><td class='code'><pre> "debug_startup_option check"</pre></td></tr><tr><td class='line-number'><a name='L3444' href='#L3444'><pre>3444</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L3445' href='#L3445'><pre>3445</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3446' href='#L3446'><pre>3446</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3447' href='#L3447'><pre>3447</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[test]</pre></td></tr><tr><td class='line-number'><a name='L3448' href='#L3448'><pre>3448</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> fn two_line_with_spaces() {</pre></td></tr><tr><td class='line-number'><a name='L3449' href='#L3449'><pre>3449</pre></a></td><td class='skipped-line'></td><td class='code'><pre> use super::parse_converted_value;</pre></td></tr><tr><td class='line-number'><a name='L3450' href='#L3450'><pre>3450</pre></a></td><td class='skipped-line'></td><td class='code'><pre> use super::parse_property_name;</pre></td></tr><tr><td class='line-number'><a name='L3451' href='#L3451'><pre>3451</pre></a></td><td class='skipped-line'></td><td class='code'><pre> use super::parse_reference;</pre></td></tr><tr><td class='line-number'><a name='L3452' href='#L3452'><pre>3452</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3453' href='#L3453'><pre>3453</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let mut input = SourceStream::new(</pre></td></tr><tr><td class='line-number'><a name='L3454' href='#L3454'><pre>3454</pre></a></td><td class='skipped-line'></td><td class='code'><pre> "project.vbp",</pre></td></tr><tr><td class='line-number'><a name='L3455' href='#L3455'><pre>3455</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> r"Type=Exe</pre></td></tr><tr><td class='line-number'><a name='L3456' href='#L3456'><pre>3456</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\Windows\System32\stdole2.tlb#OLE Automation",</pre></td></tr><tr><td class='line-number'><a name='L3457' href='#L3457'><pre>3457</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L3458' href='#L3458'><pre>3458</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3459' href='#L3459'><pre>3459</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let _ = input.take_ascii_whitespaces();</pre></td></tr><tr><td class='line-number'><a name='L3460' href='#L3460'><pre>3460</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3461' href='#L3461'><pre>3461</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let line_type = parse_property_name(&mut input).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3462' href='#L3462'><pre>3462</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let type_result: Result<CompileTargetType, ErrorDetails<ProjectErrorKind>> =</pre></td></tr><tr><td class='line-number'><a name='L3463' href='#L3463'><pre>3463</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> parse_converted_value(&mut input, line_type);</pre></td></tr><tr><td class='line-number'><a name='L3464' href='#L3464'><pre>3464</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3465' href='#L3465'><pre>3465</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert!(type_result.is_ok());</pre></td></tr><tr><td class='line-number'><a name='L3466' href='#L3466'><pre>3466</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(type_result.unwrap(), CompileTargetType::Exe);</pre></td></tr><tr><td class='line-number'><a name='L3467' href='#L3467'><pre>3467</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3468' href='#L3468'><pre>3468</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let _ = input.take_ascii_whitespaces();</pre></td></tr><tr><td class='line-number'><a name='L3469' href='#L3469'><pre>3469</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3470' href='#L3470'><pre>3470</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let _ = parse_property_name(&mut input).unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3471' href='#L3471'><pre>3471</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let reference_result = parse_reference(&mut input);</pre></td></tr><tr><td class='line-number'><a name='L3472' href='#L3472'><pre>3472</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3473' href='#L3473'><pre>3473</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert!(reference_result.is_ok());</pre></td></tr><tr><td class='line-number'><a name='L3474' href='#L3474'><pre>3474</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let reference = reference_result.unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3475' href='#L3475'><pre>3475</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(</pre></td></tr><tr><td class='line-number'><a name='L3476' href='#L3476'><pre>3476</pre></a></td><td class='skipped-line'></td><td class='code'><pre> reference,</pre></td></tr><tr><td class='line-number'><a name='L3477' href='#L3477'><pre>3477</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> ProjectReference::Compiled {</pre></td></tr><tr><td class='line-number'><a name='L3478' href='#L3478'><pre>3478</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> uuid: Uuid::parse_str("00020430-0000-0000-C000-000000000046").unwrap(),</pre></td></tr><tr><td class='line-number'><a name='L3479' href='#L3479'><pre>3479</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> unknown1: "2.0",</pre></td></tr><tr><td class='line-number'><a name='L3480' href='#L3480'><pre>3480</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> unknown2: "0",</pre></td></tr><tr><td class='line-number'><a name='L3481' href='#L3481'><pre>3481</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> path: r"C:\Windows\System32\stdole2.tlb",</pre></td></tr><tr><td class='line-number'><a name='L3482' href='#L3482'><pre>3482</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> description: "OLE Automation",</pre></td></tr><tr><td class='line-number'><a name='L3483' href='#L3483'><pre>3483</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3484' href='#L3484'><pre>3484</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L3485' href='#L3485'><pre>3485</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3486' href='#L3486'><pre>3486</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3487' href='#L3487'><pre>3487</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[test]</pre></td></tr><tr><td class='line-number'><a name='L3488' href='#L3488'><pre>3488</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[allow(clippy::too_many_lines)]</pre></td></tr><tr><td class='line-number'><a name='L3489' href='#L3489'><pre>3489</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> fn no_startup_selected() {</pre></td></tr><tr><td class='line-number'><a name='L3490' href='#L3490'><pre>3490</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let input = r#"Type=Exe</pre></td></tr><tr><td class='line-number'><a name='L3491' href='#L3491'><pre>3491</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\Windows\System32\stdole2.tlb#OLE Automation</pre></td></tr><tr><td class='line-number'><a name='L3492' href='#L3492'><pre>3492</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Object={00020430-0000-0000-C000-000000000046}#2.0#0; stdole2.tlb</pre></td></tr><tr><td class='line-number'><a name='L3493' href='#L3493'><pre>3493</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Module=Module1; Module1.bas</pre></td></tr><tr><td class='line-number'><a name='L3494' href='#L3494'><pre>3494</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Class=Class1; Class1.cls</pre></td></tr><tr><td class='line-number'><a name='L3495' href='#L3495'><pre>3495</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Form=Form1.frm</pre></td></tr><tr><td class='line-number'><a name='L3496' href='#L3496'><pre>3496</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Form=Form2.frm</pre></td></tr><tr><td class='line-number'><a name='L3497' href='#L3497'><pre>3497</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> UserControl=UserControl1.ctl</pre></td></tr><tr><td class='line-number'><a name='L3498' href='#L3498'><pre>3498</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> UserDocument=UserDocument1.uds</pre></td></tr><tr><td class='line-number'><a name='L3499' href='#L3499'><pre>3499</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> ExeName32="Project1.exe"</pre></td></tr><tr><td class='line-number'><a name='L3500' href='#L3500'><pre>3500</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Command32=""</pre></td></tr><tr><td class='line-number'><a name='L3501' href='#L3501'><pre>3501</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Path32=""</pre></td></tr><tr><td class='line-number'><a name='L3502' href='#L3502'><pre>3502</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Name="Project1"</pre></td></tr><tr><td class='line-number'><a name='L3503' href='#L3503'><pre>3503</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> HelpContextID="0"</pre></td></tr><tr><td class='line-number'><a name='L3504' href='#L3504'><pre>3504</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> CompatibleMode="0"</pre></td></tr><tr><td class='line-number'><a name='L3505' href='#L3505'><pre>3505</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> MajorVer=1</pre></td></tr><tr><td class='line-number'><a name='L3506' href='#L3506'><pre>3506</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> MinorVer=0</pre></td></tr><tr><td class='line-number'><a name='L3507' href='#L3507'><pre>3507</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> RevisionVer=0</pre></td></tr><tr><td class='line-number'><a name='L3508' href='#L3508'><pre>3508</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> AutoIncrementVer=0</pre></td></tr><tr><td class='line-number'><a name='L3509' href='#L3509'><pre>3509</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> StartMode=0</pre></td></tr><tr><td class='line-number'><a name='L3510' href='#L3510'><pre>3510</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Unattended=0</pre></td></tr><tr><td class='line-number'><a name='L3511' href='#L3511'><pre>3511</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Retained=0</pre></td></tr><tr><td class='line-number'><a name='L3512' href='#L3512'><pre>3512</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> ThreadPerObject=0</pre></td></tr><tr><td class='line-number'><a name='L3513' href='#L3513'><pre>3513</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> MaxNumberOfThreads=1</pre></td></tr><tr><td class='line-number'><a name='L3514' href='#L3514'><pre>3514</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> DebugStartupOption=0</pre></td></tr><tr><td class='line-number'><a name='L3515' href='#L3515'><pre>3515</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> NoControlUpgrade=0</pre></td></tr><tr><td class='line-number'><a name='L3516' href='#L3516'><pre>3516</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> ServerSupportFiles=0</pre></td></tr><tr><td class='line-number'><a name='L3517' href='#L3517'><pre>3517</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> VersionCompanyName="Company Name"</pre></td></tr><tr><td class='line-number'><a name='L3518' href='#L3518'><pre>3518</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> VersionFileDescription="File Description"</pre></td></tr><tr><td class='line-number'><a name='L3519' href='#L3519'><pre>3519</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> VersionLegalCopyright="Copyright"</pre></td></tr><tr><td class='line-number'><a name='L3520' href='#L3520'><pre>3520</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> VersionLegalTrademarks="Trademark"</pre></td></tr><tr><td class='line-number'><a name='L3521' href='#L3521'><pre>3521</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> VersionProductName="Product Name"</pre></td></tr><tr><td class='line-number'><a name='L3522' href='#L3522'><pre>3522</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> VersionComments="Comments"</pre></td></tr><tr><td class='line-number'><a name='L3523' href='#L3523'><pre>3523</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> CompilationType=0</pre></td></tr><tr><td class='line-number'><a name='L3524' href='#L3524'><pre>3524</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> OptimizationType=0</pre></td></tr><tr><td class='line-number'><a name='L3525' href='#L3525'><pre>3525</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> FavorPentiumPro(tm)=0</pre></td></tr><tr><td class='line-number'><a name='L3526' href='#L3526'><pre>3526</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> CodeViewDebugInfo=0</pre></td></tr><tr><td class='line-number'><a name='L3527' href='#L3527'><pre>3527</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> NoAliasing=0</pre></td></tr><tr><td class='line-number'><a name='L3528' href='#L3528'><pre>3528</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> BoundsCheck=0</pre></td></tr><tr><td class='line-number'><a name='L3529' href='#L3529'><pre>3529</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> OverflowCheck=0</pre></td></tr><tr><td class='line-number'><a name='L3530' href='#L3530'><pre>3530</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> FlPointCheck=0</pre></td></tr><tr><td class='line-number'><a name='L3531' href='#L3531'><pre>3531</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> FDIVCheck=0</pre></td></tr><tr><td class='line-number'><a name='L3532' href='#L3532'><pre>3532</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> UnroundedFP=0</pre></td></tr><tr><td class='line-number'><a name='L3533' href='#L3533'><pre>3533</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> CondComp=""</pre></td></tr><tr><td class='line-number'><a name='L3534' href='#L3534'><pre>3534</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> ResFile32=""</pre></td></tr><tr><td class='line-number'><a name='L3535' href='#L3535'><pre>3535</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> IconForm=""</pre></td></tr><tr><td class='line-number'><a name='L3536' href='#L3536'><pre>3536</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Startup=!(None)!</pre></td></tr><tr><td class='line-number'><a name='L3537' href='#L3537'><pre>3537</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> HelpFile=""</pre></td></tr><tr><td class='line-number'><a name='L3538' href='#L3538'><pre>3538</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Title="Project1"</pre></td></tr><tr><td class='line-number'><a name='L3539' href='#L3539'><pre>3539</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3540' href='#L3540'><pre>3540</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> [MS Transaction Server]</pre></td></tr><tr><td class='line-number'><a name='L3541' href='#L3541'><pre>3541</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> AutoRefresh=1</pre></td></tr><tr><td class='line-number'><a name='L3542' href='#L3542'><pre>3542</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre>"#;</pre></td></tr><tr><td class='line-number'><a name='L3543' href='#L3543'><pre>3543</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3544' href='#L3544'><pre>3544</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let project_source_file = match SourceFile::decode("project1.vbp", input.as_bytes()) {</pre></td></tr><tr><td class='line-number'><a name='L3545' href='#L3545'><pre>3545</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Ok(source_file) => source_file,</pre></td></tr><tr><td class='line-number'><a name='L3546' href='#L3546'><pre>3546</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => {</pre></td></tr><tr><td class='line-number'><a name='L3547' href='#L3547'><pre>3547</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>panic!</span>("{}", <span class='region red'>e</span>.<span class='region red'>print_to_string</span>().<span class='region red'>unwrap</span>());</pre></td></tr><tr><td class='line-number'><a name='L3548' href='#L3548'><pre>3548</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3549' href='#L3549'><pre>3549</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L3550' href='#L3550'><pre>3550</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3551' href='#L3551'><pre>3551</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let result = ProjectFile::parse(&project_source_file);</pre></td></tr><tr><td class='line-number'><a name='L3552' href='#L3552'><pre>3552</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3553' href='#L3553'><pre>3553</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> if result.has_failures() {</pre></td></tr><tr><td class='line-number'><a name='L3554' href='#L3554'><pre>3554</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> for <span class='region red'>failure</span> in <span class='region red'>result</span>.<span class='region red'>failures</span>() <span class='region red'>{</span></pre></td></tr><tr><td class='line-number'><a name='L3555' href='#L3555'><pre>3555</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> failure.print();</span></pre></td></tr><tr><td class='line-number'><a name='L3556' href='#L3556'><pre>3556</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span></pre></td></tr><tr><td class='line-number'><a name='L3557' href='#L3557'><pre>3557</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3558' href='#L3558'><pre>3558</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>panic!</span>("Project parse had failures");</pre></td></tr><tr><td class='line-number'><a name='L3559' href='#L3559'><pre>3559</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3560' href='#L3560'><pre>3560</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3561' href='#L3561'><pre>3561</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let project = result.unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3562' href='#L3562'><pre>3562</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3563' href='#L3563'><pre>3563</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> match project.properties.compilation_type {</pre></td></tr><tr><td class='line-number'><a name='L3564' href='#L3564'><pre>3564</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> CompilationType::PCode => <span class='region red'>{}</span></pre></td></tr><tr><td class='line-number'><a name='L3565' href='#L3565'><pre>3565</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> CompilationType::NativeCode(val) => {</pre></td></tr><tr><td class='line-number'><a name='L3566' href='#L3566'><pre>3566</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> println!("{:?}", val.pentium_fdiv_bug_check);</pre></td></tr><tr><td class='line-number'><a name='L3567' href='#L3567'><pre>3567</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3568' href='#L3568'><pre>3568</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3569' href='#L3569'><pre>3569</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3570' href='#L3570'><pre>3570</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.project_type, CompileTargetType::Exe);</pre></td></tr><tr><td class='line-number'><a name='L3571' href='#L3571'><pre>3571</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.references.len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L3572' href='#L3572'><pre>3572</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.objects.len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L3573' href='#L3573'><pre>3573</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.modules.len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L3574' href='#L3574'><pre>3574</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.classes.len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L3575' href='#L3575'><pre>3575</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.designers.len(), 0);</pre></td></tr><tr><td class='line-number'><a name='L3576' href='#L3576'><pre>3576</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.forms.len(), 2);</pre></td></tr><tr><td class='line-number'><a name='L3577' href='#L3577'><pre>3577</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.user_controls.len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L3578' href='#L3578'><pre>3578</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.user_documents.len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L3579' href='#L3579'><pre>3579</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(</pre></td></tr><tr><td class='line-number'><a name='L3580' href='#L3580'><pre>3580</pre></a></td><td class='skipped-line'></td><td class='code'><pre> project.properties.upgrade_controls,</pre></td></tr><tr><td class='line-number'><a name='L3581' href='#L3581'><pre>3581</pre></a></td><td class='skipped-line'></td><td class='code'><pre> UpgradeControls::Upgrade</pre></td></tr><tr><td class='line-number'><a name='L3582' href='#L3582'><pre>3582</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L3583' href='#L3583'><pre>3583</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.res_file_32_path, "");</pre></td></tr><tr><td class='line-number'><a name='L3584' href='#L3584'><pre>3584</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.icon_form, "");</pre></td></tr><tr><td class='line-number'><a name='L3585' href='#L3585'><pre>3585</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.startup, "");</pre></td></tr><tr><td class='line-number'><a name='L3586' href='#L3586'><pre>3586</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.help_file_path, "");</pre></td></tr><tr><td class='line-number'><a name='L3587' href='#L3587'><pre>3587</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.title, "Project1");</pre></td></tr><tr><td class='line-number'><a name='L3588' href='#L3588'><pre>3588</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.exe_32_file_name, "Project1.exe");</pre></td></tr><tr><td class='line-number'><a name='L3589' href='#L3589'><pre>3589</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.exe_32_compatible, "");</pre></td></tr><tr><td class='line-number'><a name='L3590' href='#L3590'><pre>3590</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.command_line_arguments, "");</pre></td></tr><tr><td class='line-number'><a name='L3591' href='#L3591'><pre>3591</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.path_32, "");</pre></td></tr><tr><td class='line-number'><a name='L3592' href='#L3592'><pre>3592</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.name, "Project1");</pre></td></tr><tr><td class='line-number'><a name='L3593' href='#L3593'><pre>3593</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.help_context_id, "0");</pre></td></tr><tr><td class='line-number'><a name='L3594' href='#L3594'><pre>3594</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(</pre></td></tr><tr><td class='line-number'><a name='L3595' href='#L3595'><pre>3595</pre></a></td><td class='skipped-line'></td><td class='code'><pre> project.properties.compatibility_mode,</pre></td></tr><tr><td class='line-number'><a name='L3596' href='#L3596'><pre>3596</pre></a></td><td class='skipped-line'></td><td class='code'><pre> CompatibilityMode::NoCompatibility</pre></td></tr><tr><td class='line-number'><a name='L3597' href='#L3597'><pre>3597</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L3598' href='#L3598'><pre>3598</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.version_info.major, 1);</pre></td></tr><tr><td class='line-number'><a name='L3599' href='#L3599'><pre>3599</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.version_info.minor, 0);</pre></td></tr><tr><td class='line-number'><a name='L3600' href='#L3600'><pre>3600</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.version_info.revision, 0);</pre></td></tr><tr><td class='line-number'><a name='L3601' href='#L3601'><pre>3601</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.version_info.auto_increment_revision, 0);</pre></td></tr><tr><td class='line-number'><a name='L3602' href='#L3602'><pre>3602</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.version_info.company_name, "Company Name");</pre></td></tr><tr><td class='line-number'><a name='L3603' href='#L3603'><pre>3603</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(</pre></td></tr><tr><td class='line-number'><a name='L3604' href='#L3604'><pre>3604</pre></a></td><td class='skipped-line'></td><td class='code'><pre> project.properties.version_info.file_description,</pre></td></tr><tr><td class='line-number'><a name='L3605' href='#L3605'><pre>3605</pre></a></td><td class='skipped-line'></td><td class='code'><pre> "File Description"</pre></td></tr><tr><td class='line-number'><a name='L3606' href='#L3606'><pre>3606</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L3607' href='#L3607'><pre>3607</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.version_info.trademark, "Trademark");</pre></td></tr><tr><td class='line-number'><a name='L3608' href='#L3608'><pre>3608</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.version_info.product_name, "Product Name");</pre></td></tr><tr><td class='line-number'><a name='L3609' href='#L3609'><pre>3609</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.version_info.comments, "Comments");</pre></td></tr><tr><td class='line-number'><a name='L3610' href='#L3610'><pre>3610</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(</pre></td></tr><tr><td class='line-number'><a name='L3611' href='#L3611'><pre>3611</pre></a></td><td class='skipped-line'></td><td class='code'><pre> project.properties.server_support_files,</pre></td></tr><tr><td class='line-number'><a name='L3612' href='#L3612'><pre>3612</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ServerSupportFiles::Local,</pre></td></tr><tr><td class='line-number'><a name='L3613' href='#L3613'><pre>3613</pre></a></td><td class='skipped-line'></td><td class='code'><pre> "server_support_files check"</pre></td></tr><tr><td class='line-number'><a name='L3614' href='#L3614'><pre>3614</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L3615' href='#L3615'><pre>3615</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.conditional_compile, "");</pre></td></tr><tr><td class='line-number'><a name='L3616' href='#L3616'><pre>3616</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(</pre></td></tr><tr><td class='line-number'><a name='L3617' href='#L3617'><pre>3617</pre></a></td><td class='skipped-line'></td><td class='code'><pre> project.properties.compilation_type,</pre></td></tr><tr><td class='line-number'><a name='L3618' href='#L3618'><pre>3618</pre></a></td><td class='skipped-line'></td><td class='code'><pre> CompilationType::NativeCode(NativeCodeSettings {</pre></td></tr><tr><td class='line-number'><a name='L3619' href='#L3619'><pre>3619</pre></a></td><td class='skipped-line'></td><td class='code'><pre> optimization_type: OptimizationType::FavorFastCode,</pre></td></tr><tr><td class='line-number'><a name='L3620' href='#L3620'><pre>3620</pre></a></td><td class='skipped-line'></td><td class='code'><pre> favor_pentium_pro: FavorPentiumPro::False,</pre></td></tr><tr><td class='line-number'><a name='L3621' href='#L3621'><pre>3621</pre></a></td><td class='skipped-line'></td><td class='code'><pre> code_view_debug_info: CodeViewDebugInfo::NotCreated,</pre></td></tr><tr><td class='line-number'><a name='L3622' href='#L3622'><pre>3622</pre></a></td><td class='skipped-line'></td><td class='code'><pre> aliasing: Aliasing::AssumeAliasing,</pre></td></tr><tr><td class='line-number'><a name='L3623' href='#L3623'><pre>3623</pre></a></td><td class='skipped-line'></td><td class='code'><pre> bounds_check: BoundsCheck::CheckBounds,</pre></td></tr><tr><td class='line-number'><a name='L3624' href='#L3624'><pre>3624</pre></a></td><td class='skipped-line'></td><td class='code'><pre> overflow_check: OverflowCheck::CheckOverflow,</pre></td></tr><tr><td class='line-number'><a name='L3625' href='#L3625'><pre>3625</pre></a></td><td class='skipped-line'></td><td class='code'><pre> floating_point_check: FloatingPointErrorCheck::CheckFloatingPointError,</pre></td></tr><tr><td class='line-number'><a name='L3626' href='#L3626'><pre>3626</pre></a></td><td class='skipped-line'></td><td class='code'><pre> pentium_fdiv_bug_check: PentiumFDivBugCheck::CheckPentiumFDivBug,</pre></td></tr><tr><td class='line-number'><a name='L3627' href='#L3627'><pre>3627</pre></a></td><td class='skipped-line'></td><td class='code'><pre> unrounded_floating_point: UnroundedFloatingPoint::DoNotAllow,</pre></td></tr><tr><td class='line-number'><a name='L3628' href='#L3628'><pre>3628</pre></a></td><td class='skipped-line'></td><td class='code'><pre> })</pre></td></tr><tr><td class='line-number'><a name='L3629' href='#L3629'><pre>3629</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L3630' href='#L3630'><pre>3630</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.start_mode, StartMode::StandAlone);</pre></td></tr><tr><td class='line-number'><a name='L3631' href='#L3631'><pre>3631</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.unattended, InteractionMode::Interactive);</pre></td></tr><tr><td class='line-number'><a name='L3632' href='#L3632'><pre>3632</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.retained, Retained::UnloadOnExit);</pre></td></tr><tr><td class='line-number'><a name='L3633' href='#L3633'><pre>3633</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.thread_per_object, 0);</pre></td></tr><tr><td class='line-number'><a name='L3634' href='#L3634'><pre>3634</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.max_number_of_threads, 1);</pre></td></tr><tr><td class='line-number'><a name='L3635' href='#L3635'><pre>3635</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(</pre></td></tr><tr><td class='line-number'><a name='L3636' href='#L3636'><pre>3636</pre></a></td><td class='skipped-line'></td><td class='code'><pre> project.properties.debug_startup_option,</pre></td></tr><tr><td class='line-number'><a name='L3637' href='#L3637'><pre>3637</pre></a></td><td class='skipped-line'></td><td class='code'><pre> DebugStartupOption::WaitForComponentCreation,</pre></td></tr><tr><td class='line-number'><a name='L3638' href='#L3638'><pre>3638</pre></a></td><td class='skipped-line'></td><td class='code'><pre> "debug_startup_option check"</pre></td></tr><tr><td class='line-number'><a name='L3639' href='#L3639'><pre>3639</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L3640' href='#L3640'><pre>3640</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3641' href='#L3641'><pre>3641</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3642' href='#L3642'><pre>3642</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[test]</pre></td></tr><tr><td class='line-number'><a name='L3643' href='#L3643'><pre>3643</pre></a></td><td class='skipped-line'></td><td class='code'><pre> #[allow(clippy::too_many_lines)]</pre></td></tr><tr><td class='line-number'><a name='L3644' href='#L3644'><pre>3644</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> fn extra_property_sections() {</pre></td></tr><tr><td class='line-number'><a name='L3645' href='#L3645'><pre>3645</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let input = r#"Type=Exe</pre></td></tr><tr><td class='line-number'><a name='L3646' href='#L3646'><pre>3646</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\Windows\System32\stdole2.tlb#OLE Automation</pre></td></tr><tr><td class='line-number'><a name='L3647' href='#L3647'><pre>3647</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Object={00020430-0000-0000-C000-000000000046}#2.0#0; stdole2.tlb</pre></td></tr><tr><td class='line-number'><a name='L3648' href='#L3648'><pre>3648</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Module=Module1; Module1.bas</pre></td></tr><tr><td class='line-number'><a name='L3649' href='#L3649'><pre>3649</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Class=Class1; Class1.cls</pre></td></tr><tr><td class='line-number'><a name='L3650' href='#L3650'><pre>3650</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Form=Form1.frm</pre></td></tr><tr><td class='line-number'><a name='L3651' href='#L3651'><pre>3651</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Form=Form2.frm</pre></td></tr><tr><td class='line-number'><a name='L3652' href='#L3652'><pre>3652</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> UserControl=UserControl1.ctl</pre></td></tr><tr><td class='line-number'><a name='L3653' href='#L3653'><pre>3653</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> UserDocument=UserDocument1.uds</pre></td></tr><tr><td class='line-number'><a name='L3654' href='#L3654'><pre>3654</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> ExeName32="Project1.exe"</pre></td></tr><tr><td class='line-number'><a name='L3655' href='#L3655'><pre>3655</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Command32=""</pre></td></tr><tr><td class='line-number'><a name='L3656' href='#L3656'><pre>3656</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Path32=""</pre></td></tr><tr><td class='line-number'><a name='L3657' href='#L3657'><pre>3657</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Name="Project1"</pre></td></tr><tr><td class='line-number'><a name='L3658' href='#L3658'><pre>3658</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> HelpContextID="0"</pre></td></tr><tr><td class='line-number'><a name='L3659' href='#L3659'><pre>3659</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> CompatibleMode="0"</pre></td></tr><tr><td class='line-number'><a name='L3660' href='#L3660'><pre>3660</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> MajorVer=1</pre></td></tr><tr><td class='line-number'><a name='L3661' href='#L3661'><pre>3661</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> MinorVer=0</pre></td></tr><tr><td class='line-number'><a name='L3662' href='#L3662'><pre>3662</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> RevisionVer=0</pre></td></tr><tr><td class='line-number'><a name='L3663' href='#L3663'><pre>3663</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> AutoIncrementVer=0</pre></td></tr><tr><td class='line-number'><a name='L3664' href='#L3664'><pre>3664</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> StartMode=0</pre></td></tr><tr><td class='line-number'><a name='L3665' href='#L3665'><pre>3665</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Unattended=0</pre></td></tr><tr><td class='line-number'><a name='L3666' href='#L3666'><pre>3666</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Retained=0</pre></td></tr><tr><td class='line-number'><a name='L3667' href='#L3667'><pre>3667</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> ThreadPerObject=0</pre></td></tr><tr><td class='line-number'><a name='L3668' href='#L3668'><pre>3668</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> MaxNumberOfThreads=1</pre></td></tr><tr><td class='line-number'><a name='L3669' href='#L3669'><pre>3669</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> DebugStartupOption=0</pre></td></tr><tr><td class='line-number'><a name='L3670' href='#L3670'><pre>3670</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> NoControlUpgrade=0</pre></td></tr><tr><td class='line-number'><a name='L3671' href='#L3671'><pre>3671</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> ServerSupportFiles=0</pre></td></tr><tr><td class='line-number'><a name='L3672' href='#L3672'><pre>3672</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> VersionCompanyName="Company Name"</pre></td></tr><tr><td class='line-number'><a name='L3673' href='#L3673'><pre>3673</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> VersionFileDescription="File Description"</pre></td></tr><tr><td class='line-number'><a name='L3674' href='#L3674'><pre>3674</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> VersionLegalCopyright="Copyright"</pre></td></tr><tr><td class='line-number'><a name='L3675' href='#L3675'><pre>3675</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> VersionLegalTrademarks="Trademark"</pre></td></tr><tr><td class='line-number'><a name='L3676' href='#L3676'><pre>3676</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> VersionProductName="Product Name"</pre></td></tr><tr><td class='line-number'><a name='L3677' href='#L3677'><pre>3677</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> VersionComments="Comments"</pre></td></tr><tr><td class='line-number'><a name='L3678' href='#L3678'><pre>3678</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> CompilationType=0</pre></td></tr><tr><td class='line-number'><a name='L3679' href='#L3679'><pre>3679</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> OptimizationType=0</pre></td></tr><tr><td class='line-number'><a name='L3680' href='#L3680'><pre>3680</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> FavorPentiumPro(tm)=0</pre></td></tr><tr><td class='line-number'><a name='L3681' href='#L3681'><pre>3681</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> CodeViewDebugInfo=0</pre></td></tr><tr><td class='line-number'><a name='L3682' href='#L3682'><pre>3682</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> NoAliasing=0</pre></td></tr><tr><td class='line-number'><a name='L3683' href='#L3683'><pre>3683</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> BoundsCheck=0</pre></td></tr><tr><td class='line-number'><a name='L3684' href='#L3684'><pre>3684</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> OverflowCheck=0</pre></td></tr><tr><td class='line-number'><a name='L3685' href='#L3685'><pre>3685</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> FlPointCheck=0</pre></td></tr><tr><td class='line-number'><a name='L3686' href='#L3686'><pre>3686</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> FDIVCheck=0</pre></td></tr><tr><td class='line-number'><a name='L3687' href='#L3687'><pre>3687</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> UnroundedFP=0</pre></td></tr><tr><td class='line-number'><a name='L3688' href='#L3688'><pre>3688</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> CondComp=""</pre></td></tr><tr><td class='line-number'><a name='L3689' href='#L3689'><pre>3689</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> ResFile32=""</pre></td></tr><tr><td class='line-number'><a name='L3690' href='#L3690'><pre>3690</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> IconForm=""</pre></td></tr><tr><td class='line-number'><a name='L3691' href='#L3691'><pre>3691</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Startup=!(None)!</pre></td></tr><tr><td class='line-number'><a name='L3692' href='#L3692'><pre>3692</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> HelpFile=""</pre></td></tr><tr><td class='line-number'><a name='L3693' href='#L3693'><pre>3693</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Title="Project1"</pre></td></tr><tr><td class='line-number'><a name='L3694' href='#L3694'><pre>3694</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3695' href='#L3695'><pre>3695</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> [MS Transaction Server]</pre></td></tr><tr><td class='line-number'><a name='L3696' href='#L3696'><pre>3696</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> AutoRefresh=1</pre></td></tr><tr><td class='line-number'><a name='L3697' href='#L3697'><pre>3697</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> </pre></td></tr><tr><td class='line-number'><a name='L3698' href='#L3698'><pre>3698</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> [VBCompiler]</pre></td></tr><tr><td class='line-number'><a name='L3699' href='#L3699'><pre>3699</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> LinkSwitches=/STACK:32180000</pre></td></tr><tr><td class='line-number'><a name='L3700' href='#L3700'><pre>3700</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Comment=Nouveaut�s :�- ajout d'options dans le menu du widget��Am�liorations :�- position de la fenetre sauvegard�e��Bugs corrig�s :�- 1.4.12 - L'erreur 383 s'est produite dans la fen�tre frmConfig de la proc�dure TimerStart_Timer � la ligne 780 : Propri�t� 'Text' en lecture seule.�- Position de la fen�tre non restaur� en cas de r�duction auto au d�marrage.</pre></td></tr><tr><td class='line-number'><a name='L3701' href='#L3701'><pre>3701</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre>"#;</pre></td></tr><tr><td class='line-number'><a name='L3702' href='#L3702'><pre>3702</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3703' href='#L3703'><pre>3703</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let project_source_file =</pre></td></tr><tr><td class='line-number'><a name='L3704' href='#L3704'><pre>3704</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> match SourceFile::decode_with_replacement("project1.vbp", input.as_bytes()) {</pre></td></tr><tr><td class='line-number'><a name='L3705' href='#L3705'><pre>3705</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Ok(source_file) => source_file,</pre></td></tr><tr><td class='line-number'><a name='L3706' href='#L3706'><pre>3706</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> Err(<span class='region red'>e</span>) => {</pre></td></tr><tr><td class='line-number'><a name='L3707' href='#L3707'><pre>3707</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>e</span>.<span class='region red'>print</span>();</pre></td></tr><tr><td class='line-number'><a name='L3708' href='#L3708'><pre>3708</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>panic!</span>("failed to decode project source code.");</pre></td></tr><tr><td class='line-number'><a name='L3709' href='#L3709'><pre>3709</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3710' href='#L3710'><pre>3710</pre></a></td><td class='skipped-line'></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L3711' href='#L3711'><pre>3711</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3712' href='#L3712'><pre>3712</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let result = ProjectFile::parse(&project_source_file);</pre></td></tr><tr><td class='line-number'><a name='L3713' href='#L3713'><pre>3713</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3714' href='#L3714'><pre>3714</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> if result.has_failures() {</pre></td></tr><tr><td class='line-number'><a name='L3715' href='#L3715'><pre>3715</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> for <span class='region red'>failure</span> in <span class='region red'>result</span>.<span class='region red'>failures</span>() <span class='region red'>{</span></pre></td></tr><tr><td class='line-number'><a name='L3716' href='#L3716'><pre>3716</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> failure.print();</span></pre></td></tr><tr><td class='line-number'><a name='L3717' href='#L3717'><pre>3717</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='region red'> }</span></pre></td></tr><tr><td class='line-number'><a name='L3718' href='#L3718'><pre>3718</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3719' href='#L3719'><pre>3719</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='region red'>panic!</span>("Project parse had failures");</pre></td></tr><tr><td class='line-number'><a name='L3720' href='#L3720'><pre>3720</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3721' href='#L3721'><pre>3721</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3722' href='#L3722'><pre>3722</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> let project = result.unwrap();</pre></td></tr><tr><td class='line-number'><a name='L3723' href='#L3723'><pre>3723</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3724' href='#L3724'><pre>3724</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.project_type, CompileTargetType::Exe);</pre></td></tr><tr><td class='line-number'><a name='L3725' href='#L3725'><pre>3725</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.references.len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L3726' href='#L3726'><pre>3726</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.objects.len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L3727' href='#L3727'><pre>3727</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.modules.len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L3728' href='#L3728'><pre>3728</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.classes.len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L3729' href='#L3729'><pre>3729</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.designers.len(), 0);</pre></td></tr><tr><td class='line-number'><a name='L3730' href='#L3730'><pre>3730</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.forms.len(), 2);</pre></td></tr><tr><td class='line-number'><a name='L3731' href='#L3731'><pre>3731</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.user_controls.len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L3732' href='#L3732'><pre>3732</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.user_documents.len(), 1);</pre></td></tr><tr><td class='line-number'><a name='L3733' href='#L3733'><pre>3733</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.other_properties.len(), 2);</pre></td></tr><tr><td class='line-number'><a name='L3734' href='#L3734'><pre>3734</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(</pre></td></tr><tr><td class='line-number'><a name='L3735' href='#L3735'><pre>3735</pre></a></td><td class='skipped-line'></td><td class='code'><pre> project.properties.upgrade_controls,</pre></td></tr><tr><td class='line-number'><a name='L3736' href='#L3736'><pre>3736</pre></a></td><td class='skipped-line'></td><td class='code'><pre> UpgradeControls::Upgrade</pre></td></tr><tr><td class='line-number'><a name='L3737' href='#L3737'><pre>3737</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L3738' href='#L3738'><pre>3738</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.res_file_32_path, "");</pre></td></tr><tr><td class='line-number'><a name='L3739' href='#L3739'><pre>3739</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.icon_form, "");</pre></td></tr><tr><td class='line-number'><a name='L3740' href='#L3740'><pre>3740</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.startup, "");</pre></td></tr><tr><td class='line-number'><a name='L3741' href='#L3741'><pre>3741</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.help_file_path, "");</pre></td></tr><tr><td class='line-number'><a name='L3742' href='#L3742'><pre>3742</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.title, "Project1");</pre></td></tr><tr><td class='line-number'><a name='L3743' href='#L3743'><pre>3743</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.exe_32_file_name, "Project1.exe");</pre></td></tr><tr><td class='line-number'><a name='L3744' href='#L3744'><pre>3744</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.exe_32_compatible, "");</pre></td></tr><tr><td class='line-number'><a name='L3745' href='#L3745'><pre>3745</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.command_line_arguments, "");</pre></td></tr><tr><td class='line-number'><a name='L3746' href='#L3746'><pre>3746</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.path_32, "");</pre></td></tr><tr><td class='line-number'><a name='L3747' href='#L3747'><pre>3747</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.name, "Project1");</pre></td></tr><tr><td class='line-number'><a name='L3748' href='#L3748'><pre>3748</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.help_context_id, "0");</pre></td></tr><tr><td class='line-number'><a name='L3749' href='#L3749'><pre>3749</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(</pre></td></tr><tr><td class='line-number'><a name='L3750' href='#L3750'><pre>3750</pre></a></td><td class='skipped-line'></td><td class='code'><pre> project.properties.compatibility_mode,</pre></td></tr><tr><td class='line-number'><a name='L3751' href='#L3751'><pre>3751</pre></a></td><td class='skipped-line'></td><td class='code'><pre> CompatibilityMode::NoCompatibility</pre></td></tr><tr><td class='line-number'><a name='L3752' href='#L3752'><pre>3752</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L3753' href='#L3753'><pre>3753</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.version_info.major, 1);</pre></td></tr><tr><td class='line-number'><a name='L3754' href='#L3754'><pre>3754</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.version_info.minor, 0);</pre></td></tr><tr><td class='line-number'><a name='L3755' href='#L3755'><pre>3755</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.version_info.revision, 0);</pre></td></tr><tr><td class='line-number'><a name='L3756' href='#L3756'><pre>3756</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.version_info.auto_increment_revision, 0);</pre></td></tr><tr><td class='line-number'><a name='L3757' href='#L3757'><pre>3757</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.version_info.company_name, "Company Name");</pre></td></tr><tr><td class='line-number'><a name='L3758' href='#L3758'><pre>3758</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(</pre></td></tr><tr><td class='line-number'><a name='L3759' href='#L3759'><pre>3759</pre></a></td><td class='skipped-line'></td><td class='code'><pre> project.properties.version_info.file_description,</pre></td></tr><tr><td class='line-number'><a name='L3760' href='#L3760'><pre>3760</pre></a></td><td class='skipped-line'></td><td class='code'><pre> "File Description"</pre></td></tr><tr><td class='line-number'><a name='L3761' href='#L3761'><pre>3761</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L3762' href='#L3762'><pre>3762</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.version_info.trademark, "Trademark");</pre></td></tr><tr><td class='line-number'><a name='L3763' href='#L3763'><pre>3763</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.version_info.product_name, "Product Name");</pre></td></tr><tr><td class='line-number'><a name='L3764' href='#L3764'><pre>3764</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.version_info.comments, "Comments");</pre></td></tr><tr><td class='line-number'><a name='L3765' href='#L3765'><pre>3765</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(</pre></td></tr><tr><td class='line-number'><a name='L3766' href='#L3766'><pre>3766</pre></a></td><td class='skipped-line'></td><td class='code'><pre> project.properties.server_support_files,</pre></td></tr><tr><td class='line-number'><a name='L3767' href='#L3767'><pre>3767</pre></a></td><td class='skipped-line'></td><td class='code'><pre> ServerSupportFiles::Local,</pre></td></tr><tr><td class='line-number'><a name='L3768' href='#L3768'><pre>3768</pre></a></td><td class='skipped-line'></td><td class='code'><pre> "server_support_files check"</pre></td></tr><tr><td class='line-number'><a name='L3769' href='#L3769'><pre>3769</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L3770' href='#L3770'><pre>3770</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.conditional_compile, "");</pre></td></tr><tr><td class='line-number'><a name='L3771' href='#L3771'><pre>3771</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3772' href='#L3772'><pre>3772</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(</pre></td></tr><tr><td class='line-number'><a name='L3773' href='#L3773'><pre>3773</pre></a></td><td class='skipped-line'></td><td class='code'><pre> project.properties.compilation_type,</pre></td></tr><tr><td class='line-number'><a name='L3774' href='#L3774'><pre>3774</pre></a></td><td class='skipped-line'></td><td class='code'><pre> CompilationType::NativeCode(NativeCodeSettings {</pre></td></tr><tr><td class='line-number'><a name='L3775' href='#L3775'><pre>3775</pre></a></td><td class='skipped-line'></td><td class='code'><pre> optimization_type: OptimizationType::FavorFastCode,</pre></td></tr><tr><td class='line-number'><a name='L3776' href='#L3776'><pre>3776</pre></a></td><td class='skipped-line'></td><td class='code'><pre> favor_pentium_pro: FavorPentiumPro::False,</pre></td></tr><tr><td class='line-number'><a name='L3777' href='#L3777'><pre>3777</pre></a></td><td class='skipped-line'></td><td class='code'><pre> code_view_debug_info: CodeViewDebugInfo::NotCreated,</pre></td></tr><tr><td class='line-number'><a name='L3778' href='#L3778'><pre>3778</pre></a></td><td class='skipped-line'></td><td class='code'><pre> aliasing: Aliasing::AssumeAliasing,</pre></td></tr><tr><td class='line-number'><a name='L3779' href='#L3779'><pre>3779</pre></a></td><td class='skipped-line'></td><td class='code'><pre> bounds_check: BoundsCheck::CheckBounds,</pre></td></tr><tr><td class='line-number'><a name='L3780' href='#L3780'><pre>3780</pre></a></td><td class='skipped-line'></td><td class='code'><pre> overflow_check: OverflowCheck::CheckOverflow,</pre></td></tr><tr><td class='line-number'><a name='L3781' href='#L3781'><pre>3781</pre></a></td><td class='skipped-line'></td><td class='code'><pre> floating_point_check: FloatingPointErrorCheck::CheckFloatingPointError,</pre></td></tr><tr><td class='line-number'><a name='L3782' href='#L3782'><pre>3782</pre></a></td><td class='skipped-line'></td><td class='code'><pre> pentium_fdiv_bug_check: PentiumFDivBugCheck::CheckPentiumFDivBug,</pre></td></tr><tr><td class='line-number'><a name='L3783' href='#L3783'><pre>3783</pre></a></td><td class='skipped-line'></td><td class='code'><pre> unrounded_floating_point: UnroundedFloatingPoint::DoNotAllow,</pre></td></tr><tr><td class='line-number'><a name='L3784' href='#L3784'><pre>3784</pre></a></td><td class='skipped-line'></td><td class='code'><pre> })</pre></td></tr><tr><td class='line-number'><a name='L3785' href='#L3785'><pre>3785</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L3786' href='#L3786'><pre>3786</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.start_mode, StartMode::StandAlone);</pre></td></tr><tr><td class='line-number'><a name='L3787' href='#L3787'><pre>3787</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.unattended, InteractionMode::Interactive);</pre></td></tr><tr><td class='line-number'><a name='L3788' href='#L3788'><pre>3788</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.retained, Retained::UnloadOnExit);</pre></td></tr><tr><td class='line-number'><a name='L3789' href='#L3789'><pre>3789</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.thread_per_object, 0);</pre></td></tr><tr><td class='line-number'><a name='L3790' href='#L3790'><pre>3790</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(project.properties.max_number_of_threads, 1);</pre></td></tr><tr><td class='line-number'><a name='L3791' href='#L3791'><pre>3791</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> assert_eq!(</pre></td></tr><tr><td class='line-number'><a name='L3792' href='#L3792'><pre>3792</pre></a></td><td class='skipped-line'></td><td class='code'><pre> project.properties.debug_startup_option,</pre></td></tr><tr><td class='line-number'><a name='L3793' href='#L3793'><pre>3793</pre></a></td><td class='skipped-line'></td><td class='code'><pre> DebugStartupOption::WaitForComponentCreation,</pre></td></tr><tr><td class='line-number'><a name='L3794' href='#L3794'><pre>3794</pre></a></td><td class='skipped-line'></td><td class='code'><pre> "debug_startup_option check"</pre></td></tr><tr><td class='line-number'><a name='L3795' href='#L3795'><pre>3795</pre></a></td><td class='skipped-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L3796' href='#L3796'><pre>3796</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L3797' href='#L3797'><pre>3797</pre></a></td><td class='skipped-line'></td><td class='code'><pre>}</pre></td></tr></table></div></body></html>