From f74e40598fc0ca92615acb04bf9895c8c76c2403 Mon Sep 17 00:00:00 2001 From: chriseth Date: Wed, 26 Jul 2017 14:30:32 +0200 Subject: [PATCH] Clarify internal function types Fixes https://github.com/ethereum/solidity/issues/2617 --- docs/types.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/types.rst b/docs/types.rst index 0dc436c95..7085610af 100644 --- a/docs/types.rst +++ b/docs/types.rst @@ -318,7 +318,7 @@ can be assigned from functions and function parameters of function type can be used to pass functions to and return functions from function calls. Function types come in two flavours - *internal* and *external* functions: -Internal functions can only be used inside the current contract (more specifically, +Internal functions can only be called inside the current contract (more specifically, inside the current code unit, which also includes internal library functions and inherited functions) because they cannot be executed outside of the context of the current contract. Calling an internal function is realized @@ -337,7 +337,8 @@ function type should not return anything, the whole ``returns ()`` part has to be omitted. By default, function types are internal, so the ``internal`` keyword can be -omitted. +omitted. In contrast, contract functions themselves are public by default, +only when used as the name of a type, the default is internal. There are two ways to access a function in the current contract: Either directly by its name, ``f``, or using ``this.f``. The former will result in an internal