fc01794f33
Currently parseUserPart uses the encoded authority to split the URI into user and non-user parts, but the parseHost and parsePort uses the decoded URI to split the URI into non-host, host, and port parts. This gives unexpected results when %40 ('@') and %3a (':') is used in a URI: Uri test = Uri.parse("http://bob%40lee%3ajr@example.com:42/"); test.getUserInfo() => "bob@lee:jr" test.getHost() => "lee:jr@example.com" (should be "example.com") test.getPort() => -1 (should be 42)