Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
go
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
go
Commits
ae68090d
Commit
ae68090d
authored
Aug 02, 2016
by
Chris Broadfoot
Browse files
Options
Browse Files
Download
Plain Diff
all: merge master into release-branch.go1.7
Change-Id: I177856ea2bc9943cbde28ca9afa145b6ea5b0942
parents
c628d83e
2da5633e
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
48 additions
and
11 deletions
+48
-11
src/cmd/doc/doc_test.go
src/cmd/doc/doc_test.go
+13
-3
src/cmd/doc/pkg.go
src/cmd/doc/pkg.go
+23
-5
src/cmd/doc/testdata/pkg.go
src/cmd/doc/testdata/pkg.go
+7
-0
src/runtime/sys_darwin_386.s
src/runtime/sys_darwin_386.s
+4
-3
src/runtime/sys_darwin_amd64.s
src/runtime/sys_darwin_amd64.s
+1
-0
No files found.
src/cmd/doc/doc_test.go
View file @
ae68090d
...
...
@@ -61,6 +61,7 @@ var tests = []test{
`var ExportedVariable = 1`
,
// Simple variable.
`var VarOne = 1`
,
// First entry in variable block.
`func ExportedFunc\(a int\) bool`
,
// Function.
`func ReturnUnexported\(\) unexportedType`
,
// Function with unexported return type.
`type ExportedType struct { ... }`
,
// Exported type.
`const ExportedTypedConstant ExportedType = iota`
,
// Typed constant.
`const ExportedTypedConstant_unexported unexportedType`
,
// Typed constant, exported for unexported type.
...
...
@@ -89,9 +90,10 @@ var tests = []test{
"full package with u"
,
[]
string
{
`-u`
,
p
},
[]
string
{
`const ExportedConstant = 1`
,
// Simple constant.
`const internalConstant = 2`
,
// Internal constants.
`func internalFunc\(a int\) bool`
,
// Internal functions.
`const ExportedConstant = 1`
,
// Simple constant.
`const internalConstant = 2`
,
// Internal constants.
`func internalFunc\(a int\) bool`
,
// Internal functions.
`func ReturnUnexported\(\) unexportedType`
,
// Function with unexported return type.
},
[]
string
{
`Comment about exported constant`
,
// No comment for simple constant.
...
...
@@ -221,6 +223,7 @@ var tests = []test{
`func \(ExportedType\) ExportedMethod\(a int\) bool`
,
`const ExportedTypedConstant ExportedType = iota`
,
// Must include associated constant.
`func ExportedTypeConstructor\(\) \*ExportedType`
,
// Must include constructor.
`io.Reader.*Comment on line with embedded Reader.`
,
},
[]
string
{
`unexportedField`
,
// No unexported field.
...
...
@@ -228,6 +231,7 @@ var tests = []test{
`Comment about exported method.`
,
// No comment about exported method.
`unexportedMethod`
,
// No unexported method.
`unexportedTypedConstant`
,
// No unexported constant.
`error`
,
// No embedded error.
},
},
// Type -u with unexported fields.
...
...
@@ -243,6 +247,8 @@ var tests = []test{
`\*ExportedEmbeddedType.*Comment on line with exported embedded \*field.`
,
`unexportedType.*Comment on line with unexported embedded field.`
,
`\*unexportedType.*Comment on line with unexported embedded \*field.`
,
`io.Reader.*Comment on line with embedded Reader.`
,
`error.*Comment on line with embedded error.`
,
`func \(ExportedType\) unexportedMethod\(a int\) bool`
,
`unexportedTypedConstant`
,
},
...
...
@@ -274,6 +280,8 @@ var tests = []test{
`type ExportedInterface interface`
,
// Interface definition.
`Comment before exported method.*\n.*ExportedMethod\(\)`
+
`.*Comment on line with exported method`
,
`io.Reader.*Comment on line with embedded Reader.`
,
`error.*Comment on line with embedded error.`
,
`Has unexported methods`
,
},
[]
string
{
...
...
@@ -293,6 +301,8 @@ var tests = []test{
`Comment before exported method.*\n.*ExportedMethod\(\)`
+
`.*Comment on line with exported method`
,
`unexportedMethod\(\).*Comment on line with unexported method.`
,
`io.Reader.*Comment on line with embedded Reader.`
,
`error.*Comment on line with embedded error.`
,
},
[]
string
{
`Has unexported methods`
,
...
...
src/cmd/doc/pkg.go
View file @
ae68090d
...
...
@@ -317,7 +317,9 @@ func (pkg *Package) funcSummary(funcs []*doc.Func, showConstructors bool) {
isConstructor
=
make
(
map
[
*
doc
.
Func
]
bool
)
for
_
,
typ
:=
range
pkg
.
doc
.
Types
{
for
_
,
constructor
:=
range
typ
.
Funcs
{
isConstructor
[
constructor
]
=
true
if
isExported
(
typ
.
Name
)
{
isConstructor
[
constructor
]
=
true
}
}
}
}
...
...
@@ -494,14 +496,19 @@ func trimUnexportedElems(spec *ast.TypeSpec) {
}
switch
typ
:=
spec
.
Type
.
(
type
)
{
case
*
ast
.
StructType
:
typ
.
Fields
=
trimUnexportedFields
(
typ
.
Fields
,
"fields"
)
typ
.
Fields
=
trimUnexportedFields
(
typ
.
Fields
,
false
)
case
*
ast
.
InterfaceType
:
typ
.
Methods
=
trimUnexportedFields
(
typ
.
Methods
,
"methods"
)
typ
.
Methods
=
trimUnexportedFields
(
typ
.
Methods
,
true
)
}
}
// trimUnexportedFields returns the field list trimmed of unexported fields.
func
trimUnexportedFields
(
fields
*
ast
.
FieldList
,
what
string
)
*
ast
.
FieldList
{
func
trimUnexportedFields
(
fields
*
ast
.
FieldList
,
isInterface
bool
)
*
ast
.
FieldList
{
what
:=
"methods"
if
!
isInterface
{
what
=
"fields"
}
trimmed
:=
false
list
:=
make
([]
*
ast
.
Field
,
0
,
len
(
fields
.
List
))
for
_
,
field
:=
range
fields
.
List
{
...
...
@@ -511,12 +518,23 @@ func trimUnexportedFields(fields *ast.FieldList, what string) *ast.FieldList {
// Nothing else is allowed.
switch
ident
:=
field
.
Type
.
(
type
)
{
case
*
ast
.
Ident
:
if
isInterface
&&
ident
.
Name
==
"error"
&&
ident
.
Obj
==
nil
{
// For documentation purposes, we consider the builtin error
// type special when embedded in an interface, such that it
// always gets shown publicly.
list
=
append
(
list
,
field
)
continue
}
names
=
[]
*
ast
.
Ident
{
ident
}
case
*
ast
.
StarExpr
:
// Must have the form *identifier.
if
ident
,
ok
:=
ident
.
X
.
(
*
ast
.
Ident
);
ok
{
// This is only valid on embedded types in structs.
if
ident
,
ok
:=
ident
.
X
.
(
*
ast
.
Ident
);
ok
&&
!
isInterface
{
names
=
[]
*
ast
.
Ident
{
ident
}
}
case
*
ast
.
SelectorExpr
:
// An embedded type may refer to a type in another package.
names
=
[]
*
ast
.
Ident
{
ident
.
Sel
}
}
if
names
==
nil
{
// Can only happen if AST is incorrect. Safe to continue with a nil list.
...
...
src/cmd/doc/testdata/pkg.go
View file @
ae68090d
...
...
@@ -66,6 +66,8 @@ type ExportedType struct {
*
ExportedEmbeddedType
// Comment on line with exported embedded *field.
unexportedType
// Comment on line with unexported embedded field.
*
unexportedType
// Comment on line with unexported embedded *field.
io
.
Reader
// Comment on line with embedded Reader.
error
// Comment on line with embedded error.
}
// Comment about exported method.
...
...
@@ -96,6 +98,8 @@ type ExportedInterface interface {
// Comment before exported method.
ExportedMethod
()
// Comment on line with exported method.
unexportedMethod
()
// Comment on line with unexported method.
io
.
Reader
// Comment on line with embedded Reader.
error
// Comment on line with embedded error.
}
// Comment about unexported type.
...
...
@@ -119,3 +123,6 @@ const unexportedTypedConstant unexportedType = 1 // In a separate section to tes
// For case matching.
const
CaseMatch
=
1
const
Casematch
=
2
func
ReturnUnexported
()
unexportedType
{
return
0
}
func
ReturnExported
()
ExportedType
{
return
ExportedType
{}
}
src/runtime/sys_darwin_386.s
View file @
ae68090d
...
...
@@ -196,15 +196,16 @@ timeloop:
systime
:
//
Fall
back
to
system
call
(
usually
first
call
in
this
thread
)
LEAL
1
2
(
SP
),
AX
//
must
be
non
-
nil
,
unused
LEAL
1
6
(
SP
),
AX
//
must
be
non
-
nil
,
unused
MOVL
AX
,
4
(
SP
)
MOVL
$
0
,
8
(
SP
)
//
time
zone
pointer
MOVL
$
0
,
12
(
SP
)
//
required
as
of
Sierra
; Issue 16570
MOVL
$
116
,
AX
INT
$
0x80
CMPL
AX
,
$
0
JNE
inreg
MOVL
1
2
(
SP
),
AX
MOVL
16
(
SP
),
DX
MOVL
1
6
(
SP
),
AX
MOVL
20
(
SP
),
DX
inreg
:
//
sec
is
in
AX
,
usec
in
DX
//
convert
to
DX
:
AX
nsec
...
...
src/runtime/sys_darwin_amd64.s
View file @
ae68090d
...
...
@@ -157,6 +157,7 @@ systime:
//
Fall
back
to
system
call
(
usually
first
call
in
this
thread
)
.
MOVQ
SP
,
DI
MOVQ
$
0
,
SI
MOVQ
$
0
,
DX
//
required
as
of
Sierra
; Issue 16570
MOVL
$
(
0x2000000
+
116
),
AX
SYSCALL
CMPQ
AX
,
$
0
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment