Commit Graph

1019 Commits

Author SHA1 Message Date
Vijay Menon acde775091 Update dart_runtime.dart rules
This should bring it in line with rules.dart.

R=jmesserly@google.com, leafp@google.com

Review URL: https://codereview.chromium.org/1043323002
2015-04-07 05:57:20 -07:00
John Messerly db9e46344b update baseline
forgot to do this after a merge

Review URL: https://codereview.chromium.org/1067553002
2015-04-06 09:20:40 -07:00
John Messerly 941dda3403 use VariableElement instead of VariableElementImpl in _isStateless
R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org/1056183003
2015-04-06 09:13:04 -07:00
Vijay Menon cad0430c0d Tweaks to warning level and reporting
R=leafp@google.com

Review URL: https://codereview.chromium.org/1059873002
2015-04-03 15:46:58 -07:00
Leaf Petersen 7321b609d5 Inference casts to dynamic, fuzzy types handled
During inference, allow sub-expressions of type dynamic to be cast to the inferred type.

This CL also adds special case support for the case where we are trying to infer a type for a closure literal with a fuzzy type - often these closures are already well-typed (or easily inferable) if we eliminate the fuzziness.

This gets rid of two of the static errors on angular hello world, along with most of the InferableClosure warnings (turning them into InferredTypeClosure infos).

Most of the remaining InferableClosure cases are function literals with block function bodies, which I don't handle in general yet.

BUG=
R=vsm@google.com

Review URL: https://codereview.chromium.org/1059763003
2015-04-03 15:36:27 -07:00
Jacob Richman 5a5ddca7bc Extension method support to move us closer to a valid List implementation.
BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1059583002
2015-04-03 14:52:04 -07:00
Vijay Menon 78cb0608b3 Disable closure wrapping by default
R=leafp@google.com

Review URL: https://codereview.chromium.org/1052383003
2015-04-03 14:26:11 -07:00
Leaf Petersen 0399992b81 Downwards closure inference. This implements a basic form of downwards closure inference. It only handles expression functions (=> e), and it does not try to narrow the type of parameters.
BUG=
R=vsm@google.com

Review URL: https://codereview.chromium.org/1050703002
2015-04-03 09:17:30 -07:00
John Messerly a4cbcc0c07 implement mixins in subtype checks, more codegen fixes
or: how creating a SplayTreeSet<String> leads to fixing a bunch of stuff

R=vsm@google.com

Review URL: https://codereview.chromium.org/1058653002
2015-04-02 12:16:24 -07:00
John Messerly db1d4fac75 reduce diff churn due to server_mode test
essentially verify the expected HTML in the test
this tripped on an interesting issue, we have two ways of computing MD5 hashes that produce different answers. I left that as a TODO.

R=jacobr@google.com

Review URL: https://codereview.chromium.org/1056613002
2015-04-01 13:49:11 -07:00
Vijay Menon 316a99b719 Revert "Re-enable logging test"
We're getting an error on dev runs with this test.

TBR=jmesserly@google.com

Review URL: https://codereview.chromium.org/1052523003
2015-04-01 10:15:11 -07:00
John Messerly 864299081e partially implement instance of checks and some codegen fixes
R=vsm@google.com

Review URL: https://codereview.chromium.org/1050723002
2015-04-01 09:44:37 -07:00
Vijay Menon 3af6089191 Re-enable logging test
Meant to add this to the runner.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1052443002
2015-04-01 08:41:15 -07:00
Vijay Menon 2e895d355e Update mock sdk to fix test
R=sigmund@google.com

Review URL: https://codereview.chromium.org/1051523002
2015-03-31 13:26:12 -07:00
Leaf Petersen da58b9d8aa Downward inference
This is a first cut at downwards inference. The interaction with InferableLiteral etc isn't well sorted out yet, so while downwards inference on nested expressions works, there will currently be spurious warnings.

BUG=
R=vsm@google.com

Review URL: https://codereview.chromium.org/1038213003
2015-03-31 13:24:25 -07:00
Sigmund Cherem c48018ee62 Update widget with latext fix from source_span
R=jacobr@google.com

Review URL: https://codereview.chromium.org/1047083002
2015-03-31 13:11:14 -07:00
John Messerly 3ce5a11d77 compute interfaces lazily
otherwise we'd have to make a lot more classes lazy

R=jacobr@google.com

Review URL: https://codereview.chromium.org/1047203002
2015-03-31 09:14:37 -07:00
Vijay Menon 75ee9c6cc5 Handle for-in loops
R=sigmund@google.com

Review URL: https://codereview.chromium.org/1048863003
2015-03-30 17:22:46 -07:00
John Messerly 5472d0cfcd keep mixin and interface implementation info at runtime
R=jacobr@google.com, vsm@google.com

Review URL: https://codereview.chromium.org/1043003002
2015-03-30 16:09:48 -07:00
Vijay Menon e4fdeb376d Fix logging test
Just updating the broken test.  The dart_runtime.dart type rules are still out of date.

R=leafp@google.com

Review URL: https://codereview.chromium.org/1045753003
2015-03-30 16:03:50 -07:00
John Messerly fc02cba0f4 use == and != to enable handling null/undefined
R=jacobr@google.com, vsm@google.com

Review URL: https://codereview.chromium.org/1047023002
2015-03-30 16:01:22 -07:00
John Messerly 1515ceaa8e fixes private named constructors
R=jacobr@google.com

Review URL: https://codereview.chromium.org/1042943003
2015-03-30 14:30:01 -07:00
John Messerly 7cb01cb2a6 tweaks to build/test scripts
this is a follow up to reverted https://github.com/dart-lang/dev_compiler/pull/114
it relands it so it can pass on travis, with some additional tweaks to names

The new structure is:

    tool/
      presubmit.sh  # both build and test
      build_sdk.sh
      test.sh
      coverage.sh
    test/test.sh    # deprecated, with a warning message

Thoughts?

R=sigmund@google.com

Review URL: https://codereview.chromium.org/1042863004
2015-03-30 12:52:03 -07:00
John Messerly 2de38f1bf7 Revert "Reuse test.sh under Travis and fixe failing test" 2015-03-30 12:22:02 -07:00
John Messerly 33aab9c0e0 Merge pull request #114 from chalin/chalin-0327-test-script-refactor
Reuse test.sh under Travis and fixe failing test
2015-03-30 12:08:56 -07:00
John Messerly f0e35ab12c fix arguments keyword used in our helper method
R=jacobr@google.com

Review URL: https://codereview.chromium.org/1048873002
2015-03-30 10:46:13 -07:00
John Messerly af714fed80 fix for static methods and names banned in strict mode
* static methods qualified properly
* static method privacy is now enforced
* avoid static method names banned in strict mode
* avoid variable names banned in strict mode

We might want to relax privacy (for both instance and static), but for now it's nice and consistent with instance methods using ES6 Symbol

R=jacobr@google.com

Review URL: https://codereview.chromium.org/1034273003
2015-03-30 10:09:56 -07:00
Jacob Richman a6ca53ee49 fix list literal initialization call fix typeof calls for primitive JS types add dart/collection.js to defaultRuntimeFiles list Enclose switch statement case blocks with braces to insure a block scope matching dart semantics
BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1042003002
2015-03-30 09:42:29 -07:00
Patrice Chalin dfff27cf78 Reuse test.sh under Travis and fixed failing test
Now running test.sh under Travis (actually script has been renamed to
`tool/build_and_test.sh` since it built and tested :). Keeping
`test.sh` as alias to build_and_test.sh in case people are used to
using it in the test directory.

Also removed `_visitOrEmpty` to resolve the following analyzer hint (so
that tests would pass):
> [hint] The method '_visitOrEmpty' is not used
(/Users/chalin/git/dev_compiler/lib/src/codegen/js_codegen.dart, line
2028, col 16)
2015-03-27 17:48:48 -07:00
Jacob Richman 0e0cff2e17 Fix try catch crasher bug due to null else case.
BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1036333003
2015-03-27 10:53:54 -07:00
John Messerly b292b10b19 fixes #109, code coverage for SDK generation 2015-03-27 08:21:07 -07:00
John Messerly 34e2fbabd7 fix temp used in postfix ops
Review URL: https://codereview.chromium.org/1039243002
2015-03-27 07:26:57 -07:00
John Messerly 2357e3013b more care around generated names, fixes #60 #82 and #97
R=vsm@google.com

Review URL: https://codereview.chromium.org/1030063004
2015-03-26 17:47:31 -07:00
Sigmund Cherem 3ab4f01149 Pass through context information in error messages
R=vsm@google.com

Review URL: https://codereview.chromium.org/1023893004
2015-03-26 15:25:24 -07:00
Patrice Chalin f73b4ec612 Make codegen_test more self contained
Addressed codegen_test `TODO(jmesserly): it'd be nice to do all cleanup
here …`.
2015-03-26 11:52:49 -07:00
Vijay Menon 67e4bc583a Rationalize coercions
This breaks out casts / coercions into:

Standard (on by default)
- DynamicCasts: dynamic -> T
- AssignmentCasts: T x = expr; // T must be a ground type

Inference (this will go away)
- InferableLiteral
- InferableClosure
- InferableAllocation

Implicit (no flag yet, but i'll add to disable by default)
- DownCastComposite: Any cast to a non-ground type
- DownCastImplicit: Any other implicit downcast not covered above

A flag is also added to enable/disable all wrapping.  This is not off by default yet, but that is the intent.

R=leafp@google.com

Review URL: https://codereview.chromium.org/1038583004
2015-03-25 14:51:54 -07:00
Sigmund Cherem 2bf7e0aed8 Transitive inference using SCC
BUG=
R=vsm@google.com

Review URL: https://codereview.chromium.org/1028793002
2015-03-23 13:11:33 -07:00
Vijay Menon 1430655b9e Treat Object and dynamic similarly
Note, this makes: T<dynamic> <: T<Object> and T<Object> <: T<dynamic>.

R=leafp@google.com

Review URL: https://codereview.chromium.org/1024073003
2015-03-20 14:06:13 -07:00
Vijay Menon c831595c88 Allow arity checks on dynamic function types
BUG=
R=jacobr@google.com, leafp@google.com

Review URL: https://codereview.chromium.org/1021273004
2015-03-20 10:40:43 -07:00
John Messerly e1c8e996b7 Replace dart_core.js with actual compiled SDK
Almost no calls are going to work at this point, but core.js can load
now and there is enough in place to continue to load sunflower.

R=sigmund@google.com

Review URL: https://codereview.chromium.org/1020043002
2015-03-20 09:41:00 -07:00
John Messerly c587869d1d bind to localhost instead of all interfaces, and fix closureWrap
R=sigmund@google.com

Review URL: https://codereview.chromium.org/1022923005
2015-03-20 09:19:10 -07:00
John Messerly b62f4c06ab sort classes in dependency order, or load lazily if needed, fixes #78
this also starts using compiled code in dart_core.js (just copy+paste for Object)

visitClassDeclaration was getting rather long, so it's now refactored to make the flow more clear.

R=sigmund@google.com

Review URL: https://codereview.chromium.org/1016003003
2015-03-19 10:03:22 -07:00
Vijay Menon 48d4a4e320 Allow S->T <: dynamic->T
In followup CLs, I will:
- Fix coercions to limit implicit ones.

R=jmesserly@google.com, leafp@google.com

Review URL: https://codereview.chromium.org/1010893004
2015-03-18 16:40:43 -07:00
Sigmund Cherem 2ba454d945 Enable inference in the core libs
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1023543002
2015-03-18 16:24:23 -07:00
Sigmund Cherem fa03b6b422 Move sunflower to a new directory, make final tweaks to make it all work.
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1007313003
2015-03-18 15:53:59 -07:00
John Messerly 9cf5a077e9 coverage: increase coverage of js_codegen
it was already decent, but this should plug the two biggest holes: source maps and maps with non-string keys

R=vsm@google.com

Review URL: https://codereview.chromium.org/1013223002
2015-03-18 09:20:36 -07:00
Sigmund Cherem 1b23c0ecb2 Copy resources refered to in the HTML to the output folder
R=vsm@google.com

Review URL: https://codereview.chromium.org/1014173002
2015-03-17 18:54:48 -07:00
Sigmund Cherem c2d0c1b8b9 locating runtime files automatically (fixes #96)
R=vsm@google.com

Review URL: https://codereview.chromium.org/1013363002
2015-03-17 18:52:24 -07:00
Jacob Richman d624c322d3 Suppress generation of JsGlobal and JsType code and use window as the default value instead of {} for libraries that define JsGlobal fields.
BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1013653004
2015-03-17 14:42:42 -07:00
Sigmund Cherem 06e73efda4 Turn on infer-from-overrides by default, rename inferStaticFromOtherStatics to
inferTransitively.

BUG=
R=vsm@google.com

Review URL: https://codereview.chromium.org/1015843002
2015-03-17 14:00:48 -07:00