Merge pull request #964 from Denton-L/fix-documentation

Fix documentation
This commit is contained in:
Bob Summerwill 2016-08-29 10:36:15 -07:00 committed by GitHub
commit 0b89e1e98c
5 changed files with 38 additions and 30 deletions

View File

@ -195,45 +195,47 @@ return parameter list for functions.
uint public data;
}
An other contract ``D`` can call ``c.getData()`` to retrieve the value of data in state
storage and is not able to call ``f``. Contract ``E`` is derived from ``C`` and can call
``compute``.
In the following example, ``D``, can call ``c.getData()`` to retrieve the value of
``data`` in state storage, but is not able to call ``f``. Contract ``E`` is derived from
``C`` and, thus, can call ``compute``.
::
contract C {
uint private data;
function f(uint a) private returns(uint b) { return a + 1; }
function setData(uint a) { data = a; }
function getData() public returns(uint) {return data;}
function compute(uint a, uint b) internal returns (uint) { return a+b;}
uint private data;
function getData() public returns(uint) { return data; }
function compute(uint a, uint b) internal returns (uint) { return a+b; }
}
contract D {
function readData() {
C c = new C();
local = c.f(7); // error: member "f" is not visible
uint local = c.f(7); // error: member "f" is not visible
c.setData(3);
uint local = c.getData();
local = c.compute(3,5); // error: member "compute" is not visible
local = c.getData();
local = c.compute(3, 5); // error: member "compute" is not visible
}
}
contract E is C {
function g() {
C c = new C();
uint val = compute(3,5); // acces to internal member (from derivated to parent contract)
uint val = compute(3, 5); // acces to internal member (from derivated to parent contract)
}
}
.. index:: ! accessor;function, ! function;accessor
Accessor Functions
==================
The compiler automatically creates accessor functions for
all public state variables. For the contract given below the compiler will
all public state variables. For the contract given below, the compiler will
generate a function called ``data`` that does not take any
arguments and returns a ``uint``, the value of the state
variable ``data``. The initialization of state variables can
@ -245,6 +247,7 @@ be done at declaration.
uint public data = 42;
}
contract Caller {
C c = new C();
function f() {
@ -254,8 +257,8 @@ be done at declaration.
The accessor functions have external visibility. If the
symbol is accessed internally (i.e. without ``this.``),
it is evaluated as state variable and if it is accessed externally
(i.e. with ``this.``), it is evaluated as function.
it is evaluated as a state variable and if it is accessed externally
(i.e. with ``this.``), it is evaluated as a function.
::

View File

@ -66,7 +66,7 @@ Discontinued:
Solidity Tools
-------------------------------
--------------
* `Solidity REPL <https://github.com/raineorshine/solidity-repl>`_
Try Solidity instantly with a command-line Solidity console.

View File

@ -93,18 +93,18 @@ you should fork Solidity and add your personal fork as a second remote:
.. code:: bash
cd solidity
git remote add personal git@github.com:[username]/solidity.git
git remote add personal git@github.com:\<username\>/solidity.git
Prerequisites - macOS
----------------------
---------------------
For macOS, ensure that you have the latest version of
`xcode installed <https://developer.apple.com/xcode/download/>`_.
`Xcode installed <https://developer.apple.com/xcode/download/>`_.
This contains the `Clang C++ compiler <https://en.wikipedia.org/wiki/Clang>`_, the
`xcode IDE <https://en.wikipedia.org/wiki/Xcode>`_ and other Apple development
`Xcode IDE <https://en.wikipedia.org/wiki/Xcode>`_ and other Apple development
tools which are required for building C++ applications on OS X.
If you are installing xcode for the first time, or have just installed a new
If you are installing Xcode for the first time, or have just installed a new
version then you will need to agree to the license before you can do
command-line builds:
@ -120,7 +120,7 @@ if you ever want to start again from scratch.
Prerequisites - Windows
------------------------
-----------------------
You will need to install the following dependencies for Windows builds of Solidity:
@ -152,7 +152,7 @@ manual process, but is now a one-liner:
Or, on Windows:
.. code:: bash
.. code:: bat
scripts\install_deps.bat

View File

@ -220,7 +220,7 @@ only the person holding the keys to the account can transfer money from it.
Blocks
======
One major obstacle to overcome is what, in Bitcoin terms, is called "double-spend attack":
One major obstacle to overcome is what, in Bitcoin terms, is called a "double-spend attack":
What happens if two transactions exist in the network that both want to empty an account,
a so-called conflict?
@ -444,13 +444,13 @@ receives the address of the new contract on the stack.
.. index:: selfdestruct
Selfdestruct
============
``selfdestruct``
================
The only possibility that code is removed from the blockchain is
when a contract at that address performs the ``SELFDESTRUCT`` operation.
when a contract at that address performs the ``selfdestruct`` operation.
The remaining Ether stored at that address is sent to a designated
target and then the storage and code is removed.
Note that even if a contract's code does not contain the ``SELFDESTRUCT``
opcode, it can still perform that operation using delegatecall or callcode.
Note that even if a contract's code does not contain a call to ``selfdestruct``,
it can still perform that operation using ``delegatecall`` or ``callcode``.

View File

@ -661,13 +661,18 @@ Explicit Conversions
--------------------
If the compiler does not allow implicit conversion but you know what you are
doing, an explicit type conversion is sometimes possible::
doing, an explicit type conversion is sometimes possible. Note that this may
give you some unexpected behaviour so be sure to test to ensure that the
result is what you want! Take the following example where you are converting
a negative ``int8`` to a ``uint``:
::
int8 y = -3;
uint x = uint(y);
At the end of this code snippet, ``x`` will have the value ``0xfffff..fd`` (64 hex
characters), which is -3 in two's complement representation of 256 bits.
characters), which is -3 in the two's complement representation of 256 bits.
If a type is explicitly converted to a smaller type, higher-order bits are
cut off::