aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core
diff options
context:
space:
mode:
authorBob Arnson <bob@firegiant.com>2019-01-16 16:25:46 -0500
committerRob Mensching <rob@robmensching.com>2019-01-16 13:31:40 -0800
commit214f53de1c6500aa8dd46e9604c90178807fda1a (patch)
treefab56b9447dc618ec0730703f131a23a669af11a /src/WixToolset.Core
parenta8e31958d7e1b0ef10ea8035abf1e3bf07170eb8 (diff)
downloadwix-214f53de1c6500aa8dd46e9604c90178807fda1a.tar.gz
wix-214f53de1c6500aa8dd46e9604c90178807fda1a.tar.bz2
wix-214f53de1c6500aa8dd46e9604c90178807fda1a.zip
Fix overridable actions being tagged as duplicates.
Diffstat (limited to 'src/WixToolset.Core')
-rw-r--r--src/WixToolset.Core/Link/ResolveReferencesCommand.cs20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/WixToolset.Core/Link/ResolveReferencesCommand.cs b/src/WixToolset.Core/Link/ResolveReferencesCommand.cs
index 07eabbd6..ed11095f 100644
--- a/src/WixToolset.Core/Link/ResolveReferencesCommand.cs
+++ b/src/WixToolset.Core/Link/ResolveReferencesCommand.cs
@@ -66,7 +66,7 @@ namespace WixToolset.Core.Link
66 { 66 {
67 // If we're building a Merge Module, ignore all references to the Media table 67 // If we're building a Merge Module, ignore all references to the Media table
68 // because Merge Modules don't have Media tables. 68 // because Merge Modules don't have Media tables.
69 if (this.BuildingMergeModule && wixSimpleReferenceRow.Table== "Media") 69 if (this.BuildingMergeModule && wixSimpleReferenceRow.Table == "Media")
70 { 70 {
71 continue; 71 continue;
72 } 72 }
@@ -77,7 +77,7 @@ namespace WixToolset.Core.Link
77 } 77 }
78 else // see if the symbol (and any of its duplicates) are appropriately accessible. 78 else // see if the symbol (and any of its duplicates) are appropriately accessible.
79 { 79 {
80 IList<Symbol> accessible = DetermineAccessibleSymbols(section, symbol); 80 IList<Symbol> accessible = this.DetermineAccessibleSymbols(section, symbol);
81 if (!accessible.Any()) 81 if (!accessible.Any())
82 { 82 {
83 this.Messaging.Write(ErrorMessages.UnresolvedReference(wixSimpleReferenceRow.SourceLineNumbers, wixSimpleReferenceRow.SymbolicName, symbol.Access)); 83 this.Messaging.Write(ErrorMessages.UnresolvedReference(wixSimpleReferenceRow.SourceLineNumbers, wixSimpleReferenceRow.SymbolicName, symbol.Access));
@@ -89,7 +89,7 @@ namespace WixToolset.Core.Link
89 89
90 if (null != accessibleSymbol.Section) 90 if (null != accessibleSymbol.Section)
91 { 91 {
92 RecursivelyResolveReferences(accessibleSymbol.Section); 92 this.RecursivelyResolveReferences(accessibleSymbol.Section);
93 } 93 }
94 } 94 }
95 else // display errors for the duplicate symbols. 95 else // display errors for the duplicate symbols.
@@ -125,14 +125,22 @@ namespace WixToolset.Core.Link
125 { 125 {
126 List<Symbol> symbols = new List<Symbol>(); 126 List<Symbol> symbols = new List<Symbol>();
127 127
128 if (AccessibleSymbol(referencingSection, symbol)) 128 if (this.AccessibleSymbol(referencingSection, symbol))
129 { 129 {
130 symbols.Add(symbol); 130 symbols.Add(symbol);
131 } 131 }
132 132
133 foreach (Symbol dupe in symbol.PossiblyConflictingSymbols) 133 foreach (Symbol dupe in symbol.PossiblyConflictingSymbols)
134 { 134 {
135 if (AccessibleSymbol(referencingSection, dupe)) 135 // don't count overridable WixActionTuples
136 WixActionTuple symbolAction = symbol.Row as WixActionTuple;
137 WixActionTuple dupeAction = dupe.Row as WixActionTuple;
138 if (symbolAction?.Overridable != dupeAction?.Overridable)
139 {
140 continue;
141 }
142
143 if (this.AccessibleSymbol(referencingSection, dupe))
136 { 144 {
137 symbols.Add(dupe); 145 symbols.Add(dupe);
138 } 146 }
@@ -140,7 +148,7 @@ namespace WixToolset.Core.Link
140 148
141 foreach (Symbol dupe in symbol.RedundantSymbols) 149 foreach (Symbol dupe in symbol.RedundantSymbols)
142 { 150 {
143 if (AccessibleSymbol(referencingSection, dupe)) 151 if (this.AccessibleSymbol(referencingSection, dupe))
144 { 152 {
145 symbols.Add(dupe); 153 symbols.Add(dupe);
146 } 154 }