diff options
author | Bob Arnson <bob@firegiant.com> | 2019-01-16 16:25:46 -0500 |
---|---|---|
committer | Rob Mensching <rob@robmensching.com> | 2019-01-16 13:31:40 -0800 |
commit | 214f53de1c6500aa8dd46e9604c90178807fda1a (patch) | |
tree | fab56b9447dc618ec0730703f131a23a669af11a /src/WixToolset.Core | |
parent | a8e31958d7e1b0ef10ea8035abf1e3bf07170eb8 (diff) | |
download | wix-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.cs | 20 |
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 | } |