Stop PathForModuleSrc from validating the paths unnecessarily
PathForModuleSrc calls validatePath in order to convert the supplied path components into a single path. Unfortunately, that corrupts a fully qualified module name. So, when given "//namespace:module" it treats it as a path and replaces "//" with "/". That replacement is done by a call to filepath.Join(). This change simply concatenates the path components together textually, using the path separator, to avoid the corruption. That ensures that a fully qualified module name is preserved and processed properly. If the path components do not contain a module name then expandOneSrcPath will call pathForModuleSrc which validates the path so it does not open up a way to create an invalid path as the validation was unnecessary anyway. Bug: 193228441 Test: m nothing Change-Id: I0bb66feac182b77ce96c8d5d5f17e28ea28d75ba
This commit is contained in:
@@ -1373,8 +1373,7 @@ func TestPathForModuleSrc(t *testing.T) {
|
||||
}
|
||||
`),
|
||||
errorHandler: FixtureExpectsAllErrorsToMatchAPattern([]string{
|
||||
// The message is broken because PathForModuleSrc corrupts the name during validation.
|
||||
`"foo": missing dependencies: /other:b, is the property annotated with android:"path"`,
|
||||
`"foo": missing dependencies: //other:b, is the property annotated with android:"path"`,
|
||||
`"foo": missing dependency on "//other:c", is the property annotated with android:"path"`,
|
||||
}),
|
||||
},
|
||||
|
Reference in New Issue
Block a user